Initial revision

From-SVN: r14764
diff --git a/gcc/.gdbinit b/gcc/.gdbinit
new file mode 100644
index 0000000..dea758b
--- /dev/null
+++ b/gcc/.gdbinit
@@ -0,0 +1,95 @@
+define pr
+set debug_rtx ($)
+end
+
+document pr
+Print the full structure of the rtx that is $.
+Works only when an inferior is executing.
+end
+
+define prl
+set debug_rtx_list ($, debug_rtx_count)
+end
+
+document prl
+Print the full structure of all rtx insns beginning at $.
+Works only when an inferior is executing.
+Uses variable debug_rtx_count to control number of insns printed:
+  debug_rtx_count > 0: print from $ on.
+  debug_rtx_count < 0: print a window around $.
+
+There is also debug_rtx_find (rtx, uid) that will scan a list for UID and print
+it using debug_rtx_list. Usage example: set $foo=debug_rtx_find(first, 42)
+end
+
+define pt
+set debug_tree ($)
+end
+
+document pt
+Print the full structure of the tree that is $.
+Works only when an inferior is executing.
+end
+
+define ptc
+output (enum tree_code) $.common.code
+echo \n
+end
+
+document ptc
+Print the tree-code of the tree node that is $.
+end
+
+define pdn
+output $.decl.name->identifier.pointer
+echo \n
+end
+
+document pdn
+Print the name of the decl-node that is $.
+end
+
+define ptn
+output $.type.name->decl.name->identifier.pointer
+echo \n
+end
+
+document ptn
+Print the name of the type-node that is $.
+end
+
+define prc
+output (enum rtx_code) $.code
+echo \ (
+output $.mode
+echo )\n
+end
+
+document prc
+Print the rtx-code and machine mode of the rtx that is $.
+end
+
+define pi
+print $.fld[0].rtx@7
+end
+
+document pi
+Print the fields of an instruction that is $.
+end
+
+define pbs
+set print_binding_stack ()
+end
+
+document pbs
+In cc1plus, print the current binding stack, frame by frame, up to and
+including the global binding level.
+end
+
+# Don't let abort actually run, as it will make
+# stdio stop working and therefore the `pr' command below as well.
+b abort
+
+# Make gdb complain about symbol reading errors.  This is so that gcc
+# developers can see and fix bugs in gcc debug output.
+set complaints 20
diff --git a/gcc/COPYING b/gcc/COPYING
new file mode 100644
index 0000000..60549be
--- /dev/null
+++ b/gcc/COPYING
@@ -0,0 +1,340 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/gcc/COPYING.LIB b/gcc/COPYING.LIB
new file mode 100644
index 0000000..161a3d1
--- /dev/null
+++ b/gcc/COPYING.LIB
@@ -0,0 +1,482 @@
+		  GNU LIBRARY GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL.  It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it.  You can use it for
+your libraries, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library.  If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software.  To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+  Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs.  This
+license, the GNU Library General Public License, applies to certain
+designated libraries.  This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+  The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it.  Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program.  However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+  Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries.  We
+concluded that weaker conditions might promote sharing better.
+
+  However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves.  This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them.  (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.)  The hope is that this
+will lead to faster development of free libraries.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+  Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+		  GNU LIBRARY GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License").  Each licensee is
+addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    c) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    d) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+     Appendix: How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+    MA 02111-1307, USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
new file mode 100644
index 0000000..29483ba
--- /dev/null
+++ b/gcc/ChangeLog
@@ -0,0 +1,10652 @@
+Sat Aug  2 18:50:43 1997  Paul Eggert  <eggert@twinsun.com>
+
+	* tree.c (int_fits_type_p): Negative ints never fit unsigned
+	types, and unsigned ints with top-bit-set never fit signed types.
+
+Sat Aug  2 16:25:43 1997  Per Bothner  <bothner@frobnitz.gnu.ai.mit.edu>
+
+	* Makefile.in (EXTRA_C_OBJS): Removed.
+	(C_AND_OBJC_OBJS):  New.  Subsumes EXTRA_C_OBJS and OBJC_CCOMMON.
+	* objc/Make-lang.in (OBJC_CCOMMON):  Removed.
+
+Sat Aug  2 16:11:57 1997  Doug Evans  <dje@cygnus.com>
+
+	* configure.in: Build .gdbinit for top level build dir here.
+	(AC_OUTPUT): Pass oldstyle_subdirs to configure.lang.
+	* configure.lang: Fix building of .gdbinit for oldstyle lang subdirs.
+
+Sat Aug  2 13:48:15 1997  Ken Raeburn  <raeburn@cygnus.com>
+
+	* cse.c (cse_insn): Ignore paradoxical SUBREGs unless we are
+	looking for such.
+
+Sat Aug  2 13:25:33 1997  Tristan Gingold  (gingold@email.enst.fr)
+
+	* calls.c (expand_call): If -fcheck-memory-usage, use pseudo-register,
+	check indirectly called function is executable, and set rights of
+	memory for aggregate as write only.
+	(store_one_arg): If -fcheck-memory-usage, set rights for pushed
+	stack argument.
+	* c-decl.c (init_decl_processing): Add
+	__builtin_aggregate_incoming_address.
+	* explow.c (expr_size): Call expand_expr with appropriate flag.
+	* expr.c (expand_builtin, case BUILT_IN_AGGREGATE_INCOMING_ADDRESS):
+	New case.
+	(expand_assignment, expand_expr, emit_push_insn, store_expr):
+	Insert calls to chkr_check_addr, chkr_set_right, and chkr_copy_bitmap
+	when -fcheck-memory-usage.
+	(get_push_address, get_memory_usage_from_modifier): New functions.
+	* expr.h: Add expand_modifier flags.
+	(chkr_*_libfunc): New decls.
+	(memory_use_mode): New declaration.
+	* flags.h (flag_check_memory_usage, flag_prefix_function_name): New
+	declaration.
+	* function.c (put_var_into_stack, assign_parms): If
+	-fcheck-memory-usage, set the rights of pushed variable.
+	* optabs.c (chkr_{check_addr,set_right}_libfunc): New definitions.
+	(chkr_{copy_bitmap,check_exec}_libfunc): Likewise.
+	(init_optabs): Initialize these chkr_*_libfunc.
+	* stmt.c (expand_computed_goto): If -fcheck-memory-usage, check that
+	computed address of a goto is executable.
+	(expand_asm, expand_asm_operands): If -fcheck-memory-usage,
+	disallow asm statments.
+	* toplev.c (flag_check_memory_usage, flag_prefix_function_name): New
+	variable.
+	(f_options): Add `check-memory-usage' and `prefix_function_name'.
+	(main): Disable `-fomit-frame-pointer' if `-fcheck-memory-usage' is set
+	and the machine can't debug without the frame pointer.
+	* tree.h (built_in_function): Add BUILT_IN_AGGREGATE_INCOMING_ADDRESS.
+	* varasm.c (make_function_rtl, make_decl_rtl): Add a prefix when
+	flag_prefix_function_name_usage is set.
+	(assemble_name): Strip the CHKR_PREFIX.
+	* alpha.c (alpha_builtin_saveregs): If -fcheck-memory-usage,
+	set rights of saved registers.
+	* clipper.c (clipper_builtin_saveregs): Likewise.
+	* m88k.c (m88k_builtin_saveregs): Likewise.
+	* pa.c (hppa_builtin_saveregs): Likewise.
+	* sparc.c (sparc_builtin_saveregs): Likewise.
+
+Sat Aug  2 08:01:12 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* c-decl.c (grokdeclarator): Give error for `long double' and
+	refine text of some error messages.
+
+	* alpha.h (FLOAT_VALUE_TYPE, INTIFY, FLOATIFY, FLOAT_ARG_TYPE): Define.
+	* i860.h (FLOAT_VALUE_TYPE): Fix typo; was FLOAT_TYPE_VALLUE.
+
+	* calls.c (store_one_arg): Allow stack_slot to be SP in
+	ARGS_GROW_DOWNWARD case.
+
+	* c-decl.c (parmlist_tags_warning): Only suppress warning on
+	union if anonymous.
+
+	* libgcc2.c (_trampoline): Rework last change; both getpagesize
+ 	and mprotect are in cygwin32.
+
+	* reload1.c (reload): Add IN_ADDR to IN_ADDR_ADDR when computing
+	needs since they conflict.
+
+	* print-rtl.c (indent): Move to file level; was static in print_rtx.
+	(print_inline_rtx): New function.
+	* reload.c (debug_reload): Rework to make output more compact.
+
+	* dwarfout.c (output_compile_unit_die): Add support for Pascal.
+	* dwarf2out.c (gen_compile_unit_die): Likewise.
+
+	* c-typeck.c (lvalue_p, case BIND_EXPR, RTL_EXPR): Return 1 if array.
+
+	* Makefile.in (OBJC_OBJC): Delete from here.
+
+	* varasm.c (compare_constant_1, case STRING_CST): Compare TYPE_MODE.
+	(record_constant_1, case STRING_CST): Record TYPE_MODE.
+
+	* tree.c (contains_this_placeholder_p): Delete.
+	(contains_placeholder_p): Now contains code from above function.
+	(contains_placeholder_p, case 'r'): Don't look at offset info.
+	* expr.c (expand_expr, case PLACEHOLDER_EXPR): Find innermost
+	matching and don't check contains_placeholder_p.
+
+Fri Aug  1 17:15:07 1997  Per Bothner  <bothner@cygnus.com>
+
+	* objc/objc-act.c (lang_init):  Don't check_newline #if USE_CPPLIB.
+	* c-lex.c (lang_init):  Remove (recently moved here).
+	* c-lang.c (lang_init):  Restore, but add #if !USE_CPPLIB.
+
+Fri Aug  1 11:26:45 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.c (pa_reorg): Explode ADDR_DIFF_VEC insns too.
+
+Thu Jul 31 19:37:22 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* libgcc2.c (getpagesize): Don't compile if __CYGWIN32__.
+
+Thu Jul 31 16:04:42 1997  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.c (output_to_reg, output_fix_trunc): Use scratch memory,
+	if available, instead of dynamically extending the stack.
+	(put_condition_code, print_operand): Added reverse_cc to reverse the
+	comparison when $ah is accessed directly instead of using eflags
+
+	* i386.md (*trunc*): Use scratch memory for output_fix_trunc.
+	(movsicc_1, movhicc_1) Change alternative 3 to: 
+	jCC L1; mov; jmp L2; L1:mov; L2:
+	(movsfcc, movdfcc, movxfcc): Force constant operands to memory.
+	(movsfcc_1, movdfcc_1, movxfcc_1): Change alternative 3 as above.
+
+Thu Jul 31 16:04:42 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* i386.h (MAX_FIXED_MODE_SIZE): Define.
+
+Thu Jul 31 16:04:42 1997   Robert Lipe <robertl@dgii.com>
+	
+	* i386/sco5.h (SWITCHES_NEED_SPACES) Define.
+	Required by the COFF (but not ELF) linker.
+
+Wed Jul 30 15:03:52 1997  Per Bothner  <bothner@cygnus.com>
+
+	* demangle.h (DMGL_JAVA):  New option to request Java demangling.
+	* cplus-dem.c:  Various changes to produce Java output when passed
+	DMGL_JAVA.  Thus "::" becomes "." and "JArray<Foo>" becomes "Foo[]".
+	(main):  Support --java and -j flags to set DMGL_JAVA.
+
+Wed Jul 30 08:56:08 1997  Philip Blundell  <Philip.Blundell@pobox.com>
+
+	* configure.in (arm-*-*): Replace with arm-*-aout.
+	* arm/aout.h (SET_ASM_OP): Define by default.
+	* arm/riscix.h (SET_ASM_OP: Undefine.
+	* arm.h (CPP_SPEC): Add %(subtarget_cpp_spec).
+	(SUBTARGET_CPP_SPEC): New macro.
+	* arm/linux.h: Include aout.h rather than arm.h directly.
+	(TARGET_CPU_DEFAULT): Define.
+	({ASM,CPP}_SPEC): Remove.
+	* arm/t-linux (MULTILIB_OPTIONS): Use -mapcs-NN instead of -mN.
+	(LIB1ASMSRC): Use generic ARM version.
+	(CROSS_LIBGCC1): Define.
+	* arm/lib1funcs-linux.asm: Remove.
+
+Tue Jul 29 17:57:47 1997  Per Bothner  <bothner@cygnus.com>
+
+	* Add hooks for using autconf-style Makefile.in in language subdirs.
+	* configure.in (all_outputs, oldstyle_subdirs):  New variables.
+	Pass all_outputs to AC_OUTPUT.
+	* configure.lang:  Only iterate over oldstyle_subdirs.
+
+	* Patches to use cpplib with cc1 #if USE_CPPLIB.
+	* configure.in (--enable-c-cpplib):  New option.
+	(extra_c_flags, extra_c_objs):  New variables.
+	* Makefile.in (EXTRA_C_OBJS):  New variable.
+	(INTERNAL_CFLAGS):  Add @extra_c_flags@.
+	(C_OBJS):  Add $(EXTRA_C_OBJS).
+	* c-lex.c (generally):  Replace getc and ungetc by macros GETC and
+	UNGETC.  Avoid explicit references to finput.
+	(yy_get_token):  New function, that calls cpp_get_token.
+	(init_parse):  New function - calls init_lex.
+	(finish_parse):  New function (called by compile_file).
+	(GET_DIRECTIVE_LINE):  New macro wrapper replaces get_directive_line.
+	(lang_init):  Don't check_newline - already know main_input_filename.
+	(handle_sysv_pragma):  Remove FILE* parameter.
+	* toplev.c (finput):  Remove #if USE_CPPLIB.
+	(compile_file):  #if USE_CPPLIB don't open input file here,
+	do it in cpp_start_read.  Call init_parse instead of init_lex.
+	At end, call finish_parse instead of fclose(finput).
+
+Mon Jul 28 15:48:29 1997  Brendan Kehoe  <brendan@cygnus.com>
+
+	* integrate.c (expand_inline_function): Use xmalloc instead of
+	alloca for the LABEL_MAP.
+	(save_for_inline_copying): Likewise.
+
+Mon Jul 28 11:22:16 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* toplev.c (compile_file): Also emit any deferred TREE_PUBLIC inlines.
+	(rest_of_compilation): Use decl_printable_name instead of DECL_NAME
+	to identify functions in the RTL dump files.
+
+	* dwarf2out.c (add_location_or_const_value_attribute): 
+ 	leaf_renumber_regs_insn.  Also eliminate_regs here.
+	(add_AT_location_description): Not here.  Don't emit anything 
+	for a variable that has been optimized away.
+	(add_const_value_attribute): Likewise.
+
+	* dwarfout.c (location_or_const_value_attribute):
+ 	leaf_renumber_regs_insn.  Also eliminate_regs here.
+	(location_attribute): Not here.
+
+	* stor-layout.c (layout_type): Fix ancient code to match ancient
+	comment.  Use mode of field for one-field structs.
+
+Sun Jul 27 12:09:02 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* function.c (put_var_into_stack, trampoline_address): Treat
+	inline_function_decl like current_function_decl.
+	* expr.c (expand_expr, case LABEL_DECL): Likewise.
+	(expand_expr, case SAVE_EXPR): Handle top-level SAVE_EXPR by
+	moving into current function; abort if in incorrect context.
+	* fold-const.c (fold_range_test, fold): Avoid making SAVE_EXPR
+	if at top level.
+
+	* dwarfout.c (ASM_OUTPUT_SOURCE_FILENAME): Delete default value.
+
+	* alpha.h (TARGET_SWITCHES): Add -mno-byte.
+
+	* expr.c (get_inner_unaligned_p): Deleted.
+	(expand_assignment): Remove special-case of constant array.
+	(expand_expr, case ARRAY_REF): Likewise, and clean up remaining code.
+
+	* explow.c (probe_stack_range): Do probing with loop if more
+	than a small number.
+
+Fri Jul 25 15:42:34 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+	* configure.in: Finish fixing calculation if default thread
+	support is enabled.
+
+Fri Jul 25 15:30:09 1997  Doug Evans  <dje@cygnus.com>
+
+	* Makefile.in (native): Depend on config.h.
+	(gcc.o): Depend on Makefile, not config.status.
+
+Fri Jul 25 10:56:50 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.c (pa_reorg): If TARGET_BIG_SWITCH, then do not explode
+	ADDR_VEC insns.  Slightly rework code which explodes ADDR_VEC
+	insns.
+	* pa.h (TARGET_BIG_SWITCH): Define.
+	(TARGET_SWITCHES): Add "big-switch" and "no-big-switch".
+	(CASE_VECTOR_MODE): Use TI or DI depending on TARGET_BIG_SWITCH.
+	(CASE_DROPS_THROUGH): Remove definition.
+	(ASM_OUTPUT_ADDR_VEC_ELT): Rewrite to handle TARGET_BIG_SWITCH.
+	(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
+	* pa.md (casesi): Rework to avoid some potential long branch
+	problems (also makes generated code faster!).  Handle
+	TARGET_BIG_SWITCH.
+	(casesi0): Corresponding changes.
+
+Fri Jul 25 08:36:47 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* calls.c: (expand_call): If -fstack-check and temp needed
+	for arg is too large, use alloca.
+	* expr.c (expand_expr, case MODIFY_EXPR): Don't preexpand calls
+	if LHS is an indirect via a constant pointer.
+
+Thu Jul 24 21:49:11 1997  Pat Rankin  <rankin@eql.caltech.edu>
+
+	* bitmap.c (bitmap_operation): Reset CURRENT on deferred deletion.
+
+Wed Jul 23 23:52:14 1997  Chris Smith  <csmith@convex.hp.com>
+
+	* convex.h (CHECK_FLOAT_VALUE): Fix OVERFLOW capitalization.
+
+Wed Jul 23 13:00:47 1997  Richard Earnshaw <rearnsha@cambridge.arm.com>
+
+	* configure.in (arm-*-netbsd*): Fix typo setting tmake_file.
+
+Wed Jul 23 06:39:35 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* configure.in (alpha*): Put quotes around MASK_GAS.
+
+Tue Jul 22 15:24:45 1997  Brendan Kehoe  <brendan@cygnus.com>
+
+	* tree.c (array_type_nelts): Make sure the domain of TYPE is set
+	before we try to use it.
+
+Tue Jul 22 12:26:13 1997  Doug Evans  <dje@cygnus.com>
+
+	* sparc.c (gen_v9_scc): Handle early clobber of result.
+	* sparc.md (seqdi_special): Don't clobber %xcc.
+	(snedi_special, seqdi_special_trunc, snedi_special_trunc): Likewise.
+	(snedi_zero, neg_snedi_zero, seqdi_zero, neg_seqdi_zero): Likewise.
+ 	(snedi_zero_trunc, seqdi_zero_trunc): Likewise. Renamed from ..._sp64.
+	(snedi_zero_trunc_sp32, seqdi_zero_trunc_sp32): Delete.
+
+	* Makefile.in (Makefile): Pass xmake_file, tmake_file to
+	configure.frag
+	(distclean): Delete Make-host, Make-target.
+	* configure.in (host_overrides): Set to Make-host.
+	(dep_host_xmakefile): Loop over all elements in host_make_file.
+	(target_overrides): Set to Make-target.
+	(dep_tmake_file):  Loop over all elements in tmake_file.
+	(configure.frag): Pass dep_host_xmake_file, dep_tmake_file.
+	* configure.frag: New arguments xmake_files, tmake_files.
+	Build Make-host, Make-target.
+
+Mon Jul 21 23:17:44 1997  Paul Eggert  <eggert@twinsun.com>	
+
+	* objc/Make-lang.in, objc/Makefile.in: Comment out lines containing
+	just formfeeds.
+
+Mon Jul 21 14:05:46 1997  Doug Evans  <dje@cygnus.com>
+
+	* Makefile.in (Makefile): Depend on config.status instead
+	of configure.
+	(config.status): Depend on configure.  Run config.status --recheck
+	if out of date.
+	(cstamp-h.in): Use echo instead of touch.
+
+	* reload1.c (reload_cse_mem_conflict_p): Restore handling of
+	(mem:BLK const0_rtx) meaning all memory is clobbered.
+
+Mon Jul 21 06:20:10 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* m68k.md (iorsi_zexthi_ashl16): Mark output operand as earlyclobber.
+
+Sun Jul 20 06:11:30 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* configure.in (alpha*-*-*): Set cpu_type to alpha.
+	Change "alpha-" to "alpha*-" in all entries.
+	Set target_cpu_default for ev5 and ev56 systems.
+	Use symbolic names for target_cpu_default.
+	* alpha.c (override_options): Set default for alpha_cpu
+	from TARGET_CPU_DEFAULT.
+	* alpha.h (MASK_CPU_EV5): New macro.
+
+	* tree.c (contains_placeholder_p): Call contains_this_placeholder_p.
+	(contains_this_placeholder_p): Renamed from contains_placeholder_p.
+	Added new arg, PL.
+	Rework to make more consistent, check more codes, and avoid
+	undefined fields.
+	* expr.c (expand_expr, case PLACEHOLDER_EXPR): Pick outermost
+	object in placeholder_list of right type without a PLACEHOLDER_EXPR.
+
+Sat Jul 19 18:00:01 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* alpha.c (override_options): Allow processor of ev56 or 21164a.
+	(input_operand, case MEM): Correct test involving TARGET_BYTE_OPS.
+	* alpha.h (SECONDARY_{IN,OUT}PUT_RELOAD_CLASS): Don't need for
+	QImode or HImode if TARGET_BYTE_OPS.
+	(ASM_FILE_START): Write a .arch directive.
+	(STACK_CHECK_BUILTIN): New macro.
+	* alpha.md ({zero_,}extend[qh]i[dsh]i2): Rework TARGET_BYTE_OPS cases.
+	(mov[hq]i): Likewise.
+	(extend[qh]i[hsd]i2x): Add missing cases and fix typo in constraint.
+	(reload_{in,out}[qh]i): Disable for TARGET_BYTE_OPS.
+
+Fri Jul 18 23:24:57 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* varasm.c (make_decl_rtl): Don't use ASM_FORMAT_PRIVATE_NAME for
+	local decls with TREE_PUBLIC set.
+	(bc_make_decl_rtl): Likewise.
+
+Fri Jul 18 22:16:28 1997  Doug Evans  <dje@cygnus.com>
+
+	* configure.in: Invoke AC_CONFIG_HEADER.
+	Check for string.h, strings.h, stdlib.h, time.h, unistd.h.
+	Check for whether malloc/realloc/free need to be declared.
+	(links): Rename config.h to config2.h.
+	(AC_OUTPUT): Create cstamp-h.
+	* Makefile.in (config.in,cstamp-h.in): Add rules for.
+	(config.h,cstamp-h): Add rules for.
+	(distclean): Delete config2.h, cstamp-h.
+	(ALL_CFLAGS): Add @DEFS@.
+	* aclocal.m4, acconfig.h: New files.
+
+	* Makefile.in (distclean): Delete Make-host, Make-target.
+	* configure.in (host_overrides): Set to host_xmake_file, don't create
+	Make-host.
+	(target_overrides): Set to tmake_file, don't create Make-target.
+	(language subdir support): Keep together.
+
+	* c-decl.c (duplicate_decls): Set DECL_ABSTRACT_ORIGIN to olddecl
+	if inline function and not new definition.
+
+	* configure.in: Don't loop trying to configure language subdirs.
+	Don't pass to configure.lang variables it doesn't use.
+	* configure.lang: Delete top level directory from loop.
+	Delete code not useful for language subdirs.
+
+Fri Jul 18 08:12:53 1997  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
+
+	* toplev.c (rest_of_compilation): Call reload_cse_regs here.
+	* reload1.c (reload): Don't call it here.
+	(reload_cse_mem_conflict_p): Remove MEM_OFFSET and MEM_MODE args.
+	(reload_cse_mem_conflict_p, case MEM): Call anti_dependence.
+	(reload_cse_invalidate_mem): Update call to reload_cse_mem_conflict_p.
+	(reload_cse_regs): No longer static.
+	Call init_alias_analysis.
+	Ignore CLOBBER in a PARALLEL.
+
+Fri Jul 18 06:44:22 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* objc/Make-lang.in (objc-headers): Fix command for the new build
+	directory layout, don't pass srcdir variable.
+	* objc/Makefile.in (copy-headers): Use $(srcdir) from this
+	makefile, not the parent's.
+
+Thu Jul 17 16:03:03 1997  Doug Evans  <dje@cygnus.com>
+
+	* configure.lang (EXTRA_HEADERS,EXTRA_PASSES,EXTRA_PARTS): Delete.
+	(EXTRA_PROGRAMS,EXTRA_OBJS,EXTRA_GCC_OBJS,MD_DEPS): Delete.
+	(version) Delete duplicate entry.
+	* configure.in (merged_frags): Delete unused variable.
+	(extra_headers_list): Move setting outside of subdir loop.
+	(extra_headers,extra_passes): Don't pass to configure.lang.
+	(extra_programs,extra_parts,extra_objs): Likewise.
+	(host_extra_gcc_objs,gxx_include_dir,md_cppflags): Likewise.
+
+Thu Jul 17 07:00:43 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* expr.h (STACK_CHECK_*): Provide default values.
+	(probe_stack_range): New declaration.
+	* flags.h (flag_stack_check): Likewise.
+	* explow.c (allocate_dynamic_stack_space): Call probe_stack_range.
+	(emit_stack_probe, probe_stack_range): New functions.
+	* function.c (expand_function_end): If function is non-leaf and stack 
+	checking is requested, emit needed probes.
+	* reload1.c (reload): If checking stack, verify frame small enough.
+	* stmt.c (expand_decl): If stack checking, use alloca for large vars.
+	* toplev.c (flag_stack_check): New variable.
+	(f_options): Add "stack-check".
+
+	* reorg.c (mark_target_live_regs): Pass FIRST_PSEUDO_REGISTER to
+	call to EXECUTE_IF_SET_IN_REG_SET.
+
+Wed Jul 16 14:51:00 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* i960.h (ASM_OUTPUT_ALIGNED_BSS): Define.
+	(ASM_OUTPUT_ALIGNED_LOCAL): Use standard method to convert ALIGN
+	to power-of-two of bytes.
+
+	* sparc.h (ASM_OUTPUT_ALIGNED_BSS): Define.
+	* sparc/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Undef before definition.
+
+Wed Jul 16 14:34:09 1997  Klaus Espenlaub  (kespenla@hydra.informatik.uni-ulm.de)
+
+	* calls.c (emit_library_call_value): Initialize all argvec elements.
+
+Wed Jul 16 14:31:39 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* global.c (global_conflicts): Pass FIRST_PSEUDO_REGISTER to
+	call to EXECUTE_IF_SET_IN_REG_SET.
+
+Wed Jul 16 10:57:03 1997  Richard Earnshaw (rearnsha@cambridge.arm.com)
+
+	* From Rob Black (r.black@ic.ac.uk) and Mark Brinicombe
+	(amb@physig.ph.kcl.ac.uk):
+	* configure.in (arm-*-netbsd*): New configuration.
+	* arm/netbsd.h, arm/t-netbsd, arm/xm-netbsd.h: New files.
+	
+Wed Jul 16 10:57:03 1997  Richard Earnshaw (rearnsha@cambridge.arm.com)
+
+	* arm.c (tune_flags): New variable.
+	(target_{cpu,fpe}_name): Delete.
+	(arm_fpu_arch): New variable.
+	(arm_select): Also allow -march=... to configure just the 
+	architecture.
+	(all_procs): Allow armv{2,2a,3,3m,4,4t} for use with -march=.
+	(arm_override_options): Handle -march=, but don't let -mcpu=
+	and -mtune= match the architecture names, since we can only
+	tune for an implementation.  Rework selection of tuning options
+	for floating point.
+	(use_return_insn): Support interworking with Thumb code.
+	(arm_rtx_costs): Rework multiply costs so that cost is based on
+	the tune, not the architecture.
+	(f_register_operand): New function.
+	(output_return_instruction): Support interworking with Thumb code.
+	(output_func_epilogue): Support interworking with Thumb code.
+	Remove redundant calculation of code_size. Use floating-point
+	load-multiples if permitted.
+	(emit_sfm): New function.
+	(arm_expand_prologue): Use floating-point store-multiples if 
+	permitted.
+
+	* arm.h (CPP_CPU_ARCH_SPEC): Handle -march=...
+	(TARGET_OPTIONS): Add arch= and fp=.  Delete fpe=.
+	(enum processor_type): Add PROCESSOR_NONE, for use in all_procs table.
+	(FP_DEFAULT): Default floating point architecture for generic 
+	back-end.
+	(PREDICATE_CODES): Add f_register_operand.
+
+	* arm.md (*push_fp_multi): New pattern.
+
+
+Tue Jul 15 22:08:47 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* Makefile.in (exeext): Set to build_exeext not exeext.
+	* configure.in (exeext): Delete redundant set and AC_SUBST call.
+	Change remaining AC_SUBST to use build_exeext instead of exeext.
+
+Tue Jul 15 15:48:25 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+	* configure.in: Fix calculation if default thread support is enabled.
+
+Tue Jul 15 13:38:46 1997  Mike Meissner  <meissner@cygnus.com>
+
+	* rtl.h (replace_regs): Declare.
+
+Mon Jul 14 16:18:19 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* i960.h (ASM_OUTPUT_MI_THUNK): Define.
+
+	* dwarf2out.c (gen_subprogram_die): Remove unreachable and redundant
+ 	code.
+
+Mon Jul 14 14:22:45 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* calls.c (emit_library_call): Use right index into argvec array
+	when iterating over arguments which need to be pushed on the stack.
+	(emit_library_call_value): Likewise.
+
+Mon Jul 14 08:17:41 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* gcc.c (convert_filename): Fix typo.
+
+Mon Jul 14 08:10:12 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* configure.in: Clear headers and lib2funcs before re-reading
+	config-lang.in.
+
+	* m68k/linux.h (LINK_SPEC): Fix last change.
+
+Mon Jul 14 08:03:38 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+	* configure.in (sparc-*-linux-gnu{*,libc1*}): Add sparc/t-linux.
+	* sparc/t-linux: New file.
+
+	* alpha/elf.h (LINK_SPEC): Fix typo.
+	* configure.in (alpha-*-linux-gnu*): Set tmake_file.
+	* alpha/t-linux: New file.
+
+Mon Jul 14 07:41:37 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* m68k.c (output_{and,ior,xor}si3): New functions from patterns bodies.
+	* m68k.h (output_{and,ior,xor}si3): New extern declarations.
+	* m68k.md (adddi3, subdi3): Allow constant operand.
+	(anddi3, iordi3, xordi3): New patterns.
+	({and,ior,xor}si3_internal): Use corresponding output_???si3 function.
+
+Mon Jul 14 07:33:11 1997  Fila Kolodny  <fila@ibi.com>
+
+	* configure.in (*-*-gnu*): Add crt{begin,end}S.o to extra_parts.
+
+Mon Jul 14 07:26:36 1997  Craig Burley  <burley@gnu.ai.mit.edu>
+
+	* varasm.c (assemble_variable): If low part of size
+	doesn't fit in an int, variable is too large.
+
+Mon Jul 14 06:51:37 1997  Mike Meissner  <meissner@cygnus.com>
+
+	* bitmap.{h,c}: New files.
+	* Makefile.in (OBJS): Add bitmap.o.
+	(BASIC_BLOCK_H): New make variable for basic-block.h, bitmap.h.
+	({flow,combine,regclass,local-alloc,reload1,reorg,sched}.o): Use
+	BASIC_BLOCK_H variable instead of basic-block.h.
+	* basic-block.h (*REG_SET): Delete old implementation; use bitmap.h.
+	(regset_{size,bytes}): Delete.
+	(regs_live_at_setjmp): Declare.
+	(EXECUTE_IF_SET_AND_RESET_IN_REG_SET): Delete.
+	* flow.c (init_regset_vector): Make global; don't take basic block
+	times # of pseduos as argument.
+	(life_analysis): Change all init_regset_vector calls.
+	Use free_regset_vector to release arrays only flow uses at end.
+	(allocate_for_life_analysis): Change init_regset_vector call.
+	Don't set regset_{size,bytes}.
+	(free_regset_vector): Call FREE_REG_SET to release any
+	memory allocated by each vector.
+	(propagate_block): Call FREE_REG_SET on dead/live.
+	(mark_used_regs): Don't use REGSET_ELT_TYPE anymore.
+	* output.h (allocate_for_life_analysis): Add declaration.
+	(regno_uninitialized, regno_clobbered_at_setjmp): Likewise.
+	(dump_flow_info, flow_analysis): Likewise.
+	* regclass.c (init_reg_sets): Invoke INIT_ONCE_REG_SET.
+	(allocate_reg_info): Invoke MAX_REGNO_REG_SET.
+	(regset_release_memory): Free basic_block_live_at_start storage.
+	* reorg.c (mark_target_live_regs): Delete unused variables.
+	* sched.c (schedule_block): Free space associated with
+	reg_pending_sets and old_live_regs.
+	(schedule_insns): Free bb_{dead,live}_regs on first pass.
+	(sched_analyze_insn): Use EXECUTE_IF_SET_IN_REG_SET and then clear.
+	* toplev.c (rest_of_compilation): Call regset_release_memory.
+
+Mon Jul 14 00:14:13 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* toplev.c (main): Prefer DWARF 2 or stabs with -ggdb.
+	* ns32k/tek6000.h (PREFERRED_DEBUGGING_TYPE): DBX_DEBUG.
+	* alpha.h (PREFERRED_DEBUGGING_TYPE): SDB_DEBUG.
+	* mips.h (PREFERRED_DEBUGGING_TYPE): SDB_DEBUG.
+
+Sun Jul 13 15:11:08 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* stupid.c (stupid_mark_refs): If setting reg set only in this
+	insn and not referenced, make REG_UNUSED note.
+
+Sun Jul 13 14:03:19 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* gcc.c (process_command): If -save-temps and -pipe were specified
+	together, don't do -pipe.
+
+Sun Jul 13 12:27:03 1997  Doug Evans  <dje@cygnus.com>
+
+	* gcc.c (main): Handle blank in version_string when comparing
+	with compiler_version.
+
+Sat Jul 12 01:53:55 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* sparc.c (output_function_prologue): Fix offset from CFA.
+	(sparc_flat_output_function_prologue): Likewise.
+
+Fri Jul 11 09:49:15 1997  Jeffrey A Law  (law@cygnus.com)
+	
+	* mips.c (epilogue_reg_mentioned_p): Delete unused function.
+	(mips_epilogue_delay_slots): Likewise.
+	(function_epilogue): Greatly simplify.
+	(mips_expand_epilogue): If we have a null prologue/epilogue,
+	then use a normal return insn.  Emit blockage insns before
+	stack pointer adjustments.
+	(mips_can_use_return_insn): Renamed from simple_epilogue_p.  All
+	callers changed.  Do not use return insns if $31 is live in the
+	function or if generating profiling information.
+	* mips.h (DELAY_SLOTS_FOR_EPILOGUE): Delete.
+	(ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
+	* mips.md (return): Remove expander and change the pattern to
+	look like a standard "return" insn.
+	(return_internal): Show use of $31 explictly.
+	(epilogue expander): Enable.
+
+Thu Jul 10 13:04:53 1997  Doug Evans  <dje@cygnus.com>
+
+	* cccp.c (INO_T_EQ): Return 0 for MSDOS.
+
+	* Makefile.in (CC): Use autoconf value.
+
+Tue Jul  8 18:08:00 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* dwarf2out.c (gen_subprogram_die): When handling declarations, test
+	DECL_CONTEXT not decl_class_context before equate_decl_number_to_die.
+
+Tue Jul  8 16:47:13 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.md (movsi define_split): Use unsigned HOST_WIDE_INT,
+	not unsigned.
+
+Sat Jul  7 00:01:41 1997  Jim Meyering <meyering@eng.ascend.com>
+
+	* i386/t-sol2 (crt[1in].o): Also depend on $(GCC_PASSES).
+
+Fri Jul  4 11:45:39 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (DWARF_CIE_HEADER_SIZE, DWARF_FDE_HEADER_SIZE,
+ 	size_of_cfi, size_of_fde, calc_fde_sizes, next_fde_offset,
+ 	cie_size): Lose.
+	(ASM_OUTPUT_DWARF_STRING): Move earlier.
+	(INCOMING_FRAME_SP_OFFSET): Provide default.
+	(initial_return_save): Adjust for CFA offset.
+	(dwarf2out_frame_debug): Lookup initial CFA offset when setting up.
+	(output_call_frame_info): Use label subtraction for length fields.
+  	Add pointer to exception region information in for_eh case.
+	(dwarf2out_do_frame): New fn.
+	(dwarf2out_frame_init): Use INCOMING_FRAME_SP_OFFSET.
+	(dwarf2out_frame_finish): Don't bother emitting .debug_frame for
+	non-Irix targets.  Just emit .eh_frame.
+	(output_die): Refer to an FDE with label subtraction.
+	* i386.h (INCOMING_FRAME_SP_OFFSET): Define.
+	* defaults.h (DWARF2_UNWIND_INFO): Define if
+ 	INCOMING_RETURN_ADDR_RTX is provided.
+	* final.c (final): Don't call dwarf2out_frame_debug unless we are
+ 	doing dwarf 2.
+
+Thu Jul  3 17:37:52 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* fp-bit.c (unpack_d): Check fraction not sign to distinquish QNaN.
+
+Wed Jul  2 09:48:03 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* loop.c (strength_reduce): Make sure register does not exceed the
+	table size when looking up the last UID.
+
+Wed Jul  2 07:47:44 1997  Nick Burrett  <n.a.burrett@btinternet.com>
+
+	* genoutput.c (process_template): Place increment expression
+	outside of putchar function call.
+
+Wed Jul  2 06:56:52 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+	* sparc/linux.h (LIBGCC_SPEC): Removed.
+	(CC1_SPEC): Add %{profile:-p}.
+	({CPP,LIB,LINK}_SPEC): Choose glibc 1 or 2 depending on USE_GNULIBC_1.
+	* configure.in (sparc-*-linux-gnulibc1*): New configuration.
+
+	* configure.in (powerpc-*-linuxgnu*): Default thread_file is posix.
+	Set xmake_file to x-linux.  Add extra_parts.
+	* rs6000/linux.h (LINK_SPEC): Defined.
+
+	* m68k/linux.h (LINK_SPEC): Pass -shared for -shared.
+	({CPP,LINK}_SPEC): Choose for glibc 1 or 2 depending on USE_GNULIBC_1.
+	* configure.in (m68k-*-linux-gnu*): Default thread_file is `posix'.
+	(m68k-*-linux-gnulibc1): New configuration.
+
+	* alpha/elf.h (LINK_SPEC): Change ld-gnu.so.1 to ld-linux.so.2.
+	* configure.in (alpha-*-linux-gnu*): Default thread_file is `posix'.
+
+Wed Jul  2 06:12:37 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* alpha.md (divsi3, modsi3, udivsi3): Comment out.
+	(extendsfsd2_no_tp): Add alternative with output in MEM, input in REG.
+
+	* configure.in (*-linux*): Add "-gnu" to names to match.
+
+	* libgcc2.c (_trampoline): Add stdcall attribute to VirtualProtect
+	on i386.
+
+	* objc/objc.gperf: Renamed from gperf.
+
+Wed Jul  2 05:42:19 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* objc/Make-lang.in ($(srcdir)/objc/objc-parse.c): Fix command
+	to use the right file names.
+
+Tue Jul  1 23:25:42 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* reorg.c (redundant_insn): If INSN or possible match has REG_UNUSED
+	note, don't have match.
+
+Tue Jul  1 18:36:24 1997  Doug Evans  <dje@cygnus.com>
+
+	* mips.c (mips_output_external): Don't output .extern's for
+	variables in user specified sections unless they're .sbss/.sdata.
+
+Tue Jul  1 18:30:26 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* cse.c (find_best_addr): Add missing rtx_cost arguments.
+
+	* fp-bit.c (float_to_usi): Move code for negative numbers before code
+	for infinity.  Modify infinty code to only handle positive infinities.
+
+Tue Jul  1 11:16:41 1997  Robert Lipe  <robertl@dgii.com>
+
+	* fixinc.sco: Restore pwd aftercopy.
+	Convert declaration of abs in math.h to prototype.
+	Fix static functions in sys/stat.h for C++.
+
+Tue Jul  1 10:55:47 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.md ({add,ior,xor}si3): Change to use define_expand wrapper
+	and split add/ior/xor of large constants early.
+	(andsi3): Remove 6/29 code to do and of large constants.
+	(nor, nand, eqv, maskir): Add names to all logical define_insns.
+
+Tue Jul  1 09:03:35 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* h8300.h (BIGGEST_FIELD_ALIGNMENT): Remove definition.
+	* mips.h (BIGGEST_FIELD_ALIGNMENT): Likewise.
+
+Mon Jun 30 14:58:00 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* sh.c (sh_expand_epilogue): Emit blockage insn before cutting
+	back stack.
+
+Sun Jun 29 11:27:07 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.h (TARGET_FLAGS): Add -m{,no-}update to suppress
+	creating load/store with update instructions, and also
+	-m{,no-}fused-madd to suppress the generation of fused add and
+	multiply instructions.  Move debug flags to TARGET_OPTIONS.
+	(GO_IF_LEGITIMATE_ADDRESS): Don't allow PRE_{INC,DEC} if -mno-update.
+	(GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
+	(rs6000_debug_{name,stack,arg}): Add declarations.
+	(toc_initialized): Likewise.
+	(got_no_const_operand): Likewise.
+	(PREDICATE_CODES): Add got_no_const_operand.
+	(toc_section): Make toc_initialized a global.
+	(RTX_COSTS): Set appropriate costs for add, logical operators that
+	are really two instructions.
+	
+	* rs6000.c (rs6000_debug_{name,stack,arg}): Add definitions.
+	(rs6000_override_options): Process debug flags.
+	(toc_initialized): Global to say toc initialized.
+	(small_data_operand): Use #if TARGET_ELF, not #ifdef TARGET_SDATA.
+	(rs6000_init_expanders): Likewise.
+	(SMALL_DATA_RELOC): Likewise.
+	(got_no_const_operand): Recognize SYMBOL_REF and LABEL_REF.
+	(rs6000_makes_calls): System V profiling doesn't count as a call.
+	(rs6000_stack_info): Likewise.
+	(rs6000_output_load_toc_table): Take register number argument to
+	determine register to load.  Generate correct code if more than
+	one toc table is done in System V due to profiling or non-local
+	gotos.  If System V toc is not initialized, initialize it now.
+	(rs6000_allocate_stack_space): Move code from output_prolog to
+	allocate stack space.  Take -mno-update into account.
+	(output_prolog): Call rs6000_allocate_stack_space.  Only set
+	rs6000_pic_func_labelno if not profiling.
+	(output_function_profiler): Implement System V profiling.
+	(and_operand): Don't call reg_or_short_operand.
+	(rs6000_finalize_pic): If not optimizing, insert a USE of the GOT
+	register as the last insn.
+	
+	* rs6000.md (load/store update): Take -mno-update into account.
+	If -msoft-float, support SF load/store with update to GPR regs.
+	(allocate_stack): Take -mno-update into account.
+	(add/subtract + multiply instructions): Take -mno-fused-madd into
+	account.
+	(nonlocal_goto_receiver): Specify register # to load.
+	({add,and,ior,xor}si3): Recognize operation done with full 32 bit
+	constant, splitting latter if need be.
+	(andsi3 define_split): Fix up splitting andsi3 of large constant.
+	({ior,xor}si3 define_split): Use GEN_INT to create integer rtx
+	values.
+	(movsi_got{,_internal}): Split the load of a CONST into load of
+	the SYMBOL_REF/LABEL_REF and an add.
+	(movsi): Know that addsi3 can handle large values now for NT.
+
+	* sysv4.h (TARGET_SDATA): Remove explicit bit for -msdata.
+	(SUBTARGET_OVERRIDE_OPTIONS): Likewise.
+	(ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
+	(SUBTARGET_SWITCHES): Indicate -m{,no-}sdata doesn't set any flags.
+	(ASM_SPEC): Only pass -m{,no-}reg-names if assembling .s/.S files.
+	(CC1_SPEC): If -msdata, invoke compiler with -msdata=default.
+	(PROFILE_BEFORE_PROLOGUE): Likewise.
+	(RS6000_MCOUNT): Define as "_mcount".
+	(toc_section): Make toc_initialized a global.
+
+Fri Jun 27 19:01:11 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+	* config/t-linux-gnulibc1: New file.
+	* configure.in (i[3456]86-*-linux*): Default thread_file is `posix'.
+	(i[3456]86-*-linux*gnulibc1): New case.
+	* config/linux.h (LIB_SPEC): Choose for glibc 1 or 2 depending
+	on USE_GNULIBC_1.
+	* i386/linux.h (CPP_SPEC, LINK_SPEC): Likewise.
+
+Fri Jun 27 19:00:52 1997  Ralf Baechle  <ralf@waldorf-gmbh.de>
+
+	* config/linux.h (PREFERRED_DEBUGGING_TYPE): Undefine before define.
+
+Fri Jun 27 18:35:04 1997  Alan Modra  <alan@spri.levels.unisa.edu.au>
+	
+ 	* configure.in: Clean up Make-{host,target,hooks} in all
+	subdirs, not just '.'.
+	* Makefile.in (distclean): Delete */Make-{host,target,lang,hooks}.
+
+Fri Jun 27 18:27:11 1997  Fila Kolodny  <fila@ibi.com>
+
+	* config/xm-gnu.h (fcntl.h): Only include if not building libgcc.a.
+
+Fri Jun 27 18:17:44 1997  Doug Evans  <dje@cygnus.com>
+
+	* configure.frag: Rewrite.
+
+	* objc/Make-lang.in (OBJC_CCOMMON): Object files don't go in srcdir.
+	(OBJC_OBJS): Likewise.
+	(OBJC_O): Likewise.
+	(objc-parse.o, objc-act.o): Fix rules.
+	(objc/libobjc files): Fix rules.
+
+Fri Jun 27 13:23:38 1997  Andrew Cagney  <cagney@tpgi.com.au>
+
+	* fp-bit.c (float_to_si): Correct return value when Inf.
+
+Fri Jun 27 10:47:09 1997  Scott Christley <scottc@net-community.com>
+
+	* Makefile.in (DLLTOOL): Define.e
+	* objc/Make-lang.in (libobjc_entry.o, libobjc_s.a, libobjc.dll):
+	New targets.
+	(objc.install-normal): Install Objective-C runtime as a DLL.
+	(objc.mostlyclean): Clean up files used to build DLL.
+	* objc/libobjc.def: New file.
+	* objc/libobjc_entry.c: New file.
+
+	* objc/sendmsg.c (search_for_method_in_list): No longer static.
+
+	* Makefile.in (GCC_THREAD_FILE): Renamed from OBJC_THREAD_FILE.
+	* configure.lang (GCC_THREAD_FILE): Likewise.
+	* configure.in (--enable-threads): New parameter.
+	* objc/Make-lang.in (OBJC_THREAD_FILE): New definition.e
+	* objc/config-lang.in: Print message about ObjC thread file.
+
+	* cccp.c (INO_T_EQ): Define for Win32 but not Cygwin32.
+	* i386/mingw32.h: New file.
+	* i386/xm-mingw32.h: New file.
+	* configure.in (i[3456]86-*-mingw32): New target.
+	* protoize.c (link): Eliminate definition on Win32.
+
+	* objc/thr-posix.c (__objc_thread_yield): Use sched_yield instead.
+
+Fri Jun 27 10:36:41 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* stor-layout.c (layout_record, PCC_BITFIELD_TYPE_MATTERS):
+	Round up when calculating possible end address.
+
+Wed Jun 25 19:54:29 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* unroll.c (final_giv_value): Verify that bl->initial_value is
+	invariant before trying to use it.
+
+Wed Jun 25 18:13:05 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/sysv4.h (WCHAR_TYPE{,_SIZE}): Make wchar_t long as per
+	ABI spec.
+
+Wed Jun 25 16:56:16 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* sparc.h (INCOMING_RETURN_ADDR_RTX): Define.
+	(DBX_REGISTER_NUMBER): Fix frame pointer regno for -mflat.
+	* sol2.h (DBX_REGISTER_NUMBER): Likewise.
+	* sparc.c (save_regs): Emit dwarf2 frame debug info.
+	(output_function_prologue, sparc_flat_save_restore,
+	sparc_flat_output_function_prologue): Likewise.
+
+	* dwarf2.h (enum dwarf_call_frame_info): Add DW_CFA_GNU_window_save.
+	* dwarf2out.c (dwarf_cfi_name, output_cfi): Support it.
+	(dwarf2out_cfi_label): Make non-static.
+	(initial_return_save): Support PLUS.
+	(dwarf2out_window_save, dwarf2out_return_save, 
+	dwarf2out_return_reg): New fns.
+
+	* dwarf2out.c (SECTION_FORMAT): Use PUSHSECTION_FORMAT, if defined.
+	(DEBUG_INFO_SECTION): Rename from DEBUG_SECTION.
+	(DEBUG_LINE_SECTION): Rename from LINE_SECTION.
+	* mips/iris6.h: Likewise.
+
+Wed Jun 25 16:25:41 1997  Scott Christley <scottc@net-community.com>
+
+	* Makefile.in (GCC_PASSES): Don't define with $(exeext).
+	* configure.in ({cc,stage_prefix}_set_by_configure): Eliminate extra
+	comma and don't pass value to configure.lang.
+	* objc/Make-lang.in (objc-runtime): Add objc-headers.
+
+	* configure.in: Execute configure.frag in a shell.
+
+	* configure.in (cross_overrides, build_overrides): Default to
+	/dev/null to help platforms where sed cannot handle empty filenames.
+
+	* Reorganize thread implementation to make a clearly defined
+	front-end/back-end interface.
+	* objc/thr-{decosf1,irix,mach,os2,posix,pthreads,single}.c: Completely
+	rework according to new interface.
+	* objc/thr-{solaris,win32}.c: Likewise.
+	* objc/thr.c: Likewise.
+	* objc/thr.h: Define front-end/back-end interface functions and
+	structures.
+
+Wed Jun 25 16:14:10 1997  Ovidiu Predescu <ovidiu@net-community.com>
+
+	* Complete implementation of +load.
+	* objc/init.c (objc_send_load): New function.
+	(objc_class_tree): New structure.
+	(create_tree_of_subclasses_inherited_from): New function.
+	(__objc_tree_insert_class): New function.
+	(objc_tree_insert_class): New function.
+	(objc_preorder_traverse): New function.
+	(objc_postorder_traverse): New function.
+	(__objc_tree_print): New function.
+	(__objc_destroy_class_tree_node): New function.
+	(class_is_subclass_of_class): New function.
+	(__objc_exec_class): Allocate class tree list and load hash table.
+	(__objc_send_message_in_list): Rewrite using hash table.
+	(__objc_send_load): Remove calls to _objc_load_callback.
+	(objc_send_load): Make static.  Create Tree of classes resembling
+	class hierarchy for all modules.  Call __objc_send_load on all of 
+	the modules in __objc_module_list.
+	(__objc_create_classes_tree): New function.
+
+	* objc/encoding.h (method_get_sizeof_arguments): Fix typo.
+	* objc/objc-api.h (OBJC_ERR_BAD_STATE): New error code.
+	On NeXT redefine object_copy and object_dispose to avoid
+	a conflict with those defined in system library.
+	* objc/selector.c (__objc_register_instance_methods_to_class): New 
+	function.
+	* objc/runtime.h: Likewise.  Add missing function prototypes.
+
+Wed Jun 25 15:09:01 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* Makefile.in (Makefile): Execute configure.frag from srcdir.
+
+	* Makefile.in (configure): Target is $(srcdir)/configure.
+
+Tue Jun 24 15:18:14 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* m68k.h (LIMIT_RELOAD_CLASS): Define.
+
+	* recog.c (constrain_operands): When checking earlyclobbers, use
+	operands_match_p instead of rtx_equal_p.
+
+	* dwarfout.c (field_byte_offset): Check for object_offset_in_bits
+	greater than bitpos_int and recompute object_offset_in_bytes if true.
+
+	* mips.md (movdi_internal): Add x/J alternative.
+	(movdi_internal2): Add x/J alternative; change a/I to a/J.
+	(movsi_internal1, movsi_internal2): Change x/I alternative to x/J.
+
+Tue Jun 24 08:49:56 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.h (ASM_OUTPUT_SECTION_NAME): Fix typo.
+
+Mon Jun 23 22:48:00 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* unroll.c (find_splittable_givs): Set splittable_regs_updates to
+	biv_count for reduced givs.
+
+Mon Jun 23 10:51:53 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10200.c, mn10200.h, mn10200.md: New files for mn10200 port.
+	* lib1funcs.asm, divmod.c, udivmod.c, udivmodsi4.c: Likewise.
+	* t-mn10200, xm-mn10200.h, va-mn10200.h: Likewise.
+	* Makefile.in (USER_H): Add va-mn10200.h.
+	* varargs.h, stdarg.h: Include va-mn10200.h.
+	* configure.in (mn10200-*-*): New target.
+	
+Sun Jun 22 06:47:19 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* combine.c (force_to_mode): Don't do anything for ASM_OPERANDS insn.
+
+Sun Jun 22 06:29:28 1997  J. Kean Johnston  <jkj@sco.com>
+
+	* ginclude/stdarg.h: Protect va_list definition from SCO headers.
+	* ginclude/varargs.h: Likewise.
+
+Sat Jun 21 20:56:23 1997  Scott Christley <scottc@net-community.com>
+
+	* Make ObjC a front-end language.
+	* Makefile.in (LANGUAGES, COMPILERS, .PHONY, stmp-int-hdrs): Remove
+	specific references to ObjC compiler and source files.
+	({mostly,dist,maintainer,}clean, install-normal): Likewise
+	(OBJC_OBJS, OBJC, OBJECTIVE-C, cc1obj, objc-runtime): Rules deleted.
+	(libobjc.a, sublibobjc.a, objc-parse.{o, c, y}): Rules deleted.
+	(objc-headers, install-libobjc): Rules deleted.
+	* objc/Make-lang.in: New file; from rules deleted above.
+	* objc/config-lang.in: New file.
+	* objc/Makefile.in: Changes to support ObjC as a front-end language;
+	renamed from Makefile.in.
+	* objc-act.{c,h}, objc-parse.{c,y}, objc-tree.def: Moved to objc dir.
+
+Sat Jun 21 07:54:36 1997  Robert Lipe <robertl@dgii.com>
+
+	* fixinc.sco (math.h): Correct the collision of "exception".
+
+Sat Jun 21 06:51:40 1997  Peter Gerwinski  <peter@agnes.dida.physik.uni-essen.de>
+
+	* rs6000.c (output_epilog): Name is "GNU Pascal", not all caps.
+
+Sat Jun 21 06:29:19 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+	* gcc.c (main): Check for and read ${libdir}/gcc-lib/specs to
+	override the default specs.
+
+Fri Jun 20 17:20:15 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* mips.c (output_block_move): When loading addresses into registers,
+	add checks for ABI_N32 and ABI_64.
+	(mips_expand_prologue): Add check for SImode in code splitting
+	tsize_rtx when it is large_int.
+
+Fri Jun 20 09:07:31 1997  Russell King  <rmk92@ecs.soton.ac.uk>
+
+	* configure.in (arm-*-linuxaout): New target.
+	* arm/lib1funcs-linux.asm, arm/linux-gas.h: New files.
+	* arm/linux.h, arm/t-linux, arm/xm-linux.h: New file.
+	* xm-linux.h: Undef some macros before defining them.
+
+Thu Jun 19 21:18:20 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* dwarf2out.c (output_line_info): Always use DW_LNE_set_address instead
+	of DW_LNS_fixed_advance_pc for line number addresses.
+	(size_of_line_info): Adjust size calculation as per above change.
+	(text_end_label): Make it static.
+
+Thu Jun 19 14:55:49 1997  Brendan Kehoe  <brendan@cygnus.com>
+
+	* toplev.c (xmalloc): Only give the fatal msg if SIZE is non-zero.
+
+Sun Apr 27 23:19:13 1997  Ulrich Drepper  <drepper@cygnus.com>
+
+	* libgcc2.c (__eh_type):  Remove `extern' to make this a definition.
+
+Wed Jun 18 18:10:16 1997  Per Bothner  <bothner@cygnus.com>
+
+	* dbxout.c (dbxout_type_fields):  Skip field if DECL_IGNORED_P.
+
+Wed Jun 18 18:04:33 1997  Mike Stump  <mrs@cygnus.com>
+
+	* except.c (end_eh_unwinder): If we have a return instruction, we
+	have to make sure we use it and don't fall off the end of the
+	function in the unwinder.
+
+Wed Jun 18 14:27:58 1997  Mike Stump  <mrs@cygnus.com>
+ 
+	* flow.c (find_basic_blocks): Fix end case bug.
+ 
+Tue Jun 17 18:35:57 1997  Mike Stump  <mrs@cygnus.com>
+
+	* libgcc2.c (__eh_pcnthrow): Add support -fno-sjlj-exceptions
+	-fPIC exception handling on the SPARC.
+	* sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
+	* libgcc2.c (__eh_ffetmnpc): Remove.
+
+Mon Jun 16 20:28:51 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* collect2.c (extract_string): Null-terminate.
+
+Mon Jun 16 14:38:44 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* combine.c (set_nonzero_bits_and_sign_copies): Use REG_SET macros
+	instead of doing bit operations directly.
+	(try_combine,reg_dead_at_p): Ditto.
+	* caller-save.c (save_call_clobbered_regs): Ditto.
+	* reload1.c (reload): Ditto.
+	* local-alloc.c (update_equiv_regs,block_alloc): Ditto.
+	* sched.c (schedule_block): Dito.
+
+Sun Jun 15 20:46:12 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* dwarf2out.c (dwarf2out_frame_debug): Handle IOR.
+	(struct limbo_die_struct): Define.
+	(TYPE_DECL_IS_STUB): Call decl_ultimate_origin if DECL_ABTRACT_ORIGIN
+	is set.
+	(limbo_die_count): Delete.
+	(libmo_die_list): Define.
+	(new_die): Add die to limbo_die_list instead of incrementing
+	limbo_die_count.
+	(add_AT_location_description): Renamed from add_location_attribute.
+	New parameter attr_kind.
+	(add_location_or_const_value_attribute, gen_subprogram_die,
+	add_bound_info): Change call to add_AT_location_description.
+	(add_bound_info): Add call to contains_placeholder_p.  Ignore
+	MAX_EXPR and VAR_DECL.
+	(add_subscript_info): Ignore the index type if it is an unnamed
+	integral type.
+	(scope_die_for): Move check for function-local tags after code setting
+	containing_scope, and add check for non-NULL containing_scope
+	(add_type_attribute): If unnamed type, use TREE_TYPE instead.
+	(gen_enumeration_type_die, gen_struct_or_union_type_die): Call
+	add_child_die if die_parent is NULL.
+	(gen_subprogram_die): Ifdef out DW_AT_static_link code.
+	(decls_for_scope): Delete decrement of limbo_die_count.
+	(dwarf2out_finish): Add code to traverse the limbo_die_list, and
+	call add_child_die if die_parent is NULL.  Delete limbo_die_count code.
+	* mips.c (mips_expand_prologue): If tsize_rtx is large_int, emit two
+	insns instead of one splitable insn, setting RTX_FRAME_RELATED_P.
+
+Fri Jun 13 19:33:35 1997  Brendan Kehoe  <brendan@cygnus.com>
+
+	* fixincludes: Also fix AIX NULL macro in sys/{dir,param,types}.h.
+
+Thu Jun 12 22:53:12 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* m68k.md (mov[qhs]i): Remove pair of constraints which allow
+	offsetable memory addresses to be moved to the same for TARGET_5200.
+
+Thu Jun 12 15:33:01 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.h (SELECT_RTX_SECTION): Place symbolic operands into the
+	data section.
+
+	* pa.c (emit_move_sequence): Rewrite code to handle arithmetic
+	involving plabels.
+
+Wed Jun 11 08:57:14 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+	* tree.c (unsave_expr_now): Avoid recursing into the parts of
+	the tree that are RTL.
+
+Thu Jun 12 09:43:55 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* reorg.c (emit_delay_sequence): Call set_new_first_and_last_insn
+	after the new sequence insn has been spliced into the insn chain.
+
+Wed Jun 11 23:10:49 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.md (call, call_value): Use "call" instead of "calls"
+	for calls to named functions.
+
+Wed Jun 11 00:22:34 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* configure, configure.in: Restore changes from Feb 15 to Apr 13
+	lost during conversion to autoconf.
+
+Tue Jun 10 18:23:35 1997  Mike Stump  <mrs@cygnus.com>
+
+	* stmt.c (expand_decl_cleanup): Avoid core dumping when exceptions
+	aren't on.
+	
+Tue Jun 10 18:22:30 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* collect2.c (extract_string): New fn.
+	(main): Use it.
+
+Tue Jun 10 17:40:15 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* expr.c (emit_group_load): Add case using gen_lowpart. 
+
+Tue Jun 10 17:14:58 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/rs6000.c (rs6000_override_options): If -mcpu=403, set
+	-mstrict-align as well.
+
+	* rs6000/t-ppc{,gas} (MULTILIB_EXTRA_OPTS): Build libraries with
+	-mstrict-align.
+
+	* configure.in ({powerpc,rs6000}*-*-*): Add embedded targets to
+	--with-cpu=n support.
+
+Tue Jun 10 07:06:12 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+	* flow.c (mark_used_regs): Fix typo in Jun 4 change.
+
+Mon Jun  9 20:26:26 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* Makefile.in (MAYBE_USE_COLLECT2): Renamed from MAYBE_USE_COLLECT.
+
+Mon Jun  9 19:42:21 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* fold-const.c (fold): Don't do COND_EXPR -> MIN_EXPR folding if it
+	loses information that might be needed by a later use as an lvalue.
+
+Mon Jun  9 19:10:50 1997  Alexandre Oliva <oliva@dcc.unicamp.br>
+
+	* configure.in: Don't override a user's setting for prefix
+	on platforms that use the native prefix.
+
+Mon Jun  9 19:00:49 1997  Brendan Kehoe  <brendan@melange.gnu.ai.mit.edu>
+
+	* integrate.c (expand_inline_function): Use the mode of FNDECL's
+	result rtl, not the result type itself, in setting ARRIVING_MODE.
+
+	* reload1.c (reload): Use xmalloc instead of alloca for the label
+	offsets in OFFSETS_AT and OFFSETS_KNOWN_AT.
+
+Mon Jun  9 15:16:52 1997  Mike Stump  <mrs@cygnus.com>
+
+	* flow.c (find_basic_blocks): Eliminate more dead code, enables
+	dead throws to be eliminated.
+
+Mon Jun  9 17:15:50 1997  Stephen L Moshier  <moshier@world.std.com>
+
+	* alpha.c (check_float_value):  Underflow and overflow constants
+	are different for FLOAT_VAX and default targets.
+
+Mon Jun  9 16:48:21 1997  Scott Christley <scottc@net-community.com>
+
+	* Makefile.in (Makefile): Process language fragments.
+	* configure.frag: New file.
+	* configure.in: Move language fragment processing to configure.lang.e
+
+	* Makefile.in (GCC_PASSES): Prevent all compilers from being
+	built when only the C compiler is needed.
+
+	* configure.in (cross_overrides, build_overrides): Use absolute
+	path to GCC top-level source directory.
+
+	* configure.in: Save target alias for language directories.
+
+	* configure.in (with-gxx-include-dir): New parameter for
+	setting the g++ header file directory.
+	* Makefile.in (gxx_include_dir): Use autoconf variable.
+
+	* configure.in: Add parameter for setting local prefix.
+
+	* configure.lang: New file.
+	* configure.in: Move language subdirectory Makefile processing
+	into configure.lang.
+
+Mon Jun  9 16:44:47 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* sched.c (attach_deaths): Fix typo in Jun 4 change.
+
+Mon Jun  9 15:13:00 1997  Marc Lehmann  (pcg@goof.com)
+
+	* varasm.c (assemble_end_function): Switch back to function
+	section after outputting constant pool.
+
+Mon Jun  9 14:47:22 1997  Paul Eggert  <eggert@twinsun.com>
+
+	* tree.c (change_main_variant): Remove unused function.
+	(build_array_type): Remove obsolete references to
+	change_main_variant.
+	* c-decl.c (complete_array_type): Likewise.
+
+	* c-common.c (c_build_type_variant): Don't futz with main type
+	variant of array since C Standard requires main type variant of
+	array-of-const also be array-of-const.
+
+	* Makefile.in: Comment out lines containing just formfeeds.
+
+	* Makefile.in (distclean): Remove config.bak.
+	(maintainer-clean): Output warning.
+	Do not remove `configure'.
+
+Mon Jun  9 14:44:17 1997  J.T. Conklin  <jtc@netbsd.org>
+
+	* configure.in (*-*-netbsd): Restore changes of Apr 13th lost in
+	autoconf conversion: tmake_file now t-netbsd; delete xmake_file.
+
+Mon Jun  9 14:39:29 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* expr.c (expand_builtin, case BUILT_IN_FRAME_ADDRESS):
+	Use correct function name in error message.
+
+	* Makefile.in (diff): Exclude bi-parser.h.
+
+	* i386.h (CC1_CPU_SPEC): Renamed, was CC1_SPEC.
+	(CC1_SPEC): New macro.
+	(EXTRA_SPECS): Add "cc1_cpu".
+	* i386/linux.h (CC1_SPEC): New macro.
+
+Mon Jun  9 13:23:06 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* m68k/next.h (TARGET_DEFAULT): Use MASK_68040,
+	not MASK_68040_ALSO.
+	* m68k/mot3300.h, m68k/ccur-GAS.h (TARGET_DEFAULT): Likewise.
+
+	* m68k.h (MACHINE_STATE_{SAVE,RESTORE}): Test #ifdef __mcf52000__,
+	not if (TARGET_52000); fixed for mc68000 case.
+
+	* m68k/mot3300.h (CPP_SPEC): Define __mc68020__ if no -m[c]68000
+	command-line option given.
+
+Mon Jun  9 09:19:17 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+	* Makefile.in (target_alias): Substitute with target_alias.
+
+	* final.c (final_scan_insn): Use single_set to check cc_status.flags.
+
+Mon Jun  9 09:09:07 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* c-common.c (check_format_info): Correct handling of the 'a' flag
+	which adds another pointer level.
+
+Sun Jun  8 00:34:25 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.md (conditional branch insns): Get length right for branches
+	to targets which can not be reached with a "bl" instruction.
+	* pa.c (output_cbranch): Handle branches to targets which can not
+	be reached with a "bl" instruction.
+
+        * pa.md (alternate dbra pattern): Remove incorrect pattern.
+
+Sat Jun  7 23:30:25 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.c (struct defer_plab): Renamed to struct deferred_plabel.
+	Remove "symbol" field and replace with "name" field.
+	(output_function_epilogue): Don't output deferred plabels here.
+	(output_deferred_labels): New function.  Output them here instead.
+	(output_call): Rewrite long call support.
+	* pa.h (ASM_FILE_END): Define.
+	(LEGITIMATE_CONSTANT_P): Never accept a function_label_operand.
+	* pa.md (HIGH and LO_SUM of function address): Remove patterns.
+
+Fri Jun  6 16:09:04 1997  Mike Stump  <mrs@cygnus.com>
+
+	* libgcc2.c (__eh_ffetmnpc): Add support for machines that cannot
+	access globals after throw's epilogue when -fno-sjlj-exceptions is
+	used.
+	* rs6000.c (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
+	* mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
+	(INITIAL_ELIMINATION_OFFSET): Fix RETURN_ADDRESS_POINTER_REGNUM
+	for 64 bit words, with 32 bit pointers and variable endianness.
+
+Fri Jun  6 17:27:58 1997  Mike Meissner  <meissner@cygnus.com>
+
+	* regclass.c (allocate_reg_info): Fix off by one error.
+
+Fri Jun  6 17:17:41 1997  Doug Evans  <dje@cygnus.com>
+
+	* basic-block.h (EXECUTE_IF_SET_IN_REG_SET): Fix setting of scan_rs_.
+	(EXECUTE_IF_SET_AND_RESET_IN_REG_SET): Likewise.
+	(EXECUTE_IF_AND_IN_REG_SET): Likewise.
+	(EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
+
+Fri Jun  6 15:42:59 1997  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.c (notice_cc_update): Set CC_FCOMI is this is a float compare.
+
+Fri Jun  6 15:12:38 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* basic-block.h (REG_SET_TO_HARD_REG_SET): Fix typo.
+
+	* sched.c (update_flow_info): When add extra REG_DEAD note for original
+	dest, handle case where last insn both uses and sets dest.
+
+Thu Jun  5 22:19:36 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* fixinc.irix: Add declaration of __vfork to unistd.h.
+
+	* i960/vx960-coff.h (CPP_SPEC): Always define CPU, even if they
+	use -ansi; the VxWorks headers assume it's always present.
+	* sparc/vxsparc.h (CPP_SPEC): Define, adding the CPU definition to
+	what came from sparc.h.
+	(CPP_PREDEFINES): Don't define it here.
+
+Thu Jun  5 13:40:33 1997  Mike Meissner  <meissner@cygnus.com>
+
+	* basic-block.c (OBSTACK_ALLOC_REG_SET): Rename from
+	OBALLOC_REG_SET.  Add obstack pointer parameter.
+
+	* flow.c (function_obstack): Add declaration.
+	(life_analysis): Don't allocate the space to hold to vector of
+	regsets here.
+	(init_regset_vector): Add pointer parameter and delete space
+	paramter.  Use OBSTACK_ALLOC_REG_SET to allocate.  Change callers.
+	(propagate_block): Use ALLOCA_REG_SET instead of bare alloca.
+
+	* sched.c (schedule_block): Fix typo in yesterday's changes.
+	* reorg.c (mark_target_live_regs): Ditto.
+
+Thu Jun  5 09:44:49 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* sh.c (trap_exit, sp_switch): New variables.
+	(print_operand, case '@'): If trap_exit is nonzero, then use
+	a trapa instead of an rte/rts to exit the current function.
+	(sh_expand_prologue): Switch stacks at function entry as needed.
+	(sh_expand_epilogue): Similarly at function exit.
+	(function_epilogue): Clear trap_exit and sp_switch too.
+	(sh_valid_machine_decl_attribute): New function.
+	* sh.h (VALID_MACHINE_DECL_ATTRIBUTE): Define.
+	(sp_switch): Declare.
+	* sh.md (sp_switch_1, sp_switch_2): New named patterns.
+
+Wed Jun  4 18:11:14 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* basic-block.h (REGSET_ELT_BITS): Make this explicitly unsigned, so
+	that division and modulus of REGSET_ELT_BITS uses a pure shift.
+	(*_REG_SET): New macros to abstract the register set interface.
+
+	* caller-save.c (save_call_clobbered_regs): Use new *_REG_SET
+	macros.
+	* flow.c (life_analysis,propagate_block,insn_dead_p): Ditto.
+	(regno_uninitialized,regno_clobbered_at_setjmp,mark_set_1): Ditto.
+	(mark_used_regs,dump_flow_info,global_conflicts): Ditto.
+	global.c (mark_elimination): Ditto.
+	* reorg.c (mark_target_live_regs): Ditto.
+	* sched.c (sched_{analyze_{1,insn},note_set}): Ditto.
+	(birthing_insn_p,attach_deaths,unlink_notes,schedule_block): Ditto.
+
+	* sched.c (sometimes structure): Delete offset, bit fields, replace
+	with regno.
+	(new_sometimes_live): Take regno argument, not offset and bit.
+	Change all callers.
+
+Tue Jun  3 19:18:36 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* fixincludes: Fix AIX NULL macro use of void*.
+
+Tue Jun  3 15:21:04 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* sparc.h (ASM_OUTPUT_MI_THUNK): Handle -fpic.
+
+Mon Jun  2 16:53:53 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* loop.c (n_times_{set,used}): Make type int, not short.
+	(scan_loop): n_times{set,used} are now int pointers.
+
+	* sched.c (sched_reg_n_deaths): Remove unused variable.
+	(struct sometimes): Make fields int sized, not short.
+	(schedule_insns): Don't set sched_reg_n_deaths, nobody uses it.
+
+	* regclass.c (allocate_reg_info): Allocate the space for
+	reg_renumber, but don't set reg_renumber unless new argument
+	RENUMBER_P is set.  If this is the first call for the function and
+	we need to grow space, use free/xmalloc instead of realloc since we
+	will be initializing the whole array.  If number of registers is <
+	0, just free up the space.
+	(reg_scan): Update allocate_reg_info call.
+
+	* regs.h (allocate_reg_info): Change prototype.
+
+	* flow.c (allocate_for_life_analysis): Update allocate_reg_info
+	call.
+
+	* local-alloc.c (local_alloc): Call allocate_reg_info to allocate
+	and initialize the reg_renumber array.
+	* stupid.c (stupid_life_analysis): Ditto.
+
+Mon Jun  2 14:50:06 1997  Dave Miller  <davem@jenolan.rutgers.edu>
+
+	* sparc/sparc.md (v9 eq/ne cond move patterns): Add early clobber
+	constraint to destination.
+
+Fri May 30 11:00:44 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* regs.h (reg_info): New structure to group the arrays indexed by
+	register number created by reg_scan and flow_analysis that are
+	globally visiable.
+	(reg_n_info): Pointer to the register information array.
+	(reg_n_{refs,sets,deaths,calls_crossed}): Delete variables.
+	(reg_changes_size): Ditto.
+	(REG_N_{REFS,SETS,DEATHS,CALLS_CROSSED}): New macros to reference
+	reg_n_info.
+	(REG_{CHANGES_SIZE,{FIRST,LAST,LAST_NOTE}_UID}): Ditto.
+	(allocate_reg_info): Add declaration.
+
+	* basic-block.h (reg_basic_block): Delete.
+	(REG_BASIC_BLOCK): Use reg_n_info structure.
+
+	* caller-save.c: Change all references to the above arrays to use
+	the corresponding macro to access the reg_n_info array.
+	* combine.c, cse.c, flow.c, global.c, jump.c, local-alloc.c: Ditto.
+	* loop.c, regclass.c, reload1.c, sched.c, stupid.c, unroll.c: Ditto.
+
+	* regclass.c (allocate_reg_info): New function to allocate the
+	reg_info array and initialize the appropriate fields.
+	(reg_scan): Call it.
+
+	* flow.c (allocate_for_life_analysis): Call allocate_reg_info to do
+	the actual allocation.
+
+Thu May 29 15:42:59 1997  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.md (movsfcc_1, movdfcc_1, movxfcc_1): Use singlemove_string
+	for float conditional move when destination and operands all differ.
+	
+	* i386.h (ASM_OUTPUT_REG_{PUSH,POP}): add %% before register name.
+
+	* go32.h (ASM_OUTPUT_ALIGN): Use .p2align, not byte alignments. 
+
+Wed May 28 20:44:00 1997  Mike Stump  <mrs@cygnus.com>
+
+	* except.c (push_eh_entry): Eliminate start of exception region
+	label, as it isn't used.  Rename end_label to outer_context.
+	(expand_eh_region_start_for_decl): Likewise.
+	(expand_leftover_cleanups): Likewise.
+	(expand_start_all_catch): Likewise.
+	* except.h (eh_entry): Likewise.
+	* except.c (expand_eh_region_end): Likewise.  Jump around the nop
+	that we insert, so that we can optimize it away, if it is unused,
+	also so that flow analysis can tell if we fall through to the end
+	of a function or not so that it can know if a function that returns
+	a value, in fact does or not.
+
+Wed May 28 10:50:09 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.md (jump): Handle out of range unconditional jump
+	when not optimizing.
+
+Thu May 22 00:57:07 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* reload1.c (reload_cse_record_set): Ignore values for SREG if
+	their mode is narrower than DEST_MODE.
+
+	* pa.h (DFMODE_RETURN_STRING): Define.
+	(SFMODE_RETURN_STRING): Likewise.
+	(ASM_DECLARE_FUNCTION_NAME): Use them.
+
+Wed May 21 23:32:02 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.md (reload_insi): Handle SUBREG properly.
+
+Tue May 20 22:32:13 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (dwarf2out_def_cfa): Set cfa_reg at the top.
+
+Tue May 20 16:57:50 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* cplus-dem.c (do_type): Handle `J'.
+	(demangle_fund_type): Print "complex" for it.
+
+Mon May 19 21:01:53 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* m68k.c (output_move_qimode): Add coldfire support.
+	* m68k.h (PUSH_ROUNDING): Add coldfire support.
+	* m68k.md (scc0_di, scc_di, seq, sne, sgt, sgtu, slt, sltu, sge, sgeu,
+	sle, sleu): Add coldfire support.
+
+Mon May 19 17:53:34 1997  Mike Meissner  <meissner@cygnus.com>
+
+	* rs6000/rs6000.c: (rs6000_pic_func_labelno): New variable to hold
+	the pic label number for the function's LCL label.
+	(rs6000_output_load_toc_table): Use it.
+	(output_prolog): Store current value.
+
+Sun May 18 16:32:08 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* config/dbxcoff.h (ASM_OUTPUT_SOURCE_LINE): Use the macros
+	ASM_{GENERATE,OUTPUT}_INTERNAL_LABEL to create/output the line
+	number label.
+
+Sun May 18 13:55:12 1997  John Vickers (john@rhizik.demon.co.uk)
+
+        * m68k.h (TARGET_SWITCHES): Add new target name, cpu32.
+
+Sun May 18 13:50:10 1997  Pat Rankin  <rankin@eql.caltech.edu>
+
+	* cccp.c (VMS_write, VMS_read): Delete.
+	(safe_write): If MAX_WRITE_LEN is defined, limit
+	incremental write attempts to that amount.
+	(safe_read): Analogous situation for MAX_READ_LEN.
+	* cpplib.c (safe_read): Likewise.
+	* vax/xm-vms.h (MAX_WRITE_LEN, MAX_READ_LEN): Define.
+
+	* vax/xm-vms.h (get_dynamic_handler_chain_libfunc): New macro.
+	(protect_cleanup_actions_with_terminate): New macro.
+
+Sun May 18 08:50:25 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* m68k/linux.h (ASM_COMMENT_START): Define.
+	* m68k/linux-aout.h (ASM_COMMENT_START): Define.
+
+	* reload1.c (reload_cse_regno_equal_p): Check for value using more
+	than one register on a big endian machine.
+
+Sun May 18 08:39:59 1997  Vince Del Vecchio  <vdelvecc@spd.analog.com>
+
+	* loop.c (maybe_eliminate_biv_1): In (set (cc0) <biv>) case,
+	swap compare operands when mult_val < 0 in one additional place.
+
+Sun May 18 08:33:30 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* dwarf2out.c (ASM_COMMENT_START): Add default definition.
+
+	* Makefile.in (maintainer-claean): Delete configure.
+
+Sun May 18 08:31:59 1997  Scott Christley <scottc@net-community.com>
+
+	* configure.in: New file.
+	* Makefile.in: Change to utilize autoconf variables.
+	* configure: Now an output file.
+
+Sun May 18 07:48:31 1997  J.T. Conklin  <jtc@netbsd.org>
+
+	* m68k.md (mov[qhs]i,movstrict[qs]i, mulsi3): Use 'Q' constraint
+	for TARGET_5200.
+	* m68k.h (EXTRA_CONSTRAINT): New macro. 
+
+	* m68k.h (TARGET_SWITCHES): Add 68020-60.
+	Mask out bits which indicate a particular processor when a different
+	processor is selected.
+	(MASK_68040_ALSO): Remove.
+	(MASK_68040): Change to be a single bit.
+
+	* m68k.h (TARGET_ALIGN_INT, MASK_ALIGN_INT): New macros.
+	(BIGGEST_ALIGNMENT): Determine according to TARGET_ALIGN_INT.
+	(TARGET_SWITCHES): Add align-int and no-align-int.
+
+	* m68k.md (mov[qhs]i}): Add pair of constraints which allow
+	offsetable memory addresses to be moved to the same for TARGET_5200.
+
+	* m68k.c (output_move_strict{hi,qi}): New functions.
+	* m68k.h (output_move_strict{hi,qi}): Declare.
+	* m68k.md (movstrict*): Changed into define_expands.
+	Split insns into m68k and coldfire specific versions with appropriate
+ 	constraints.
+
+Sun May 18 07:26:40 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* libgcc2.c (atexit): Cast malloc and realloc calls.
+
+Sat May 17 16:26:51 1997  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
+
+	* final.c (profile_function): Call function_section, not
+	text_section.
+
+Sat May 17 16:01:00 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* cse.c (notreg_cost): New function, extracted from COST macro.
+	(COST): Use notreg_cost.
+
+Sat May 17 15:13:23 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* cse.c (cse_insn): Don't record a SRC that's a MEM and the same
+	as a REG_EQUIV note if DEST is set more than once.
+
+Fri May 16 14:50:57 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.c (output_move_double): Handle loading a general register
+	from a scaled indexed memory address.
+	* pa.md (movdf, movdi): Allow scaled loads into general registers.
+
+Fri May 16 13:31:08 1997  Mike Stump  <mrs@cygnus.com>
+
+	* rs6000.c (rs6000_stack_info): Only do eabi setup for "main",
+	when main is the global main, not some nested routine that
+	happens to be called main.
+
+Thu May 15 17:19:50 1997  Mike Stump  <mrs@cygnus.com>
+
+	* except.c (expand_start_all_catch): If the machine needs to
+	perform any actions at the start of an expcetion handler that
+	hasn't already been done, use gen_exception_receiver to emit it.
+	(expand_leftover_cleanups): Likewise.
+	* alpha/alpha.md (exception_receiver): Use it.
+	* pa/pa.h (exception_receiver): Use it.
+
+Thu May 15 08:36:59 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* dbxout.c (dbxout_function_end): Don't subtract one from
+	the end of function scoping stab.
+
+Wed May 14 23:27:09 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.md (adddi3, subdi3): Remove expanders and patterns.
+
+Wed May 14 18:51:35 1997  Mike Stump  <mrs@cygnus.com>
+
+	* function.c (expand_function_end): Make sure we finish off any
+	leftover exception handlers.
+
+Tue May 13 14:07:01 1997  Mike Stump  <mrs@cygnus.com>
+
+	* expr.c (expand_builtin_setjmp): Remove setting of
+	current_function_has_nonlocal_goto, as this isn't a goto.
+
+Tue May 13 14:47:40 1997  Richard Earnshaw (rearnsha@cambridge.arm.com)
+
+	* arm.h (CPP_SPEC): Fix typo invoking cpp_endian.
+	* arm/t-semi (LIB2FUNCS_EXTRA): Build fp-bit.c when compiling
+	with -msoft-float.
+	* arm.c: Add prototypes for all static functions.
+	(output_multi_immediate, int_log2): Make static.
+
+	* arm.h (*_SPEC): Remove all references to mle/mbe.
+	* arm/coff.h (MULTILIB_DEFAULTS): Likewise.
+	* arm/t-bare (MULTILIB_OPTIONS): Change options mbe/mle to mbig-endian
+	and mlittle-endian.
+	(MULTILIB_MATCHES): Nothing matches that matters.
+
+Mon May 12 20:42:20 1997  Mike Stump  <mrs@cygnus.com>
+
+	* except.c (expand_start_all_catch): If the machine needs a
+	nonlocal_goto_receiver, add one at the start of the exception
+	handler.
+	(expand_leftover_cleanups): Likewise.
+
+Mon May 12 17:36:28 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mips.c (move_operand): Accept any general operand after reload
+	has started.
+
+Fri May  9 14:29:33 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.md (udivmodhi4, divmodhi4): Remove expander, give
+	corresponding pattern [u]divmodhir4 name.  Clear MDR register
+	in the udivmodhi4 pattern itself.
+	(clear_mdr): Delete pattern.
+
+Thu May  8 18:20:30 1997 Richard Earnshaw (rearnshaw@cambridge.arm.com)
+
+	* arm/aout.h (ASM_OUTPUT_LONG_DOUBLE): Delete call to 
+	arm_increase_location.
+	(ASM_OUTPUT_{DOUBLE,FLOAT,INT,SHORT,CHAR,BYTE,ASCII,SKIP}): Likewise.
+	(ASM_OUTPUT_ALIGN): Delete all code refering to arm_text_location.
+
+	* arm.c (arm_increase_location, get_prologue_size): Delete.
+	(arm_naked_function_p): Add declaration.
+	(arm_pic_register): Define.
+	(all_procs): Delete entries for arm{60,620,70,7d,7di,700i,710c}; add
+	entries for arm{7m,7500fe,8}, strongarm and strongarm110.
+	(arm_override_options): Rework so that configure can properly set
+	the default processor type. Add a warning that PIC code is not yet 
+	supported.
+	(legitimate_pic_operand_p, legitimize_pic_address): New functions.
+	(is_pic, arm_finalize_pic): New functions.
+	(arm_adjust_cost): New function.
+	(const_pool_offset, arm_backwards_branch, short_branch): Delete.
+	(arm_insn_not_targeted): Delete.
+	(add_constant): If generating AOF syntax, then handle pic specially.
+	(output_ascii_pseudo_op): Delete calls to arm_increase_location.
+	(function_really_clobbers_lr): Calls followed by a barrier don't
+	clobber the link register.
+	(output_func_prologue): Handle AOF syntax pic code.
+	(output_func_epilogue): Handle cases where lr_save_eliminated is set.
+	Delete call to arm_increase_location.
+	(arm_asm_output_label): Simplify, since we no-longer need to cache the
+	label's address.
+	(aof_pic_entry): New function to keep track of pic symbols.
+	(aof_dump_pic_table): New function.
+
+	* arm.h (TARGET_CPU_arm*, TARGET_CPU_strongarm*, TARGET_CPU_generic):
+	define.
+	(CPP_ARCH_DEFAULT_SPEC): Set up based on setting of TARGET_CPU_DEFAULT.
+	(CPP_SPEC): Split up into sub-rule calls.
+	(CPP_CPU_SPEC): Add default definition.
+	(CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC): Add definitions.
+	(CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC): Add definitions.
+	(CPP_ENDIAN_SPEC, CPP_ENDIAN_DEFAULT_SPEC): Add definitions.
+	(CC1_SPEC): Map legacy -m[236] onto -mcpu=.. and -mapcs-{26,32} as
+	appropriate. Similarly for -mbe and -mle to -m{big,little}-endian.
+	(EXTRA_SPECS): Define.
+	(enum processor_type): New types for arm8 and strongarm.
+	(CONDITIONAL_REGISTER_USAGE): Handle flag_pic.
+	(LEGITIMIZE_ADDRESS): Likewise.
+	(ADJUST_COST): Define.
+	(PIC_OFFSET_TABLE_REGNUM): Define.
+	(FINALIZE_PIC): Define.
+	(LEGITIMATE_PIC_OPERAND_P): Define.
+	(OUTPUT_INT_ADDR_CONST): Define.
+	(ASM_OUTPUT_MI_THUNK): Delete calls to arm_increase_location.
+	(MASK_RETURN_ADDR): Use TARGET_APCS_32 not TARGET_6.
+
+	* arm.md (attr cpu): Add new cpu types for arm8 and strongarm.
+	(attr ldsched): New attribute, set if processor has a load_delay slot.
+	(function_unit core): Rework to handle load delay slots.
+	(function_unit loader): New function unit.
+	(movsi): Handle pic.
+	(pic_load_addr): New expand.
+	(*pic_load_addr_based_insn, pic_add_dot_plus_eight): New patterns.
+	(peepholes to cause flow to return to a label after a function call):
+	Delete, these have been disabled for a while now.
+
+	* arm/riscix.h (CPP_SPEC): Rewrite using new sub-components.
+	(SUBTARGET_CPU_DEFAULT): Set to TARGET_CPU_arm2.
+	* arm/riscix1-1.h (CPP_SPEC): Rewrite using new sub-components.
+	(SUBTARGET_CPU_DEFAULT): Set to TARGET_CPU_arm2.
+	* arm/semi.h: (CPP_SPEC): Delete.
+	(PROCESSOR_DEFAULT): Delete.
+	(CPP_APCS_PC_DEFAULT_SPEC): Define.
+	* arm/semiaof.h (CPP_SPEC): Delete.
+	(CPP_APCS_PC_DEFAULT_SPEC): Define.
+	* arm/t-semi (LIBGCC1_TEST): Don't build it.
+	(MULTILIB_{OPTIONS,DIRNAMES,EXCEPTIONS}): Build a suitable set of
+	cross libraries.
+	(LIBGCC): Set to stmp-multilib.
+	(INSTALL_LIBGCC): Set to install-multilib.
+
+Thu May  8 15:20:46 1997  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.c (output_float_compare): For pentiumpro use fcomip
+	followed by a float stack pop for "compare;pop;pop" cases.
+
+Thu May  8 13:20:20 1997  Chris Torek  <torek@elf.bsdi.com>
+
+	* fold-const.c (fold, truth_andor): Disable optimization for 
+	side effects on RHS.
+
+Wed May  7 15:43:57 1997  Mike Stump  <mrs@cygnus.com>
+
+	* except.c (start_dynamic_handler): Fix so that we can use
+	__builtin_setjmp, and default to using __builtin_setjmp instead of
+	setjmp.
+	* expr.c (expand_builtin_setjmp): New routine, split out from
+	existing inline code from expand_builtin.
+	(expand_builtin): Split out code into expand_builtin_setjmp.
+	* expr.h (expand_builtin_setjmp): Add declaration.
+	* libgcc2.c (__sjthrow): Default to using __builtin_setjmp instead
+	of setjmp.
+	(__sjpopnthrow): Likewise.
+	* optabs.c (init_optabs): Likewise.
+
+Wed May  7 18:01:24 1997  Samuel Figueroa  <Samuel_Figueroa@next.com>
+
+	* rs6000.md (insv): Only combine insert with shift if
+	remaining source bits >= destination field size.
+
+Tue May  6 15:48:52 1997  Jason Merrill  <jason@gerbil.cygnus.com>
+
+	* dwarf2out.c (dwarf2out_begin_prologue): Increment
+ 	current_funcdef_number here.
+	(dwarf2out_end_epilogue): Not here.
+
+Mon May  5 18:52:32 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* h8300.c (notice_update_cc): Use CC_SET_ZN and CC_SET_ZNV.
+	(shift_one, shift_two): Set CC_NO_CARRY as needed.  Remove
+	references to CC_OVERFLOW_0.
+	(emit_a_shift): Similarly.
+	* h8300.h (CC_OVERFLOW_0): Remove.
+	* h8300.md: Use set_zn and set_znv for cc0 tracking.
+	(bCC): Restore the comparison is CC_OVERFLOW_UNUSABLE is set and
+	the comparison needs the overflow bits.
+
+	* mn10300.c (notice_update_cc): Use CC_SET_ZN and CC_SET_ZNV.
+	* mn10300.h (CC_NO_CARRY): Define.
+	* mn10300.md: Use "set_zn" and "set_znv" to more accurately
+	describe cc0 status.
+
+Fri May  2 17:00:33 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c: Reorganize, moving .debug_frame support to the top
+	of the file, and compile it if INCOMING_RETURN_ADDR_RTX is defined
+	even if DWARF2_DEBUGGING_INFO isn't.
+	(EH_FRAME_SECTION): New macro.
+	(output_call_frame_info): Handle .eh_frame variant.
+	(dwarf2out_def_cfa): Update cfa_*{reg,offset}.
+	(dwarf2out_frame_debug): Move cfa_*{reg,offset} to file scope.
+	(dwarf2out_end_epilogue): Increment current_funcdef_number here.
+	(dwarf2out_decl): Not here.
+	(dwarf2out_frame_init, dwarf2out_frame_finish): New fns.
+	(dwarf2out_init, dwarf2out_finish): Call them.
+	(output_die): Add missing 'case 8:'
+	(dwarf2out_decl): Revert other context_die = NULL change.
+	(add_bound_info): Restore default case.
+
+Fri May  2 15:30:16 1997  Doug Evans  <dje@seba.cygnus.com>
+
+	* m32r/m32r.h (LIT_NAME_P): New macro.
+	(SMALL_NAME_P): Use it.
+	(ASM_OUTPUT_ALIGNED_COMMON): Don't output to scommon if -msdata=none.
+	* m32r/m32r.c (addr24_operand): Handle literals.
+	(m32r_output_function_prologue): Use IMMEDIATE_PREFIX.
+	(m32r_output_function_epilogue): Likewise.  Use shorter add insn if
+	able.
+
+Fri May  2 14:40:44 1997  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.h (RS6000_ALIGN): Macro renamed from ALIGN.
+	* rs6000.c (rs6000_stack_info): Use it.
+
+Fri May  2 14:15:54 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* reload1.c (reload_cse_noop_set_p): When checking the values
+	equivalent to sreg, make sure the mode is right.
+
+Fri May  2 12:53:03 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* reload1.c (reload_cse_invalidate_regno): Properly set
+	the mode for invalidate_regno_rtx.
+
+Thu May  1 14:57:35 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.md (call_internal_symref): Fix typo.
+
+Thu May  1 14:44:17 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* mips.c (mips_asm_file_start): Use new macro TARGET_FILE_SWITCHING.
+	(mips_asm_file_end): Likewise.
+	* mips.h (TARGET_FILE_SWITCHING): Define.
+	(NO_DBX_FUNCTION_END): Define.
+
+Thu May  1 09:08:40 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* m68k.c (output_addsi3): Replace "\\;" by "\n\t" in
+	assembler templates.
+
+Thu May  1 09:00:42 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* integrate.c (subst_constants, case SUBREG): Cancel changes once
+	done with result.
+
+Wed Apr 30 19:45:56 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* mips.c (override_options): Set mips_split_addresses only if
+	TARGET_SPLIT_ADDRESSES is set.
+	* mips.h (MASK_SPLIT_ADDR, TARGET_SPLIT_ADDRESSES): New macros.
+	(TARGET_SWITCHES): Add -msplit-addresses, -mno-split-addresses.
+	* configure (mips*-*-ecoff*, mips*-*-elf*): Set MASK_SPLIT_ADDR
+	bit in target_cpu_default2.
+
+	* flags.h (current_function_is_thunk): Add extern to declaration.
+
+	* dbxout.c (dbxout_function): Test NO_DBX_FUNCTION_END at run time
+	instead of compile time.
+
+	* unroll.c (set_dominates_use): In second loop, add check for copy_end.
+
+	* mips.md (paradoxical_extendhidi2, paradoxical_extendqidi2): New
+	patterns.
+
+Wed Apr 30 02:23:24 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* output.h (named_section): Add reloc argument.
+	(DECL_READONLY_SECTION): New macro.
+	* varasm.c (named_section): Add reloc argument, pass it to
+ 	ASM_OUTPUT_SECTION_NAME.
+	(UNIQUE_SECTION, UNIQUE_SECTION_P): Provide defaults.
+	(function_section): Pass reloc argument to named_section.
+	(variable_section, exception_section): Likewise.
+	(output_constant_def_contents): Likewise.
+	(assemble_start_function): Use UNIQUE_SECTION_P.  UNIQUE_SECTION is
+ 	now a statement.
+	(assemble_variable): Likewise.
+	* mips/iris6.h (ASM_OUTPUT_SECTION_NAME): Add reloc arg,
+ 	use DECL_READONLY_SECTION.
+	* psos.h, ptx4.h, a29k.h, alpha/elf.h, arm/coff.h, h8300.h: Likewise.
+	* i386/go32.h, i386/sco5.h, m68k/coff.h, mips/elf64.h: Likewise.
+	* mips/netbsd.h, pa.h, rs6000/sysv4.h, sh.h, sparc/sysv4.h: Likewise.
+	* config/svr4.h	(SELECT_SECTION): Use DECL_READONLY_SECTION.
+	(ASM_OUTPUT_SECTION_NAME): Likewise, add reloc argument.
+	(MAKE_DECL_ONE_ONLY): Just set DECL_WEAK.
+	(UNIQUE_SECTION, UNIQUE_SECTION_P): Define.
+	* i386/cygwin32.h (UNIQUE_SECTION_P): Define.
+	(SUPPORTS_ONE_ONLY): Define.
+	(MAKE_DECL_ONE_ONLY): Lose.
+	(ASM_OUTPUT_SECTION_NAME): Add reloc arg, use DECL_READONLY_SECTION.
+	* i386/winnt.c (i386_pe_unique_section): Add reloc arg, 
+	use DECL_READONLY_SECTION.
+
+	* mips/iris6.h (CTORS_SECTION_ASM_OP): Change aligment based on ABI.
+	(DTORS_SECTION_ASM_OP): Likewise.
+
+Tue Apr 29 16:08:07 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* pa/lib1funcs.asm (divnorm, modnorm, exitdiv): Fix code to
+	negate SImode values.
+
+Tue Apr 29 12:54:14 1997  Mike Stump  <mrs@cygnus.com>
+
+	* except.c (expand_eh_region_start_tree): Add DECL argument so we
+ 	can better track why the region was made for error reporting.
+	* except.h (expand_eh_region_start_tree): Likewise.
+	* tree.h (expand_dhc_cleanup): Likewise.
+	(expand_dcc_cleanup): Likewise.
+	* except.c (expand_eh_region_start_for_decl): New routine.
+	* except.h (expand_eh_region_start_for_decl): Likewise.
+	* stmt.c (expand_decl_cleanup): Add DECL to call of
+	expand_eh_region_start_tree.
+	(expand_dcc_cleanup): Likewise.
+	(expand_dhc_cleanup): Likewise.
+	
+	(expand_start_case): Switches introduce conditional contexts.
+	(expand_start_case_dummy): Likewise.
+	(expand_start_case_dummy): Likewise.
+	(expand_end_case): Likewise.
+
+Tue Apr 29 11:45:09 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (dwarf2out_decl): Undo earlier change.
+	(constant_size): Likewise.
+	(gen_subprogram_die): Handle NULL context_die.
+
+	* mips/iris6.h (ASM_OUTPUT_CONSTRUCTOR): Fix for -mabi=64.
+	(ASM_OUTPUT_DESTRUCTOR): Likewise.
+
+Mon Apr 28 09:10:19 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* h8300.c (push_order, pop_order): Add missing initializer
+	entries.
+
+Fri Apr 25 19:39:43 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* h8300.c (output_adds_subs): check for adding 0.
+
+Fri Apr 25 14:52:31 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* configure (i[3456]86-*-freebsdelf*, i[3456]86-*-freebsd*): Use
+	t-freebsd instead of x-freebsd.
+	* i386/t-freebsd: Renamed from x-freebsd.
+
+Fri Apr 25 12:16:20 1997  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* go32.h (DBX_*): Use definitions from config/dbxcoff.h instead.
+
+Fri Apr 25 11:55:54 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* i386/cygwin32.h (MULTIPLE_SYMBOL_SPACES): Define.
+
+Thu Apr 24 18:32:56 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* i386/winnt.c (i386_pe_unique_section): New fn.
+	* i386/cygwin32.h (UNIQUE_SECTION): Define.
+	(MAKE_DECL_ONE_ONLY): Define.
+	(ASM_OUTPUT_SECTION_NAME): Support DECL_ONE_ONLY.
+
+	* c-decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
+
+Thu Apr 24 17:11:23 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* m68k.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Add
+	TARGET_5200 support.
+
+Thu Apr 24 16:39:25 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* stmt.c (pushcase_range): Check for null range first.
+
+Wed Apr 23 23:06:28 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* reload1.c (reload_cse_record_set): Use push_operand to check for
+ 	changes to the stack pointer.
+
+Wed Apr 23 19:56:01 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* calls.c (expand_call): If we're in a thunk, pass through invisible
+ 	references instead of making a copy.
+	* flags.h: Add current_function_is_thunk.
+	* function.c: Likewise.
+	(init_function_start): Initialize it.
+	(push_function_context_to): Save it.
+	(pop_function_context_from): Restore it.
+	* function.h (struct function): Add is_thunk.
+
+Wed Apr 23 17:47:25 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.c (secondary_reload_class): Handle more cases where we
+	need secondary reloads.
+	(impossible_plus_operand): Accept anything that involves addition
+	of the stack pointer.
+	* mn10300.md (reload_insi): Always load the stack pointer into
+	the destination (which is always an address register).
+	* mn10300.h (STORE_FLAG_VALUE): Remove definition.
+	* xm-mn10300.h: Declare malloc, realloc, calloc and free.
+
+Wed Apr 23 14:28:30 1997  Mike Stump  <mrs@cygnus.com>
+
+	* expr.h (sjthrow_libfunc): Add support for setjmp/longjmp based
+	exception handling.
+	(sjpopnthrow_libfunc): Likewise.
+	(terminate_libfunc): Likewise.
+	(setjmp_libfunc): Likewise.
+	(longjmp_libfunc): Likewise.
+	(get_dynamic_handler_chain_libfunc): Likewise.
+	* expr.c (expand_expr, case TRY_CATCH_EXPR): Likewise.
+	(expand_expr, case POPDCC_EXPR): Likewise.
+	(expand_expr, case POPDHC_EXPR): Likewise.
+	* stmt.c (mark_block_as_eh_region): Likewise.
+	(mark_block_as_not_eh_region): Likewise.
+	(is_eh_region): Likewise.
+	(conditional_context): Likewise.
+	(expand_start_bindings): Likewise.
+	(expand_end_bindings): Likewise.
+	(expand_decl_cleanup): Likewise.
+	(expand_dcc_cleanup): Likewise.
+	(expand_dhc_cleanup): Likewise.
+	(expand_cleanups): Likewise.
+	* tree.h (mark_block_as_eh_region): Likewise.
+	(mark_block_as_not_eh_region): Likewise.
+	(is_eh_region): Likewise.
+	(conditional_context): Likewise.
+	(expand_dhc_cleanup): Likewise.
+	* except.c (exception_via_longjmp): Likewise.
+	(protect_cleanup_actions_with_terminate): Likewise.
+	(current_function_dhc): Likewise.
+	(current_function_dcc): Likewise.
+	(add_partial_entry): Likewise.
+	(get_dynamic_handler_chain): Likewise.
+	(get_dynamic_cleanup_chain): Likewise.
+	(start_dynamic_cleanup): Likewise.
+	(start_dynamic_handler): Likewise.
+	(expand_eh_region_start_tree): Likewise.
+	(expand_eh_region_start): Likewise.
+	(expand_eh_region_end): Likewise.
+	(emit_throw): Likewise.
+	(expand_leftover_cleanups): Likewise.
+	(expand_start_all_catch): Likewise.
+	(expand_end_all_catch): Likewise.
+	(protect_with_terminate): Likewise.
+	(start_eh_unwinder): Likewise.
+	(end_eh_unwinder): Likewise.
+	(init_eh_for_function): Likewise.
+	(save_eh_status): Likewise.
+	(restore_eh_status): Likewise.
+	(exception_optimize): Likewise.
+	* optabs.c (sjthrow_libfunc): Likewise.
+	(sjpopnthrow_libfunc): Likewise.
+	(terminate_libfunc): Likewise.
+	(setjmp_libfunc): Likewise.
+	(longjmp_libfunc): Likewise.
+	(get_dynamic_handler_chain_libfunc): Likewise.
+	(init_optabs): Likewise.
+	* except.h: Likewise.
+	* libgcc2.c (__default_terminate): Likewise.
+	(__terminate): Likewise.
+	(__get_dynamic_handler_chain): Likewise.
+	(__sjthrow): Likewise.
+	(__sjpopnthrow): Likewise.
+	* toplev.c (f_options): Likewise.
+	* tree.def (TRY_CATCH_EXPR): Likewise.
+	(POPDHC_EXPR): Likewise.
+	(POPDCC_EXPR): Likewise.
+	* config/pa/pa.h: JMP_BUF_SIZE define.
+	* config/sparc/sparc.h: JMP_BUF_SIZE define.
+
+	* expr.h (cleanups_this_call): Transform uses of cleanups_this_call
+	into uses of the cleanups managed by the block code
+	(expand_start_bindings and friends).  Remove defer_cleanups_to and
+	expand_cleanups_to, and use start_cleanup_deferal and
+	end_cleanup_deferal instead.  Add exception_region,
+	target_temp_slot_level, conditional_code,
+	last_unconditional_cleanup and cleanup_ptr to struct nesting to
+	facilitate conditional cleanups.
+	* expr.c (cleanups_this_call): Likewise.
+	(init_expr): Likewise.
+	(save_expr_status): Likewise.
+	(restore_expr_status): Likewise.
+	(store_expr): Likewise.
+	(expand_expr): Likewise.
+	(defer_cleanups_to): Likewise.
+	(expand_cleanups_to): Likewise.
+	(do_jump, case TRUTH_ANDIF_EXPR): Likewise.
+	(do_jump, case TRUTH_ORIF_EXPR): Likewise.
+	(do_jump, case COND_EXPR): Likewise.
+	* stmt.c (struct nesting): Likewise.
+	(expand_return): Likewise.
+	(expand_start_bindings): Likewise.
+	(expand_end_bindings): Likewise.
+	(expand_cleanups): Likewise.
+	(start_cleanup_deferal): Likewise.	
+	(end_cleanup_deferal): Likewise.	
+	* tree.h (start_cleanup_deferal): Likewise.
+	(end_cleanup_deferal): Likewise.
+	* calls.c (expand_call): Likewise.
+	* function.h (struct function): Likewise.
+
+	* except.c (asynchronous_exceptions): Support
+	-fasynchronous_exceptions.
+	(can_throw): Likewise.
+	* toplev.c (f_options): Likewise.
+
+	* flags.h (flag_short_temps): Remove support for short temps.
+	* calls.c (expand_call): Likewise.
+	* toplev.c (flag_short_temps): Likewise.
+
+	* stmt.c (expand_start_target_temps): Add for convenience.
+	(expand_end_target_temps): Likewise.
+	* except.c (jumpif_rtx): Likewise.
+	* except.c (jumpifnot_rtx): Likewise.
+
+	* stmt.c: Remove all traces of empty_cleanup_list.
+
+Wed Apr 23 17:26:40 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* reload1.c (reload_cse_mem_conflict_p): Don't assume that a
+	SUBREG can not conflict with a MEM.
+
+Wed Apr 23 09:48:58 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
+
+	* 1750a.md (cmphi): Fixed when next CC user is unsigned.
+	(mov[hq]i-[23]): New patterns for mem-indirect moves.
+	(movhf,movtqf): Corrected.
+	* 1750a.c (memop_valid): Memory indirection now valid.
+	(nonindirect_operand): Remove.
+	(print_operand): Fix the 'J' output modifier.
+	* 1750a.h (FRAME_POINTER_REQUIRED): Not required.
+	(INITIAL_FRAME_POINTER_OFFSET,FIX_FRAME_POINTER_ADDRESS): Undefine.
+	(FUNCTION_PROLOGUE,FUNCTION_EPILOGUE): Honor -fomit-frame-pointer.
+	(ELIMINABLE_REGS,CAN_ELIMINATE,INITIAL_ELIMINATION_OFFSET): Defined.
+	(PREFERRED_RELOAD_CLASS): Corrected.
+	(CONST_COSTS,ADDRESS_COST,REGISTER_MOVE_COST,MEMORY_MOVE_COST):
+	Slight adjustments.
+	(ASM_APP_ON,ASM_APP_OFF): Corrected.
+	* ms1750.inc (DUCR.M,DUC.M): Defined.
+
+Wed Apr 23 09:41:35 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* reload.c (push_reload): Fix last argument of the call to
+	find_dummy_reload.
+
+Wed Apr 23 09:29:14 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* configure (i[3456]86-next-*, m68k-next-nextstep{2,3}*):
+	Remove out_file and add extra_objs.
+	* config/nextstep.c: Add includes for config.h, stdio.h, and flags.h.
+	* {i386,m68k}/t-next (nextstep.o): New rule.
+	* m68k/next.h: Remove include of machmode.h.
+	* {i386,m68k}/next.c: Files deleted.
+
+Tue Apr 22 20:45:29 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* sparc.h (DBX_CONTIN_LENGTH): Shrink to 1000.
+
+Tue Apr 22 18:21:20 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* dwarf2out.c (gen_variable_dir):  Add test for DW_AT_declaration to
+	the old_die if statement, and delete assertion for it.
+	(decl_ultimate_origin): Remove last change.
+
+Tue Apr 22 10:22:27 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.c (expand_prologue): End the current sequence before
+	counting the tst insns in the current function.  Start a new
+	one before emitting any prologue instructions.
+
+	* mn10300.h (REGISTER_MOVE_COST): Bump up cost of moves in the
+	same class.
+
+	* mn10300.md (untyped_call): New expander.
+
+Mon Apr 21 16:30:21 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* cse.c (fold_rtx, case PLUS): When seeing if negative of constant
+	is around, make sure not dealing with largest negative.
+
+Mon Apr 21 13:57:53 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* mips/t-ecoff: Set TARGET_LIBGCC2_CFLAGS instead of LIBGCC2_CFLAGS.
+
+	* m68k.c (output_addsi3): New function.  From addsi3 pattern.
+	* m68k.h (output_addsi3): Add declaration.
+	* m68k.md (movqi+2): Add address registers.
+	(movxf+1): Disable for TARGET_5200.
+	(movxf+2): New pattern for TARGET_5200.
+	(addsi3): Add define_expand.  Move code to output_addsi3.
+	(addsi3_internal): Renamed from addsi3.  Disable for TARGET_5200.
+	(addsi3_5200): New pattern for TARGET_5200.
+
+Sun Apr 20 10:45:35 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* fold-const.c (operand_equal_p): Constants are not equal if there
+	has been an overflow.
+
+	* toplev.c (compile_file): Shorten "branch-probabilities" in
+ 	output of times.
+
+	* alpha/vms.h (MOD[SD]I3_LIBCALL): Call ots$rem, not ots$mod.
+	(DWARF2_DEBUGGING_INFO): Define.
+
+	* alpha.c (alpha_need_linkage): Call get_identifier.
+
+	* rs6000.c (rs6000_output_load_toc_table): New function.
+	(output_prolog): Call it instead of doing it directly.
+	* rs6000.md (nonlocal_goto_receiver): New pattern.
+
+	* dwarf2out.c: Major cleanup; mostly reformatting.
+	Include expr.h.
+	Undefine inline ifndef __GNUC__; never define to include static.
+	Add "static" to header of all inlined functions.
+	Add declarations for all static functions, with prototypes.
+	(addr_const_to_string): Use HOST_WIDE_INT_PRINT_* macros.
+	(add_AT_*, new_{die,loc_descr,cfi): Don't check for xmalloc
+	returning zero.
+	(modified_type_die): Add missing parm on recursive call.
+	({reg,based}_loc_descriptor): Add missing arg to call to new_loc_descr.
+	(add_const_value_attribute): Use REAL_VALUE_TYPE for fp calculations.
+	(output_call_frame_info): Add missing arg to output_cfi call.
+	(dwarf2out_def_cfa): Local variable OLD_REG must be unsigned long.
+	* Makefile.in (dwarf2out.o): Includes expr.h.
+	
+	* dwarf2out.c: Cast first arg in all calls to bzero to char *.
+	(decl_ultimate_origin): Return NULL if equal to decl.
+	(constant_size): Never return more than 4.
+	(value_format, case 8): New case.
+	(dwarf2out_frame_debug): Use HARD_FRAME_POINTER_REGNUM.
+	(based_loc_descr): Likewise.
+	(add_bound_info): Delete default case.
+	Add cases for CONVERT_EXPR and NON_LVALUE_EXPR; treat like NOP_EXPR.
+	Change NOP_EXPR to to recursive call.
+	(add_type_attribute): Ignore unnamed subtype of integral or FP.
+	(gen_subprogram_die): Use reg_loc_descriptor.
+	(dwarf2out_decl): Ignore nested functions.
+
+	* fix-header.c, protoize.c, gcov.c: Use symbolic codes for exit.
+
+	* final.c (profile_function): Only call ASM_OUTPUT_REG_{PUSH,POP}
+	if defined.
+
+	* expr.c ({move,clear}_by_pieces_1, expand_assignment): Ensure
+	we have unshared rtx before changing flags.
+	(store_{constructor,field}): Likewise.
+	(expand_expr, case COMPONENT_REF): Likewise.
+	(store_expr): Check if TEMP and TARGET are same with rtx_equal_p.
+
+	* emit-rtl.c (change_address, init_emit): Delete forward references.
+	(rtl_obstack, stack_depth, max_stack_depth): Delete extern decls.
+
+Fri Apr 18 18:25:52 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* function.c (instantiate_decls): For DECL_INCOMING_RTL, use max
+	of type size and mode size in instantiate_decl call.
+
+	* fixincludes (sys/lc_core.h): Fix OSF1/4.x namespace pollution.
+
+Wed Apr 16 19:36:53 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (add_bound_info): Use a DIE instead of a location
+	expression for variable bounds.  Trust a MEM rtx even when
+	optimizing.
+	(DWARF_FRAME_RETURN_COLUMN): Default to FIRST_PSEUDO_REGISTER.
+
+	* expr.c (expand_expr, case RTL_EXPR): If there is no sequence,
+ 	don't set it to const0_rtx.
+	* tree.c (array_type_nelts): Don't return any SAVE_EXPRs.
+
+Mon Apr 14 18:12:57 1997  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.h (RS6000_ITRUNC, RS6000_UITRUNC): Prepend underscores.
+	(RS6000_MCOUNT): New macro.
+	(ASM_FILE_START): Use RS6000_MCOUNT.
+	* rs6000.c (output_function_profiler): Use RS6000_MCOUNT.
+	* rs6000/aix31.h (RS6000_{ITRUNC,UITRUNC,MCOUNT}): New macros.
+
+Mon Apr 14 14:37:27 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.c (can_use_return_insn): Include outgoing argument
+	area in size computation.
+	(expand_prologue): Likewise.  No longer diddle with sequences.
+	Put register saves just before outgoing argument area.
+	(expand_epilogue): Similarly.
+	(impossible_plus_operand): New function.
+	* mn10300.h (FRAME_POINTER_REQUIRED): Never require a frame pointer.
+	(ACCUMULATE_OUTGOING_ARGS, OUTGOING_REG_PARM_STACK_SPACE): Define.
+	(impossible_plus_operand): Declare.
+	* mn10300.md (reload_insi): New expander to handle pathological
+	reload cases.
+	(addsi3): Fix CC status.
+
+	* mn10300.h (FUNCTION_VALUE): Return addresses in $a0.
+	(FUNCTION_VALUE_REGNO_P): Corresponding changes.
+	* mn10300.md (call_value_internal): Allow output to be in an
+	address register.
+
+	* calls.c (emit_library_call): Handle saving of stack slots when
+	ACCUMULATE_OUTGOING_ARGS is defined.
+	(emit_library_call_value): Likewise.
+
+Mon Apr 14 14:48:15 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* sh.md (xtrct_left, xtrct_right): New patterns.
+
+	* combine.c (get_last_value_validate): New argument insn.
+	Add check for memory reference clobbered by later store.
+	(record_value_for_reg, get_last_values): Pass in new argument.
+
+Mon Apr 14 14:03:18 1997  Mike Meissner  <meissner@cygnus.com>
+
+	* configure (powerpc --with-cpu=x): Add embedded powerpcs and 604e.
+
+	* rs6000.c (rs6000_override_options): Recognize -mcpu=801, -mcpu=823,
+	and -mcpu=604e.
+
+Sun Apr 13 18:43:16 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* reload1.c (invalidate_regno_rtx): New static variable.
+	(reload_cse_invalidate_regno): Check whether any earlier registers
+	have a multi-register value which includes the register we are
+	invalidating.
+	(reload_cse_regs): Initialize invalidate_regno_rtx.
+
+	* reload1.c (reload_cse_record_set): When setting reg_values for a
+	copy from one register to another, use gen_lowpart_common to
+	adjust the value correctly if the mode changes.
+
+Sun Apr 13 17:24:48 1997  Doug Evans  <dje@cygnus.com>
+
+	* expr.c (move_block_from_reg): Try using an integral mov operation
+	first.
+
+	* calls.c (expand_call): When copying unaligned values into a register,
+	zero out the register first rather than emitting a clobber.
+
+	* integrate.c (copy_rtx_and_substitute): If FRAME_GROWS_DOWNWARD
+	and regno == VIRTUAL_STACK_VARS_REGNUM,	round size of stack slot up
+	before calling assign_stack_temp.
+
+Sun Apr 13 15:29:38 1997  Ulrich Drepper  <drepper@cygnus.com>
+
+	* enquire.c (fake_f_rep): Add missing element name in cast.
+
+Sun Apr 13 15:20:05 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* stor-layout.c (layout_record, PCC_BITFIELD_TYPE_MATTERS):
+	Fix sign bug in last change.
+
+Sun Apr 13 15:03:38 1997  J.T. Conklin  <jtc@netbsd.org>
+	
+	* m68k.md (movstricthi): Remove extraneous comparisons.
+
+	* configure (*-*-netbsd): tmake_file now t-netbsd; delete xmake_file.
+	* config/t-netbsd: New file.
+	* config/x-netbsd: Removed.
+
+Sun Apr 13 14:51:25 1997  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* cse.c (canon_reg, cse_insn): Don't examine insn_n_dups if
+	recog_memoized fails to find a match.
+
+Sun Apr 13 14:17:26 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* reload1.c (reload_cse_noop_set_p): Add insn parameter.  Change
+	all callers.  If deleting the instruction, remove any earlier
+	REG_DEAD note for DREG.
+	(reload_cse_simplify_set): If simplifying, remove any earlier
+	REG_DEAD note for the new source register.
+
+Sun Apr 13 14:12:08 1997  Pat Rankin  <rankin@eql.caltech.edu>
+
+	* libgcc2 (L_bb, L_exit): Use 0 rather than NULL for null pointers.
+
+Sun Apr 13 12:53:03 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* m68k/linux.h (ASM_SPEC): Define.
+	(STRUCT_VALUE_REGNUM, STATIC_CHAIN_REGNUM, INITIALIZE_TRAMPOLINE):
+	Remove definitions, undoing the change of Mar 20 1996. 
+
+	* m68k.c (output_move_qimode): Optimize pushing one byte if source
+	operand does not use stack pointer.
+
+	* m68k.md (rotl[shq]i3, rotl[hq]i3+1): Don't directly modify operand.
+
+	* m68k.md (tstdi): Add missing parallel around the pattern.
+
+Sun Apr 13 12:51:00 1997  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c, cpplib.c (do_include): Diagnose #import and
+	#include_next if pedantic and if not in a system header.
+	(do_warning): #warning now causes an error if -pedantic-errors
+	is given; this is needed since #warning isn't ANSI.
+
+	* toplev.c (lang_options): Add -Wundef, -Wno-undef.
+	* c-decl.c (c_decode_option): Ignore -Wundef, -Wno-undef.
+
+	* cccp.c, cexp.y (warn_undef): New variable.
+	* cpplib.h (struct cpp_options): New member warn_undef.
+	(CPP_WARN_UNDEF): New macro.
+
+	* cccp.c (main), cpplib.c (cpp_handle_options): Set warn_undef
+	from -Wundef and -Wno-undef.
+
+	* cppexp.c (cpp_lex) New arg skip_evaluation.
+	(cpp_parse_expr): Pass skip_evaluation to cpp_lex.
+	Abort if cpp_lex returns NAME.
+
+	* cexp.y (exp), cppexp.c (cpp_lex): Optionally warn about undefined
+	identifiers that evaluate to 0.
+
+Sun Apr 13 11:43:16 1997  Joel Sherrill  <joel@OARcorp.com>
+
+        * configure (hppa1.1-*-rtems*): New target.
+        * mips/rtems.h: New file.
+
+Sun Apr 13 09:48:26 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* gcov.c (print_usage, open_files): Use FATAL_EXIT_CODE.
+	* collect2.c (fatal_perror, fatal, collect_wait): Likewise.
+
+	* sparc.c (eligible_for_delay_slot): Clean up and make to agree
+	precisely with patterns in MD file.
+	* sparc.md (*return_addsi): Change condition to exclude both ints.
+	(*return_adddi): Likewise.
+	(*return_subsi): New pattern.
+
+	* recog.c (validate_replace_rtx_1, case MINUS): New case.
+	
+Sun Apr 13 08:20:24 1997  Thomas Bushnell  <thomas@gnu.ai.mit.edu>
+
+	* i386/gnu.h (TARGET_VERSION): Redefine.
+
+Sun Apr 13 08:15:31 1997  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
+
+	* c-typeck.c (lookup_field): Don't recurse unless FIELD is
+	a RECORD_TYPE or UNION_TYPE.
+
+	* final.c (profile_function): Save the static chain register
+	around the call to the profiler function.
+
+	* loop.c (invariant_p, case REG): Pointers into frame are not
+	invariants if function has nonlocal gotos.
+	* reload1.c (reload): If function has nonlocal label, mark all
+	caller-saved regs as used.
+
+Fri Apr 11 16:49:06 1997  Doug Evans  <dje@seba.cygnus.com>
+
+	* m32r.h (REG_ALLOC_ORDER): Restore to original setting.
+
+	* m32r.h (UPPER16_P): Fix calculation.
+	* m32r.c (two_insn_const_operand): New function.
+	(m32r_print_operand): Handle 'X'.
+	* m32r.md (movsi): Tweak.
+	(*movsi_insn): Output hex value of constants too.
+	(movsi define_split): Add.
+	(andsi3,orsi3,xorsi3): Output hex value of constants too.
+
+Thu Apr 10 18:39:33 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* sh.md (sne): Modified to use negc instead of xor.
+	(sne+1): New define_split for new sne pattern.
+	* sh.c (output_stack_adjust): Reorganize code for readability.
+	If size is negative, negate and subtract it instead of adding it.
+
+Wed Apr  9 13:51:07 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* sh.c (output_stack_adjust): When splitting an adjustment into two
+	parts, make sure the stack is aligned at all times.
+
+Tue Apr  8 12:34:38 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.h (RETURN_ADDR_RTX): Define.
+
+Mon Apr  7 19:19:57 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.c (count_tst_insns): New function.
+	(expand_prologue): Load zero into data and/or address registers
+	if any are free and the function has optimizable tst insns.
+	(output_tst): If a suitable register is known to have the
+	value zero, use it instead of searching for a suitable register.
+	* mn10300.h (zero_dreg, zero_areg): Declare.
+	(FRAME_POINTER_NEEDED): Frame pointers are not needed if the
+	outgoing argument size is zero.
+	* mn10300.md (movXX): Optimize loading zero into an address
+	register if possible.  Optimize loading a DF/DI mode value
+	into an address register from a constant memory address.
+	(addsi3): Provide alternative which doesn't require a matching
+	inout operand.
+	(return): Optimize consecutive return instructions.
+
+Mon Apr  7 17:30:35 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* mips/iris5.h (SUBTARGET_CC1_SPEC): Define.
+	(LINK_SPEC, STARTFILE_SPEC): Support -static.
+	* mips/iris6.h (SUBTARGET_CC1_SPEC): Define.
+	(STARTFILE_SPEC, LINK_SPEC): Support -static.
+	* mips.h: (SUBTARGET_CC1_SPEC): Define.
+	(CC1_SPEC): Add subtarget_cc1_spec.
+	(EXTRA_SPECS): Add subtarget_cc1_spec.
+
+Sun Apr  6 12:24:53 1997  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* arm.md (incscc): Use a match_operand with cc_register to match
+	the condition code register.
+	(decscc, *condbranch, *condbranch_reversed, *mov_scc): Likewise.
+	(*mov_negscc, *mov_notscc, *cond_return): Likewise.
+	(*cond_return_inverted, *ior_scc, *cond_move): Likewise.
+	(insv): New expand.
+	(andsi_notsi_si): Renamed from *andsi_notsi_si.
+	(andsi_not_shiftsi_si): New insn.
+	(*minmax_arithsi): Don't match this insn if operand1 is an
+	eliminable register.
+	({sin,cos}*): Delete, since the ARM always emulates these its
+	faster to call a library function.
+	(movsicc, *movsicc_insn): Make operand0 an s_register_operand,
+	and operand3 an arm_not_operand.  Use cc_register to match the
+	condition code register.
+	(mov[sd]fcc*): Make operand[0,2] s_register_operands, and operand3
+	the nonmemory_operand.  Use cc_register to match the condition
+	code register.
+	(*ifcompare_plus_move): Move before *ifcompare_arith_move.  Just do
+	a split for the output.
+	(*ifcompare_move_plus): Similarly, but relative
+	to *ifcompare_move_arith.
+	(*if_plus_move, *if_move_plus): New patterns.
+	(*ifcompare_arith_arith): Simplify the alternatives down to just one,
+	and split the insn before output.
+	(*if_arith_arith, *if_arith_move, *if_move_arith): New patterns.
+	(*ifcompare_move_not, *ifcompare_not_move): Simplify and split the
+	insn before output.
+	(*if_move_not, *if_not_move): New patterns.
+	(*ifcompare_shift_move, *ifcompare_move_shift): Simplify and split the
+	insn before output.
+	(*if_shift_move, *if_move_shift): New patterns.
+	(*ifcompare_shift_shift): Simplify and split the insn before output.
+	(*if_shift_shift): New pattern.
+	(*ifcompare_not_arith, *ifcompare_arith_not): Simplify and split the
+	insn before output.
+	(*if_not_arith, *if_arith_not): New patterns.
+	(*ifcompare_neg_move, *ifcompare_move_neg): Simplify and split the
+	insn before output.
+	(*if_neg_move, *if_move_neg): New patterns.
+
+Sat Apr  5 20:17:43 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/sol-ci.asm (_environ): Don't make _envrion a common
+	variable, the lastest assembler doesn't let common variables also
+	be a weak symbol.
+
+Fri Apr  4 18:30:12 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* rs6000/rs6000.md (adddi3): Use non_short_cint_operand instead of
+	non_add_cint_operand.
+
+Thu Apr  3 15:08:39 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.c (can_use_return_insn): Add size of fixed stack space
+	for function calls into the size of the frame.  */
+	(expand_prologue, expand_epilogue): Likewise.
+	(initial_offset): Corresponding changes..
+	* mn10300.h (OUTGOING_REG_PARM_STACK_SPACE): No longer define.
+	(STACK_POINTER_OFFSET): Define.
+	* mn10300.md (call, call_value expanders): Don't adjust the stack
+	pointer here anymore.
+
+	* mn10300.md (ashlsi3): Remove some alternatives which are no longer
+	needed or desired.
+
+Thu Apr  3 15:06:53 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* local-alloc.c (no_conflict_p): Reject sequences with foreign insns.
+
+	* combine.c (move_deaths): Handle partial REG_DEAD note for
+	multi-reg hard register.
+
+	* function.c (expand_function_start): Emit queue after expanding
+	each dynamic parameter type.
+
+	* mips.c (mips_move_2words): Add SIGN_EXTEND support for SYMBOL_REF,
+	LABEL_REF, and CONST operands.
+
+	* dwarf2out.c: Delete comment referring to README.DWARF.
+
+Wed Apr  2 17:21:23 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* rs6000.md (ashrdi3_power): Mark alternative 0 as early_clobber
+	output.
+
+	* rs6000.md (abssi3_nopower define_split): Switch operands of MINUS.
+	(nabssi3_nopower define_split): Likewise.
+
+Tue Apr  1 19:30:01 1997  Mike Stump  <mrs@cygnus.com>
+	
+	* libgcc2.c (find_exception_table): Fix to logic to deal with
+	functions that are in their own section, such as template
+	instantiations, that cause overlapping EH tables.
+
+Tue Apr  1 17:16:22 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* Makefile.in (USER_H): Add va-mn10300.h
+
+	* ginclude/stdarg.h: Include va-mn10300.h.
+	* ginclude/varargs.h: Likewise.
+	* ginclude/va-mn10300.h: New file.
+	* mn10300.c (expand_prologue): If current_function_varargs is nonzero,
+	flush d0/d1 back into stack.
+	(mn10300_builtin_saveregs): New function.
+	(function_arg, function_arg_partial_nregs): New functions.
+	(initial_offset): Tweak now that the RP save area is allocated
+	and deallocated around each call again.
+	* mn10300.h (FIRST_PARM_OFFSET): Now 4.
+	(FRAME_POINTER_REQUIRED): Require frame pointer for all non-leaf fcns.
+	(REG_PARM_STACK_SPACE): Now 8 bytes.
+	(FUNCTION_ARG_REGNO_P): Update for new parameter passing conventions.
+	(CUMULATIVE_ARGS, INIT_CUMULATIVE_ARGS): Likewise.
+	(FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Likewise.
+	(FUNCTION_ARG_PARTIAL_NREGS): Likewise.
+	(TRAMPOLINE_TEMPLATE): Don't clobber d0 anymore.
+	(TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
+	(EXPAND_BUILTIN_SAVEREGS): Define.
+	* mn10300.md (call, call_value patterns): Allocate and deallocate
+	stack slot for return pointer around each call.
+
+	* mn10300.h (RTX_COSTS): Refine.
+	(CASE_VALUES_THRESHHOLD, NO_FUNCTION_CSE): Likewise.
+	* mn10300.c (output_tst): New function.
+	* mn10300.md (movdi, movdf): Improve code to load constants into regs.
+	(tst insns): Use output_tst to optimize some cases.  Add versions to
+	encourage more zero extensions instead of sign extensions of HImode
+	and QImode values.
+	(divsi3, udivsi3): Remove patterns.  Replaced by...
+	(divmodsi4, udivmodsi4): New expanders/patterns.
+	(andsi3): Optimize "and" operations with certain constants.
+
+Tue Apr  1 09:14:29 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* sh.h: (ADJUST_COSTS): Define.
+
+Fri Mar 28 17:46:13 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* Makefile.in (LANGUAGES): Add gcov.
+	(OBJS): Add profile.o.
+	(STAGESTUFF): Add gcov.
+	(profile.o, gcov.o, gcov): Add rules to build them.
+	(cpp.info, gcc.info, gcc.dvi): Add gcov.texi.
+	(install-common): Install gcov.
+	* combine.c (distribute_notes): Handle REG_BR_PROB and REG_EXEC_COUNT
+	REG_NOTES.
+	* sparc.h (OVERRIDE_OPTIONS): Check profile_arc_flag.
+	* final.c (LONG_TYPE_SIZE): Define.
+	(count_instrumented_arcs): New variable.
+	(end_final, profile_after_prologue, leaf_function_p): Add support
+	for profile_arc_flag.
+	(add_bb): Only call CC_STATUS_INIT if HAVE_cc0.
+	* flags.h (profile_arc_flag, flag_test_coverage,
+	flag_branch_probabilities): Declare.
+	* function.c (expand_function_end): Output NOTE_REPEATED_LINE_NUMBER
+	for last line of function.
+	* integrate.c (expand_inline_function): Output
+	NOTE_REPEATED_LINE_NUMBER after inlined call.
+	* jump.c (jump_optimize, follow_jumps, mark_jump_label): Disable some
+ 	optimizations when flag_test_coverage and there is a line number note
+ 	in the way.
+	(invert_jump): Add REG_BR_PROB when flag_branch_probabililties.
+	* libgcc2.c (__bb_exit_func): Support gcov style output.
+	* reorg.c (mostly_true_jump): Use REG_BR_PROB notes when
+	flag_branch_probabilities.
+	* rtl.c (note_insn_name): Add NOTE_REPEATED_LINE_NUMBER.
+	(reg_note_name): Add REG_BR_PROB and REG_EXEC_COUNT.
+	* rtl.h (enum reg_note): Add REG_BR_PROB and REG_EXEC_COUNT.
+	(REG_BR_PROB_BASE): Define.
+	(NOTE_REPEATED_LINE_NUMBER): Define.
+	* sched.c (update_flow_info): Handle REG_EXEC_COUNT and REG_BR_PROB
+	notes.
+	* toplev.c (branch_prob_dump, profile_arc_flag, flag_test_coverage,
+	flag_branch_probabilities, branch_prob_dump_file, branch_prob_time):
+	New variables.
+	(f_options): Add profile-arcs, test-coverage, and
+	branch-probabilities.
+	(compile_file): Set branch_prob_time.  Pass flag_test_coverage to
+	init_emit_once.  Handle branch_prob_dump.  Call init_branch_prob.
+	Call end_branch_prob. Call output_func_start_profiler.
+	(rest_of_compilation): Handle branch_prob_dump.  Call new
+	branch_prob pass.
+	(main): Set branch_prob_dump.
+	* gcov.c, profile.c, gcov-io.h, gcov.texi: New files.
+
+Thu Mar 27 16:52:52 1997  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.h (CPP_CPU_DEFAULT): Define if TARGET_CPU_DEFAULT is not set.
+	* i386.h (STACK_BOUNDARY): Define to always be 32.
+
+	From J"orn Rennecke <amylaar@cygnus.co.uk>
+	* i386.md: (zero_extendhisi2+[12]): use true_regnum instead of REGNO for
+ 	operand 0.  
+	(zero_extendqisi2+3: use reg_overlap_mentioned_p instead of REGNO
+ 	comparison; use true_regnum instead of REGNO for rtx generation.
+
+Wed Mar 26 12:34:21 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* reload1.c (reload): Call reload_cse_regs.
+	(reg_values): New static variable.
+	(reload_cse_invalidate_regno): New static function.
+	(reload_cse_mem_conflict_p): New static function.
+	(reload_cse_invalidate_mem): New static function.
+	(reload_cse_invalidate_rtx): New static function.
+	(reload_cse_regs): New static function.
+	(reload_cse_regno_equal_p): New static function.
+	(reload_cse_noop_set_p): New static function.
+	(reload_cse_simplify_set): New static function.
+	(reload_cse_check_clobbered): New static variable.
+	(reload_cse_check_src): New static variable.
+	(reload_cse_check_clobber): New static function.
+	(reload_cse_record_set): New static function.
+
+Wed Mar 26 07:34:06 1997  Ulrich Drepper  <drepper@cygnus.com>
+
+	* ginclude/stdarg.h (__va_copy): New definition.
+
+Tue Mar 25 13:43:36 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* gcc.c (init_spec): If -v, print out that the default spec values
+	were being used.  Fix prototype to reflect no arguments.
+	(set_spec): If specs has not been set, set it up with the default
+	specs.
+	(read_specs): Move to later in the file so that startfile_prefixes
+	has been declared.  Process "%include <file>" to include another
+	specs file, aborting if the file can't be found.  Process
+	"%include_noerr <file>: to include another specs file, giving no
+	error if the file can't be found.  Process "%rename var1 var2" to
+	rename a specs variable.  Take new argument that indicates whether
+	we are processing the main file.  Only process % commands if this
+	is not the main specs file.  Change callers.
+	(main): Do not call init_spec if a specs file was found.
+	(set_spec,read_specs,do_spec_1): If DEBUG_SPECS is defined, print
+	debug information.
+	
+Tue Mar 25 14:43:58 1997  Doug Evans  <dje@cygnus.com>
+
+	* expr.c (emit_push_insn): Delete emission of CLOBBER
+	when doing partial push, no longer necessary.
+
+	* c-decl.c (grokdeclarator): Pedwarn qualified void function return
+	type.
+
+Tue Mar 25 14:28:15 1997  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* reload.c (find_dummy_reload): New parameter earlyclobber.  If set
+	then don't use IN for the reload if it also appears elsewhere in
+	the insn.  All callers changed.
+
+Tue Mar 25 13:20:18 1997  J.T. Conklin	<jtc@cygnus.com>
+
+	* m68k/lb1sf68.asm (udivsi3): Fix hunk from previous patch that
+	did not apply correctly.
+
+	* m68k.md (tablejump): Use extl to explicitly sign extend
+	index registeron TARGET_5200.
+	* m68k/{apollo68.h,coff.h,linux.h,mot3300.h,pbb.h} 
+	(ASM_RETURN_CASE_JUMP): Likewise.
+
+	* m68k.md (mulsi3): Changed into define_expand.  Split insn into
+ 	m68k and coldfire specific versions with appropriate constraints.
+
+	* m68k.md (movqi): Disable use of address registers for 
+	TARGET_5200.
+
+	* m68k/lb1sf68.asm (__modsi3, __umodsi3): Use mulsl instruction
+	instead of __mulsi3 function call on the coldfire.
+
+	* m68k.md (bne0_di): Fix typo in last change.
+
+	* m68k.md (xorsi3_5200): Correct constraints.
+
+	* m68k.c (output_move_{si,hi,qi}mode): New functions.
+	* m68k.h (output_move_{si,hi,qi}mode): Declare.
+
+	* m68k.md (move{si,hi,qi,di}): Changed into define_expands.  Split
+	insns into m68k and coldfire specific versions with appropriate
+	constraints.
+
+Tue Mar 25 12:18:41 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* Makefile.in (GCC_PASSES): Revert previous change; use
+ 	cc1$(exeext).
+
+Mon Mar 24 16:12:20 1997  Doug Evans  <dje@cygnus.com>
+
+	* m32r/*: New files.
+	* config.sub: Add m32r.
+	* configure: Add m32r.
+	* longlong.h: Add m32r support.
+	* ginclude/{stdarg.h,varargs.h}: Add m32r support.
+	* ginclude/va-m32r.h: New file.
+
+Mon Mar 24 15:53:15 1997  Joel Sherrill <joel@OARcorp.com>
+
+	* rs6000/rtems.h: Change to a near clone of the powerpc-eabi target.
+	* configure (powerpc*-*-rtems): Move before Linux configuration.
+
+Mon Mar 24 14:26:37 1997  Gavin Koch  <gavin@cygnus.com>
+
+	* ginclude/va-mips.h:  For little endian, eabi, objects
+	less than __va_reg_size are passed in registers.
+
+Fri Mar 21 00:48:02 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.c (print_operand): Handle 'N'.
+
+	* mn10300.c (expand_epilogue): Correctly handle functions
+	with large frames, but no callee register saves.
+
+	* mn1300.md (movdf, movdi): Handle overlapping moves.
+
+	* pa.c (compute_movstrsi_length): Handle residuals correctly.
+
+Thu Mar 20 13:53:30 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.c (easy_fp_constant): If -mrelocatable, consider all fp
+	constants to be hard.
+
+Mon Mar 20 13:53:30 1997  Jim Wilson  <wilson@cygnus.com>
+ 
+	* rs6000.md (movdf/movsf define_splits): Add SUBREG support.
+ 
+	* rs6000.c (fp_reg_or_mem_operand): Delete.
+	* rs6000.h (PREDICATE_CODES): Remove fp_reg_or_mem_operand.
+	(fp_reg_or_mem_operand): Delete declaration.
+	* rs6000.md (movsf_hardfloat): Use nonimmediate_operand instead
+	of fp_reg_or_mem_operand.
+
+Thu Mar 20 08:52:27 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.md (cmpsi): Handle comparing a register with
+	itself by adding zero to the reg.  Z bit for such an insn is
+	inverted.
+	* mn10300.c (notice_update_cc): Handle CC_INVERT.
+
+	* pa.c (emit_move_sequence): Don't lose for a secondary reload
+	to the SAR register if the input is a MEM with an offset that won't
+	fit in 14bits.
+
+Wed Mar 19 17:10:44 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* m68k/linux.h (ASM_OUTPUT_MI_THUNK): Define.
+
+Wed Mar 19 16:59:34 1997  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c, cpplib.c (do_error, do_warning): Fix memory leak.
+
+	* cccp.c (output_line_directive): Do not output negative line
+	numbers when analyzing directives like `#line 0'.
+
+	* cexp.y (parse_number, yylex), cccp.c (rescan), cpplib.c
+	(cpp_get_token): Unless -lang-c89 is specified, allow C9X-style
+	hexadecimal floating-point numbers as preprocessor numbers.
+	* cccp.c (c89): New decl.
+	(main): Set it to 1 if -lang-c89.
+	* cpplib.h (struct cpp_options): New member c89.
+	(CPP_C89): New macro.
+	* cpplib.c (unsafe_chars): `p' is unsafe before `-' or `+', since it
+	might generate a C9X-style hexadecimal floating-point number.
+	(cpp_handle_options): Set c89 option to 1 if -lang-c89.
+
+Tue Mar 18 17:05:57 1997  Stan Cox  <coxs@dg-rtp.dg.com>
+
+        * i386.h (STACK_BOUNDARY): Determine according to TARGET_ALIGN_DOUBLE.
+	
+	* i386.c (override_options) Make the default alignment 4 for 486,
+	otherwise 2.
+	
+	* i386/freebsd-elf.h (CPP_SPEC): Remove TARGET_CPU_DEFAULT reference.
+	* i386/linux{,-aout,-oldld}.h (CPP_SPEC): Likewise.
+	
+	* i386/go32.h (DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
+	NO_STAB_H, ASM_FILE_START, DBX_BLOCKS_FUNCTION_RELATIVE,
+	DBX_FUNCTION_FIRST, DBX_OUTPUT_MAIN_SOURCE_FILE_END,
+	ASM_OUTPUT_SOURCE_LINE): Added to support stabs.
+	(ASM_OUTPUT_SECTION_NAME): Support section attribute.
+
+Tue Mar 18 16:12:28 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* final.c (shorten_branches): Split all insns before computing insn
+	lengths.
+	(final_scan_insn, case default): If HAVE_ATTR_length defined, call
+	abort for any insn that has a '#' output template.
+
+	* expr.c (emit_group_load): Call operand_subword instead of creating
+	an explicit SUBREG.
+
+	* reload1.c (reload_reg_free_before_p, case
+	RELOAD_FOR_OPERAND_ADDRESS): Conflicts with RELOAD_FOR_OPADDR_ADDR
+	reloads.
+
+	* configure (alpha-dec-osf[23456789]*): Use install-headers-cpio
+	for osf4.
+
+	* gcc.c (init_spec): Delete parameter.  Always initialize extra_specs.
+	(process_command, main): Change all callers.
+
+	* combine.c (if_then_else_cond): Call copy_rtx to prevent sharing.
+
+Tue Mar 18 14:59:12 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* function.c (assign_parms): Add a REG_EQUIV note to the
+ 	instruction which copies a parameter into a pseudo-register
+ 	whenever there is an associated stack slot, even if the parameter
+ 	actually arrived in a register.
+
+Tue Mar 18 14:24:48 1997  Doug Evans  <dje@cygnus.com>
+
+	* configure (alpha-dec-osf[23]): Separate osf[23] case.
+	* alpha.h (LIB_SPEC): -lprof1 requires -lpdf for OSF 4.
+	* alpha/osf2or3.h: New file.
+
+Tue Mar 18 11:32:10 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* m68k.c (m68k_last_compare_had_fp_operands): New variable.
+	* m68k.h (m68k_last_compare_had_fp_operands): Declare it.
+	* m68k.md (tst*, cmp*): Turn into define_expand/define_insn pairs.
+	Keep track of whether test/compare has fp operands.
+	(seq, sne, sgt, slt, sge, sle): Turn into define_expand/define_insn
+	pairs.  Make expanders FAIL if TARGET_68060 and last comparison/test
+	had fp operands.
+
+Tue Mar 18 04:29:29 1997  Richard Earnshaw <rearnsha@armltd.co.uk>
+
+	* arm.md (movhi): Handle generation of large constants during
+	and after reload.
+
+Mon Mar 17 17:30:24 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* gmicro.h (RETURN_POPS_ARGS): Make sure FUNDECL is non-nil
+	before we try to use it.
+	* m68k.h (RETURN_POPS_ARGS): Likewise.
+	* ns32k.h (RETURN_POPS_ARGS): Likewise.
+	* pyr.h (RETURN_POPS_ARGS): Likewise.
+
+Mon Mar 17 17:13:44 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* stor-layout.c (layout_record, PCC_BITFIELD_TYPE_MATTERS):
+	Only add padding if a bit field would otherwise span more units
+	of alignment than its base type.
+
+Mon Mar 17 17:03:55 1997  J.T. Conklin  <jtc@cygnus.com>
+
+	* m68k.md (beq0_di, bne0_di, bge0_di, blt0_di): Use cmpw #0
+ 	instead of tstl when testing address registers on the 68000.
+	
+	* m68k/lb1sf68.asm: Fix prologues/epilogues to deal with the lack
+ 	of predecrement/postincrement addressing modes in the coldfire
+	moveml instruction.
+
+Mon Mar 17 17:00:14 1997  Scott Christley <scottc@net-community.com>
+
+	* Fix long standing bug where first method call for a class could
+	result in a garbled stack or produce an incorrect return value.
+	* objc/sendmsg.c (__objc_block_return): Remove function.
+	(__objc_word_return, __objc_double_return): Remove functions.
+	(__objc_get_forward_imp): New function.
+	(__objc_init_dispatch_tables): Install zero instead of
+	__objc_init_install_dtable.
+	(__objc_init_install_dtable): No longer call the method but
+	allow objc_msg_lookup return it for normal execution.
+	(obj_msg_lookup): Differentiate between when a method isn't
+	implemented and when the dispatch table needs to be installed.
+	Return the IMP when the dispatch table is installed versus
+	having __objc_init_install_dtable call it.
+	(get_imp): Install dispatch table if needed and return IMP
+	from the newly installed dispatch table.
+	(__objc_responds_to): Install dispatch table if needed before
+	checking if method is implemented.
+
+Mon Mar 17 16:29:38 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* tree.c (build_{index,range}_type): Ensure expressions for min
+	and max value are in same obstack as type.
+
+Mon Mar 17 15:44:18 1997  Pat Rankin  <rankin@eql.caltech.edu>
+
+	* cccp.c [#if VMS] (O_RDONLY, O_WRONLY): Delete (redundant).
+	(BSTRING): Delete (obsolete; usage occurs prior to definition).
+	(do_include): Handle old VAX C style includes better.
+
+Mon Mar 17 13:46:47 1997  Paul Eggert  <eggert@twinsun.com>
+
+	* cexp.y, cppexp.c (parse_number): Invalid integer constants are
+	errors if pedantic.
+	* cexp.y (yylex): Invalid multibyte characters are errors if pedantic.
+	* cppexp.c (cpp_lex): Likewise.
+	* cppexp.c (cpp_parse_escape): Character constants that do not fit are
+	errors if pedantic.
+
+	* c-parse.in (expr_no_commas): Do not store temporary
+	skip_evaluation increments on yacc value stack.
+
+Sun Mar 16 19:54:49 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* expr.c (expand_expr, case PLACEHOLDER_EXPR): Refine which
+	object is picked.
+
+Sun Mar 16 15:45:45 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* loop.c (strength_reduce): Adjust BENEFIT appropriately if an
+	autoincrement memory reference will eliminate add insns.
+
+Sun Mar 16 08:41:40 1997  Scott Christley <scottc@net-community.com>
+
+	* i386.md (untyped_call): Re-enable code.
+	* objc/sendmsg.c (__objc_block_return): New function.
+	(__objc_word_return, __objc_double_return): New functions.
+	(__objc_init_install_dtable): Call appropriate return function
+	based upon method type.
+	* objc/thr-pthreads.c: Correct include path.
+
+Sat Mar 15 07:58:33 1997  Scott Christley <scottc@net-community.com>
+
+	* objc-act.c (OBJC_VERSION): Increment version.
+	* objc/init.c (OBJC_VERSION): Likewise.
+
+Sat Mar 15 07:58:00 1997  Ovidiu Predescu <ovidiu@net-community.com>
+
+	* Implement +load.
+	* objc/init.c (objc_send_load, __objc_send_load): New functions.
+	(__objc_send_message_in_list): New function.
+	(__objc_force_linking): New function.
+	(__objc_exec_class): Don't call _objc_load_callback here.
+	* objc/linking.m: New file.
+	* objc/sendmsg.c (class_add_method_list): Check for the +load method
+	when adding a methods list to a class.
+	* objc/Makefile (OBJC_O): Add linking.m.
+
+	* Allow methods defined in categories to override methods that are
+	defined in the class implementation.
+	* objc/sendmsg.c (__objc_install_methods_in_dtable): New function.
+	(class_add_method_list): Don't check anymore for duplicate methods.
+
+	* config/nextstep.h (INCLUDE_DEFAULTS): Define to something useful
+	when cross-compiling.
+
+	* The static instances list moved from the objc_module struct to 
+	objc_symtab struct, at the end of defs array. This now allows the NeXT
+	gdb to work with binaries generated for the GNU ObjC runtime.
+	* objc-act.c (build_objc_symtab_template): Make sure
+	defs in objc_symtab is a NULL terminated array.
+	(init_def_list): Attach statics to end of def list.
+	(init_objc_symtab): Take statics list into account.
+	(init_module_descriptor, build_module_descriptor): Don't add statics.
+	(generate_static_references): Indicate that statics are used.
+	(finish_objc): Process statics in the beginning.
+	* objc/objc-api.h (objc_module): Eliminate statics variable.
+	* objc/init.c (__objc_exec_class): Access statics from their
+	new place in the defs variable.
+
+Sat Mar 15 07:29:15 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* reload.c: Include expr.h.
+	(find_reloads_address, find_reloads_address_1): New argument INSN.
+	(find_reloads_address_1): Reload inside of p{re,ost}_{in,de}c
+	instead of entire p{re,ost}_{in,de}c where appropriate.
+	* Makefile.in (reload.o): Added expr.h to dependencies list.
+
+Sat Mar 15 07:17:12 1997  Richard Henderson  <rth@tamu.edu>
+
+	* reload.h (eliminate_regs): Add STORING arg.
+	* reload1.c (eliminate_regs): Likewise.
+	(eliminate_regs, case SET): Pass that we are storing to recursive call.
+	(eliminate_regs, case SUBREG): If storing and same number of words,
+	use larger mode.
+	* caller-save.c, dbxout.c, dwarfout.c, dwarf2out.c, reload.c, sdbout.c:
+	Change all calls to eliminate_regs.
+
+Fri Mar 14 14:18:49 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* cplus-dem.c: Add prototypes for all static functions.
+	(mystrstr): Make static.  Make arguments and result const.
+	(cplus_match): Remove; not used.
+
+Fri Mar 14 10:15:35 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.c (const_costs): Remove unused function.
+	* mn10300.h (CONST_COSTS): Rework to generate better code.
+
+	* mn10300.c (print_operand): Handle 'H' and 'L' output
+	modifers for high/low part of a 64bit value.
+	* mn10300.h (CONST_DOUBLE_OK_FOR_LETTER_P): Handle 'G'
+	(LEGITIMATE_CONSTANT_P): Allow any constant.
+	* mn10300.md (movdi, movdf): Implement.
+	(adddi3, subdi3): New expanders and patterns.
+
+	* mn10300.c (print_operand): Handle 'A' modifier for an
+	address which can't be simple register indirect.
+	* mn10300.h (EXTRA_CONSTRAINT): Handle 'R' for bit ops.
+	* mn10300.md: Add patterns to test, set and clear bitfields.
+
+	* mn10300.c (can_use_return_insn): New function.
+	(expand_epilogue): Emit a RETURN insn if possible.
+	* mn10300.md (return): New pattern.
+
+	* mn10300.h (CONST_OK_FOR_LETTER_P): Handle 'N'.
+	* mn10300.md (andsi3): Catch "and 255,dn" and "and 65535,dn"
+	which were not turned into zero_extend patterns.
+
+	* mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Handle symbolic
+	constant as an index/base too.
+
+	* mn10300.md (movsi): Allow SP to be loaded/saved with
+	reg+d8 addresses.
+
+	* mn10300.md (cmpsi): Allow second operand to be a constant.
+	(subsi3): Likewise.
+
+	* mn10300.md (sign extension patterns): Fix thinko when
+	extending from memory.
+
+	* mn10300.md (tst peepholes): Add peepholes for test/branch
+	based on N bit being set/clear and the data value being tested dies.
+
+Tue Mar 11 17:07:51 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.c (expand_prologue): Rework so that eliminating
+	the frame pointer produces faster/smaller code.
+	(expand_epilogue): Likewise.
+	(initial_offset): New function for argument pointer and frame pointer
+	elimination.
+	* mn10300.h (FIRST_PSEUDO_REGISTER): Bump to 10.
+	(FIXED_REGISTERS): Add argument pointer register, it's a fake fixed
+	register.
+	(CALL_USED_REGISTERS, REG_ALLOC_ORDER): Corresponding changes.
+	(REGNO_REG_CLASS, REG_CLASS_CONTENTS): Likewise.
+	(REG_OK_FOR_BASE_P, REGISTER_NAMES): Likewise.
+	(reg_class, REG_CLASS_NAMES): Delete unwanted DATA_OR_SP_REGS class.
+	(PREFERRED_OUTPUT_RELOAD_CLASS): Define.
+	(FIRST_PARM_OFFSET): No longer include register save area in
+	computation.
+	(STACK_POINTER_REGNUM): Is now register 9.
+	(ARG_POINTER_REGNUM): Is now register 8.
+	(FRAME_POINTER_REQUIRED): Refine.
+	(ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Define.
+	(CAN_DEUG_WITHOUT_FP): Define.
+	* mn10300.md (return_internal): Break into two patterns.
+	
+	* mn10300.h (CONST_OK_FOR_LETTER_P): Handle 'M' too.
+	(REGISTER_MOVE_COST): Fix errors and refine.
+
+	* mn10300.c (notice_update_cc): SET_ZN_C0 insns leave the
+	overflow bit in an unuseable state.  Rename CC_SET to CC_TST.
+	* mn10300.md (cc attributes): "set" is gone, replaced by
+	"tst".  Update attributes on various insns.
+
+	* mn10300.md: Improve sign and zero extension instructions.
+	(ashlsi3): Improve.  Handle address registers too.
+	(add peephole): Combine two consecutive adjustments of a register
+	into a single adjustment.
+
+Tue Mar 11 17:18:40 1997  Brendan Kehoe  <brendan@melange.gnu.ai.mit.edu>
+
+	* cplus-dem.c (gnu_special): Call demangled_fund_type for other
+	__t* symbols.
+
+Mon Mar 10 16:10:34 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* emit-rtl.c (subreg_lowpart_p): Return 0 if SUBREG_REG is VOIDmode.
+	* combine.c (simplify_rtx, case SUBREG): Fix direction of test when
+	calling operand_subword; use inline code intead of subreg_lowpart_p.
+
+Fri Mar  7 09:22:28 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.c (expand_{pro,epi}logue): Rework to avoid
+	unnecessary "add" operations.
+	(expand_epilogue): Likewise.
+	* mn10300.h (STARTING_FRAME_OFFSET): Is zero after the last
+	round of prologue/epilogue changes.
+	(FIRST_PARM_OFFSET): Is now 16 (-4 for REG_PARM_STACK_SPACE + 20 for
+	register save area).
+	(REG_PARM_STACK_SPACE): Define as 4 bytes.
+	(OUTGOING_REG_PARM_STACK_SPACE): Define so caller allocates it.
+	* mn10300.md (call{,_value} expander): Don't emit insns to adjust the
+	stack here anymore.
+
+	* mn10300.md (bCC patterns): Just use "bCC target".
+
+Tue Mar  4 13:21:41 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* rs6000.md (movsi): Don't emit a USE insn for LABEL_REFs.
+
+Thu Mar  6 16:29:13 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* dwarf2out.c (modified_type_die): Initialize item_type to NULL.
+	Move equate_type_number_to_die call before use of sub_die, and move
+	recursive modified_type_die calls on item_type after it.
+
+	* dwarfout.c (root_type_1, write_modifier_bytes_1): New functions.
+	(root_type): Call root_type_1.
+	(write_modifier_bytes): Call write_modifier_bytes_1.
+	(output_type, case POINTER_TYPE): Set TREE_ASM_WRITTEN before
+	recursive call.
+
+Wed Mar  5 14:30:49 1997  Torbjorn Granlund  <tege@quiet.matematik.su.se>
+
+	Partially undo Jan 11 changes (nor takes only register ops):
+	* mips.md (*norsi3_const, *nordi3_const): Delete bogus patterns.
+	* mips.c (complemented_arith_operand): Delete function.
+	(print_operand): Don't handle `e' for CONST_INT.
+	* mips.h (PREDICATE_CODES): Delete complemented_arith_operand.
+
+Tue Mar  4 16:38:13 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* i386.c (i386_return_pops_args): Make sure FUNDECL is non-nil
+	before we try to use it.
+	* i386/isc.h (RETURN_POPS_ARGS): Likewise.
+	* i386/next.h (RETURN_POPS_ARGS): Likewise.
+	* i386/sco.h (RETURN_POPS_ARGS): Likewise.
+	* i386/sco5.h (RETURN_POPS_ARGS): Likewise.
+	* i386/scodbx.h (RETURN_POPS_ARGS): Likewise.
+
+Mon Mar  3 20:17:54 1997  Gavin Koch  <gavin@cygnus.com>
+
+	* ginclude/va-mips.h: __mips_single_float should have
+	the same effect on vararg lists as __mips_soft_float.
+
+Mon Mar  3 18:12:01 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.h (DBX_CONTIN_LENGTH): Undo 2/26 change.
+
+Mon Mar  3 13:08:20 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* combine.c (simplify_rtx): Do nothing with (truncate:mode) if
+	mode is a partial integer mode.
+
+Sun Mar  2 17:41:18 1997  Ulrich Drepper  <drepper@cygnus.com>
+
+	* ginclude/varargs.h: Add definition of __va_copy.
+	* va-alpha.h, va-clipper.h, va-h8300.h, va-i860.h: Likewise.
+	* va-i960.h, va-m88k.h, va-mips.h, va-pa.h, va-ppc.h: Likewise.
+	* va-sh.h, va-sparc.h, va-spur.h: Likewise.
+
+Sun Mar  2 13:25:49 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-typeck.c (process_init_element): Warn and truncate if upper
+	bound of index is out of range.
+
+Fri Feb 28 16:08:47 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/sol-c0.c (_start): Disable loading up r13 and r2 with the
+	SDA base registers for now.
+
+	* rs6000.md (movsi): Emit a USE insn when putting the
+	label of constants into the TOC, so that the constant is still
+	emitted when expensive optimizations are used.
+
+Thu Feb 27 17:54:42 1997  Karl Heuer  <kwzh@gnu.ai.mit.edu>
+
+	* fixinc.ptx: Fix sed expression looking for <sys/types.h> in
+	pwd.h.
+
+Thu Feb 27 12:11:16 1997  Dennis Glatting  <dennis.glatting@plaintalk.bellevue.wa.us>
+
+	* fixincludes: Remove more cases of __const__ from math.h on
+	NeXT.
+
+Wed Feb 26 14:52:27 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* reload.c (debug_reload): Remove extra argument to fprintf.
+
+	* rs6000.c (output_toc): Make fprintf calls type correct.
+
+	* rs6000.h (DBX_CONTIN_LENGTH): Define as 4000 to avoid AIX
+	assembler line limit.
+
+Mon Feb 24 17:56:17 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* fixincludes: Fix need of prototypes for C++ in rpc/xdr.h on SunOS4.
+
+Mon Feb 24 17:33:57 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/xm-sysv4.h (HAVE_STRERROR): Define.
+
+Sun Feb 23 17:18:28 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* rs6000.md (floatsidf2_loadaddr): Correct syntax for cau instruction.
+	(load_multiple, store_multiple): Call change_address instead of
+	creating MEM from scratch.
+
+Thu Feb 20 16:39:15 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* unroll.c (unroll_loop): Add check for naive loop that ends with
+	conditional branch that does not branch back to loop start.
+
+	* reload1.c (reload): Move assign_stack_local call into main loop.
+
+Thu Feb 20 11:40:46 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.md (zero extension patterns): Turn into define_expand and
+	define_insn pair.
+
+Wed Feb 19 17:05:38 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.c (emit_move_sequence): Don't copy 0.0 (double precision)
+	directly to memory, go through a reg if reload hasn't started.
+	* pa.md (main movdf pattern): Don't allow 0.0 (double precision)
+	to be copied directly to memory.
+
+	* pa/pa-hpux10.h (MD_EXEC_PREFIX): Define appropriately for hpux10.
+	(MD_STARTFILE_PREFIX): Similarly.
+
+	* pa.h (ASM_OUTPUT_SECTION_NAME): Surround the section name
+	with '$' if not using GAS.
+
+Wed Feb 19 16:43:47 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* sched.c (schedule_insns): If there was no first scheduling pass,
+	split instructions after reload.
+	(update_flow_info): Tolerate some idiosyncrasies after reload.
+
+Wed Feb 19 11:13:51 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* combine.c (find_split_point): Don't turn a SIGN_EXTEND into
+	a series of shifts if either mode is a partial integer mode.
+
+Mon Feb 17 08:06:02 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.c ({,non_}short_cint_operand): Use (unsigned HOST_WIDE_INT).
+	(non_add_cint_operand, includes_rshift_p): Likewise.
+	* rs6000.h (CONST_OK_FOR_LETTER_P): Likewise.
+	(LEGITIMATE_ADDRESS_INTEGER_P, LEGITIMIZE_ADDRESS): Likewise.
+
+Sun Feb 16 07:55:19 1997  J"orn Rennecke  (amylaar@cygnus.co.uk)
+
+	* libgcc2.c (__negdi2, __lshrdi3, __ashldi3, __ashrdi3, __ffsdi2):
+	Use ANSI style definition with full prototype.
+	(__muldi3, __udiv_w_sdiv, __udivmoddi4, __divdi3, __moddi3) : Likewise.
+	(__udivmoddi4, __udivdi3, __cmpdi2, __ucmpdi2) : Likewise.
+	(__fixunstfdi, __fixtfdi, __fixunsxfdi, __fixxfdi) : Likewise.
+	(__fixunsdfdi, __fixdfdi, __floatdixf, __floatditf) : Likewise.
+	(__floatdidf, __floatdisf, __fixunsxfsi, __fixunsdfsi) : Likewise.
+	(__gcc_bcmp, __eprintf, gopen, gclose, __bb_init_file) : Likewise.
+	(__bb_init_trace_func, __clear_cache, mprotect) : Likewise.
+	(__enable_execute_stack, cacheflush, exit) : Likewise.
+	(find_exception_table, __find_first_exception_table_match) : Likewise.
+
+Sun Feb 16 07:52:02 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
+
+	* 1750a.md (mulqihi3): Corrected.
+	(tst{hf,tqf}): Simplified.
+	(movqi): Removed redundant alternative.
+	(addqi-3,addqi-2,addqi-1): Set/Reset Bit patterns by C. Nettleton.
+	(many patterns): Introduced operand output modifiers d,t,b,B,w.
+	* 1750a.c (print_operand): New operand output modifiers d,t,b,B,w.
+	(simple_memory_operand): Removed.
+	(one_bit_set_p, which_bit): Added from C. Nettleton's m1750 config.
+
+Sun Feb 16 07:43:37 1997  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (special_symbol): Don't treat "L" in "L'...'" as identifier.
+	(check_macro_name, collect_expansion, rescan): Likewise.
+	* cpplib.c (special_symbol, check_macro_name, collect_expansion):
+	Likewise.
+
+	* cexp.y (parse_c_expression): Don't check for null lexptr
+	or *lexptr == 0.  If yyparse returns nonzero value, abort.
+
+	* cexp.y (yylex): Use is_space, not is_hor_space, to find keyword end.
+	(is_space): New decl.
+	(is_hor_space): Removed.
+	* cccp.c (is_space): Now external.
+	(is_hor_space): Now static.
+
+Sun Feb 16 04:55:11 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* toplev.c, tree.h (decl_printable_name): Change arguments.
+	* c-common.c (declare_function_name): Reflect above change.
+	* final.c (final_start_function): Likewise.
+	* function.c (init_function_start): Likewise.
+	* toplev.c (decl_name): Likewise.
+	(announce_function): Likewise.
+	(v_message_with_decl): Likewise.
+	* dwarf2out.c (dwarf2_name): New fn, uses decl_printable_name.
+	(add_pubname): Use it.
+	(add_name_and_src_coords_attributes): Use it, add 
+	DW_AT_MIPS_linkage_name if appropriate.
+	(output_aranges): Use DW_AT_MIPS_linkage_name if present.
+
+Sat Feb 15 18:45:30 1997  J.T. Conklin  <jtc@cygnus.com>
+
+	* m68k.md (cmpsi): Added insn with appropriate constraints for
+	TARGET_5200; changed condition of existing insn to !TARGET_5200.
+
+Sat Feb 15 18:26:50 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* m68k/hp320.h (PRINT_OPERAND_FLOAT): Removed.
+	(ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}_OPERAND): Defined.
+	(PRINT_OPERAND): Turned off: use default.
+	* m68k/news.h (PRINT_OPERAND): Turned off: use default.
+	(ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}_OPERAND): Defined.
+	* m68k/tower-as.h (PRINT_OPERAND): Turned off: use default.
+	(ASM_OUTPUT_{FLOAT,DOUBLE}_OPERAND): Defined.
+	* m68k/crds.h (PRINT_OPERAND): Turned off: use default.
+	(ASM_OUTPUT_{FLOAT,DOUBLE}_OPERAND): Defined.
+	(SGS_NO_LI,STRUCTURE_SIZE_BOUNDARY,IMMEDIATE_PREFIX): Defined.
+	(NEED_PROBE): Defined instead of HAVE_probe and gen_probe.
+	(FUNCTION_{PRO,EPI}LOGUE): Do not access FPA registers.
+	* m68k.c (output_function_prologue): Add CRDS and MOTOROLA probe code.
+	(print_operand): Do not output '.' if CRDS.
+
+	* gcc.c (set_spec): Fix comment-in-comment typo.
+	
+Sat Feb 15 17:54:23 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+	* Makefile.in (COMPILERS): Moved before GCC_PASSES.
+	(GCC_PASSES): Use $(COMPILERS) instead of cc1$(exeext).
+
+Sat Feb 15 17:25:44 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* gcc.c (process_command): Allocate space for terminating null.
+
+Sat Feb 15 17:21:34 1997  Pat Rankin  <rankin@eql.caltech.edu>
+
+	* vax/vax.h (FUNCTION_PROLOGUE): Adjust size by STARTING_FRAME_OFFSET.
+	* vax/vms.h (FUNCTION_PROLOGUE): Delete.
+
+Sat Feb 15 08:48:14 1997  Douglas B. Rupp  (rupp@gnat.com)
+
+	* configure: Fix setting of CC in no-symlink case.
+
+Sat Feb 15 08:42:17 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
+
+	* expmed.c (expand_divmod): Prefer divmod in same mode over div
+	in wider mode.
+
+Sat Feb 15 08:27:50 1997  J"orn Rennecke  (amylaar@cygnus.co.uk)
+
+	* fold-const.c (fold): Don't assume a nonexplicit constant cannot
+	equal an explicit one.
+
+	* i386.md (zero_extendqi[hs]i2+3): Ensure operating on REG.
+
+Sat Feb 15 08:11:04 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure (i[3456]86-*-solaris2*): Correct tm.h filename in
+	stabs case.
+
+	* a29k.h (STORE_FLAG_VALUE): Write so works on both 32 and 64-bit host.
+
+Fri Feb 14 16:03:37 1997  Robert Lipe  <robertl@dgii.com>
+
+	* i386/t-sco5 (libgcc{1,2}-elf.a): correct target dependencies.
+
+Fri Feb 14 16:00:23 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>
+
+	* config/svr4.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Set 
+	current-section variable to text.
+
+Wed Feb 12 16:07:34 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* fixinc.irix: New file.
+	* configure (mips-sgi-irix[56]): Set fixincludes to fixinc.irix.
+
+Wed Feb 12 15:40:20 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* Makefile.in (LIBGCC2_DEBUG_CFLAGS): New macro.
+	(LIBGCC2_CFLAGS): Use it.
+
+	* dwarfout.c (output_type): Do early exit only if TYPE_CONTEXT is NULL
+	or if TYPE_CONTEXT is another type (e.g. a nested type).
+
+Tue Feb 11 15:53:51 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* sh.c (calc_live_regs): Exclude RETURN_ADDRESS_POINTER_REGNUM.
+
+	* sh.c (calc_live_regs): Need not save MACL/MACH when not live
+	or in leaf function.
+
+Mon Feb 10 14:46:32 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* stmt.c (group_case_nodes): Recognize more opportunities to
+	group case nodes.
+
+Sun Feb  9 14:05:48 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (assign_stack_temp): Clear MEM flags from reuse.
+
+Sat Feb  8 17:37:47 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (update_equiv_regs): Fix error in last change.
+
+Fri Feb  7 12:42:34 1997  Mike Stump  <mrs@cygnus.com>
+
+	* pa.h (RETURN_ADDR_RTX): Fix to ignore export stubs.
+	* pa.c (return_addr_rtx): Define.
+
+Fri Feb  7 13:56:56 1997  Doug Evans  <dje@cygnus.com>
+
+	* cse.c (invalidate_from_clobbers): Delete unnecessary test for
+	(clobber nil).
+
+	* toplev.c (main): Delete redundant settings of flag_no_inline
+	and warn_inline if not optimizating.
+
+Fri Feb  7 10:45:02 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* Makefile.in (stmp-multilib-sub): Add missing "else true"
+	clauses to work around make bug on some systems.
+
+Fri Feb  7 08:19:43 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (const_binop): Don't call size_int if low < 0.
+
+	* function.c (instantiate_virtual_regs_1, case USE, CLOBBER):
+	Fix error in last change.
+
+Thu Feb  6 17:09:17 1997  Mike Stump  <mrs@cygnus.com>
+
+	* except.c (find_exception_handler_labels): Initialize label array
+	with zeroes.
+
+Wed Feb  5 22:11:55 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.md (post_ldwm): Fix typos.
+
+Wed Feb  5 15:57:42 1997  Doug Evans  <dje@cygnus.com>
+
+	* m68k/vxm68k.h (WCHAR_TYPE,WCHAR_TYPE_SIZE,SIZE_TYPE): Fix.
+	(PTRDIFF_TYPE): Define.
+
+Wed Feb  5 11:19:13 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* reload1.c (alter_reg): Don't ask assign_stack_local to round up
+	to a multiple of BIGGEST_ALIGNMENT, unless a register appears in a
+	paradoxical subreg.
+
+Tue Feb  4 19:29:40 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* reload.c (find_reloads_address_1, case POST_INC): Don't use
+	ADDR_TYPE here.
+
+Tue Feb  4 12:33:45 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* flow.c (life_analysis): Delete obvious no-op moves
+	which use SUBREGs.
+
+Mon Feb  3 20:00:35 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* jump.c (find_cross_jump): Don't allow old-style and volatile asms
+	to match.
+
+Mon Feb  3 15:51:31 1997  Doug Evans  <dje@cygnus.com>
+
+	* sparc/sol2.h (ASM_SHORT,ASM_LONG): Set to .uahalf/.uaword.
+	* sparc/sysv4.h (ASM_LONG): Define.
+	(ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Use ASM_LONG.
+
+Mon Feb  3 13:01:46 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* reload.h (enum reload_type): Add RELOAD_FOR_INPADDR_ADDRESS and
+	RELOAD_FOR_OUTADDR_ADDRESS.
+	* reload.c (ADDR_TYPE): New macro.
+	(push_secondary_reload): Check for new reload types.
+	(combine_reloads): Likewise.
+	(find_reloads): Likewise.  Convert INPADDR_ADDRESS and
+	OUTADDR_ADDRESS to OPADDR_ADDR.  Check OPADDR_ADDR when looking
+	for merges.
+	(find_reloads_address): When reloading an address, use the
+	ADDR_TYPE macro to get the type of the new reload.
+	(find_reloads_address_1): Likewise.
+	(reload_when_needed_name): Add new reload types.
+	* reload1.c (reload): Add in_addr_addr and out_addr_addr fields to
+	insn_needs struct.  Use them for new reload types, and when
+	computing in_max and out_max.
+	(reg_used_in_inpaddr_addr): New static array.
+	(reg_used_in_outaddr_addr): New static array.
+	(mark_reload_reg_in_use): Handle new reload types.
+	(clear_reload_reg_in_use, reload_reg_free_p): Likewise.
+	(reload_reg_free_before_p, reload_reg_reaches_end_p): Likewise.
+	(reloads_conflict, merge_assigned_reloads): Likewise.
+	(emit_reload_insns): Likewise.
+	(choose_reload_regs): Save arrays for new reload types.
+
+Sun Feb  2 19:43:17 1997  Scott Christley <scottc@net-community.com>
+
+	* objc/selector.c (__sel_register_typed_name): Eliminate compiler
+	warnings with explicit cast.
+
+	* Add condition mutex support to the objc runtime.
+	* objc/thr-mach.c (objc_condition_{,de}allocate): New functions.
+	(objc_condition_{wait,broadcast,signal}): New functions.
+	* objc/thr-pthreads.c (objc_condition_{,de}allocate): New functions.
+	(objc_condition_{wait,broadcast,signal}): New functions.
+	* objc/thr-solaris.c (objc_condition_{,de}allocate): New functions.
+	(objc_condition_{wait,broadcast,signal}): New functions.
+	* objc/thr.h: Prototypes for new functions.
+
+	* objc/init.c (__objc_runtime_mutex): Eliminate leading underscore
+	from name of objc mutex and thread structures.
+	* objc/runtime.h: Likewise.
+	* objc/thr-{decosf1,irix,mach,os2,posix,pthreads,single}.c: Likewise.
+	* objc/thr-{solaris,win32}.c: Likewise.
+	* objc/thr.{c,h}: Likewise.
+
+	* Major reorganization of objc error handling.
+	* objc/Object.m (-error:): Call objc_error function instead of
+	using function pointer.
+	* objc/archive.c: Replace call to abort or __objc_fatal functions
+	with call to objc_error function throughout the complete file.
+	* objc/class.c (objc_get_class): Replace call to abort function
+	with call to objc_error function.
+	* objc/encoding.c (objc_sizeof_type, objc_alignof_type): Replace
+	call to abort function with call to objc_error function.
+	(objc_skip_typespec): Likewise.
+	* objc/init.c (init_check_module_version): Replace call to
+	abort function with call to objc_error function.
+	* objc/misc.c (objc_verror): New function.
+	(objc_fatal): Remove function.
+	(objc_set_error_handler): New function.
+	(_objc_error_handler): New global variable.
+	(__alpha__): Remove unneeded code.
+	(objc_error): Allow user specified error handler function to
+	trap and handle the objc error.  Added an error code parameter
+	which indicates the specific error that occured.
+	(objc_malloc, objc_atomic_malloc): Replace call to objc_fatal
+	function with call to objc_error function.
+	(objc_valloc, objc_realloc, objc_calloc): Likewise.
+	* objc/objc-api.h: Declare error handling functions and typedef
+	for user specified error handler function.  Define error codes
+	used by the runtime library.
+	* objc/runtime.h: Remove error handling declarations.
+	* objc/sendmsg.c (__objc_forward): Replace call to abort function
+	with call to objc_error function.
+	
+Sun Feb  2 19:42:52 1997  Thomas Baier <baier@ci.tuwien.ac.at>
+
+	* objc/hash.c (hash_delete): Step through the hash nodes
+	versus using hash_next to increase efficiency.
+	* objc/archive.c (__objc_finish_read_root_object): Use hash
+	table instead of list.
+
+Sun Feb  2 08:25:05 1997  Ovidiu Predescu  <ovidiu@net-community.com>
+
+	* objc-act.c (encode_aggregate_within): New function.
+	(encode_aggregate): Generates encodings for unions similar 
+	to those for structs except surrounded by parenthesis instead
+	of braces.
+
+Sun Feb  2 07:15:54 1997  Mat Hostetter  (mat@lcs.mit.edu)
+
+	* c-decl.c (start_function): Fix improper installation of last change.
+
+Sun Feb  2 06:50:55 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* m68k.c (output_scc_di): Add missing CC_STATUS_INIT.
+
+Sun Feb  2 06:39:55 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-typeck.c (process_init_element): When popping levels, don't
+	blow up if constructor_max_index not set due to previous error.
+
+	* combine.c (find_split_point, case SET): Fix error in last change.
+
+Sun Feb  2 06:28:56 1997  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (rescan): Insert a space after `.' as well,
+	to prevent accidental token-pasting (e.g. `.x' -> `.10').
+
+Sun Feb  2 06:08:14 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
+
+	* 1750a.c (modregno_adjust): Fixed case when reg_renumber invalid.
+
+Sat Feb  1 19:11:08 1997  J.T. Conklin  <jtc@rhino.cygnus.com>
+
+	* m68k.md (movqi): Enable use of clr and st insns on TARGET_5200.
+	* m68k.c (output_move_simode_const): Likewise.
+
+Sat Feb  1 18:54:00 1997  Douglas B. Rupp  (rupp@gnat.com)
+
+	* gcc.c (process_command): Fix improper use of strncpy.
+
+Fri Jan 31 15:35:08 1997  Mike Stump  <mrs@cygnus.com>
+
+	* libgcc2.c: Remove extern for malloc and realloc.
+
+Fri Jan 31 17:08:11 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* local-alloc.c (update_equiv_regs): If a register which is
+ 	equivalent to some value is only used in one place, and we can't
+	substitute the value for the use, then move the register assignment
+	to just before the use.
+
+Fri Jan 31 15:57:25 1997  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.md (idiv,imul,fpmul): Added new functional units for pentiumpro.
+
+	* i386.c (pentiumpro_cost): Added new cost structure for pentiumpro.
+	(override_options): Set ix86_cost to appropriate cost structure.
+
+Thu Jan 30 09:34:26 1997  J.T. Conklin  <jtc@rhino.cygnus.com>
+
+	* m68k.md (stack adjust peepholes): Use lea instead of
+	add.w when adding 16 bit constants on all but TARGET_68040.
+
+Thu Jan 30 08:58:08 1997  Ralf Baechle  <ralf@waldorf-gmbh.de>
+
+	* function.c (TRAMPOLINE_ALIGNMENT): Provide default.
+	(expand_function_end): Use TRAMPOLINE_ALIGNMENT instead
+	of FUNCTION_BOUNDARY.
+	* varasm.c (TRAMPOLINE_ALIGNMENT): Provide default.
+	(assemble_trampoline_template): Use TRAMPOLINE_ALIGNMENT instead
+	of FUNCTION_BOUNDARY.
+
+Wed Jan 29 18:16:02 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* sh.h (REG_CLASS_CONTENTS): Add rap to GENERAL_REGS and its
+	superclasses.
+
+	* sh.md (movsi_i, movsi_ie, movhi_i, movhi+1): Use type pcload for
+	immediate operands where appropriate.
+	(movsf_ie+1): Fail when loading anything but a MEM into
+	a floating point reguister.
+
+Wed Jan 29 16:00:31 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* varasm.c (force_const_mem): Set MARK instead of clearing it.
+	(output_constant_pool): Only mark constant pool if -O.
+	Check mark flag unconditionally.
+	(mark_constant_pool): Start by clearing all mark flags.
+
+	* tree.c (copy_node): Clear TREE_ASM_WRITTEN.
+
+	* flow.c (regno_uninitialized): Return 0 if reg is used for args.
+
+Wed Jan 29 15:23:59 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* combine.c (try_combine): Clear reg_n_refs if i2dest is not
+	mentioned in newi2pat.
+
+Tue Jan 28 16:00:23 1997  Stan Cox       (coxs@dg-rtp.dg.com)
+
+	From Robert Lipe <robertl@dgii.com> 
+	* i386/sco5.h (SCO_DEFAULT_ASM_COFF): Remove bytecode stuff.
+	(ASM_OUTPUT_ASCII): Use .ascii in both ELF and COFF modes.
+	(ASM_OUTPUT_SECTION_NAME): Handle alternate sections for COFF.
+	The OpenServer 5.0.0 assembler gives an error for section
+	names over 6 characters long, so we catch the "obvious" case
+	and shorten it.
+
+	* m88k.h (ASM_OUTPUT_SECTION_NAME): Undefine; fails
+	for exception sections.  The 88k ABI specifies 'section'
+	instead of '.section'.
+
+Mon Jan 27 13:32:46 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* sh.c (shl_and_kind): Fix typo.
+	* sh.md (and_shl_scratch): Fix typo for length 8.
+
+Mon Jan 27 08:56:03 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* fixincludes: Fix incorrect forward structure declaration in
+	sys/time.h on hpux10.20.
+
+Mon Jan 27 09:05:35 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (simplify_rtx): Don't do anything with if_then_else_cond
+	result if both one arm and the input are a comparison.
+	(simplify_{rtx,if_then_else,logical,shift_const}): Don't
+	test STORE_FLAG_VALUE with #if; properly test for just sign bit.
+	(num_sign_bit_copies, if_then_else_cond): Likewise.
+	* expmed.c (emit_store_flag): Properly test for STORE_FLAG_VALUE
+	of just sign bit.
+	* fold-const.c (fold): Don't make COND_EXPR when both expr and
+	one part are comparisons.
+	* a29k.h (STORE_FLAG_VALUE): Make negative.
+
+Fri Jan 24 16:42:26 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* varasm.c (struct pool_constant): Add mark field.
+	(force_const_mem): Clear mark field in new constant pool entry.
+	(output_constant_pool): Call mark_constant_pool.
+	(mark_constant_pool, mark_constants): New static functions.
+
+Thu Jan 23 15:04:17 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* cse.c (COST): Get the right cost for a SUBREG of a register when
+ 	truncation is free.
+
+Thu Jan 23 11:19:40 1997  Mike Stump  <mrs@cygnus.com>
+
+	* Makefile.in (objc-headers): Don't try and install the headers if
+	the objc directory has been removed.
+
+Wed Jan 22 13:26:25 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* i960.c (process_pragma): Call ungetc on the last character
+	that was read by the while loop, to make sure the parser sees it.
+
+Tue Jan 21 17:20:30 1997  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.c (output_toc): Move STRIP_NAME_ENCODING to common
+	code, so the test for vt's works with -mminimal-toc.
+
+Tue Jan 21 16:03:35 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (mark_all_temps_used): Set KEEP as well.
+
+Tue Jan 21 12:16:15 1997  Doug Evans  <dje@seba.cygnus.com>
+
+	* stor-layout.c (layout_record): Correct test for whether
+	field spans its unit of alignment in case where
+	field_size == type_align.
+
+Mon Jan 20 20:27:54 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* mips.md (probe): Comment out.
+
+Sun Jan 19 20:54:45 1997  John F. Carr  <jfc@mit.edu>
+
+	* integrate.c (expand_inline_function): Handle a PARALLEL containing
+	a RETURN the same as a RETURN.
+
+Sun Jan 19 20:35:28 1997  Pat Rankin  <rankin@eql.caltech.edu>
+
+	* vmsconfig.com: Change all hardcoded references of "vax" to
+	use variable expansion instead.
+	(arch_indx, arch): New variables.
+
+	* vax.c (not_qsort):  Don't declare alloca.
+	* vax/xm-vms.h: Declare alloca here.
+	Do most of the VAX C-specific set up for DEC C.
+	#if DEC C, undefine QSORT_WORKAROUND and qsort.
+	* make-gcc.com, make-cccp.com, make-cc1.com:  Support building
+	with GNU C vs VAX C vs DEC C from the DCL command line.
+
+Sun Jan 19 17:20:50 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
+
+	* 1750a.md (movh[if]-1): Corrected.
+	(movtqf-1): Deleted.
+	* 1750a.c (add_1_to_mem): Deleted.
+	(output_operand_address): Added output modifier 'A'.
+
+Sun Jan 19 17:17:54 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* m68k.md (ashrdi_const, ashrdi3): Allow 31 as shift count.
+
+	* m68k.h (CONST_OK_FOR_LETTER_P): Recognize 'N', 'O' and 'P'.
+	* m68k.md (rotl[shq]i3, strict_low_part rotl): Allow 'N', 'O'
+	or 'P' operands.
+
+Sun Jan 19 17:09:17 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* m68k.md (addsi3): Fix previous change: {add,sub}qw should
+	be {add,sub}ql. For other uses of {add,sub}q don't check for address
+	register and always use {add,sub}ql.
+
+Sun Jan 19 15:05:42 1997  Peter Seebach  <seebs@solon.com>
+
+	* c-decl.c (start_decl): Add code for -Wmain.
+	(c_decode_option): Add -fhosted, -ffreestanding, and -Wmain.
+	* toplev.c (lang_options): Likewise.
+	* c-tree.h (warn_main, flag_hosted): New variables.
+
+Sun Jan 19 14:35:41 1997  Alex Garthwaite  (alex@samwise.cis.upenn.edu)
+
+	* fixinc.svr4: Fix problems with symlinks to ".".
+
+Sun Jan 19 14:21:46 1997  Craig Burley  <burley@gnu.ai.mit.edu>
+
+	* loop.c (check_final_value): Handle insns with no luid's.
+
+Sun Jan 19 08:57:26 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.md (arg_home): Add CLOBBER of MEM and USE of arg regs.
+	* vms.h (SETUP_INCOMING_VARARGS): Delete duplicate definition.
+
+	* toplev.c (set_float_handler): Set up signal catcher on first call
+	in case a front end has disabled it.
+
+	* cccp.c, cexp.y: #define __attribute__ to be null if 
+	compiling with GCC older than 2.7, not 2.6.
+
+	* toplev.c (main): If PREFERRED_DEBUGGING_TYPE used and set
+	to NO_DEBUG, say debugging not supported.
+	* mips/sni-svr4.h (PREFERRED_DEBUGGING_TYPE): Undefine.
+
+	* i386/xm-cygwin32.h (DIR_SEPARATOR): Define.
+
+	* explow.c (convert_memory_address, case SYMBOL_REF):
+	Copy CONSTANT_POOL_ADDRESS_P.
+	* integrate.c (save_constants): Make (address (const ..)) to record
+	both modes.
+	(copy_for_inline, copy_rtx_and_substitute, restore_constants): Use
+	both modes when restoring constant pool entry for ADDRESS.
+
+	* alpha.h (MINIMUM_ATOMIC_ALIGNMENT): New macro.
+
+	* function.c (instantiate_virtual_regs_1, case USE, case CLOBBER):
+	Properly handle case of shared MEM whose replacement is not valid.
+
+Sat Jan 18 14:08:31 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.c (get_unwidened): Don't crash if FIELD_DECL not layed out.
+
+	* varasm.c (const_hash): Treat NON_LVALUE_EXPR like CONVERT_EXPR.
+	(compare_constant_1, copy_constant, bc_assemble_integer): Likewise.
+	(const_hash, compare_constant_1): Use switch, not if-then-else.
+
+Fri Jan 17 17:10:20 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* mips.h (STACK_POINTER_OFFSET): Don't define.
+
+Thu Jan 16 14:51:03 1997  Bob Manson  <manson@charmed.cygnus.com>
+
+	* cplus-dem.c: Fix indenting; note that this file also lives in
+	libiberty.
+	(do_type, case 'M'): Check for a template as well as a class.
+
+Thu Jan 16 15:08:26 1997  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* gcc.c (cross_compile): Change to be a char * like all of the
+	other specs.
+	(process_command): Change how cross_compile is tested.
+	(main): Likewise.
+	(struct spec_list): Merge with the format used by EXTRA_SPECS.
+	Add name length field to speed up repeated calls to strcmp.  Add
+	flag to say spec was allocated.  Add pointer to char * so that
+	static spec fields can be updated.
+	(extra_specs): Use struct spec_list as type.
+	(static_specs): Static list of predefined specs.
+	(init_specs): New function, initialize the specs list.  Link in
+	the default specs and any specs defined via EXTRA_SPECS.
+	(set_spec): No longer special case predefined specs.
+	(process_command,validate_all_switches): Ditto.
+	(process_command): Call init_specs for -dumpspecs.
+	(do_spec_1): Use name length field to avoid calling strncmp when
+	it is going to fail.
+	(main): Call init_spec.  Don't handle EXTRA_SPECS here.
+
+Thu Jan 16 17:07:54 1997  Eddie C. Dost  <ecd@skynet.be>
+
+	* configure: Add sparc-linux{,aout} support.
+	* ginclude/va-sparc.h: Likewise.
+	* sparc/linux.h: New file.
+	* sparc/linux-aout.h: New file.
+	* sparc/xm-linux.h: New file.
+
+Thu Jan 16 16:19:13 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* configure (sparc-*-aout*): Add libgloss.h to tm_file.
+	(sparclite-*-coff*): Change "= to =".
+
+Thu Jan 16 12:53:15 CST 1997  Joel Sherrill <joel@OARcorp.com>
+
+	* rs6000/rtems.h: Change from being sysv4 based to being eabi based.
+
+Thu Jan 16 13:40:51 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* mips.h (LINKER_ENDIAN_SPEC): Define.
+	(LINK_SPEC): Add linker_endian_spec.
+	(EXTRA_SPECS): Add linker_endian_spec.
+
+Thu Jan 16 08:02:13 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.md (bCC, inverted bCC): Use bCC .+X instead of bCC 0f.
+
+Wed Jan 15 14:06:28 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* reload.h (reload_address_base_reg_class): Declare.
+	(reload_address_index_reg_class): Declare.
+	* reload1.c (reload_address_base_reg_class): Define.
+	(reload_address_index_reg_class): Define.
+	(init_reload): Initialize reload_address_{base,index}_reg_class.
+	* reload.c (find_reloads_address): Use
+	reload_address_base_reg_class rather than BASE_REG_CLASS.  Use
+	reload_address_index_reg_class rather than INDEX_REG_CLASS.
+	(find_reloads_address_1): Likewise.
+
+Tue Jan 14 15:26:33 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* reload.c (REGNO_MODE_OK_FOR_BASE_P): Define if not defined.
+	(REG_MODE_OK_FOR_BASE_P): Define if not defined.
+	(find_reloads_address): Use REG[NO]_MODE_OK_FOR_BASE_P rather than
+	REG[NO]_OK_FOR_BASE_P.
+	(find_reloads_address_1): Likewise.
+	Add mode parameter; change all callers.
+
+	* reload1.c (eliminate_regs_in_insn): Handle more cases when
+	eliminating the frame pointer to the hard frame pointer.
+
+	* varasm.c (force_const_mem): Copy a CONST_INT rtx like a CONST rtx.
+
+	* varasm.c (assemble_end_function): Call
+	output_after_function_constants.
+	(after_function_constants): New static variable.
+	(output_after_function_constants): New static function.
+	(output_constant_def): Check CONSTANT_AFTER_FUNCTION_P.
+
+Mon Jan 13 16:44:40 1997  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000/aix41.h (CPP_PREDEFINES): Add -D_AIX41.
+
+Sun Jan 12 20:54:01 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* libgloss.h (LINK_SPEC): Delete.
+	(STARTFILE_SPEC): Delete spurious newline.
+
+Sat Jan 11 00:13:03 1997  Torbjorn Granlund  <tege@quiet.matematik.su.se>
+
+	* mips.md (norsi3, nordi3): Use canonical RTL.  Prepend `*' to pattern
+	name.  Don't match immediates.
+	(norsi3_const, nordi3_const): New patterns.
+	(anddi3, iordi3, xordi3): Test TARGET_64BIT, not mips_isa
+	in length attribute calculation.
+	* mips.c (complemented_arith_operand): New function.
+	(print_operand): Handle `e' for CONST_INT.
+	* mips.h (PREDICATE_CODES): Add complemented_arith_operand.
+	
+Fri Jan 10 14:11:53 1997  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000/aix41.h (SUBTARGET_SWITCHES): Add threads and pe.
+	(CPP_SPEC): Add mpe and mthreads cases.
+	(LIB_SPEC): Add mpe and mthreads cases to variant from rs6000.h.
+	(STARTFILE_SPEC): Add mpe and mthreads support.
+
+Fri Jan 10 07:12:26 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* i386/cygwin32.h (LINK_SPEC): New definition.
+
+	* Makefile.in (FLAGS_TO_PASS): Add STAGE_PREFIX, set by configure.
+	* configure: Initialize exeext.
+	Update STAGE_PREFIX in Makefile.
+
+	* dwarfout.c (dwarfout_line): Push to LINE_SECTION after calling
+	lookup_filename.
+
+Thu Jan 9 12:06:04 1997  Jim Wilson  <wilson@cygnus.com>
+
+        * i386.md (addsidi3_2): Add & to operand 0 of alternative 5.
+
+Thu Jan 9 12:06:04 1997  Stan Cox  <coxs@dg-rtp.dg.com>
+
+        From Linus Torvalds and Mat Hostetter:
+	* i386.c (i386_sext16_if_const): Added to sign extend an HImode constant.
+	(i386_aligned_reg_p): Added to tell if an rtx is aligned.
+	(i386_cc_probably_useless_p): Don't trust cc bits.
+	* i386.h (TARGET_ZERO_EXTEND_WITH_AND): Don't do this for p6.
+	* i386.md (cmpsf_ccfpeq+2): Use SImode test instruction.
+	(movhi+1): Use movz instead of mov on p6.
+	(addsi3): Add 128 by subtracting -128.
+	(zero_extendhisi2): Use SImode move if aligned.
+	(addhi3): Likewise.
+	(subhi3): Likewise.
+	(andhi3): Likewise.
+	(iorhi3): Likewise.
+	(xorhi3): Likewise.
+
+Tue Jan  7 16:58:27 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* c-parse.in (extension): New rule for __extension__.
+	(extdef, unary_expr, decl, component_decl): Use it.
+
+Mon Jan  6 15:44:37 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
+
+	* 1750a.c: Now includes regs.h.
+	({movcnt,mod}_regno_adjust): Corrected typos.
+	* 1750a.md (movhi): Corrected case of moving constant to memory.
+
+Mon Jan  6 08:00:57 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* mips.h: Delete redundant definitions of compiler and library fns.
+
+	* dwarfout.c (type_attribute): Ignore any subtype for now.
+
+	* fold-const.c (operand_equal_p): Rework to consider two
+	expressions that have embedded identical SAVE_EXPRs as
+	equivalent; also handle some more cases.
+
+Sun Jan  5 23:54:34 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.md (pic_load_label): Fix test for using just an
+	ldo rather than an addil;ldo sequence to load the label's
+	address.
+
+Sun Jan  5 07:26:47 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case COMPONENT_REF): Fix error in last
+	change: don't suppress conversion if just EXPAND_SUM.
+
+Sat Jan  4 18:44:01 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.h (struct tree_decl): saved_insns.i is HOST_WIDE_INT.
+
+	* fold-const.c (const_binop): Rework to only make constants in
+	one place; always use size_int if small enough and of sizetype.
+	(size_int): Call force_fit_type.
+	(fold): Avoid ever changing type of input tree.
+
+	* expr.c (get_inner_reference): Fix type error.
+	(expand_expr, case COMPONENT_REF): Don't convert if modifier
+	is EXPAND_CONST_ADDRESS, EXPAND_SUM, or EXPAND_INITIALIZER.
+	* tree.c (staticp, case COMPONENT_REF, BIT_FIELD_REF): Not
+	static if bitfield.
+
+	* expr.c (expand_expr, case COMPONENT_REF):  If taking value
+	from a CONSTRUCTOR, must mask/sign-extend if bitfield.
+	(expand_builtin, case BUILT_IN_LONGJMP): Pass type, not IDENTIFIER,
+	to second arg of RETURN_POPS_ARGS.
+
+	* expr.c (expand_expr, case COND_EXPR): Add additional cases
+	to "singleton" cases.
+	* tree.c (integer_pow2): Mask value to width of type.
+	(tree_log2): New function.
+
+	* expmed.c (store_fixed_bit_field): If not SLOW_UNALIGNED_ACCESS,
+	treat everything as maximally aligned.
+
+	* combine.c (find_split_point, case SET): If SET_SRC is NE and
+	STORE_FLAG_VALUE is -1, see if we can convert into NEG of shift.
+	(force_to_mode, case NE): Make condition stricter.
+
+	* calls.c (emit_library_call_value): Remove redundant check for
+	outmode != VOIDmode.
+
+Sat Jan  4 08:12:16 1997  J.T. Conklin  <jtc@rhino.cygnus.com>
+
+	* Optimizations from John Vickers (john@rhizik.demon.co.uk):
+	* m68k.c (output_function_{pro,epi}logue): Use addq/subq when
+	adjusting stack pointer by small displacements.
+	* m68k.md (addsi3, addhi3): Use two addqw (or subqw) insns when
+	adding (or subtracting) small integer constants (8 < N <= 16) to
+	both address and data registers.
+
+Sat Jan  4 07:06:07 1997  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
+
+	* loop.c (basic_induction_var): Return 0 if SUBREG is not a
+	promoted variable.
+
+Sat Jan  4 06:22:36 1997  Doug Rupp  (rupp@gnat.com)
+
+	* alpha.c (vmskrunch): Try to not chop trailing uppercase letters.
+	* alpha/vms.h (ENDFILE_SPEC): Use "gnu", not "gnu_cc".
+
+	* cccp.c (PRINTF_PROTO): Use __printf__ in __attribute__, not printf.
+	* cexp.y (PRINTF_PROTO): Likewise.
+
+Fri Jan  3 09:01:00 1997  Craig Burley  <burley@gnu.ai.mit.edu>
+
+	* alpha.md (cmov): Fix operand numbers in case involving DF target,
+	DF comparison, and SF source.
+
+Fri Jan  3 08:19:46 1997  Paul Eggert  <eggert@twinsun.com>
+
+	* cpplib.c (macroexpand): Delete any no-reexpansion marker following
+	identifier at beginning of an argu concatenated with what precedes it.
+
+Fri Jan  3 07:59:21 1997  Ken Rose  (rose@netcom.com)
+
+	* reorg.c (fill_slots_from_thread): Skip moved insn in all three cases.
+
+Fri Jan  3 07:51:44 1997  Bob Manson  <manson@cygnus.com>
+
+	* function.c ({push,pop}_function_context_to): Save and restore
+	current_function_args_info.
+	* function.h (struct function): New field args_info.
+
+Fri Jan  3 06:55:09 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* jump.c (rtx_equal_for_thread_p): Return 0 for floating-point.
+
+	* reload.c (find_reloads): If replaced a PLUS or MULT with a
+	simple operand, start over again.
+
+	* va-alpha.h: Check for __VMS__, not VMS.
+
+Thu Jan  2 08:52:51 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* configure: Finish restoring change of default of objc threads to
+ 	"single" for Linux.
+
+Mon Dec 30 17:03:46 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.c (fmpy_operands): Remove.  No longer needed.
+	(combinable_add, combinable_copy, combinable_fmpy): Likewise.
+	(combinable_fadd, combineable_fsub): Likewise.
+	(pa_reorg): Call pa_combine_instructions.
+	(pa_combine_instructions): Combine instructions to make things
+	like fmpyadd and fmpysub.
+	(pa_can_combine_p): Helper function for pa_combine_instructions.
+	* pa.md (pa_combine_type): New attribute.  Set it appropriately
+	for various insns.
+	(define_delays): Use a separate define_delay for unconditional
+	branches.
+	(fmpyadd, fmpysub peepholes): Remove, no longer needed.
+	(fmpyadd, fmpysub insns): Add variant with fadd/fsub first,
+	then the fmpy.
+
+Mon Dec 30 14:43:51 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* reg-stack.c (subst_stack_regs_pat): Set src_note explicitly, instead
+	of using invalid aggregate initialization.
+
+	* print-tree.c (print_node): Don't try to print nonexistent
+	TYPE_ATTRIBUTES field of a decl node.
+
+1996-12-30  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
+
+	* config.sub: Handle hiuxmpp as system type.
+
+Thu Dec 26 13:33:27 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.md (init_v4_pic): Explicitly set the length.
+
+Mon Dec 23 19:39:38 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* mips.h (FUNCTION_ARG_REGNO_P): Correct for TARGET_SOFT_FLOAT and
+	TARGET_FLOAT64 cases.
+
+	* integrate.c (function_cannot_inline_p): Reject function with
+	PARALLEL result.
+	(expand_inline_function): Abort if function result not handled.
+
+Sat Dec 21 04:02:46 1996  Jason Merrill  <jason@gerbil.cygnus.com>
+
+	* mips.c (save_restore_insns): Mark large frame setup insns
+	as frame-related.
+	(mips_expand_prologue): Likewise.
+
+	* dwarf2out.c (dwarf2out_frame_debug): Support MIPS large frames.
+	(add_bound_info): Use default lower bounds.
+	Handle simple variable bounds with a DIE ref.
+	Don't generate a NULL loc descr.
+	(add_subscript_info): Always add lower bound.
+	(gen_formal_parameter_die): Always equate_decl_number_to_die.
+	(gen_variable_die): Likewise.  Don't use the old die for automatic
+	variables.
+
+Wed Dec 18 10:23:46 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.c (notice_update_cc): Enable this code.
+	* mn10300.h (CC_OVERFLOW_UNUSABLE): Define.
+	* mn10300.md (tstsi): Use "set_zn_c0" instead of "set" for cc status.
+	(addsi3 pattern): Break "inc" into two different alternatives
+	since "inc dn" sets cc0, but "inc an" does not.
+	(multiply and divide patterns): Fix cc status.
+	(bCC, inverted bCC): Restore any comparison which needs the
+	overflow bits when CC_OVERFLOW_UNUSABLE is set.
+	(zero and sign extensions): Fix cc status.
+	(movm_store): Likewise.
+
+Tue Dec 17 15:02:44 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* sched.c (update_flow_info): When add REG_DEAD notes for dest of
+	last insn, add check for global_regs.
+
+Tue Dec 17 11:07:26 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/win-nt.h (HAS_INIT_SECTION): Delete, so that __main is
+	called from main.
+
+Mon Dec 16 15:28:44 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* combine.c (nonzero_bits): Ifdef out calls to num_sign_bit_copies.
+	Add dummy define/undef for num_sign_bit_copies.
+
+	* dwarfout.c (location_or_const_value_attribute, case CONCAT): Add.
+
+	* combine.c (simplify_comparison): Use mode_width as shift count
+	only if it is less than or equal to HOST_BITS_PER_WIDE_INT.
+
+Mon Dec 16 10:10:11 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.c (expand_epilogue): Restore registers in the
+	"ret" instruction instead of a separate movm instruction.
+	Support possible stack deallocation in "ret" instruction too.
+	* mn10300.md (return_internal): Use "ret" instead of "rets";
+	restore registers and deallocate stack as needed.
+	(load_movm): Delete unused pattern.
+
+	* mn10300.h (SMALL_REGISTER_CLASSES): Define.
+
+Fri Dec 13 14:46:54 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* sh.md (dect): Rewrite pattern so that it can be combined.
+
+Fri Dec 13 13:14:51 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* varasm.c (output_constant_pool): If ASM_OUTPUT_POOL_EPILOGUE is
+	defined, call it.
+
+Thu Dec 12 20:04:55 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* rtl.h (RTX_FRAME_RELATED_P): New macro.
+	(struct rtx_def): Add frame_related bitfield.
+	* final.c (final_scan_insn): Call dwarf2out_frame_debug.  
+	Don't call dwarf2out_begin_function.
+	(final): Initialize dwarf2out_frame_debug.
+	* dwarf2out.c (dwarf2out_begin_function): Remove.
+	(dwarf2out_init): Use INCOMING_RETURN_ADDR_RTX.
+	(DWARF_CIE_DATA_ALIGNMENT): Generalize.
+	(DWARF_FRAME_REGNUM): Don't add 1.
+	(decode_cfi_rtl): Lose.
+	(dwarf2out_def_cfa): Now takes reg and offset directly.
+	(reg_save): Likewise.
+	(dwarf2out_reg_save): Now takes offset.
+	(initial_return_save): Grok INCOMING_RETURN_ADDR_RTX.
+	Replaces dwarf2out_return_save.
+	(dwarf2out_cfi_label): New fn.
+	(add_fde_cfi): Use it.
+	(dwarf2out_frame_debug): New fn.
+	* mips.h (DWARF_FRAME_REGNUM): Tweak r31.
+	(INCOMING_RETURN_ADDR_RTX): Define.
+	* mips.c (mips_expand_prologue): Set RTX_FRAME_RELATED_P as needed.
+	(save_restore_insns): Likewise.
+	* i386.c (ix86_expand_prologue): Likewise.
+	* i386.h (INCOMING_RETURN_ADDR_RTX): Define.
+	(DWARF_FRAME_RETURN_COLUMN): Define.
+
+	* dwarf2out.c (add_AT_long_long): Renamed from add_AT_double for
+	clarity.
+	(print_die): Adjust.
+	(add_AT_float): New fn.
+	(add_const_value_attribute): Support fp values.
+	(size_of_die): Use blocks for long_long and fp values.
+	(value_format): Likewise.
+	(output_die): Likewise.
+	(output_loc_operands): Don't support DW_OP_const8?.
+
+Thu Dec 12 19:49:09 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* varasm.c (CONSTANT_POOL_BEFORE_FUNCTION): Define if not
+	defined.
+	(assemble_start_function): Check CONSTANT_POOL_BEFORE_FUNCTION
+	to decide whether to call output_constant_pool.
+	(assemble_end_function): Likewise.
+
+	* calls.c: Check SMALL_REGISTER_CLASSES at run time as well as at
+	compile time.
+	* combine.c, cse.c, function.c, jump.c, local-alloc.c: Likewise.
+	* loop.c, reload.c, reload1.c: Likewise.
+	* dsp16xx.h (SMALL_REGISTER_CLASSES): Define with value.
+	* h8300.h (SMALL_REGISTER_CLASSES): Likewise.
+	* i386.h (SMALL_REGISTER_CLASSES): Likewise.
+	* pdp11.h (SMALL_REGISTER_CLASSES): Likewise.
+	* sh.h (SMALL_REGISTER_CLASSES): Likewise.
+
+Thu Dec 12 15:25:39 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.md (sysv call insns): If flag_pic add @plt suffix.
+
+	* rs6000.md (fix_truncdfsi2_store): Fix offsets > 32k.
+
+	* rs6000/t-ppccomm: New file for common parts of embedded and
+	System V target Makefile support.
+
+	* rs6000/t-ppcos: New file for System V OS target Makefile
+	support.
+
+	* rs6000/t-solaris: Delete, merge into rs6000/t-ppcos.
+
+	* rs6000/t-{ppc,ppcgas}: Only keep the multilib specific parts,
+	moving the rest to rs6000/t-ppccomm.
+
+	* configure (powerpc*-*-*): For embedded and System V
+	configurations, add rs6000/t-ppccomm.  For Linux and Solaris, use
+	t-ppcos.
+
+	* ginclude/ppc-asm.h (cr*, f*): Add new macros for register names.
+
+	* rs6000/sol-c0.c (_start): Fix uninitialized data bug.
+
+	* rs6000.md (init_v4_pic): Add @local to call.
+	(icbi,dcbst,sync,isync): Delete PowerPC cache control insns.
+
+	* rs6000/sysv4.h (ASM_SPEC): On explicit -mcall-solaris, pass
+	-msolaris to the assembler.
+
+	* rs6000.c (rs6000_sync_trampoline): Delete.
+	(rs6000_trampoline_template): Aix & System V don't need template now.
+	(rs6000_initialize_trampoline): For System V, call the function
+	__trampoline_setup to set up the trampoline.
+
+	* rs6000.h (TRAMPOLINE_TEMPLATE): Delete here.
+	* rs6000/win-nt.h (TRAMPOLINE_TEMPLATE): Add it here.
+
+	* rs6000/tramp.asm: New file, setup trampolines properly on System
+	V systems, properly flushing the caches.
+
+Thu Dec 12 10:53:10 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* reorg.c (fill_slots_from_thread): Don't call eligible_for_delay
+	with an insn with asm operands.
+
+	* expmed.c (emit_store_flag_force): Fix typos/thinkos.
+
+Thu Dec 12 08:09:20 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* i386.c (i386_return_pops_args): Libcalls ignore TARGET_RTD.
+
+Thu Dec 12 07:56:03 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.h (maybe_get_identifier): New declaration.
+
+	* calls.c (emit_library_call): Don't pass VOIDmode to type_for_mode.
+
+	* va-alpha.h: Add definitions for VMS; they differ from Unix.
+
+	* Makefile.in (stamp-objlist): Handle first character of object 
+	file being a digit.
+
+	* 1750a.h (function_arg, {movcnt,mod}_regno_adjust): Add decls.
+	(branch_or_jump): Likewise.
+	(FUNCTION_ARG): Remove cast of function_arg result to rtx.
+	* 1750a.md: Remove unneeded casts to char *.
+
+Thu Dec 12 05:55:27 1996  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* arm.c (arm_gen_constant, case [IX]OR): Don't invert constant if
+	loading into temporary.
+
+Wed Dec 11 18:57:21 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* toplev.c (rest_of_compilation): Make sure unwinder RTL is saved.
+
+	* collect2.c (write_c_file): Wrap the ctor/dtor lists and fns
+	with `extern "C" { ... }'.
+
+Wed Dec 11 17:46:48 1996  John F. Carr  <jfc@mit.edu>
+
+	* tree.h (tree_decl): Reorder field declarations to reduce size
+	on 64 bit machines.
+
+	* combine.c (try_combine): When splitting an insn, check for the
+	new I2 setting a SUBREG.
+
+Wed Dec 11 17:00:47 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of
+	using "%ld".
+	(output_prolog): Don't print useless comment for VMS.
+
+	* alpha.c (output_prolog): SIZE is now HOST_WIDE_INT.
+	* alpha.md (mov[hq]i unnamed): Split up for TARGET_BYTE_OPS and not.
+
+	* function.c (fixup_var_refs_1, case ZERO_EXTRACT): Don't call
+	fixup_memory_subreg if no longer SUBREG of MEM.
+
+Wed Dec 11 14:10:48 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* mn10300.c: New file for Matsushita MN10300 port.
+	* mn10300.h, mn10300.md, t-mn10300, xm-mn10300.h: Likewise.
+	* config.sub: Recognize mn10300 as a basic machine type.
+	* configure: Similarly.
+	* ginclude/stdarg.h: mn10300 is little endian.
+	* ginclude/varargs.h: Likewise.
+
+Wed Dec 11 09:09:10 1996  Nagai Takayuki <nagai@ics.es.osaka-u.ac.jp>
+
+	* libgcc2.c (cacheflush): Add SONY NEWS-OS 4.2 version.
+
+Wed Dec 11 09:01:39 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* calls.c (emit_library_call, emit_library_call_value):
+	Don't pass an identifier node as function type for
+	library functions, but rather build a function type that
+	has a return type with the correct mode.
+	* i386.c (i386_return_pops_args): Don't test for IDENTIFIER_NODE.
+	* i386/isc.h (obsolete RETURN_POPS_ARGS): Test first argument
+	for IDENTIFIER_NODE.
+	* i386/next.h (RETURN_POPS_ARGS): Likewise.
+	* i386/sco.h (RETURN_POPS_ARGS): Likewise.
+	* i386/sco5.h (RETURN_POPS_ARGS): Likewise.
+	* i386/scodbx.h (RETURN_POPS_ARGS): Likewise.
+	* m68k.h (RETURN_POPS_ARGS): Likewise.
+	* ns32k.h (RETURN_POPS_ARGS): Likewise.
+	* pyr.h (RETURN_POPS_ARGS): Likewise.
+	* gmicro.h (RETURN_POPS_ARGS): Likewise; fix typo.
+
+Tue Dec 10 17:36:47 1996  J.T. Conklin  <jtc@rhino.cygnus.com>
+
+	* Add optimizations from John Vickers (john@rhizik.demon.co.uk)
+	* m68k.h (TARGET_CPU32): New macro.
+	* m68k.md (add[hs]i3): Only use two addq.w or subq.w instructions
+	when adding or subtracting constants 8 < N < 16 on TARGET_CPU32.
+	Use lea instead of add.w when adding 16 bit constants to address
+	registers on all but TARGET_68040.
+	* m68k.c (output_function_{pro,epi}logue): Use lea instead of add.w
+	when adjusting stack pointer on all but TARGET_68040.
+	
+Tue Dec 10 15:55:23 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* optabs.c (emit_unop_insn): Treat ZERO_EXTEND like SIGN_EXTEND.
+
+Tue Dec 10 13:47:24 1996  Joern Rennecke <amylaar@cygnus.co.uk>
+
+	* combine.c (combinable_i3pat): Bring back to sync with can_combine_p.
+
+	* sh.h (ADJUST_INSN_LENGTH): Don't break from loop when LOOP_BEG found.
+	Calculate padding in new variable pad.
+
+Mon Dec  9 18:00:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (output_uleb128): Output the value in a human-readable
+ 	comment.
+	(output_sleb128): Likewise.
+	(various): Adjust.
+	(output_call_frame_info): Only output info if it's interesting.
+	(add_src_coords_attributes): New fn.
+	(add_name_and_src_coords_attributes): Split out from here.
+	(gen_enumeration_type_die): Add src coordinates.
+	(gen_struct_or_union_type_die): Likewise.
+	(dwarf2out_finish): Call output_call_frame_info for all targets.
+
+Thu Dec  5 11:25:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (add_pure_or_virtual_attribute): Only add 
+	AT_containing_type if -g2 or higher.
+
+	* dwarf2out.c (gen_struct_or_union_type_die): Make sure that
+	the type for AT_containing_type has been generated.
+	(gen_decl_die): Likewise.
+
+	* dwarf2out.c (type_tag): Check DECL_IGNORED_P.
+	(add_pure_or_virtual_attribute): Check DECL_VINDEX instead.
+	(scope_die_for): Likewise.
+	* dwarfout.c (type_tag): Likewise.
+
+Wed Dec  4 22:51:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (decode_cfi_rtl): Support getting a CONST_INT.
+	(dwarf2out_begin_function): Adjust.
+	(reg_save): Divide offset by the alignment.
+	(output_cfi): Support having more than one advance_loc.
+	(output_call_frame_info): Re-initialize current_label.
+	(dwarf2out_begin_prologue): Initialize current_label to NULL.
+	(lookup_cfa, lookup_cfa_1): New fns.
+	(dwarf2out_def_cfa): Call lookup_cfa.
+	(dwarf2out_finish): Don't generate CIE CFIs.
+	(dwarf2out_init): Generate them here.
+	(DWARF_FRAME_RETURN_COLUMN): Use PC_REGNUM.
+
+	(add_pure_or_virtual_attribute): Note virtual context.
+	(gen_formal_parameter_die): Return the die.
+	(gen_formal_types_die): Set AT_artificial on `this'.
+	(gen_subprogram_die): Add AT_accessibility.
+	(gen_variable_die): Likewise.
+	(gen_field_die): Likewise.  Don't generate location attribute for
+	union members.
+	(gen_struct_or_union_type_die): Note where our vtable lives.
+	(gen_decl_die): Handle anonymous union fields.
+	(dwarf2out_decl): Always output `bool'.
+
+Mon Dec  2 03:55:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* final.c (final_end_function): Don't call dwarf2out_end_function.
+
+	* dwarf2out.c (output_line_info): Emit special opcodes for each line
+	entry, even if the line number doesn't change.
+	(pend_type, output_pending_types_for_scope): New fns.
+	(gen_struct_or_union_type_die): Use them to defer generating member
+	dies if we're in the middle of some other context.
+	(gen_type_die): Still put nested types in the right place.
+	(dwarf2out_decl): Call output_pending_types_for_scope.
+
+	* dwarf2out.c (dw_fde_struct): Replace end_prologue, begin_epilogue
+	with current_label.
+	(DWARF_CIE_INSN_SIZE, DWARF_CIE_SIZE): Remove.
+	(DWARF_CIE_HEADER_SIZE): The size without the initial insns.
+	(size_of_cfi): Revert.
+	(decode_cfi_rtl, add_fde_cfi, dwarf2out_def_cfa, reg_save,
+	dwarf2out_reg_save, dwarf2out_return_save): New fns.
+	(dwarf2out_begin_function): Use them to generate CFIs.
+	(dwarf2out_finish): Use them to generate E CFIs.  
+	Don't set next_fde_offset.
+	(calc_fde_sizes): Initialize cie_size.
+	(output_call_frame_info): Don't generate CIE CFIs.
+	(dwarf2out_end_function): Remove.
+
+	* tree.c (maybe_get_identifier): New fn.
+	* varasm.c (assemble_name): Use it instead of get_identifier.
+
+Fri Nov 29 15:13:39 1996  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* jump.c (jump_optimize): Don't move initialization if there is a
+	label between it and the jump for if (foo) bar++ to bar += (foo !=0)
+	
+Wed Nov 27 16:21:14 1996  Stan Cox  <coxs@dg-rtp.dg.com>
+	
+	* Remove change of Oct 4.
+	* i386.h (outer_function_chain): Remove.
+	(current_function_calls_alloca): Remove.
+	(rtx_equal_function_value_matters): Remove.
+	(N_REGS_USED, N_ALLOCATABLE_REGISTERS): Remove.
+	* i386.md (adddi3_1, subdi3_1): Remove.
+	(adddi3, subdi3): Revert.
+	(movsf, movsf_mem, movsf_normal, movdf, movdf_mem, movdf_mem+1):
+	Likewise. 
+	(movxf, movxf_mem, movxf_mem+1, addsidi3_1, addsidi3_2): Likewise.
+	(adddi3_1, subsidi3, subdi3_1): Likewise.
+	(addsidi3_1, addsidi3_2, subsidi3): Likewise.
+	(addsidi3_1, addsidi3_2, adddi3, subsidi3): Disable the problem
+	reload alternatives. 
+	
+Wed Nov 27 16:21:14 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* i386.md (ashldi3_non_const_int, ashrdi3_non_const_int):
+	Use a hidden branch to handle shifts > 32 bit.
+	(lshrdi3_non_const_int): Likewise.
+	(floatdixf2): Don't use unnecessary XFmode operation.
+
+Wed Nov 27 15:23:41 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* varasm.c (assemble_variable): Don't emit DWARF.
+
+	* toplev.c (rest_of_type_compilation): Don't emit DWARF.
+	(main): Just let -gdwarf mean DWARF v1; remove -gdwarf-1.
+
+	* dwarfout.c (decl_class_context): New fn.
+	(output_global_subroutine_die): Fix declaration case.
+	(output_global_variable_die): Likewise.
+	(output_type): Note when we are in a class defn.  If we're a nested
+	type and our context hasn't been written, do that.  Do early exit
+	for nested types.
+	(output_decl): Output the class context for fns and vars.
+	Don't emit detailed parm info for a fn declaration.
+	Use TYPE_DECL_IS_STUB, is_redundant_typedef.
+	(type_ok_for_scope): Support emitting nested types later.
+	(is_redundant_typedef): New fn.
+	(TYPE_DECL_IS_STUB): New macro.
+	(output_compile_unit_die): Check use_gnu_debug_info_extensions.
+	(output_local_subroutine_die, output_global_subroutine_die,
+	dwarfout_begin_function, dwarfout_end_function, dwarfout_line,
+	generate_macinfo_entry, dwarfout_init, dwarfout_finish): Likewise.
+
+	* dwarf2out.c (decl_class_context): Static.
+	(lookup_type_die): Use TYPE_SYMTAB_POINTER.
+	(equate_type_number_to_die): Likewise.
+	(gen_subprogram_die): If we're in class context, it's a decl.
+	(gen_variable_die): Likewise.
+	(gen_decl_die): Output the containing type.
+	(dwarf2out_init): Lose type_die_table code.
+
+Wed Nov 27 08:30:54 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+        * Makefile.in (DRIVER_DEFINES): New macro, with the macro
+        definitions for the driver.
+        (gcc.o): Make rule use $(DRIVER_DEFINES).
+        * gcc.c (process_command) [LANG_SPECIFIC_DRIVER]: Call
+        lang_specific_driver, passing along the addr of FATAL for errors
+        along with our ARGC and ARGV.
+
+Wed Nov 27 08:21:13 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* m68k.md (iorsi_zexthi_ashl16): New pattern.
+	(ashrsi_16): New name for old unnamed pattern.
+
+	* objc/misc.c (stdlib.h): Define __USE_FIXED_PROTOTYPES__ before
+	including stdlib.h.
+
+Wed Nov 27 08:17:34 1996  Joern Rennecke <amylaar@cygnus.co.uk>
+
+        * i386.md (decrement_and_branch_until_zero+[3-8]): Add missing
+	CC_STATUS_INIT.
+	(decrement_and_branch_until_zero+[5-8]): Delete redundant assignment.
+
+Wed Nov 27 07:56:27 1996  J.T. Conklin  <jtc@rhino.cygnus.com>
+
+	* m68k.md ({and,ior,xor}si3_internal): Removed !TARGET_5200 from
+ 	conditionals now that entire insn is disabled when !TARGET_5200.
+	
+Wed Nov 27 07:52:32 1996  Oliver Kellogg  <kellogg@space.otn.dasa.de>
+
+	* 1750a.md (movhi pattern):  Fixed MEM to MEM move problem.
+
+Tue Nov 26 14:50:54 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (move_by_pieces): Abort only if length positive at end.
+	* function.c (frame_offset, get_frame_size): Make HOST_WIDE_INT.
+	* function.h (struct function): Make frame_offset be HOST_WIDE_INT.
+	(get_frame_size): Add definition.
+	* reload1.c (reload): Make starting_frame_size be HOST_WIDE_INT.
+
+Mon Nov 25 16:55:14 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (dwarf2out_finish): Don't emit call frame info
+	for non-MIPS targets.
+	(is_redundant_typedef): New fn.
+	(modified_type_die): Refer to typedef DIEs where appropriate.
+	(gen_typedef_die): Support DECL_ORIGINAL_TYPE.
+	(gen_type_die): Likewise.  Use is_redundant_typedef.
+	(gen_subprogram_die): Don't force a spec DIE for local class methods.
+
+Mon Nov 25 15:09:12 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* gcc.c (handle_braces): Rework last change.
+
+Mon Nov 25 13:49:51 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* configure (build_exeext, exeext): New variables.  Use sed to insert
+	build_exeext value into Makefile exeext rule.
+	(*-*-cygwin32): Set exeext.
+	* i386/x-cygwin32 (exeext): Delete.
+	* rs6000/x-cygwin32 (exeext): Delete.
+
+	* dwarf.h (enum dwarf_location_atom): Add OP_MULT.
+	* dwarfout.c (output_mem_loc_descriptor, case MULT): Add.
+	* dwarfout2.c (mem_loc_descriptor, case MULT): Add.
+
+	* dwarfout.c (dwarf_fund_type_name, case FT_unsigned_int64): Fix typo.
+
+Sun Nov 24 21:42:01 1996  J.T. Conklin  <jtc@rhino.cygnus.com>
+
+	* m68k.md (andsi3): Changed into define_expand.
+	(andsi3_internal): Rename from old andsi3, changed condition
+	to !TARGET_5200.
+	(andsi2_5200): New insn.
+	(iorsi3): Change into define_expand.
+	(iorsi2_internal): Rename from old iorsi3, changed condition 
+	to !TARGET_5200.
+	(iorsi2_5200): New insn.
+	(xorsi3): Change into define_expand.
+	(xorsi2_internal): Rename from old xorsi3, changed condition 
+	to !TARGET_5200.
+	(xorsi2_5200): New insn.
+
+Sun Nov 24 21:31:32 1996  John F. Carr  <jfc@mit.edu>
+
+	* i386.h (N_ALLOCATABLE_REGISTERS): Remove extra backslash at
+	end of macro definition.
+
+	* cpplib.c (LOCAL_INCLUDE_DIR): Remove default definition.
+	(include_defaults_array): Do not use LOCAL_INCLUDE_DIR or
+	TOOL_INCLUDE_DIR if they are not defined.
+	* cccp.c: Likewise.
+
+	* Makefile.in (cppmain.o): New rule.
+
+Sun Nov 24 19:14:50 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* fold-const.c (merge_ranges): In (+,-) case, if lower bounds are
+	the same the result is always false.
+
+Sun Nov 24 18:48:31 1996  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* c-typeck.c (build_indirect_ref): Don't give warning for
+ 	dereferencing void * if evaluation is being skipped.
+
+	* c-decl.c (poplevel): Don't call output_inline_function if
+	DECL_SAVED_INSNS is not set.
+
+	* gcc.c (give_switch): Add new arg, INCLUDE_BLANKS.
+	(handle_braces): All callers changed.
+	Add support for new construct: %{S*^}.
+
+Sun Nov 24 18:44:48 1996  Paul Eggert  <eggert@twinsun.com>
+
+	* c-parse.in (unary_expr, expr_no_commas): Increment skip_evaluation
+	when analyzing an expression that is known not to be evaluated.
+	(sizeof, alignof): New rules.
+	* c-tree.h (skip_evaluation): New variable.
+	* c-common.c (skip_evaluation): Likewise.
+	(overflow_warning, unsigned_conversion_warning): Don't warn about
+	potential runtime errors when skipping evaluation.
+	* c-typeck.c (build_binary_op): Likewise.
+	(build_conditional_expr): op1 now always nonnull.
+
+Sun Nov 24 17:06:58 1996  Bernd Schmidt  (crux@Pool.Informatik.RWTH-Aachen.DE)
+
+	* toplev.c (rest_of_compilation): Call regscan before each
+	jump threading pass.
+
+Sun Nov 24 16:37:18 1996  Dave Love  <d.love@dl.ac.uk>
+
+	* configure (objc_thread_file): Set conditionally in each case so
+	may be overidden with `--enable-objcthreads=posix'.
+	Change Linux default to `single'.
+
+Fri Nov 22 17:53:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* varasm.c (assemble_variable): Output DWARF in the third case, too.
+
+	* dwarf2out.c (decls_for_scope): Only add DIEs with no parents to
+	our scope.
+	(gen_subroutine_type_die): Parm types go under the fn type DIE.
+
+	* Makefile.in ($(T)crt{begin,end}.o): Move CRTSTUFF_T_CFLAGS after 
+	general flags.
+
+	* mips/t-iris6 (CRTSTUFF_T_CFLAGS): Define.
+	* mips.c (compute_frame_size): Fix fp_save_offset.
+
+	* dwarf2out.c (new_die): If we get a NULL parent, inc limbo_die_count.
+	(decls_for_scope): Decrement limbo_die_count as appropriate.
+	(dwarf2out_finish): Check for good limbo_die_count.
+	(size_of_cfi): If regno too big for DW_CFA_offset, use offset_extended
+	instead.
+	(output_call_frame_info): Add disabled code for specifying ABI.
+	(dwarf2out_begin_function): Note all saved regs.
+
+	* dwarf2out.c (gen_subprogram_die): Have a DIE for each fn at
+	toplevel.
+	(scope_die_for): Only use the NULL for fns and tags.
+
+Tue Nov 21 15:53:51 1996  Joern Rennecke <amylaar@cygnus.co.uk>
+
+	* sh.c (output_stack_adjust): New argument TEMP.  Changed all callers. 
+	If the adjust cannot be done with one, but can be done with two 
+	CONST_OK_FOR_I constants, do it that way.
+
+Thu Nov 21 14:25:55 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* fixincludes: Include <stdio.h> in <assert.h> even if not C++ if
+	stderr needs to be defined.
+
+Wed Nov 20 15:38:13 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* toplev.c (rest_of_type_compilation): Do output function-scope tags
+	for DWARF 2.
+	* c-decl.c (pushtag): Set TYPE_CONTEXT on the tag.
+	* toplev.c, varasm.c: s/dwarf2out_file_scope_decl/dwarf2out_decl/g.
+	* dwarf2out.c (add_prototyped_attribute): Use a value of 1.
+	(gen_subprogram_die): Support AT_static_link.
+	(dwarf2out_decl): Rename from dwarf2out_file_scope_decl.
+	Give nested fns and tags a die_parent of NULL.
+	(decls_for_scope): Fix the die_parent for nested fns and tags.
+	(scope_die_for): If we get a context of NULL, just return it.
+
+Tue Nov 19 18:21:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (gen_subprogram_die): Support block extern decls.
+	(gen_variable_die): Likewise.
+	(gen_decl_die): Emit block extern function decls.
+
+	* c-decl.c (implicitly_declare): Set DECL_ARTIFICIAL.
+
+Tue Nov 19 16:50:32 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* configure (powerpc*-{sysv,elf,eabi{,aix,sim}}): Set
+	extra_headers to ppc-asm.h.
+	(powerpc*-{linux,solaris,rtems,vxworks}): Ditto.
+	(powerpc*-{winnt,pe,cygwin32}): Ditto.
+
+	* rs6000/t-{ppc,ppcgas,solaris,winnt} (EXTRA_HEADERS): Don't set
+	it here.
+
+Mon Nov 18 14:51:46 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (DWARF_CIE_INSN_SIZE): New macro.
+	(DWARF_CIE_HEADER_SIZE): Use it.
+	(DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): New macros.
+	(output_call_frame_info, dwarf2out_begin_function): Use them.  
+	For the MIPS, output the first CFA insn in the CIE.
+	* dwarf2.h (enum dwarf_call_reg_usage): Lose.
+	(dwarf_macinfo_record_type): Fix spelling.
+	* mips/mips.h (DWARF_FRAME_REGNUM, DWARF_FRAME_RETURN_COLUMN): Define.
+
+	* dwarf2out.c (base_type_die): Just generate the DIEs as needed,
+ 	rather than building up some table.
+	(init_base_type_table): Lose.
+	(add_subscript_info): Use add_type_attribute.  Don't give an upper
+	bound for an array of unknown size.
+	(gen_unspecified_parameters_die): Remove DWARF-1 kludge.
+	(dwarf2out_init): Lose call to init_base_type_table.
+	(is_c_family, is_fortran): New fns.
+	(gen_compile_unit_die): Recognize GNU F77.
+	(gen_array_type_die): Use AT_declaration for an array of unknown size.
+	(modified_type_die): Take TYPE_MAIN_VARIANT before passing it
+	to build_type_variant, so we ignore named variants.
+	(dwarf2out_file_scope_decl): Don't generate DIEs for built-in structs,
+	either; they will be emitted if they are used.
+	From wilson:
+	(gen_array_type_die): Force the element type out first on IRIX 6.
+
+Sun Nov 17 20:23:11 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (get_inner_reference): Fix error in previous change.
+
+Sat Nov 16 06:08:27 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (operand_subword): Avoid confusion if sizeof (float)
+	is less than a full word.
+
+	* alpha.h (MASK_BYTE_OPS): Now define as 1024.
+	* alpha/vms.h (TARGET_DEFAULT): Use symbolic values.
+
+	* expr.c (get_inner_reference): Add new arg PALIGNMENT and compute it.
+	(expand_assignment, do_jump): Pass new arg to get_inner_reference.
+	(expand_expr, case COMPONENT_REF): Likewise.
+	* fold-const.c (optimize_bit_field_compare, decode_field_reference):
+	Likewise.
+	* tree.h (get_inner_reference): Add new arg.
+
+	* Add support for Alpha/VMS, mostly from
+	Klaus Kaempf (kkaempf@progis.de)
+	* configure (alpha-dec-vms*): New target.
+	* alpha.c (override_options): Handle VAX format floating-point.
+	(print_operand, case ',', '-'): New cases.
+	(alpha_builtin_saveregs): Handle VMS convention.
+	(alpha_sa_{mask,size}, alpha_pv_save_size, alpha_using_fp):
+	New versions for VMS.
+	(output_{pro,epi}logue, function_arg): Likewise.
+	(direct_return): Never true on VMS.
+	(check_float_value): Return 0 for VMS.
+	(vmskrunch, alpha_{need,write}_linkage): New function.
+	* alpha.h ({MASK,TARGET}_{OPEN_VMS,FLOAT_VAX}): New macros.
+	(TARGET_SWITCHES): Add float-vax and float-ieee.
+	({FUNCTION,LIBCALL}_VALUE, FUNCTION_VALUE_REGNO_P): R1 and R33
+	are also return registers.
+	(ASM_OUTPUT_DOUBLE): Support both floating-point formats.
+	(PRINT_OPERAND_FUNCT_VALID_P): Add ',' and '-'.
+	* alpha.md ({div,mod}[sd]i3): Only for VMS.
+	(fp operations): Add modifiers for multiple floating-point formats.
+	(call patterns): Handle new calling sequence for VMS.
+	(tablejump): Make new pattern for VMS.
+	(nonlocal_goto_receiver, arg_home): New patterns.
+	* alpha/t-vms, alpha/vms.h, alpha/xm-vms.h: New files.
+
+Fri Nov 15 17:38:20 1996  Doug Evans  <dje@seba.cygnus.com>
+
+	* sdbout.c (current_file): New global.
+	(PUT_SDB_SRC_FILE): New PUT_SDB_FOO macro.
+	(sdbout_init): Initialize current_file ifdef MIPS_DEBUGGING_INFO.
+	(sdbout_{start_new,resume_previous}_source_file): New functions.
+	* toplev.c (debug_{start,end}_source_file): Call them if SDB_DEBUG.
+	* mips.h (PUT_SDB_SRC_FILE): Define.
+
+Fri Nov 15 16:11:25 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarfout.c (dwarfout_line): Don't emit line number info for
+	functions outside of .text.
+
+Fri Nov 15 15:52:42 1996  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386/386bsd.h (COMMENT_BEGIN): Delete.
+	* i386/freebsd.h (COMMENT_BEGIN): Likewise.
+	* i386/netbsd.h (COMMENT_BEGIN): Likewise.
+	* i386/unix.h (COMMENT_BEGIN): Likewise.
+
+Fri Nov 15 13:22:42 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* fold-const.c (unextend): Rewrite type conversions to avoid overflow.
+
+Fri Nov 15 12:11:28 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): Properly copy an rtvec.
+	* emit-rtl.c (gen_rtvec_vv): New function.
+	(copy_rtx_if_shared): Call it.
+	* integrate.c (copy_for_inline): Likewise.
+	* reload1.c (eliminate_regs): Likewise.
+	* rtl.h (gen_rtvec_vv): Declare.
+	* genattrtab.c (simplify_cond): Make TESTS an array of rtunions.
+	* genextract.c (main): Use loop, not bcopy, to set recog_operands
+	from an rtvec.
+	* rtl.c (rtvec_alloc): Clear rtwint instead of rtvec.
+
+	* machmode.h (HOST_PTR_PRINTF): Handle char * wider than long.
+	(HOST_WIDE_INT_PRINT_{DEC,UNSIGNED,HEX,DOUBLE_HEX}): New macros.
+	* final.c (asm_fprintf): Use "ll" prefix for a long long HOST_WIDE_INT.
+	(output_{asm_insn,addr_const}): Use HOST_WIDE_INT_PRINT_*.
+	* print-tree.c (print_node{,_brief}, case INTEGER_CST): Likewise.
+	* print-rtl.c (print_rtx, case 'w'): Use HOST_WIDE_INT_PRINT_DEC.
+
+	* unroll.c (iteration_info): Fix code so that it knows iteration_var
+	is a HOST_WIDE_INT, not a long.
+
+	* fold-const.c (operand_equal_p): Do real comparison with
+	REAL_VALUES_EQUAL.
+	(make_range): Properly decide when to get TREE_TYPE of arg0.
+	Handle EXP being an INTEGER_CST at end.
+	(fold_range_test): Handle return of 0 from make_range.
+	(fold, case TRUTH_AND_EXPR): Handle first arg of 0.
+	(fold, case TRUTH_OR_EXPR): Handle first arg of 1.
+
+	* c-common.c (decl_attributes, case A_ALIAS): Add missing parens.
+
+Fri Nov 15 06:37:54 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* fold-const.c (range_binop): Set SNG1 to zero if ARG1 is a
+	not a lower or upper bound.
+
+Thu Nov 14 23:08:25 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* flags.h (debug_info_type): Add DWARF2_DEBUG.
+	* toplev.c (main): Support DWARF2_DEBUG.  Add -gdwarf-1, -gdwarf-2
+ 	options.  Check debug level after choosing type.
+	(debug_{start,end}_source_file, debug_{define,undef}): New functions.
+	(compile_file): Support dwarf2 separately from dwarf1. 
+	(rest_of_type_compilation, rest_of_compilation): Likewise.
+	* final.c (final_start_function): Likewise.
+	(final_end_function, final_scan_insn, output_source_line): Likewise.
+	* varasm.c (assemble_variable): Likewise.
+	* dwarfout.c: Don't check DWARF_VERSION.
+	* dwarf2out.c: s/dwarfout/dwarf2out/g.  Check DWARF2_DEBUGGING_INFO.
+	* c-lex.c (check_newline): Use debug_* instead of calling *out
+ 	functions directly.
+	* svr4.h (DWARF2_DEBUGGING_INFO): Define.
+	* mips/iris6.h (PREFERRED_DEBUGGING_TYPE): DWARF2_DEBUG.
+	(DWARF2_DEBUGGING_INFO): Define instead of DWARF_DEBUGGING_INFO.
+	(LINK_SPEC): Pass -w through.
+	* mips.h (PREFERRED_DEBUGGING_TYPE): Don't check `len'.
+
+Thu Nov 14 17:25:47 1996  Jeffrey A Law  (law@cygnus.com)
+
+ 	* h8300.c (dosize): Don't clobber static chain reg if needed by
+	current function.
+
+Wed Nov 13 17:05:19 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* Makefile.in (stage?-start): Keep a copy of EXTRA_MULTILIB_PARTS
+	in the build directory.
+
+Tue Nov 12 23:17:17 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.c (print_operand, case 'Y'): Fix comparisons to handle
+	NaNs properly in all cases.
+
+Tue Nov 12 18:47:24 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* expr.c (emit_group_store): For REG case, call gen_lowpart if
+	modes are different.
+
+Tue Nov 12 18:24:40 1996  Doug Rupp  (rupp@gnat.com)
+
+	* gcc.c (exit): If VMS, define as __posix_exit.
+	(option_map): Add define-macro and undefine-macro.
+
+Tue Nov 12 17:55:10 1996  Torbjorn Granlund  <tege@tege.pdc.kth.se>
+
+	* alpha.c (input_operand): If TARGET_BYTE_OPS accept HImode and QImode.
+	* alpha.h (MASK_BYTE_OPS): New define.
+	(TARGET_BYTE_OPS): New define.
+	(TARGET_SWITCHES): Handle -mbyte.
+	(LOAD_EXTEND_OP): When MODE is not SImode, return ZERO_EXTEND.
+	* alpha.md (zero_extendqidi2): Handle TARGET_BYTE_OPS.
+	(zero_extendhidi2): Likewise.
+	(zero_extendqisi2): Likewise.
+	(zero_extendhisi2): Likewise.
+	(extendqisi2): Use extendqidi2x if TARGET_BYTE_OPS.
+	(extendqidi2): Likewise.
+	(extendqidi2x): New pattern.
+	(extendhisi2): Use extendhidi2x if TARGET_BYTE_OPS.
+	(extendhidi2): Likewise.
+	(extendhidi2x): New pattern.
+	(movhi): Handle TARGET_BYTE_OPS.
+	(movhi matcher): Output ldwu and stw.
+	(movqi): Handle TARGET_BYTE_OPS.
+	(movqi matcher): Output ldbu and stb.
+
+Tue Nov 12 16:53:37 1996  Rob Savoye  <rob@chinadoll.cygnus.com>
+
+	* configure (hppa1.1-pro*, i960-*-coff*,m68k-*-aout*): Add libgloss.h.
+	(m68k-*-coff*, mips*-*-elf*, sparc*-*-aout*, sparc*-*-coff*): Likewise.
+	* config/libgloss.h: New file.
+
+Tue Nov 12 16:21:45 1996  Joern Rennecke <amylaar@cygnus.com>
+
+	* jump.c (jump_optimize): Fix bug in Sep 23 change.
+
+Tue Nov 12 16:15:31 1996  Andrew Cagney  (cagney@tpgi.com.au)
+
+	* global.c (prune_references): Add missing symmetic CONFLICTP call.
+
+Tue Nov 12 14:34:40 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* m68k.c (output_function_{pro,epi}logue): Save and restore
+	fp-registers only if TARGET_68881.
+
+	* m68k/mot3300.h (ASM_OUTPUT_INTERNAL_LABEL): Prefix labels with "L%".
+	(ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_CASE_LABEL): Likewise.
+	(ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
+
+	* m68k/mot3300.h (TARGET_DEFAULT): Use MASK_68040_ALSO, not MASK_68040.
+	* m68k/next.h, m68k/ccur-GAS.h (TARGET_DEFAULT): Likewise.
+
+	* fixproto (std_files): Add sys/socket.h.
+
+	* m68k.md (movqi): Emit 'st' for INTVAL & 255 == 255, not INTVAL == -1.
+	(seq,sne,sgt,sgtu,slt,sltu,sge,sgeu,sle,sleu): Allow "m" as operand 0.
+
+Tue Nov 12 14:17:45 1996  Paul Eggert  <eggert@twinsun.com>
+
+	* c-decl.c (grokdeclarator): Generate a warning if -Wimplicit,
+	unless a warning was already generated by -Wreturn-type.
+
+Tue Nov 12 14:11:02 1996  Pat Rankin  <rankin@eql.caltech.edu>
+
+	* Make qsort callback routines conform to the ANSI/ISO standard.
+	* c-decl.c (field_decl_cmp): Use `const void *' arguments.
+	* global.c (allocno_compare): Likewise.
+	* reload1.c (hard_reg_use_compare, compare_spill_regs): Likewise.
+	(reload_reg_class_lower): Likewise.
+	* stupid.c (stupid_reg_compare): Likewise.
+	* local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
+	(QTY_CMP_PRI, QTY_CMP_SUGG): New macros.
+	(qty_compare_1, qty_sugg_compare_1): Use them.
+
+Tue Nov 12 13:20:25 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* fold-const.c (merge_ranges): In (+,-) case, treat subset specially
+	if lower bounds are the same.
+
+Tue Nov 12 13:10:01 1996  J.T. Conklin  <jtc@cygnus.com>
+
+	* m68k.md (addsi3): If TARGET_5200, use the lea insn to add small
+	constants to address registers.
+	(negsi2): Change into define_expand.
+	(negsi2_internal): Rename from old negsi2, changed condition
+	to !TARGET_5200.
+	(negsi2_5200): New insn.
+	(one_cmplsi2): Change into define_expand.
+	(one_cmplsi2_internal): Rename from old one_cmplsi2, changed
+	condition to !TARGET_5200.
+	(one_cmplsi2_5200): New insn.
+	(negdi2_5200): Corrected constraints.
+	(one_cmpldi2): Changed condition to !TARGET_5200.
+
+	* m68k.c (m68k_align_loops_string, m68k_align_jumps_string): New vars.
+	(m68k_align_funcs_string, m68k_align_loops): Likewise.
+	(m68k_align_jumps, m68k_align_funcs): Likewise.
+	(override_options): New function.
+	* m68k.h (TARGET_OPTIONS): Added alignment options.
+	(MAX_CODE_ALIGN, ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE):
+	New macros.
+	(FUNCTION_BOUNDARY): Use value derrived from  m68k_align_funcs
+	instead of constant.
+ 
+	* m68k.c (output_function_{pro,epi}logue): Fix typo in last change.
+
+Tue Nov 12 09:26:51 1996  Torbjorn Granlund  <tege@wombat.gnu.ai.mit.edu>
+
+	* i386.md (parallel inc/dec and branch-if-zero/nonzero): Use `+' in
+	constraint.
+
+Mon Nov 11 15:12:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+        * libgcc2.c: Also define WEAK_ALIAS if ASM_OUTPUT_WEAK_ALIAS.
+	* mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Define.
+	* varasm.c (assemble_alias): Use ASM_OUTPUT_WEAK_ALIAS.
+
+	* dwarf2out.c (TYPE_USED_FOR_FUNCTION): Lose.
+	(gen_compile_unit_die): Only append -g with -g2 or better.
+	(scope_die_for): Don't emit any type info with -g1.
+	(gen_subprogram_die): Likewise.
+	(gen_decl_die): Likewise.
+	(dwarfout_file_scope_decl): Likewise.
+	(dwarfout_init): Likewise.
+
+	* mips/iris6.h (TYPE_ASM_OP): Define.
+	(SIZE_ASM_OP): Define.
+	(ASM_WEAKEN_LABEL): Define.
+	(BSS_SECTION_ASM_OP): Define.
+	(ASM_OUTPUT_ALIGNED_LOCAL): Don't use ASM_DECLARE_OBJECT_NAME.
+	(ASM_OUTPUT_ALIGNED_BSS): Define.
+	(ASM_DECLARE_OBJECT_NAME): Redefine to emit .size directive.
+	(ASM_FINISH_DECLARE_OBJECT): Define.
+	(ASM_OUTPUT_DEF): Don't define.
+
+Fri Nov  8 20:38:51 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* function.c (expand_function_end): Handle BLKmode structures returned
+	in registers.
+
+Fri Nov  8 20:27:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* stor-layout.c (layout_record): Check for VAR_DECL instead 
+	of TREE_STATIC.
+
+	* varasm.c (assemble_variable): Do write out DWARF for 
+	record-scope variables.
+	* toplev.c (rest_of_type_compilation): Do write out DWARF for
+ 	record-scope types.
+
+	* dwarf2out.c (gen_enumeration_type_die): Set TREE_ASM_WRITTEN on a
+	complete enum type.
+	(gen_struct_or_union_type_die): Don't recurse between nested classes.
+	(gen_type_die): Write out nested classes by writing out their context.
+
+Fri Nov  8 17:40:27 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (change_address): If MEMREF isn't changing,
+	return the old one.
+
+	* expr.c (expand_assignment): Remove bogus resetting of alignment
+	to inner alignment.
+	(expand_expr, case COMPONENT_REF): Likewise.
+
+Fri Nov  8 16:31:31 1996  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* reg-stack.c (compare_for_stack_reg, subst_stack_regs_pat): 
+	Add support for float conditional move.
+
+Thu Nov  7 07:46:07 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stor-layout.c (layout_record): Treat constant size as variable if
+	it overflows.
+	* fold-const.c (const_binop, case *_DIV_EXPR): Don't do special
+	sizetype case if a constant overflows.
+	(size_binop): Use integer_{zero,one}p instead of explicit test.
+	* tree.c (integer_{zero,one,all_ones,pow2}p, real_{zero,one,two}p):
+	Return 0 if TREE_CONSTANT_OVERFLOW.
+
+Wed Nov  6 17:53:33 1996  Torbjorn Granlund  <tege@wombat.gnu.ai.mit.edu>
+
+	* i386.md (parallel inc and branch-if-zero/nonzero): Add two
+	new pattern variants.  Change incrementing pattern to use incl/jnz.
+
+Wed Nov  6 09:46:10 1996  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.c (override_options): Set defaults for -march and -mcpu.
+	(output_float_compare): Use cc_status.flags to mark if this
+	comparison can be done with fcomi.
+	(output_fp_cc0_set): A conditional move may be in a PARALLEL.
+
+	* i386.h (CC_FCOMI): Define
+
+	* i386.md (sgt,sgtu,sge,sle,bgt,blt,bge,ble): Use CC_FCOMI
+	(movsicc_1,movhicc_1): Use correct size suffix.
+	(movsfcc_1,movdfcc_1): Cleanup default move case.
+
+Wed Nov  6 09:46:10 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* i386.h (HARD_REGNO_MODE_OK): If long double isn't XFmode, can't
+	allow XFmode.
+
+Tue Nov  5 22:49:56 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* sh.md (define_split for and_shl_scratch):
+	Use rtx_equal_p on the operands to find out which alternative is used.
+	* sh.c (gen_shl_and): Try to generate shorter constant for and.
+
+Mon Nov  4 19:13:52 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c: Clean up unused variables.
+	Use ASM_{GENERATE,OUTPUT}_INTERNAL_LABEL, shorten label names.
+ 	(loc_descriptor): Use reg_loc_descriptor.
+	(TYPE_DECL_IS_STUB): New macro.
+	(gen_decl_die): Use it.
+	(dwarfout_file_scope_decl): Use it.
+
+Mon Nov  4 10:23:46 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* ginclude/va-ppc.h (__va_regsave_t,va_start,va_end): Wrap macro
+	and structures inside #ifndef __VA_PPC_H__ to allow reinclusion.
+
+	* rs6000/rs6000.h (LEGITIMATE_SMALL_DATA_P): Don't allow -fpic or
+	TARGET_TOC.
+	(LEGITIMATE_LO_SUM_ADDRESS_P): Ditto.
+	(LEGITIMIZE_ADDRESS): Ditto.
+
+	* rs6000/rs6000.md (movsi): Don't call elf_{high,low} if -fpic.
+
+	* rs6000/cygwin32.h (STARTFILE_SPEC): Eliminate empty %{}.
+
+Sun Nov  3 15:56:35 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/sysv4.h (TARGET_TOC): Plain -fpic does not require a TOC.
+	({MINIMAL_TOC,CONST}_SECTION_ASM_OP): -fpic should be treated like
+	-mrelocatable in these cases.
+	(ASM_OUTPUT_INT): Ditto.
+	(ASM_OUTPUT_SECTION_NAME): Ditto.
+	(ASM_OUTPUT_ALIGNED_LOCAL): Use sdata_section, not sbss_section.
+
+Fri Nov  1 19:57:13 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (based_loc_descr): Use DBX_REGISTER_NUMBER.  The 
+	"frame base" is just the frame or stack reg without an offset.
+	(gen_subprogram_die): Likewise.
+	(dwarfout_begin_function): Use DBX_REGISTER_NUMBER.
+
+Fri Nov  1 09:50:05 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (make_range): Don't merge unsigned case with range
+	containing upper bound; instead merge just with zero and convert
+	a range with no upper bound to opposite one with no lower bound.
+	(merge_ranges): In (+,-) case, don't treat subset specially if
+	the upper bounds are the same; fix typo in others case here.
+
+Thu Oct 31 20:12:13 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* fold-const.c (make_range, case PLUS_EXPR): Correct
+	normalization of an unsigned range that wraps around zero.
+
+Thu Oct 31 21:06:37 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* mips/t-iris6 (EXTRA_MULTILIB_PARTS): Define.
+	(EXTRA_PARTS): Don't define.
+
+	* dwarf2out.c (gen_struct_or_union_type_die): Use AT_specification
+	for nested types defined outside their containing class.  Lose 
+	is_complete.
+	(gen_enumeration_type_die): Lose is_complete.
+	(gen_type_die): Lose is_complete.
+	(add_name_and_src_coords_attributes): Tweak.
+	(gen_subroutine_type_die): Use scope_die_for.
+	(gen_ptr_to_mbr_type_die): Likewise.
+	(gen_subprogram_die): Support AT_artificial.
+	(gen_variable_die): Likewise.
+	(dwarfout_file_scope_decl): Lose finalizing.
+
+Thu Oct 31 18:43:18 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* pa.c (emit_move_sequence): Refine previous change.
+
+Thu Oct 31 13:25:32 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* crtstuff.c: Put HAS_INIT_SECTION ifdefs around Irix6 support.
+
+	* tree.c (decl_function_context): Handle QUAL_UNION_TYPE.
+
+	* calls.c (expand_call): Disable special handling for const calls
+	that return a PARALLEL rtx.
+	* expr.c (expand_expr, case CONSTRUCTOR): Don't use a PARALLEL
+	target.
+
+Thu Oct 31 11:45:00 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/t-{ppcgas,ppc,solaris} (EXTRA_MULTILIB_PARTS): Add
+	{e,s}crt{i,n,0}.o.
+	({stmp,install}-crt): Delete, no longer used.
+	({,INSTALL_}LIBGCC): Remove {stmp,install}-crt rule.
+
+Thu Oct 31 02:49:58 1996  Torbjorn Granlund  <tege@nada.kth.se>
+
+	* i386.md (parallel inc and branch-if-zero/nonzero):
+	Check for -1, not zero.
+
+Wed Oct 30 15:50:49 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (range_binop): Strip NOPs from result and
+	verify it's an INTEGER_CST.
+	(make_range, case BIT_NOT_EXPR): Fix typo in constant for PLUS_EXPR.
+
+	* stor-layout.c (layout_record): Use HOST_WIDE_INT for size.
+
+	* stmt.c (expand_asm_operands): Disallow matching constraints
+	on output and validate the numbers on inputs.
+
+Tue Oct 29 16:21:59 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* gcc.c (process_command,main): Process -specs=file and -specs
+	file after reading the main specs file to allow the user to
+	override the default.
+	(DEFAULT_WORD_SWITCH_TAKES_ARG): Add specs to list.
+	(option_map): Ditto.
+
+Tue Oct 29 15:49:18 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* Makefile.in (stmp-multilib): Pass $flags to s-m-sub in 
+	MULTILIB_CFLAGS.
+	(stmp-multilib-sub): Build EXTRA_MULTILIB_PARTS.
+	($(T)crt*.o): Add $(T), lose stamp-crt rule, use MULTILIB_CFLAGS.
+	(install-multilib): Install EXTRA_MULTILIB_PARTS.
+
+Mon Oct 28 20:09:39 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* sh.md (shl_sext_ext): Don't accept simple left/right shift
+	variant.
+	* sh.c (EXT_SHIFT_SIGNED): New macro.
+	(shl_sext_kind, gen_shl_sext): try left shift - sign extend -
+	left shift - arithmetic right shift in case 2.
+
+Mon Oct 28 14:55:42 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* configure (sh-*-*): Set float_format to sh.
+	* config/float-sh.h: New file.
+
+Mon Oct 28 14:26:08 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* mips/mips.h (RTX_COSTS): Add cases for SIGN_EXTEND and
+	ZERO_EXTEND.
+
+	* m68k/lb1sf68.asm: Change # to IMM in udivsi3 __mcf5200__.
+
+	* combine.c (simplify_rtx): Add some optimizations for TRUNCATE.
+	(expand_compound_operation): Add some optimizations for
+	ZERO_EXTEND.
+
+Mon Oct 28 14:11:20 1996  Gavin Koch  <gavin@cygnus.com>
+        
+	* varasm.c (make_decl_rtl,assemble_variable):
+	Allow named sections for uninitialized variables.
+
+Mon Oct 28 13:08:51 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* pa.c (emit_move_sequence): If reload in progress, replace
+	reference to pseudo with reference to corresponding MEM.
+
+	* c-typeck.c ({un,}signed_type): If can't do anything, call
+	signed_or_unsigned_type.
+	(signed_or_unsigned_type): If already right signedness, return.
+
+Mon Oct 28 13:05:26 1996  Stephen Williams (steve@icarus.com)
+
+	* i960.h: Add specification for -Jx types.
+	* i960/t-960bare: Include multilib support for Jx types.
+
+Mon Oct 28 10:06:00 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/t-{ppc{,gas},solaris} (install-crt): Depend on
+	installdirs, not install-dir.
+
+	* rs6000/sysv4.h (TARGET_TOC): -fpic does not use a TOC area.
+
+Mon Oct 28 09:07:42 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* reload1.c (delete_output_reload): Don't use delete_insn
+	when deleting all stores into a replaced pseudo.
+
+	* sh.md (movsf_ieq, movsf_ie): Merged the former into the latter.
+	Changed matching define_split appropriately.
+	(movsf): Changed appropriately.
+	(reload_insf) Define.
+	* sh.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
+
+Mon Oct 28 08:38:23 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* dsp16xx.h (ASM_OUTPUT_BYTE): adjust definition to actual type of
+	VALUE, which is HOST_WIDE_INT.
+
+Mon Oct 28 07:36:07 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+	* ginclude/stddef.h: Make sure file is processed if some of the
+	known __need_* macros is defined.
+
+Sun Oct 27 21:37:59 1996  J.T. Conklin  <jtc@cygnus.com>
+
+	* m68k.c (output_function_prologue): Adjust SP then use movmel with
+	plain address indirect mode for TARGET_5200.
+	(output_function_epilogue): Disable moveml and use several movel's
+	instead for TARGET_5200.
+	(output_function_{pro,epi}logue): Use lea instruction to adjust
+ 	stack pointer for short displacements for TARGET_5200.
+
+Sun Oct 27 15:27:45 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* fold-const.c (merge_ranges): Fix thinko/typo.
+
+Sat Oct 26 22:07:04 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* expr.c (convert_modes): Before returning a const_double for a
+	large unsigned value, zero extend an integer value if necessary.
+
+Sat Oct 26 15:24:55 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* m68k/x-mot3300 (XCFLAGS): Disable native assembler's jump
+	optimization for expr.o and cp/decl.o.
+
+Sat Oct 26 14:04:09 1996  Ben Harris  <bjh21@cam.ac.uk>
+
+	* m68k.c (output_function_prologue): Add REGISTER_PREFIX to stack
+	probe instruction.
+
+Sat Oct 26 13:59:05 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* explow.c (allocate_dynamic_stack_space): Delete reference to
+	nonexistant macro ALLOCATE_OUTGOING_ARGS.
+
+	* next.h (CPP_PREDEFINES): Add -D_NEXT_SOURCE.
+
+Sat Oct 26 13:50:49 1996  Mark Mitchell  (mitchell@centerline.com)
+
+	* configure (i486-ncr-sysv4*): Use i386/sysv4gdb if stabs and gas.
+
+Sat Oct 26 12:20:35 1996  John F. Carr  <jfc@mit.edu>
+
+	* configure: Support --with-cpu=* for SPARC.  Or target default
+	values instead of adding them.
+	* sparc.c (cpu_default): Add entries for v8 and supersparc.
+	* sparc.h: Define TARGET_CPU values for v8 and supersparc.
+
+Sat Oct 26 11:38:01 1996  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
+
+	* collect2.c (dump_file): Call fclose() for opened files.
+
+Sat Oct 26 11:29:29 1996  J"orn Rennecke  (amylaar@cygnus.co.uk)
+
+	* jump.c (jump_optimize): Fix second error in last change.
+
+	* svr3.h: Fix typo which makes comment text be non-comment.
+
+Fri Oct 25 16:18:39 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/t-winnt (LIBGCC1): Don't build libgcc1.
+	(EXTRA_PARTS): Build crti.o, crtn.o.
+	(stmp-crt): Remove old multilib support.
+
+Thu Oct 24 15:09:14 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* fold-const.c (make_range, case PLUS_EXPR): Normalize an unsigned
+	range that wraps around 0.
+
+Thu Oct 24 14:37:17 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* mips.md: Change predicates for 64 bit arithmetic operations
+	so that they accept sign extended registers as operands.
+	(extendsidi2): Accept hi or lo as input.
+	* mips.c (movdi_operand, se_register_operand,
+	se_reg_or_0_operand, se_uns_arith_operand, se_arith_operand,
+	se_nonmemory_operand, se_nonimmediate_operand): New functions.
+	(mips_move_2words): Handle a SIGN_EXTEND source.
+	(print_operand): Handle a SIGN_EXTEND operand.
+	(mips_secondary_reload_class): Handle a SIGN_EXTEND rtx.
+	* mips.h: Declare new mips.c functions.
+	(PREDICATE_CODES): Add new functions.
+
+Thu Oct 24 07:41:14 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (make_range, comparison cases): When making range
+	for unsigned to merge in, use full range.
+
+	* stor-layout.c (GET_MODE_ALIGNMENT): Delete definition; duplicate.
+
+Thu Oct 24 07:28:53 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* reload1.c (emit_reload_insns): Check for second_reloadreg
+	in SECONDARY_OUTPUT_RELOAD_CLASS / PRESERVE_DEATH_INFO_REGNO_P case.
+
+Wed Oct 23 14:27:43 1996  Mike Stump  <mrs@cygnus.com>
+
+	* crtstuff.c (__do_global_dtors_aux): Allow finalization code to
+	be run more than once.
+	* libgcc2.c (__do_global_dtors): Ditto.
+	
+Wed Oct 23 20:42:23 1996  Joern Rennecke <amylaar@cygnus.co.uk>
+
+	* sh.c (dump_table): handle SFmode and DFmode.
+	(broken_move): handle simple PARALLEL.
+	(machine_dependent_reorg, pc-relative move generation): Likewise.
+	* sh.h (CONST_DOUBLE_OK_FOR_LETTER_P): always true for 'F' .
+	(LEGITIMATE_CONSTANT_P): accept SFmode and DFmode.
+	* sh.md (movdf_k, movsf_i, movsf_ie): new alternative for
+	pc-relative load.
+	(movsf_ieq): new define_insn with matching define_split.
+	(movsf): use it where appropriate.
+	(consttable_sf, consttable_df): new define_insns.
+
+Wed Oct 23 17:48:32 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* svr4.h (MAKE_DECL_ONE_ONLY): Fix typo in use of macro parameter.
+
+Wed Oct 23 17:46:13 1996  Pat Rankin  <rankin@eql.caltech.edu>
+
+	* cexp.y (yylex): Cast string literal to U_CHAR* for lookup() call.
+
+Wed Oct 23 14:50:04 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* stmt.c (expand_return): Expand cleanups.  Make sure we get a
+ 	pseudo-reg and provide a target in the non-BLKmode case.  Get return
+ 	type of fn properly.
+
+Wed Oct 23 14:16:06 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* reload.c (find_reloads): Handle any unary operator.
+	* recog.c (constrain_operands): Likewise.
+
+	* mips.md: Remove extendsidi2 define_expand. 
+	Rename extendsidi2_internal define_insn to extendsidi2, and add a
+	register to register case.
+
+Wed Oct 23 14:08:31 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* a29k.c (a29k_makes_calls): New global variable.
+	(compute_regstack_size, a29k_compute_reg_names): New functions.
+	(output_prolog): Much code moved to two new functions.  Use
+	a29k_makes_calls instead of makes_calls.
+	* a29k.h (ASM_DECLARE_FUNCTION_NAME): Call a29k_compute_reg_names.
+
+	* calls.c (expand_call): In target code, move PARALLEL case above
+	target != case.
+
+	* mips.c (block_move_load_store, block_move_sequence): Delete.
+	(block_move_loop): New parameter orig_dest.  Call change_address to
+	create new MEM instead of gen_rtx.
+	(expand_block_move): New local orig_dest.  Pass it to block_move_loop.
+	Call change_address to create new MEM instead of gen_rtx.
+
+Wed Oct 23 10:30:32 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* loop.c (combine_givs): When combining a DEST_REG giv with its
+	only use, always set the benefit of the combined giv to that of
+	the DEST_REG giv.
+
+	* emit-rtl (gen_lowpart_common): When converting a floating
+	point value into an integer, use WORD as (first) word.
+
+	* combine.c (can_combine_p): When SMALL_REGISTER_CLASSES is defined,
+	avoid substituting a return register into I3.
+
+	* optabs.c (emit_libcall_block): Before adding an REG_EQUAL note,
+	check that it will really apply to a single instruction.
+	(expand_binop, expand_fix): Likewise.
+
+Wed Oct 23 10:20:52 1996  Stephen L Moshier  (moshier@world.std.com)
+
+	* real.c (exact_real_inverse): New function, if REAL_ARITHMETIC.
+	* fold-const.c (exact_real_inverse): Likewise, if no REAL_ARITHMETIC.
+	(fold, case RDIV_EXPR): Turn divide by constant into multiplication
+	by the reciprocal, if optimizing and result is exact.
+	* real.h (exact_real_inverse): Declare.
+
+Wed Oct 23 00:12:52 1996  Torbjorn Granlund  <tege@nada.kth.se>
+
+	* expr.h (emit_store_flag_force): Declare.
+
+Tue Oct 22 18:32:20 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* unroll.c (unroll_loop): Always reject loops with unbalanced blocks.
+
+Tue Oct 22 18:27:06 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config/fp-bit.c (float_to_usi): Correct thinko: avoid a negative
+	shift.
+	(df_to_sf): Remember any discarded nonzero bits in the low order
+	guard bit.
+
+	* ginclude/va-mips.h: Add support for -mips1 and -msoft-float when
+	using -mabi=eabi.
+	* mips/abi64.h (SETUP_INCOMING_VARARGS): When MIPS EABI, handle
+	TARGET_SINGLE_FLOAT or ! TARGET_FLOAT64 correctly when saving
+	floating point registers to the stack.
+	* mips/mips.c (mips_function_value): If TARGET_SINGLE_FLOAT, use
+	GP_RETURN for floating point types larger than 4 bytes.
+
+Tue Oct 22 09:43:49 1996  Geoffrey Noer  <noer@cygnus.com>
+
+	* rs6000/cygwin32.h (LIB_SPEC): Add -lkernel32 all of the time,
+	and {user,gdi,comdlg}32 if -mwindows.
+
+Tue Oct 22 05:24:05 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (scope_die_for): Don't skip lexical blocks.
+	(gen_lexical_block_die): Call push_decl_scope.
+	(gen_subprogram_die): Never refer to the function symbol.
+	(dwarfout_begin_prologue): Likewise.
+
+Mon Oct 21 20:22:49 1996  Torbjorn Granlund  <tege@nada.kth.se>
+
+	* expmed.c (emit_store_flag_force): New function.
+	* optabs.c (expand_binop): Use it.
+	
+	* expr.c (do_store_flag): Don't check if target is 0 in code
+	emitting store flag as compare-branch.
+
+Mon Oct 21 17:58:33 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* mips.c (override_options): Correct typo (MASK_64BIT should
+	have been TARGET_64BIT).
+
+Mon Oct 21 13:58:54 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* unroll.c (loop_comparison_code): New static variable.
+	(unroll_loop): Add check for loop_comparison_code
+	(loop_iterations): Set loop_comparison_code.
+
+	* sh.c (gen_shl_sext): Add missing parameter to shl_sext_kind call.
+
+	* mips.h (INITIAL_FRAME_POINTER_OFFSET): Delete.
+
+	* loop.c (strength_reduce): Add check for ! bl->reversed to
+	auto_inc_opt code.
+
+Mon Oct 21 12:28:15 1996  J"orn Rennecke  <amylaar@cygnus.co.uk>
+
+	jump.c (jump_optimize): Fix bug in Oct. 14 change.
+
+Mon Oct 21 07:59:16 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (store_expr): Disable optimization of using convert
+	if exp's type is a subtype.
+
+	* c-typeck.c (build_array_ref): If -Wchar-subscripts, also warn
+	in case when pointer is being indexed.
+
+Mon Oct 21 07:39:31 1996  J"orn Rennecke  <amylaar@cygnus.co.uk>
+
+	* jump.c (jump_optimize): Use emit_store_flag even if branches
+	are cheap, if the store is even cheaper.
+
+Sun Oct 20 20:01:09 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload_reg_free_p, reloads_conflict): RELOAD_OTHER
+	and RELOAD_FOR_OTHER_ADDRESS conflict.
+
+	* i386.md (ffs[sh]i2): Add missing CC_STATUS_INIT.
+
+Fri Oct 18 13:32:13 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.md (float conversion insns): Generate correct code
+	if the bit 15 of rs6000_fpmem_offset is non-zero.
+
+Thu Oct 17 23:22:03 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarfout.c (data_member_location_attribute): Support binfos.
+	(output_inheritance_die): New fn.
+	(output_type): Use it.
+
+	* dwarf2out.c (value_format): Split out from...
+	(output_value_format): Here.
+	(build_abbrev_table): Use value_format.
+	(size_of_locs): New fn.
+	(size_of_die): Don't assume a loc needs a 2-byte length.
+	(value_format): Likewise.
+	(output_die): Likewise.
+
+Thu Oct 17 14:46:14 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* mips.c (override_options): In 64 bit EABI mode, set TARGET_LONG64.
+
+Thu Oct 17 11:34:51 1996  Bob Manson  <manson@cygnus.com>
+
+	* expr.c (do_jump): Conditionalize cleanups for the COND_EXPR case,
+ 	similarly to the way TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR are
+ 	handled.
+
+Thu Oct 17 01:20:16 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* m68k.h (MASK_68040_ALSO): New macro.
+	(TARGET_SWITCHES): Option -m68020-40 includes MASK_68040_ALSO.
+
+Wed Oct 16 16:25:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (scope_die_for): Also support decls, add asserts.
+	(modified_type_die): Modified types all go under comp_unit_die.
+	(add_type_attribute): Just pass context_die through.
+	(various): Revert useless lookup_type_die change.
+	(gen_subprogram_die): Use scope_die_for.  Call push_decl_scope.
+	(gen_inlined_subroutine_die): Call push_decl_scope.
+	(gen_struct_or_union_type_die): Likewise.
+	(gen_decl_die): Don't call push_decl_scope.
+
+	* mips/iris6.h (*_SPEC): Replace enumeration of !mabi= with !mabi*.
+	(ASM_OUTPUT_{CON,DE}STRUCTOR): Enable.
+	(STARTFILE_SPEC): Support -mips4, -shared.
+	(ENDFILE_SPEC): Likewise.
+	(LIB_SPEC): Support -shared, avoid warning 84.
+	(LIBGCC_SPEC): Define.
+	(LINK_SPEC): Support -shared, remove -woff 84.
+	* mips/t-iris6 (EXTRA_PARTS): Add crtstuff.
+	* crtstuff.c: Support Irix 6.
+	* configure: Don't use collect2 for Irix 6.
+	* libgcc2.c (__main): Don't use any of this stuff if HAS_INIT_SECTION.
+
+Wed Oct 16 11:46:37 1996  Mike Stump  <mrs@cygnus.com>
+
+	* elxsi.h (CHECK_FLOAT_VALUE): Removed.
+
+Wed Oct 16 14:19:38 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* iris6.h (CPP_PREDEFINES): Add -D_LONGLONG.
+	(CPP_SPECS): Remove -D_LONGLONG.
+
+Wed Oct 16 03:34:42 1996  Torbjorn Granlund  <tege@nada.kth.se>
+
+	* i386.md (parallel inc/dec and branch-if-zero/nonzero): New patterns.
+
+Tue Oct 15 22:28:11 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* mips.h (enum mips_abi_type): Add ABI_EABI.
+	(CPP_SPEC): Define __mips_soft_float if -msoft-float, and
+	__mips_eabi if -mabi=eabi.
+	(INITIAL_ELIMINATION_OFFSET, CUMULATIVE_ARGS,
+	GO_IF_LEGITIMATE_ADDRESS, CONSTANT_ADDRESS_P, LEGITIMATE_CONSTANT,
+	LEGITIMIZE_ADDRESS): Add support for MIPS EABI.
+	* mips/abi64.h (STACK_BOUNDARY, MIPS_STACK_ALIGN,
+	FUNCTION_ARG_PADDING, RETURN_IN_MEMORY, SETUP_INCOMING_VARARGS):
+	Add support for MIPS EABI.
+	(FUNCTION_ARG_PASS_BY_REFERENCE): Define.
+	(FUNCTION_ARG_CALLEE_COPIES): Define.
+	* mips.c (mips_const_double_ok, function_arg_advance,
+	function_arg, function_arg_partial_nregs, override_options,
+	compute_frame_size): Add support for MIPS EABI.
+	(function_arg_pass_by_reference): New function.
+	* ginclude/va-mips.h: Add support for MIPS EABI.
+
+Tue Oct 15 19:10:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* toplev.c (rest_of_type_compilation): Don't write out
+	DWARF for function-scope types yet.
+	(compile_file): Do send vars with no RTL to the DWARF code.
+
+Tue Oct 15 17:54:43 1996  Doug Evans  <dje@cygnus.com>
+
+	* loop.c (strength_reduce): Avoid taking PATTERN of a label.
+
+Tue Oct 15 16:52:33 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* mips/iris6.h: (SUBTARGET_CPP_SIZE_SPEC): Define.
+	(SUBTARGET_CPP_SPEC): Remove definitions of __SIZE_TYPE__ and
+	__PTRDIFF_TYPE__, now in SUBTARGET_CPP_SIZE_SPEC.
+
+Tue Oct 15 11:19:17 1996  Lee Iverson  <leei@Canada.AI.SRI.COM>
+
+	* mips.h (CPP_SPEC): Restore -D_LANGUAGE_C for Objective C.
+
+Mon Oct 14 18:03:35 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (gen_decl_die): Do generate dies for classes with -g1.
+	(dwarfout_file_scope_decl): Likewise.
+
+Mon Oct 14 16:31:44 1996  Joern Rennecke <amylaar@cygnus.co.uk>
+
+	* jump.c (jump_optimize): Check for if (...) { x = a; goto l; } x = b;
+
+Mon Oct 14 14:19:49 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (modified_type_die): Don't bother with AT_address_class.
+	(add_data_member_location_attribute): Handle getting a binfo.
+	(add_location_or_const_value_attribute): Handle a decl with no RTL.
+	(add_pure_or_virtual_attribute): Add AT_vtable_elem_location.
+	(add_name_and_src_coords_attributes): Only use DECL_ASSEMBLER_NAME 
+	for staticp things.
+	(gen_subprogram_die): Set up AT_inline for abstract decls.
+	(gen_inheritance_die): New fn.
+	(gen_member_die): Also emit info for base classes.
+
+Sat Oct 12 00:07:00 1996  Doug Evans  <dje@cygnus.com>
+
+	* fold-const.c (make_range): Handle NULL operand 0
+	(like in BIND_EXPRs).
+
+Fri Oct 11 15:42:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* toplev.c (rest_of_compilation): If we did a
+ 	save_for_inline_copying, reset DECL_ABSTRACT_ORIGIN for the
+ 	function when we're done.
+
+	* toplev.c (main): DWARF works with C++ now.
+
+	* dwarf2out.c (gen_subprogram_die): Disable MIPS_AT_has_inline
+ 	support for now.
+
+Fri Oct 11 14:31:10 1996  Torbjorn Granlund  <tege@nada.kth.se>
+
+	* dwarfout.c: (output_bound_representation): Fix typo in prototype.
+
+Fri Oct 11 12:19:21 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* mips.h (MIPS_AS_ASM_SPEC): Define.
+	(SUBARGET_MIPS_AS_ASM_SPEC): Define.
+	(GAS_ASM_SPEC): Define.
+	(TARGET_ASM_SPEC): Define.
+	(SUBTARGET_ASM_OPTIMIZING_SPEC): Define.
+	(SUBTARGET_ASM_DEBUGGING_SPEC): Define.
+	(SUBTARGET_ASM_SPEC): Define.
+	(ASM_SPEC): Rewrite to use above specs.
+	(SUBTARGET_CPP_SIZE_SPEC): Define.
+	(SUBTARGET_CPP_SPEC): Define.
+	(CPP_SPEC): Use above specs.  Don't define _LANGUAGE_C if C++ or
+	Objective C.
+	(EXTRA_SPECS): Define.
+	(SUBTARGET_EXTRA_SPECS): Define.
+	* mips/dec-bsd.h (ASM_SPEC): Don't define.
+	(CPP_SPEC): Don't define.
+	* mips/dec-osf1.h (CPP_SPEC): Don't define.
+	(SUBTARGET_CPP_SIZE_SPEC): Define.
+	* mips/elf64.h (CPP_SPEC): Don't define.
+	(SUBTARGET_CPP_SPEC): Define.
+	* mips/gnu.h (TARGET_DEFAULT): Define.
+	(ASM_SPEC): Don't define.
+	* mips/iris3.h (CPP_SPEC): Don't define.
+	(SUBTARGET_CPP_SPEC): Define.
+	* mips/iris4loser.h (ASM_SPEC): Don't define.
+	(SUBTARGET_MIPS_AS_ASM_SPEC): Define.
+	(SUBTARGET_ASM_OPTIMIZING_SPEC): Define.
+	* mips/iris5.h (CPP_SPEC): Don't define.
+	(SUBTARGET_CPP_SPEC): Define.
+	* mips/iris6.h (CPP_SPEC): Don't define.
+	(SUBTARGET_CPP_SPEC): Define.
+	(ASM_SPEC): Don't define.
+	(SUBTARGET_ASM_SPEC): Define.
+	(SUBARGET_MIPS_AS_ASM_SPEC): Define.
+	(SUBTARGET_ASM_DEBUGGING_SPEC): Define.
+	* mips/netbsd.h (ASM_SPEC): Don't define.
+	(CPP_SPEC): Don't define.
+	(SUBTARGET_CPP_SPEC): Define.
+	* mips/osfrose.h (ASM_SPEC, ASM_FINAL_SPEC): Don't define.
+	(CPP_SPEC): Don't define.
+	(SUBTARGET_CPP_SIZE_SPEC): Define.
+	(SUBTARGET_CPP_SPEC): Define.
+	* mips/sni-svr4.h (CPP_SPEC): Don't define.
+	(SUBTARGET_CPP_SIZE_SPEC): Define.
+
+Thu Oct 10 17:58:49 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* mips/iris6.h (ASM_OUTPUT_SECTION_NAME): Define.
+	(DWARF_OFFSET_SIZE): Define.
+
+	* dwarf2out.c (most everywhere): Support SGI/MIPS -mabi=64 by fixing
+ 	code which assumed that pointers are 4 bytes long, parameterizing
+ 	many sizes on DWARF_OFFSET_SIZE and using DELTA instead of DELTA4,
+ 	DATA instead of DATA4, FORM_ref instead of FORM_ref4. (DWARF_ROUND,
+ 	UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_WORD_ASM_OP,
+ 	ASM_OUTPUT_DWARF_DELTA, ASM_OUTPUT_DWARF_DATA, DW_FORM_data,
+ 	DW_FORM_ref): New macros.
+	(gen_variable_die): Only equate_decl_number_to_die if
+	decl is TREE_STATIC.
+	(get_AT): Fix thinko.
+
+	* dwarf2out.c (constant_size): New fn.
+	(size_of_die): Use it instead of assuming 4 bytes;
+ 	usually we only need one.
+	(output_value_format, output_die): Likewise.
+	(build_abbrev_table): We need a new abbrev if the size
+ 	of the constant differs.
+	(dwarf_attr_name): Add new SGI/MIPS extensions.
+	(gen_subprogram_die): Support DW_AT_MIPS_has_inlines.
+	(gen_inlined_subroutine_die): Likewise.
+
+Thu Oct 10 16:38:58 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* mips.md (mov[sd]fcc): Use register_operand, not reg_or_0_operand,
+	for source predicates.
+
+Thu Oct 10 15:19:38 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.md (floatsidf2_load): For large stack frames, do not
+	generate an illegal memory reference.
+	(movdi, movdf define_splits): Fix code so that it works for either
+	big or little endian hosts generating code for either big or
+	little endian targets.
+
+	(from Jim Wilson)
+	* rs6000.c (rs6000_save_toc_p): Delete global variable.
+	(rs6000_{save,restore}_machine_status): Do not save/restore it.
+	(rs6000_init_expanders): Do not initialize it.
+	(rs6000_stack_info): Always create TOC save space.
+
+	* rs6000.md (NT indirect call insns): Do not set
+	rs6000_save_toc_p.
+
+	* rs6000.h (rs6000_save_toc_p): Delete declaration.
+
+Wed Oct  9 18:06:54 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* mips.h (EMPTY_FIELD_BOUNDARY): Define as 32.
+	* mips/abi64.h (EMPTY_FIELD_BOUNDARY): Don't define.
+
+	* mips/abi64.h (TARGET_DEFAULT, TARGET_LONG64, CPP_PREDEFINES,
+	CPP_SPEC): Move from here...
+	* mips/iris6.h: ...to here.
+
+Wed Oct  9 16:43:51 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* configure (i[3456]86-dg-dgux): Use install-headers-cpio.
+
+	* expr.c (store_constructor): Delete unnecessary increment.
+
+Wed Oct  9 16:29:22 1996  Gavin Koch <gavin@cetus.cygnus.com>
+
+	* cccp.c (do_include): Treat ENOTDIR like ENOENT when an open fails.
+
+Wed Oct  9 16:26:57 1996  Paul Eggert  <eggert@twinsun.com>
+
+	* gcc.c (default_compilers): -ansi no longer implies -$ to cpp.
+	* c-lex.c (yylex): Treat `$' just like `_', except issue a
+	diagnostic if !dollars_in_ident or if pedantic.
+	* c-decl.c (dollars_in_ident): DOLLARS_IN_IDENTIFIERS is now Boolean.
+	(c_decode_option): -fdollars-in-identifiers is now independent
+	of -ansi, of -traditional, and of DOLLARS_IN_IDENTIFIERS.
+	* cexp.y (initialize_random_junk): Ignore DOLLARS_IN_IDENTIFIERS.
+	* cccp.c (dollars_in_ident): Remove; replaced by is_idchar['$'].
+	(main): Initialize is_idchar and is_idstart directly when given -$.
+	Ignore DOLLARS_IN_IDENTIFIERS.
+	(rescan): Diagnose $ in identifier if pedantic.
+	(initialize_char_syntax): Assume $ is allowed in identifier;
+	`main' will change this if -$ is given.
+	* cpplib.h (DOLLARS_IN_IDENTIFIERS): Remove.
+	* cpplib.c (cpp_options_init): Ignore DOLLARS_IN_IDENTIFIERS.
+	(parse_name): Diagnose $ in identifier if pedantic.
+	(cpp_handle_options): -traditional no longer messes with
+	dollars_in_ident.
+	* i386/dgux.h, m68k/apollo68.h (DOLLARS_IN_IDENTIFIERS): Remove.
+	* m88k.h, mips.h, nextstep.h, pa.h (DOLLARS_IN_IDENTIFIERS): Remove.
+	* vax/ultrix.h, vax/vms.h (DOLLARS_IN_IDENTIFIERS): Remove.
+	* convex.h (OVERRIDE_OPTIONS): Don't need to set
+	dollars_in_ident any more, since -ansi doesn't change it.
+
+Wed Oct  9 07:35:47 1996  Doug Evans  <dje@cygnus.com>
+
+	* Allow prefix attributes in more places.
+	* c-parse.in: Update number of shift/reduce conflicts.
+	({typed_declspecs,reserved_declspecs,declmods}_no_prefix_attr): New.
+	(current_declspecs): Initialize to NULL_TREE.
+	(fndef): Pass current_declspecs, not $1, to start_function.
+	(old_style_parm_decls): Renamed from xdecls.
+	(datadecl, declmods): Add references to new rules.
+	(setspecs): Call split_specs_attrs.
+	(absdcl1): Remove case with setattrs.
+	* c-common.c (split_specs_attrs): New function.
+
+Wed Oct  9 05:48:43 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* sdbout.c: Include defaults.h.
+	* Makefile.in (sdbout.o): Make dependency list match included files.
+
+	* fold-const.c (range_test): Function deleted.
+	(range_binop, make_range, build_range_check): New functions.
+	(merge_ranges, fold_range_test): Likewise.
+	(fold_truthop): No longer call range_test.
+	(fold, case TRUTH_{AND,OR}{,IF}_EXPR): Call fold_range_test.
+
+Tue Oct  8 22:03:32 1996  Torbjorn Granlund  <tege@nada.kth.se>
+
+	* configure: Set cpu_type for pyramid.
+
+Tue Oct  8 21:54:04 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* final.c (final_start_function): Call dwarfout_begin_prologue.
+
+	* dwarf2out.c (pubname_*, arange_*): New data for .debug_pubnames
+ 	and .debug_aranges sections.
+	(add_pubname): New fn.
+	(size_of_pubnames): Reimplement.
+	(output_pubnames): Likewise.
+	(add_arange): New fn.
+	(size_of_aranges): Include function sections.
+	(output_aranges): Likewise.
+	(gen_variable_die): Call add_pubname.
+	(add_name_and_src_coords_attributes): Use DECL_ASSEMBLER_NAME for now.
+	(decl_start_label): Renamed from function_start_label.
+	(gen_subprogram_die): If weak or one_only, use a local label for 
+	AT_low_pc.  Call add_pubname and add_arange.
+	(dwarfout_begin_prologue): New fn.  Start up FDE here. 
+	(dwarfout_begin_function): Not here.
+	(get_AT): Split out.  Look in specification and abstract_origin DIEs.
+	(get_AT_low_pc, get_AT_string, get_AT_flag, get_AT_unsigned, 
+	get_AT_hi_pc): Use it.
+	(dwarfout_finish): Variables can produce pubnames, too.
+
+Tue Oct  8 19:35:40 1996  Torbjorn Granlund  <tege@nada.kth.se>
+
+	* m88k/dgux.h (CPP_SPEC): Avoid newline in the string.
+
+	* final.c (final): Update insn_current_address before calling
+	final_scan_insn.
+
+Tue Oct  8 17:52:02 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* unroll.c (unroll_loops): Set local_regno only if set_dominates_use
+	returns true.
+	(set_dominates_use): New function.
+
+Tue Oct  8 16:01:37 1996  Doug Evans  <dje@cygnus.com>
+
+	* c-typeck.c (decl_constant_value): Delete test for ! TREE_PUBLIC.
+
+Tue Oct  8 10:36:44 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.c (hppa_legitimize_address): Remove test code accidentally left
+	in during last change.
+
+Mon Oct  7 19:55:02 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* sched.c (schedule_block): Before scheduling, add code to make all
+	call used regs that are not fixed or global live when we see a
+	CALL_INSN.  During scheduling, change existing code to use same test.
+
+	* varasm.c (bss_section): Delete unused parameters.
+
+Mon Oct  7 16:24:21 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2.h: Add new SGI/MIPS attributes.
+
+	* dwarf2out.c (*_separate_line_info_*): Parallel line number
+ 	information for functions defined in sections other than .text.
+	(size_of_line_info): Support it.
+	(output_line_info): Likewise.
+	(dwarfout_line): Likewise.
+	(gen_compile_unit_die): Don't add high/low_pc or stmt_list
+ 	attributes here.
+	(dwarfout_finish): Add them here if appropriate.
+	(remove_AT): free removed attribute properly.
+	(gen_type_die): Don't assume a nested type is complete.
+	(dwarfout_finish): Don't emit line info if it would be empty.
+
+	* dwarfout.c (output_block): Don't emit a DIE for a body block.
+	(output_decls_for_scope): Don't increment next_block_number for the
+ 	outer block.
+	(output_decl): Start from the outer block, not
+ 	the first inner block since there can be more than one in C++.
+	(type_tag): Handle C++ TYPE_NAME.
+	(output_type): Fix handling of TYPE_METHODS.
+	(output_decl): Don't output a DIE for artificial typedefs.
+
+Mon Oct  7 15:47:29 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.md (movdi define_splits): Fix previous change to work
+	on both little and big endian hosts.
+
+Sun Oct  6 16:52:34 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.h (combinable_fsub): Don't return without a value.
+
+Sun Oct  6 14:05:39 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.md (mov{df,di} define_splits): Use split_double to
+	properly split CONST_DOUBLEs.
+	(movdi): Likewise.
+
+Sat Oct  5 08:43:14 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* i386/cygwin32.h (LIB_SPEC): Add support for -mwindows.
+	Always pass -lkernel32.
+	(LIBGCC_SPEC): Don't delete.
+	(STARTFILE_SPEC): Remove always-true conditionalization.
+	(LONG_DOUBLE_TYPE_SIZE): Use default.
+
+Fri Oct  4 17:22:53 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* toplev.c (rest_of_type_compilation): Don't emit DWARF for member
+ 	types of a type we haven't emitted yet.
+	(compile_file): Still emit DWARF for pending tagged types.
+
+	* final.c (final_scan_insn): Do emit DWARF labels for level 1 blocks.
+
+	* dwarf2out.c (gen_subprogram_die): Start from the outer block, not
+ 	the first inner block since there can be more than one in C++.
+	(gen_lexical_block_die): Keep track of the block depth.
+	(gen_block_die): Don't emit a DIE for a body block.
+	(gen_inlined_subroutine_die): Don't emit anything for an
+	abstract instance.
+	(decls_for_scope): Don't increment next_block_number for the
+ 	outer block.
+
+Fri Oct  4 15:27:55 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* sh.h (PRESERVE_DEATH_INFO_REGNO_P): Define.
+
+	* sh.c (sfunc_uses_reg): New function.
+	(noncall_uses_reg, machine_dependent_reorg, final_prescan_insn):
+	Handle special functions like function calls for purposes of relaxing.
+	(noncall_uses_reg): Added some missing cases of registers
+	being used in non-call instructions.
+
+Fri Oct  4 10:51:40 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c: Tear out backchaining brain damage.
+	(remove_AT, remove_children): New functions.
+	(modified_type_die): Call gen_type_die instead of backchaining.
+	(gen_subprogram_die): Don't generate a new specification DIE for 
+	member functions defined in the class; use the declaration DIE instead.
+	(gen_struct_or_union_type_die): Support DW_AT_declaration.
+	(gen_type_die): Don't set TREE_ASM_WRITTEN on incomplete structs.
+	(gen_decl_die): Revert previous change; it's much simpler to emit 
+	the class from rest_of_type_compilation.
+
+Fri Oct  4 09:54:21 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* Make sure we have enough registers for the insns we recognize.
+	* i386.h (flag_omit_frame_pointer, outer_function_chain): Declare.
+	(current_function_calls_alloca): Likewise
+	(rtx_equal_function_value_matters): Likewise
+	(N_REGS_USED, N_ALLOCATABLE_REGISTERS): Define.
+
+	* i386.md (adddi3_1, subdi3_1): Insns renamed from adddi3 and subdi3;
+	added missing earlyclobbers.
+	(adddi3_1): Removed duplicates from commutativity.
+	(adddi3, subdi3): New define_expands.
+	(movsf, movsf_mem, movsf_normal, movdf, movdf_mem , movdf_mem+1): Take
+	number of used vs. available registers into account.
+	(movxf, movxf_mem, movxf_mem+1, addsidi3_1, addsidi3_2): Likewise.
+	(adddi3_1, subsidi3, subdi3_1): Likewise.
+	(addsidi3_1, addsidi3_2, subsidi3): Need no generate function.
+
+	* i386.c (asm_output_function_prefix): Don't use
+	ASM_DECLARE_FUNCTION_NAME if it is not defined.
+
+Fri Oct  4 07:01:55 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stor-layout.c (layout_decl): Don't turn off DECL_BIT_FIELD
+	if DECL's alignment is less than its type.
+
+Thu Oct  3 19:42:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* toplev.c (rest_of_type_compilation): Also do this for DWARF.
+	(compile_file): Don't try to write out DWARF for vars with no RTL.
+
+Thu Oct  3 18:31:28 1996  Doug Evans  <dje@cygnus.com>
+
+	* ginclude/{stdarg.h,varargs.h}: Use #include "", not #include <>.
+
+Wed Oct  2 17:29:53 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* fixincludes: Add a hack to the big sed script to work around a
+	bug in the sed implementation on HP/UX 10.20.
+
+Wed Oct  2 16:53:56 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (modified_type_die): Don't generate redundant DIEs.
+	(gen_{array,pointer,reference,ptr_to_mbr}_type_die): Likewise.
+	(gen_{subroutine,string,set}_type_die): Likewise.
+
+	* dwarf2out.c: Undo text_end_label, add_src_coords changes.
+	(addr_const_to_string): Fix typos.
+	(decl_class_context): New fn.
+	(get_AT_unsigned): New fn.
+	(gen_subprogram_die): Only emit src coords info for a specification
+	if they changed.
+	(gen_variable_die): Support DW_AT_declaration and DW_AT_specification.
+	(gen_decl_die): Avoid generating redundant DIEs for member functions
+	and variables.
+
+Wed Oct  2 11:22:50 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.h (EXTRA_CONSTRAINT): Loosen conditions for match of
+	'Q' and 'T' while reload is running.
+	* pa.c (hppa_legitimize_address): Rework to generate more
+	indexed and scaled indexed addressing.
+	* pa.md (scaled indexed store): Add define_splits to undo
+	pessimizations created by hppa_legitimize_address for integer
+	stores.
+
+	* pa.c (remove_useless_addtr_insns): New function.
+	(pa_reorg): Delete code to remove useless add,tr insns.
+	Instead call remove_useless_addtr_insns.
+	(output_function_prologue): Call remove_useless_addtr_insns
+	to catch any add,tr insns created by reorg.
+
+	* pa.c (secondary_reload_class): Remove duplicate/useless code.
+
+	* pa.h (PARSE_LDD_OUTPUT): Handle output from hpux10.20 "chatr".
+
+Tue Oct  1 17:23:32 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dwarf2out.c (text_end_label): New static.
+	(size_of_line_info): The final entry is smaller.
+	(output_aranges): Use TEXT_SECTION instead of TEXT_BEGIN_LABEL and
+ 	text_end_label instead of TEXT_END_LABEL.
+	(gen_compile_unit_die): Likewise.
+	(output_line_info): Likewise.  Use a fixed advance for the last entry.
+	(dwarfout_init): Don't output starting labels.
+	(dwarfout_finish): Set up text_end_label.  Don't output ending labels.
+
+	(add_pure_or_virtual_attribute): Don't say pure virtual for now.
+	(type_tag): Handle C++ TYPE_NAME.
+	(gen_formal_parameter_die): Support DW_AT_artificial.
+	(gen_formal_types_die): Do emit the type for 'this'.
+	(gen_member_die): Fix handling of TYPE_METHODS.
+	(gen_decl_die): Do output a DIE for member function declarations.
+	Don't output a DIE for artificial typedefs.
+
+	(add_member_attribute): Remove, not in DWARF-II.
+	(gen_array_type_die): Remove ref to add_member_attribute.
+	(gen_set_type_die, gen_entry_point_die, gen_enumeration_type_die,
+ 	gen_subprogram_die, gen_variable_die, gen_field_die,
+ 	gen_pointer_type_die, gen_reference_type_die, gen_ptr_to_mbr_type_die,
+ 	gen_string_type_die, gen_struct_or_union_type_die,
+ 	gen_subroutine_type_die, gen_typedef_die): Likewise.
+
+	(get_AT_flag): New fn.
+	(add_src_coords_attributes): Split out...
+	(add_name_and_src_coords_attributes): From here.
+	(gen_subprogram_die): Support DW_AT_declaration and 
+	DW_AT_specification. 
+
+	(gen_compile_unit_die): Don't emit full pathname for source file; 
+	comment claimed that SGI required it, but they don't emit it either.
+	Append -g to producer rather than replacing it.
+
+Tue Oct  1 14:19:23 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* gcc.c (used_arg): When call xmalloc for mswitches, pass 1 if
+	n_switches is zero.
+
+Mon Sep 30 17:46:26 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* sh.c (gen_shl_and, gen_shl_sext): Use gen_lowpart to
+	generate rtx in the appropriate mode for zero/sign-extension.
+	Don't generate a zero bit shift.
+	(gen_shl_sext) Directly use gen_ashift instead of gen_ashrsi3.
+
+Mon Sep 30 17:17:56 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* fixinc.svr4: In math.h, redefine exception to __math_exception
+	for C++, to avoid conflict with <exception>.
+	* fixincludes: Likewise.
+	Fix check for class in math.h to not match fp_class.
+
+Mon Sep 30 17:15:19 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* iris6.h (ASM_SPEC): Add -w.
+	(STARTFILE_SPEC): Add mips3 to n32 pathnames.
+	Add -L/usr/lib32/mips for n32 cases.
+	(ENDFILE_SPEC): Add mips3 to n32 pathnames.
+
+Mon Sep 30 13:20:31 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* genopinit.c (gen_insn): Look through the modes in reverse order,
+	to avoid stopping early on CC when EXTRA_CC_MODES is used.
+
+	* fixincludes: Add extern "C" to <sys/mman.h> on HP/UX.
+
+Sun Sep 29 12:39:18 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* c-typeck.c (pointer_diff): Do not do default conversions when
+	doing the minus expression, in case restype is a short type.
+
+Sun Sep 29 11:22:10 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.c (build_complex): Add new argument, TYPE.
+	* tree.h (build_complex): Likewise.
+	* c-lex.c (yylex): Add new arg, TYPE, to call to build_complex.
+	* fold-const.c (const_binop): Likewise.
+	(fold, case CONJ_EXPR, COMPLEX_EXPR): Likewise.
+	* varasm.c (copy_constant, case COMPLEX_CST): Likewise.
+	* expr.c (expand_expr, case COMPONENT_REF): Don't try to directly
+	load a complex.
+	* recog.c (register_operand): Don't reject subreg of complex mode.
+	* emit-rtl.c (mark_user_reg): New function.
+	* function.c (assign_parms): Use it.
+	* stmt.c (expand_decl): Likewise, and simplify code.
+
+	* tree.c (contains_placeholder): Return 1 for PLACEHOLDER_EXPR.
+
+	* expr.c (store_expr): memset/bzero gets ptr_mode, not Pmode.
+
+	* stmt.c (expand_asm_operands): Fix errors in previous patches.
+
+	* x-linux: Simplify, but ensure headers aren't changed.
+
+	* getpwd.c: No longer include direct.h for _WIN32.
+
+	* configure (i[3456]86-*-isc*): Remove bogus echo.
+	(m68k-apple-aux*): a-ux.h renamed from aux.h.
+	(CC): Escape "$" char in "no-symlink" case for bash/cygwin32 bug.
+
+	* Makefile.in (installdirs): Renamed from install-dir.
+	Create $(prefix) and $(exec_prefix) if doesn't exist.
+	(install-float): Reflect new name for installdirs.
+	(install-{common,info,man,libgcc,multilib,libobjc}): Likewise.
+	(install-{include-dir,assert-h,collect2}): Likewise.
+
+	* reload1.c (gen_reload): Handle SUBREG in PLUS specially too.
+	Change calls to emit_move_insn to recursive calls.
+
+	* stmt.c (fixup_gotos): When running undefined labels, if no cleanup
+	actions for this block, don't clear BEFORE_JUMP.
+
+Fri Sep 27 13:48:21 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* c-decl.c (init_decl_processing): Create short int types before
+	creating size_t in case a machine description needs to use
+	unsigned short for size_t.
+
+Fri Sep 27 12:28:54 1996  Stan Cox  <coxs@dg-rtp.dg.com>
+
+        * gcc.c (do_spec_1): Allow -A in %[Spec].
+	
+	* i386.h (CPP_CPU_SPEC): New. Added for defining the submodel.
+
+	* i386.c (asm_output_function_prefix, function_prologue,
+	ix86_expand_prologue): Make the routine that sets the GOT (when pic
+	is enabled) a function, to assist debugging.
+
+	* i386.md (gen_prologue_get_pc): Call the function created above.
+	(divdf3): Added. 
+	
+	* i386/dgux.h (CPP_PREDEFINES, CPP_SPEC): Reference CPP_CPU_SPEC.
+	Use svr4 assembler directive .backalign instead of .align.  
+	(align to x bytes if it takes no more than y bytes to do so.)
+
+	* i386/{aix386ng.h,dgux.h} (CPP_SPEC): Use %[cpp_cpu].
+	* i386/{freebsd-elf,gas,isc,linux-aout}.h: Likewise.
+	* i386/{linux-oldld,linux,osfelf,osfrose,sco,sco4}.h: Likewise.
+	* i386/{sco4dbx,sco5,sol2,sysv3}.h: Likewise.
+
+Thu Sep 26 17:58:34 1996  Torbjorn Granlund  <tege@matematik.su.se>
+
+	* m68k.md (mulsidi3 matcher): Change predicate const_int_operand
+	to const_sint32_operand.  Get rid of bogus range condition.
+
+Thu Sep 26 17:12:00 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* Makefile.in (stmp-int-hdrs): Don't cd to srcdir before copying
+	header files to objdir.
+
+Wed Sep 25 21:22:57 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* h8300.h (FIRST_PSEUDO_REGISTER): Bump up by one.
+	(ARG_POINTER_REGNUM): Likewise.
+	(FIXED_REGISTERS): Add entry for MAC register.
+	(CALL_USED_REGISTERS< REG_ALLOC_ORDER): Likewise.
+	(HARD_REGNO_NREGS): Handle MAC register.
+	(HARD_REGNO_MODE_OK< REGNO_OK_FOR_BASE_P): LIkewise.
+	(REGISTER_NAMES): Likewise.
+	(enum reg_class): New MAC_REGS register class.
+	(REG_CLASS_CONTENTS, REGNO_REG_CLASS): Corresponding changes.
+	(REG_CLASS_FROM_LETTER): LIkewise.
+	(REGISTER_MOVE_COST): Make copies to/from the MAC register
+	expenseive.
+	(CONDITIONAL_REGISTER_USAGE): Define.
+	* h8300.md (movsi_h8300hs): Renamed from movsi_h8300h.
+	Handle moves to/from the MAC register.
+	(mac): Two new patterns to use the mac instruction.
+
+	* h8300.c (notice_update_cc): Fix CC_SET case.
+	(restore_compare_p): Remove unused function.
+	* h8300.md: Handle "set" vs "set_zn_c0" correctly.
+	(bCC patterns): No longer need to call restore_compare_p.
+
+	* h8300.c (get_shift_alg): Fix HImode ASHIFTRT by 13 or 14 bits.
+
+Wed Sep 25 18:52:19 1996  Joern Rennecke <amylaar@cygnus.co.uk>	
+
+	* sh.md (insv): New pattern.
+
+Wed Sep 25 16:47:26 1996  Doug Evans  <dje@seba.cygnus.com>
+
+	* sparc/t-sunos41 (MULTILIB_{OPTIONS,DIRNAMES,MATCHES}): Create
+	multilib versions of -fpic and -fPIC.
+	(TARGET_LIBGCC2_CFLAGS): Comment out.
+
+	* sparc.c (print_operand): Handle new codes H/L.
+	* sparc.md (lo_sum_di_sp32): Add little endian support.
+	(adddi3_sp32,subdi3_sp32,mulsidi3_sp32,const_mulsidi3): Likewise.
+	(umulsidi3_sp32,const_umulsidi3,smacdi,umacdi,anddi3_sp32): Likewise.
+	(iordi3_sp32,xordi3_sp32,negdi2_sp32): Likewise.
+
+Wed Sep 25 15:32:35 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* expmed.c (store_bit_field): Don't make flag_force_mem disable insv
+	for memory operands.
+	
+	* function.c (instantiate_decl): Always store addr back into x.
+
+Tue Sep 24 19:37:00 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* reload.c (push_secondary_reload): Do strip paradoxical SUBREG
+	even if reload_class is CLASS_CANNOT_CHANGE_SIZE.  Change reload_mode
+	to mode in SECONDARY_MEMORY_NEEDED and get_secondary_mem calls.
+
+	* reload1.c (emit_reload_insns): For output part of RELOAD_OTHER,
+	emit after RELOAD_FOR_OUTPUT, in reverse order of reload number,
+	but not separately.
+
+Tue Sep 24 18:13:07 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* expr.c (emit_group_load): Allow target to be smaller than source.
+
+Tue Sep 24 17:40:39 1996  Doug Evans  <dje@cygnus.com>
+
+	* m68k/a-ux.h: Renamed from aux.h because of MSDOS.
+
+Tue Sep 24 08:33:53 1996  David S. Miller  (davem@caip.rutgers.edu)
+
+	* tree.c (copy_node): Fix error in last change.
+
+Tue Sep 24 08:29:03 1996  James G. Smith  <jsmith@cygnus.co.uk>
+
+	* gcc.c (used_arg): Fix multilib_matches parsing to not corrupt
+	entry parameter.
+
+Tue Sep 24 08:22:18 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* loop.c (get_condition): Use rtx_equal_p to compare rtx.
+
+Tue Sep 24 08:14:01 1996  Christian Iseli  <Christian.Iseli@lslsun.epfl.ch>
+
+	* integrate.c (expand_inline_function): Avoid creating paradoxical
+	subreg wider than BITS_PER_WORD as inlined function result.
+
+Tue Sep 24 08:00:15 1996  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (struct directive, directive_table, handle_directive):
+	pass_thru now 1 for #define and 2 for #pragma.
+	(handle_directive): When deciding whether to suppress comment at end
+	of directive, ignore tabs and spaces after comment.  Remove redundant
+	limit test.  With -dD -C, copy comment when isolating definition.
+	(skip_to_end_of_comment): With -C, don't copy newline at end
+	of C++ comment.
+
+	* fixinc.ptx, fixinc.svr4, fixincludes: Insert newlines just before
+	end of 'sed' command strings if last 'sed' command is 'a' or 'i'.
+
+Tue Sep 24 07:28:58 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* toplev.c (PREFERRED_DEBUGGING_TYPE): If no debugging formats are
+	supported, set to NO_DEBUG.
+	(main): Don't do setting of PREFERRED_DEBUGGING_TYPE here.
+
+Mon Sep 23 22:45:15 1996  Sean McNeil  <sean@mcneil.com>
+
+	* rs6000/vxppc.h, sparc/vxsim.h: New files.
+	* configure (powerpc-*-vxworks*, sparc-*-vxsim*): New targets.
+	* objc/objc.h (BOOL): Define BOOL as int for VxWorks.
+
+Mon Sep 23 21:23:27 1996  Klaus K"ampf  (kkaempf@progis.de)
+
+	* explow.c (promote_mode, case REFERENCE_TYPE): New case.
+
+Mon Sep 23 21:15:43 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* c-decl.c (finish_struct): Check PCC_BITFIELD_TYPE_MATTERS value.
+
+	* dbxout.c (dbxout_symbol): Fix forgotten case in last change:
+	check DECL_ARTIFICIAL also when using the short cut way.
+
+Mon Sep 23 15:55:24 1996  David S. Miller  (davem@caip.rutgers.edu)
+
+	* tree.c (copy_node): Abort if don't know size of node.
+
+	* tree.c (build1): Clean up initialization of OBSTACK.
+
+Mon Sep 23 15:35:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* Makefile.in (stmp-multilib): Depend on $(LANG_LIB2FUNCS).
+
+	* dbxout.c (dbxout_function): Don't check DECL_SECTION_NAME before
+	calling dbxout_function_end.
+
+Mon Sep 23 14:41:12 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* combine.c (can_combine_p): Even if SMALL_REGISTER_CLASSES,
+	know lifetime not extended if all_adjacent set.
+
+	* stmt.c (expand_asm_operands): Handle '+' constraint.
+	* cse.c (fold_rtx): Fold inside ASM_OPERANDS.
+
+	* expr.c (expand_increment): If postincrement for MEM can't use add
+	directly, load address in reg and enqueue increment and store of reg.
+
+	* loop.c (check_dbra_loop): Don't assume label must be second part of
+	if_then_else in condjump.
+
+        * jump.c (jump_optimize): In no-nop move deletion, don't
+	test PRESERVE_DEATH_INFO_REGNO_P; instead test if optimization is
+	performed.
+	Check for REG_UNUSED note on to-be deleted insn before searching for
+	preceding instruction to delete note from.
+	If PRESERVE_DEATH_INFO_REGNO_P is true for SREG, replace INSN with USE.
+
+	* reload1.c (reload): Initialize the previous_offset fields
+	in reg_eliminate before calling setup_save_areas.
+
+	* reload1.c (emit_reload_insns): Declare and set this_reload_insn.
+
+	* expr.c (var_rtx): New function.
+	(expand_expr, case COND_EXPR): Also use target if same as singleton.
+
+Mon Sep 23 14:22:34 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* recog.c (constrain_operands): Don't test clobbered constraints.
+
+	* reload1.c (emit_reload_insns): For output part of RELOAD_OTHER,
+	put in front of anything previous for that output, but not separately.
+
+Sun Sep 22 21:06:46 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-common.c (decl_attribtes, case A_SECTION): Allow for static
+	local variable.
+
+Sun Sep 22 11:30:27 1996  Christian Iseli  (christian.iseli@di.epfl.ch)
+
+	* expr.c (convert_move): Replace explicit checks for FP extend ops
+	with use of can_extend_p.
+	Add missing tests for FP trunc operations.
+
+Sun Sep 22 11:20:02 1996  Pat Rankin  <rankin@eql.caltech.edu>
+
+	* dwarfout.c (DWARF_VERSION): Define as 1 if not already defined.
+	* dwarf2out.c (DWARF_VERSION): Likewise.
+
+Sun Sep 22 11:12:20 1996  Joern Rennecke <amylaar@cygnus.co.uk>
+
+        * c-decl.c (pushdecl): Check new declaration actually conflicts before
+	warning about implicit external vs. static declarations.
+
+	* loop.c (combine_givs): Improve combining DEST_REG giv with
+	its only use.
+
+Sun Sep 22 10:50:03 1996  Scott Christley <scottc@net-community.com>
+
+	* Create consistent mechanism for memory allocation and release
+	so that garbage collection routines can be easily subsititued
+	for the ANSI standard malloc, realloc, free, etc.
+	* objc/archive.c: Replace use of __objc_xmalloc and free 
+	with objc_malloc and objc_free.
+	* objc/hash.c: Replace use of __objc_xcalloc and free
+	with objc_calloc and objc_free.
+	* objc/init.c: Replace use of free with objc_free.
+	* objc/misc.c (objc_malloc): Renamed from __objc_xmalloc.
+	(objc_realloc): Renamed from __objc_realloc.
+	(objc_atomic_malloc): New function.
+	(objc_valloc): New function.
+	(objc_calloc): Renamed from __objc_calloc.
+	(objc_free): New function.
+	* objc/objc-api.h (_objc_malloc): New function pointer.
+	(_objc_atomic_malloc, _objc_valloc): Likewise.
+	(_objc_realloc, _objc_calloc, _objc_free): Likewise
+	* objc/objc-list.h: Replace use of __obj_xmalloc and free
+	with objc_malloc and objc_free.
+	* objc/objects.c: Likewise.
+	* objc/sarray.c: Replace use of __objc_xmalloc and free
+	with objc_malloc and objc_free.
+	* objc/sarray.h (__objc_xmalloc, __objc_xrealloc): Delete.
+	* objc/selector.c: Replace use of __objc_xcalloc, __objc_xrealloc,
+ 	and __objc_xmalloc with objc_calloc, objc_realloc, and objc_malloc.
+	* objc/thr-decosf1.c: Replace use of __objc_xmalloc and free
+	with objc_malloc and objc_free.
+	* objc/thr-irix.c, objc/thr-mach.c, objc/thr-os2.c: Likewise.
+	* objc/thr-posix.c, objc/thr-pthreads, objc/thr-single: Likewise.
+	* objc/thr-solaris.c, objc/thr-win32.c, objc/thr.c: Likewise.
+
+Sun Sep 22 05:26:01 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* configure: Set up LANG_LIB2FUNCS and LANG_EXTRA_HEADERS.
+	* Makefile.in (libgcc2.a): Include LANG_LIB2FUNCS.
+	(USER_H): Add LANG_EXTRA_HEADERS.
+	(LANG_LIB2FUNCS): New macro.
+	(LANG_EXTRA_HEADERS): New macro.
+	(stmp-int-hdrs): Don't hardwire ginclude.
+	(stamp-objlist): Don't depend on Makefile.
+
+Sat Sep 21 18:00:10 1996  Stephen L Moshier  (moshier@world.std.com)
+
+	* alpha.md (alpha_swapped_comparison_operator pattern): Fix asm
+	operand typo in last change.
+
+Sat Sep 21 07:11:51 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* defaults.h (ASM_OUTPUT_LABELREF): Provide default definition
+	if not already defined.
+	* 1750a.h (USER_LABEL_PREFIX): Define instead of ASM_OUTPUT_LABELREF.
+	* a29k.h, alpha.h, convex.h, dsp16xx.h, elxsi.h, fx80.h: Likewise.
+	* gmicro.h, h8300.h, i386/sun386.h, i860.h, i960.h, ns32k.h: Likewise.
+	* pdp11.h, pyr.h, romp.h, sh.h, sparc.h, spur.h, tahoe.h: Likewise.
+	* vax.h, we32k.h: Likewise.
+	* i386/att.h (USER_LABEL_PREFIX): Redefine, not ASM_OUTPUT_LABELREF.
+	* i386/bsd.h, i386/lynx.h, i386/sco5.h, i860/fx2800.h: Likewise.
+	* m68k/3b1.h, m68k/mot3300.h, m68k/tower-as.h, m68k/tower.h: Likewise.
+	* ptx4.h, sparc/pbd.h, svr3.h, svr4.h: Likewise.
+	* i386/osfrose.h, m88k.h (USER_LABEL_PREFIX): Redefine.
+	* nextstep.h (USER_LABEL_PREFIX): Redefine.
+	(ASM_OUTPUT_LABELREF) Use USER_LABEL_PREFIX.
+	* arm/aout.h, mips.h (ASM_OUTPUT_LABELREF): Delete.
+	* rs6000/lynx.h (USER_LABEL_PREFIX): Undefine.
+	* rs6000.h, rs6000/win-nt.h (USER_LABEL_PREFIX): Define.
+
+Thu Sep 19 00:05:53 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* configure: Move i[3456]86-*-gnu* case after linux and don't
+ 	treat linux-gnu like other gnu systems.
+
+Wed Sep 18 20:51:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* cplus-dem.c (demangle_template): Fix handling of address args.
+	(gnu_special): Handle type_info stuff.
+
+Wed Sep 18 17:57:55 1996  Patrik Lantto (patrik@opq.se)
+
+	* jump.c (jump_optimize): Insert conditional move after jump
+	insn instead of before. 
+
+Wed Sep 18 17:33:36 1996  Richard Henderson  <rth@tamu.edu>
+
+	* alpha.h (PREDICATE_CODES): Add alpha_swapped_comparison_operator.
+	* alpha.c (alpha_swapped_comparison_operator): New function.
+	(print_operand): Support unsigned codes for %D, %c, and %d.
+	* alpha.md: Add pattern for b%c with swapped comparisons with 0.
+	Delete three unnamed cmp patterns that are strict subsets of it.
+
+	* alpha.c (alpha_emit_set_long_const): Save one instruction
+	when -O2 and high word == low word.
+
+Tue Sep 17 22:46:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* i386/unix.h (ASM_OUTPUT_MI_THUNK): Handle functions
+	returning an aggregate.
+
+	* varasm.c (supports_one_only): New function.
+	(make_decl_one_only): Likewise.
+	* svr4.h (MAKE_DECL_ONE_ONLY): Define.
+	* tree.h (DECL_ONE_ONLY): New macro.
+
+	* varasm.c (assemble_variable): Fix setting of
+ 	first_global_object_name.
+	(assemble_start_function): Likewise.
+
+Tue Sep 17 19:42:39 1996  Doug Evans  <dje@wabamun.cygnus.com>
+
+	* i386/t-cygwin32 (winnt.o): Compile properly.
+
+Tue Sep 17 15:47:20 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Add support for VR5000, and finish MIPS4 support.
+	* mips.h (enum processor_type): Add PROCESSOR_R5000.
+	(gen_conditional_move): Declare.
+	(CONDITIONAL_REGISTER_USAGE): Mark ST_REGS as fixed if not
+	HARD_FLOAT, or if mips_isa < 4.
+	(FIRST_PSEUDO_REGISTER): Change to 76.
+	(FIXED_REGISTERS): Add condition code registers.
+	(CALL_USED_REGISTERS): Likewise.
+	(ST_REG_LAST): Change to 74.
+	(RAP_REG_NUM): Change to 75.
+	(ST_REG_P): Look for any condition code register.
+	(REG_CLASS_CONTENTS): Update for new condition code registers.
+	(RTX_COSTS): Add cases for R5000.
+	(REGISTER_MOVE_COST): Add cases for condition code registers.
+	(PREDICATE_CODES): Add "const_float_1_operand".
+	(EXTRA_CC_MODES): Remove.
+	(EXTRA_CC_NAMES): Remove.
+	(SELECT_CC_MODE): Remove.
+	(REGISTER_NAMES): Add entries for new condition code registers.
+	(DEBUG_REGISTER_NAMES): Likewise.
+	(ADDITIONAL_REGISTER_NAMES): Remove FPSW_REGNUM.
+	* mips.md (cpu attribute): Add R5000.
+	(function units): Add cases for the R5000.
+	(madd.d): Only available if TARGET_DOUBLE_FLOAT.
+	(msub.d, nmadd.d, nmsub.d): Likewise.
+	(recip.d, recip.s, rsqrt.d, rsqrt.s): New define_insn patterns.
+	(movcc): New pattern to move condition code values.
+	(reload_incc, reload_out_cc): New define_expand patterns.
+	(lwxc1, ldxc1, swxc1, sdxc1): Several new define_insn patterns.
+	(various): Replace CC_FP with CC.
+	(branch_fp_ne, branch_fp_eq): Match any condition code register.
+	(branch_fp_ne_rev, branch_fp_eq_rev): Remove.
+	(seq_df, slt_df, sle_df): Match any condition code register.
+	(sgt_df, sge_df, seq_sf, slt_sf, sle_sf): Likewise.
+	(sgt_sf, sge_sf): Likewise.
+	(sne_df, sne_sf): Remove.
+	(FP conditional moves): Match any condition code register.
+	Require TARGET_HARD_FLOAT and, if appropriate,
+	TARGET_DOUBLE_FLOAT.
+	(movsicc): Just call gen_conditional_move.
+	(movdicc, movsfcc, movdfcc): New define_expand patterns.
+	* mips.c (mips_reg_names): Add condition code registers.
+	(mips_sw_reg_names): Likewise.
+	(mips_regno_to_class): Likewise.
+	(const_float_1_operand): New function.
+	(mips_move_1word): Treat CCmode as SImode.  Handle move from
+	ST_REG to GR_REG if mips_isa >= 4.  Only permit move from GR_REG
+	to ST_REG is mips_isa < 4.
+	(gen_conditional_branch): Rewrite.  Just use CCmode, not extra
+	condition modes.
+	(gen_conditional_move): New function.
+	(override_options): Recognize vr5000.  Look for just CCmode, not
+	extra condition modes.  If mips_isa >= 4, permit CCmode in GR_REGS
+	and FP_REGS.
+	(print_operand): Handle %Z.
+	(mips_secondary_reload_class): Require a data register to copy a
+	value out of a condition code register.  Require a floating point
+	register to copy a value into a condition code register.
+
+Tue Sep 17 15:10:29 1996  Joern Rennecke <amylaar@cygnus.co.uk>
+
+	* sh.md: New define_splits to recombine output from LEGITIMIZE_ADDRESS.
+	* sh.h (LEGITIMIZE_ADDRESS): Typo fixes (x -> X).
+
+Mon Sep 16 23:00:35 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* configure (build_broken_install): Renamed from host_broken_install.
+	Set from build not host.
+	(build_install_headers): Renamed from host_install_headers.  Set from
+	build not host.
+
+Mon Sep 16 22:38:55 1996  Stu Grossman  (grossman@critters.cygnus.com)
+
+	* configure (m68k-*-coff*): Use dbx debug format by default.
+	* gcc.c (link_command_spec): Move -T to end of link command line.
+	* m68k/m68kemb.h (LINK_SPEC, SUBTARTGET_SWITCHES): Delete.
+	(LIB_SPEC): Define to just -lc.
+	(STARTFILE_SPEC): Define to empty.
+
+Mon Sep 16 13:12:27 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* sh.c (ext_shift_insns, ext_shift_amounts): new arrays.
+	(gen_ashift_hi, gen_shifty_hi_op, shl_and_kind): new functions.
+	rtx_equal_function_value_matters: declare.
+	(shl_and_length, shl_and_src_length, gen_shl_and): new functions.
+	(shl_sext_kind, shl_sext_length, gen_shl_sext): new functions.
+	* sh.md (ashlhi3_k, lshrhi3_m): new insn pattern.
+	(lshrhi3, shl_sext_ext, shl_sext_sub):
+	new insn pattern with matching define_split.
+	(and_shl_scratch): Likewise, but also with unnamed variants.
+
+Sat Sep 14 17:05:07 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* gcc.c (convert_filename): Don't start looking for '.' until
+	after last directory separator.
+
+	* i386.md (clrstrsi): Correct check for constant size.
+
+	* Based on code by sac@cygnus.com.
+	* i386/cygwin32.h (CHECK_STACK_LIMIT): Make consistent with MD file.
+	* i386.c ({function,ix86_expand}_prologue): Use __alloca to allocate
+	stack if desired and beyond CHECK_STACK_LIMIT in size.
+	* i386.h ({MASK,TARGET}_STACK_PROBE): New macros.
+	(TARGET_SWITCHES): Add -mstack-arg-probe.
+	* i386.md (allocate_stack{,_worker}): New patterns.
+
+Fri Sep 13 18:23:18 1996  Joel Sherrill <joel@OARcorp.com>
+
+	* sparc/lb1spc.asm (.div, .rem): Fixed typo so sign is returned
+	correctly.  TOPBITS was 2 and should have been 4.
+
+Thu Sep 12 21:51:56 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* mips.md (call_value_multiple_internal0): Change from define_insn to
+	define_expand.
+
+Thu Sep 12 19:22:14 1996  Doug Evans  <dje@seba.cygnus.com>
+
+	* sparc.md (move_pic_label_si): Operand one is label_ref now.
+	* sparc.c (emit_move_sequence): Pass label_ref to
+	gen_move_pic_label_si to not lose flags.
+
+Wed Sep 11 12:10:08 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (GCC_PASSES): Add $(exeext) to names.
+	(FLAGS_TO_PASS): Add CLIB.
+	(c-pragma.o): Add dependencies on except.h, function.h, defaults.h.
+
+Tue Sep 10 22:25:03 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure (i[3456]86-*-cygwin32): Use xm-cygwin32.h and xm-i386.h.
+	Set fixincludes to Makefile.in and objc_thread_file to win32.
+	* i386/xm-cywin32.h: Don't include xm-i386.h.
+	* i386/x-cygwin32, rs6000/x-cygwin32 (STMP_FIXPROTO, exeext): New defs.
+
+	* gcc.c (HAVE_EXECUTABLE_SUFFIX): New macro.
+	(convert_filename): New function.
+	(process_command, case 'o'): Call it.
+	(process_command, default case): Likewise; delete old code.
+
+Tue Sep 10 21:08:43 1996  Torbjorn Granlund  <tege@albert.gnu.ai.mit.edu>
+
+	* i386.md (decrement_and_branch_until_zero matcher): Fix typo.
+
+Tue Sep 10 19:04:19 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* mips.c (mips_move_2words): Rewrite 32 bit shifts as 16 bit shifts.
+
+Tue Sep 10 10:39:07 1996  Jeffrey A Law  (law@cygnus.com)
+	
+	* pa/pa-gas.h (DBX_DEBUGGING_INFO): Remove all #define
+	and #undef statements related to debugging information.
+	* pa/pa-hpux.h, pa-hpux7.h: Likewise
+	* pa.c (override_options): Disable "-g" and issue a warning
+	if it's used when !TARGET_GAS.
+
+Mon Sep  9 17:57:49 1996  Doug Evans  <dje@wabamun.cygnus.com>
+
+	* sparc.h ({MASK,TARGET}_FPU_SET): Define.
+	(TARGET_SWITCHES): Record if -m{,no-}fpu passed.
+	* sparc.c (sparc_override_options): Don't clobber explicit
+	-m{,no-}fpu setting with cpu default.
+
+Mon Sep  9 15:57:57 1996  Joel Sherrill  <joel@OARcorp.com>
+
+        * configure (mips64orion-*-rtems*): New target.
+        * mips/rtems64.h: New file.
+
+Sat Sep  7 22:07:53 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (store_field): If storing a record on big endian targets,
+	set up so we store the high-order bits.
+	(expand_expr, case COMPONENT_REF): Likewise for loads.
+
+Thu Sep  5 14:59:47 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* sh.h (LEGITIMIZE_ADDRESS): Define nonempty.
+
+Thu Sep  5 10:43:36 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.md (movsi, movdi, movsf patterns): Handle
+	'R' constraints as needed.
+
+Wed Sep  4 17:13:28 1996  Bob Manson  <manson@charmed.cygnus.com>
+
+	* except.c: (add_partial_entry): New routine.
+	(expand_start_try_stmts): Moved from cp/except.c.
+	(expand_start_all_catch): Move functionality of expand_end_try_stmts
+	here.
+
+Wed Sep  4 12:30:02 1996  Mike Stump  <mrs@cygnus.com>
+
+	* except.c (emit_unwinder): Ensure that CLOBBER and USE insns come
+	last, if present.
+
+Tue Sep  3 12:01:43 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure (sh-*-elf*): New target.
+	* sh/elf.h: New file.
+
+Fri Aug 30 17:52:26 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* dwarf2out.c (gen_formal_types_die): Delete extra argument from
+	gen_type_die call.
+
+Fri Aug 30 15:40:40 1996  James G. Smith  <jsmith@cygnus.co.uk>
+
+	* mips/elf64.h: Allow MULTILIB_DEFAULTS to be defined
+	before this file is included.
+
+Fri Aug 30 15:00:06 1996  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.md: (movsicc,movhicc): Allow reload from memory.
+	
+	* i386.c (override_options): Don't thread the prologue if profiling.
+
+Fri Aug 30 15:00:06 1996  James Hawtin  <cgjwh@sunrise.co.uk>
+	
+	* i386/t-sol2 (gcrt1.o): Added for profiling Solaris 2
+	* i386/sol2.h (STARTFILE_SPEC): New.
+	* i386/gmon-sol2.c, i386/sol2-gc1.asm: New files.
+	
+Thu Aug 29 22:08:03 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* except.c (add_eh_table_entry): Multiply realloc size by sizeof int.
+
+Thu Aug 29 15:15:31 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.md (fcmp patterns): Don't try to eliminate useless add,tr
+	insns here.
+	* pa.c (pa_reorg): Do elimination of useless add,tr insns here instead.
+	(print_operand, case 'y'): Remove this code.
+
+Wed Aug 28 16:19:34 1996  Doug Evans  <dje@cygnus.com>
+
+	* toplev.c (print_single_switch): Ultrix fprintf returns 0 for success.
+
+	* toplev.c (main): Rewrite -g parsing.
+
+Mon Aug 26 16:15:49 1996  Fred Fish  <fnf@cygnus.com>
+
+	* Makefile.in (objc-parse.y): Fix typo in name of temp file.
+
+Mon Aug 26 14:08:37 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (mark_all_temps_used): Fix error in last change.
+
+Sun Aug 25 22:27:19 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (mark_all_temps_used): New function.
+
+Fri Aug 23 11:34:57 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Fixes to make -fPIC
+	really the same as -mrelocatable.
+	(ASM_SPEC): Pass -K PIC to the assembler if -fpic/-fPIC.
+
+	* rs6000/sol2.h (ASM_CPU_SPEC): Remove passing -K PIC to the
+	assembler if -fpic/-fPIC.
+
+	* bi-{arity,opcode,opname}.c (fancy_abort): Define, so that
+	-Dabort=fancy_abort works again.
+
+Thu Aug 22 11:39:34 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/t-ppcgas ({stmp,install}-crt): Only build and install the
+	eabi ecrt[in].o object files in eabi multilib directories, only
+	build and install the solaris scrt[in0].o object files in solaris
+	directories.
+	(MULTILIB_MATCHES): Remove matches for solaris, linux to other
+	switches.
+
+Tue Aug 20 18:49:55 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/sysv4.h (ASM_OUTPUT_SECTION_NAME): If -mrelocatable or
+	-mrelocatable-lib, don't make read-only sections, since if there
+	are pointers to be fixed up, the assembler complains.
+
+Mon Aug 19 18:42:13 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc.h ({MASK,TARGET}_LITTLE_ENDIAN): Define.
+	(LIBGCC2_WORDS_BIG_ENDIAN): Add little endian support.
+	* sparc/sp64-elf.h ({CPP,ASM,LINK}_SPEC): Add little endian support.
+	(SUBTARGET_SWITCHES): Recognize -m{big,little}-endian.
+	({BYTES,WORDS}_BIG_ENDIAN): Likewise.
+	* sparc/splet.h (SUBTARGET_SWITCHES): Recognize -m{big,little}-endian.
+	({CPP,ASM,LINK}_SPEC): Add little endian support.
+	({BYTES,WORDS}_BIG_ENDIAN): Likewise.
+	* sparc/t-splet (MULTILIB_{OPTIONS,DIRNAMES}): Likewise.
+
+	* sparc/lynx-ng.h (CPP_SPEC): Use %(cpp_cpu).
+
+Sat Aug 17 15:23:39 1996  Geoffrey Noer  <noer@cygnus.com>
+
+	* i386/cygwin32.h (CPP_PREDEFINES): Define _WIN32, not WIN32.
+	Define only __CYGWIN32__, not CYGWIN32 or __CYGWIN32.
+	* rs6000/cygwin32.h (CPP_PREDEFINES): Likewise.
+	* cccp.c (absolute_filename): Drive specifiers make the pathname
+	absolute in cygwin32.
+	* choose-temp.c: Delete !defined(_WIN32) condition when including
+	sys/file.h (NO_SYS_FILE_H is still used).
+	* gcc.c: Change ifndef _WIN32 to ifndef NO_SYS_FILE_H when deciding
+	whether to include sys/file.h.
+	(execute): -pipe is supported for cygwin32.
+	* getopt.c: Change win32 test from WIN32 to _WIN32.
+	* pexecute.c: Update test for win32 (&& ! cygwin32).
+	* protoize.c: Likewise.
+	(kill): Delete decl.
+	* toplev.c: Update test for win32 (&& ! cygwin32).
+	* ginclude/stdarg.h: Change __WIN32__ to _WIN32.
+	* ginclude/varargs.h: Likewise.
+	* ginclude/va-ppc.h: Likewise.
+
+Fri Aug 16 16:02:09 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.c (rs6000_got_register): Make sure pic_offset_table_rtx
+	allocated, even if current_function_uses_pic_offset_table set.
+
+Fri Aug 16 15:56:04 1996  J. Kean Johnston  <hug@netcom.com>
+
+	* i386/sco5.h (CLASS_LIKELY_SPILLED_P): Deleted.
+	(STARTFILE_SPEC): Insert crtbegin.o in correct place, and correct
+	versions of values-X?.o.
+	(SWITCH_TAKES_ARG): Extend DEFAULT_SWITCH_TAKES_ARG, not replace.
+	(CPP_SPEC): Add -Di386, and correctly include extra directories.
+	Define HAVE_ATEXIT in ELF mode for global destructors.
+
+Thu Aug 15 16:42:44 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc.c (label_ref_operand): New function.
+	(emit_move_sequence): Pass label_ref to gen_move_label_di to not
+	lose flags.
+	* sparc.md (move_label_di): Operand one is label_ref now.
+	* genattrtab.c (write_test_expr): Allow label_ref in match_dup.
+
+	* sys-protos.h (gethostid): Make return type `int' ifdef __alpha__.
+	* gen-protos.c: Delete support for SYS_PROTO_OVERRIDES.
+	* alpha.h (SYS_PROTO_OVERRIDES): Delete.
+
+Thu Aug 15 17:36:09 1996  Mike Stump  <mrs@cygnus.com>
+
+	* libgcc2.c (__throw): New routine.
+	(__eh_pc): New data object for exception handling.
+
+	* except.c (eh_saved_pc): New object so we can call
+	assemble_external.
+	(expand_internal_throw_indirect): Call assemble_external for __eh_pc.
+	(end_eh_unwinder): Likewise.
+	(init_eh): Initialize eh_saved_pc.
+
+Thu Aug 15 13:02:42 1996  Mike Stump  <mrs@cygnus.com>
+
+	* arm.h (RETURN_ADDR_RTX): Define.
+
+	* expr.c (expand_builtin_return_addr): Fix order of parameters.
+
+Wed Aug 14 19:48:00 1996  Torbjorn Granlund  <tege@spiff.gnu.ai.mit.edu>
+
+	* stmt.c (expand_return): In code for doing scc with jumps,
+	stick to default handling if we have corresponding scc pattern.
+
+Wed Aug 14 10:31:28 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.c (override_options): Treat TARGET_FAST_INDIRECT_CALLS
+	just like TARGET_NO_SPACE_REGS.
+	(output_millicode_call): Likewise.
+	* pa.h (TARGET_FAST_INDIRECT_CALLS): Define.
+	(TARGET_SWITCHES): Add "fast-indirect-calls".
+	* pa.md: Treat TARGET_FAST_INDIRECT_CALLS just like
+	TARGET_NO_SPACE_REGS in various call/millicode call patterns.
+
+	* pa.c (print_operand): Use the right comparison operator
+	for reversed EQ and NE comparisons.
+
+	* pa.h (OUTPUT_MI_THUNK): Define.
+
+Wed Aug 14 11:40:49 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* ginclude/va-ppc.h: Add Windows NT support.
+	* ginclude/{varargs,stdarg}.h: For PowerPC Windows NT, include
+	va-ppc.h, instead of using the default handling.
+
+Tue Aug 13 18:30:10 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* fixincludes: Remove duplicate volatile from sig_atomic_t in AIX
+	sys/signal.h
+
+Tue Aug 13 16:51:37 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* i960-coff.h (LIB_SPEC): Undef.
+
+	* sh.h (PROFILE_BEFORE_PROLOGUE): Define.
+
+Tue Aug 13 11:36:02 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* gcc.c (set_spec,process_command): Dump and load the compiler
+	version number in the specs file.
+
+	* rs6000.c (output_toc): Fix last change, so that it doesn't use
+	an uninitialized variable if -mminimal-toc.
+	(output_prolog): Increment probe_labelno after last use.
+
+	* rs6000/t-ppcgas (MULTILIB_*): Build far fewer multilib
+	libraries.  Build all libraries with -mrelocatable-lib and
+	-mno-eabi.  Build special Linux and Solaris libraries.
+	* rs6000/eabi{,aix,le}.h (MULTILIB_DEFAULTS): Adapt to changes in
+	t-ppcgas.
+	* rs6000/(linux,sol2).h (MULTILIB_DEFAULTS): Ditto.
+	* rs6000/{sysv4,sysv4le} (MULTILIB_DEFAULTS): Ditto.
+
+Tue Aug 13 11:36:02 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* rs6000.c (handle_mac_pragma): Initialize "psize".
+
+Mon Aug 12 18:14:35 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* gcc.c (used_arg): Initialize cnt to zero.
+
+Mon Aug 12 14:03:16 1996  Jim Wilson  <wilson@cygnus.com>
+
+	From Mike Stump:
+	* sh.c (regno_reg_class): Change entry 23 from NO_REGS to GENERAL_REGS.
+	(initial_elimination_offset): New variable live_regs_mask.  Add
+	code to handle RETURN_ADDRESS_POINTER_REGNUM.
+	* sh.h (RAP_REG, RETURN_ADDRESS_POINTER_REGNUM): Define.
+	(ELIMINABLE_REGS): Add RETURN_ADDRESS_POINTER_REGNUM support.
+	(RETURN_ADDR_RTX): Define.
+	(REGISTER_NAMES): Add rap.
+
+	* iris5.h (DOLLARS_IN_IDENTIFIERS): Undefine.
+
+	* m68kemb.h (LIB_SPEC): Always emit -lc.
+
+Mon Aug 12 12:30:25 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.c (rs6000_got_register): Test variable
+	current_function_uses_pic_offset_table to see whether or not a GOT
+	register has been created already.
+
+	* Makefile.in (multilib.h): Move to stamp-mlib.
+	(stamp-mlib): Use move-if-change to conditionally update
+	multilib.h.  Pass MULTILIB_EXTRA_OPTS to genmultilib.
+	(STAGESTUFF): Add stamp-mlib.
+	(mostlyclean): Delete tmp-mlib.h.
+
+	* genmultilib: Take a fifth argument to add options to pass on to
+	all multilib builds.  Restructure output so that we pass the
+	synonym switches and extra arguments separately, and not
+	exponentially slow down genmultilib.
+
+	* gcc.c (toplevel): Rearrange multilib support so that we support
+	passing the synonyms separately from the normal switches.  Add
+	support for passing additional switches to be used on all multilib
+	builds.  Dump and restore the value of MULTILIB_DEFAULTS so that
+	gcc cover programs for other targets will correctly chose the
+	appropriate multilib directory.
+	(setspec,process_command,main): Ditto
+	(used_arg,default_arg,print_multilib_info): Ditto.
+
+Mon Aug 12 07:46:47 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_builtin, case BUILT_IN_SETJMP): Add test
+	and call for nonlocal_goto_receiver pattern.
+	* stmt.c (expand_end_bindings): Likewise.
+
+	* stmt.c (expand_asm_operands): Fix off-by-one error when
+	scanning constraints.
+
+Sun Aug 11 22:48:02 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* expr.c (store_expr): Handle COND_EXPR cleanups like expand_expr.
+
+Sun Aug 11 22:42:36 1996  J"orn Rennecke  <amylaar@cygnus.co.uk>
+
+	* optabs.c (expand_abs): When OP0 and TARGET are the same
+	pseudo register, it is safe to use TARGET.
+
+	* local-alloc.c (reg_equiv_replace): New variable.
+	(update_equiv_regs): Set reg_equiv_replacement for all REG_EQUIV
+	notes encountered or generated.
+
+Sun Aug 11 22:27:14 1996  Scott Christley <scottc@net-community.com>
+
+	* objc/hash.c (hash_is_key_in_hash): Function somehow got lost.
+
+Sun Aug 11 21:43:15 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* ginclude/stddef.h (__need_wint_t): Move #undef to right place.
+
+Sun Aug 11 17:46:22 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* c-decl.c (finish_struct): If pedantic, also warn if struct/union
+	has no named members.
+
+Sun Aug 11 17:32:52 1996  Joel Sherrill <joel@OARcorp.com>
+
+	* i386/rtems.h: Renamed from i386/i386-rtems.h
+	* i960/rtems.h: Renamed from i960/i960-rtems.h
+	* m68k/rtems.h: Renamed from m68k/m68k-rtems.h
+	* rs6000/rtems.h: Renamed from rs6000/powerpc-rtems.h
+	* sparc/rtems.h: Renamed from sparc/sparc-rtems.h
+	* config/t-rtems: New file.
+	* configure (i386-*-rtems*): Added t-rtems to tmake_file.
+	Renamed i386/i386-rtems.h to i386/rtems.h.
+	(i960-*-rtems*): Added t-rtems to tmake_file.
+	Renamed i960/i960-rtems.h to i960/rtems.h.
+	Added original tm.h file and dbxcoff.h.
+	(m68k-*-rtems*): Added t-rtems to tmake_file.
+	Renamed m68k/m68k-rtems.h to m68k/rtems.h.
+	(powerpc-*-rtems*): Added t-rtems to tmake_file.
+	Renamed rs6000/powerpc-rtems.h to rs6000/rtems.h.
+	(sparc-*-rtems*): Added t-rtems to tmake_file.
+	Renamed sparc/sparc-rtems.h to sparc/rtems.h.
+
+Fri Aug  9 16:05:13 1996  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.md: (untyped_call) Avoid SIGFPE.
+
+	* i386.c (output_float_compare): Don't try to initialize
+	aggregate local variable; use assignment statements instead.
+
+	* i386.h (RTX_COSTS): rtx_cost should pass two parameters.
+	
+	* i386/go32.h (ASM_OUTPUT_SECTION_NAME): New.
+
+Fri Aug  9 16:00:11 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* winnt.c (gen_stdcall_suffix): Round parameter size to PARM_BOUNDARY.
+
+Thu Aug  8 17:42:35 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.c (output_toc): If we are emitting a reference to a
+	vtable, don't put in the section name, just use the symbol.
+
+Wed Aug  7 19:03:36 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* sh.md (casesi_jump): New pattern.
+	(casesi): Generate RTL to match it.
+
+Wed Aug  7 14:10:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* ginclude/stddef.h (NULL): Use __null for G++.
+
+Tue Aug  6 17:37:53 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/sysv4.h (STACK_BOUNDARY): Always define as 64.
+	(ABI_STACK_BOUNDARY): Define as 64/128 based on the -mno-eabi
+	switch.
+
+	* rs6000.c (rs6000_stack_info): Use ABI_STACK_BOUNDARY, not
+	STACK_BOUNDARY.  Define ABI_STACK_BOUNDARY as STACK_BOUNDARY #ifndef.
+
+Tue Aug  6 14:29:43 1996  Doug Evans  <dje@fallis.cygnus.com>
+
+	* gen-protos.c (overrides): New static local.
+	(add_hash,parse_fn_proto): New static functions.
+	(main): Add prototypes from SYS_PROTO_OVERRIDES to hash table before
+	parsing sys-protos.h.  Reserve entry 0 in std_protos.
+	* alpha.h (SYS_PROTO_OVERRIDES): Define.
+
+Mon Aug  5 16:53:36 1996  Doug Evans  <dje@fallis.cygnus.com>
+
+	* sparc/t-splet (MULTILIB_OPTIONS): Add mbroken-saverestore.
+	(MULTILIB_DIRNAMES): Add brknsave.
+
+	* stor-layout.c (layout_record): Correct overflow test for 0 sized
+	fields.
+
+Mon Aug  5 16:12:19 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* alpha.c (alpha_output_filename): When emitting stabs, don't
+	disable them if using GNU as.
+	(alpha_output_lineno): Likewise, when not using GNU as.
+
+	* sh.c (arith_reg_operand): Reject SUBREG of an invalid hard reg.
+
+	* sparc/lite.h (aoutos.h): Don't include it.
+	* configure (sparclite-*-aout*): Add aoutos.h to tm_file.
+
+Sat Aug  3 23:13:55 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* combine.c (rtx_equal_for_field_assignment_p): Check for
+	get_last_value returning (CLOBBER (CONST_INT 0)).
+
+Sat Aug  3 20:19:14 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* i960.md (subsi3+1): Handle case where first operand is constant
+	but second operand is not.
+
+	* m68k/vxm68k.h (WCHAR_TYPE_SIZE): Undef, then define to 16.
+
+Fri Aug  2 15:46:19 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* pa/pa-hpux.h (LINK_SPEC): Don't link in PA1.1 specific
+	libraries when creating shared libraries.
+	* pa/pa-hpux9.h, pa/pa-hpux10.h: Likewise.
+
+Fri Aug  2 13:36:42 1996  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.c (output_float_compare): fcomi should be followed by the
+	correct conditional jump instead of fcom/pfstsw/and/jne
+	(override_options): Added -mbranch-cost to set BRANCH_COST.
+	
+	* i386.md (sgt+1,slt+1,sge+1,sle+1,bgt+1,blt+1,bge+1,ble+1,bleu+4)
+	Added TARGET_CMOVE check for fcomi.
+	(movsicc_1+1,movhicc_1+1): Added to handle the general case.
+	
+	* i386.h (i386_branch_cost, i386_branch_cost_string): Added.
+
+Fri Aug  2 11:53:55 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* sparc/vxsparc.h (CPP_PREDEFINES): Add `-DCPU=SPARC'.
+
+Thu Aug  1 23:56:01 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.h (ASM_OUTPUT_INT): Remove all hacks for exception table.
+
+Thu Aug  1 10:08:14 1996  Torbjorn Granlund  <tege@spiff.gnu.ai.mit.edu>
+
+	* m68k.h (RTX_COSTS, case PLUS): Get operand order right.
+
+Wed Jul 31 15:06:46 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc.md (negtf2,abstf2): Fix v9 case.
+
+Wed Jul 31 09:49:25 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.h (ASM_OUTPUT_INT): Use an 'E%' prefix for items in
+	the exception table if TARGET_GAS && ! TARGET_PORTABLE_RUNTIME.
+
+Tue Jul 30 15:37:31 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* i386/cygwin32.h (dbxcoff.h): Include.
+	(DBX_DEBUGGING_INFO, SDB_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
+	Move definitions before include of dbxcoff.h.
+	(ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_MAIN_SOURCE_FILE_END): Delete.
+	(DBX_BLOCKS_FUNCTION_RELATIVE, DBX_FUNCTION_FIRST): Delete.
+
+Tue Jul 30 15:03:53 1996  Torbjorn Granlund  <tege@spiff.gnu.ai.mit.edu>
+
+	* i960.md (eq reg (const_int 0)): New pattern.
+
+Tue Jul 30 11:15:44 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.h (RETURN_ADDR_RTX): Offset is -20 from the frame, not +20!
+
+Mon Jul 29 12:16:17 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix thinko in last change.
+
+Fri Jul 26 18:19:47 1996  Doug Evans  <dje@cygnus.com>
+
+	* dwarfout.c (output_bound_representation): Fix typo.
+
+Thu Jul 25 16:00:10 1996  Mike Stump  <mrs@cygnus.com>
+
+	* expr.c (do_jump, case TRUTH_ORIF_EXPR): Ensure end of an
+	exception region comes after its start.
+	(do_jump, case TRUTH_ANDIF_EXPR): Likewise.
+
+Thu Jul 25 13:36:42 1996  Stan Cox  <coxs@equinox>
+
+	* i386.c (output_float_compare): Added support for Pentium Pro
+	fcomi instruction which sets EFLAGS instead of FPU Status Word.
+
+Wed Jul 24 21:48:08 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (canon_hash, cse_insn): MEM is not unchanging if it is
+	in the frame (since the temp slot might be reused).
+
+Wed Jul 24 17:34:06 1996  J"orn Rennecke (amylaar@cygnus.com)
+
+	* sh.md (branch_true, branch_false, inverse_branch_true): Express
+	tests of the T bit as comparisons against zero, rather than one.
+	(inverse_branch_false, beq, bne, bgt, blt, ble, bge, bgtu): Likewise.
+	(bltu, bgeu, bleu, casesi): Likewise.
+
+Wed Jul 24 15:58:06 1996  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.md: (mov{sf,df,xf}cc{,_1}): New patterns for P6 FP cmove.
+	* i386.c (put_condition_code, print_operand, output_fp_cc0_set):
+	Support fcmov suffixes.
+
+Wed Jul 24 10:53:38 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.c (move_operand): Relax "mode" test.  Allow scaled
+	indexed addressing modes.
+	(output_fp_move_double): Tweak output strings to work with updated
+	'F' and 'M' output modifiers.
+	(print_operand): Collapse 'F' and 'M' into a single hunk of code.
+	For auto-increment modes output "s,ma" and "s,mb".
+	For scaled indexing modes output "x,s"
+	For other addresses, output nothing for 'M' and "s" for 'F'.
+	* pa.h (EXTRA_CONSTRAINT): Don't accept scaled indexed addresses
+	for 'Q' and 'T'.  Do accept scaled indexed addresses for 'R'.
+	(GO_IF_LEGITIMATE_ADDRESS): Accept scaled indexed addresses
+	for SFmode and DFmode.
+	* pa.md: Remove all scaled indexed load patterns.
+	(movsi patterns): Accept scaled indexed addresses in some
+	cases.  Update output strings for updated 'M' and 'F' output modifiers.
+	(movhi, movqi, movsf, movdf, movdi patterns): Likewise.
+
+Tue Jul 23 23:10:41 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.h (struct tree_int_cst): Add field for TREE_CST_RTL.
+	* varasm.c (decode_addr_const, output_constant_def): AllowINTEGER_CST.
+
+Tue Jul 23 16:42:09 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* sh.c (reg_unused_after): Handle JUMP_INSN inside a sequence.
+
+Tue Jul 23 16:33:25 1996  Mike Stump  <mrs@cygnus.com>
+
+	* Make exception handling work better when optimizations are on.
+	* except.c, except.h: New files.
+	* Makefile.in (OBJS): Add except.o.
+	(except.o): Add.
+	(stmt.o, final.o): Add except.h.
+	* rtl.c (note_insn_name): Add NOTE_INSN_EH_REGION_{BEG,END}.
+	* rtl.h: Likewise.
+	* arm.h (MASK_RETURN_ADDR): Define.
+	* pa.h (MASK_RETURN_ADDR, RETURN_ADDR_RTX): New macros.
+	* sparc.h (DOESNT_NEED_UNWINDER): Define if not doing a flat function.
+	* mips.h (RETURN_ADDR_RTX): Improve.
+	* vax.h (RETURN_ADDR_RTX): Improve.
+	* toplev.c (rest_of_compilation): Use find_handler_labels.
+	(main, interim_eh{,_hook}): Remove interim_eh_hook support.
+	(flag_exceptions): New flag; also add to table.
+	(compile_file): Emit the exception table in the backend now.
+	* final.c (final_scan_insn): Support ASM_OUTPUT_EH_REGION_{BEG,END}.
+	(final_scan_insn): Redo handler labels, implement
+	NOTE_INSN_EH_REGION_BEG and NOTE_INSN_EH_REGION_END and use them
+	instead of CODE_LABELs.
+	(final): Add call to check_handler_labels.
+	* libgcc2.c (L_eh): Add support for EH_TABLE_LOOKUP.
+	* sparc.md (return): Add a reference to the return address register.
+	* flow.c (find_basic_blocks): Add support for handler_labels.
+	* loop.c (find_and_verify_loops): Likewise.
+	* jump.c (jump_optimize): Likewise.
+	Add call to check_handler_labels.  Add call to exception_optimize.
+	* sched.c (sched_analyze): Smuggle exception region notes around.
+	(unlink_notes, reemit_notes, schedule_block): Likewise.
+	(sched_analyze): Add extra element since we remove two at a time.
+	* integrate.c (save_for_inline_copying): Add support for exception
+	regions.
+	(expand_inline_function): Likewise.
+	(function_cannot_inline_p): Don't inline functions that have EH
+	regions before NOTE_INSN_FUNCTION_BEG.
+	(finish_inline): Use FIRST_FUNCTION_INSN, not NEXT_INSN.
+	* function.c (expand_start_all_catch): New function.
+	* function.h: Add exception handling support information.
+	* expr.c (expand_expr, {defer,expand}_cleanups_to, do_jump): Transform
+	interim_eh_hook into calls to expand_ehregion_{start,end}.
+	* stmt.c (expand_{decl_cleanup,cleanups}): Likewise.
+	(init_stmt_for_function): Call init_eh.
+	(save_stmt_status): Call save_eh_status.
+	(restore_stmt_status): Call restore_eh_status.
+	* expr.h (throw_libfunc): Add.
+	* optabs.c (throw_libfunc): Initialize.
+	* print-rtl.c (print_rtx): Add support for exception regions.
+	* rs6000.c (EXCEPTION_SECTION): Define.
+	* output.h (exception_section): Declare.
+	* varasm.c (exception_section): Define.
+	* i386.c, i960.c, rs6000.c: Include except.h for function.h.
+	* c-pragma.c, emit-rtl.c, expr.c, final.c, flow.c: Include except.h.
+	* function.c, integrate.c, jump.c, loop.c, objc-act.c: Likewise.
+	* stmt.c, stor-layout.c, toplev.c, tree.c, varasm.c: Likewise.
+	
+Tue Jul 23 12:32:54 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.c (rs6000_replace_regno): Set pic_offset_table_rtx so
+	that other phases will use the PIC register instead of the
+	placeholder.
+
+	* rs6000.md (movsi_got*): Eliminate -fPIC code, keep -fpic code.
+	(movsi): Only call movsi_got if -fpic, not -fPIC.
+
+	* sysv4.h (OVERRIDE_OPTIONS): Improve error messages.  Always set
+	-msdata=data by default, even if -fpic/-fPIC/-mrelocatable.  Treat
+	-fPIC the same as -mrelocatable-lib and vica versa.
+
+	* t-ppcgas: (MULTILIB_*): Use -mreloctable-lib, instead of
+	-mrelocatable.  Map Solaris into mcall-sysv-noeabi case.  Build
+	-mrelocatable-lib libraries under non-eabi case.  When linking, if
+	-fpic, -fPIC, or -shared, link in the -mrelocatable-lib libraries.
+
+Mon Jul 22 19:34:20 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* iris6.h (ASM_SPEC): Change {% to %{.
+
+	* dwarf2out.c (output_call_frame_info): Change FDE CIE offset to
+	be section name rather than 0.
+	(gen_subprogram_die): Only emit DW_AT_external if origin is NULL.
+	Only call equate_decl_number_to_die if origin is NULL.
+	(dwarfout_begin_function): In code that computes offset of frame
+	pointer, change 4 to UNITS_PER_WORD.
+
+	* combine.c (undo_all): Clear previous_undos field.
+
+Mon Jul 22 19:10:45 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Don't change target_alias to target in Makefile.
+
+Sat Jul 20 09:28:38 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* dwarfout.c (output_bound_representation): Treat default case
+	as variable bounds, then look inside for SAVE_EXPR.
+
+	* mips.h (INITIALIZE_TRAMPOLINE): Use `_flush_cache'; flush data
+	cache too.
+
+Sat Jul 20 09:24:13 1996  Marco Walther  (Marco.Walther@mch.sni.de).
+
+	* configure (mips-sni-sysv4): New target.
+	* mips/sni-gas.h, mips/sni-svr4.h, mips/x-sni-svr4: New files.
+
+Fri Jul 19 17:44:13 1996  Stan Coxs  <coxs@dg-rtp.dg.com>
+
+	* i386.md: (leave): Clobbers esp and ebp.
+
+	* i386.h: (TARGET_USE_Q_REG): Support inline strlen on PentiumPro
+
+Fri Jul 19 15:56:18 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* m68k/t-m68kbare (MULTILIB_OPTIONS): Add m5200.
+	(MULTILIB_EXCEPTIONS): Define.
+	* m68k/lb1sf68.asm: Add MCF5200 support.
+	* m68k.md (adddi_sexthishl32): Set condition to !TARGET_5200.
+	(subdi_sexthishl32, ashrdi3, ashrhi3): Likewise.
+	(negdi2): Change into define_expand.
+	(negdi2_internal): Rename from old negdi2; condition now !TARGET_5200.
+	(negdi2_5200): New insn.
+	* m68k.c (output_function_prologue): Don't use add.w if TARGET_5200.
+	(output_function_epilogue): Likewise.
+
+	* m68k.md (movqi): Remove complex cases which move between address reg
+	and memory; rely on secondary reloads instead.
+
+Fri Jul 19 12:22:50 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* fixproto (std_files): Add utime.h.
+
+Fri Jul 19 10:59:46 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* m68k/m68kemb.h: Remove '\' at EOF.
+
+Fri Jul 19 09:59:00 1996  Joel Sherrill <joel@OARcorp.com>
+
+	* m68k/coff.h (STARTFILE_SPEC): Add #undef before definition.
+
+Fri Jul 19 09:44:45 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* m68k.h (LEGITIMATE_INDEX_P): Coldfire does not have scale
+	by 8 addressing modes.
+
+	* m68k-none.h: Use MASK_* macros instead of explicit constants.
+
+Fri Jul 19 09:08:53 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* m68k.md (negdi2): Undo last change: don't apply neg to address regs.
+
+Fri Jul 19 09:03:01 1996  Robert Wilhelm  (rwilhelm@Physik.TU-Muenchen.DE)
+
+	* toplev.c (main): Correct typo in error message.
+
+Thu Jul 18 20:29:33 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* Makefile.in (OBJS): Add dwarf2out.o.
+	(dwarf2out.o): New rule.
+	* dwarf2.h, dwarf2out.c: New files.
+	* dwarfout.c: Check DWARF_VERSION macro.
+
+	* mips/iris6.h (DWARF_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
+	Move after header files are included.
+	(iris5.h): Include instead of iris5gas.h.
+	(MACHINE_TYPE): Change 5.x to 6.x.
+	(DEBUG_SECTION, LINE_SECTION): Add debug_ to name, fix attributes.
+	(SFNAMES_SECTION, SRCINFO_SECTION, MACINFO_SECTION, PUBNAMES_SECTION,
+	ARANGES_SECTION): Fix attributes.
+	(DWARF_VERSION, MIPS_DEBUGGING_INFO, ASM_DECLARE_FUNCTION_NAME,
+	ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED,
+	FRAME_SECTION, ABBREV_SECTION): Define.
+	(DBX_DEBUGGING_INFO, SDB_DEBUGGING_INFO, MIPS_DEBUGGING_INFO,
+	DWARF_DEBUGGING_INFO, PREFERRED_DEBUGGING_INFO): Delete undefs at
+	end of file.
+	* mips/mips.c (function_prologue): Use FUNCTION_NAME_ALREADY_DECLARED.
+	(function_epilogue): Likewise.
+
+Thu Jul 18 19:24:19 1996  David Mosberger-Tang  <davidm@azstarnet.com>
+
+	* alpha/elf.h (INT_ASM_OP): Change from ".long" to ".quad".
+
+Thu Jul 18 19:20:58 1996  Ulrich Drepper  <drepper@myware.rz.uni-karlsruhe.de>
+
+	* stddef.h: Undefine __need_wint_t.
+
+Thu Jul 18 19:06:35 1996  J.T. Conklin  <jtc@hippo.cygnus.com>
+
+	* longlong.h (mc680x0): Define umul_ppmm, udiv_qrnnd, sdiv_qrnnd
+	for the '020, '030, '040, and '332.  Define count_leading_zeros
+	for the '020, '030, '040, and '060.
+
+	* m68k.md: Add TARGET_5200 to conditions which determine whether
+	the extbl instruction is emitted.
+	(mulsi3): Enable pattern with TARGET_5200.
+
+	* m68k.md (add patterns): Don't use two addqw instructions when
+	adding small (8 < N <= 16) integers to address registers on 68040.
+
+Thu Jul 18 18:06:15 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure: Write target_alias in Makefile.
+	(i[3456]86-*-sco3.2v4*): Set truncate_target.
+	* Makefile.in (target_alias): New and used for all current uses
+	of `target'.
+
+Thu Jul 18 17:46:02 1996  Dave Love  <d.love@dl.ac.uk>
+
+	* gcc.c (default_compilers): Extra Fortran extensions.
+
+Wed Jul 17 10:28:10 1996  Torbjorn Granlund  <tege@spiff.gnu.ai.mit.edu>
+
+	* expmed.c (expand_mult_highpart): Revert last change.
+
+Tue Jul 16 12:51:59 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc/sparc-rtems.h: #include "sparc/sparc-aout.h" -> sparc/aout.h.
+
+Mon Jul 15 14:42:06 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* mips/iris6.h (LINK_SPEC): Add -woff 84.
+
+Fri Jul 12 17:34:01 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/eabi.asm (__eabi): Convert pointers in the Global Offset
+	Table if -mrelocatable.  Move loops into separate subroutines for
+	ease of debugging.  Reorganize code somewhat.
+
+	* rs6000/rs6000.c (small_data_operand): Allow small data under
+	Solaris.
+
+	* rs6000/sol-c0.c (_start): Initialize r13 to point to the small
+	data operand.
+
+	* rs6000/sol-c{i,n}.asm (_init, _fini): Enable shared library
+	support.
+
+	* rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Default to
+	-msdata=data, even if -fpic or -mrelocatable.  Allow -mrelocatable
+	and -mno-eabi.
+	(CPP_SYSV_SPEC): If -fpic, define __PIC__ and __pic__ to 1.  If
+	-fPIC, define them to 2.
+	(CPP_ENDIAN_SPEC): Push definition of macros for specific endian
+	targets to new specs.
+	(CPP_ENDIAN_DEFAULT_SPEC): Define to use CPP_ENDIAN_BIG_SPEC.
+	(CPP_ENDIAN_{LITTLE,BIG,SOLARIS}_SPEC): New specs for little
+	endian mode, big endian mode, and Solaris, which can't define
+	_LITTLE_ENDIAN.  Define __LITTLE_ENDIAN__ in all cases for little
+	endian systems.  Define __BIG_ENDIAN__ in all cases for big endian
+	systems.
+	(SUBTARGET_EXTRA_SPECS): Add new specs.
+
+	* rs6000/{eabile,sysv4le}.h (CPP_ENDIAN_DEFAULT_SPEC): Define to
+	use CPP_ENDIAN_LITTLE_SPEC.
+
+	* rs6000/sol2.h (CPP_ENDIAN_LITTLE_SPEC): Define as
+	CPP_ENDIAN_SOLARIS_SPEC so that _LITTLE_ENDIAN is not define.
+
+Fri Jul 12 17:34:01 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.c (function_arg): Add IBM AIX XL compiler broken FP arg
+	passing compatibility mode.
+	* rs6000.h (TARGET_XL_CALL): Define default.
+	* aix3newas.h (TARGET_XL_CALL, SUBTARGET_SWITCHES): Define.
+	* aix41.h (TARGET_XL_CALL, SUBTARGET_SWITCHES): Define.
+
+Fri Jul 12 15:04:43 1996  Doug Evans  <dje@cygnus.com>
+
+	* arm/arm.h (ASM_OUTPUT_MI_THUNK): Handle fns returning structures.
+
+	* ptx4.h ({ASM,LINK}_SPEC): %{V} %{v:%{!V:-V}} -> %{v:-V}.
+	* svr4.h ({ASM,LINK}_SPEC): Likewise.
+	* dsp16xx/dsp16xx.h ({ASM,LINK}_SPEC): Likewise.
+	* i386/dgux.h (LINK_SPEC): Likewise.
+	* i386/sol2.h (LINK_SPEC): Likewise.
+	* m88k/dgux.h ({LINK,ASM_CPU}_SPEC): Likewise.
+	* sparc/sol2.h ({ASM,LINK}_SPEC): Likewise.
+	* sparc/sp64-elf.h ({ASM,LINK}_SPEC): Likewise.
+	* sparc/sysv4.h (ASM_SPEC): Likewise.
+
+Thu Jul 11 17:29:33 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.h (GOT_TOC_REGNUM): New macro for r2, which is used as a
+	marker for the GOT/TOC register to be allocated later.
+	(MACHINE_DEPENDENT_REORG): Call rs6000_reorg.
+	(rs6000_reorg): Add declaration.
+
+	* rs6000.c (rs6000_got_register): Return REG 2, not a pseudo
+	register in order to work with inlined functions.
+	(rs6000_replace_regno): New function to replace a register with a
+	new pseudo register.
+	(rs6000_finalize_pic): Loop through all of the insns, replacing
+	any GOT_TOC_REGNUM registers with a new pseudo register, and
+	adding the initialization of of the GOT register if it was
+	created.
+	(rs6000_reorg): New function to check whether the GOT_TOC register
+	marker was removed.
+
+Thu Jul 11 10:12:50 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* h8300/h8300.h (OK_FOR_U): If generating H8/S code, accept
+	SYMBOL_REF and SYMBOL_REF + CONST_INT.
+
+	* h8300/h8300.c (shift_one): Emit tabs between opcode and
+	operands to be consistent with the rest of the compiler.
+	(rotate_one): Likewise.
+	(shift_two, rotate_two): Define.
+	(get_shift_alg): Accept new argument "assembler2_p" for
+	rotate/shift by two insns.  All callers changed.  Rework
+	to generate more efficient code on the H8/300, H8/300H, and
+	H8/S.  Try to simplify somewhat.
+	(emit_a_shift): Use shift-by-two insns when they're available.
+	Emit tabs between opcode and operands to be consistent with
+	the rest of the compiler.
+
+Wed Jul 10 19:32:17 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* mips/iris6.h (ASM_SPEC): Correct typos in Jun 18 change.
+
+Wed Jul 10 18:56:38 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* sh/sh.c (machine_dependent_reorg): When looking for the
+	instruction that sets a register in LOG_LINKS, skip the link if
+	REG_NOTE_KIND is not zero.
+
+Wed Jul 10 15:02:18 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.c (rs6000_got_register): New function to return a pseudo
+	register to hold the pic register.  Abort if reload is in progress
+	or done.
+	(num_insns_constant): Allow SFmode and DFmode.
+
+	* rs6000.h (CONST_DOUBLE_OK_FOR_LETTER_P): Redo 'G' so that it
+	means a constant that takes exactly two insns.
+	(rs6000_got_register): Add declaration.
+
+	* rs6000.md (movsi_got): Move setup of pic register to
+	rs6000_got_register.
+	(movsf): If -msoft-float, don't force constants to memory.
+	(mov{sf,df} insns): If soft floating point, allow any constant to
+	be loaded.  Add define_splits that allow the 604 to use both
+	integer units for loading constants.  Make sure insn length is
+	correct.
+
+Tue Jul  9 17:05:10 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.c (easy_fp_constant): All FP constants are considered
+	hard for -fpic and hardware floating point, so that the GOT
+	register is created.
+
+Tue Jul  9 15:21:27 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* x-iris6 (FIXPROTO_DEFINES): Add -D_SGI_SOURCE.
+
+Mon Jul  8 18:00:33 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* sh/sh.h (enum reg_class): Add new class GENERAL_FP_REGS.
+	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
+
+	* cse.c (note_mem_written): Varying structure memory access with
+	AND address can alias scalars.
+	* sched.c (true_dependence, anti_dependence, output_dependence):
+	Likewise.
+
+	* sh.c (calc_live_regs): For pragma_interrupt case, exclude call
+	clobbered regs that are fixed, explicitly add MACH_REG and MACL_REG.
+
+	* calls.c (expand_call): For assign_stack_temp call in PARALLEL case,
+	get mode from type instead of using BLKmode.
+	* function.c (aggregate_value_p): If hard_function_value returns
+	a non-REG, then return 0.
+
+	* mips/mips.c (function_arg): Add explicit checks for FIELD_DECLs.
+	(mips_function_value): Add explicit checks for FIELD_DECLs, and save
+	them in the array FIELDS.  When returning structure with 1 float field,
+	enclose it in a PARALLEL and set the PARALLEL mode correctly.
+	* mips/mips.md (call_value): Call gen_call_value_multiple_internal0
+	only if there are multiple return values.  Strip the PARALLEL off
+	if there there is only one return value.
+
+Mon Jul  8 16:27:33 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* First cut at support for the H8/S.
+	* h8300/h8300.c (h8300_init_once): Handle the H8/S (treat it
+	like the H8/300H).
+	(dosize, adds_subs_operand, one_insn_adds_subs_operand): Likewise.
+	(output_adds_subs, const_costs, print_operand): Likewise.
+	(output_simode_bld, h8300_adjust_insn_length): Likewise.
+	(push_order, pop_order): Reverse.
+	(function_prologue): Try to use ldm.l and stm.l insns
+	on the H8/S.  Minor cleanups.
+	(function_epilogue): Likewise.
+	(asm_file_start): Emit ".h8300s" when compiling for the H8/S.
+	* h8300/h8300.h (CPP_SPEC): Handle the H8/S.
+	(TARGET_H8300S): New target.
+	(TARGET_SWITCHES): Add "-ms" and "-mno-s".
+	(BITS_PER_WORD): Handle the H8/S (treat it like the H8/300H).
+	(UNITS_PER_WORD, POINTER_SIZE, PARM_BOUNDARY): Likewise.
+	(BIGGEST_ALIGNMENT, BIGGEST_FIELD_ALIGNMENT): Likewise.
+	(INITIALIZE_TRAMPOLINE, MOVE_MAX, Pmode): Likewise.
+	* h8300/h8300.md: Handle H8/S just like H8/300H
+	throughout the entire file.
+	* h8300/t-h8300 (MULTILIB_OPTIONS): Build "-ms" libraries
+	too.
+	(MULTILIB_DIRNAMES): Put H8/S libraries in "h8300s" directory.
+	* h8300/lib1funcs.asm: Emit ".h8300s" pseudo-op when generating
+	h8300s object files.  Otherwise treat the H8/S just like the H8/300H.
+	* ginclude/stdarg.h: Handle the H8/S.
+	* ginclude/varargs.h: Likewise.
+
+Mon Jul  8 14:50:58 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc/sol2.h (LINK_SPEC): Don't pass `-z text' if
+	-shared -mimpure-text.
+
+Sun Jul  7 18:03:46 1996  Torbjorn Granlund  <tege@noisy.tmg.se>
+
+	* m68k/lb1sf68.asm (__udivsi3): Use faster tstw instead of btst.
+
+Thu Jul  4 11:44:39 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (get_inner_reference): Delete using alternate mode for
+	bitfield; we don't make bitfields anymore if not needed.
+
+Wed Jul  3 18:23:17 1996  Stephen L Moshier  (moshier@world.std.com)
+
+	* c-common.c (record_function_format): Define as static.
+	
+	* collect2.c (at SUNOS4_SHARED_LIBRARIES): Fix reference to unistd.h.
+
+Wed Jul  3 17:35:20 1996  Gavin Koch  <gavin@cygnus.com>
+
+        * c-typeck.c (default_conversion): Add bitfield promotions.
+                
+Wed Jul  3 17:09:22 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* gcc.c (default_compilers): Add null entries for languages we
+	heard of.
+	(main): If found one of those entries, say compiler not installed.
+
+Wed Jul  3 12:52:53 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.c (fmpy_operands): Define.
+	(combinable_fmpy): New function.
+	(combinable_fadd, combinable_fsub): Likewise.
+	* pa.md (parallel_addb, parallel_movb): New patterns.
+	(fmpyadd, fmpysub): New patterns.
+
+	* pa.c (fmpyaddoperands): Tighten checks.  Allow SFmode.
+	(fmpysuboperands): Similarly.
+
+Tue Jul  2 18:57:15 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.c (ireg_or_int5_operand): New function.
+	(output_parallel_movb, output_parallel_addb): Likewise.
+	(combinable_copy, combinable_add, following_call): Likewise.
+	(pa_adjust_insn_length): Handle parallel unconditional branches.
+	(output_movb): Handle case were destination is %sar.
+	* pa.h: Declare new functions.
+	* pa.md (parallel_branch): New "type" attribute.
+	(delay slot descriptions): Don't allow "parallel_branches" in
+	delay slots.  Fill "parallel_branches" like "branch" insns.
+	(movb patterns): Handle %sar as destination register.
+
+	* expr.c (compare): If function pointers need canonicalization
+	before comparisons, canonicalize them.
+	(do_store_flag): Do not use an sCC insn for a function pointer
+	comparison if function pointers need canonicalization before
+	comparing.
+
+Tue Jul  2 17:56:37 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/sysv4.h ({START,END}FILE_LINUX_SPEC): If -mnewlib is not
+	used, use the crtbegin/crtend that 2.7.2 used.
+
+Sat Jun 29 07:10:02 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.h (INIT_EXPANDERS): Define, call rs6000_init_expanders.
+	(RS6000_VARARGS_OFFSET): fpmem area no longer next to outgoing
+	argument area.
+	(STARTING_FRAME_OFFSET): Ditto.
+	(STACK_DYNAMIC_OFFSET): Ditto.
+	(frame_pointer_needed): Add external declaration.
+	(rs6000_{save,restore}_machine_status): Ditto.
+	(rs6000_init_expanders): Ditto.
+
+	* rs6000.c (rs6000_{save,restore}_machine_status): New functions
+	to save and restore the globals needed on a per function basis.
+	(rs6000_init_expanders): Initialize globals needed on a per
+	function basis, and set up so the above save/restore functions are
+	called when processing nested functions.
+	(output_epilog): Don't initialize per function globals here.
+	(rs6000_stack_info): Change where the fpmem save area is to below
+	the local variables, and not just below the outgoing argument
+	area.
+
+	* rs6000.md (floatsidf2*, fix_truncdfsi2*): Rewrite conversion
+	routines to track new location of the fpmem save area.  Allocate a
+	new base register temp for the routines in case the stack frame is
+	more than 32k in size.
+
+Sat Jun 29 05:44:37 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* explow.c (convert_memory_address, case PLUS): Fix error in
+	last change.
+
+Fri Jun 28 23:30:48 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* reload1.c (choose_reload_regs): Properly mark spill registers
+	as in use for inherited reloads.
+
+Fri Jun 28 18:37:20 1996  Stephen L Moshier  <moshier@world.std.com>
+
+	* objc/sarray.c (ifdef __alpha__): Don't declare `free'.
+	* objc/thr-decosf1.c (objc_thread_id): Use pthread_getunique_np
+	to obtain a thread ID value.
+	(objc_mutex_allocate): Cast mutex->owner to _objc_thread_t.
+	(objc_mutex_deallocate): Likewise.
+	(objc_mutex_unlock): Likewise.
+	(objc_mutex_trylock):  Declare thread_id as _objc_thread_t.
+	(objc_mutex_lock): Likewise.
+	(objc_mutex_unlock): Likewise.
+
+	* real.c (asctoeg): `0.0eX' is zero, regardless of the exponent X.
+
+Fri Jun 28 18:33:13 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* vax.md (rotl): Remove extraneous `$'.
+
+	* combine.c (previous_num_undos): Deleted variable.
+	(MAX_UNDO): Deleted macro.
+	(struct undo): New field, next.
+	(struct undobuf): Deleted num_undos and undo.
+	New fields undos, frees, and previous_undos.
+	(SUBST, SUBST_INT): Rework to allocate memory and chain undo entries.
+	(combine_instructions): Initialize undobuf.{undos,previous_undos},
+	not undobuf.num_undo and previous_num_undos.
+	(try_combine): Likewise.
+	(undo_all, gen_rtx_combine): Rework to use new data structures.
+
+Fri Jun 28 16:48:25 1996  Scott Christley <scottc@net-community.com>
+
+	* objc/sendmsg.c (__objc_block_forward): New function.
+	(get_imp, objc_msg_lookup): Use different forwarding function
+	when the returning a floating point value.
+
+Fri Jun 28 16:25:25 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* configure: Allow multiple makefile frags.
+	(i[3456]86-*-linux*oldld*): Add i386/t-crtstuff as target frag.
+	(i[3456]86-*-linux*aout*, i[3456]86-*-linux*): Likewise.
+	(m68k-*-linux*aout*): Add t-linux-aout as target frag.
+	(m68k-*-linux*): Add t-linux as target frag.
+	* Makefile.in (Makefile): xmake_file and tmake_file now already
+	contain the $(srcdir)/config prefix.
+
+	* config/t-linux (BOOT_CFLAGS): Removed, no longer necessary.
+	(CRTSTUFF_T_CFLAGS): Don't define.
+	(CRTSTUFF_T_CFLAGS_S): Define this instead.
+	* config/t-linux-aout (BOOT_CFLAGS): Removed.
+	* m68k/t-linux: Remove variables now in t-linux.
+
+Fri Jun 28 15:06:05 1996  John F. Carr  <jfc@mit.edu>
+
+	* alpha.c (alpha_emit_conditional_move): Emit correct code when
+	incoming comparison code is NE.
+
+Fri Jun 28 14:35:45 1996  J.T. Conklin  <jtc@hippo.cygnus.com>
+
+	* c-decl.c (init_decl_processing): Register __builtin_memset 
+	and memset as builtin functions.
+	* expr.c (expand_builtin, case BUILTIN_MEMSET): Open code memset
+	where val == 0.
+
+Fri Jun 28 14:10:03 1996  Richard Henderson  <rth@tamu.edu>
+
+	* alpha/linux.h (FUNCTION_PROFILER): _mcount has non-standard linkage.
+	* alpha/elf.h (LINK_SPEC): Bring emulation name into sync
+	with Cygnus snapshot.
+
+	* alpha.h ({MASK,TARGET}_BUILD_CONSTANTS): New macros.
+	(TARGET_SWITCHES): New target option build-constants.
+	* alpha.c (alpha_emit_set_long_const): New function.
+	* alpha.md (movdi): Call it.
+	* expmed.c (expand_mult_highpart): Use op1 not wide_op1 in
+	expansion of mul_highpart.
+	
+	* alpha.c (output_{pro,epi}log): Flag_inhibit_size_directive
+	should supress .ent, .end, and accompanying directives.
+	(alpha_output_lineno): Fix polarity on GAS test.
+	* alpha.h (NO_DBX_FUNCTION_END): New macro.
+	* dbxout.c (dbxout_function): Respect NO_DBX_FUNCTION_END.
+	* alpha/elf.h: New file.
+	* alpha/linux.h (INITIALIZE_TRAMPOLINE): New definition.
+	* alpha/xm-linux.h (HAVE_STRERROR): Define.
+	* configure (alpha*-linux*ecoff*): New target, was alpha-*-linux*.
+	(alpha-*-linux*): Use elf.h.
+	* crtstuff.c (init_dummy): Only i386-linux (at most)
+	needs ___brk_addr hack.
+	
+Thu Jun 27 20:23:30 1996  Jon Buller  (jonb@metronet.com)
+
+	* ns32k.c (split_di): New; from i386.c.
+	* ns32k.md (adddi3, subdi3, negdi3): New patterns.
+
+Thu Jun 27 19:42:50 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (force_to_mode, case NE): Fix typo and logical error.
+	(simplify_comparison): Don't swap args if op1 is CONST_INT.
+
+Thu Jun 27 18:49:35 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* expmed.c (extract_bit_field): Check TRULY_NOOP_TRUNCATION before
+	making a SUBREG of a REG.
+
+Thu Jun 27 11:03:59 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* mips/mips.h (CC1_SPEC): Put spaces between the -mips* cases.
+	* mips/osfrose.h (CC1_SPEC): Likewise.
+
+	* sh/sh.c (output_branch): Don't call ADJUST_INSN_LENGTH if the
+	insn is inside a sequence.
+
+Wed Jun 26 19:09:43 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa/pa.h (CMP_PSI): Delete.
+	(FUNCTION_POINTER_COMPARISON_MODE): Likewise.
+	* pa/pa.md (cmppsi); Delete expander.
+	(canonicalize_funcptr_for_compare): Renamed from plabel_dereference,
+	turned into an expander + anonymous pattern.
+
+Tue Jun 25 22:36:11 1996  Doug Evans  <dje@seba.cygnus.com>
+
+	* gcc.c (PEXECUTE_VERBOSE): Define.
+	(execute): Pass PEXECUTE_VERBOSE to pexecute if -v.
+
+Tue Jun 25 12:23:54 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.h (FINALIZE_PIC): Define to call rs6000_finalize_pic.
+	(rs6000_finalize_pic): Add declaration.
+	(svr4_traceback): Delete unused declaration.
+
+	* rs6000.md (movsi_got): Don't emit gen_init_v4_pic insn.
+	(V.4 call insns): Do not use @plt for PIC calls.
+
+	* rs6000.c (print_operand_address): Handle LABEL_REF just like
+	SYMBOL_REF.
+	(rs6000_finalize_pic): Define, emit the gen_init_v4_pic insn
+	before all other insns if needed for V.4 PIC calls.
+
+	* eabi-ci.asm (_GLOBAL_OFFSET_TABLE_): Do not provide a default
+	definition, since it interferes with the linker generated version.
+
+Tue Jun 25 01:17:50 1996  Jeffrey A. Law  <law@cygnsu.com>
+
+	* h8300/h8300.c (function_prologue): Update "monitor" prologues.
+	(function_epilogue): Similarly.
+
+	* pa/pa.h (PARSE_LDD_OUTPUT): Handle dynamic libraries that are
+	loaded "statically".
+
+Mon Jun 24 19:48:36 1996  Joel Sherrill  <joel@merlin.gcs.redstone.army.mil>
+
+	* configure ({i386,i960,m68k,powerpc,sparc}-rtems): New targets.
+	* i386/go32-rtems.h, i386/i386-rtems.h: New files.
+	* i960/i960-rtems.h: New file.
+	* m68k/m68k-rtems.h: New file.
+	* rs6000/powerpc-rtems.h: New file.
+	* sparc/sparc-rtems.h: New file.
+
+Mon Jun 24 23:09:22 1996  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c: (create_definition): Diagnose `#define #' only once.
+
+Mon Jun 24 11:42:58 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* i386/cygwin32.h, rs6000/cygwin32.h (CPP_PREDEFINES): For consistency,
+	change to define WIN32, WINNT, and CYGWIN32.
+
+Mon Jun 24 10:46:50 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.md (floatsidf2*): Move the xor of the argument into the
+	define_insn, since it confuses inline function expands.
+
+Fri Jun 21 20:40:17 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* mips.md (call_internal1, call_value_internal1): Delete obsolete code.
+	(call_internal2, call_value_internal2, call_value_multiple_internal2):
+	Delete obsolete code.  Explicitly load SYMBOL_REF into register.
+	(call_value): Change Pmode to SImode in gen_call_value_internal0 call.
+
+Thu Jun 20 12:20:33 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* configure (*-aix*): If building a cross compiler, use t-xnewas
+	instead of t-newas.
+
+	* rs6000.c (num_insns_constant_wide): Fix typo if HOST_WIDE_INT
+	has more than 32 bits.
+
+Wed Jun 19 17:50:33 1996  Richard Henderson  <richard@atheist.tamu.edu>
+
+	* combine.c (move_deaths): New parameter maybe_kill_insn.
+	Don't move note if reg killed by maybe_kill_insn.
+	(try_combine): Pass new arg to move_deaths.
+	
+Wed Jun 19 10:44:47 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* toplev.c (flag_keep_static_consts): Define.
+	(f_options): Add "keep-static-consts" entry.
+	(compile_file): Check it in addition to !optimize for emitting
+	static const variables.
+
+Tue Jun 18 23:37:20 1996  Doug Evans  <dje@cygnus.com>
+
+	* i386/cygwin32.h (ASM_OUTPUT_SOURCE_LINE): Local symbols begin with L.
+
+Tue Jun 18 12:00:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* varasm.c (asm_output_aligned_bss): Don't emit a skip of size 0.
+
+Tue Jun 18 06:24:28 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* integrate.c (expand_inline_function): Add missing call to
+	force_operand when getting structure_value_addr into reg.
+
+	* alpha.c (override_options): Allow EV4/5 or 21064/21164 for cpu.
+	Clean up handling of floating-point options.
+	* alpha.h (TARGET_SWITCHES): Have all -mieee options turn
+	on MASK_IEEE_CONFORMANT.
+	(TARGET_DEFAULT): Use symbolic value.
+	* alpha.md: When not involving named pattern, update condition
+	to include alpha_tp != ALPHA_TP_INSN.
+	Don't do float_extend as part of other pattern when ALPHA_TP_INSN.
+	(extendsfsd2): Split into two patterns, depending on 
+	value of alpha_tp.
+
+	* mips/iris6.h (ASM_SPEC): Treat -o32 as -32 and -n64 same as -64.
+	* mips.c (override_options): Likewise.	
+
+	* genattrtab.c (fatal): Declare A1 and A2 as char *.
+
+	* function.c (find_temp_slot_from_address): Check for overlap
+	from BASE_OFFSET if X is PLUS of virtual_stack_vars_rtx and const.
+
+	* flow.c (flow_analysis): Fix typo in last change.
+
+	* expr.c (expand_builtin, case BUILT_IN_{SET,LONG}JMP): Properly
+	handle case when ptr_mode != Pmode.
+
+	* combine.c (try_combine): Don't use split if dest of new I2
+	is used between I2 and I3.
+
+	* c-typeck.c (pointer_int_sum): Convert integer to both signedness
+	and precision of sizetype.
+	* explow.c (convert_memory_address, case PLUS, MULT): Don't commute
+	operation with extension if not adding small integer.
+
+	* Makefile.in (BOOT_LANGUAGES): New variable.
+	(bootstrap): Use it to select languages for stage1.
+	* configure (extra_host_objs): New variable.
+	Separate files needed for target and host and concatenate list.
+	(extra_gcc_objs): Use setting for host, not target.
+	(objc_thread_file): Start with it as null, then don't include "thr-".
+	Print name of file after others and in same format.
+	(alpha-*-winnt*, i[3456]86-*-winnt): oldnames.o is in extra_host_objs.
+	(all_boot_languages): New variable.
+	Set from boot_language variable in config-lang.in.
+	Defines value of BOOT_LANGUAGES in Makefile.
+	(Makefile): Set target to the canonical form of target.
+
+Mon Jun 17 22:37:07 1996  Mike Meissner  <meissner@rtl.cygnus.com>
+
+	* rs6000/win-nt.h (ASM_DECLARE_FUNCTION_NAME): Put function
+	descriptor in .reldata, not .text.
+
+Mon Jun 17 16:05:34 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* ginclude/stddef.h (wint_t): Don't wrap with #ifndef __cplusplus.
+
+Mon Jun 17 15:03:20 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* mips.c (mips_split_addresses): New variable.
+	(simple_memory_operand): Add comment about mode check.  Add check
+	for LO_SUM.
+	(call_insn_operand): OP is now an addresses instead of a MEM.
+	(move_operand, mips_check_split): New functions.
+	(mips_count_memory_refs): Add check for LO_SUM.
+	(mips_move_1word): Add HIGH support.
+	(mips_address_cost): Delete check for HIGH.
+	(output_block_move): Handle LO_SUM addresses.
+	(override_options): Set mips_split_addresses.
+	(print_operand_address): Add LO_SUM support.
+	* mips.h (mips_split_addresses, mips_check_split, move_operand):
+	New declarations
+	(GO_IF_LEGITIMATE_ADDRESS): Reject constant addresses when
+	mips_split_addresses is TRUE.  Add LO_SUM support.
+	(LEGITIMIZE_ADDRESS): Add LO_SUM support.
+	(PREDICATE_CODES): Modify call_insn_operand support.  Add
+	move_operand.
+	* mips.md (memory): Change r4100/r4300 support.
+	(imuldiv): Add r4300 support.
+	(high, low): New patterns.
+	(movsi, movdi): Add LO_SUM support.
+	(movsi_internal1, movsi_internal2): Use move_operand instead of
+	general_operand.
+	(movstrsi_internal, movstrsi_internal2): Delete R constraint.
+	(call, call_value): Pass address instead of MEM to call_insn_operand.
+	Call gen_call_{value_}internal0 instead of internal1.
+	(call_internal0, call_value_internal0, call_multiple_internal0):
+	New patterns.
+	(call_internal1, call_internal2, call_value_internal1,
+	call_value_internal2, call_value_multiple_internal2): Add explicit
+	MEM before target address.
+
+Sun Jun 16 23:05:16 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* configure (hppa*-hp-hpux10*): Use new pa-hpux10 configuration file.
+	(hppa*-hp-hpux*): Use hpux9 configuration files by default.
+	* pa/pa-hpux10.h: New file.
+	* pa/pa-ghpux9.h: Deleted.  No longer used.
+
+Sat Jun 15 04:35:51 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
+
+	* i386/gnu.h (LINK_SPEC): Remove -rpath /lib/ option.
+	Ignore -ibcs option.
+
+Thu Jun 13 14:49:41 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* gen-protos.c (main): Change argv[i] to argv[0][i].
+
+Thu Jun 13 10:46:24 1996  Doug Evans  <dje@cygnus.com>
+
+	* gcc.c (pfatal_pexecute): Delete code to check errno < sys_nerr.
+
+Wed Jun 12 21:47:10 1996  Eliot Dresselhaus  <dresselh@rft30.nas.nasa.gov>
+
+	* alpha.c (alpha_cpu, alpha_cpu_string): New variables.
+	(override_options): Process -mcpu= value.
+	(alpha_adjust_cost): Handle adjustments for EV5.
+	* alpha.h (enum processor_type): New enum.
+	(alpha_cpu, alpha_cpu_string): New declarations.
+	(target_options): Add "cpu=".
+	(RTX_COSTS): Adjust values for EV5.
+	* alpha.md: Add scheduling rules for EV5.
+
+Tue Jun 11 17:51:03 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-common.c (check_format_info): Change text of message about use
+	of `0' with precision.
+
+Tue Jun 11 15:14:10 1996  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.h (TARGET_SCHEDULE_PROLOGUE): New. Allows prologue to
+	be emitted as asm or rtl.
+
+	* i386.c (function_prologue): Emit prologue as asm.
+	(override_options): Don't emit rtl for prologue if -fpic.
+
+Tue Jun 11 14:41:01 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/eabi.asm (__eabi): Fix normal code so that it properly
+	loads up r2/r13 if needed again.
+
+	* rs6000/sysv4.h (CPP_ENDIAN_SPEC): Call cpp_endian_default, not
+	cpp_endian_default_spec.
+
+Mon Jun 10 15:10:56 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* local-alloc.c (update_equiv_regs): Ignore insns that read or
+	write registers that are likely to be spilled.
+
+	* pa.h (cmp_type): Add CMP_PSI.
+	(FUNCTION_POINTER_COMPARISON_MODE): Define.
+	* pa.md (cmppsi): New expander.
+	(plabel_dereference): New pattern
+
+Mon Jun 10 14:56:14 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/sol2.h (SKIP_ASM_OP): Delete, Solaris accepts .space,
+	like rest of PowerPC V4 ports.
+
+	* rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Emit .lcomm if not
+	using the .sbss area.  If using the .sbss area, put out
+	appropriate .size directive.
+
+Mon Jun 10 14:53:38 1996  Doug Evans  <dje@cygnus.com>
+
+	Move fork/exec/wait handling into file of its own.
+	* pexecute.c: New file.
+	* Makefile.in (pexecute.o): Add rule.
+	(xgcc): Link in pexecute.o.
+	(protoize,unprotoize): Likewise.
+	* gcc.c (_WIN32): Don't include process.h or declare spawnv{,p}.
+	(pexecute,pwait): Add prototypes.
+	(PEXECUTE_{FIRST,LAST,SEARCH}): Define.
+	(execv,execvp): Delete decls.
+	(perror_exec): Delete.
+	(pfatal_pexecute): New function.
+	(pexecute support): Delete.
+	(execute): -pipe not supported if _WIN32 or OS2.
+	Update call to pexecute.  Fatal error if pexecute fails.  Call pwait.
+	* protoize.c: Include gansidecl.h.
+	(my_execvp): Delete.
+	(choose_temp_base,pexecute,pwait): Declare.
+	(PEXECUTE_{FIRST,LAST,SEARCH}): Define.
+	(execvp): Delete decl.
+	(usage): Fix typo.
+	(gen_aux_info_file): Rewrite to use pexecute/pwait.
+
+	* gcc.c (do_spec_1): Allow leading text in version string.
+	Delete support for default minor number = 0.
+
+Mon Jun 10 11:49:53 1996  Scott Christley <scottc@net-community.com>
+
+	* objc/Makefile (libobjc.a): Don't delete the library.
+
+	* objc/thr.h (objc_set_thread_callback): New function.
+	(objc_thread_callback): Typedef for the hook function.
+	* objc/thr.c (__objc_thread_detach_function): Clear thread storage.
+	Call the thread hook function when first becoming multi-threaded.
+	(objc_set_thread_callback): New function.
+
+	* objc/selector.c (__sel_register_typed_name): Additional parameter
+	that indicates whether name and type parameters are constant or not.
+	* objc/runtime.h (__sel_register_typed_name): Likewise.
+	* objc/init.c (__sel_register_typed_name): Likewise.
+
+	* objc/init.c (__objc_init_protocols): Need to unlock mutex.
+
+Mon Jun 10 11:44:44 1996  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* sparc/t-sol2 (gmon.o): Depend on stmp-int-hdrs.
+	(crt1.o, crti.o, crtn.o, gcrt1.o): Depend on $(GCC_PASSES).
+
+Mon Jun 10 11:29:46 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* flow.c (flow_analysis, find_basic_blocks): Ignore
+	nonlocal_label_list for CALL_INSN that has a REG_RETVAL.
+
+	* c-common.c (decl_attributes, case A_T_UNION): Don't look at fields
+	of union if there aren't any.
+
+Sat Jun  8 22:13:33 1996  Stan Cox <coxs@dg-rtp.dg.com>
+
+	* i386.c (ix86_expand_prologue): Keep pic register load ahead
+	of reference which may use a pic register.
+
+Sat Jun  8 22:13:33 1996  Jim Wilson <wilson@cygnus.com>
+
+	* i386.md (strlensi_unroll4, strlensi_unroll5): Use + not =& for
+	constraint for input/output operand 2.
+
+Sat Jun  8 22:13:33 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+	* i386.h (CONST_COSTS): Even integer constants have a cost.
+	(RTX_COSTS): Take costs of subexpressions into account.
+	If a multiply is actually a shift, use the cost of the shift.
+	* i386/unix.h (SHIFT_DOUBLE_OMITS_COUNT): New macro.
+	* i386/{gas, next, seq-gas}.h (SHIFT_DOUBLE_OMITS_COUNT): Redefine
+	as zero.
+	* i386.c (print_operand): new letter 's'.
+
+Sat Jun  8 15:13:33 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* mips/mips.c (override_options): Add vr4100 and vr4300 support.
+	* mips/mips.h (enum processor_type): Likewise.
+	(MASK_4300_MUL_FIX, TARGET_4300_MUL_FIX): New macros.
+	(TARGET_SWITCHES): Add -mfix4300 option.
+	* mips/mips.md (cpu, memory, imuldiv, adder, mult, divide): Add
+	vr4100 and vr4300 support.
+	(muldf3, mulsf3): Add vr4300 support.
+	(muldf3_internal, muldf_r4300, mulsf3_internal, mulsf_r4300): New
+	patterns.
+
+Sat Jun  8 14:35:23 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* toplev.c (main): Re-enable -gxcoff+.
+
+Sat Jun  8 14:20:14 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* m68k/lb1sf68.asm (__{eq,ne,gt,lt,ge,le}{df,sf}2): Removed
+ 	extraneous comments, constants, labels, etc.
+
+	* m68k/altos3068.h (TARGET_DEFAULT): Use MASK_* macros
+ 	instead of explicit constants in definitions or conditionals.
+	* m68k/{apollo68, aux, ccur-GAS, dpx2, hp320, hp3bsd}.h: Likewise.
+	* m68k/{hp3bsd44, isi-nfp, isi, linux-aout, linux}.h): Likewise.
+	* m68k/{lynx-ng, lynx, m68k-none, m68k-psos, m68kv4}.h): Likewise.
+	* m68k/{mot3300, netbsd, news, next, pbb, plexus, sun2o4}.h): Likewise.
+	* m68k/{sun3, sun3n, tower}.h): Likewise.
+
+Sat Jun  8 13:55:23 1996  Matthias Pfaller  (leo@marco.de)
+
+	* ns32k.md (define_insns for ffs[qhs]i2): Deleted.
+	(define_expand for ffssi2): New pattern.
+
+Sat Jun  8 13:44:14 1996  Stephen L Moshier  (moshier@world.std.com)
+
+	* reload.c (find_equiv_reg): Set need_stable_sp if GOAL is the
+	stack pointer.
+
+Sat Jun  8 13:36:05 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (fixup_var_refs_1, case SIGN_EXTEND): Handle
+	paradoxical SUBREGs as first operand.
+	(fixup_var_regs_1, case SET): Handle paradoxical SUBREGs as
+	first operand of a ZERO_EXTRACT in SET_DEST.
+
+	* c-common.c (enum attrs): Add A_FORMAT_ARG.
+	(init_attribute): Initialize it.
+	(decl_attributes, case A_FORMAT): Clean up error messages.
+	(decl_attributes, case A_FORMAT_ARG): New case.
+	(struct international_format_info): New structure and typedef.
+	(international_format_list): New variable.
+	(record_international_format): New function.
+	(init_format_info): Call it for gettext, dcgettext, and dcgettext.
+	(check_format_info): See if format arg is call to
+	internationalization function.
+
+Fri Jun  7 20:04:40 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* gcc.c (MULTILIB_SELECT): Delete definition.
+	(multilib_select): Delete static initializer.
+	(multilib_obstack, multilib_raw): New global variables.
+	(multilib.h): Include inside multilib_raw definition.
+	(main): Set multilib_select from multilib_raw.
+	* genmultilib: Change output to be a sequence of short strings
+	separated by commas rather than a single long macro definition.
+
+	* cse.c (simplify_binary_operation, case MULT): Check for case
+	where width is larger than HOST_BITS_PER_WIDE_INT, and upper most
+	bit is set.  We can not generate a simple shift in this case.
+
+	* gsyms.h (enum sdb_type): Add T_LNGDBL if EXTENDED_SDB_BASIC_TYPES.
+	(enum sdb_masks): Add EXTENDED_SDB_BASIC_TYPES masks.
+	* sdbout.c (gsyms.h): Include if CROSS_COMPILE is defined.
+	(plain_type_1): Use TYPE_PRECISION instead of TYPE_SIZE.
+	Add check for LONG_DOUBLE_TYPE_SIZE if EXTENDED_SDB_BASIC_TYPES.
+	* i960/i960.h (EXTENDED_SDB_BASIC_TYPES): Define.
+	(PUT_SDB_TYPE): Delete now unnecessary shifting and masking.
+
+	* i960/i960.h (i960_output_move_{double,quad}): Declare.
+
+Fri Jun  7 19:22:09 1996  Scott Christley <scottc@net-community.com>
+
+	* Makefile.in (OBJC_THREAD_FILE): New variable.
+	* configure (objc_thread_file): Set new variable to appropriate
+	values based upon target operating system; default is `thr-single'.
+	* objc/Makefile (OBJC_THREAD_FILE): Add target and dependency.
+	(thr.o): Remove OS specific thread files as dependencies.
+	* objc/thr-decosf1.c: Now compiles as a separate source file, so
+	include appropriate Objective-C headers.
+	* objc/thr-{mach,os2,posix,irix,single,solaris,win32}.c: Likewise.
+	* objc/thr.c: Remove inclusion of source files.
+	* objc/thr.h (__objc_thread_exit_status): Declare global variable.
+	* objc/thr-pthreads.c: New file.
+
+Fri Jun  7 19:04:04 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+ 	* m68k.h (TARGET_SWITCHES): Treat -m68302 like -m68000 and -m68332
+	like -m68020; remove -mno-68302 and -mno-68332.
+
+Fri Jun  7 12:06:12 1996  Per Bothner  <bothner@deneb.cygnus.com>
+
+	* expr.c (safe_from_p):  Allow Chill-style variable-sized arrays.
+
+Thu Jun  6 23:11:11 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300.c (h8300_monitor_function_p): New function.
+	(h8300_os_task_function_p): Likewise.
+	(os_task, monitor): Variables to note if the current
+	function is an os_task or monitor.
+	(function_prologue): Set monitor and/or os_task as needed.  Handle
+	os_task and monitor functions.
+	(function_epilogue): Clear monitor and os_task.  Handle os_task and
+	monitor functions.
+	(h8300_valid_machine_decl_attribute): Accept "OS_Task" and
+	"monitor".
+
+Thu Jun  6 20:01:54 1996  Per Bothner  <bothner@cygnus.com>
+
+	* gen-protos.c (progname):  New variable (needed by cppalloc.c).
+	(main):  Set progname.
+
+	* cpplib.h (struct parse_file):  Removed.
+	(CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, CPP_OUT_BUFFER):  New macros.
+	* cpphash.c (cpp_lookup):  Change struct parse_file -> cpp_reader.
+
+	* cpplib.c (init_parse_option):  Renamed to cpp_options_init.
+	(push_parse_file):  Renamed to ...
+	(cpp_start_read):  Change to return 1 on success, 0 on failure.
+	(init_parse_file):  Renamed to cpp_reader_init.
+	* cppmain.c (main):  Use CPP_SET_WRITTEN and cpp_fatal.
+	Use renamed function names, and return protocols.
+	* fix-header.c (read_scan_file):  Likewise.
+
+	* cpperror.c (cpp_message):  Generalize for "fatal" errors.
+	(cpp_fatal):  New function (just calls cpp_message).
+	* cpplib.c (cpp_start_read, cpp_handle_options, cpp_finish,
+	parse_goto_mark, parse_move_mark):  Use cpp_fatal rather than fatal.
+
+	* fix-header.c (check_macro_names):  Fix struct parse_file->cpp_reader.
+	* cpplib.c (newline_fix):  Remove unused function.
+
+Thu Jun  6 19:47:26 1996  Jim Wilson  <wilson@cygnus.com>
+
+	Changes to support parameters and return values in multiple
+	non-contiguous locations.
+	* calls.c (expand_call): Handle NIL in PARALLEL.  Handle PARALLEL
+	parameter in REG.  Handle PARALLEL return value in VALREG.
+	(emit_library_call, emit_library_call_value): Abort for PARALLEL.
+	(store_one_arg): Delete code for handling EXPR_LIST.
+	* expr.c (emit_group_load, emit_group_store): New functions.
+	(use_group_regs): New function.
+	(emit_push_insn): Handle PARALLEL parameter in REG.
+	(expand_assignment): Handle PARALLEL to_rtx.
+	(store_expr): Handle PARALLEL target.
+	* expr.h (emit_group_load, emit_group_store, use_group_regs): New
+	declarations.
+	* function.c (assign_parms): Handle PARALLEL parameter in ENTRY_PARM.
+	* stmt.c (expand_value_return): Handle PARALLEL return_reg.
+
+	* mips/abi64.h (TYPE_DEPENDENT_REG): Delete.
+	* mips/mips.c (function_arg): Return PARALLEL for structure with
+	aligned double fields.
+	(type_dependent_reg): Delete.
+	(mips_function_value): Return PARALLEL for structure
+	with two floating point fields.
+	* mips/mips.md (call_value): Handle PARALLEL in operands[0].
+	(call_value_multiple_internal2): New pattern.
+	* pa/pa.h (FUNCTION_ARG): General PARALLEL instead of EXPR_LIST.
+	* rs6000/rs6000.c (init_cumulative_args): Change EXPR_LIST to PARALLEL
+	in comments.
+	(function_arg): Generate PARALLEL instead of EXPR_LIST.
+
+Thu Jun  6 18:21:27 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (assign_parms): Tighten up code that makes REG_EQUIV
+	notes for parms.
+
+	* fold-const.c (fold): Don't do anything with evaluated SAVE_EXPR.
+
+Thu Jun  6 17:54:07 1996  J.T. Conklin  <jtc@cygnus.com>
+
+	* m68k.h (TARGET_SWITCHES): Group all floating point options.
+	When an fp option is selected, unset bits used for other mutually
+	exclusive fp options.
+	(OVERRIDE_OPTIONS): Remove special case for SUPPORT_SUN_FPA;
+	bits used for 68881 and SKY are now cleared by TARGET_SWITCHES.
+
+	* m68k.md (movsi_const0, movhi): Favor clr with TARGET_5200.
+	(add[qhs]3): Don't use two addqw/subqw insns to add small integers to
+	an address register with TARGET_68060.
+	(stack push peephole): Use moveq.l with TARGET_5200 (when appropriate).
+
+	* m68k.h (MASK_5200, TARGET_5200): New macros.
+	(TARGET_SWITCHES): Add "m5200".
+	(LEGITIMATE_INDEX_P): Add TARGET_5200 to conditional expression.
+	* m68k.c (const_method): Do not synthesize long constants
+ 	with byte or word operations with TARGET_5200.
+	* m68k.md: Disable byte and word arithmetic, rotate, integer
+ 	divide, dbcc, etc. insns for TARGET_5200.
+	* m68k-none.h: (CPU_FPU_SPEC, CPP_SPEC, ASM_SPEC): Support m5200.
+
+Thu Jun  6 17:32:32 1996  Paul Eggert  <eggert@twinsun.com>
+
+	* fixproto (subdirs): Work around Solaris 2.5
+	/usr/xpgr/bin/sed problem with \+\+.
+
+Thu Jun  6 15:06:27 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* c-decl.c (grokdeclarator): Call pop_obstacks after creating
+	TYPE_DECL.
+
+	* loop.c (strength_reduce): If HAVE_cc0 defined, disable auto_inc_opt
+	if it would put an insn between a cc0 setter/user pair.
+
+Thu Jun  6 13:06:54 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): If __sun__ is
+	defined, treat that as little endian.
+
+Wed Jun  5 20:04:53 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* i960/i960.h (ROUND_TYPE_ALIGN): Add check for TYPE_PACKED.
+
+	* sh/sh.h (SHORT_IMMEDIATES_SIGN_EXTEND): Define.
+	* sh/sh.md (branch_true): Add comment about T-bit compares.
+
+Tue Jun  4 23:08:34 1996  Per Bothner  <bothner@deneb.cygnus.com>
+
+	* cpplib.h, cpplib.c:  Remove support for !STATIC_BUFFERS.
+	* cpplib.h:  Use unsigned char rather than U_CHAR.
+	* cpplib.h (cpp_reader):  Add destructor #ifdef __cplusplus.
+	(cpp_cleanup):  New prototype.
+	* cpplib.c (special_symbol, do_once, do_include, cpp_get_token):
+	Compare cpp_buffer against CPP_NULL_BUFFER, not NULL.
+
+	* cpplib.c (dump_special_to_buffer):  New function.
+	(initialize_builtins):  Use it.
+
+Wed Jun  5 19:10:22 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa/pa.h (TEXT_SPACE_P): Fix thinko in last change.
+
+Wed Jun  5 16:25:51 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.h (ASM_DEFAULT_SPEC): Default to "", not -mpwr.
+
+	* sysv4.h (SUBTARGET_SWITCHES): Add -mshlib.
+	(LINK_PATH_SPEC): Add -compat-bsd support from Solaris.
+	(LINK_SPEC): Eliminate %{b} and %{G}, since they conflict with GCC
+	switches.  Defer shared library support to LINK_SHLIB_SPEC.  Defer
+	target selection to LINK_TARGET_SPEC.
+	(LINK_SHLIB_SPEC): Provide two different versions, depending on
+	whether shared libraries are default or not.  Make shared
+	libraries not default until linker is fixed.
+	(LINK_OS_*_SPEC): New specs for OS specific linker switches.
+	(SUBTARGET_EXTRA_SPECS): Add new specs.
+
+	* {sol2,sysv4}.h (LINK_SPEC): Move Solaris link into the general
+	link spec.
+
+	* {sysv4,sysv4le,eabile}.h (LINK_TARGET_SPEC): Only pass -oformat
+	to the linker if the user is changing the default endian format.
+
+	* {sol2,linux,eabisim,eabilesim}.h (LINK_OS_DEFAULT_SPEC): Define
+	to use the appropriate OS link spec.
+
+Wed Jun  5 16:35:10 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* ginclude/stddef.h: Fix typo: TYPE_ptrdiff_t to _TYPE_ptrdiff_t.
+
+Wed Jun  5 15:52:57 1996  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* varasm.c (output_constructor):  Handle RANGE_EXPR in array index.
+
+Wed Jun  5 13:45:54 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* sparc.md (*call_{address,symbolic}_struct_value_sp32): Allow
+	operand 2 to be const0_rtx.
+
+Tue Jun  4 16:43:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* varasm.c (make_decl_rtl): Don't update DECL_ASSEMBLER_NAME for
+ 	local statics.
+
+	* c-decl.c (start_decl): Always set DECL_COMMON on statics.
+	* varasm.c (assemble_variable): Only treat vars with DECL_COMMON
+ 	as common.
+
+Tue Jun  4 14:55:49 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.c (reloc_needed): New function.
+	* pa.h (TEXT_SPACE_P): Variables/constants with initializers
+	requiring relocs never live in the text space.
+
+Tue Jun  4 14:10:46 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* sh.c (fp_zero_operand): Do not accept minus zero.
+
+	* sh.h (ASM_OUTPUT_LOOP_ALIGN): Define.
+	(ASM_OUTPUT_ALIGN_CODE): Define.
+	(ADJUST_INSN_LENGTH): Add in bytes that may be added by
+	alignment.
+	* sh.c (output_branch): Run ADJUST_INSN_LENGTH in reverse to get
+	correct length.  Just call abort rather than returning "bad".
+	(find_barrier): Adjust limits for possible alignment.
+
+Tue Jun  4 09:35:05 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/t-solaris: New target config file for PowerPC Solaris
+	without gas.
+
+	* rs6000/t-ppc: Eliminate all multilib varients except for
+	software floating point.
+
+	* configure (powerpcle-*-solaris*): If not --with-gnu-as, use
+	t-solaris, not t-ppc.
+
+	* rs6000/sol2.h (MULTILIB_DEFAULTS): Add correct defaults for
+	Solaris.
+
+	* rs6000/sysv4.h (ASM_OUTPUT_SECTION_NAME): Clone from svr4.h, omit
+	@progbits, since Solaris assembler doesn't like it.
+	(LIB_SOLARIS_SPEC): If -msolaris-cclib, add libabi.a.
+	({START,END}FILE_SOLARIS_SPEC): If -msolaris-cclib, use explicit
+	pathnames for the Solaris compiler start/end files.
+	(ASM_SPEC): Pass -mno-regnames to the assembler.
+
+Mon Jun  3 19:40:10 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* mips/abi64.h (CPP_SPEC): Make -mabi=n32 the default.
+	* mips/iris6.h (MIPS_ISA_DEFAULT, MIPS_ABI_DEFAULT, MULTILIB_DEFAULTS,
+	ASM_SPEC, STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): Likewise.
+	* mips.md (tablejump_internal4+1): Fix typo in condition.
+	* mips/x-iris6 (CC, OLDCC): Define to be `cc -32'.
+
+Mon Jun  3 07:57:35 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.def ([LR]SHIFT_EXPR): Remove `a' from printed names.
+
+	* sparc.md (call): Mask unimp operand to 12 bits, just like Sun.
+
+	* expr.c (store_field): Fix typo in last change; update TARGET addr.
+
+	* c-decl.c (start_struct): Set TYPE_PACKED from flag_pack_struct.
+	(start_enum): Likewise but from flag_short_enums.
+	(finish_enum): Test TYPE_PACKED, not flag_short_enums.
+	* stor-layout.c (layout_decl): Test DECL_PACKED and TYPE_PACKED
+	instead of flag_pack_struct.
+	(layout_record): Likewise.
+
+Sun Jun  2 19:41:14 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* mips.md (tablejump_internal3, tablejump_internal4): New patterns.
+	(tablejump): Use them for PIC code.
+
+Fri May 31 17:26:53 1996  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.c (ix86_expand_epilogue): Don't generate references to an
+	exposed vacated stack.
+	* i386.md (epilogue_set_stack_ptr): New.
+
+Fri May 31 15:07:49 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* mips/abi64.h: Add -mabi=n32 support.
+	(ABI_64BIT): Delete.
+	(TARGET_LONG64, CPP_SPEC, STACK_BOUNDARY, MIPS_STACK_ALIGN,
+	GP_ARG_LAST, FP_ARG_LAST, SUBTARGET_CONDITIONAL_REGISTER_USAGE,
+	MAX_ARGS_IN_REGISTER, FUNCTION_ARG_PADDING, RETURN_IN_MEMORY,
+	SETUP_INCOMING_VARARGS): Modify.
+	(REG_PARM_STACK_SPACE): Ifdef out.
+	(TARGET_DEFAULT, SUBTARGET_TARGET_OPTIONS): Define.
+	* mips/iris6.h: Add -mabi=n32 support.
+	(TARGET_DEFAULT, ASM_OUTPUT_INTERNAL_LABEL,
+	ASM_GENERATE_INTERNAL_LABEL): Delete.
+	(MULTILIB_DEFAULTS, ASM_SPEC, EXTRA_SECTION_FUNCTIONS,
+	ASM_OUTPUT_ALIGNED_LOCAL, STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
+	Modify.
+	(MIPS_ABI_DEFAULT, LOCAL_LABEL_PREFIX): Define.
+	* mips/mips.c: Add -mabi=n32 support.
+	(mips_const_double_ok, mips_move_1word, mips_move_2words,
+	function_arg, override_options, mips_asm_file_start,
+	compute_frame_size, save_restore_insns, function_prologue,
+	mips_expand_prologue, function_epilogue, mips_function_value): Modify.
+	(mips_abi, mips_abi_string): Define
+	* mips/mips.h: Add -mabi=n32 support.
+	(ABI_64BIT): Delete.
+	(TARGET_OPTIONS, INITIAL_ELIMINATION_OFFSET, GO_IF_LEGITIMATE_ADDRESS,
+	CONSTANT_ADDRESS_P, LEGITIMATE_CONSTANT_P, LEGITIMIZE_ADDRESS,
+	ASM_OUTPUT_ADDR_DIFF_ELT): Modify.
+	(enum mips_abi_type, SUBTARGET_TARGET_OPTIONS): Define.
+	(mips_abi, mips_abi_string): Declare.
+	* mips/mips.md (jump, tablejump_internal1, tablejump_internal2): Add
+	-mabi=n32 support.
+	* mips/t-iris6 (MULTILIB_OPTIONS): Add -mabi=n32 support.
+	* mips/xm-irix6.h (HOST_BITS_PER_LONG): Use _MIPS_SZLONG not 64.
+	* ginclude/va-mips.h (va_start): Add -mabi=n32 support.
+
+Fri May 31 14:45:30 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -msolaris-cclib to use
+	the Sun compiler's crt files instead of ours.
+	({START,END}FILE_SOLARIS_SPEC): If -msolaris-cclib, use the Sun
+	compiler's crt files instead of ours.
+	(SUBTARGET_OVERRIDE_OPTIONS): Don't set -msdata=data for Solaris.
+	(SBSS_SECTION_ASM_OP): For Solaris, don't use @nobits.
+	(CPP_OS_SOLARIS_SPEC): Remove -Asystem(unix) and -Asystem(svr4).
+
+	* rs6000/t-ppc{,gas} (MULTILIB*): Add Solaris specific multilibs.
+
+	* rs6000/eabi{,le}sim.h (*_DEFAULT_SPEC): Rather than using
+	duplicate definitions, just use %(...) so that there is only one
+	place in the specs file where the switches are defined.
+	* rs6000/{linux,sol2}.h (*_DEFAULT_SPEC): Ditto.
+
+	* rs6000/sol2.h (CPP_PREDEFINES): Use the standard one in sysv4.h.
+	(RS6000_ABI_NAME): Default is solaris.
+	(ASM_OUTPUT_ALIGNED_LOCAL): Don't redefine.
+
+	* rs6000/sol-c{i.asm,n.asm,c0.c}: Provide more things that Solaris
+	needs for program startup.
+
+Thu May 30 21:57:34 1996  Mike Stump  <mrs@cygnus.com>
+
+	* tree.def (OFFSET_REF): Remove.
+	* expr.c (expand_expr, case OFFSET_REF): Likewise.
+	* tree.c (substitute_in_expr): Remove OFFSET_REF code.
+
+Wed May 29 14:54:44 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/eabi.asm (__eabi): If not -mrelocatable, don't assemble
+	relocatable functions, so that it can be assembled with the
+	Solaris assembler.
+
+	* rs6000/sysv4.h (CPP_SYSV_SPEC): Define _RELOCATABLE if
+	-mrelocatable-lib as well as -mrelocatable.
+
+	* rs6000.c (rs6000_file_start): New function to print some more
+	information to the asm file.
+	* rs6000/{sysv4,win-nt,rs6000}.h (ASM_FILE_START): Call it.
+
+Tue May 28 15:21:24 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.h (FIRST_PSEUDO_REGISTER): Bump to 77.  The new fpmem
+	register represents the memory location used for float/int
+	conversions.
+	({FIXED,CALL_USED}_REGISTERS): Add support for the fpmem pseudo
+	register.
+	(REG_ALLOC_ORDER): Ditto.
+	(HARD_REGNO_{NREGS,MODE_OK}): Ditto.
+	(REGISTER_MOVE_COST): Ditto.
+	(reg_class): Ditto.
+	(REG_CLASS_{NAMES,CONTENTS}): Ditto.
+	(REGNO_REG_CLASS): Ditto.
+	(PREFERRED_RELOAD_CLASS): Ditto.
+	(CLASS_{MAX_NREGS,CANNOT_CHANGE_SIZE,MAX_NREGS}): Ditto.
+	(rs6000_stack): Ditto.
+	({,DEBUG_}REGISTER_NAMES): Ditto.
+	(FPMEM_{REGNO_P,REGNUM}): New macros for fpmem register.
+	(rs6000_fpmem_{offset,size}): New global variables.
+	(RS6000_VARARGS_OFFSET): Fpmem temporary storage is located
+	between outgoing arg area and varargs save area.
+	(STARTING_FRAME_OFFSET): Ditto.
+	(STACK_DYNAMIC_OFFSET): Ditto.
+	(PREDICATE_CODES): Add fpmem_operand.
+	({count_register,fpmem}_operand): Add declarations.
+
+	* rs6000.c ({rs6000,alt}_reg_names): Add support for fpmem
+	'register'.
+	(rs6000_fpmem_{offset,size}): New global variables.
+	(fpmem_operand): Return true for fpmem registers.
+	(gpc_reg_operand): The fpmem register is not general purpose.
+	(includes_rshift_p): Add casts to silence warnings from Solaris
+	PowerPC host compiler.
+	(print_operand): Add 'v' operand type for the upper 16 bits of
+	signed constants, to placate the Solaris assembler.
+	({rs6000,debug}_stack_info): Add support for fpmem 'register'.
+	(output_epilog): Ditto.
+
+	* rs6000.md (addsi3,movsi,movsf,movdi): Use %v for constants with
+	the upper 16 bits, to get the sign correct for PowerPC Solaris.
+	(float{,uns}sidf2,fix_truncdfsi2): Rewrite to use 'register' 76
+	for the memory location used to convert between float and integer.
+
+	* sysv4.h (ASM_OUTPUT_{CON,DE}STRUCTOR): Use code laid down in
+	.init and .fini for making constructors and destructors under
+	Solaris.
+	(ASM_SPEC): Do not pass -u to the assembler.
+	(CC1_SPEC): -mrelocatable implies -meabi.
+
+	* sol2.h (RS6000_ABI_NAME): Default ABI is Solaris, not System
+	V.4.
+	(ASM_OUTPUT_ALIGNED_LOCAL): Don't define a Solaris specific
+	method.
+
+Mon May 27 06:39:13 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_builtin, case BUILT_IN_{LONG,SET}JMP):
+	Convert block address from ptr_mode to Pmode.
+
+Sun May 26 20:05:43 1996  Doug Evans  <dje@cygnus.com>
+
+	* gcc.c (MSDOS pexecute): Call xmalloc, not malloc.
+
+Sun May 26 08:31:54 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure (vax-*-{sysv}): tm_file and xm_file now list.
+	(vax-*-ultrix): tm_file is now list.
+	(we32k-att-sysv*): xm_file now list.
+	* vax/xm-netbsd.h: Deleted.
+	* vax/netbsd.h: No longer include vax.h and config/netbsd.h.
+	* vax/ultrix.h, vax/vaxv.h: No longer include vax.h.
+	* vax/xm-vaxv.h: No longer include xm-vax.h.
+	* xm-we32k.h: No longer include xm-svr3.h.
+
+	* configure: Separately set target_cpu_default for two
+	case statements and then combine if both set.
+	(alpha-*-winnt3): tm_file and xm_file are now list.
+	Set target_cpu_default to 64.
+	* winnt/config-nt.bat: Make .h files properly for Alpha.
+	* alpha.h (WINDOWS_NT): No longer defined and used.
+	(MASK_WINDOWS_NT, TARGET_WINDOWS_NT): New macros.
+	(ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_WINDOWS_NT.
+	* alpha.c (output_prolog): Test TARGET_WINDOWS_NT, not WINDOWS_NT.
+	* alpha.md: Likewise.
+	* alpha/config-nt.sed: Properly set tm_file and {build,host}_xm_file.
+	* alpha/win-nt.h: Don't include alpha.h
+	(WINDOWS_NT): No longer define.
+	* alpha/xm-winnt.h: Don't include xm-alpha.h and winnt/xm-winnt.h.
+
+Fri May 24 12:34:22 1996  Doug Evans  <dje@seba.cygnus.com>
+
+	* configure (cpu_type): Add case for arm.
+	(sparclet-*-aout*): Delete extra_headers.
+
+	* varasm.c (asm_output_bss): New argument DECL.
+	Use ASM_DECLARE_OBJECT_NAME if defined.
+	(asm_output_aligned_bss): Likewise.
+	(assemble_variable): Pass DECL to ASM_OUTPUT{,_ALIGNED}_BSS.
+	* arm/aout.h (ASM_OUTPUT_ALIGNED_BSS): Update.
+	* h8300/h8300.h (ASM_OUTPUT_BSS): Update.
+	* i386/linux.h (ASM_OUTPUT_ALIGNED_BSS): Update.
+	* i386/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Update.
+	* m68k/coff.h (ASM_OUTPUT_ALIGNED_BSS): Update.
+	* m68k/linux.h (ASM_OUTPUT_ALIGNED_BSS): Update.
+	* m68k/m68k-aout.h (ASM_OUTPUT_BSS): Update.
+	* rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Update.
+	* rs6000/win-nt.h (ASM_OUTPUT_ALIGNED_BSS): Update.
+	* sparc/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Update.
+
+Thu May 23 19:55:52 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* combine.c (set_nonzero_bits_and_sign_copies): Set
+	reg_sign_bit_copies to one not zero to indicate that the value
+	is unknown.
+
+Thu May 23 18:39:24 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* config/netbsd.h (SWITCH_TAKES_ARG): Add -R.
+	(LINK_SPEC): Add %{R*}.
+
+	* m68k/lb1sf68.asm: Construct exception masks at compile time
+ 	instead of or'ing in bits at run time.
+
+Thu May 23 15:53:06 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* sh/sh.md: Add new instruction types fp and fpdiv.  Set new
+	instruction types where appropriate.  Add function unit fp.
+	Claim that store instructions use function unit memory.
+
+Thu May 23 00:36:19 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300/h8300.h (CONSTANT_ADDRESS_P): Don't accept CONST or HIGH
+	on the H8/300H.
+	* h8300/h8300.md: Use "m" rather than "o" constraint everywhere
+	appropriate.  Cleanup use of "i" and "n" constraints.
+
+Wed May 22 17:43:37 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* fixincludes (pthread.h): Add extern to __page_size* declarations
+	for AIX 4.1.x.
+
+	* combine.c (nonzero_bits): Don't assume arg pointer has same
+	alignment as stack pointer.
+
+Wed May 22 16:09:05 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/sysv4.h (LINK_START_DEFAULT_SPEC): Spell macro correctly.
+	(LIB_DEFAULT_SPEC): Provide default version.
+
+Wed May 22 11:23:57 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+	* i386.md (return_pop_internal): new pattern.
+	(pop): disable emitting of bogus move instruction.
+	* i386.c (ix86_expand_epilogue): use gen_return_pop_internal to
+	simultanously return and pop args; removed stray semicolon.
+	* config/linux-aout.h, config/linux.h (SET_ASM_OP): Added for
+	__attribute__ ((alias ())) support.
+
+Wed May 22 08:06:42 1996  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu.edu>
+
+	* combine.c (init_reg_last_arrays, setup_incoming_promotions):
+	Correct prototypes.
+
+Tue May 21 13:42:17 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300/h8300.md (div patterns): Rewrite.
+	(mod patterns): Likewise.
+
+	* pa/pa.c (basereg_operand): Never accept a CONST_INT.
+
+Tue May 21 12:26:40 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* pa/pa-hpux9.h, pa-osf.h (LINK_SPEC): Provide version for Snake.
+
+Tue May 21 07:20:48 1996  Pat Rankin  <rankin@eql.caltech.edu>
+
+	* vax.h (TARGET_NAME): Define unless already defined.
+	(TARGET_VERSION): Print TARGET_NAME.
+	* vax/vms.h (TARGET_NAME): Always redefine.
+	(TARGET_VERSION): Delete; retain vax.h definition.
+
+Mon May 20 14:00:44 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* sh.c (output_file_start): Delete misplaced semicolon.
+
+Mon May 20 11:58:15 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* reorg.c (relax_delay_slots): Call update_block before
+	redirecting a branch past a redundant insn.
+
+Sun May 19 16:40:53 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* Makefile.in (libobjc.a, sublibobjc.a): 'specs' added to
+	dependencies.
+
+Sun May 19 12:25:48 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure: Add new switch to provide default for cpu_type;
+	delete numerous settings of it in main switch.
+	(hppa): Reflect rerrangements below; use new configure features.
+	* pa/pa-gas.h, pa/pa-pro-end.h: New files.
+	* pa/pa1.h, pa/pa1-osf.h, pa/pa1-ghpux.h, pa/pa1-oldas.h: Deleted.
+	* pa/pa1-ghpux9.h, pa/pa1-hpux9.h, pa/pa1-hpux.h: Deleted.
+	* pa/pa1-ghiux.h, pa/pa1-hiux.h, pa/pa-ghpux.h: Deleted.
+	* pa/pa-gux7.h, pa/pa-ghiux.h: Deleted.
+	* pa/pa-hiux.h: No longer include pa-hpux.h.
+	* pa/pa-hpux.h: No longer include pa.h.
+	(TARGET_DEFAULT): Unset before setting.
+	(LINK_SPEC): Provide option for pa1.
+	* pa/pa-hpux7.h: No longer include pa.h.
+	(HP_FP_ARG_DESCRIPTOR_REVERSED): Don't define here.
+	* pa/pa-hpux9.h, pa/pa-oldas.h: No longer include pa-hpux.h.
+	(TARGET_DEFAULT): Don't need to set here.
+	* pa/pa-osf.h: No longer include pa.h.
+	(TARGET_DEFAULT): Don't define; identical to default.
+	* pa/pa-pro.h: No longer include pa.h.
+	Move definitions after include to new file pa-pro-end.h.
+	* pa.h (TARGET_SWITCHES): Include TARGET_CPU_DEFAULT.
+	(TARGET_CPU_DEFAULT): Provide default value.
+	(CPP_SPEC): Test TARGET_CPU_DEFAULT too.
+
+	* Makefile.in (function.o): Includes bc-emit.h.
+	(reg-stack.o): Includes insn-flags.h.
+	* expr.h (function_value): Deleted; no such function.
+	(bc_build_calldesc, bc_runtime_type_code): New declarations.
+	* c-decl.c: Add prototypes for all static functions.
+	* c-iterate.c: Likewise.
+	* dbxout.c: Likewise.
+	(adspath): Delete; never used and has numerous parse errors.
+	* dwarfout.c: If not GNUC, make `inline' null; otherwise, leave alone.
+	Add `static' to inline functions.
+	Add prototypes for static function.
+	* expr.c (bc_runtime_type_code): Delete redundant declaration.
+	* function.c: Include bc-emit.h.
+	({save,restore}_machine_status): Add prototype for args.
+	(bc_runtime_type_code, bc_build_calldesc): Delete redundant decls.
+	(bc_emit_trampoline, bc_end_function): Likewise.
+	* reg-stack.c: Include insn-flags.h.
+	Add prototypes for static functions.
+	(gen_jump, gen_movdf, gen_movxf): Delete redundant declarations.
+	(find_regno_note, emit_jump_insn_before, emit_label_after): Likewise.
+	(swap_rtx_condition): Now static.
+	* sdbout.c: Add prototypes for static functions.
+	(sdbout_parms, sdbout_reg_parms): Delete extra parm to plain_type.
+
+Sun May 19 11:50:10 1996  John Carr <jfc@mit.edu>
+
+	* alpha.c (alpha_emit_conditional_move): Compare to 0 in correct mode.
+
+Sat May 18 20:17:27 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* sh.c (prepare_move_operands): If source is r0, and dest is reg+reg
+	MEM, then copy source to a pseudo-reg.
+	* sh.md (untyped_call): New pattern.
+
+	* unroll.c (copy_loop_body): When update split DEST_ADDR giv,
+	check to make sure it was split.
+	(find_splittable_givs): Fix reversed test of verify_addresses result.
+
+Sat May 18 10:26:04 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.c (unsave_expr_now): Avoid use of NULL_RTX since no rtl.h.
+
+	* configure: Set cpu_default, tm_file, and xm_file early.
+	Remove redundant settings of those, tmake_file, and xmake_file.
+	Use ${tm_file} and ${xm_file} to refer to the main files.
+	Sort some entries for consistency and reformat some others.
+	(rs6000, powerpc): Remove bogus test on host == target.
+	(alpha-*-linux): xm-linux.h no longer includes xm-alpha.
+	(alpha-*-osf*): Remove redundant setting of target_cpu_default.
+	(*-convex-*): Use target_cpu_default instead of separate .h files.
+	(clipper-intergraph-clix*): clix.h no longer includes any files.
+	(i860, i960, pdp11): Reflect removal of includes listed below.
+	* alpha/xm-linux.h: No longer include xm-alpha.h.
+	* clipper/clix.h: No longer include clipper.h and svr3.h.
+	* convex.h: Provide a default for TARGET_DEFAULT.
+	Take "or" of TARGET_DEFAULT and TARGET_CPU_DEFAULT everywhere.
+	* convex/convex{1,2,32,34,38}.h: Deleted.
+	* i860/bsd-gas.h: No longer include bsd.h.
+	* i860/bsd.h: No longer include i860.h.
+	* i860/fx2800.h: No longer include i860/sysv4.h.
+	(OUTPUT_TDESC): No longer define.
+	(ASM_FILE_END): Move redefinition to here.
+	* i860/mach.h: No longer include i860.h.
+	* i860/paragon.h, i860/sysv3.h: No longer include i860.h and svr3.h.
+	* i860/sysv4.h: No longer include i860.h and svr4.h.
+	(ASM_FILE_END): Delete redefinition from here.
+	* i860/xm-fx2800.h: No longer include xm-i860.h.
+	* i860/xm-paragon.h, i860/xm-sysv{3,4}.h: Deleted.
+	* i960/i960-coff.h: No longer include i960.h and dbxcoff.h.
+	* i960/vx960-coff.h: No longer include i960-coff.h.
+	* i960/vx960.h: No longer include i960.h.
+	* pdp11/2bsd.h: No longer include pdp11.h.
+
+	* i370/i370.h: Renamed from mvs.h.
+	* i370/i370.c: Renamed from mvs370.c.
+	* i370/t-i370: Renamed from t-mvs.
+	* i370/xm-i370.h: Renamed from xm-mvs.h.
+	* configure (i370-*-mvs*): Use default names for all files.
+
+	* c-parse.in: Update number of shift/reduce conflicts for objc.
+
+Sat May 18 08:20:17 1996  Dennis Glatting  (dennisg@plaintalk.bellevue.wa.us)
+
+	* m68k/next.h (FINALIZE_TRAMPOLINE): Add missing backslashes.
+
+Fri May 17 19:57:20 1996  Pat Rankin  <rankin@eql.caltech.edu>
+
+	* vax/xm-vms.h (dbxout_resume_previous_source_file): New macro.
+
+Fri May 17 14:20:13 1996  Mike Stump  <mrs@cygnus.com>
+
+	* expr.c (expand_expr, cond TARGET_EXPR): Make TARGET_EXPRs
+	redoable for UNSAVE_EXPR.
+	* stmt.c (expand_decl_cleanup): Wrap the cleanup in an UNSAVE_EXPR
+	to that we can redo it.
+	* tree.c (unsave_expr_now): Handle TARGET_EXPRs fully now.
+	* tree.def (TARGET_EXPR): Add a fourth field so that TARGET_EXPRs
+	are redoable.
+
+	* expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
+	frontend to the backend where it belongs.
+	* tree.c (unsave_expr): Likewise.
+	(unsave_expr_now): Likewise.
+	* tree.def (UNSAVE_EXPR): Likewise.
+	* tree.h (unsave_expr): Likewise.
+	(unsave_expr_now): Likewise.
+
+Fri May 17 15:04:40 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.md (lshrsi3 insns): Add special case code for shifting by
+	0 to avoid bad code generated with no optimization.
+
+Fri May 17 13:50:55 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+        * i386/unix.h (ASM_OUTPUT_MI_THUNK): Define.
+	* i386/{att.h,bsd.h,sun386.h} (ASM_OUTPUT_MI_THUNK): Delete.
+
+Fri May 17 13:34:28 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config/fp-bit.c (_fpdiv_parts): Correct sign handling when
+	dividing zero or infinity by something.
+
+Fri May 17 12:36:36 1996  Doug Evans  <dje@seba.cygnus.com>
+
+	Standardize option output in assembler files.
+	* Makefile.in (toplev.o): Pass -DTARGET_NAME.
+	* arm/aout.h (ASM_OUTPUT_OPTIONS): Delete.
+	(ASM_FILE_START): Delete option output support.
+	* arm/arm.c (output_option, output_options, m_options): Delete.
+	* m88k/m88k.c (output_file_start): Delete option output support.
+	* m88k/m88k.h (ASM_COMMENT_START): Define.
+	* mips/mips.c (target_switches, print_options): Delete.
+	(mips_asm_file_start): Put output of -G,Cpu,ISA here.
+	* mips/mips.h (ASM_COMMENT_START): Change from "\t\t#" to " #".
+	* rs6000/rs6000.c (output_option, m_options, output_options): Delete.
+	* rs6000/rs6000.h (ASM_OUTPUT_OPTIONS): Delete.
+	(ASM_COMMENT_START): Define.
+	(ASM_FILE_START): Delete option output support.
+	* rs6000/sysv4.h (ASM_FILE_START): Likewise.
+	* rs6000/win-nt.h (ASM_FILE_START): Likewise.  Delete duplicate.
+	* sh/sh.c (output_option, m_options, output_options): Delete.
+	(output_file_start): Delete option output support.
+	* sh/sh.h (ASM_FILE_START): Likewise.
+	(ASM_COMMENT_START): Define.
+	* dwarfout.c (*): flag_verbose_asm renamed to flag_debug_asm.
+	* flags.h (flag_debug_asm): Declare.
+	* toplev.c (print_version): New function.
+	(print_single_switch): New arguments pos, max, indent, sep, term.
+	(print_switch_values): New arguments pos, max, indent, sep, term.
+	Update call to print_single_switch.  Output options passed and
+	options enabled.
+	(MAX_LINE): New macro.
+	(flag_debug_asm): Define.
+	(compile_file): Output options to assembler file.
+	(main): Recognize -dA.  Call print_version.  Update call to
+	print_switch_values.
+	(line_position): Deleted.
+
+Fri May 17 10:50:44 1996  Stan Cox  (coxs@dg-rtp.dg.com)
+
+	* i386.c (function_prologue, ix86_expand_prologue,
+	function_epilogue, ix86_expand_epilogue): Generate prologue and
+	epilogue as RTL (prior to scheduling) instead of emitting asm.
+	(override_options): If only -march is given, make it the default -mcpu.
+	* i386.h (FUNCTION_BEGIN_EPILOGUE): Renamed from FUNCTION_EPILOGUE.
+	* i386.md (return, return_internal, prologue, prologue_set_got,
+	prologue_get_pc, epilogue, leave, pop): New patterns for emitting
+	asm from prologue and epilogue RTL.
+	* m88k/t-dgux (T_CFLAGS): Delete.
+	* m88k/x-dgux (X_CFLAGS): New.
+
+Fri May 17 09:54:23 1996  Jim Meyering  (meyering@asic.sc.ti.com)
+
+	* Makefile.in (stamp-crt{,S}): Use -o to avoid conflicts if
+	both of these are built in parallel.
+
+Fri May 17 08:55:19 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expmed.c (store_split_bit_field): Don't assume the alignment
+	of VALUE is the same as the record.
+
+	* configure: Write #define TARGET_CPU_DEFAULT into tm.h
+	instead of defining MAYBE_TARGET_DEFAULT in Makefile.
+	(alpha-*-linux): Set target_cpu_default to 4 and xmake_file to none.
+	(alpha-*-osf*): Set target_cpu_default to 4 if --gas.
+	* Makefile.in (gcc.o, toplev.o, $(out_object_file)):
+	Remove MAYBE_TARGET_DEFAULT.
+
+	* combine.c (insn_cuid): New function.
+	(INSN_CUID): Sometimes call it.
+
+Fri May 17 08:12:37 1996  Scott Christley <scottc@net-community.com>
+
+	* objc/sendmsg.c (objc_get_uninstalled_dtable): New function.
+	* objc/objc-api.h (objc_get_uninstalled_dtable): New declaration.
+
+        * objc/thr-os2.c, objc/thr-posix.c, objc/thr-mach.c: New files.
+        * objc/THREADS.MACH: New file.
+
+ 	* objc/sendmsg.c (nil_method): Deleted from here.
+ 	* objc/nil_method.c: New file.
+ 	* Makefile (OBJC_O): Add dependency for nil_method.c.
+
+	* objc/hash.c (hash_is_key_in_hash): New function.
+	* objc/hash.h: Include objc/objc.h here instead of in objc/hash.c
+	to get BOOL typedef.
+
+Fri May 17 08:01:48 1996  Doug Rupp  (rupp@gnat.com)
+
+	* msdos/configur.bat: If Ada subdirectory present, adjust Makefile.
+
+Fri May 17 07:40:04 1996  Ulrich Drepper  (drepper@cygnus.com)
+
+	* stddef.h: If need_wint_t defined, nothing in this file is needed.
+	(_WINT_T, __WINT__TYPE__, wint_t): Define under certain circumstances.
+
+Thu May 16 18:53:25 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold, case EQ_EXPR): When folding VAR++ = CONST,
+	mask the new const if VAR is a bitfield reference; also for VAR--.
+
+Thu May 16 18:29:03 1996  Doug Evans  <dje@seba.cygnus.com>
+
+	* varasm.c (function_section): Delete flag_function_sections support.
+	(assemble_start_function): Put it here.  Use UNIQUE_SECTION if defined.
+
+Wed May 15 13:35:11 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.{h,c,md} (rs6000_pic_register): Delete all uses, use
+	pic_offset_table_rtx instead.
+
+	* rs6000.md (move_to_float): Rewrite so that it uses the register
+	allocator to allocate the stack temp, instead of calling
+	rs6000_stack_temp.
+	(fix_truncdfsi2): Ditto.
+
+	* rs6000.c (rs6000_stack_temp): Delete, no longer used.
+
+Wed May 15 10:39:27 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300/h8300.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Define.
+
+Sat May 11 07:42:59 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (store_field): Support BLKmode bitfield if aligned on
+	byte boundary using emit_block_move.
+	(expand_expr, case COMPONENT_REF): Likewise.
+
+Fri May 10 18:33:39 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure (alpha-*-linux): Reverse order in tm_file list.
+	Delete xmake_file.
+	* alpha/x-linux: Deleted.
+	* alpha/linux.h (ASM_FINAL_SPEC): Add #undef.
+	* alpha/xm-linux.h: Remove bogus trailing #endif.
+
+	* loop.c (maybe_eliminate_biv_1): Disable all but two cases
+	of biv elimination with givs and restrict those two cases to
+	an ADD_VAL that is an address.
+
+	* flow.c (mark_set_1, mark_used_regs): Clean up usages
+	of ALL_NEEDED; change to SOME_NOT_NEEDED and set properly.
+
+Fri May 10 11:37:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* toplev.c (compile_file): Don't warn about artificial functions
+ 	declared static and not defined.
+
+Thu May  9 22:03:28 1996  Doug Evans  <dje@cygnus.com>
+
+	* varasm.c (assemble_start_function): ASM_DECLARE_FUNCTION_NAME
+	needn't consider bytecodes.
+	(assemble_variable): ASM_DECLARE_OBJECT_NAME needn't
+	consider bytecodes.
+	* toplev.c (rest_of_decl_compilation): Likewise with
+	ASM_FINISH_DECLARE_OBJECT.
+	* arm/aof.h (ASM_DECLARE_{FUNCTION,OBJECT}_NAME): Delete bytecode
+	support.
+	* vax/vms.h (ASM_DECLARE_OBJECT_NAME): Likewise.
+
+Thu May  9 19:36:13 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* sh.h (SET_ASM_OP): Define.
+
+Thu May  9 13:31:58 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/sysv4.h (SUBTARGET_{SWITCHES,OPTIONS}): Add support for
+	finer grain control on -msdata, so that eabi people can specify to
+	compile sdata code to only use r13 instead of r2/r13.  Make
+	-mrelocatable-lib turn off -msdata, just like -m relocatable does.
+	(SUBTARGET_OVERRIDE_OPTIONS): Ditto.
+	(ENCODE_SECTION_INFO): Move to rs6000.c.
+	(ASM_SPEC): -msdata=eabi sets -memb also.
+	(CC1_SPEC): -mno-sdata gets converted to -msdata=none.
+
+	* rs6000.c (rs6000_sdata{,_name}): Add support for finer grain
+	control on -msdata.
+	(output_options): Ditto.
+	(small_data_operand): Ditto.
+	(print_operand): Ditto.
+	(rs6000_select_section): Ditto.
+	(rs6000_encode_section_info): Move here from sysv4.h, section
+	names are stored as STRING nodes, not IDENTIFIER.
+
+Wed May  8 21:04:49 1996  Doug Evans  <dje@cygnus.com>
+
+	* function.c (aggregate_value_p): Return 1 if TREE_ADDRESSABLE.
+	* pa/pa.h (RETURN_IN_MEMORY): No longer test for TREE_ADDRESSABLE.
+
+Tue May  7 13:42:57 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300/h8300.c: Include obstack.h.
+	(bit_memory_operand): New function.
+	(print_operand): Append ":16" to a memory reference to
+	the tiny data area.
+	(h8300_tiny_data_p): New function.
+	(h8300_valid_machine_decl_attribute): Accept "tiny_data".  Fix
+	typo.
+	(h8300_encode_label): New function.
+	(h8300_adjust_insn_length): References to the tiny data section
+	are two bytes shorter than normal accesses on the H8/300H.
+	* h8300/h8300.h (OK_FOR_U): Fix thinko.
+	(ENCODE_SECTION_INFO): Encode info for tiny data variables.
+	(STRIP_NAME_ENCODING): Define.
+	* h8300/h8300.md (movqi insn): Fix length for a constant load.
+	(movstrictqi): Likewise.
+	(movhi, movstricthi): Likewise.
+	(memory btst patterns): Add register to the constraints to keep
+	reload happy.
+
+	* h8300/h8300.h (OK_FOR_U): (const (plus (symbol_ref) (const_int)))
+	is a valid U operand if SYMBOL_REF_FLAG is set on the
+	SYMBOL_REF.
+	* h8300/h8300.md (memory btst patterns): New patterns.
+
+	* h8300/h8300.c (h8300_eightbit_data_p): Renamed from
+	h8300_tiny_data_p.
+	(h8300_eightbit_data_p): Check for the "eightbit_data"
+	attribute instead of "tiny_data".
+	(h8300_valid_machine_decl_attribute): Likewise.
+	* h8300/h8300.h (ENCODE_SECTION_INFO): Call h8300_eightbit_data_p
+	instead of h8300_tiny_data_p.
+
+	* h8300/h8300.h (READONLY_DATA_SECTION): Define.
+	(EXTRA_SECTIONS): Add in_readonly_data.
+	(READONLY_DATA_SECTION_ASM_OP): Define.
+	(EXTRA_SECTION_FUNCTINOS): Add readonly_data.
+
+Tue May  7 09:26:24 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* varasm.c (make_decl_rtl): Update DECL_ASSEMBLER_NAME for local
+ 	statics.  Remove reference to flag_no_common.
+
+Mon May  6 21:38:36 1996  Paul Eggert  <eggert@twinsun.com>
+
+	* cpplib.c (skip_comment, handle_directive): Don't use uninit vars.
+
+Mon May  6 18:47:36 1996  Doug Evans  <dje@cygnus.com>
+
+	* dbxout.c (dbxout_function): When deciding to call dbxout_function_end
+	change test from flag_function_sections to DECL_SECTION_NAME != NULL.
+
+	* varasm.c (named_section): Accept any decl.
+
+Mon May  6 16:41:08 1996  Stan Cox  (coxs@dg-rtp.dg.com)
+
+	* final.c (final_scan_insn): Modify conditional moves whose cc is
+	nonstandard.
+
+	* c-common.c (decl_attributes): Chain multiple attributes correctly.
+
+Mon May  6 15:41:43 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stmt.c (expand_decl): Don't deduce alignment of SIZE from
+	DECL_ALIGN; use TYPE_ALIGN instead.
+
+	* function.c (assign_parms): Set RTX_UNCHANGING_P in stack_parm
+	if parm is read-only.
+
+	* c-common.c (truthvalue_conversion, case ADDR_EXPR): Don't
+	treat address of external decl as always nonzero.
+
+Mon May  6 11:33:57 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* c-decl.c (start_decl): Check -fno-common here.
+	* varasm.c (assemble_variable): Instead of here.
+	* final.c (end_final): Likewise.
+	* c-common.c (init_attributes, decl_attributes): Add A_COMMON.
+
+Mon May  6 11:12:39 1996  Mike Stump  <mrs@cygnus.com>
+
+	* expr.c (expand_increment): Add third parameter to know when to
+	ignore the result value.
+	(store_constructor): Likewise
+	(expand_expr, case {PRE,POST}{INC,DEC}REMENT_EXPR): Likewise.
+	* tree.c (stabilize_reference): Always ignore the first operand of
+	COMPOUND_EXPRs.
+
+Mon May  6 13:14:45 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* sh.c (gen_shifty_op): Truncate VALUE to avoid out of bounds array
+	access.
+
+	* expr.c (expand_expr, case INDIRECT_REF): Delete obsolete code
+	to special case a SAVE_EXPR operand.
+
+Mon May  6 10:00:12 1996  Pat Rankin  <rankin@eql.caltech.edu>
+
+	* vax.h (ASM_OUTPUT_MI_THUNK): Define.
+
+Mon May  6 09:49:10 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* m68k/linux.h: Use the new trampoline definition.
+	(TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Deleted.
+	(INITIALIZE_TRAMPOLINE): Changed.
+	(FINALIZE_TRAMPOLINE, CLEAR_INSN_CACHE): New.
+
+Mon May  6 09:43:55 1996  Patrick J. LoPresti  (patl@lcs.mit.edu)
+
+	* rtlanal.c (rtx_addr_varies_p): Scan operands of type `E'.
+
+Mon May  6 09:04:40 1996  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+	* x-linux{,-aout} (BOOT_CFLAGS, STMP_FIXPROTO, STMP_FIXPROTO): Deleted.
+	* config/t-linux (BOOT_CFLAGS, STMP_FIXPROTO, STMP_FIXPROTO): New,
+	moved from x-linux.
+	* t-linux-aout: New file.
+	* configure (i[3456]86-*-linux*oldld*, i[3456]86-*-linux*aout*):
+	Set tmake_file to t-linux-aout.
+
+Sun May  5 22:13:22 1996  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+	* Makefile.in (gxx_include_dir): Change to $(prefix)/include/g++.
+	(old_gxx_include_dir): New - defined as $(libdir)/g++-include.
+	(cccp.o, cpplib.o): Also pass OLD_GPLUSPLUS_INCLUDE_DIR (set
+	from $(old_gxx_include_dir)).
+	* cccp.c (include_defaults_array): For C++, also search
+	OLD_GPLUSPLUS_INCLUDE_DIR.
+	* cpplib.c (default_include): Likewise.
+	* configure: Remove no-longer-needed support for --gxx-include-dir.
+
+Sun May  5 21:59:53 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* c-lex.c (check_newline): Fix #pragma parsing; issue error message
+ 	for directive that starts with `p' but isn't `pragma'.
+
+Sun May  5 13:13:40 1996  Jeremy Bettis  <jeremy@hksys.com>
+
+	* objc/hash.c (hash_value_for_key): Prevent endless loop when 0 was
+	stored in a hashtable.
+
+Sun May  5 13:09:54 1996  Satoshi Adachi  (adachi@wisdom.aa.ap.titech.ac.jp)
+
+	* m68k/newsgas.h (SET_ASM_OP, ASM_WEAKEN_LABEL): Define.
+
+Sun May  5 12:48:08 1996  Stephen L Moshier  (moshier@world.std.com)
+
+	* tree.c (build_real_from_int_cst): Remove spurious test for
+	 REAL_IS_NOT_DOUBLE.
+
+Sat May  4 12:17:58 1996  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* arm.h (ASM_OUTPUT_MI_THUNK): Moved here from aout.h.  Rewrite to be
+	independent of the selected assembler, and to use optimal number of
+	instructions.
+	* arm/aout.h (ASM_OUTPUT_MI_THUNK): Delete.
+
+	* arm/aout.h (ASM_OUTPUT_OPTIONS): Define.
+	(ASM_FILE_START): Call ASM_OUTPUT_OPTIONS.
+	(BSS_SECTION_OP): Define.
+	(ASM_OUTPUT_ALIGN): Don't output anything if byte alignment is wanted.
+	(ASM_OUTPUT_ALIGNED_BSS): Define.
+	* arm.h (target_cpu_name): Delete.
+	(TARGET_SWITCHES): Delete "be" and "le".
+	(TARGET_OPTIONS): Delete "cpu-", add "tune=".
+	(struct arm_cpu_select): New struct.
+	(PROCESSOR_DEFAULT, TARGET_CPU_DEFAULT): Define.
+	(EXTRA_CC_MODES, EXTRA_CC_NAMES): Add CC_Cmode.
+	(CANONICALIZE_COMPARISON): Define.
+	* arm.c (arm_select): Declare and initialize.
+	(all_procs): Add arm7100.
+	(arm_override_options): Parse arm_select structure to determine
+	selected architecture and tuning parameters.
+	(output_option, output_options): New functions.
+	(arm_canonicalize_comparison): New function.
+	(arm_gen_movstrqi): Don't add a writeback of the index registers for
+	the last instructions.
+	(arm_select_cc_mode): Detect case where mode is carry out of unsigned
+	arithmetic.
+	(output_lcomm_directive): Use bss_section (), and use alignment
+	rather than rounding.
+	(get_arm_condition_code): Handle CC_Cmode.
+	(final_prescan_insn): Avoid boundary case where we would occasionally
+	inline MAX_INSNS_SKIPPED+1 insns.  Allow call_insns to be inlined in
+	APCS_32 mode if they are the last insn in the block.
+	* arm.md (*addsi3_compareneg): Delete potentially unsafe insn.
+	(*addsi3_compare_op[12]): New insns.
+	(*compare_addsi2_op[01]): New insns.
+	(*addsi3_carryin, *addsi3_carryin_alt[12]): New insns.
+	(*cmp_ite1): Use arm_add_operand instead of arm_rhs_operand.
+	* semi.h (PROCESSOR_DEFAULT): Default to PROCESSOR_ARM6.
+
+Fri May  3 10:52:11 1996 1996  Stan Cox  (coxs@dg-rtp.dg.com)
+
+	* i386.md (movesicc, movehicc) Pentium Pro conditional move insns.
+
+	* i386.h (TARGET_PENTIUMPRO, TARGET_CMOVE, BRANCH_COST,
+	ASM_OUTPUT_FUNCTION_PREFIX): New macros for conditional move.
+
+	* i386.c (asm_output_function_prefix, function_prologue): Setup
+	pic on Pentium Pro so a return will match the call.
+	(print_operand, put_condition_code): Output conditional move suffixes.
+
+Fri May  3 10:52:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* i386/{att.h,gas.h,bsd.h,sub386.h} (ASM_OUTPUT_MI_THUNK): Define.
+
+Wed May  1 17:54:51 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc.h (ASM_OUTPUT_MI_THUNK): Fix for sparc64, optimize.
+
+Wed May  1 13:28:32 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* i386/linux.h (ASM_OUTPUT_ALIGNED_BSS): Define.
+	* i386/sysv4.h: Likewise.
+	* sparc/sysv4.h: Likewise.
+
+Wed May  1 01:44:47 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300/h8300.c (h8300_adjust_insn_length): Adjust the cost of
+	shifts by small constant values.
+	* h8300/h8300.md: Refine comments.  Remove names from many
+	patterns which don't need them.
+	(compare insns): Don't underestimate lengths.
+	(andqi3 expander): Remove constrains.
+	(andhi3): Don't underestimate length.
+	(andsi3): Don't underestimate length.  Improve code when upper
+	or lower half of destination is being cleared.
+	(indirect_jump_h8300, indirect_jump_h8300h): Simplify.
+	(shift insns): Remove useless "I" constraint.
+
+	* h8300/h8300.md (bcs type): Remove "bcs" type attribute and
+	all references.
+	(bcs insns): Delete.  No longer needed.
+	(setcc from bitfield): Rewrite to use zero_extract.  Provide
+	QImode, HImode and SImode variants.
+
+Tue Apr 30 18:13:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* svr4.h (SELECT_SECTION): If RELOC is true, put it in data.
+
+Tue Apr 30 17:26:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* fold-const.c (fold): Don't call convert to recreate tree nodes
+	we already have.
+
+Tue Apr 30 16:52:41 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300/h8300.c (one_insn_adds_subs_operand): New function.
+	(h8300_adjust_insn_length): New function.
+	* h8300/h8300.h (ADJUST_INSN_LENGTH): Define.
+	* h8300/h8300.md: Remove obsolete comments.
+	(move patterns): Tweak constraints.
+	(tst patterns): Use "register_operand" for predicate.
+	(adds pattern): Use one_insn_adds_subs_operand to get length
+	computation correct.
+	(subs pattern): Similarly.
+	(movstrhi): Remove unused expander.
+	(fancy*, pxor, and-not patterns): Remove.  No longer needed.
+
+Tue Apr 30 13:35:06 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/sol-c0.c (_start): Temporarily display calling
+	__do_global_ctors, since the Solaris linker doesn't handle the
+	relocations properly.
+
+Mon Apr 29 13:03:12 1996  Doug Evans  <dje@cyguns.com>
+
+	* sparc/vxsparc.h: sparc-aout.h renamed to aout.h.
+
+Mon Apr 29 00:35:15 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300/h8300.c (names_small): Remove "BAD" postfix from
+	%r7 byte registers.
+	(rtx_equal_function_value_matters): Remove extra declaration.
+	(output_simode_bld): New function.
+	* h8300/h8300.h (NO_FUNCTION_CSE): Do define this.  Register
+	pressure makes cse-ing function addresses rarely a win.
+	(reg_class): Remove unnecessary register classes LONG_REGS,
+	SP_REG, SP_AND_G_REGS.
+	(REG_CLASS_NAMES): Corresponding changes.
+	(REG_CLASS_CONTENTS): Corresponding changes.
+	(REGNO_REG_CLASS): Corresponding changes.
+	(REG_CLASS_FROM_LETTER): Corresponding chagnes.
+	(output_simode_bld): Declare.
+	* h8300/h8300.md: Nuke comments for stuff which has been fixed.
+	(all patterns): Remove references to register class "a" (SP_REGS)
+	which no longer exists.
+	(many patterns): Accept auto-inc auto-dec addresses in more cases.
+	(zero_extendqisi2): New pattern for the H8/300.
+	(zero_extendhisi2): Only use zero_extendhisi2_h8300 when not optimizing.
+	(extendhisi2): Only use extendhisi2_h8300 when not optimizing.
+	(extendqisi2): New pattern for the H8/300.
+	(bitfield related patterns): Completely rewrite.
+	(fancy_bclr, fancy_btst): Deleted.  Redundant with new bitfield
+	patterns.
+	(addhi3 pattern for h8300): Handle case where we can't make matching
+	constraints (works around hard to fix reload problem).
+	(stack_pointer_manip): Delete.
+	(and not patterns): New combiner patterns.
+
+	* pa/pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Make sure the
+	final $CODE$ subspace is in the $TEXT$ space.
+
+Sun Apr 28 14:52:21 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* svr4.h (ASM_OUTPUT_SECTION_NAME): If no decl is specified,
+ 	make the section read/write data.
+
+Sat Apr 27 10:28:59 1996  Michael Meissner  <meissner@wogglebug.tiac.net>
+
+	* rs6000/t-ppcgas (MULTILIB_EXCEPTIONS): Don't allow -mrelocatable
+	and -mcall-sysv-noeabi.
+
+	* rs6000/sysv.h (SUBTARGET_OVERRIDE_OPTIONS): The -mcall-aix
+	option sets -meabi.  Don't allow -mrelocatable without -meabi.
+
+Fri Apr 26 16:10:46 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc/sparc.md (*smacsi,*smacdi,*umacdi): Fix constraint on
+	operand 0.
+
+Fri Apr 26 14:36:33 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* gcc/config/i960/t-{960bare,vxworks960} (MULTILIB*): Add
+	soft-float multilib support.
+
+Fri Apr 26 06:38:56 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stor-layout.c (layout_decl): Turn off DECL_BIT_FIELD for BLKmode
+	that's properly aligned and a multiple of a byte.
+
+Thu Apr 25 22:43:19 1996  Doug Evans  <dje@cygnus.com>
+
+	* i386/gas.h (ASM_OUTPUT_ALIGN): #if 0 out again.
+	Undoes change of Apr. 9.
+	* i386/go32.h (ASM_OUTPUT_ALIGN): Define.
+
+Thu Apr 25 14:05:33 1996  Richard Kenner  (kennervlsi1.ultra.nyu.edu)
+
+	* calls.c (expand_call): In inlining case, if BEFORE_CALLS is
+	zero, start looking at first insn (one more place).
+
+	* expr.c (expand_builtin, case BUILT_IN_SETJMP): CLOBBER the
+	static chain after label at setjmp point.
+
+Thu Apr 25 09:02:24 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.c (print_operand{,_address}): Correct compile error if
+	TARGET_EABI is not defined.  Also, just call small_data_operand,
+	without testing the ABI.
+	(rs6000_select_section): Ditto.
+
+	* rs6000/sysv4.h (CC1_SPEC): For -mcall-solaris, don't pass
+	-mno-main-init.
+
+Wed Apr 24 18:26:48 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* collect2.c (handler): Delete export_file when we get a signal.
+
+Wed Apr 24 14:54:44 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa/pa1-ghpux.h (LINK_SPEC): Define.  Link in PA1.1 libraries
+	by default.
+	* pa/{pa1-ghpux9.h, pa1-hpux.h, pa1-hpux9.h}: Likewise.
+
+Wed Apr 24 11:12:06 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* configure (powerpc{,le}-*-eabi*): Use t-ppc{,gas}, instead of
+	t-eabi{,gas}.
+	(powerpc-*-linux,powerpcle-*-solaris): Add definitions.
+	(MULTILIB_DIRNAMES): Pick shorter names for the multilib
+	directories.
+	(MULTILIB_*): Do not build -msdata versions of the library.  Build
+	both system V and eabi versions of the libraries.
+
+	* rs6000/t-ppc{,gas} (MULTILIB*): Don't build -msdata versions of
+	the libraries.  Split -mcall-sysv libraries into
+	-mcall-sysv-{eabi,noeabi} varients.
+	(LIB2FUNCS_EXTRA): Add eabi.S, eabi-ctors.c.
+	(eabi.S): Use eabi.S, not eabi.s for eabi.asm.
+	(crt files): Add support for Solaris crt files.
+
+	* rs6000/sol{2.h,-c0.c,-ci.asm,-cn.asm}: New files for Solaris
+	support.
+
+	* rs6000/linux.h: New file for Linux support.
+
+	* rs6000/eabi-ci.asm (ppc-asm.h): Include.
+	(.got section): Correct attribute.
+
+	* rs6000/eabi-c{i,n}.asm (.init,.finit): Add support for System V
+	style .init/.fini sections, that constructors and destructors
+	place a bl <func> in the appropriate section.
+
+	* rs6000/eabi-ctors.c (__do_global_{c,d}tors): Call __init, and
+	__fini to handle constructors/destructors in the .init, .fini
+	sections.
+
+	* rs6000/{eabi,sysv}.h: Move most eabi configuration stuff from
+	eabi.h to sysv.h.
+
+	* rs6000/sysv.h (TARGET_*): Convert -mcall-xxx from a switch into
+	an option.  Add -mcall-{solaris,linux,sysv-eabi,sysv-noeabi}
+	options.  Add -m{,no-}eabi options to control whether we adhere to
+	the System V spec or the EABI spec.  Add -m{,no-}regnames to
+	control whether registers are printed out as %r0 instead of 0.
+	(SUBTARGET_OVERRIDE_OPTIONS): Add support for new -mcall options.
+	(FP_ARG_MAX_REG): Use new macros for ABI conformance.
+	(RS6000_REG_SAVE): Ditto.
+	(STACK_BOUNDARY,BIGGEST_ALIGNMENT): If eabi, align to 8 byte
+	boundary, otherwise 16 byte.
+	(EXTRA_SECTIONS): Add .init, .fini sections.
+	(*_SPEC): Reorganize so that the different targets all have sub
+	specs that go in the specs file.  Add support for linux and
+	Solaris targets.
+
+	* rs6000/{sysv4,eabi}*.h (*_SPECS): Only override the default
+	spec, all other specs moved to sysv4.h.
+	(RS6000_ABI_NAME): Use RS6000_ABI_NAME to set the default ABI
+	name, not TARGET_DEFAULTS.
+
+	* rs6000/xm-sysv4.h (alloca): Properly declare alloca if compiler
+	is not GCC.
+	(DONT_DECLARE_SYS_SIGLIST): Define.
+
+	* rs6000.c (rs6000_abi_name): New global for getting the results
+	of -mcall-xxx.
+	(rs6000_reg_names): New global for holding the normal register
+	names.
+	(alt_reg_names): Alternate register names for -mregnames.
+	(rs6000_override_options): If -mregnames, copy alt_reg_names into
+	rs6000_reg_names.
+	(input_operand): Recognize ABI_SOLARIS.
+	(small_data_operand): Ditto.
+	(init_cumulative_args): Ditto.
+	(function_arg{,_boundary,_advance,_partial_nregs}): Ditto.
+	(function_arg_pass_by_reference): Ditto.
+	(setup_incoming_varargs): Ditto.
+	({rs6000,debug}_stack_info): Ditto.
+	(output_{prolog,epilog}): Ditto.
+	(print_operand): %$ prints '.' on Solaris, '$' elsewhere.
+	(print_operand{,_address}): If not eabi, use @sdarel for small
+	data references.
+	(rs6000_stack_info): Only emit __eabi call if TARGET_EABI.
+
+	* rs6000.h (*_SPECS): Move the System V specs to svr4.h.
+	(ABI_SOLARIS): New ABI, mostly like System V.
+	(EXTRA_CONSTRAINT): Use ABI_SOLARIS like ABI_V4.
+	(RETURN_ADDRESS_OFFSET): Ditto.
+	(LEGITIMATE_SMALL_DATA_P): Ditto.
+	(RETURN_IN_MEMORY): On Solaris, small structures are returned in
+	registers.
+	(REGISTER_NAMES): Use rs6000_reg_names array, instead of string
+	literals.
+	(DEBUG_REGISTER_NAMES): Define.
+	(ADDITIONAL_REGISTER_NAMES): Add sp, toc aliases.
+	(PRINT_OPERAND_PUNCT_VALID_P): Recognize $ as a punctuation char.
+
+	* rs6000.md (got & call patterns): Use ABI_SOLARIS to mean the
+	same as ABI_V4.
+	(branch patterns): Use %$ for the current location, not just $.
+
+	* va-ppc.h: Add Solaris support.
+
+Tue Apr 23 20:02:13 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc/sparc.c (output_function_prologue): In -mbroken-saverestore
+	case, %sp = %fp - size.
+	* sparc/t-splet (TARGET_LIBGCC2_CFLAGS): Delete.
+	* sparc/sparc.md (isa attribute): Add sparclet.
+	(*smacsi,*smacdi,*umacdi): Use match_operand, not match_dup
+	for third arg.
+	(*mulsidi3_sp32,const_mulsidi3,*umulsidi3_sp32,const_umulsidi3): Use
+	smuld,umuld for sparclet.
+
+Tue Apr 23 16:28:28 1996  Michael Meissner  <meissner@wombat.gnu.ai.mit.edu>
+
+	* config/m68k/m68kemb.h: Add {LINK,STARTFILE,LIB,SUBTARGET}_SPEC, so
+	gcc will use libgloss for supported target boards {idp,mvme,bcc}.
+
+Tue Apr 23 16:00:28 1996  Per Bothner  <bothner@cygnus.com>
+
+	* expr.c (store_constructor):  Fix test for missing array elements.
+
+Tue Apr 23 11:21:09 1996  Stephen L Moshier  (moshier@world.std.com)
+
+	* config/i386/sco5.h (BSS_SECTION_ASM_OP): Use `data' directive.
+	(ASM_OUTPUT_ALIGNED_LOCAL): Generate an `lcomm' directive.
+	(TARGET_DEFAULT): Include TARGET_IEEE_FP.
+	(CPP_PREDEFINES): Include Di386.
+
+Mon Apr 22 12:00:46 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.h (BIGGEST_FIELD_ALIGNMENT): Delete.
+	(ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Define.
+	* sysv4.h (BIGGEST_FIELD_ALIGNMENT): Delete.
+	(ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Undefine.
+	* win-nt.h (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Undefine.
+
+Sun Apr 21 17:52:36 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* m68k/coff.h (ASM_OUTPUT_SECTION): Test DECL before
+	dereferencing it.
+
+	* cse.c (cse_process_notes): Handle SUBREG like ZERO_EXTEND.
+
+Sun Apr 21 12:57:12 1996  Doug Evans  <dje@cygnus.com>
+
+	* arm/aout.h (ASM_OUTPUT_MI_THUNK): Define.
+
+Sun Apr 21 09:50:09 1996  Stephen L Moshier  (moshier@world.std.com)
+
+	* choose-temp.c: Include sys/types.h before sys/file.h for sco3.2v5.
+
+Sun Apr 21 08:42:13 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (check_float_value): Cast args of bcopy to avoid warnings.
+
+Sat Apr 20 21:22:21 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* stor-layout.c (layout_record): Use ADJUST_FIELD_ALIGN to modify
+	alignment of fields within records.
+
+Sat Apr 20 19:55:33 1996  Niels Moller  <nisse@lysator.liu.se>
+
+	* c-parse.in (typespec): Made <SomeProtocol> equivalent
+	to (id <SomeProtocol>).
+	(non_empty_protocolrefs): New nonterminal.
+
+Sat Apr 20 08:34:02 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+        * stmt.c (check_for_full_enumeration_handling): Call case_tree2list
+	before checking for case expressions not corresponding to enumerators.
+	(mark_seen_cases): If SPARSENESS == 2, exploit AVL order.
+	Else, convert tree to list.
+	Set xlo to -1 if SPARSENESS == 1 search failed.
+	(expand_end_case): Avoid calling case_tree2list on list.
+
+Fri Apr 19 16:54:57 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/win-nt.h (BIGGEST_FIELD_ALIGNMENT): Set to 64, not
+	32 that AIX uses.
+
+Fri Apr 19 16:40:38 1996  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.md (movqi): Handle QImode values in %si and %di.
+
+Thu Apr 18 20:56:56 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* sh.md (lshrsi3): Change gen_ashlsi3_d to gen_lshrsi3_d.
+
+Thu Apr 18 15:49:28 1996  Per Bothner  <bothner@cygnus.com>
+
+	* sparc.h (ASM_OUTPUT_MI_THUNK): Define.
+
+Thu Apr 18 15:19:26 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300.md: Remove "type" attribute from all patterns
+	except those which have varying length branches.  Eliminate
+	obsolete "type" attributes.  Add additional comments about insn
+	length computation problems and further optimizations.  Add
+	"length" and "cc" attributes to insns without them, fix a few
+	length computations.  Remove patterns which are commented out.
+
+	* h8300.md (zero extension expanders and insns): Simplify, fix various
+	length problems, provide optimized versions for the h8300 and h8300h.
+	(sign extension expanders and insns): Likewise.  Make them
+	nearly identical to zero_extension patterns and insns.
+
+Wed Apr 17 18:50:16 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.h (SELECT_SECTION): Define.  Never place a something
+	into the read-only data section if it requires a reloc.
+
+	* pa.md (rotlsi3): Delete unnecessary and incorrect pattern.
+
+Wed Apr 17 17:15:40 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.md (movdi): Never FAIL, even if operand[1] is not a
+	general operand, due to being in volatile memory.
+
+Wed Apr 17 15:20:10 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* c-lex.c (check_newline): Rewrite to use tokens.
+	(handle_sysv_pragma): Take a token instead of a character.
+	* i960.c (process_pragma): Take the IDENTIFIER_POINTER tree
+	node instead of a character.
+	* sh.c (handle_pragma): Likewise.
+	* config/nextstep.c (handle_pragma): Likewise.
+	* h8300.c (handle_pragma): Likewise.
+	* i960.h (HANDLE_PRAGMA): Expect/pass 2nd arg of NODE, not CH.
+	* sh.h (HANDLE_PRAGMA): Likewise.
+	* config/nextstep.h (HANDLE_PRAGMA): Likewise.
+	* h8300.h (HANDLE_PRAGMA): Likewise.
+
+Wed Apr 17 14:28:43 1996  Doug Evans  <dje@cygnus.com>
+
+	* choose-temp.c: Don't include sys/file.h ifdef NO_SYS_FILE_H.
+	#include <stdio.h>.
+	(choose_temp_base): Make tmp,usrtmp, static locals.
+
+Wed Apr 17 08:41:02 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (alpha_emit_conditional_move): Fix some bugs in previous
+	change and do some cleanup.
+
+Tue Apr 16 18:53:05 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* reload.c (push_reload): Add extra reload for inside of SUBREG if
+	it is CONSTANT_P.
+
+	* expr.c (do_store_flag): Rewrite last change to avoid compiler
+	warnings.
+
+	* reload.c (push_reload): When reuse an old reload, set the modes
+	to be the larger of the old and new modes.
+
+        * i960/t-960bare (xp-bit.c): Fix typo in source file name.
+
+Tue Apr 16 18:09:16 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300/h8300.md (andhi3): If 2nd operand is a CONST_INT that
+	meets the 'J' constraint, then only two bytes are needed for
+	this insn.  Improve code generated for the h8300h when both
+	operands are registers.
+	(iorhi3, xorhi3): Likewise.  Rework to be nearly identical to andhi3.
+	(andsi3): If 2nd operand is a CONST_INT that meets the 'J'
+	constraint, then only two bytes are need for this insn.
+	Improve code generated for the h8300h regardless of the
+	type of the 2nd operand.  Make this pattern work on the h8300 too.
+	(iorsi3, xorsi3): Likewise.  Rework to be nearly identical to andsi3.
+	(iorqi3_internal): Make this pattern look more like andqi3_internal.
+	(one_cmplhi2, one_cmplsi2): Fix length computation for H8300H.
+
+Tue Apr 16 17:43:25 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+	* i386.md (addsidi3_2): Handle non-MEM overlap case.
+
+Tue Apr 16 16:59:49 1996  Richard Henderson  <rth@tamu.edu>
+
+ 	* function.c (expand_function_end): Allow TRAMPOLINE_TEMPLATE
+	to be omitted on systems for which it is not cost effective.
+	* varasm.c (assemble_trampoline_template): No such function
+	if no TRAMPOLINE_TEMPLATE.
+	* m68k.h: Greatly simplify the run-time trampoline code:
+	(TRAMPOLINE_TEMPLATE, TRANSFER_FROM_TRAMPOLINE): Delete define.
+	(TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Changed.
+	(TRAMPOLINE_ALIGN): No point aligning to cache line.
+	(FINISH_INIT_TRAMPOLINE): New define.
+	* m68k/next.h: Instead of redefining INITIALIZE_TRAMPOLINE,
+	make use of the new FINISH_INIT_TRAMPOLINE.
+	* m68k/{m68k.h,next.h,aux.h} (FINISH_INIT_TRAMPOLINE):
+	Rename to FINALIZE_TRAMPOLINE.
+	* m68k/{linux.h,m68kv4.h}: Override trampoline macros.
+
+Tue Apr 16 16:02:50 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* combine.c (make_field_assignment): Allow XOR in final case.
+
+Tue Apr 16 11:33:53 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* m68k.h (TARGET_SWITCHES): Don't remove MASK_68060 with -msoft-float.
+
+	* m68k.h (MULL_COST, MULW_COST, RTX_COSTS): Add costs for TARGET_68060.
+	* m68k.md (ashlsi_16, lshrsi_16): Disable pattern for TARGET_68060;
+	this special case is not faster for that cpu.
+
+Tue Apr 16 10:54:55 1996  Eliot Dresselhaus  <dresselh@rft30.nas.nasa.gov>
+
+	* alpha.c (alpha_emit_conditional_move): New function.
+	* alpha.h (alpha_emit_conditional_move): Declare it.
+	* alpha.md (cmov* define_expands): Use it.
+
+Tue Apr 16 09:06:17 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* function.h (struct function): New field returns_pointer.
+	* function.c (push_function_context_{to,from}): Save and restore
+	current_function_returns_pointer.
+
+	* config/svr4.h (ENDFILE_SPEC): Add missing `%s'.
+
+	* configure (m68k-*-linux*aout*): Set tmake_file to m68k/t-linux-aout.
+	(m68k-*-linux*): Set extra_parts.
+	* m68k/t-linux (INSTALL_ASSERT_H): New definition.
+	(CRTSTUFF_T_CFLAGS_S, TARGET_LIBGCC2_CFLAGS): New definitions.
+	* m68k/t-linux-aout: New file.
+	* m68k/linux.h (LIB_SPEC): Deleted.
+	(BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Define.
+
+	* m68k.h (TRAMPOLINE_ALIGNMENT): Specify alignment in bits, not bytes.
+
+Tue Apr 16 08:53:17 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* final.c (final_scan_insn): Allow removal of redundant test and
+	compare instructions that use clobbers.
+
+Tue Apr 16 06:22:00 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-decl.c (clear_limbo_values): New function.
+	(pushdecl): Call it for function body blocks.
+
+	* objc/thr-decosf1.c (_objc_thread_id): Correct return type from
+ 	int to _objc_thread_id.
+
+	* expr.c (expand_builtin, case BUILT_IN_LONGJMP): Make a decl
+	for __dummy, so we can call make_function_rtl on it.
+
+	* expr.c (expand_assignment): Don't pre-evaluate RHS if a CALL_EXPR
+	with a variable-size return.
+
+Mon Apr 15 17:38:45 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* fixincludes: Fix undefined VOIDFUNCPTR in VxWorks 5.2 <time.h>.
+
+Mon Apr 15 15:12:16 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* expr.c (do_store_flag): Before calling exact_log2, remove any
+	sign extension bits.
+
+	* reload1.c (emit_reload_insns): Call reload_reg_reaches_end_p for
+	every reg of multi-reg spill register.  Invalidate old info for multi
+	reg spill registers when only part survives to the end.
+
+Mon Apr 15 14:49:12 1996  Mike Stump  <mrs@cygnus.com>
+
+	* function.c (preserve_temp_slots): Only preserve temporaries that
+	happen to be at the current level.
+
+Mon Apr 15 14:08:12 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+	* gansidecl.h: New file.
+	* choose-temp.c: New file.
+	* Makefile.in (xgcc): Depend on and link in choose-temp.o.
+	(collect2): Likewise.
+	(choose-temp.o): Add rule for.
+	* collect2.c: #include "gansidecl.h".
+	(const,PROTO): Delete.
+	(P_tmpdir): Delete.
+	(choose_temp_base): Declare as extern, delete internal copy.
+	(main): Update call to choose_temp_base.
+	* cpphash.c: #include "gansidecl.h".
+	(NULL,const,volatile): Delete.
+	* demangle.h: #include "gansidecl.h".
+	(PROTO,PTR,const): Delete.
+	* expr.h (const): Delete.
+	* fix-header.c: #include "gansidecl.h".
+	(const): Delete.
+	* gcc.c: #include "gansidecl.h".
+	(PROTO,VPROTO,PVPROTO,VPROTO,VA_START,NULL): Delete.
+	(GENERIC_PTR,NULL_PTR,P_tmpdir): Delete.
+	(choose_temp_base): Declare as extern, delete internal copy.
+	(concat): Rewrite to take a variable number of arguments.
+	(choose_temp_base_try,concat[346]): Delete.
+	(translate_options,set_spec,process_command,do_spec_1,
+	is_directory,main): Always use concat, not concat[346].  Pass
+	NULL_PTR as trailing arg to concat.
+	* genattr.c (main): Delete printing of "#define PROTO".
+	* machmode.h: #include "gansidecl.h".
+	(PROTO): Delete.
+	(HAVE_MACHINE_MODES): Move definition to standard place.
+	* recog.h: #include "gansidecl.h".
+	(PROTO,const): Delete.
+	* rtl.h: #include "gansidecl.h".
+	(PROTO,VPROTO,PVPROTO,VPROTO,VA_START,STDIO_PROTO): Delete.
+	(NULL,GENERIC_PTR,NULL_PTR): Delete.
+	* tree.h: Likewise.
+
+Mon Apr 15 08:49:20 1996  Tom May  (ftom@netcom.com)
+
+	* cse.c (invalidate_skipped_set): Ignore CLOBBER after calling
+	note_mem_written, not before.
+
+Mon Apr 15 08:22:03 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* m68k.md (tstdi): Optimized for "d" case.
+	(movqi): Allow moving "i" into "a".
+	(zero_extendsidi2): Alternatives merged.
+	(extendplussidi): Fixed when operands 0 and 1 share a register.
+	(adddi_sexthishl32): Constraints reordered for better reload.
+	(adddi3,subdi_sexthishl32,subdi3,negdi2): Likewise.
+	(ashldi_sexthi): Accept "m" as operand 0.
+	(ashldi_const32): Alternatives merged.
+	(ashift patterns): Output "lsl" instead of "asl".
+	(beq0_di): If condition codes already set, output only branch insn.
+	(bne0_di,bge0_di,blt0_di): Likewise.
+	* m68k.c (notice_update_cc, case ASHIFT{,RT}, LSHIFTRT, ROTATE{,RT}):
+	Don't set CC_NO_OVERFLOW.
+	* m68k.h (TARGET_SWITCHES): Fix typo in "c68000" entry.
+
+Mon Apr 15 08:06:17 1996  Stephen L Moshier  (moshier@world.std.com)
+
+	* real.c (eadd1): Check for overflow on X plus X.
+
+Mon Apr 15 08:02:24 1996  J.T. Conklin  <jtc@cygnus.com>
+
+	* i386/netbsd.h (HAVE_SYSV_PRAGMA): Removed definition.
+	* config/netbsd.h (HAVE_SYSV_PRAGMA): Define.
+	(SET_ASM_OP): Define.
+
+Mon Apr 15 07:28:54 1996  Fila Kolodny <fila@ibi.com>
+
+	* configure: Add definition for host= into Makefile.
+	* build-make (CC): Pass -b $(host), not target.
+
+Mon Apr 15 05:12:39 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (bc_expand_increment): Change declaration to return void.
+
+	* toplev.c (max_label_num_after_reload): New variable.
+	(rest_of_compilation): Set it.
+	* reorg.c (find_dead_or_set_registers): Only kill spill regs after
+	label made before jump2.
+
+	* combine.c (expand_field_assignment): Take SUBREG_WORD into
+	account when have STRICT_LOW_PART.
+	(make_extraction): Make a STRICT_LOW_PART at any low-order word.
+
+Mon Apr 15 03:43:11 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* flags.h (flag_function_sections): Declare.
+	* toplev.c (flag_function_sections): Define.
+	(compile_file): Add warnings when -ffunction-sections is
+	used with -g, or profiling.  Disable -ffunction-sections
+	when profiling is used.  Add warning when -ffunction-sections
+	is used on a target that doesn't support it.
+	* varasm.c (named_section): Make a copy of the section name
+	in case the original is in temporary storage.
+	(function_section): Set DECL_SECTION_NAME for each function
+	if flag_function_sections is on and the target supports it.
+	* dbxout.c (dbxout_function_end): New function.
+	(dbxout_function): Call dbxout_function_end if using extensions
+	and flag_function_sections is on.
+	* sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): Prefix a function
+	section's name with ".text%" when -ffunction-sections.
+
+Sun Apr 14 19:37:43 1996  Doug Evans  <dje@cygnus.com>
+
+	* toplev.c (main): Delete redundant test for -p used with -fbytecode.
+
+Sun Apr 14 19:01:59 1996  John F. Carr <jfc@mit.edu>
+
+	* c-decl.c (finish_enum): Don't crash if no type can represent all
+	enumeration values.
+
+Sun Apr 14 18:56:40 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* m68k.md (ftruncdf2): Enable for m68060 systems.
+
+Sun Apr 14 18:49:30 1996  David L. Reese  (david.reese@east.sun.com)
+
+	* fold-const.c (range_test):  Don't convert hi_cst or lo_cst
+	to unsigned when folding signed range tests.
+
+Sun Apr 14 08:56:27 1996  Stephen L Moshier  <moshier@world.std.com>
+
+	* real.h (ereal_from_{int,uint}): Add new arg, MODE.
+	(REAL_VALUE_FROM{,_UNSIGNED}_INT): New arg, MODE.
+	* real.c (ereal_from_{int,uint}): New arg, MODE.
+	* cse.c (simplify_unary_operation): Add new arg to REAL_VALUE_FROM_INT.
+	* fold-const.c (fold_convert): Likewise.
+	* tree.c (real_value_from_int_cst): New arg, TYPE.
+	Pass mode to REAL_VALUE_FROM_INT.
+	(build_real_from_int_cst): Properly deal with truncation.
+
+Sun Apr 14 08:21:29 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): When substituting in output of I2,
+	ensure dest isn't clobbered in I2.
+
+	* combine.c (combine_instructions): In initial scan of insns,
+	handle a REG_INC note's affect on sign bit copies and nonzero bits.
+	(set_nonzero_bits_and_sign_copies): Treat a zero SET arg as a CLOBBER.
+
+Sun Apr 14 07:52:28 1996  Manor Askenazi  <manor@santafe.edu>
+
+	* objc/encoding.c (objc_skip_typespec): Don't abort for _C_UNDEF.
+
+Sat Apr 13 20:35:36 1996  Richard Henderson  (richard@atheist.tamu.edu)
+
+	* configure (m68k-apple-aux*): Rework to take advantange
+	of list of tm.h files and support all four gas/gld options.
+	* m68k/auxas.h, m68k/auxgas.h, m68k/auxgld.h, m68k/auxld.h: New files.
+	* m68k/auxstd.h, m68k/auxgnu.h: Deleted.
+
+Sat Apr 13 20:18:11 1996  Stephen L Moshier  <moshier@world.std.com>
+
+	* alpha.c (check_float_value): New function.
+	* alpha.h (CHECK_FLOAT_VALUE): Define.
+	(ASM_OUTPUT_FLOAT): Print the value in hex.
+
+Sat Apr 13 15:08:45 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+	* configure: New target arm{,el}-*-coff*.
+	(cpu_default): Sort alphabetically.
+	* arm/coff.h: New file.
+	* arm/t-bare: New file.
+	* arm/arm.c (use_return_insn): Don't use return for naked functions.
+	(arm_valid_machine_decl_attribute): New function.
+	(arm_naked_function_p): New function.
+	(output_func_prologue): Naked functions don't have prologues.
+	(arm_expand_prologue): Likewise.
+	(output_func_epilogue): Likewise with epilogues.
+
+Sat Apr 13 11:31:32 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300.c (adds_subs_operand): Fix thinko in last change.
+
+	* h8300.md (subhi3): Turn into a define_expand.
+	(subhi3 using adds_subs): New pattern.
+	(H8300 subhi): Derived from old subhi pattern.  Simplified.
+	(H8300H subhi): Likewise.
+	(subsi using adds_subs): New pattern.  Only used on H8300H.
+	(subsi_h8300): Allow "a" registers as destination.
+	(subsi_h8300h): Allow "a" registers as destination.  Simplify.
+
+	* h8300.md (bcs_qiqi, bcs_hihi, bs_hiqi): Fix thinkos
+	in last change.
+
+Sat Apr 13 08:59:48 1996  Fila Kolodny <fila@ibi.com>
+
+	* i370/mvs.h (ASM_DECLARE_FUNCTION_NAME): Don't write anything to
+	asm file, because everything is handled in FUNCTION_PROLOGUE.
+
+Sat Apr 13 07:55:38 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (alpha_emit_set_const_1): Renamed from
+	alpha_emit_set_const and static.
+	Remove change of Nov 26; again use normal mechanism for SImode.
+	(alpha_emit_set_const): New function.
+
+Fri Apr 12 18:19:39 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300.c (adds_subs_operand, output_adds_subs): New functions.
+	* h8300.md (addhi3): Turn into a define_expand.
+	(addhi3 using adds_subs): New pattern.
+	(H8300 addhi): Derived from old addhi pattern.  Simplified.
+	(H8300H addhi): Likewise.
+	(addsi using adds_subs): New pattern.  Only used on H8300H.
+	(addsi_h8300): Allow "a" registers as destination.
+	(addsi_h8300h):  Simplify.  Allow "a" registers as destination.
+
+	* h8300.md (bcs): New attribute type.
+	(default_length): Compute correct length for bcs insns.
+	(bcs_qiqi, bcs_hihi, bs_hiqi): Use new type and update
+	to account for correct length computation.
+
+	* h8300/h8300.md (movhi_internal): Demand at least one operand to
+	be a register.
+	(movsi_h8300): Optimize loading certain constants.
+	(movsi_h8300h): Likewise.
+
+	* h8300.h (NO_FUNCTION_CSE): Comment out.
+	(FUNCTION_ARG_REGNO_P): Properly define for TARGET_QUICKCALL.
+	(RETURN_IN_MEMORY): Don't return small structs in regs.
+
+	* h8300.c (const_costs): -4 and 4 are cheap on the h8300h.
+	(notice_update_cc): Remove references to "value2" field.
+
+	* h8300.c (dosize): Remove unused "fped" argument.  All callers
+	changed.  Handle add/sub of 5-8 bytes efficiently on the h8300h.
+
+	* h8300.c (print_operand): Handle new 'R' case for accessing
+	the 8-bit area.  Make code for 'Y' fall into code for 'R' when
+	operand is not a register.  Update some comments.
+	(h8300_tiny_data_p): New function.
+	(h8300_valid_machine_decl_attribute): Handle "tiny_data" attribute.
+	* h8300.h (OK_FOR_U): Handle memory references into the
+	8-bit area.
+	(ENCODE_SECTION_INFO): Mark SYMBOL_REFs which refer to 8-bit area.
+	* h8300.md (many patterns): Use 'R' rather than 'X' for
+	operands that may be memory accesses into the 8-bit area.
+	(btst pattern): New pattern to set the cc0 (zbit) based on
+	data in the 8-bit area.
+
+	* h8300.md (one_cmplsi2): Fix length computation for h8300h.
+
+Fri Apr 12 14:34:39 1996  Doug Evans  <dje@cygnus.com>
+
+	* arm.md (*ldmsi,*stmsi): Use (mem (match_operand ...))
+	to avoid using indirect_operand (reload problems).
+	* arm/semi.h (CPP_PREDEFINES): Define __semi__ instead of semi.
+	* arm/aout.h (ASM_GENERATE_INTERNAL_LABEL): Use LOCAL_LABEL_PREFIX.
+	(ASM_OUTPUT_ADDR_{VEC,DIFF_ELT}): Likewise.
+
+Fri Apr 12 09:43:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* dbxout.c (dbxout_typedefs): Don't emit incomplete types yet.
+	(dbxout_symbol): Use DECL_ARTIFICIAL to recognize C++ implicit
+	typedefs.
+
+Thu Apr 11 21:56:26 1996  Doug Evans  <dje@cygnus.com>
+
+	* i386/t-winnt (winnt.o): Rewrite based on .c.o rule.
+	(oldnames.o,spawnv.o): Add rules for.
+
+Thu Apr 11 07:25:06 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* calls.c (expand_call): In inlining case, if BEFORE_CALLS is
+	zero, start looking at first insn.
+
+	* expr.c (preexpand_calls, case CALL_EXPR): Rework to properly
+	avoid expanding functions returning variable size objects.
+
+	* integrate.c (expand_inline_function): When comparing types
+	of formal and actual, use TYPE_MAIN_VARIANT.
+
+Thu Apr 11 00:48:29 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300/lib1funcs.asm (modnorm): New function(s).  Like divnorm,
+	but gets the sign bit right for modulo operations.
+	(__modhi3, modsi3): Use modnorm.
+
+	* h8300/h8300.c (dosize): On the h8300h, do 4 byte adjustments
+	using adds and subs.
+	* h8300/h8300.h (LONG_LONG_TYPE_SIZE): Always make this 32bits.
+	Reverses change from Apr 2, 1996.
+
+Wed Apr 10 18:39:52 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+	* sparc.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
+	(FUNCTION_PROFILER): Use ASM_GENERATE_INTERNAL_LABEL instead.
+
+	* sparc.c (sparc_override_options): 90c701 renamed to tsc701.
+	(eligible_for_epilogue_delay_slot): Don't allow anything if
+	-mbroken-saverestore.
+	(output_function_prologue): Only use trivial save's if
+	-mbroken-saverestore.
+	* sparc.h (CPP_SPEC): Handle -mcpu={sparclet,tsc701}.
+	(ASM_SPEC): Likewise.
+	({MASK,TARGET}_BROKEN_SAVERESTORE): Define.
+	(enum processor_type): 90C701 renamed to TSC701.
+	* sparc.md (attr cpu): 90c701 renamed to tsc701.
+	* sparc/splet.h (SUBTARGET_SWITCHES): Recognize -mbroken-saverestore.
+
+Wed Apr 10 17:56:02 1996  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* m88k/dgux.h (EXTRA_SPECS): Define.
+	(ASM_SPEC,CPP_SPEC,STARTFILE_SPEC): Use EXTRA_SPECS.
+	* m88k/dguxbcs.h (ASM_SPEC,CPP_SPEC,STARTFILE_SPEC): Use EXTRA_SPECS.
+	* m88k/m88k.c (output_ascii) Output literal HT.
+
+Wed Apr 10 17:28:37 1996  James Carlson  (carlson@xylogics.com)
+
+	* configure: Work around AIX bug when defining SUBDIRS.
+
+Wed Apr 10 17:22:42 1996  Paul Eggert  <eggert@twinsun.com>
+
+	* cexp.y (parse_number): Don't reject long long constants unless
+	pedantic.
+
+Wed Apr 10 17:19:56 1996  Stephen L. Moshier  (moshier@world.std.com)
+
+	* real.c (e64toe): Properly distinguish between NaN and infinity
+	bit patterns for real-words-big-endian targets.
+
+Wed Apr 10 17:17:26 1996  Richard Earnshaw  (rearnsha@armltd.co.uk)
+
+	* real.c (endian): Add two explicit casts.
+	(e64toe): Support ARM extended precision fp format.
+	Check negative infinities properly for NaNs.
+	(toe64): Support ARM extended precision fp format.
+
+Tue Apr  9 12:53:31 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+	* i386/gas.h (ASM_OUTPUT_ALIGN): Define and use .balign.
+
+Tue Apr  9 12:48:45 1996  Stephen L Moshier  (moshier@world.std.com)
+
+	* sparc.c (fp_zero_operand): Exclude -0.0.
+
+Tue Apr  9 07:11:24 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c: Fix typo in last change.
+
+	* tree.c (substitute_in_expr): Don't return new expression if
+	nothing changed.
+	(substitute_in_type): Deleted, not used.
+	* tree.h (substitute_in_type): Delete declaration.
+
+Mon Apr  8 16:30:18 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* flow.c (find_auto_inc): Also make sure there aren't
+	any sets of the incremented register between the memory
+	reference and increment insn.
+
+Mon Apr  8 15:41:14 1996  John Polstra  (jdp@polstra.com)
+
+	* configure (i[3456]86-*-freebsdelf*): New target.
+	* i386/freebsd-elf.h: New file.
+	* i386/x-freebsd (USER_H): New define; to null.
+
+Mon Apr  8 14:44:41 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-decl.c (finish_function): Always warn if main doesn't return int.
+
+Mon Apr  8 13:01:37 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.c (got_operand): New function, returns true if the
+	operand can go in V.4's GOT.
+	(rs6000_pic_register): New variable.
+	(output_epilog): Reset rs6000_pic_register.
+
+	* rs6000.h (rs6000_pic_register,got_operand,flag_pic): Add
+	declarations.
+	(PREDICATE_CODES): Add got_operand.
+
+	* rs6000.md (movsi): Add support for V.4's -fpic and -FPIC.
+	(init_v4_pic): Initialize the V4 pic register if needed.
+	(call patterns): If -fpic/-fPIC, call function with @plt suffix.
+
+	* t-eabigas (MULTILIB_DIRNAMES): Remove errant pic directory.
+
+	* rs6000.c (output_prolog): Correctly store & restore the
+	arguments to main in their correct save location, when calling the
+	start function.
+
+Mon Apr  8 13:01:37 1996  David Reese  <Dave.Reese@East.Sun.COM>
+
+	* rs6000.c (print_operand): Use reg_names to print registers.
+
+Fri Apr  5 00:40:19 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300.c (h8300_valid_machine_decl_attribute): Use underscores,
+	not dashes in attributes.
+	(h8300_funcvec_function_p): Corresponding changes.
+	(h8300_interrupt_function_p): Likewise.
+
+	* pa.h (INIT_CUMULATIVE_INCOMING_ARGS): Initialize "indirect"
+	field to zero.
+
+Thu Apr  4 12:52:11 1996  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* loop.c (combine_givs): Use new macro GIV_SORT_CRITERION.
+	New variable giv_array.  Loop over giv_array instead of following
+	next_iv links.
+	(giv_sort): New function.
+	* sh.h (GIV_SORT_CRITERION):  Define.
+
+	* c-typeck.c (push_init_level): When output alignment for structure
+	field, add check to verify it is the next field to be output.
+
+Thu Apr  4 12:19:26 1996  David Mosberger-Tang  <davidm@AZStarNet.com>
+
+	* alpha.c: Don't include stamp.h for Linux.
+
+Thu Apr  4 12:17:08 1996  Richardg Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* objc/Makefile: Rename thread* to thr*.
+	* objc/thread.c: Rename thread-* to thr-*.
+	* objc/thr-decosf1.c: Renamed from thread-decosf1.c
+	* objc/thr-irix.c: Renamed from thread-irix.c.
+	* objc/thr-single.c: Renamed from thread-single.c.
+	* objc/thr-solarius.c: Renamed from thread-solaris.c.
+	* objc/thr-win32.c: Renamed from thread-win32.c.
+	* objc/objc-api.h: Include thr.h, not thread.h.
+	* objc/runtime.h, objc/sarray.h: Likewise.
+
+	* i386.md (ashldi3_const_int): Don't recognize if won't match
+	constraint of operand 2.
+
+Thu Apr  4 11:40:55 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* config/fp-bit.c (EXTENDED_FLOAT_STUBS): If EXTENDED_FLOAT_STUBS
+	is defined, define all of the XF/TF functions that might be
+	generated that we don't have code for yet.
+
+	* i960/t-(vxworks960,960bare): (LIB2FUNCS_EXTRA): Make and
+	compile xp-bits.c that defines EXTENDED_FLOAT_STUBS.
+
+	From: steve chamberlain  <sac@slash.cygnus.com>
+	* i386/x-cygwin32 (LANGUAGES): Delete.
+	* i386/xm-cygwin32.h (EXECUTABLE_SUFFIX): Set to .exe.
+	* rs6000/xm-cygwin32.h (EXECUTABLE_SUFFIX): Set to .exe.
+
+Wed Apr  3 14:10:16 1996  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* expr.c (emit_push_insn): Clobber register only if it is non-zero.
+
+Wed Apr  3 11:31:55 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300.h (h8300_funcvec_function_p): Declaration moved here.
+	* h8300.c (h8300_funcvec_function_p): Declaration removed from here.
+	* h8300.md (tstqi): Tweak to work like other tstXX patterns.
+	(cmphi): Turn into a define_expand.  Add two anonymous
+	matterns to match the output of the cmphi expander.
+	(cmpsi): Accept constants as the second input operand.
+
+Tue Apr  2 13:52:30 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300.md (movqi_internal): Remove useless alternative(s).  Fix
+	lengths and simplify by reordering remaining alternatives.
+	(movstrictqi, movhi_internal, movstricthi): Likewise.
+	(movsi_h8300h, movsf_h8300h): Likewise.
+
+	* h8300/h8300.c (extra_pop): Remove unused variable.
+	(current_function_anonymous_args): Likewise.
+	(function_prologue): Remove incorrect varargs/stdarg
+	related code.
+	(function_epilogue): Likewise.
+	(function_arg): Never pass unnamed arguments in registers.
+	* h8300.h (LONG_LONG_TYPE_SIZE): Use 64bits when ints are 32bits.
+	(SETUP_INCOMING_VARARGS): Remove definition.
+
+Mon Apr  1 16:59:48 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* fixincludes: Fix signal prototype on SunOS to avoid pedantic C++
+	error.
+
+Mon Apr  1 16:16:34 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (get_inner_reference): When finding mode to access bitfield
+	that ends up properly aligned, use mode class of its type unless
+	type's mode was BLKmode.
+
+Mon Apr  1 13:45:30 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300.c (interrupt_handler): Renamed from pragma_interrupt.
+	All references changed.
+	(function_prologue): Set interrupt_handler if the current
+	function has the "interrrupt-handler" attribute.
+	(small_call_insn_operand): New function.
+	(h8300_interrrupt_function_p): New function.
+	(h8300_funcvec_function_p): New function.
+	(h8300_valid_machine_decl_attribute): New function.
+	* h8300.h (VALID_MACHINE_DECL_ATTRIBUTE): Define.
+	* h8300.md (call insns): Handle calls through the
+	function vector.  Indirect calls and calls through
+	the function vector have a length of two bytes.
+
+See ChangeLog.10 for earlier changes.
diff --git a/gcc/ChangeLog.0 b/gcc/ChangeLog.0
new file mode 100644
index 0000000..2e413b1
--- /dev/null
+++ b/gcc/ChangeLog.0
@@ -0,0 +1,6671 @@
+
+Wed Dec 21 02:46:34 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Version 1.32 released.
+
+	* toplev.c (main): Vax pcc enforces goto-less programming
+	with fatal error.
+
+	* stmt.c (fixup_memory_subreg): New arg INSN says where to emit insns.
+	(walk_fixup_memory_subreg): Likewise.  All callers changed.
+
+Tue Dec 20 01:26:56 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (start_function): Don't clear TREE_PERMANENT in fn decl.
+	Make the result decl a permanent node.
+	(finish_function): Don't clear DECL_RESULT in an inline function.
+	(duplicate_decls): Don't lose DECL_RESULT or DECL_SAVED_INSNS
+	or old decl, when defn is followed by redeclaration.
+	Likewise DECL_ARGUMENTS and DECL_RESULT_TYPE.
+
+	* stmt.c (expand_function_end): End any sequences left unterminated.
+
+	* cse.c (predecide_loop_entry): If "loop" has no label, do nothing.
+
+	* recog.c (asm_noperands): Now return -1 if not that kind of insn.
+	All callers changed.
+	* combine.c (check_asm_operands): Calling changes not quite trivial.
+	* final.c (final): Likewise.
+	* reload.c (find_reloads): Likewise.
+	* recog.c (asm_noperands): Other changes:
+	Loop computing # of SETs in a PARALLEL was off by 1.
+	Validate all elts of any PARALLEL, to block invalid combinations.
+
+	* ns32k.md (andsi3, andhi3): Make new CONST_INTs; don't clobber old.
+
+	* integrate.c (copy_rtx_and_substitute): When looking in `parm_map',
+	if our mode mismatches parm's mode, use change_address to extract part.
+	On BYTES_BIG_ENDIAN machines, adjust the offset.
+
+Mon Dec 19 23:50:14 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cexp.y ('/' and '%' ops): If divide by 0, print error, don't die.
+
+Sun Dec 18 14:03:02 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* toplev.c (main): Avoid shadowing I in inner block.
+
+	* flow.c (propagate_block): The insn at the end of a libcall
+	may be dead, but the libcall might still be needed if the
+	hard return reg is used later.  Detect this case.
+	(libcall_dead_p): New fn used to check that the libcall is dead.
+
+	* output-m68k.c, tm-m68k.h (standard_sun_fpa_constant_p): Fn renamed.
+
+Sat Dec 17 13:23:51 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stmt.c (expand_end_bindings): error_with_file_and_line => ..._decl.
+
+	* combine.o (try_combine): Accept combination making a valid
+	asm with operands.
+	(check_asm_operands): Recognize asm with operands that are valid.
+
+	* loop.c (strength_reduce): Don't accept a reg as a giv
+	if the reg was made by loop-optimize.
+
+	* stmt.c (balance_case_nodes): A list of 3 always splits in middle.
+
+Fri Dec 16 17:22:07 1988  Tiemann  (rms at sugar-bombs.ai.mit.edu)
+
+	* sparc.md (fetch from constant address): Split into two patterns,
+	one fixed point and one floating.
+	(store at constant address): Handle remembered hi-half differently.
+	Other bug fixes.
+	(fix_truncsfsi2): Use f1, not f0, as temp.
+	(fix_truncdfsi2): Don't clear CC_F1_IS_0.
+
+	* output-sparc.c (singlemove_string): Changed handling of case
+	where op1 is not memory and op0 has varying address.
+	(output_fp_move_double): Avoid reloading high half address
+	in the ldd and std cases with constant address.
+	(make_f0_contain_0): Handle f0 and f1 individually.
+
+	* tm-sparc.h (GO_IF_LEGITIMATE_ADDRESS): CONST is now illegitimate.
+
+	* rtl.c (note_stores): Pass entire SET rtx, not flag, as 2nd arg to FN.
+	* local-alloc.c (reg_is_set): New type for 2nd arg.
+
+	* Makefile: Comment out cc1plus, since not ready for release.
+
+Thu Dec 15 16:39:47 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* local-alloc.c (reg_is_set): If a hard reg is clobbered, make it free
+	before and after the insn.
+	* stupid.c (stupid_mark_refs): Likewise.
+	* global-alloc.c (global_conflicts): Likewise.
+	Use note_stores to call mark_reg_{store,clobber}.
+	(mark_reg_store): Changed calling conventions
+	All work done on set/clobbered regs is now done here.
+	Ignore CLOBBERs.
+	(mark_reg_clobber): Similar fn, but ignore SETs and handle CLOBBERs.
+	(regs_set, n_regs_set): New static vars for comm. among the above.
+
+	* stmt.c (expand_asm_operands): call protect_from_queue on operands.
+	This requires preexpanding the outputs into a vector of rtx's.
+
+	* Makefile (install): cd to $(libdir) before ranlib.
+
+	* c-typeck.c (c_expand_asm_operands): emit_queue at the end.
+
+	* reload.c (find_reloads): Count # alternatives properly for
+	an asm insn, and check that all operands correspond.
+
+	* loop.c (verify_loop): Reject loops containg setjmps.
+	* cse.c (cse_main): Don't cse across a call to setjmp.
+
+	* expr.c (expand_expr): Permit any non0 DECL_RTL for a VAR_DECL.
+
+	* stmt.c (balance_case_nodes): Count ranges double when balancing.
+
+Wed Dec 14 13:50:45 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* final.c (output_addr_const): Output just `-', not `+-'.
+
+	* make-cc1.com: Update filenames changed to `c-'.
+	* make-cccp.com: Pass needed -D options when compiling cccp.c.
+	Use /nomap when linking.
+
+	* loop.c (strength_reduce): Paraphrase setting NEW_REG, for Iris cc.
+
+	* output-m68k.c (output_move_const_single): %'s must be doubled twice.
+
+	* loop.c (record_giv): A giv can be replaceable if its uses are
+	all in the same basic block as its sole setting.
+	(last_use_this_basic_block): Subroutine to test that.
+
+Tue Dec 13 13:41:57 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (do_store_flag): Allow for COMPARISON to be a const_int.
+
+	* c-decl.c (pushdecl): Warn if type mismatch with another external decl
+	in a global scope.
+
+	* fixincludes: Fix typo in msg of deleting unchanged file.
+
+	* Makefile (insn-*): Use two-step rules with a separate time-stamp file
+	to avoid rerunning gen* unless md has changed again.
+
+Mon Dec 12 13:32:05 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* i386.md (tstsf, tstdf, cmpsf, cmpdf): Use fnstsw, not fstsw.  Faster.
+
+	* tm-vax.h (ASM_OUTPUT_REG_POP): Use correct asm syntax for pop insn.
+
+	* combine.c (subst): Handle (subreg (mem)) by making a changed mem.
+	This avoids producing any (subreg (mem))s except in the special
+	case they are supposed to be made here.
+	Also set undo_storage in a couple of cases that forgot to.
+
+	* reload.c (push_reload): When handling (SUBREG (MEM)) for IN,
+	if there is an OUT, make that a separate reload.
+	Return its number in `output_reloadnum'
+	(find_reloads): When pushing matching-reloads, note that the
+	two operands can have different reload-numbers.
+
+	* tm-3b1.h (ASM_OUTPUT_CASE_END): Test flag on TABLE, not its pattern.
+	(ASM_OUTPUT_CASE_LABEL): If /i flag set, don't output the dummy entry
+	since the fetcher-insn will not be off by 2 in this case.
+	* m68k.md (casesi_2 recognizer): For 3b1 syntax, compensate for that.
+
+Sun Dec 11 12:51:49 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* genrecog.c (try_merge_2): No longer put all explicit decompositions
+	before all predicates.  Patterns are now tested in the order written.
+	* vax.md: Move the push-or-move-address patterns to the end.
+	* m68k.md: Move load-address pattern to end.
+	Rearrange the special-case movsi patterns.
+	* ns32k.md: Move special load-reg-17 pattern before movsi.
+	* i386.md: Move the QI and DI push patterns to logical places.
+	This should not actually change anything.
+
+	* stmt.c: Add Andy Hitchins's binary-tree case statement code.
+	(struct case_stmt): case_list field is now a case_node chain.
+	Replace has_default field with default_label field.
+	(pushcase, pushcase_range): Build case_list in its new type,
+	and keep it sorted.
+	(expand_end_case): Use case_list in its new type.
+	Count a range of > 1 as two cases, when choosing strategy.
+	(group_case_nodes, balance_case_nodes): New fns, rearrange case_list.
+	(node_has_{low,high}_bound, node_is_bounded): New fns test
+	relationships of values of various case_list tree nodes.
+	(emit_jump_if_reachable): New fn.
+	(emit_case_nodes): Emit compares and jumps based on tree of case_list.
+
+	* cccp.c (finclude): Handle nonordinary files (stat doesn't give size).
+
+	* tm-3b1.h (PRINT_OPERAND_ADDRESS): Handle case of breg and no ireg.
+
+Sat Dec 10 16:30:32 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sparc.md (movstrsi): Separate define_expand and define_insn;
+	clobber some pseudos to get temp regs to use in the output.
+	* output-sparc.c (output_block_move): Use those temp regs,
+	guaranteed to be free.
+
+	* sparc.md (andcc patterns for bitfields from memory):
+	Test immed. arg for being in range.
+	(load DFmode constant): Use %m for output in one case.
+	* output-sparc.c (singlemove_string, output_move_double): Likewise.
+
+	* output-sparc.c (singlemove_string): New case for mem-to-mem move.
+
+Fri Dec  9 11:42:15 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stupid.c (stupid_mark_refs): for CLOBBER of a pseudo,
+	it is born just before this insn and dies just after.
+
+	* tm-vax.h (NOTICE_UPDATE_CC): For aob, sob insns, forget the cc's.
+
+	* basic-block.h (REG_BLOCK_UNKNOWN, REG_BLOCK_GLOBAL): Move defn here.
+	* local-alloc.c: Use them.
+
+	* c-decl.c (store_parm_decls): Additional explanatory message
+	for some prototype mismatches.
+
+	* gnulib.c (SItype): New macro used instead of `int'
+	for SImode operands and values.  Definition is `long int'.
+
+Thu Dec  8 18:45:48 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload.c (operands_match_p): Move the label `slow' so that
+	it doesn't cause a REG and a SUBREG to be compared wrong.
+
+	* toplev.c (compile_file): Output a label `gcc_compiled.' for GDB.
+	If new macro ASM_IDENTIFY_GCC is defined, run that instead.
+	* tm-3b1.h (ASM_IDENTIFY_GCC): Define this as no-op.
+
+Wed Dec  7 12:20:42 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* i386.md (adddf3): Typo: paren was in a constraint.
+
+	* c-decl.c (grokparms): Avoid duplicate msgs for incomplete type ptrs.
+
+	* gnulib.c: Rename all fns to start with `__'.
+	* optabs.c, expr.c: Rename all references.
+
+	* gnulib.c (__cmpdi2, __ucmpdi2): New fns.
+	* optabs.c (emit_cmp_insn): Use them.
+
+	* Makefile (stage*): Ignore errors on the main `mv' (for cc1plus).
+	Run ranlib if we have to copy gnulib.
+
+	* expmed.c (expand_divmod): Split `label' into several local vars.
+
+	* jump.c (jump_back_p): Do nothing unless cc's were set from integers.
+
+Tue Dec  6 12:00:21 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y (extend_token_buffer): Use xrealloc, not realloc.
+
+	* integrate.c (output_inline_function): fix args of expand_function_end
+	(expand_inline_function): Add missing arg to expand_end_bindings.
+
+	* cse.c (cse_insn): Add missing MODE arg to canon_hash.
+
+	* reload1.c (reload_as_needed): Del. extra arg of choose_reload_targets
+	(reload): Add missing MODE arg to immediate_operand.
+
+	* expmed.c (expand_mult): Delete extra arg to expand_unop.
+
+	* c-typeck.c (default_conversion):
+	Add missing NOCONVERT arg to build_unary_op.
+
+	* c-decl.c (duplicate_decls, finish_struct): Add missing arg
+	KNOWN_ALIGMENT to layout_decl.
+	* stor-layout.c (layout_record): Likewise.
+	* varasm.c (assemble_variable): Likewise.
+
+	* dbxout.c (dbxout_init): Add missing LOCAL arg to dbxout_symbol.
+
+	* expr.c (clear_storage): Remove excess arg to emit_move_insn.
+
+	* loop.c (consec_sets_invariant_p): Add parens in hairy if-condition.
+
+	* fold-const.c (fold): Typo, missing `case'.
+
+	* cccp.c (main): Typo handling `-I-' option.
+
+	* tm-i386.h (NO_FUNCTION_CSE): Define this; cse is said to slow
+	things down with less than 7 calls.
+
+	* stmt.c (fixup_var_refs_insn): When scanning the reg-notes,
+	don't touch other insns they point at.
+
+	* expr.c (do_jump): Use invert_exp, not reverse_condition,
+	to invert sense of a jump.
+	* jump.c reverse_condition now static, invert_exp now global.
+
+Mon Dec  5 10:51:39 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-sun386.h (ASM_FILE_START): In the .file arg, exclude directories.
+
+	* stmt.c (expand_expr_stmt): If -W, warn if stmt has no side effect.
+
+	* cccp.c (monthnames): Capitalize each name.
+
+	* rtl.def: New code MATCH_OPERATOR.
+	* genconfig.c (walk_insn_part): Handle it.
+	* genextract.c (walk_rtx): Handle it.
+	* genpeep.c (match_rtx): Handle it.
+	* genrecog.c (add_to_sequence): Handle it.
+	* genemit.c (max_operand_1, gen_exp, gen_expand): Handle it.
+	* genoutput.c (scan_operands): Handle it.
+	(insn_n_alternatives): New array in the output.
+	(struct data): New slots n_alternatives and op_n_alternatives.
+	(scan_operands, gen_insn, gen_peephole):
+	Record op_n_alternatives for each operand.
+	(output_epilogue): Verify that all operands have same # of alternatives
+	Also output insn_n_alternatives.
+
+	* reload.c (find_reloads): use insn_n_alternatives to control
+	the loop over all alternatives.
+	An empty constraint or empty alternative in a constraint
+	is always satisfied.
+	* recog.c (constrain_operands): Likewise.
+
+	* c-decl.c (lang_decode_option): For each -f option, recognize a form
+	with `no-' and a form without, as contraries.
+
+	* toplev.c (main): Decode -f options using a table
+	so that each option automatically has a `no-' variant.
+
+	* combine.c (try_combine): Give up if I1 or I2 follows a compare insn.
+
+Sun Dec  4 12:00:36 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c (data_section): If flag_shared, use SHARED_SECTION_ASM_OP
+	if that is defined.
+
+	* cccp.c (include_default): Add /usr/local/include.
+
+	* Makefile (install): Install the makefile.
+
+	* varasm.c (assemble_external): New fn to declare an external.
+	(assemble_variable): Output nothing for externals.
+	* c-parse.y (primary => identifier): Call assemble_variable on 1st use.
+
+	* toplev.c (main): Print version info on stderr, not stdout.
+	* tm-*.h (TARGET_VERSION): Likewise.
+
+	* tm-isi68.h, tm-news800.h: Rename __HAVE_FPU__ to __HAVE_68881__.
+
+	* sparc.md (seq, etc): Entire page rewritten by Tiemann
+	to avoid incorrect use of PARALLEL.
+	* output-sparc.c (gen_scc_insn): Corresponding changes.
+
+Sat Dec  3 00:03:19 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gcc.c (do_spec_1): %P is an ANSIfied form of %p:
+	put __ at beg and end of each predefined macro name.
+
+	* tm-sun3.h (CPP_SPEC): Don't define -Dmc68010, etc., if -ansi.
+	* tm-sun2.h (CPP_SPEC): Likewise.
+
+	* c-decl.c (shadow_tag): Don't complain if declare a new tag
+	at top level, or if redeclare a tag.
+
+	* c-decl.c (grokparms): Warn if parm points to incomplete type.
+	(We already err if its own type is incomplete.)
+
+	* stmt.c (fixup_var_refs_insns): Fix any (SUBREG (MEM)) in REG_NOTES.
+	(walk_fixup_memory_subreg): New subroutine used for this.
+
+	* integrate.c (copy_rtx_and_substitute): Handle MEM refs to the middle
+	of a stack-parm--at least in the case of reading the parm.
+
+	* rtl.c (rtx_equal_p): REG_FUNCTION_VALUE_P is significant
+	only until end of reload pass.
+	* toplev.c (rest_of_compilation):
+	Control that by setting new var rtx_equal_function_value_matters.
+
+	* c-decl.c (init_decl_processing): Don't declare the builtins
+	that aren't really implemented.
+
+	* output-sparc.c (output_move_double): "in structure" implies
+	8-byte alignment only for DFmode, not for DImode.
+
+	* final.c (output_operand_lossage): Cleaner text for error msg.
+	No longer need to write text into .s file, now that linenum is correct.
+
+	* c-decl.c (pushdecl): -traditional stops warning
+	about "declared extern, later static".
+
+	* c-typeck.c (build_indirect_ref): Don't handle flag_volatile here.
+	* expr.c (expand_expr): Handle it here, in INDIRECT_REF case.
+	This prevents -fvolatile from causing additional warnings.
+
+	* output-sparc.c (output_load_address): Allow REG+REG for operands[3].
+
+	* m68k.md (movsi): If we output the label LIn,
+	set the RTL_INTEGRATED flag in the switch table's pattern.
+	* tm-3b1.h (ASM_OUTPUT_CASE_END): Define LD%n only if LI%n was output.
+
+	* i386.md (push-and-add pattern): Comment it out.
+	It's said to result in slower code.
+
+	* i386.md (tstqi, tsthi, tstsi): Output real `test' insn if op is reg.
+
+	* i386.md (push for DI): Allow `oiF' for 2nd operand.
+
+Fri Dec  2 13:57:35 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* i386.md (movdi): Allow F constraint for 2nd operand.
+
+	* i386.md (push for QI): define pattern to push a QImode
+	which really uses pushw and therefore really pushes a halfword.
+	* tm-i386.h (PUSH_ROUNDING): Round up to multiple of 2.
+
+	* gcc.c (do_spec_1): Handle %e, which means report an error.
+	Use it to prohibit -pg with -fomit-frame-pointer.
+
+	* tree.h (DECL_RESULT_TYPE): New field in FUNCTION_DECL holds the type
+	of the widened returned value (not nec. the declared return type).
+	* c-decl.c (start_function): Set DECL_RESULT_TYPE.
+	* integrate.c (expan_inline_function): Use that, not DECL_RESULT.
+
+Thu Dec  1 16:44:10 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cse.c (fold_rtx): When reordering constant args, insist on
+	manifest constants; regs with known contents won't do.
+
+	* i386.md (mulsi3): Don't use rtx_equal_p to compare regs.
+
+	* expr.c (move_by_pieces_1): Don't call change_address
+	if address is autoinc, since that may not be memory_address_p.
+	Subroutine-macro add_offset deleted.
+
+	* optabs.c (bcc_gen_fctn, setcc_gen_fctn): Moved to this file.
+	(init_optabs): Init those tables here.
+	* expr.c (init_conditions): Not here.
+
+	* stmt.c (assign_stack_local): Make a list of all stack slots.
+	* emit-rtl.c (unshare_all_rtl): Unshare all the stack slots.
+
+	* final.c (final): Handle BARRIER with ASM_OUTPUT_ALIGN_CODE.
+	* tm-ns32k.h (ASM_OUTPUT_ALIGN_CODE): Align to 4-byte bdry.
+??	* tm-sequent.h (ASM_OUTPUT_ALIGN_CODE): Override: just 2-byte bdry.
+
+	* tm-m68k.h (PRINT_OPERAND): use new macros to print floats.
+	(ASM_OUTPUT_FLOAT_OPERAND): New macro.
+	(ASM_OUTPUT_DOUBLE_OPERAND): New macro.
+	* tm-sun3.h: Override those macros, to check for infinities.
+
+Wed Nov 30 06:35:47 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-ns32k.h (FUNCTION_{PRO,EPI}LOGUE): if no frame pointer,
+	do explicit push or pop insns.
+
+	* tm-genix.h (PRINT_OPERAND): Fix typo `file'.
+	Extedn decl for paren_base_reg_printed.
+	(MAIN_FUNCTION_PROLOGUE): Deleted.
+	(ASM_OUTPUT_EXTERNAL): Defined.
+
+	* c-parse.y (yyerror): Better error msg for unprintable char in token.
+	(primary => identifier): Set TREE_USED if implicit decl made.
+
+	* Makefile (cleanlinks): New target.
+	(INSTALL): New variable, has program used for installing files in sys.
+
+	* output-ns32k.c (print_operand_address): If addr is sum of 2 consts,
+	output ADDR first, then OFFSET.
+
+	* ns32k.md (addsi3): Allow adding const+reg with result in another reg.
+
+	* tm-seq386.h (FUNCTION_PROFILER): Provide overriding definition.
+
+	* tm-hp9k320.h: Alternate ASM_SPEC if using GAS.
+	Define STANDARD_STARTFILE_PREFIX if using GAS.
+	(FUNCTION_PROLOGUE): on 68020 for big stack frame use link.l.
+
+	* gcc.c (STANDARD_STARTFILE_PREFIX): New cust. macro replaces `/lib/'.
+
+	* va-sparc.h, va-spur.h: Prefix non-interface identifiers with `__'.
+
+	* optabs.c (init_optabs): Don't set up libcalls for ftrunc_optab
+	because (1) they aren't supported and (2) they are never used.
+
+	* gnulib.c (__builtin_saveregs): If not sparc, define the symbol anyway
+	to avoid a warning in ranlib.
+
+Mon Nov 28 01:46:12 1988  Michael Tiemann  (mdt at choctaw)
+
+	* c-parse.y (yylex): Typo, `=' for `==' making wide strings.
+
+	* sparc.md (various places): make sure that all patterns which store
+	can store using const0_rtx (i.e., make all operands to `st' %rx).
+
+	* output-sparc.c (various places): changed dispatches on SYMBOL_REF
+	to dispatches on CONSTANT_ADDRESS_P since we now recognize any CONST
+	(and not just SYMBOL_REFs).  Don't recognize special case CONST for
+	output_block_move.  Compiler doesn't have enough information to use
+	it.
+
+	* stmt.c (expand_fixup): If the control stack is nested within the
+	nesting stack, then no fixup is needed.  Otherwise, compiler must
+	check for possible fixups between the current nesting stack and the
+	nesting stack that immediately contains the control stack.
+
+	* stmt.c (expand_function_start): functions which are nested use
+	DECL_CONTEXT.  For these functions, test that their DECL_CONTEXT is
+	a LET_STMT node.
+
+	* tree.h: declare `build_offset_type'.
+
+Sun Nov 27 10:34:53 1988  Richard Stallman  (mdt at yahi)
+
+	* output-sparc.c (output_move_double):
+	Don't try to use ldd/std if OP1 is a constant.
+	* sparc.md (movdi): Allow immediate args moved into general regs.
+
+	* c-decl.c (grokparms): Reject incomplete parm types even if just
+	declarating, not defining.  Change types to error_mark_node
+	in both the PARM_DECL and the list of types.
+
+	* dbxout.c (dbxout_type): It's not a bug if a RECORD_TYPE
+	has a typedef as its TYPE_NAME.  That happens in C++.
+
+	* Make each `asm' with operands record its source file/line
+	with reg-notes.  It doesn't work to emit a special note before the insn
+	because the insn can be moved by loop_optimize.
+	* stmt.c (expand_asm_operands): New args FILENAME, LINE.
+	Record them in the insn, in reg notes.
+	* c-typeck.c (c_expand_asm_operands): New args, passed along.
+	* c-parse.y: Pass those args.
+	(maybe_type_qual): Line #s for asm stmts emitted like all others.
+	* rtl.h (REG_ASM_FILE, REG_ASM_LINE): New kinds of reg notes.
+	* toplev.c (error_for_asm): Get the info from those notes.
+
+	* reload.c (find_reloads): Don't clear BADOP for a reg letter
+	if the alternative ultimately doesn't allow any regs.
+
+	* reload.c (find_reloads): If an `asm' insn gets an error,
+	change it to a USE to avoid duplicate error msgs or later trouble.
+
+	* reload.c (find_reloads_address): Reloading a constant address,
+	specify Pmode as the mode for push_reloads, in case of CONST_INT.
+
+	* expr.c (emit_push_insn): Fix calc. of space needed when PARTIAL > 0.
+	Both scalar case and BLKmode case needed fixing.
+
+	* sparc.md (load/store constant address):
+	Moving DF from mem to cpu regs, don't go via %f0.
+	Don't use std/ltd if alignment is wrong or uncertain.
+
+Sun Nov 27 10:34:53 1988  Michael Tiemann  (mdt at yahi)
+
+	* reload.c (push_reload): Allow VOIDmode for INMODE, OUTMODE;
+	default the mode from the operand values.
+
+	* sparc.md: remove patterns which generate annulled branch insns.
+	They are correct, but those insns confuse GDB.
+
+	* tm-sparc.h (GO_IF_LEGITIMATE_ADDRESS):
+	Treat any constant address like a SYMBOL_REF.
+	* sparc.md: Check for CONSTANT_ADDRESS_P rather than SYMBOL_REF.
+
+	* sparc.md: Peepholes now accept SYMBOL_REF addresses.
+	The output routine can now split them properly even as delay insns.
+
+	* print-tree.c (dump): added entry for METHOD_TYPE and
+	METHOD_CALL_EXPR.  Also added entry for WITH_CLEANUP_EXPR.  Suggest
+	that we make first_rtl of WITH_CLEANUP_EXPR 2 instead of 1.
+
+Sun Nov 27 00:15:33 1988  Michael Tiemann  (mdt at yahi)
+
+	* print-tree.c (dump): added entry for OP_IDENTIFIER.
+
+	* tree.c (build_op_identifier): new function.  Needed because
+	`build_nt' expects an "e" node, but OP_IDENTIFIER is an "x" node.
+
+	* store_layout.c (layout_record): use DECL_FIELD_CONTEXT instead of
+	DECL_CONTEXT.
+
+	* tree.h (DECL_FIELD_CONTEXT): new macro.  Points to the type that a
+	FIELD_DECL is a member of.  For C, this is just DECL_CONTEXT.
+
+	* tree.c (build_method_type): typo used "==" to assign basetype to
+	TYPE_METHOD_BASETYPE with predictably poor results.
+
+Sat Nov 26 22:55:32 1988  Michael Tiemann  (mdt at yahi)
+
+	* output-sparc.c (output_sized_memop): new function to output a load
+	or store insn based on the size of the operand loaded or stored.
+	(make_f0_contain_0): use info from condition codes to decide whether
+	the register %f0 needs to have 0 loaded from memory or not in order
+	to contain zero.
+	(gen_scc_insn): new function used by define_expands for
+	set-on-condition-code insns.
+	(output_delay_insn): now knows how to handle load and store
+	scheduling when the load or store operation takes two insns instead
+	of one.  The rewrite is now understands is this:
+
+	  sethi %hi(address),%g1	-> sethi %hi(address),%g1
+	  ld/st [%g1+%lo(address)],%reg	-> b target
+	  b	target			-> ld/st [%g1+%lo(address)],%reg
+	  nop				-> ;; gone
+
+	* jump.c (reverse_condition): make this function publicly visible,
+	now needed in expr.c.
+
+	* output-sparc.c (reg_or_0_operand): new function, returns nonzero
+	if operand is const0_rtx or a register of specified mode.
+	(hardreg): deleted.
+
+	* expr.c, stmt.c: fixed random syntax errors.
+
+	* tree.c (build_method_type): now corresponds to defn in tree.def
+	  expr.c (expand_call): removed code to get FUNCTION_TYPE from
+	  METHOD_TYPE.  This should probably be looked at harder.
+
+	* tree.def (METHOD_TYPE): Changed definition so that TREE_TYPE (m)
+	(where m is a METHOD_TYPE) is the type of the return value of the
+	method, not the FUNCTION_TYPE from which the METHOD_TYPE is derived.
+	
+	* Makefile: Changed target of BINDIR from /usr/local to
+	/usr/local/bin.
+
+Sat Nov 26 16:29:22 1988  Michael Tiemann  (mdt at chickasaw)
+
+	* tm-sparc.h (GO_IF_LEGITIMATE_ADDRESS): Allow any SYMBOL_REF.
+	(NOTICE_UPDATE_CC): Remember high half of %g1 as a "condition code"
+	to avoid reloading it if it does not change.
+	(NOTICE_UPDATE_CC): Test SET_SRC, not SET_DEST, for a CALL rtx.
+	(PRINT_OPERAND): New code-letter `m' says output operand as an address.
+
+	* toplev.c (flag_syntax_only): New flag variable.
+	* flags.h: Likewise.
+
+	* toplev.c (error_with_decl): Extra arg, passed to fprintf.
+	(warning_with_decl): Likewise.
+
+	* tree.c (build_offset_type): New function.
+
+	* tree.h (TYPE_METHOD_BASETYPE): New name for TYPE_METHOD_CLASS.
+	Uses in tree.c and... renamed.
+
+	* combine.c (SUBST_INT): New macro, for replacing an int.
+	(subst): Collapse nested SUBREGs even if SUBREG_WORDs are not 0.
+
+	* expr.c (bcc_gen_fctn, setcc_gen_fctn): new tables,
+	initialized in init_comparisons.
+	Used in expand_expr, do_jump, do_store_flag
+	instead of explicit construction of a jump.
+
+	* expr.c (save_noncopied_parts): New function.
+
+	* expr.c (expand_expr):
+	  ARRAY_REF: Special case for array of constants.
+	  WITH_CLEANUP_EXPR: Handle it.
+	  INIT_EXPR: Case deleted.
+	  MODIFY_EXPR: Use save_noncopied_parts.
+
+	* expr.c (expand_call): blkmode_parms_forced can be >0
+	even when no stack arg space otherwise needed.
+	Don't use a hard reg as a target if there are cleanups.
+
+	* stmt.c (struct block): New elt. outer_cleanups.
+	(struct case): New elt. num_ranges.
+	(struct fixup): Changed meaning of cleanup_list_list.
+	Changes in expand_fixup, fixup_gotos.
+	(expand_fixup): Detect some internal forward-jumps
+	that need no fixups--for speed.
+	(fixup_gotos): New arg THISBLOCK.
+	(expand_expr_stmt): Handle flag_syntax_only.
+	(use_variable): No longer static.
+	(use_variable_after): new fn.
+	(expand_end_bindings): handle cleanups like a stack level.
+	(expand_decl): Handle a cleanup with no decl.
+	(move_cleanups_up): Preserve relative order of cleanups.
+	(expand_anon_union_decl): New fn.
+	(pushcase): New fast clause if no ranges yet.
+	(pushcase_range): Turned on.
+	(expand_function_start): New temp var `fntype'.
+	Set TREE_USED for a parm we are ignoring.
+	(expand_function_end): Really use the `filename' arg.
+	Use use_variable_after for SAVE_EXPR regs.
+
+	* dbxout.c (dbxout_type): Handle OFFSET_TYPE.
+
+	* gnulib.c (__builtin_new, etc.): Support for C++.
+
+	* emit-rtl.c (next_insn, prev_insn): New fns.
+
+Sat Nov 26 16:29:22 1988  Richard Stallman  (mdt at chickasaw)
+
+	* tree.h (TREE_LANG_FLAG_[1234]): New attributes.
+	(TYPE_METHOD_BASETYPE): New name for TYPE_METHOD_CLASS.
+	(TYPE_OFFSET_BASETYPE): New macro.
+	(NUM_TREE_CODE): New macro.
+	(TYPE_NONCOPIED_PARTS): new field in a type-node.
+
+	* varasm.c (make_decl_rtl): Split out from assemble_variable.
+	(assemble_variable): No longer creates the rtl.
+	No longer handles policy of whether to output tentative decl yet.
+	(output_constant_def): Don't lose if wasn't temp allocation
+	when this was called.
+	(output_constant): Handle REFERENCE_EXPR.
+
+	* Makefile (BISONFLAGS): new variable.
+	(prefix): New variable, used in bindir and libdir.
+	(C_OBJS, CPLUS_OBJS): New vars, split off from OBJS.
+	(LIBFUNCS): C++ support functions added.
+	(CPLUS_TREE_H): New variable.
+	(cc1plus): New target.
+	(lang_c, lang_cplus): Combines all targets for one language.
+	(gplus.info): New target.
+	(cplus-*.o): New targets.
+	(realclean): Handle new C++ files and recent renamings.
+	(install, TAGS): Likewise.
+
+	* print-tree.c (prtypeinfo): Handle TREE_LANG_FLAG_[1-4].
+
+	* tm-sparc.h (ASM_OUTPUT_DOUBLE): Special case for infinity.
+	(ASM_OUTPUT_FLOAT): Likewise.
+
+	* gcc.c: Don't define __GNU__.
+	For .cc files, pass -+ to cpp, and don't handle -ansi.
+	Use cc1plus as name of compiler for .cc files.
+
+	* stor-layout.c (layout_type): abort if given a LANG_TYPE node.
+	(layout_union): Complain if union has basetypes or static members.
+	(layout_record): Handle anonymous union members.
+
+	* tree.def (LANG_TYPE): New tree code for language-specific purposes.
+	(WITH_CLEANUP_EXPR): New tree code for expressions whose values
+	need to be cleaned up when they are deallocated.
+	(OP_IDENTIFIER): New tree code for certain C++ purposes.
+
+	* toplev.c (rest_of_decl_compilation): Call make_var_rtl
+	before assemble_variable.
+
+Wed Nov 23 02:15:45 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* xm-sunos4.h: Rename included config files to xm-*.
+	* xm-*.h: Likewise.
+
+	* fixincludes: Avoid altering args to names other than CTRL
+	that end in ...CTRL.
+	If a file isn't actually changed, delete the copy.
+
+Mon Nov 21 12:48:22 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* loop.c (move_movables): Never move a reg w/ # > old_max_reg.
+	(strength_reduce): For nonreplaceable giv, put insn to load it
+	after the insn that used to compute it, in case the latter
+	is the last of a libcall sequence.
+
+	* stmt.c (expand_function_end): If returning BLKmode, also copy
+	address where value is returned to the place that GDB will
+	expect to see it after the return.
+
+	* c-parse.y (readescape): Warn about hex constant out of range
+	for a target integer.
+	(yylex): Warn about escape out of range for non-wide char or string.
+	Use a buffer of ints to read a wide string.
+
+Sat Nov 19 02:18:02 1988  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* Version 1.31 released.
+
+	* sparc.md: Change `K' to `I' in all constraints.
+
+	* loop.c (gen_iv_mult): Handle TARGET==0.
+
+	* c-decl.c (duplicate_decls): Undo last change.
+
+	* c-decl.c (pushdecl): Instead of that change,
+	save old-decl's file/line before calling duplicate_decls,
+	and pass them later to warning_with_file_and_line.
+	* toplev.c (warning_with_file_and_line): New fn.
+
+Fri Nov 18 13:07:06 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stmt.c (fixup_var_refs_1): (SUBREG (MEM)) was slipping through
+	in case where a SET was writing in the variable being fixed.
+
+	* recog.c (register_operand, nonmemory_operand, memory_operand):
+	Changes to handle new var reload_completed: 1 means that
+	(SUBREG (MEM)) now counts as a mem-ref, since alter_subreg
+	will make it one.
+	* toplev.c (rest_of_compilation): Set and clear reload_completed.
+
+	* sparc.md (call patterns): If TARGET_SUN_ASM, and address in reg,
+	output a jmpl rather than a call.
+	* tm-sun4os3.h: Like tm-sparc.h but turn on TARGET_SUN_ASM.
+
+	* reload.c (push_reloads): Reinstate handling of reg_equiv_constant.
+
+Thu Nov 17 09:48:14 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (constraint_accepts_reg_p): Name changed from
+	constraint_all_regs_p; new arg is reg we are concerned with,
+	and condition tested takes some advantage of that reg.
+
+	* gcc.c (main): Rename var `error' to `error_count' for name conflict.
+
+	* emit-rtl.c (emit_note): Output line #s even if no debug info wanted.
+	(emit_line_note): New fn, does what emit_note did.
+	(emit_line_note_force): New name for emit_note_force.
+	* stmt.c, c-parse.y: Call emit_line_note instead of emit_note.
+
+	* c-parse.y (maybe_type_qual): Call emit_note instead of emit_line_note
+	Now we can find the line # of every `asm' from the RTL.
+	* toplev.c (error_for_asm): New fn, gets line # by searching for NOTE.
+	* reload.c (find_reloads): Use error_for_asm.
+	* reload1.c (choose_reload_targets): Likewise.
+	* final.c (output_operand_lossage): Likewise.
+	Variable this_is_asm_operands is now current insn if it's nonzero.
+
+	* loop.c (move_movables): When a reg is moved, update regno_first_uid
+	and regno_last_uid; say life span includes entire loop.
+	* Decrement THRESHOLD per reg moved, not per insn moved.
+
+Wed Nov 16 08:41:32 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gnulib.c (___builtin_saveregs): New fn, for sparc.
+
+	* tm-sparc.h (GO_IF_LEGITIMATE_ADDRESS): Don't recognize
+	SYMBOL_REFs, except for the constants pool.
+	But do recognize REG+REG and SMALLINT+REG.
+	* sparc.md: New patterns for fetching and storing memory
+	whose address is symbolic and not "legitimate".
+
+	* sparc.md (movsi): Add `f' to op1 constraint.
+	New output clause for result in fp reg.
+	(Floating point fetch patterns): Output sethi insns.
+	(call_value, related patterns): value-register has `register_operand'.
+
+	* output-sparc.c (hardreg): New function.
+	(COMPATIBLE): Clause added for n_regs == 2.
+	(single_insn_src_p): Return 0 for MEM whose address is absolute.
+
+	* tm-genix.h (GO_IF_LEGITIMATE_ADDRESS subroutines):
+	Redefine, to exclude any possibility of SB-referencing addresses.
+
+	* loop.c (strength_reduce): Can't eliminate a biv if used before
+	start of the loop.  Used before is same as used after, if contained
+	in another loop.
+
+	* recog.c (asm_noperands, decode_asm_operands):
+	Handle case of no outputs, but some clobbers.
+	* stmt.c (expand_asm_operands): Generate right stuff for that case.
+
+	* tm-sun3.h (CPP_SPEC): Don't define __HAVE_68881__ if using fpa.
+
+Tue Nov 15 00:10:26 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* loop.c (gen_iv_mult): Arg OP0 may not be a constant.
+	Pay attention to return value of expand_mult.
+	(eliminate_biv): Call changed.
+
+	* output-m88k.c, output-sparc.c (output_move_double):
+	Fix typo `optype0' for `optype1'.
+
+	* c-decl.c (duplicate_decls): Don't alter file, line of old decl.
+
+	* c-parse.y (skip_white_space): Don't recognize comments; rely on cpp.
+
+	* rtl.c (rtx_equal_p): Handle vectors.
+
+	* loop.c (scan_loop): Change elts of n_times_set back to positive
+	for candidates that weren't moved, before doing strength reduction.
+
+	* ns32k.md (movdi, movdf): Use `&' constraint for first operand.
+
+	* reload1.c (reload): Initialize spill_indirect_ok here.
+
+	* config-sun4.h: Recognize `-static' switch.
+
+	* global-alloc.c (set_preference): Avoid using nonsense hard reg #s
+	that result from adding OFFSET.
+
+	* sdbout.c (sdbout_end_function): Line # in .ef should be relative.
+
+	* final.c (output_source_line): For SDB, don't output negative #s.
+
+	* tm-encore.h (ASM_OUTPUT_LOCAL): Don't ignore SIZE arg.
+
+Mon Nov 14 11:03:16 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload.c: Don't declare refers_to_regno_p.
+
+	* gcc.c (main): Warn if any input files are for the linker
+	but the linker is not being run.
+
+	* jump.c (sets_cc0_p): Dumb bug fetching elts of a PARALLEL.
+
+	* local-alloc.c: qty_birth, qty_death elements are now -1, not 0,
+	when the value is not known.
+
+	* expmed.c (extract_bit_field): Bug computing xbitpos, xoffset
+	when changing units from bytes to words.
+
+	* loop.c: Rename `times_used' field in `struct movable' to `savings'.
+	(scan_loop): When scanning the consecutive sets, for each libcall,
+	increment `savings'--leave `consec'.
+	When making movable for (SET (REG) 0) which is part of zero-extension,
+	set `savings' to 1 initially, since only 1 insn will be moved.
+	And don't let any other reg force that insn.
+	Reduce initial THRESHOLDs.
+	(move_movables): Don't add `consec' into `savings'
+	since the initial `savings' was proportional to `consec'.
+	Decrement THRESHOLD by 3 (not 2) for each move done.
+
+	* reload1.c (choose_reload_targets): Strip subregs from OLD
+	before writing the output-reload move-insn.
+
+	* reload1.c (reload): counted_for_groups and counted_for_nongroups
+	are now file-scope.  Update them both when spilling.
+	(new_spill_reg): No need for counted_for_nongroups as arg.
+	(choose_reload_targets): Don't use for a group
+	any spill regs for which counted_for_nongroups is set.
+
+	* dbxout.c (dbxout_symbol): Indirect-symbol case checked erroneously
+	for PARM_DECL.
+
+Sun Nov 13 08:13:49 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cse.c (fold_rtx): Don't alter MULT by -1 if arg mode != result mode.
+
+	* loop.c (move_movables): If moving a CALL_INSN, make a new CALL_INSN.
+	* emit-rtl.c (emit_call_insn_before): New fn.
+	
+	* config-sun4.h (LINK_SPEC): Avoid shared libraries if -g.
+
+	* expr.c (store_one_arg): Stabilize ARG->stack so it doesn't use SP
+	before computing the arg value.
+
+	* combine.c (use_crosses_set_p): Moving a ref to stack ptr
+	is always forbidden if machine has push insns, since might cross one.
+
+	* vax.md (movqi): Avoid out-of-range immed ops in mcomb.
+
+	* expmed.c (extract_bit_field): Don't say `extzv' in the
+	clause for `extv'.
+
+	* emit-rtl.c (copy_rtx_if_shared): Even if a MEM can be shared,
+	unshare its address from everything outside that MEM.
+
+	* expr.c (expand_builtin): Fix omitted arg to `convert_to_mode'.
+
+	* expr.c (store_expr): In case where will not return TARGET
+	and must do type conversion, don't fail to store into TARGET.
+
+	* dbxout.c (FORCE_TEXT): New macro used before output `.stabs'
+	to go to the text section on targets that require it.
+	(DEBUG_SYMS_TEXT): Target macro which turns on that feature.
+
+	* reload1.c (reload): Index in spill_regs was wrong
+	when checking counted_for_groups.
+	(choose_reload_targets): When calling find_equiv_reg looking for
+	a reload reg, reject all spill regs, even those not in use now.
+
+	* tm-sun386.h, tm-sun386i.h, config-sun386i.h: New files.
+
+	* cccp.c (main): Don't die if no output file arg given.
+
+	* fixincludes: Tell `find' to find only ordinary files.
+
+	* config.gcc: If symlink fails, make a hard link.
+
+Sat Nov 12 20:43:20 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Makefile (gnulib): Use cp to make the temporary .c files;
+	less likely to fail than ln.
+
+Sat Nov  5 12:46:39 1988  Randall Smith  (randy at sugar-bombs.ai.mit.edu)
+
+	* tm-m68k.h (HARD_REGNO_MODE_OK): Disallowed d7:a0 as an allowable
+	pair of registers to hold a double value.  This is correct for the
+	fpa but incorrect for the 68881.  It was, however, simpler than
+	defining a new regclass.
+
+Tue Oct 25 12:03:49 1988  Randall Smith  (randy at gluteus.ai.mit.edu)
+
+	* m68k.md: Added some thoughts (comments) on best method to allow
+	68881 code with fpa code.
+
+Thu Oct 13 14:19:17 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Version 1.30 released.
+
+	* stupid.c (stupid_life_analysis): Init last_call_suid with
+	largest possible value, not 0.
+
+Wed Oct 12 04:40:18 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* output-i386.c (output_asm_insn_double_reg_op): Compensate for
+	assembler bug that interchanges fsub and fsubr.
+
+	* reload1.c (order_regs_for_reload): Undo 29 Sept change.
+	It breaks the 386.
+
+	* varasm.c (decode_rtx_const): Don't example value->addr
+	if what was stored in was value->d.
+
+	* toplev.c (set_float_handler): New fn, specify where to jump
+	on floating exception signal.
+	* fold-const.c (combine): Use that to handle overflow in arithmetic.
+
+	* c-decl.c (grokdeclarator): Don't clear CONSTP, VOLATILEP
+	when making an array type.
+
+	* dbxout.c (dbxout_symbol): Ignore VAR_DECLs in memory whose
+	addresses we can't represent.
+
+	* fold-const.c (fold): don't convert >= to > if both args are constant.
+	When converting >= to >, don't fail to change CODE.
+
+Tue Oct 11 04:13:40 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* vax.md (movhi): Error in truncating mcomw, addh3 args to 16 bits.
+
+	* final.c: Better error checking for %-specs in templates.
+	(output_operand_lossage): new fn to report errors.
+	(insn_noperands): new var: # operands in current fn.
+	(this_insn_asm_operands): new var: 1 for `asm', 0 otherwise.
+	(output_asm_insn): Check for operand # out of range.
+	(output_asm_label, output_operand): Call new fn to report errors.
+
+	* reload.c (push_reloads): An input reload for (REG N) can match one
+	for (POST_INC (REG N)) or (PRE_INC (REG N)), since the value
+	reloaded is the same in any case.
+
+Mon Oct 10 06:19:05 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* recog.c (next_insns_test_no_inequality): Like next_insn_tests...
+	but check all insns that follow this one and can use it's cc's.
+	* output-m68k.c (output_btst): Use that.
+
+	* vax.md (movsf, movdf): Undo last change; movq/movl set the cc wrong.
+
+	* expr.c (expand_call): Set current_function_calls_setjmp if appro.
+	* stmt.c (setjmp_protect): New fn: move all vars into stack
+	unless declared `register'.
+	* c-decl.c (finish_function): Call it if -traditional and setjmp used.
+
+	* cccp.c (main): Open output after the input.
+	Handle `-o -'.
+
+Sun Oct  9 00:28:06 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-sun3.h (CPP_SPEC): Define __HAVE_FPA__ if appropriate.
+
+	* c-decl.c (pushdecl): After duplicate_decls, maybe warn about
+	"declared extern and later static".
+
+	* expmed.c (store_bit_field): In insv case, avoid turning
+	VALUE into a subreg of a subreg.
+
+	* loop.c (move_movables): When moving a libcall,
+	un-cse the function address; put it into the call insn.
+
+Sat Oct  8 01:48:03 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cse.c (equiv_constant): Subroutine to find the constant equivalent
+	of a reg.  Now handles SUBREGs too.
+	(fold_rtx, fold_cc0): Use that function.
+	Don't handle SUBREGs like arithmetic.
+
+	* reload1.c (choose_reload_targets): Don't call reg_overlap_mentioned_p
+	if arg is 0.
+
+Fri Oct  7 01:00:19 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* assert.h: Typo declaring __eprintf.
+
+	* config.gcc: New file for making the links.
+	Fixed bugs for sun-[23]-os4.  Added sun-[234] for sunos 3.
+	Added sequent-i386.
+
+	* emit-rtl.c (gen_rtx): Return const0_rtx for 0 in DImode.
+	* varasm.c (immed_double_const): Don't be confused by this.
+
+	* expmed.c (negate_rtx): New 1st arg MODE.
+	* expr.c (push_block): Calls changed.
+	* m68k.md, ns32k.md, vax.md: Calls changed.
+
+	* c-decl.c (duplicate_decls): Don't discard DECL_BLOCK_SYMTAB_ADDRESS.
+
+	* tree.c (staticp): INDIRECT_REF with constant address is static.
+	COMPONENT_REF may not be, if component offset isn't constant.
+
+	* c-typeck.c (default_conversion): Converting array to ptr, if array
+	isn't a VAR_DECL, go through build_unary_op so that COMPONENT_REFs
+	will be simplified away.
+
+	* ns32k.md (tbitd patterns): op 0 constraint: reject constants.
+	* ns32k.md (extzv for SImode and HImode):
+	Use adj_offsetable_operand; plus_constant was the wrong thing.
+
+Thu Oct  6 00:10:41 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Version 1.29 released.
+
+	* loop.c (scan_loop): Don't think a `return' insn enters the loop.
+
+	* ns32k.md (ashrsi3, etc): New define_expands for right shift.
+
+	* reload1.c (choose_reload_targets): Change in the `force_group'
+	logic to avoid crashes.
+
+Wed Oct  5 04:09:19 1988  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+	* expr.c (expand_expr, MINUS_EXPR): When negating integer op1,
+	truncate it to its mode.
+
+	* expmed.c (extract_bit_field): SUBREG error check was wrong;
+	SImode SUBREGs are possible and ok in extzv, extv.
+
+	* tm-ns32k.h (REGISTER_NAMES): Had two excess elements; deleted.
+
+Mon Oct  3 01:15:51 1988  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+	* toplev.c (main, compile_file): If no files spec'd, use stdin, stdout.
+
+	* flow.c (propagate_block): When checking for stack-adjust insns,
+	exclude non-SET patterns.
+
+	* jump.c (jump_optimize): When changing jump=>return to return,
+	must rerecognize the insn.
+
+	* toplev.c (compile_file): Allow `-' for main input or output filename.
+
+Sun Oct  2 10:30:09 1988  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* final.c (final): NOTICE_UPDATE_CC has extra arg, INSN.
+	* tm-*.h: Change definitions.
+
+	* stmt.c (optimize_bit_field): Use gen_lowpart to make subregs.
+
+	* stmt.c (assign_parms): Don't obey regdecls in inline function.
+	Don't lose existing REG_NOTES when adding one.
+
+	* stmt.c (expand_function_start): Make return rtx before
+	marking parms live.
+	(expand_function_end): Use use_variable to emit USEs for SAVE_EXPRs.
+
+	* stmt.c (expand_return): Handle TRUTH_AND_EXPR like ANDIF; OR also.
+
+	* stmt.c (expand_end_stmt_expr): Always set TREE_VOLATILE,
+	sometimes TREE_THIS_VOLATILE.
+
+	* jump.c (delete_insn): When finding PREV, skip deleted insns.
+
+	* varasm.c (output_constant): WORDS_BIG_ENDIAN test was backwards.
+
+	* emit-rtl.c (gen_lowpart): Allow MODE > 1 word if X is same size.
+
+	* final.c (final): Don't delete no-op moves (jump did it if appro.).
+
+	* final.c: Support prescan pass.
+	(final_start_function): init_recog and CC_STATUS_INIT mvd to `final'.
+	(final): New arg PRESCAN.  Do no output if prescanning.
+	Don't alter conditionals if PRESCAN < 0 (prescan already done).
+	If jump becomes no-op, change it to a NOTE.
+	Remember to free the temp space for ASM_OPERANDS.
+
+	* final.c (final): Altering store-flag must check STORE_FLAG_VALUE.
+	Don't try to do it if that isn't defined.
+	Don't try it if condition doesn't test CC0.
+	(alter_cond): No need to check COND != 0.
+	Handle CC_Z_IN_NOT_N and CC_Z_IN_N.
+	(m68k.md): Delete code that handled CC_Z_IN_NOT_N.
+
+	* conditions.h: New flag CC_Z_IN_N.
+	* tm-*.h: Renumber all CC_... flags to make room.
+
+	* combine.c (use_crosses_set_p): Loop start was 1 off.
+
+	* local-alloc.c (reg_is_set): When a reg is CLOBBERed and dies in
+	one insn, make it live immediately before and after that insn.
+
+	* global-alloc.c: Hard reg preferences for global pseudos.
+	Var allocno_preferred_reg deleted; new vars hard_reg_preferences
+	and regs_someone_prefers.
+	(global_alloc): Init those vars.  Pass hard_reg_preferences elt
+	to find_reg.
+	(set_preference): New function makes entries in those vars.
+	(global_conflicts): new arg to mark_reg_store.  Call set_preference.
+	(find_reg): Last arg now a preferred hard_reg_set.
+	Scan that set first of all.
+	(mark_reg_store): New arg is offset for renumbered regno.
+	But the code to use it is turned off.
+
+	* global_alloc (check_frame_pointer_required): Handle reg_equiv_address
+	like reg_equiv_mem.  Don't try to allocate pseudos with equiv mems
+	that don't use the frame pointer.
+	* reload1.c (reload): Call changed.
+
+	* jump.c (sets_cc0_p): Tests whether rtx sets cc0, and whether
+	it does nothing but set cc0.
+	(find_cross_jump, delete_jump): Use that fn for these tests.
+	* loop.c (loop_skip_over): Likewise.
+	* reload.c (push_reload): Likewise.
+
+	* genoutput.c: Output `const' before the data arrays.
+	Define it as nothing if not __STDC__.
+
+Sat Oct  1 02:19:29 1988  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* expr.c (store_one_arg): 3rd arg to emit_block_move is in bytes.
+
+	* cse.c (fold_rtx): Handling ZERO_EXTEND or SIGN_EXTEND of constant,
+	if the arg width is too wide to handle, return safely.
+
+	* combine.c (FAKE_EXTEND_SAFE_P): Don't allow extend to > 1 word.
+
+	* rtl.c (refers_to_regno_p): Moved from reload.c.  Not static.
+	(reg_overlap_mentioned_p): New function, calls the above.
+	* output-*.c: Use that instead of reg_mentioned_p.
+	* tm-*.h (NOTICE_UPDATE_CC): Likewise.
+	* reload.c (push_reload, combine_reloads): Likewise.
+	* reload1.c (choose_reload_targets): Use it to check earlyclobbers.
+
+	* reload1.c (choose_reload_targets): Elimination of previous
+	output-reload feeding our input now limited to pseudo-regs.
+
+	* flow.c (life_analysis): Delete any insn copying reg to itself.
+	(propagate_block): Move update of OLD after special life and death
+	for CALL_INSNs.
+
+	* vax.md (ashrsi3, ashrdi3, rotrsi3): define_expands to negate
+	the shift count.
+	* expmed.c (expand_shift): Eliminate negate-the-shift-count feature.
+
+	* vax.md (and*i3): define_expands which use complement and bit-clear.
+	* expmed.c (expand_bit_and): Eliminate feature to do that.
+	This function could be eliminated.
+
+	* expmed.c (store_bit_field): Handle nested subregs.
+	Allow gen_insv to fail; if it does, delete what we did and then
+	use store_fixed_bit_field.
+	(store_fixed_bit_field): Use gen_lowpart to make SUBREGs.
+	Do that for SUBREGs just as for REGs.
+	Error check OFFSET must be 0 for REGs.
+	(store_split_bit_field): Error check OP0 is a SUBREG when expected.
+	(extract_bit_field): Allow gen_ext{,z}v to fail.
+	Use gen_lowpart to make subregs.
+	(expand_shift): If a try fails, delete any insns it made.
+
+	* expmed.c (expand_mult): Use expand_unop to negate.
+	When adding 2 powers of 2, do serial shifts, not parallel.
+	Handle absval==1 like other powers of 2.
+
+	* explow.c (force_reg): Don't lose any existing reg notes.
+
+	* stmt.c (expand_start_stmt_expr): Eliminate return value.
+	(expand_end_stmt_expr): No need for argument.
+	* c-parse.y (primary): Change calls.
+
+Fri Sep 30 01:50:22 1988  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+	* integrate.c (copy_rtx_and_substitute, copy_address):
+	'u' case erroneously returned the translated single element.
+	(copy_address): Special cases for frame-ptr and sums containing it.
+	MEM and LABEL_REF cases passed wrong arg to copy_rtx_and_substitute.
+	(copy_rtx_and_substitute): adjust mode of inline_target for context.
+
+	* jump.c (true_regnum): For SUBREG of pseudo, use pseudo's # unchanged.
+
+Thu Sep 29 02:50:46 1988  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+	* i386.md (movsi, mov{q,h}i): Use find_reg_note to look for REG_WAS_0.
+	* vax.md (movsi, movhi): Likewise.
+
+	* varasm.c (decode_rtx_const): Was setting un.addr.base wrong
+	for a CONST.  Should be symbol name, not the SYMBOL_REF.
+
+	* rtl.c (rtx_equal_p): When comparing registers, check
+	REG_FUNCTION_VALUE_P.  If there are `u'-slots in the rtx, ignore them.
+
+	* rtl.c (reg_mentioned_p): Some rtx types were mistakenly treated
+	as uniquified (various constants).
+
+	* rtl.c (read_rtx): Element type 'S' is string that may be omitted.
+	* rtl.def (define_insn, define_peephole): Add a last element, type 'S'.
+	* genoutput.c: Collect these optional last elements and output as
+	array `insn_machine_info' of structs `INSN_MACHINE_INFO'.
+	The last must be defined as a macro.
+	* recog.h (insn_machine_info): Declare it if appropriate.
+
+	* regclass.c (record_address_regs): In PLUS case, look inside SUBREGs.
+
+	* reload1.c (reload): Use reg_equiv_address for REG_EQUIVs with
+	invalid memory addresses.
+	When changing pseudos to mem refs at end, do FIX_FRAME_POINTER_ADDRESS
+	on their addresses.
+	(alter_reg): Check that with reg_equiv_mem.
+	(spill_hard_reg): If fp reg, spill regardless of basic_block_needs.
+
+	* reload1.c (order_regs_for_reload): Don't put invalid regs into
+	potential_reload_regs at all.  (They used to go at the end.)
+
+	* reload.c (find_reloads): Store all earlyclobber operand in
+	reload_earlyclobbers (# in n_earlyclobbers):
+	* reload1.c (choose_reload_targets): Don't use value of find_equiv_reg
+	if it matches an earlyclobber operand.
+
+	* reload.c (find_reloads_address for REG):
+	No need for explicitly excluding hard regs in these tests.
+	(find_reloads, find_reloads_address_1 for REG): likewise.
+
+	* reload.c (push_reload): Code testing reg_equiv_constant should
+	be obsolete; add error check to verify this.
+
+	* reload.c (hard_reg_set_here_p): Handle CLOBBERs, SUBREGs, overlap.
+	(refers_to_regno_p): Handle CLOBBERS.  Handle overlap.
+	New arg ENDREGNO specs end of range to check for;
+	all callers changed (all in this file).
+
+	* reload.c (find_reloads): SUBREG like REG in alternate recovery
+	for earlyclobber conflict.
+	The operands to unswap are those that are supposed to commute.
+	When operands match, copy the regclass of earlier one for later one.
+
+	* stmt.c (optimize_bit_field): Don't use gen_extend_insn;
+	use convert_move, then reorder the insns.
+	* optabs.c (gen_extend_insn): Deleted.
+
+	* optabs.c (emit_cmp_insn): Don't emit queue before recursion.
+	Don't convert size to SImode for cmpstrqi.
+
+	* optabs.c (expand_binop): Keep any old REG_NOTES when adding them.
+	Always delete_insns_since if returning failure.
+	(expand_unop, emit_unop_insn): Keep any old REG_NOTES when adding them.
+	* spur.md (movhi): likewise.
+
+	* RTL_EXPR_SEQUENCE is now a chain of insns, not a SEQUENCE.
+	* emit-rtl.c (emit_insns): New fn, emit a chain of insns.
+	* expr.c (expand_expr): Use that.
+	Also put const0_rtx in the RTL_EXPR_SEQUENCE (mark RTL_EXPR as output).
+	* stmt.c (expand_end_stmt_expr): Use get_insns to get the chain.
+
+	* stmt.c (expand_end_stmt_expr): Put the RTL_EXPR on rtl_expr_chain.
+	(fixup_var_refs): Scan all waiting RTL_EXPRs not yet output.
+	Also scan all stacked sequences on sequence_stack.
+
+	* genemit.c (gen_expand): Generate calls to {start,end}_sequence.
+	Use `emit' to handle a PARALLEL.
+	(FAIL, DONE): Change to fit gen_expand changes.
+
+	* emit-rtl.c (change_address): abort if arg isn't a MEM.
+
+	* emit-rtl.c: Sequences work now by saving and restoring first_insn
+	and last_insn.  So these variables are used even when in a sequence.
+	emit_to_sequence has been deleted.
+	(start_sequence, end_sequence): Save and restore first_insn, last_insn.
+	(get_last_insn, add_insn): Sequences no longer need special treatment.
+	(delete_insns_since, reorder_insns): likewise.
+	(push_to_sequence): Set up to emit to a given existing insn chain.
+
+	* emit-rtl.c (copy_rtx_if_shared): Don't copy INSNs.
+	Insert missing return stmt in MEM case (for MEMs ok to share).
+	(unshare_all_rtx): Now can copy the REG_NOTES simply.
+	Copy the LOG_LINKS too.
+
+	* emit-rtl.c (make_safe_from): Treat SUBREG as X like a REG.
+	(delete_insns_since): Don't lose if FROM is the first insn.
+	(emit): Declare void, since no useful value.
+	Call simplejump_p properly.
+	(restore_reg_data_1): When a reg is an address, do mark_reg_pointer.
+
+	* dbxout.c (dbxout_types): Call dbxout_symbol to do the work.
+	(dbxout_type_def): Deleted.
+	(dbxout_symbol): Set TREE_ASM_WRITTEN when a TYPE_DECL is output.
+	Don't output the same one twice. 
+
+	* cse.c (fold_cc0): LABEL_REF is not zero.
+
+	* cse.c (cse_insn): Don't insert src, dest if they are the same place.
+
+	* cse.c (lookup_as_function): Return entire rtx, not just operand.
+	(cse_insn): Caller changed.  Also, copy the result before inserting it.
+
+	* cse.c (fold_rtx): Put constant arg last if commutative op.
+	Handle idempotents and identities for mult, div, booleans, shifts.
+
+	* cse.c (canon_hash): Parens were missing around shifts in "rotates".
+
+	* c-convert.c (convert_to_integer): Truncate TRUTH_ANDIF_EXPR
+	like TRUTH_AND_EXPR; OR also.
+
+	* c-typeck.c (build_binary_op_nodefault): Do truthvalue_conversion
+	for TRUTH_ANDIF, etc.
+	(build_unary_op): More simplifications for TRUTH_NOT_EXPR;
+	uses new fn `invert_truthvalue'.
+
+	* recog.c (reg_fits_class_p): New name for reg_renumbered_fits_class_p
+	since it no longer needs to renumber.  Also it now really assumes
+	arg is a REG.  Callers changed.
+	* reload.c: Callers changed.
+
+	* recog.c (general_operand): (SUBREG (MEM...)) need not alter mode.
+	(register_operand, nonmemory_operand): (SUBREG (MEM...)) is allowed.
+	(memory_operand): (SUBREG (MEM...)) is *not* allowed.
+	(mode_independent_operand): Operand names were backwards!
+	(No change in effect of this function.)
+
+	* print-tree.c (dump): Some expr nodes contain rtx's.  Print as rtx's.
+
+Wed Sep 28 18:51:12 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (choose_reload_targets): If a reload wanted a group,
+	don't allow a single register for it.
+
+Tue Sep 27 11:43:56 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* final.c (output_addr_const): Handle DImode CONST_DOUBLEs.
+	* tm-*.h (PRINT_OPERAND): Treat DImode CONST_DOUBLE like a CONST_INT.
+
+	* vax.md (rotldi3): Insn deleted; it doesn't really exist.
+
+	* toplev.c (report_error_function): Also mention the file name,
+	for parallel makes.  New arg FILE; all callers changed.
+
+Mon Sep 26 15:44:18 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expmed.c (expand_shift): When using extzv, convert OP1 to SImode.
+	* c-typeck.c (build_binary_op_nodefault): Convert shift-count
+	to int regardless of result type.
+
+	* output-spur.c (output_move_double): Fix typo, optype0=>optype1.
+
+	* expr.c (expand_call): Avoid null deref on result of FUNCTION_ARG.
+
+	* tm-i386.h (FUNCTION_PROFILER): Use correct assembler syntax.
+
+Sun Sep 25 12:13:56 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fixincludes: Handle some files in netdnet, netdna, vaxif, vaxuba.
+
+	* reload.c (find_reloads): Make no optional reloads if not -O.
+
+	* loop.c (strength_reduce): Can't eliminate a biv if it's used
+	to compute a DEST_ADDR giv.  Only DEST_REG givs are safe.
+
+	* loop.c (general_induction_var): Shift & divide ops are linear
+	only in 1st operand; don't look for biv or giv in 2nd operand.
+
+	* vax.md (fix_truncdfqi2): Use `%#'.
+
+Sat Sep 24 00:25:48 1988  Richard Stallman  (rms at gluteus.ai.mit.edu)
+
+	* loop.c (n_times_set, n_times_used): Now file-scope;
+	no longer passed as args to several functions.
+
+	* loop.c (basic_induction_var): Accept reg as source value
+	only if it's invariant.
+	(strength_reduce): Benefit calculation and threshold changed.
+	Check reducibility of givs before trying to reduce them.
+	Check eliminability of biv before considering the givs;
+	let this affect the threshold.
+	(record_giv): New subroutine adds a giv to the chain.
+
+	* ns32k.md (incrementing sp): Use cmpd insns to increment by 4 or 8.
+
+	* integrate.c (expand_inline_function): Rename return_label
+	to local_return_label; avoid shadowing.
+
+Fri Sep 23 13:57:52 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* loop.c (loop_skip_over): Put the new label after the note that ends
+	the loop.
+
+	* loop.c: New function strength_reduce and subroutines.
+	* toplev.c: New var flag_strength_reduce, set from -fstrength-reduce.
+
+	* vax.md (sob insns): They were broken, with plus in one place
+	and minus in another.  Use plus consistently.
+
+	* rtl.h (REG_LIBCALL, REG_NONNEG): Two new kinds of reg-note.
+	* optabs.c (expand_binop, expand_unop): Make REG_LIBCALL notes.
+	* loop.c (scan_loop, move_movables): Move entire library calls.
+	Use m->set_src to get the expression, in case it's from a REG_EQUAL.
+	(consec_sets_invariant_p): Likewise.
+
+	* loop.c (scan_loop): Start scan from loop_top, if entry is rearranged.
+	Watch out for pseudo regs created by strength_reduce;
+	they can't index regno_last_uid.
+	(replace_regs): # regs mapped is now an arg.
+
+	* loop.c (count_loop_regs_set): Don't increment n_times_set past 127.
+	(consec_sets_invariant_p): Reject if N_SETS arg is 127.
+
+	* toplev.c (rest_of_compilation): NREGS arg of loop_optimize deleted.
+
+	* c-decl.c (store_parm_decls): Anything but an IDENTIFIER_NODE
+	in SPECPARMS indicates a parmlist, not an identifier list.
+	(get_parm_info): Use only PARM_DECLs when making the list of arg types.
+
+	* combine.c (try_distrib): Boolean ops can't distribute through PLUS.
+	MULT can distribute through PLUS and only PLUS.
+
+Thu Sep 22 15:57:41 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* jump.c (jump_optimize): uncond jump to a return becomes a return.
+
+	* integrate.c (copy_parm_decls, copy_decl_tree): Set TREE_USED.
+	Avoid inevitable "unused" warning for these decls.
+
+	* c-typeck.c (comptypes): When comparing array types,
+	ignore qualifiers of element type.
+
+	* tm-*.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Define new macros.
+	* final.c (final_start_function): Use them to protect around
+	the call to the profiling function.
+	* stmt.c (expand_function_start): Set current_function_needs_context
+	and current_function_returns_struct.
+
+	* stmt.c (expand_null_return_1): If clear_pending_stack_adjust
+	doesn't clear it, do the adjust now.
+	* expr.c (clear_pending_stack_adjust): No-op if -finline-functions.
+
+	* cccp.c (macarg1, skip_if_group): Backslash makes next char ordinary.
+
+	* reload.c (find_reloads): Delete code to look for an equiv reg
+	for a reg being input-reloaded.  This isn't safe.
+	* reload1.c (choose_reload_targets): Do it here.
+
+Wed Sep 21 00:36:22 1988  Richard Stallman  (rms at hobbes.ai.mit.edu)
+
+	* tm-sun3.h (CPP_SPEC): Define it based on TARGET_DEFAULT.
+	(STARTFILE_SPEC): Likewise.
+
+	* reload1.c (choose_reload_targets): When redirecting prev insn
+	into this insn's reload-reg, check this doesn't break the prev insn
+	by giving it a reg it can't accept.  Use new fn constraint_all_regs_p.
+
+	* tm-sparc.h (ASM_OUTPUT_LOCAL): Use .reserve, not .common.
+
+	* tree.h (TREE_USED): New attribute macro.
+	* c-parse.y (primary): Set TREE_USED in ..._DECL nodes.
+	* toplev.c, flags.h: Define and set warn_unused.
+	* stmt.c (expand_end_bindings): Warn if any var is unused.
+	* print-tree.c (prtypeinfo): Print this attribute.
+
+Tue Sep 20 15:29:01 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* assert.h: `assert' must expand to an expression.
+	Error message should show arg before expansion, not after.
+
+	* c-decl.c (implicitly_declare): Make decl perm if !warn_implicit
+	since start_function needs to look inside it in that case.
+
+	* toplev.c (announce_function): If we don't print, don't record we did.
+
+Mon Sep 19 15:21:11 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y (structsp): If pedantic, warn if comma at end of enumlist.
+
+	* reload.c (find_reloads): Check insn_code_number >= 0 when
+	looking in insn_operand_strict_low.
+
+	* tm-sun[23].h (CPP_SPEC): Rename __HAVE_FPU__ to __HAVE_68881__
+	and put a space after that option.
+
+Sun Sep 18 01:12:56 1988  Richard Stallman  (rms at hobbes.ai.mit.edu)
+
+	* reload.c (find_reloads): Make optional reloads for explicit MEMs.
+
+	* tm-m68k.h (MODES_TIEABLE_P): If no 68881, can tie fixed to floating.
+	* m68k.md (movdi): Allow F's (can be DImode now).
+	Don't allow f-regs (experiment).  Don't preference x-regs.
+	(DImode push): Allow y-regs.
+	(DFmode push): Allow y-regs, not x-regs.
+
+	* reload1.c (modes_equiv_for_class_p): New function.
+	(reload): Compare multiple modes for reg group with that function.
+	Allows differing modes in some cases when not tieable.
+
+	* c-parse.y (check_newline): Let ASM_OUTPUT_IDENT override .ident.
+	* tm-3b1.h (ASM_OUTPUT_IDENT):  Define this as no-op.
+
+	* emit-rtl.c (reorder_insns): Update sequence_{first,last}_insn if nec.
+	(get_last_insn): If in a sequence, return last insn of sequence.
+	(delete_insns_since): If in a sequence, set sequence_last_insn.
+
+	* spur.md (CONST_DOUBLE load insn): Use & for most dests.
+	(cond branches): pass additional args to output_compare.
+	(movdf, movdi): Use & loading reg from mem.
+	(trunc*): Enable these.
+	(add): New pattern for adding large immediate operand.
+	(shifts): A define_expand for each kind of shift,
+	plus a recognizer which outputs repeated insns if necessary.
+	(call*): Use r9 as temp, not r2.
+
+	* output-spur.c (output_compare): New args NEG_{EXCHANGE_,}OPCODE.
+	(singlemove_string): Handle reg as operand 1.
+	(output_add_large_offset): Fake add insn with large immediate arg.
+	(big_immediate_operand): Match such an arg.
+
+	* tm-spur.h (FUNCTION_PROLOGUE): Align the stack pointer.
+	Handle bigger frames.
+	(TARGET_LONG_JUMP, TARGET_EXPAND_SHIFT): New target flags.
+
+	* va-spur.h: Track position in regs and stack separately.
+
+	* c-decl.c (duplicate_decls): Warn if prototype follows
+	non-prototype definition.
+
+Sat Sep 17 14:30:23 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (expand_builtin): Avoid crash if arg isn't integer type.
+
+	* c-decl.c (duplicate_decls): Just warn if redeclaring a builtin,
+	and leave it built in unless it is redefined.
+
+	* vax.md (ashlsi3): Use addl3, moval or movad when useful.
+	(addsi3): Avoid pushab, movab for constants < 64.
+	Do use movab when > 64 when operands match.
+	(mov*i): Use mcom* rather than mneg*.
+	Use add*3 with two quick immediate args when useful.
+	(movhi): Don't use movzbw or cvtbw; said to be slow.
+
+	* rtl.h: New macros MEM_VOLATILE_P, MEM_IN_STRUCT_P,
+	INSN_DELETED_P,	REG_USER_VAR_P, RTX_UNCHANGING_P, RTX_INTEGRATED_P,
+	CONSTANT_POOL_ADDRESS_P.
+	Most places changed to use them.
+
+Fri Sep 16 11:50:15 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* jump.c (jump_optimize): Was testing volatil on non-MEMs erroneously
+	when looking for no-op move insns.
+
+	* cccp.c (handle_directive): Ignore comments between # and directive.
+
+	* integrate.c (copy_rtx_and_substitute): Stack-push memrefs need
+	to be copied.
+
+	* tm-bsd386.h (ASM_OUTPUT_DOUBLE): Undef previous def.
+
+	* reload1.c (alter_reg): Don't reuse spill_stack_slot
+	if it isn't big enough for this reg's mode.
+
+	* expr.c (emit_move_insn): After force_const_mem, ensure
+	mem address is valid.
+	(move_block_to_reg, move_block_from_reg): Likewise.
+
+	* expr.c (expand_call): Spurious TREE_VALUE on args[i].tree_value.
+
+	* m68k.md (zero_extend*): Require register_operand for operand 0.
+
+	* stdarg.h (va_start): Alternate defn for sparc.
+
+Thu Sep 15 11:39:06 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y (yylex): When atof gives ERANGE, check for "0.0", etc.
+
+	* assert.h (__assert): Alternative definition for -traditional.
+
+	* output-sparc.c (output_block_move): Initialize xoperands.
+
+	* combine.c (try_combine): Never subst for a reg that is incremented.
+
+	* m68k.md (cmpm pattern): Make the match_operands match memrefs
+	and check that they are pushes in the extra condition.
+	This makes reloading handle the pushes properly.
+
+	* expr.c (MOVE_RATIO): Make it 15.  Allow overriding it.
+
+Wed Sep 14 09:50:08 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (build_enumerator): Use saveable_tree_cons.
+
+	* vax.md (movdf): Use movq when safe.
+
+	* Version 1.28 released.
+
+	* tm-sparc.h (FIRST_PARM_CALLER_OFFSET): Defined.
+
+Tue Sep 13 00:11:37 1988  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+	* tree.c (saveable_tree_cons): New function.
+	* c-decl.c (pushtag): Use it; lists of tags needed for inlining.
+	(get_parm_info): Likewise.
+
+	* print-tree.c (dump): Handle each kind of statement node individually.
+
+	* integrate.c (copy_decl_tree): Don't pass DECL_RTL through
+	copy_rtx_and_substitute if it's a memref with constant address.
+
+	* sdbout.c (sdbout_symbol): Don't output garbage when DECL_RTL
+	has a form we don't understand.
+
+	* reload.c (find_reloads_address_1): Don't reload an autoincrement
+	if it has a suitable hard reg already.
+
+	* c-typeck.c (process_init_constructor): Error check after digest_init.
+
+	* c-parse.y (is_reserved_word): Now static.
+
+Mon Sep 12 19:19:28 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* i386.md (all push insns): Use `<' for the constraint,
+	since a push_operand won't fit an `m' constraint on this machine.
+
+	* expr.c (expand_call): If fn name is `__builtin_alloca',
+	it may be alloca.  This case arises if the user redeclares
+	`__builtin_alloca'.
+
+Sun Sep 11 01:47:01 1988  Richard Stallman  (rms at gluteus.ai.mit.edu)
+
+	* Eliminate MAX_SETS_PER_INSN.
+	* cse.c (cse_insn): Combine all the tables and dynamically allocate.
+	(cse_main): Count the actual number of SETs; don't estimate.
+	* genconfig.c: Don't calculate MAX_SETS_PER_INSN.
+	* stmt.c (expand_asm_operands): No limit on # of output operands.
+
+	* expr.c (expand_call):
+	Store all non-reg parms first, then store all partially-in-reg
+	parms, then all the (precomputed) wholly-in-reg parms.
+	Special hair for BLKmode parms which must be passed entirely
+	in memory; also for BLKmode parms initialized from function calls,
+	for which it is best to allocate the space before computing value.
+	Use macro FIRST_PARM_CALLER_OFFSET to handle machines where reg
+	parms "take up space" on the stack below the stack pointer.
+	(store_one_arg): Handle case of preallocated stack loc for BLKmode.
+	Update current_args_size here, not in caller.
+
+Sat Sep 10 19:58:03 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* output-sparc.c (output_scc_insn): Changed asm templates.
+	Use common code to emit the move insns and label at the end of fn.
+	(output_mul_by_constant): Use %g1 as temporary reg.
+
+	* sparc.md (indexed load pattern): Deleted.
+	(fix_truncdfsi2): Don't ignore value of output_fp_move_double.
+	(cse'd multiply): Operand 1 predicate is general_operand.
+	(return peepholes): Conditionalize on ! TARGET_EPILOGUE.
+
+	* tm-sparc.h (INIT_CUMULATIVE_ARGS,FUNCTION_ARG...):
+	Use partial regs for args that start in regs but won't entirely fit.
+
+	* tm-sparc.h (CONST_COSTS): 0 for args that can be immediate.
+	(STRUCTURE_SIZE_BOUNDARY): Now 8.
+	(STRUCT_VALUE_OFFSET): Defined as symbolic name for `64'.
+
+	* expr.c (struct arg_data): New component `stack' says where in the
+	stack to put a BLKmode arg (if it's nonzero).
+	(store_one_arg): Handle case where it's nonzero.
+	(target_for_arg): New fn, precompute stack locn for BLKmode arg.
+
+Fri Sep  9 01:41:13 1988  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+	* cse.c (fold_rtx): Misnested ifs screwed SUBREG case.
+
+	* reload.c (find_reloads_toplev): Special case for (SUBREG REG)
+	where REG is equivalent to a CONST_INT.
+	(find_reloads): Don't ignore the value returned by find_reloads_toplev.
+	Treat a (SUBREG constant) like a (SUBREG MEM): set force_reload.
+
+	* reload.c (push_reload): Abort if memory subreg is not
+	paradoxical; the MEM mode should be narrower than the SUBREG.
+
+	* stmt.c (fixup_var_ref_1): Fixup memory subregs in an insn
+	copying VAR to or from a register.
+
+	* m68k.md (movdi, movdf): the x-reg constraint accidentally allowed
+	moving rm to rm with no &.
+
+	* vax.md (call_value): Typo.
+
+	* expr.c (emit_block_move, emit_push_insn): prefer movstrqi to movstrsi
+
+	* m68k.md (FPA multiply): bad opcodes for 3-operand multiply insns.
+
+Thu Sep  8 18:22:14 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y: Use YYERROR instead of synonym YYFAIL.
+	BISON VERSIONS PRIOR TO THIS DATE WON'T WORK!
+
+	* c-typeck.c (digest_init): Use TYPE_MAIN_VARIANT of array elt type.
+
+	* tm-sun[23].h (CPP_SPEC, ASM_SPEC): Let -m(c|)680[12]0 control
+	options for CPP and assembler.
+
+Wed Sep  7 13:44:59 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* New handling of reloading of PRE_DEC, etc.
+	Now reload_in is the PRE_DEC, etc, and reload_inc is always positive.
+	* reload.c (push_reloads): Old code to set reload_inc deleted.
+	(find_reloads_address_1): Call push_reload the new way.
+	(find_inc_amount): Value always positive.
+	* reload1.c (choose_reload_targets): Detect this case.
+	(inc_for_reload): New fn; does the real work for this case.
+	* m68k.md (call, call_value): Fn address must be offsetable.
+
+	* combine.c (try_distrib): Reject strange cases such as if
+	result of PREV1 or PREV2 is used in a memory address in INSN.
+
+	* vax.md (movsf): Generate movl instead of movf.
+
+	* expr.c (expand_call): If have regparms, store all BLKmode args
+	before all the other args.
+	(store_one_arg): New subroutine broken out.
+
+	* output-sparc.c (output_block_move): Complete rewrite.
+
+	* sparc.md (cse'd multiply insn): Typo in asm-output code.
+
+Tue Sep  6 20:05:48 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y (yylex, etc.) Install Schmidt's perfect hash table.
+
+	* gcc.c: handle extension `.cc'.
+
+Mon Sep  5 12:09:58 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Version 1.27 released.
+
+	* tm-i386.h (PREFERRED_RELOAD_REG): When reloading a QImode,
+	make sure the class doesn't include %esi or %edi.
+	* i386.md (movqi): Eliminate only use of the class `x',
+	for which PREFERRED_RELOAD_REG cannot work.
+	(In next version, get rid of INDEX_CLASS).
+	Also use `*' to cause preferencing of Q_REGS.
+	* tm-m68k.h (PREFERRED_RELOAD_REG): When reloading a QImode,
+	use DATA_REGS.
+
+	* reload.c (push_reloads): Braino in last change when IN == 0.
+
+	* flow.c (mark_used_regs, mark_set_1): Bug if HARD_REGNO_NREGS
+	returns 0 for VOIDmode reg (inside a CLOBBER).
+
+	* c-parse.y (asm_operand): Handle `("REGNAME")' as an operand.
+	* recog.c (decode_asm_operands, asm_noperands): Ignore any CLOBBERs.
+	* regclass.c (reg_names): Variable now global.
+	* stmt.c (expand_asm_operands): Generate CLOBBERS when appropriate.
+
+	* stmt.c (assign_parms): Ignore parms that aren't PARM_DECLs.
+
+	* varasm.c (assemble_variable): Do ASM_OUTPUT_EXTERNAL for functions.
+
+	* c-parse.y (yylex): floatflag is now an enum.
+	Detect invalid use of decimal points (> 1, or in exponent)
+	and multiple exponent letters.
+
+	* expr.c (expand_call): If inlining fails, set TREE_ADDRESSABLE.
+
+Sun Sep  4 00:36:30 1988  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+	* c-decl.c (grokdeclarator): A const array becomes an array of consts.
+	* c-typeck.c (build_array_ref): Array ref is const if array elts are.
+
+	* output-sparc.c (output_move_double): Change criteria for ldd, std.
+	(output_fp_move_double): New alternatives avoid ldd, std for
+	stack refs that aren't aligned.
+	(output_block_move): Use %g1 as temp reg.
+
+	* sparc.md (floating point load from constant mem address):
+	Use %g1 as temp reg.  Use output_move_double in DF case, not ldd.
+	(movsf): Asm insn typo in FPreg to FPreg case.
+	(floatsi{s,d}f2): Constraint changed.
+	Also new special case pattern in front of it.
+	(fix_truncdfsi2): Use output_move_double, not ldd.
+	(addsi3, subsi3): Use %g1 as temp reg.
+	(cse-optimized multiply): Constraint now `g'; output generalized.
+	(andsi3, orsi3, xorsi3): Use %g1 as temp reg.
+
+	* reload.c (find_reloads): Force int constants into memory just
+	like floating ones, if memory is allowed and no regs are.
+
+	* expr.c (expand_call): Don't treat structure_value_addr like a parm
+	if the first parm would be passed in a register.
+	Also, write comments for all local vars.
+
+	* tm-386v.h (START_SPEC): Use {g,m}crt1.o, not {g,m}crt0.o.
+	(LIB_SPEC): Always use crtn.o.
+
+Sat Sep  3 13:05:50 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* explow.c (plus_constant): Don't put CONST around lone SYMBOL_REF.
+
+	* combine.c (subst): Simplify zero- or sign-extend of a constant.
+
+	* expr.c (expand_expr): for REAL_CST, etc., check for invalid
+	memory addresses and copy into registers.
+
+	* integrate.c (expand_inline_function): If incoming struct value addr
+	is in memory, map it like a memory parameter.
+
+	* tm-*.h (FIRST_PARM_OFFSET): Now takes fndecl as argument.
+	* integrate.c (expand_inline_function): Calc., use and save
+	this fns value of FIRST_PARM_OFFSET.
+	(copy_rtx_and_substitute): Use that value.
+	* stmt.c (assign_parms): Likewise.
+
+	* tm-sparc.h (FIRST_PARM_OFFSET): Make it 64 if value is BLKmode.
+	(STRUCT_VALUE{,_INCOMING}): Put the value in 64(fp).
+
+	* tm-sparc.h (PRINT_OPERAND_ADDRESS): Print offsets in decimal.
+	Avoid excess `+' before a negative offset.
+
+	* stmt.c (expand_function_start): Create the return value rtl
+	before making the tail-recursion loop point.
+
+	* combine.c (gen_lowpart_for_combine): Generate a paradoxical subreg
+	rather than a wider memref.
+
+	* reload.c (push_reload): Extend last change to case where OUT != 0.
+
+Fri Sep  2 11:43:20 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stmt.c (fixup_var_refs): Adjust last_parm_insn when deleting insns.
+
+	* expr.c (emit_push_insn): calling memcpy, bump TEMP 2 pointers worth.
+
+Thu Sep  1 16:39:57 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (choose_reload_targets): Test for canceled reload
+	before looking inside reload_out.
+
+	* jump.c (jump_optimize): Bug in last change.
+
+	* m68k.md (return): Pattern disabled; confuses Aug 29 stmt.c change.
+	* ns32k.md, i386.md: likewise.
+
+	* emit-rtl.c (emit_note_force): New, like emit_note but always do it.
+	* stmt.c (expand_function_end): Use emit_note_force.
+
+Wed Aug 31 11:34:08 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (alter_reg): New arg FROM_REG is hard reg that the pseudo
+	was spilled from.  Works with spill_stack_slot.  Callers changed.
+	Now all pseudos spilled from one hard reg get the same slot.
+	(reload): Initialize new variable spill_stack_slot.
+
+	* cse.c (cse_insn): Don't insert floating point mems if -ffloat-store.
+
+	* reload.c (find_equiv_reg): Allow no equivs for volatile memrefs.
+	Also none for floating mem refs if -ffloat-store.
+
+	* output-sparc.c (output_mul_by_constant): make `p' and `log' unsigned.
+
+Tue Aug 30 13:47:12 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* jump.c (jump_optimize): Ignore other NOTEs while looking for
+	a NOTE_INSN_FUNCTION_END.
+
+	* integrate.c (save_for_inline): Flush extra call to max_reg_num.
+	Don't copy NOTEs that are NOTE_INSN_FUNCTION_END.
+	(copy_for_inline): Don't copy NOTEs that are NOTE_INSN_FUNCTION_END.
+
+	* stmt.c (optimize_bit_field): If bit field is SRC, strip subregs
+	from the DEST.
+
+	* expmed.c (expand_mult): Special case for -1 as one operand.
+
+Mon Aug 29 12:14:51 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stmt.c (expand_goto_internal, expand_fixup): New arg LAST_INSN.
+	(expand_return): Pass that arg in tail-recursive case.
+	(other callers): Pass 0 for that arg.
+	(expand_null_return): Handle HAVE_return nonzero w/ FUNCTION_EPILOGUE.
+	(expand_null_return_1): New fn, has guts of old expand_null_return.
+	(expand_return): Call expand_null_return_1 to pass LAST_INSN arg.
+	(expand_return): Handle HAVE_return nonzero w/ FUNCTION_EPILOGUE.
+	(expand_function_{start,end}): Likewise.
+	(expand_cleanups): Fix typo in recursive-list case.
+	(move_cleanups_up): New fn.
+
+	* expr.c (expand_call): Execute cleanups_of_this_call on exiting.
+	Notice calls to __builtin_new (but don't do anything about them yet).
+
+	* reload.c (push_reload): If reloading a (SUBREG (MEM ...) ...),
+	really reload just the MEM in the MEM's own mode.
+
+	* sparc.md: Define patterns for insns that set the ccs.
+	Define set-flag insns.
+	New patterns for indexed load, and for optimizing signed bit fields.
+	(mulsi3, umulsi3): Give "r" constraint to operand 0.
+	Peephole optimizers recognize some cases where delay insns are safe.
+	Changed patterns for call and return insns as well.
+
+	* output-sparc.c (single_insn_src_p): New fn.
+	(output_delay_insn): New fn.
+
+	* tm-sparc.h (TARGET_EPILOGUE): New target flag.
+	(NOTICE_UPDATE_CC): New clause for funny PARALLEL with a REG in it.
+
+	* m68k.md (movqi): Use *'s to ensure preferencing d-regs.
+
+	* c-parse.y (datadef): If traditional, no warning about no specs.
+
+Sun Aug 28 14:34:33 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-i386.h: Define PROMOTE_PROTOTYPES.
+	POINTER_BOUNDARY now 32.
+
+	* regclass.c (reg_scan): Compute `max_parallel', max # of sets and
+	clobbers in any insn in this function.
+	* global-alloc.c (global_conflicts): Use that, not MAX_SETS_PER_INSN.
+
+	* stmt.c (expand_asm_operands): MAX_SETS_PER_INSN limits # output ops.
+
+	* emit-rtl.c (init_emit_once): Make elt 2 of {f,d}const0_rtx nonzero.
+
+	* c-decl.c (lang_decode_option): Handle -Wwrite-string.
+	* c-parse.y (combine_strings): If that flag, make array of const char.
+
+	* expr.c (expand_expr): for INTEGER_CST, always use immed_double_const;
+	never do output_constant_def (it didn't work).
+	Also heed WORDS_BIG_ENDIAN.
+
+	* varasm.c (output_constant): Handle integer CONST_DOUBLEs.
+	(output_constant_def): Abort if arg is an INTEGER_CST.
+
+	* emit-rtl.c (gen_rtx): Don't return {f,d}const0_rtx for DImode.
+
+Sat Aug 27 12:37:23 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (pushdecl): Global extern decls set TREE_PUBLIC
+	like local ones.
+
+	* integrate.c (expand_inline_function): Handle parms that were
+	passed in registers but whose homes are on the stack.
+
+	* varasm.c (force_const_mem): Output ints according to spec'd mode.
+	({record,compare}_constant_rtx,const_hash_rtx,decode_rtx_const):
+	Take mode as argument; pass it along.
+
+	* c-parse.y (read_escape): No warning for `\{' or `\['.
+
+Fri Aug 26 12:23:07 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stmt.c (fixup_memory_subreg): Typo calculating big-endian adjust.
+
+	* vax.md (call_value): Handle >255 args as in `call'.
+
+Thu Aug 25 16:00:51 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* jump.c (delete_jump): Don't delete the cc-setter if it has autoinc.
+
+Wed Aug 24 16:33:37 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (expand_expr): For sun with a COND_EXPR, use SUBTARGET
+	if validate_subtarget says ok.
+
+	* tree.c (build_index_type): make_index_type moved here and renamed.
+
+	* combine.c (move_deaths_2): New function.
+	(try_distrib): Use that, not move_deaths.
+
+	* tm-sparc.h (SHIFT_COUNT_TRUNCATED, STORE_FLAG_VALUE): Define them.
+
+	* tm-sparc.h: FUNCTION_{PRO,EPI}LOGUE: Save room for ins and
+	locals to spill to the frame if any ins *or* locals are live.
+
+	* tm-sparc.h (NOTICE_UPDATE_CC): Delete the clause that always
+	cleared the cc's for unrecognized insns.
+
+	* reload1.c (reload_as_needed): Don't try to use a spill-reg
+	in a basic block that wasn't spilled: ignore optional reloads.
+
+Tue Aug 23 09:45:05 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* output-sparc.c (output_scc_insn): New function.
+
+	* expr.c (expand_builtin, alloca): Round result of alloca
+	up to a multiple of STACK_BYTES.
+
+	* toplev.c (compile_file): Default main_input_filename is cc1 input.
+
+	* tm-i386.h (FUNCTION_BOUNDARY): 32 avoids extra prefetch.
+
+	* i386.md (movdi, movdf): Add `&' where needed in constraints.
+
+Mon Aug 22 11:57:51 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* symout.c (symout_finish): Allocate typevector after the symout_types.
+
+Sun Aug 21 16:10:54 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-3b1.h (ASM_FORMAT_PRIVATE_NAME): Use a `_' as well as `%'.
+
+	* expr.c (expand_expr): Typo setting MODE for MAX_EXPR.
+
+	* Makefile (stage*): If ln fails, copy gnulib to stage*.
+	(realclean): Do `clean' and then some.
+	(install): new var USER_H specifies headers to copy.
+
+	* c-typeck.c (build_binary_op_nodefault): LT_EXPR, etc.
+	on ptr vs int failed to set result_type.
+	(build_conditional_expr): Don't replace nonzero int
+	with null_pointer_node.
+
+	* combine.c (remove_links, try_distrib): New fns.
+	(subst): New simplifications for ZERO_EXTEND, SIGN_EXTEND.
+	(combine_instructions): Call try_distrib.
+	(FAKE_EXTEND_SAFE_P): Allow SUBREGs.
+
+	* m68k.md (non-FPA pattern for floatsisf2): Typo, had DF for SF.
+
+Sat Aug 20 12:04:37 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (copy_address): Variant of copy_rtx_and_substitute.
+	(copy_rtx_and_substitute): Use copy_address for MEM address that
+	doesn't satisfy memory_address_p.
+
+	* reload.c (find_reloads): If force_reload set, don't set WIN
+	for a MEM even if `m', `o' or `g' in constraint.
+
+	* i386.md (expendqihi2): Typo in asm template.
+
+	* toplev.c (rest_of_compilation): Call clear_const_double_mem.
+	* varasm.c (init_const_rtx_hash_table): Don't call it here.
+	(immed_real_const): Don't record the rtx in the REAL_CST node.
+	(force_const_double_mem, clear_const_double_mem): Use cc0_rtx, not 0,
+	as flag for a CONST_DOUBLE not on the chain.
+
+	* cccp.c (handle_directive): If traditional, do scan strings
+	but accept unterminated ones.
+	(collect_expansion): -traditional: Don't recognize comments in strings.
+	Stringify arguments that appear within strings.
+	(skip_quoted_string): -traditional: Always exit at newline.
+	(macroexpand): -traditional: Don't put `"'s around stringified arg.
+	(macarg): Set stringified_length accordingly.
+
+	* c-decl.c (duplicate_decls): Avoid error redeclaring fcn after
+	implicit decl if -traditional.
+
+	* toplev.c (announce_function, report_error_function):
+	Change communication logic between these fcns.
+
+	* c-decl.c (lang_decode_options): Handle -Wall here.
+	* toplev.c (main): not here.
+
+	* tm-bsd386.h: Don't include tm-i386.h--be like tm-att386.h
+
+Fri Aug 19 11:08:36 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* config-sun4.h: If sparc, include config-sparc.h.
+	Never include alloca.h.
+
+	* tm-m68k.h (TARGET_SWITCHES): Define `-mc68020', `-mc68000'.
+
+	* c-decl.c (init_decl_processing): If traditional, use signed sizetype.
+
+	* gcc.c (main): Use stderr for printing version.
+
+Thu Aug 18 14:42:36 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Version 1.26 released.
+
+	* m68k.md (movsi): Constraint change for fpa regs.
+
+	* reload1.c (choose_reload_targets): Clear reg_reloaded_contents
+	for all regs of a multi-reg group.
+
+	* reload.c (find_equiv_reg): HARD_REGNO_NREGS wants mode, not size.
+	Check properly for overlap against multiword reload regs.
+
+Tue Aug 16 14:54:18 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c, expr.c (immed_double_const): immed_real_const_2 renamed.
+
+	* tm-i386.h (SFVALUE): Should be `double'.
+	* tm-i386v.h (SFVALUE): Don't override it.
+
+	* tm-i386.h (ASM_OUTPUT_ASCII): Don't define it.
+	* tm-att386.h: Definition moved here.
+
+	* tm-bsd386.h: New file, for Sequent.
+	* tm-seq386.h: New file, for Sequent.
+	* config-i386.h: New file, for Sequent.
+
+	* expr.c (push_block): Take account of STACK_POINTER_OFFSET.
+	(expand_call): Therefore need not do so here.
+
+	* optabs.c (expand_fix): Typo if going via DImode.
+
+	* reload1.c (choose_reload_targets): Don't * reload_reg_rtx if 0.
+
+Mon Aug 15 01:11:49 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (copy_for_inline): Don't try copying 0-length vector.
+	(copy_rtx_and_substitute): Likewise.
+
+	* m68k.md (andsi3): use clrw instead of andw #0.
+
+	* print-tree.c (walk): Don't omit permanent nodes reach from temps.
+
+	* m68k.md (zero_extend...): Reinstall the old zero-extend insns
+	without names, so they can help the combiner.
+
+	* expr.c (expand_expr): Don't use hard regs as subtargets.
+	* combine.c (FAKE_EXTEND_SAFE_P): Always consider MEMs safe.
+	* reload.c (find_reloads): For (SUBREG (MEM ...)) set force_reload.
+
+	* c-parse.y (redescape): Don't warn for `\('.
+
+	* reload.c (find_reloads_address): #if was backwards.
+
+Sun Aug 14 16:52:22 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (shorten_compare): Change switch to chain of ifs.
+
+	* tm-ns32k.h (PRINT_OPERAND): CONST_DOUBLE contains a double
+	even if it's SFmode.
+	(FUNCTION_PROLOGUE): If MAIN_FUNCTION_PROLOGUE defined, run it.
+
+	* cccp.c (file_buf): Rename field `free' to `free_ptr'.
+
+	* Makefile (ALLOCA, MALLOC, LIBDEPS): New variables for easier
+	customization.  Executables depend on LIBDEPS instead of OBSTACK1.
+	(cccp): Deps and libs now work like the others.
+
+	* output-i386.c (notice_update_cc): Rewritten for clarity.
+
+	* tm-i386.h (OUTPUT_JUMP): If CC_IN_OVERFLOW, abort.
+
+	* recog.c (push_operand): Test for stack_pointer_rtx.
+
+	* integrate.c (copy_rtx_and_substitute): Don't submit push-operands
+	to `memory_address'--it would lose on machines where pushing is
+	a special insn, not an addressing mode.
+
+	* output-i386.c	(top_dead_p): No more redundancy--that didn't work.
+	Now one method if optimized, one for call_insns if noopt, one for
+	other insns if noopt.
+	(call_top_dead_p): fp_top_dead_p renamed
+	and only the call-insn clause remains.
+
+	* i386.md (cmpsf, cmpdf): Output was backwards.
+	(", tstsf, tstdf): Set CC_IN_80387.
+	(incb pattern): Restrict allowable registers.
+	(movsf, movdf): Call top_dead_p only when absolutely necessary.
+	(call_value): Use top_dead_p, not subroutine.
+
+Sat Aug 13 15:19:23 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stupid.c (stupid_life_analysis): If only 1 reg class,
+	call stupid_find_reg only once.
+
+	* stmt.c (expand_function_start):
+	Clear current_function_pretend_args_size.
+
+	* expr.c (store_constructor): If target is hard reg, go via a pseudo.
+
+	* varasm.c (real_constant_chain): Now static in this file.
+	(force_const_double_mem): Put R on chain if not already on.
+	(clear_const_double_mem): Set XEXP (,2) to 0;
+	also clear real_constant_chain and the chain links.
+	* emit-rtl.c (init_emit_once): Put 0 in XEXP (,2) of {d,f}const0_rtx.
+	* cse.c (canon_hash): For CONST_DOUBLE, ignore elts other than 0,1.
+
+Fri Aug 12 11:48:38 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (order_regs_for_reload): Handle REG_ALLOC_ORDER more spots.
+
+	* global-alloc.c (find_reg): error handling REG_ALLOC_ORDER;
+	also error skipping regs known to be hopeless.
+	* local-alloc.c (find_free_reg): error skipping hopeless regs.
+	* stupid.c (stupid_find_reg): likewise.
+
+	* local-alloc.c (qty_compare_1): typo, had q1 for q2.
+
+	* expr.c (expand_expr): Don't use supplied target when optimizing
+	arithmetic using a comparison or conditional; that target could be
+	needed for the result of the comparison.
+
+	* reload1.c (reload): Don't set reg_equiv_constant for hard regs.
+
+	* stupid.c (stupid_life_analysis): Ignore reg R if regno_reg_rtx[R]==0.
+
+	* symout.c (symout_finish): Use perm. links in permanent_fwd_refs.
+
+	* i386.md (movhi, movqi): Check no_labels_between_p.
+
+Thu Aug 11 10:44:46 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y (yylex): Out-of-range float is just a warning.
+
+	* tm-gnx-v3.h: New file for Genix.
+	* ns32k.md (movsi, call, call_value): GNX_V3 conditionals.
+	* tm-ns32k.h (PRINT_OPERAND_ADDRESS): Changes for Genix.
+
+	* ns32k.md (insv patterns): Operand 0 is read-write.
+
+	* i386.md (tstsf, tstdf): Don't push the arg if already in st(0).
+
+	* varasm.c (output_constant_def): If EXP is permanent, the rtl is too.
+
+	* tm-*.h (ASM_OUTPUT_{LOCAL,COMMON}): New 4th arg, rounded size
+	vs unrounded size.
+	* varasm.c (assemble_variable): Pass new arg.
+	* symout.c (symout_init): Likewise.
+
+	* cccp.c (rescan): Don't let char const cross lines.
+	(skip_quoted_string, macarg1, discard_comments): Likewise.
+
+	* expr.c (expand_expr, VAR_DECL case): handle flag_force_addr.
+
+	* tm-i386v.h (TAREGT_DEFAULT): Assume 80387.
+	* config-i386v.h (alloca): Use __builtin_alloca under GNU C.
+
+Wed Aug 10 11:23:06 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload.c (find_reloads): Alternative loses
+	if it has no regs for a reg operand.
+
+	* tm-sun3.h (STARTFILE_SPEC): Define, for fpa's sake.
+	* tm-m68k.h: New hard regs, reg classes, reg class letters,
+	target flag and switch, operand syntax and CC handling for fpa.
+	* m68k.md: Add fpa insn patterns.
+	* output-m68k.c (standard_SunFPA_constant_p): New fn.
+	(output_move_const_{single,double}): Handle fpa regs.
+	(singlemove_string): Handle fpa regs.
+
+	* stmt.c (fixup_memory_subreg): Result had wrong mode.
+
+	* ns32k.md (insv patterns): Adjust bit-number along with address.
+
+	* sparc.md (negdf2, absdf2): Order of the words was backwards.
+
+	* reload1.c (new_spill_reg): End confusion about meaning of 1st arg.
+	Arg counted_for_nongroups had wrong type.
+
+	* tm-m68k.h (FUNCTION_{PRO,EPI}LOGUE): Round frame size to word bdry.
+
+Tue Aug  9 07:53:59 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-i386.h (ASM_OUTPUT_ASCII): Don't lose the sign bit.
+
+	* tm-i386v.h (STARTFILE_SPEC, LIB_SPEC): Use crt1.o, crtn.o.
+
+	* stmt.c (fixup_var_refs_1): fixup all memory subregs.
+
+	* reload1.c (choose_reload_targets): Don't strip paradoxical
+	subregs from values to be reloaded.
+
+	* cccp.c: Comment out text after #endif.
+
+	* c-parse.y (init): Allow empty braces as init; warn if pedantic.
+
+	* c-decl.c: Move C-specific options from toplev.c.
+	* c-tree.h: Move their externs from flags.h.
+	* c-decl.c (lang_decode_option): New fn called by `main'.
+	* toplev.c (sorry, really_sorry): New error reporting fns.
+	* c-decl.c (language_string): New var, name of this language.
+
+	* c-parse.y: Don't include flags.h.
+	* dbxout.c: Do include it.
+
+	* dbxout.c (dbxout_type): Handle function fields and static fields
+	and basetypes.  Handle METHOD_TYPE and REFERENCE_TYPE.
+	Abort on unexpected tree code.
+	(dbxout_args): New fn to output prototype arg types.
+	(everywhere): Use IDENTIFIER_LENGTH instead of strlen.
+	(dbxout_type_name): Cleanup; avoid strlen.
+
+	* local-alloc.c (reg_is_set): Don't call {post_,}mark_life for pseudos.
+
+	* tree.h (TYPE_BASECLASSES): New field in type nodes.
+
+	* ns32k.md (insv patterns): Was adjusting the address wrong.
+
+	* c-decl.c (grokdeclarator): Just a warning for inline varargs fn.
+
+Mon Aug  8 08:16:46 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c (immed_real_const_2): Guts of creating a CONST_DOUBLE.
+	* expr.c (expand_expr): Use that for 64-bit int constants.
+
+	* loop.c (invariant_p): Don't check x->unchanging; it's not safe.
+
+	* c-typeck.c (build_indirect_ref): Handle flag_volatile here
+	so that it propagates to component_refs.
+	* expr.c (expand_expr): No need to handle it here.
+
+	* integrate.c (save_for_inline, expand_inline_function):
+	Set up insn_map to record mapping of old uids to copied insns.
+	(copy_for_inline, copy_rtx_and_substitute): Map 'u' refs via insn_map.
+
+	* emit-rtl (emit_label, emit_barrier): Return what was emitted.
+
+	* sdbout.c (sdbout_filename): Split off from sdbout_init.
+	* tm-encore.h, tm-3b1.h, tm-vaxv.h, tm-att386.h (ASM_FILE_START):
+	Call sdbout_filename.
+
+	* toplev.c: Better messages for invalid options.
+
+	* tm-m68k.h (PRINT_OPERAND_ADDRESS): Handle labelref+basereg.
+
+	* tm-3b1.h (PUT_SDB_DIM): Override sdbout's definition.
+	(ASM_FORMAT_PRIVATE_NAME): Override tm-hp...s definition.
+	(PUT_SDB_PLAIN_DEF): Prepend `~' to specified name.
+	(SDB_GENERATE_FAKE): Prepend `~'.
+
+	* gcc.c: Include config.h before obstack.h.
+
+Sun Aug  7 11:17:56 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stor-layout.c (layout_decl): Do nothing with CONST_DECL.
+	Treat FRIEND_DECLs like variables.
+	(layout_record): Handle VAR_DECLs and FUNCTION_DECLs in the fieldlist.
+	Handle basetypes (almost like fields).
+	(layout_type): Handle REFERENCE_TYPE and METHOD_TYPE.
+
+	* tree.c (temp_tree_cons): New fn.
+	(array_type_nelts, simple_cst_equal): New fns.
+	(lvalue_p): CALL_EXPR is an lvalue if it returns REFERENCE_TYPE.
+	() Manage TYPE_REFERENCE_TO.
+	(TYPE_HASH_SIZE): Bigger.
+	(type_list_equal): Compare the TREE_PURPOSE fields.
+	(build_reference_type, build_method_type): New fns.
+
+	* stmt.c (block_stack): Add field `cleanups' to each element.
+	(expand_{start,end}_bindings, expand_decl): Update that field.
+	(stack_block_stack): Now includes blocks that have cleanups.
+	(goto_fixup_chain): Add field `cleanup_list_list'.
+	(expand_goto_internal): Execute cleanups for blocks being exited.
+	(expand_fixup): Make a fixup if any block has cleanups.
+	(fixup_gotos): New args CLEANUPS and DONT_JUMP_IN.
+	Execute cleanups for blocks being exited, or add to cleanup_list_list.
+	(expand_end_bindings): New arg DONT_JUMP_IN.  Execute any cleanups.
+	(expand_decl): New arg CLEANUP.
+	(expand_cleanups, fixup_cleanups): New functions.
+	* c-decl.c: Calls to expand_decl pass new arg.
+	* c-parse.y: Calls to expand_end_bindings pass new arg.
+
+	* stmt.c (expand_return): Handle INIT_EXPR, or bare RESULT_DECL.
+
+	* stmt.c (case_stack): Add field `has_default' to each element.
+	(pushcase,expand_end_case): Maintain and use that field.
+
+	* stmt.c (pushcase): Handle RANGE_EXPR cases.
+	(pushcase_range): Create RANGE_EXPR cases.
+
+	* final.c (final): Always pass 3 args to ASM_OUTPUT_CASE_END.
+	* tm-3b1.h: Delete offending spaces.
+
+Fri Aug  5 16:17:16 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (copy_rtx_and_substitute): Don't make fp+reg+const
+	without an intermediate temporary reg.
+
+	* print-tree.c (dump): Don't print an identifier's chain.
+
+	* toplev.c (compile_file): Treat `.i' suffix like `.co'.
+
+	* gcc.c: New config macro CC1_SPEC: extra switches for cc1.
+	Make a new spec for `.i' files.
+
+	* c-decl.c (pushdecl, finish_decl): Delete duplicate tests.
+
+	* varargs.h: Maybe include va-sparc.h or va-spur.h.
+	* va-sparc.h: New file.
+	* va-spur.h: renamed file.
+
+	* tree.h ({TYPE,DECL}_LANG_SPECIFIC): Types and decls can point to
+	language-specific structures containing other info.
+	* print-tree.c (dump): Hooks for printing the language-specific
+	data in types and decls.
+
+Thu Aug  4 08:54:30 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.def: Add some tree codes for C++.
+
+	* Rename files: parse.[yh] -> c-parse.[yh], decl.c -> c-decl.c,
+	typecheck.c -> c-typeck.c.
+	Part of tree.c split out to c-convert.c.
+
+	* expr.c (push_block): No longer static.
+	(expand_expr): Handle REFERENCE_EXPR and INIT_EXPR.
+	(expand_call): Turn a METHOD_TYPE to a FUNCTION_TYPE.
+	This is probably not all that is required.
+
+	* parse.y (yylex): Use p->rid to check for `signed' and `inline'.
+
+	* tm-sparc.h (ASM_OUTPUT_SOURCE_LINE): typo.
+
+	* sparc.md: Add a pattern for andcc.
+	(cmpsf): Clobber reg 32 in DFmode.
+	(branches): There are no unsigned floating branches; abort.
+	(bgt): Correct name of floating variant.
+	(mov?i): Load small constants via mov.
+	(movdf for constants): Use mov, not add, to move regs.
+	(movsf, floatsi*, fix*): Simplify reg-to-reg-via-mem move generation.
+	(trunc*): Use mov, not or, to move regs.
+	(negsi2, one_cmplsi2): Avoid "neg" and "not" assembler syntax.
+	(call...): Generate "call" insns; handle #-reg-parms value.
+	* Define some peepholes for return insns.
+
+	* tm-sparc.h (TARGET_SUN_ASM): New target flag.
+	(TARGET_DEFAULT): Now 1.
+	(FRAME_POINTER_REQUIRED): Now 1.
+	(STARTING_FRAME_OFFSET): Now -16.
+	(LEGITIMATE_CONSTANT_P): Only CONST_DOUBLEs fail.
+	(FUNCTION_{PROLOGUE,EPILOGUE}): Rewritten.
+
+	* output-sparc.c (small_int): Test for int that mov can load.
+	(singlemove_string): Use mov, not add.
+	(output_move_double): Changes for overlap and for use of ldd, std.
+	(output_fp_move_double): Use ldd, std when safe.
+	(make_f0_contain_0): Simplify.
+
+	* integrate.c (expand_inline_function): Some special CALL_INSN
+	handling no longer needed due to REG_FUNCTION_VALUE_P.
+
+	* m68k.md (movqi): Constraints allow moving areg to areg.
+
+Wed Aug  3 08:29:31 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Version 1.25 released.
+
+	* integrate.c (expand_inline_function): Don't let MEM be inline_target.
+
+Tue Aug  2 09:13:37 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (INTEGRATE_THRESHOLD): New macro, default dfn here.
+	(function_cannot_inline_p): Use it.
+
+	* rtl.h (REG_FUNCTION_VALUE_P): New macro.
+	* stmt.c (expand_function_start): Set that flag in the return reg.
+	* integrate.c (expand_inline_function, copy_rtx_and_substitute):
+	Test that flag to test for the return value.
+	* expmed.c (expand_fixed_bit_field, expand_mult, expand_divmod): ditto.
+	FUNCTION_VALUE_OUTGOING_REGNO_P no longer needed.
+
+Mon Aug  1 02:46:08 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (copy_rtx_and_substitute): If NO_FUNCTION_CSE,
+	don't break out constant fcn addresses here.
+
+	* expmed.c (expand_fixed_bit_field): Tests of FUNCTION_VALUE_REGNO_P
+	were backwards.
+
+Sun Jul 31 13:10:07 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* recog.c (indirect_operand): New function.
+
+	* output-i386.c (print_operand): define %*. eliminate %s.
+	(fp_top_dead_p): In nonopt case, skip stack-adjusts while looking
+	for the insn that uses the function value.
+
+	* varasm.c (text_section, data_section): New functions.
+	Replaced explicit printfs elsewhere with calls to them.
+	* final.c (final_start_function): Use these fns.
+	* sdbout.c (sdbout_one_type): Use text_section.
+	* tm-att386.h (ASM_OUTPUT_LOCAL): Use data_section.
+
+	* expr.c (prepare_call_address): Don't pass const via reg if no -O.
+
+	* tm-sparc.h (FUNCTION_{PROLOGUE,EPILOGUE}) Round the size of saved
+	registers.  Fix bug counting saved registers.
+
+	* tm-sparc.h (ASM_OUTPUT_SOURCE_LINE): Define this macro.
+
+	* tm-sparc.h (DEFAULT_SIGNED_CHAR): Now 1.
+
+	* expr.c (expand_builtin, alloca case): Adding stack offset needs
+	special code if TARGET is a MEM.
+
+	* dbxout.c (dbxout_init): Define Ltext: after the reference to it.
+
+	* tm-3b1.h (ASM_OUTPUT_CASE_LABEL): `short 0' triggers assembler bug;
+	`short L%nn-L%nn' supposedly works.
+
+Sat Jul 30 00:25:52 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sparc.md (floatsidf2): Minor change in output.
+	(fix_trunc{sf,df}si2): Similar.
+
+	* output-sparc.c (output_fp_move_double): Minor change in output.
+
+	* stmt.c (assign_parms): Don't count stack space for struct value
+	address if the function does not have one.
+
+	* sdbout.c: Output .dim's and total size for arrays.
+	Detect bit-fields properly.
+	Changed handling of structure tags.
+
+	* reload1.c (new_spill_reg): counted_for_nongroups is a new arg;
+	store 1 in it if this reg is needed for max_nongroups.
+
+	* reload1.c (choose_reload_targets): Allow inheritance of DFmode
+	if it needs only one register.
+
+	* reload1.c (choose_reload_targets): Delete the death-note from the
+	store-insn of an inherited reload if PRESERVE_DEATH_INFO_REGNO_P.
+
+	* reload.c (push_reload): Crash if PREFERRED_RELOAD_CLASS is NO_REGS.
+	(find_reloads): Smarter handling of forcing CONST_DOUBLE into mem.
+	Check PREFERRED_RELOAD_CLASS & do this if it says NO_REGS.
+
+	* reload.c (subst_indexed_address): Handle case with 2 regs
+	and no constant term.
+
+	* local-alloc.c: New variable qty_n_refs, set from reg_n_refs
+	and tested in qty_compare{,_1}.
+	(combine_regs): Update qty_n_refs.
+	Update qty_preferred_or_nothing more intelligently.
+
+	* regclass.c (regclass, reg_class_record, record_address_regs):
+	Count the number of refs to each reg along with the costs,
+	and use it when computing the preferred_or_nothing flag.
+	(Can't use reg_n_refs since that is weighted by loop depth).
+
+	* global-alloc.c (global_alloc): Enable test of OVERLAPPING_REGNO_P
+	for setting no_global_alloc_regs.
+
+	* expr.c (prepare_call_address): Use force_reg, so it gets a REG_EQUIV.
+
+	* optabs.c (can_{fix,float}_p): Return enum insn_code, not a function.
+	(init_{fix,float}_tab): Store enum insn_code's in fixtab and floattab.
+	(expand_{fix,float}): Change calls to can_{fix,float}_p.
+	Also, use emit_unop_insn to make the actual insns.
+
+Fri Jul 29 02:42:40 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (initialize_char_syntax): If dollars_in_identifiers is 0,
+	set entries for `$' to 0.
+	Set entries to 1 rather than incrementing them.
+
+Tue Jul 26 11:14:22 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c (assemble_variable): Make SDB output only if top-level.
+
+	* local-alloc.c (reg_is_set): Arg to mark_life is regno, not qty.
+
+	* output-ns32k.c (print_operand_address): New flag SEQUENT_BASE_REGS
+	* tm-sequent.h: Define that flag.
+
+	* Makefile: add some missing deps.
+
+	* tm-encore.h (ASM_FILE_START): Changed to do nothing.
+
+	* sdbout.c (sdbout_init): Fix two dumb errors.
+
+	* sdbout.c (sdbout_end_epilogue): No longer takes arg.
+	Examine current_function_decl here, not in caller.
+	* final.c: Call changed.
+
+Mon Jul 25 01:32:54 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stor-layout.c (layout_record): Handle PCC_BITFIELD_TYPE_MATTERS.
+
+	* tm-3b1.h (__PTR_TO_INT, __INT_TO_PTR): Define these, to alter
+	parts of obstack.h.
+
+Sun Jul 24 17:56:53 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Padding for an arg may now go below or above it; new macro
+	FUNCTION_ARG_PADDING can now choose which, or can inhibit padding.
+	This makes for compatibility with PCC.
+	* expr.h: Default definition of that macro.
+	* expr.c (emit_push_insn): Put the padding above or below.
+	(expand_call): Don't count the padding if none wanted.
+	* stmt.c (assign_parms): Adjust parm stack addr if padded below.
+	Don't count the padding if none wanted.
+	* tm-3b1.h: Define FUNCTION_ARG_PADDING: no padding for > 4 bytes.
+
+	* final.c (alter_subreg): Now returns the altered value
+	(but may still modify the original structure).
+	Handles (SUBREG:DI (CONST_DOUBLE:DF...)) by returning the CONST_DOUBLE.
+
+	* m68k.md (DImode push): now allows `F'.
+	* ns32k.md (movdi): now allows `F'.
+
+	* tm-m68k.h (FIX_FRAME_POINTER_ADDRESS):
+	Handle indexed references to frame pointer.
+	* tm-i386.h, tm-m88k.h, tm-sparc.h: Likewise.
+
+	* cse.c (predecide_loop_entry): Must search for the loop top label.
+
+Sat Jul 23 08:53:01 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* parse.y (yylex): typo in wide strings.
+
+	* tm-vaxv.h, config-vaxv.h: New files for sysV on vax.
+
+	* config-sun4.h: If sparc and not compiling with GCC, include alloca.h.
+
+Fri Jul 22 02:38:02 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* tree.c (build_real_from_int_cst): CHECK_FLOAT_VALUE at proper place.
+
+	* tm-hp9k320.h ({TEXT,DATA}_SECTION_ASM_OP): Should not include a tab.
+	* final.c (final_start_function): Don't output a tab before those.
+
+	* sdbout.c (PUT_SDB_EPILOGUE_END): New macro.
+	* sdbout.c (sdbout_end_epilogue): New function to output the C_EFCN.
+	Like former sdbout_mark_end_function.  Uses that macro.
+	* final.c (final_end_function): Call that function.
+	* tm-3b1.h: Override PUT_SDB_EPILOGUE_END like the other PUT_SDB...
+
+	* tm-3b1.h (PRINT_OPERAND_ADDRESS, ASM_OUTPUT_INTERNAL_LABEL,
+	ASM_OUTPUT_CASE_{LABEL,END}): Put a % in names of internal labels.
+	(ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT):
+	New macros, for same reason.
+	(FUNCTION_PROFILER): New macro, for % and also to put addr in a0.
+
+	* final.c (output_source_line): For fcn's first line, use lineno 1.
+	* sdbout.c (sdbout_end_function): Clear sdb_begin_function_line
+	so can recognize first line of next function.
+
+	* sdbout.c (sdbout_init): Output the .file pseudo here.
+	* tm-3b1.h, tm-att386.h (ASM_FILE_START): Don't do it here.
+
+	* sdbout.c (PUT_SDB_VAL): Output leading tab, like the other macros.
+	* tm-3b1.h (PUT_SDB_VAL): Likewise.
+
+	* regclass.c (regclass): Cast enums to int, not char.
+	* varasm.c (record_constant): Likewise.  Avoids 3b1 PCC bug.
+
+	* decl.c (pushdecl): Better choice of error message for extern/static.
+
+	* emit-rtl.c: Do look for STRUCT_VALUE_INCOMING_REGNUM.
+
+Thu Jul 21 02:13:03 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cse.c (canon_hash): CONST_INT case failed to add to prev. value
+	of HASH; was inconsistent with cse_insn mem address hashing.
+
+	* m68k.md (divide insns): Alternate 3B1 syntax for `swap' insn.
+
+Wed Jul 20 18:27:10 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m68k.md: In shift-by-24 patterns, rejects autoincrement memrefs
+	since they are mode-dependent.
+
+Tue Jul 19 13:01:38 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* parse.y (check_newline): Handle #ident by writing .ident to output.
+	* cccp.c: Don't handle #ident; delete IDENT_DIRECTIVE conditionals.
+
+	* stmt.c (expand_end_case): In compares, put constant arg second.
+
+	* jump.c (jump_optimize): Delete conditional jump if followed by
+	an unconditional jump to the same place.
+
+Mon Jul 18 17:49:13 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* emit-rtl.c (init_emit_once): Now STRUCT_VALUE_INCOMING is an
+	expression for an rtx.  It can make a MEM.  Likewise STRUCT_VALUE
+	for outgoing structure value addresses.
+
+	* stmt.c (assign_parms): If incoming struct addr on stack, leave room.
+	* expr.c (expand_call): If outgoing addr on stack, push it like an arg.
+
+	* PROMOTE_PROTOTYPES means if proto says `char', pass `int'.
+	* decl.c (get_parm_info): Alter DECL_ARG_TYPE to do this.
+	* typecheck.c (actualparameterlist): Convert value for this.
+	* tm-m68k.h: Define PROMOTE_PROTOTYPES.
+
+Sun Jul 17 14:25:47 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* jump.c (jump_optimize): peephole can delete insns following INSN.
+	Set NEXT after peephole.
+
+	* decl.c (finish_decl): Always restart perm alloc if global.
+
+	* stmt.c (assign_parms): When a float is passed as double, store the
+	float in low-numbered word.  Avoids trouble with parm_map in integrate.
+
+	* vax.md: New pattern for decrement and compare against -1.
+
+Sat Jul 16 14:18:00 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* decl.c (pushdecl): Ignore previous decl if it's really an error_mark.
+
+	* stmt.c (expand_start_case): Make sure case_stmt.start is a NOTE.
+
+	* combine.c (subst): In the simplification for
+	(set (zero_extract ...) (and/or/xor (zero_extract ...) const)),
+	require same memory location in both extracts.
+
+	* *386*: New files.
+
+	* cse.c (fold_rtx): Save time in memory address if it didn't change.
+	Don't replace cheaper expression with coslier one.
+	(cse_insn): Reenable generation of REG_WAS_0.  It wasn't obsolete.
+
+	* cccp.c: `ident' has 5 letters.
+
+	* final.c (output_source_line): SDB can't handle multiple source
+	files, so ignore line-NOTEs for other files.
+
+	* hard-reg-set.h: New var reg_class_size (# regs in the class).
+	* regclass.c (init_reg_class): Set it up.
+
+	* reload.c (find_reloads): If an earlyclobber is in a class of size 1
+	as an output, reload it as input instead of as output.
+
+	* reload1.c (choose_reload_targets): Improve elimimation of spilled
+	pseudos made dead by reloading: if pseudo is limited to one block
+	and that block contains just stores, delete all the stores.
+
+	* reload1.c (choose_reload_targets): reg_has_output_reload is now
+	static and survives through reload pass.
+	(forget_old_reloads): Don't cancel data on spilled regs of output
+	reloads of the insn just made.
+
+	* sdbout.c (sdbout_one_type): Go to .text before defining a type.
+	(sdbout_block): Test against do_block was backwards.
+
+	* stmt.c (expand_end_function): New args to make a NOTE for last line.
+	* decl.c (finish_function): Pass the args.
+
+	* rtl.c (no_labels_between): New function.
+	* vax.md (movsi): Call it.
+
+	* print-tree.c (dump): Don't follow chain of a decl.
+
+	* rtl.c (volatile_refs_p): Moved from flow.c.
+
+Fri Jul 15 13:36:20 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* sdbout.c (PUT_SDB...): Allow config to override any of them.
+	* sdbout.c (PUT_SDB_{BLOCK,FUNCTION}_{START,END}): New macros.
+	* tm-3b1.h: Override all of them.
+	* sdbout.c (SDB_GENERATE_FAKE): New macro to create dummy tag name.
+	(gen_fake_label): Use SDB_GENERATE_FAKE.
+	* tm-3b1.h: Override its defn.
+
+	* sdbout.c (sdbout_mark_function_end): Unused; deleted.
+
+	* tm-3b1.h: Define SDB_DEBUGGING_INFO.
+
+Thu Jul 14 01:55:15 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* config-sunv4.h: New file for Sunos version 4.
+
+	* tm-sun3.h (CPP_SPEC): Define mc68010 or mc68020, depending.
+
+Tue Jul 12 15:31:30 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stmt.c (expand_fixup, expand_goto_internal): New functions to
+	emit a jump that can restore the stack level, even without tree node.
+	(expand_null_return, expand_exit_loop, etc.): Use expand_goto_internal.
+	(expand_end_function): Do fixup_gotos after emitting return_label.
+
+	* cse.c (predecide_loop_entry): Avoid using JUMP_LABEL.
+	* flow.c (find_basic_blocks): Avoid using JUMP_LABEL.
+
+	* flow.c (insn_dead_p): Delete special case for stack-adjust insns.
+	(life_analysis): Mark those insns with INSN_VOLATILE here.
+	(mark_used_regs): a SET of a hard reg, in a volatile insn,
+	always makes its source live.
+
+Mon Jul 11 10:46:26 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* ns32k.md (floatqidf2): Commented out since assemblers warn about it.
+
+Sun Jul 10 11:49:23 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* decl.c (xref_tag): Default the TYPE_MODE of enum xrefs
+	to avoid making MEM and REG with VOIDmode.
+
+	* vax.md (call): If > 255 args, pop them explicitly.
+
+Sat Jul  9 10:53:47 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* symout.c (symout_types): Fix up forward refs to previously
+	undefined structure types.
+	(filter_undefined_types): New function.
+	(symout_finish, symout_function_end): Output any never-defined structs.
+	* toplev.c (rest_of_compilation): call symout_function_end.
+
+	* parse.y: Don't declare errno if it's a macro.
+
+	* tm-hp9k320 (FUNCTION_PROFILER): Pass ptr in a0, not d0.
+
+	* typecheck.c (truthvalue_conversion): Flush unnec recursive call.
+	(build_cond_expr): Bug testing zeroness of IFEXP with TREE_LITERAL.
+
+	* cse.c (fold_cc0): Constants not CONST_INT are certainly nonzero.
+	* fold-const.c (fold): ADDR_EXPR is not equal to zero.
+
+	* cccp.c (macroexpand): Disable the macro even if traditional.
+	(rescan): Error if use a disabled macro.
+
+	* combine.c (try_combine): Don't substitute a different reg into
+	an auto-increment.  Handle multiple REG_INC notes in I1 or I2.
+
+	* decl.c (implicitly_declare): Don't reuse old implicit decl.
+
+	* varasm.c (assemble_variable): Avoid syntax err if no DBX and no SDB.
+	* final.c (output_source_line): likewise.
+
+	* fold-const.c (fold): PLUS/MINUS_EXPR: in case of cancellation,
+	convert result to original type.
+
+	* regclass.c (reg_class_record): Changed arguments include address
+	of entire vector of constraints.
+
+Fri Jul  8 07:59:00 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (reload): Find groups of more than 2 registers.
+
+Thu Jul  7 08:33:07 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (emit_push_insn): Typo adjusting arg for bcopy
+	if not STACK_GROWS_DOWNWARD.
+
+	* gnulib.c (_cmpsf2): Value is int, not SFVALUE.
+
+Wed Jul  6 11:53:46 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-encore.h, tm-3b1.h: Replace ASM_FILE_START; output a .file.
+
+	* *m88*: New files for Motorola 88000.  They don't really work.
+
+Tue Jul  5 14:40:03 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* local-alloc.c (combine_regs): Don't tie a reg to itself.
+
+	* finxincludes: Make a variable LIB for the target dir.
+
+	* m68k.md (movhi, addhi3, addsi3): Micro-optimize choice of asm insns.
+
+	* expr.c (expand_expr): Use new macros NO_DEFER_POP, OK_DEFER_POP
+	in several places, to keep stack predictable.
+
+Mon Jul  4 09:50:18 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (function_cannot_inline_p): Increase threshold size.
+
+	* flags.h (use_gdb_dbx_extensions): New variable.
+	* toplev.c:
+
+	* sdbout.c (PUT_SDB_TAG): Delete duplicate defn.
+
+	* expr.c (expand_expr): For FIX_TRUNC_EXPR to unsigned short/char,
+	REALLY go via signed int.
+
+	* loop.c (may_trap_p): Was detecting floating arithmetic incorrectly.
+
+	* tm-news800.h (CPP_PREDEFINES): Add sony and sony_news.
+
+	* parse.y (check_newline): Avoid infinite loop at eof.
+
+Sat Jul  2 10:35:17 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Version 1.24 released.
+
+	* stmt.c (expand_asm_operands): Produce proper no-outputs insn.
+	* recog.c (asm_noperands): Detect no-outputs insns.
+	(decode_asm_operands): Likewise.
+	* reload.c (find_reloads): Likewise (add case ASM_OPERANDS:).
+
+	* local-alloc.c (block_alloc): Tests of qty_compare were backwards.
+
+	* flow.c (life_analysis): Turn off code that finds regs live at
+	function start and marks them not local to any basic block.
+
+	* cse.c (insert_regs): Fix typo (UNITS_PER_WORD).
+
+	* cccp.c: Define max.
+
+	* expr.c (expand_expr): Put each SAVE_EXPR's reg on save_expr_regs,
+	if not optimizing.
+	* stmt.c (expand_function_end): Mark each of those regs live
+	at the end and also retroactively at the beginning of the function.
+
+	* output-vax.c (print_operand_address): New function from old macro.
+	* tm-vax.h (PRINT_OPERAND_ADDRESS): Call that function.
+
+	* config-vms.h: If not under GNU C, define X_OK, etc.
+
+	* expr.c (move_by_pieces_1): Use * to call GENFUN.
+	(expand_expr): Compare DECL_FUNCTION_CODE against an enum const.
+	(preexpand_calls): Likewise.
+	* genrecog.c (write_tree): Likewise.
+	* final.c (final): Use * to call the output function.
+	* reload.c (push_reload): Rename `noshare' to `dont_share'.
+
+	* genoutput.c (output_epilogue): Put more newlines in insn_outfun.
+	* genemit (gen_exp): Put in more newlines.
+
+Fri Jul  1 00:23:57 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* global-alloc.c (allocno_compare): Avoid comparisons of floats
+	since that is sensitive to roundoff errors.
+
+Thu Jun 30 09:25:40 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sdbout.c (PUT_SDB_{DEF,TAG}): Use ASM_OUTPUT_LABELREF.
+	(PUT_SDB_PLAIN_DEF): New name for old defn of PUT_SDB_DEF
+	(sdbout_one_type): Use PUT_SDB_PLAIN_DEF for `.eos'.
+
+	* tree.c (allocation_temporary_p): New fcn.
+	(all_types_permanent): New variable.
+	(make_node): If that's set, make each ...TYPE node permanent.
+	* decl.c (grokdeclarator): If traditional, make decl data permanent.
+	(finish_decl): Make the rtl permanent too.
+	* stor-layout.c (layout_type): If type is permanent,
+	make its layout data permanent too.
+
+	* cccp.c: Choose C++ or C at run time via var `cplusplus'.
+	Separate cplusplus_include_default from include_default.
+	Get GNU-specific include directory names from macros
+	GCC_INCLUDE_DIR and GPLUSPLUS_INCLUDE_DIR.
+	(main): Initialize based on CPLUSPLUS; `-+' sets it.
+	* Makefile: Set *_INCLUDE_DIR based on $(libdir).
+
+Tue Jun 28 09:25:49 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.c (copy_node): Round LENGTH up to multiple of sizeof (int).
+
+	* expr.c (emit_push_insn): Avoid using PUSH_ROUNDING if not defined.
+
+	* sparc.md (floatsisf2): Insert missing brace.
+	(mulsi3): Replace reg_o0_rtx, reg_o1_rtx.
+
+	* tm-sparc.h: Define DBX_DEBUGGING_INFO.
+
+	* parse.y (yylex): If traditional, no error for out-of-range float.
+
+	* Makefile: Comment saying how to compile on an Apollo.
+
+	* tm-sparc.h (ASM_FILE_START): Switch to new calling convention.
+
+	* decl.c (init_decl_processing): Create type nodes for 64-bit ints.
+	(grokdeclarator): use them for `long long'.  Warn only if pedantic.
+
+	* optabs.c (init_optabs): Add missing DImode insn names.
+
+	* expr.c (emit_block_move, emit_push_insn): Use movstrqi if appro.
+
+	* expr.c (convert_move): use extendsidi if appropriate.
+
+	* cccp.c (initialize_builtins): Don't install __STDC__ if traditional.
+	(main): Call initialize_builtins after option processing.
+
+	* integrate.c (output_inline_function): Set current_function_decl.
+
+	* cse.c (fold_rtx): Typo in avoiding 32-bit shifts.
+
+	* cccp.c: Add forward-decl.
+
+Mon Jun 27 18:06:42 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* hard-reg-set.h (reg_alloc_order): New variable
+	based on REG_ALLOC_ORDER, a new machine-description macro.
+	* regclass.c (reg_alloc_order): Define it.
+	* local-alloc.c (find_free_reg): Handle reg_alloc_order.
+	* global-alloc.c (find_reg): Likewise.
+	* stupid.c (stupid_find_reg): Likewise.
+
+Sun Jun 26 10:47:47 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Version 1.23 released.
+
+	* tm-3b1.h: Define IDENT_DIRECTIVE.
+
+	* tm-encore.h: Define SDB_DEBUGGING_INFO.
+	Define SCCS_DIRECTIVE and IDENT_DIRECTIVE.
+
+	* output-ns32k.c: Decl of paren_base_reg_printed must be outside fcns.
+
+	* tm-encore.h (ASM_OUTPUT_DOUBLE): Do 0f, not 0l.
+	(CPP_PREDEFINES): No -Dns32032.
+
+	* sdbout.c: Include syms.h, not storclass.h.
+	(unnamed_struct_member): Decl was missing.
+	(PUT_SDB_INT_VAL, PUT_SDB_VAL): Fix typos.
+	(sdbout_types, sdbout_one_type, sdbout_parms): Fix typos.
+
+	* Makefile: Add file sdbout.o.
+	Changed comments pertaining to sysV.
+	Make a separate target `doc' to make the info files.
+
+	* m68k.md (bit-field insns): Use nonimmediate_operand for the thing
+	to extract from.
+	* vax.md (QImode bit-field insns): Likewise.
+
+	* recog.c (nonimmediate_operand): Accept any nonconst general operand.
+
+Sat Jun 25 07:54:42 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cse.c (lookup_as_function): arg to exp_equiv_p was missing.
+
+Fri Jun 24 09:14:47 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* recog.c (memory_operand): Allow (subreg (mem...)).
+
+Thu Jun 23 07:34:07 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* decl.c (finish_enum): Compute minimum value like maximum.
+	If minimum is negative, install it in the type and make it signed.
+
+	* stor-layout.c (layout_record): STRUCTURE_SIZE_BOUNDARY is minimum.
+	(layout_type): A RECORD_TYPE or UNION_TYPE must be BLKmode if
+	any member is BLKmode.  This is to prevent putting it in a register.
+	(layout_decl): If decl's type is BLKmode, the decl *must* be BLKmode.
+
+	* local-alloc.c (find_free_reg): Never allocate the frame pointer reg.
+
+	* tm-sequent.h (PRINT_OPERAND): Bug in SFmode CONST_DOUBLE.
+	* tm-encore.h: Likewise.
+
+	* flow.c (flow_analysis): Bug in n_basic_blocks error check.
+
+	* stmt.c (expand_asm_operands): Emit no insn if an arg is erroneous.
+
+Tue Jun 21 08:34:24 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload.c (find_reloads_address): Write back *loc even if
+	subst_reg_equivs makes no change, in case subst_index_address did.
+
+	* flow.c: Define macros for -1 and -2 as values of reg_basic_block.
+	(mark_used_regs): Add an `else'; no change in behavior.
+	(mark_label_ref): Abort if LABEL_REF doesn't contain a CODE_LABEL.
+	(find_basic_blocks): Extra error check.
+
+	* output-ns32k.c (print_operand_address): Changes in handling of
+	register-indirect, and of indexing by sb register.
+
+Mon Jun 20 04:55:38 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (collect_definition): Compute needed space more accurately.
+	Abort if use more space than was allocated.
+	(rescan) [USE_C_ALLOCA]: Do alloca (0) after handle_directive.
+
+	* genflags.c (gen_insn): Put parens around defns of HAVE_... macros.
+
+Sun Jun 19 02:52:53 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (emit_push_insn): Consider PARM_BOUNDARY when compensating
+	for size of a pushed arg to bcopy.
+
+Sat Jun 18 07:20:54 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* New files sparc.md, tm-sparc.h, config-sparc.h, output-sparc.c.
+
+	* final.c (final): After an ADDR_{,DIFF_}VEC, do ASM_OUTPUT_CASE_END.
+	* tm-3b1.h: Define ASM_OUTPUT_CASE_END.
+	(PRINT_OPERAND_ADDRESS): Ref the case tables via an intermediate symbol
+	`LDnnn' whose def. is output by ASM_OUTPUT_CASE_END.
+	(ASM_OUTPUT_CASE_LABEL): Add missing newline.
+
+	* reload.c (find_equiv_reg): Reject a MEM containing an autoincrement.
+
+Fri Jun 17 06:58:37 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* genpeep.c (main): Write `extern' in the decl for `peep_operand'.
+
+	* flow.c (propagate_block): When a dead insn has a REG_RETVAL note,
+	call mark_set_regs anyway, so that `significant' is updated.
+
+	* jump.c (follow_jumps): New arg IGNORE_LOOPS.  If 0, don't follow
+	the insn at the beginning of a loop that enters the loop; this avoids
+	interference with loop optimizer.
+	(jump_optimize, tension_vector_labels): Pass that arg.
+
+	* loop.c (loop_optimize): Mention invalid multiple-entry loops in log.
+
+	* m68k.md (extv, extzv): Fix # of alternatives mismatch in constraints.
+
+Thu Jun 16 03:06:48 1988  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+	* genrecog.c (change_state): Was mishandling printing XVECEXP indices 
+	greater than 9.
+
+	* combine.c (subst, simplify_and_const_int): Avoid making SUBREG
+	of a non-REG.
+
+	* expr.c (expand_expr): For FIX_TRUNC_EXPR to unsigned short/char,
+	go via signed int.
+
+	* optabs.c (expand_fix): Copy hard_libcall_value reg only once.
+
+	* reload1.c (order_regs_for_reload): Init all elements
+	of  potential_reload_regs to -1.
+
+	* Prevent generation of (set (reg) (plus ... (label_ref ...))).
+	* explow.c (memory_address_noforce): Like `memory_address' but
+	never force it into a register.
+	* expr.c (do_tablejump): Use that.
+	* m68k.md (casesi): Use that.
+
+	* rtl.h (struct rtx_def, GET_CODE, PUT_CODE): If SHORT_ENUM_BUG,
+	define the `code' field as a short.
+
+Wed Jun 15 01:25:57 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gcc.c (CPP_SPEC): New spec set by config.h gives flags to cpp.
+	* tm-*.h for m68k: Define CPP_SPEC to define __HAVE_FPU__ on
+	appropriate conditions.
+
+	* combine.c (subst): Simplify (not (minus x 1)) and (neg (minus x y)).
+
+Mon Jun 13 02:22:43 1988  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+	* typecheck.c (build_array_ref): Avoid duplicate errmsg if index
+	is an error-mark.
+
+Sun Jun 12 23:04:39 1988  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+	* cccp.c (handle_directive): If -traditional, quotes aren't special.
+	(rescan): Assume newline ends a string constant.
+
+	* cccp.c, cexp.y: Make all fcns non-static; add some forward decls.
+
+	* various: add static forward-decls for various functions.
+
+Fri Jun 10 00:25:18 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (choose_reload_targets): When writing back an incremented
+	value (handling reload_inc), write back to the real place, not to
+	OLDEQUIV (a register that holds the same value).
+
+	* tm-m68k.h (LEGITIMIZE_ADDRESS): Don't give force_operand a target.
+	This can cause the use of multiple insns with same output reg,
+	which can confuse cse.
+
+	* loop.c (consec_sets_invariant_p):
+	If invariant_p ever returns 2, we return 2.
+	New arg is # of consecutive sets to look for,
+	since this info is no longer in n_times_set at move_movables.
+	(scan_loop): If consec_sets_invariant_p returns 2, set m->cond.
+	(move_movables): check consecutive insns if m->consec && m->cond.
+
+	* tm*.h: ASM_DECLARE_FUNCTION_NAME now takes 3rd arg,
+	the FUNCTION_DECL node.
+	* varasm.c (assemble_function): Pass this arg.
+
+	* expr.c (expand_call, expand_builtin [alloca]):
+	If STACK_POINTER_OFFSET is defined, add it to stack pointer contents
+	before using it as address of actual data on the stack.
+	* stmt.c (expand_decl): Likewise.
+
+	* stmt.c (assign_parms): If 1st parm named `__builtin_va_alist'
+	came in regs, pretend it came on stack.
+	Handle pretending a BLKmode var came on the stack.
+	If REG_PARM_STACK_SLOT, count stack space for each parm
+	even if the parm came in a register; and use that stack space
+	if the parm needs to be addressable or is BLKmode.
+	Rearrange to simplify conditionals.
+
+Thu Jun  9 01:21:29 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* local-alloc.c:
+	`qty_...' vectors' elements for hard-reg-numbers now aren't used.
+	`reg_qty' elements for hard-reg numbers now aren't used,
+	and the element for a pseudo is never a hard-reg number.
+	(local_alloc): No need to reset those elements.
+	No need to reset elements out of range of prev block's NEXT_QTY.
+	(reg_is_born, reg_is_set, wipe_dead_reg):
+	Divide labor in same way for hard regs and pseudos;
+	simplify using fact that locality-to-basic-block has been precomputed
+	and recorded in reg_qty; avoid refs to reg_qty[HARDREG].
+	(reg_is_born, wipe_dead_regs): Block-number arg no longer needed.
+
+	* local-alloc.c (combine_regs): Remove old code for tying hard regs
+	to pseudos; great simplification results.
+	Use find_regno_note, not regno_dead_p.
+
+Wed Jun  8 00:18:04 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload.c (subst_reg_equivs): Set a flag if anything is changed.
+	(find_reloads_address): Check that flag to avoid extra work.
+	Also check early for safe reg+const address and avoid work.
+
+	* reload.c (find_reloads): Use loops instead of bcopy.
+	Check early for insn with no real constraints, and return.
+	Also check for move from hard reg to hard reg and return.
+
+	* cse.c (canon_reg): Rewrite for speed; use a switch.
+	(cse_insn): Don't call find_reg_note if REG_NOTES is 0.
+
+	* cse.c (cse_insn): Store modified SET_SRC even if there's a REG_EQUIV.
+	Inhibition was needed when the SET_SRC was the only place to find the
+	equivalent value; now it is in the REG_EQUIV note.
+
+	* stmt.c (expand_asm_operands): If NINPUTS is 0, make vec of no elts.
+	* regclass.c (reg_scan_mark_refs): Don't lose if XVEC (x,i) is 0.
+
+Tue Jun  7 03:51:28 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stmt.c (assign_stack_local): If big-endian and MODE is narrow,
+	the bytes actually used are the least significant.
+
+	* parse.y (skip_white_space): Accept char as arg; let caller read it.
+	(yylex): Change call.
+	(check_newline): Return 1st nonwhite char after skipping lines.
+	(skip_white_space): Change call.
+	* toplev.c (compile_file): Change call.
+
+	* gcc.c: Pass -traditional to cc1.
+
+	* cse.c (cse_insn): Return very early for (set (reg) (call...)).
+	Mainly to save time.
+	(cse-insn) Old code to add REG_WAS_0 note wasted time but did nothing.
+
+	* expr.c (clear_pending_stack_adjust): Really do clear it,
+	if current fcn doesn't want to be inline.
+
+	* cse.c (cse_insn): Speedup: instead of safe_hash, use canon_hash
+	or HASHREG.
+
+Mon Jun  6 21:47:23 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* jump.c (rtx_renumbered_equal_p): Reject ADDR_VEC fast.
+
+	* cse.c (cse_insn): Ignore a REG_EQUIV or REG_EQUAL note if the
+	equivalent value is the same as the SET_SRC of the insn.
+
+	* flow.c (life_analysis): Don't call volatile_refs_p for a CALL_INSN;
+	just assume value is 1.
+	(propagate_block): Don't call mark_{used,set}_regs for a stack-pop
+	since if it isn't dead it has no effect on any useful life data.
+	(mark_set_1): Return quickly if setting stack-ptr, and almost as
+	quickly if setting any hard reg.
+	(mark_used_regs): Likewise for refs.
+	Also don't scan the vector of an ADDR_VEC or ADDR_DIFF_VEC.
+	(volatile_refs_p): Likewise.
+
+	* varasm.c (output_constant): Discard NOP_EXPR and CONVERT_EXPR
+	in integer case (they were for casting a pointer).
+
+	* parse.y (compstmt_or_error): Parse a compstmt after ignoring error.
+	Use this for fctn body so that an error after store_parm_decls
+	won't recover to xdecls and call store_parm_decls again.
+	Typical cause was missing semi at end of last parmdecl.
+
+	* parse.y: Add missing semicolons in actions.
+	(yylex): Don't use yylloc.
+
+Sun Jun  5 16:14:40 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* typecheck.c (build_array_ref): Check arg types here, to make
+	error message more accurate (not about "addition").
+
+Thu Jun  2 02:41:40 1988  Richard Stallman  (rms at rice-krispies.ai.mit.edu)
+
+	* cccp.c (collect_expansion): `#' isn't special if -traditional.
+
+	* dbxout.c (dbxout_parms): Don't output a regparm symbol
+	unless the parm got a hard reg assigned.
+
+	* tm-encore.h (ASM_OUTPUT_DOUBLE): Use 0f... not 0d...
+
+	* tm-vax.h (CHECK_FLOAT_VALUE): Define this.
+
+Wed Jun  1 17:13:00 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (expand_call): Have sequence points between args.
+
+Tue May 31 00:27:06 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expmed.c (store_fixed_bit_field): Avoid shifting by 32.
+	* cse.c (fold_rtx):
+	* symout.c (subrange_p):  likewise.
+
+	* local-alloc.c (block_alloc): If operands 1 and 2 commute,
+	try tying output to operand 2 if operand 1 won't do.
+
+	* toplev.c (compile_file): Pass main_input_file to symout_init.
+
+	* tree.c (build_real, build_real_from_int_cst):
+	Call CHECK_FLOAT_VALUE if it's defined, to report out-of-range values.
+
+	* tree.c (build_real, build_real_from_int_cst): New 1st arg TYPE.
+	* parse.y (yylex): Pass this arg; requires parsing suffixes first.
+	* fold-const.c (fold, combine, fold_convert): Pass this arg.
+	Handling of float binops in `combine' simplified.
+
+	* tm-encore.h (CPP_PREDEFINES): Remove -Dencore since CC lacks it.
+
+	* final.c (output_source_line): Let ASM_OUTPUT_SOURCE_LINE
+	be used for SDB also.
+
+Mon May 30 00:21:15 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cse.c (insert): Was inserting in wrong place in list.
+	(exp_equiv_p): Was failing to check validity when x == y.
+
+	* tree.c (build_pointer_type): Handle saveable_obstack
+	like current_obstack.
+
+	* decl.c (finish_decl): Error in test for zero-size array warning.
+
+	* reload.c (find_equiv_reg): New arg MODE specifies mode in which
+	an equivalent value is needed.  Equivalence must be good in that mode.
+	In addition, notice overlap with multiword register modes.
+	Simplify, knowing that registers have already been renumbered.
+	It was invalidating memory-goals too easily; setting a reg
+	only invalidates memory-goal if its address varies.
+	* reload.c, reload1.c, jump.c: Calls pass the new argument.
+
+	* cccp.c: For correct ANSI, must reject `$' in identifiers.
+	(dollars_in_ident): Variable says whether to allow them.
+	(rescan): Handle `$' as randomchar if that's 0.
+	(main): dollars_in_ident is set to 0 by -$, to 1 by -traditional.
+	(rescan, do_define): Delete former pedantic warnings for `$'.
+	(initialize_char_syntax, initialize_builtins): Inits split to two
+	functions; former is called after options are scanned
+	so `$' is in is_idchar conditionally.
+	* gcc.c: For -ansi, pass -$ to cccp.
+	* toplev.c, flags.h: Define dollars_in_ident.
+	* parse.y (yylex): Treat $ as punctuation unless dollars_in_ident.
+	Delete old pedantic warning about $.
+	* tm-vms.h: Define DOLLARS_IN_IDENTIFIERS as 1.
+
+	* cccp.c (rescan): Preprocessing numbers can have signs, after `e'.
+
+	* integrate.c (expand_inline_function): Abort, don't return failure,
+	if max_regno is too low.  I believe this can't happen.
+
+	* typecheck.c (build_binary_op_nodefault):
+	For ordered comparisons, no pedantic warning about void *.
+	For MAX, MIN, ditto, and also don't allow pointer vs 0.
+
+	* typecheck.c (build_unary_op): Don't allow pointer for +.
+
+	* typecheck.c (convert_for_assignment): 
+	Add missing warning for	case of unrelated pointer types.
+	Change criteria for new ANSI C draft.
+
+	* optabs.c (expand_binop): Don't set unused target_is_not_an_operand.
+
+	* fold-const.c (fold_convert): Don't set unused inprec, outprec.
+
+	* emit-rtl.c, parse.y: Delete unused var.
+
+	* stor-layout.c (add_vc_sizes): Unused function deleted.
+	* loop.c (constant_high_bytes): #if 0 this unused function.
+
+	* gcc.c (fatal): Add missing arg to delete_temp_files.
+
+	* cccp.c (dump_defn_1): Add missing arg to skip_quoted_string.
+
+	* reload.c (find_reloads): If constraints don't fit in an `asm',
+	print error instead of aborting.
+
+	* regclass.c (reg_class_record): Ignore `&' in constraint.
+
+Sun May 29 00:20:23 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Makefile: Run ranlib only if /usr/bin/ranlib exists.
+	Add comment saying what to do on system V.
+
+	* tree.c (suspend_momentary): Switch to the saveable_obstack
+	for the sake of inline functions.
+
+	* flags.h (enum debugger): New enum for write_symbols.
+	* toplev.c, varasm.c, final.c: Use the enum constants where appro.
+	Add calls to sdbout paralleling the calls to dbxout;
+	put each in the appropriate conditional {SDB,DBX}_DEBUGGING_INFO.
+
+	* toplev.c (main): Delete -noreg option; it's now the default.
+	Make -O an alias for -opt.  Rename -g to -gg.  -g is alias for -G.
+	Accept and ignore -Wtrigraphs.
+	* gcc.c: Simplify the specs.
+
+	* toplev.c (compile_file), tm-*.h:
+	ASM_FILE_START is now a statement, not just a string to be output.
+	Output it *after* determining the real source file name.
+
+	* fold-const.c (fold): Simplify x >= CST to x > CST-1 (CST positive).
+	To simplify this, canonicalize relationals to put constat last.
+
+	* decl.c (duplicate_decls): Make a 2nd errmsg to show previous decl.
+
+	* cccp.c (file_size_and_mode): Delete temporary VMS bootstrap patch.
+
+	* tm-att386.h: New file.
+
+	* decl.c (pushdecl): Warn if a local `extern' decl precedes
+	a file-scope `static' decl.
+
+	* expr.c (expand_call): No warning for failure to inline.
+
+	* expmed.c (extract_bit_field): copy operand 1 of extv or extzv
+	into register if memory isn't allowed.
+
+Sat May 28 02:10:56 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gnulib.c, Makefile: Delete va_end.
+
+	* final.c, symout.c: Check DBX_DEBUGGING_INFO, not NO_DBX_FORMAT.
+
+	* genemit.c (gen_expand): Notice a CALL inside a PARALLEL.
+
+	* regclass.c (init_reg_sets_1): Part of init_reg_set is put in this
+	new fn which is called after options are scanned.
+	Now CONDITIONAL_REGISTER_USAGE can depend on the options.
+	(fix_register): Just alter the data that init_reg_sets_1 will look at.
+
+	* reload1.c (reload): Don't complain if two different but tieable
+	modes require groups of the same regclass (assuming same size group).
+
+	* cccp.c: Add 3rd arg to all `open' calls.
+
+	* parse.y (check_newline): Typo prevented ignoring whitespace.
+
+	* cccp.c (perror_with_name): fprintf had harmful extra arg.
+
+	* cccp.c (main, trigraph_pcp): -Wtrigraphs means warn if any trigraphs.
+
+	* emit-rtl.c (gen_sequence): If LEN is 1, avoid looking at PATTERN
+	of something that doesn't have one.
+
+	* reload1.c (alter_frame_pointer_addresses): frame pointer can
+	occur by itself, not just inside a PLUS.
+	(reload): Call eliminate_frame_pointer before reload_as_needed.
+	Otherwise the latter can make reload insns that copy the frame ptr
+	to a data reg, but 68k can't copy sp+const to a data reg.
+
+	* decl.c (implicitly_declare): Always save the implicit decl
+	permanently.  Reuse an old one if it exists.
+	* tree.c (resume_temporary_allocation): Used after `end_temporary...'
+	to go back to temporary allocation.
+
+	* stor-layout (layout_{type,decl}): Call variable_size.
+	(variable_size): Turn a size into a SAVE_EXPR and either compute
+	it right away or put it on a list to be computed later.
+	(get_pending_sizes): Return that list and clear it out.
+	* stmt.c (expand_start_function): Tell `variable_size' to compute
+	sizes right away, and compute those saved on the list.
+	(expand_end_function): Tell it to put them on a list.
+
+Fri May 27 00:02:34 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* dbxout.c (dbxout_symbol): For local static var, use 'V', not 'v'.
+
+	* gcc.c (main): Don't handle SIGHUP or SIGTERM if shell ignored it.
+
+	* Makefile, gcc.c: Propagate Make var `libdir' to gcc search path.
+
+	* expr.c (expand_expr): a PARM_DECL with no rtl can occur in size of
+	`a' in `foo (a,i) int i; struct {int x[i];} a;', so report an error.
+
+	* flow.c (insn_dead_p): insn that makes stack bigger is never dead.
+	* combine.c (try_combine): Don't splice out stores into stack ptr.
+
+	* reload.c (find_equiv_reg): Test given regno for OVERLAPPING_REGNO_P.
+
+	* varasm.c (assemble_variable): Use saveable_obstack for allocation.
+
+Thu May 26 01:17:00 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* integrate.c (save_for_inline): Clear unused slots in parmdecl_map.
+	(There may be some non-parm regs below max_parm_regno.)
+	* integrate.c (copy_for_inline): Don't crash if parmdecl_map elt is 0.
+
+	* Don't fail to output a static inline function that was referenced
+	via a local extern decl before its definition.
+	* expr.c (expand_call): If need to mark a fcn decl addressable,
+	mark the identifier addressable also.
+	* typecheck.c (mark_addressable): If marking fcn addressable,
+	mark the identifier as well.
+	* decl.c (start_function): If identifier was marked addressable,
+	propagate it to the function.
+
+	* parse.y (yylex): Check for ERANGE after atof is called.
+	(Sun doesn't report ERANGE.)
+
+	* loop.c (may_trap_p): Any floating arithmetic may trap.
+
+Wed May 25 00:03:34 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* parse.y: Delete `noalias'.
+	(asm_operand): Don't allow this to be empty.
+	(asm_operands): Do allow this to be empty.
+
+	* reload.c (operands_match_p): Don't let REG and SUBREG match
+	if the reg isn't a hard reg.
+	No longer nec. to check reg_renumber, now that reload
+	substitutes the hard regno.
+
+	* reload1.c (reload): Counting existing spilled groups,
+	check HARD_REGNO_MODE_OK so we don't get fooled by an odd-even pair.
+	Spill entire need for new groups before spilling any solitary regs.
+	Reg already counted against max_nongroups can't become part of a group.
+	(new_spill_reg): Do bookkeeping associated with a new spill-reg.
+	(n_spills): This var is now static, no longer passed as arg
+	within the file.
+
+	(reload_reg_class_lower): Handle all group-reloads before solitaries.
+	(choose_reload_targets): therefore #if 0 the special code for
+	finding solitary registers that aren't suitable for groups.
+	But fix two bugs in it: braino deciding whether a reload
+	is looking for 1 register (not a group).  Use CLASS_MAX_NREGS.
+	Also braino deciding whether a spill reg can be in a group.
+	Did not fix bug that it fails to test HARD_REGNO_MODE_OK,
+	so it might split up an even-odd pair.
+
+	* vax.md: Special patterns for 8 and 16-bit fields, to make
+	move-insns (like the ones for the 68k).
+
+	* tree.c (convert_to_integer): Pass truncation down thru COND_EXPR
+	as through a binary operator.
+
+	* typecheck.c (build_cond_expr): If unpromoted operand types match,
+	don't promote them--let containing expression promote (just once).
+
+Tue May 24 14:46:26 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* combine.c (subst): Simplify (subreg (sign_extend X) 0).
+
+	* tm-hp9k320.h: Delete NO_DBX_FORMAT.
+	* Most tm...h files: Define DBX_DEBUGGING_INFO.
+	* dbxout.c: Change conditional to DBX_DEBUGGING_INFO.
+
+	* integrate.c (expand_inline_function): If inline fcn was declared to
+	return QI, but actually computes an SI, use SImode for INLINE_TARGET
+	but actually return a QI.
+
+	* varasm.c (force_const_mem): Failed to determine alignment bdry
+	from machine mode.
+
+	* jump.c (jump_optimize): Don't delete (move X Y) if X or Y is a
+	PRESERVE_DEATH_INFO_REGNO_P register.
+
+	* final.c (output_addr_const): In PLUS, output constant term last.
+
+	* final.c (final): Before outputting an insn, do FINAL_PRESCAN_INSN.
+
+	* final.c (next_block_index): No longer static.
+	(final): Add SDB_DEBUGGING_INFO cases for outputing NOTEs
+	for beginning and end of a block.
+	(output_source_line): Add SDB_DEBUGGING_INFO case for line number.
+	* varasm.c (assemble_function): Add code for SDB symbol output.
+
+	* gnulib.c: Allow config to override INTIFY.
+	New macro SFVALUE for data type to return a single-float in.
+
+	* combine.c (remove_death): No longer `static'.
+
+	* reload1. (choose_reload_targets): PRESERVE_DEATH_INFO_REGNO_P
+	selects hard regs for which death info should be updated for final.
+
+	* reload1.c (reload_as_needed): Let INSN_CLOBBERS_REGNO_P
+	prevent inheritance of certain reloads.
+
+	* reload.c (find_equiv_reg): Let OVERLAPPING_REGNO_P reject
+	an equiv reg.  Needed for funny float regs on 80387.
+
+	* cccp.c (do_ident): Define #ident as a no-op if IDENT_DIRECTIVE.
+	Warn if pedantic.
+	(do_sccs): Warn if pedantic.
+
+	* emit-rtl.c (restore_reg_data): Set cur_insn_uid--prevent duplicates.
+
+Sun May 22 12:25:06 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* Version 1.22 released.
+
+	* reload1.c (reload): Spilling isn't finished till max_nongroups is 0.
+
+	* tm-encore.h (PRINT_OPERAND): No `$' before a CONST.
+
+Sat May 21 13:08:54 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* fold-const.c (combine): Typo in MIN_EXPR, MAX_EXPR.
+
+	* reload1.c (reload): Was counting insn_groups as total size of groups,
+	not number of groups.
+	A new spilled group counts against group-needs of superclasses.
+
+	* parse.y (parmlist{,_or_identifiers}_1): In error case,
+	return a tree list just as in the other cases.
+
+Fri May 20 02:14:51 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* config-vax.h, config-m68k.h: If __GNUC__, use builtin-alloca.
+
+	* genpeep.c (match_rtx): Generated code was testing the wrong rtx
+	when testing an int or string at a nonzero index in the rtx.
+
+	* reload.c (find_reloads): Typo checking `modified' for conflict
+	with an earlyclobber.
+
+	* reload.c (find_equiv_reg): Reject stack ptr as return value.
+
+	* expr.c (expand_builtin): Alloca must do pending stack adjust.
+
+Thu May 19 13:01:01 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* flow.c (propagate_block): Skipping back across libcall didn't happen
+	due to failing to set PREV.
+
+	* expr.c (emit_library_call): Code to increment and decrement
+	current_args_size broke since emit_call_1 was changed to restore it.
+
+	* combine.c (try_combine): When i1 or i2 auto-incs a reg, don't combine
+	if i3 uses that reg.
+
+	* config-hp9k3.h: #define bcopy, bcmp, bzero here.
+	* conf-hp9k320.h: Delete file.
+
+	* integrate.c: Don't include strings.h--no need.
+
+	* stmt.c (expand_asm_operands): Don't make zero-length vectors.
+
+	* loop.c (scan_loop): After a fcn call, maybe-trap insns can't move.
+	The fcn call might exit and that would prevent the trap.
+
+	* reload1.c (reload): Set reload_first_uid to next uid to be used.
+	* reload.c (find_equiv_reg): Use reload_first_uid to ignore insns
+	that are due to reloading--only if reload_reg_p is not 0 or 1.
+
+Wed May 18 22:11:20 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* typecheck.c (build_unary_op): Don't complain about array
+	as argument to `!'.
+
+	* decl.c (pushdecl): If locally declaring an extern function,
+	check the identifier's global value in case it's an inline function.
+
+Mon May 16 03:06:08 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* output-ns32k.c (output_shift_insn): New fn, maybe turn shift to adds.
+	(reg_or_mem_operand): Predicate for a non-immediate general_operand.
+	* tm-ns32k.h (CONST_OK_FOR_LETTER_P): Define letter K.
+	* ns32k.md: Use output_shift_insn for various addr insns that shift.
+	Don't allow nonexplicit constants in lprd, multiply or truncate insns.
+	Use reg_or_mem_operand for constraint in op1 of divide insns;
+	a constant there causes regclass to screw up.
+	Split alternative constraints on the bit-field insns to avoid
+	out-of-range operands in exts, inss.  Some cases of extraction
+	can be done faster via memory.
+
+	* flow.c (mark_set_1): When adding a REG_DEAD note, inc reg_n_deaths.
+
+	* dbxout.c (dbxout_type_def): Do nothing for {integer,char}_type_node.
+
+Sun May 15 00:56:44 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* tm-sequent.h, tm-ns32k.h, tm-encore.h (PRINT_OPERAND):
+	Was treating SF's as SI's.
+
+	* expr.c (emit_move_insn): Check all CONST_DOUBLEs for
+	LEGITIMATE_CONSTANT_P and put them in memory if not.
+
+	* local-alloc.c (combine_regs): Allow a reg to be tied to a qty
+	if the reg's class is contained in the qty's class
+	(as well as if the reg's class contains the qty's class as before).
+	Rename qty_reg_class to qty_min_class and make it the smallest
+	class of any reg tied to the qty.
+	(reg_class_subset_p, reg_meets_class_p, update_qty_class):
+	New subroutines to implement this.
+	(local_alloc): Init reg_qty to -1 for pseudos not in cur. basic block.
+	(reg_is_born): Abort if pseudo not in basic block has -2 in reg_qty.
+
+	* jump.c (rtx_renumbered_equal_p): Insist that modes of REGs match.
+
+Sat May 14 01:05:35 1988  Richard Stallman  (rms at lucky-charms.ai.mit.edu)
+
+	* stmt.c (expand_return): Empty frame frame_offset isn't nec. 0.
+
+	* expr.c (emit_call_1): Use stack_size_rtx everywhere appropriate.
+
+	* decl.c (init_decl_processing): Set sizetype to `unsigned long'
+	if `int' is less than a word.
+
+	* stddef.h (size_t, ptrdiff_t): Both are now long.
+
+Fri May 13 01:06:00 1988  Richard Stallman  (rms at lucky-charms.ai.mit.edu)
+
+	* emit-rtl.c (gen_lowpart): Handle non-lowpart subreg as arg.
+
+	* recog.c (register_operand): VOIDmode means allow any mode.
+	(immediate_operand, nonmemory_operand): Likewise.
+
+	* emit-rtl.c (classify_insn): Update for changed CALL_INSN format.
+	(emit): New function to emit an rtl pattern as the right kind of insn.
+	* jump.c (simplejump_p): No longer static.
+
+	* genemit.c (gen_expand): For match_operand at top level, call `emit'.
+	Use `emit_call_insn' when appropriate.
+	(gen_exp): Handle rtx's that contain strings.
+
+	* final.c, symout.c: If not NO_DBX_FORMAT, include stab.h to get the
+	N_... symbols.  Use their default definitions only if they're undef.
+
+	* expr.c (expand_call) [no PUSH_ROUNDING]: Always set argblock
+	if there are any stack-passed arguments.
+
+	* typecheck.c (build_unary_op): Mark all increment-exprs volatile.
+
+	* recog.c (reg_renumbered_fits_class_p): Delete private copy of
+	reg_class_contents.
+
+	* reload1.c (forget_old_reloads): Handle PARALLEL case by recursion.
+	Explicit store into a spilled reg invalidates old reloaded contents;
+	this can occur when we drop through into a basic block whose need was 0
+	(and so whose local pseudos were not spilled).
+
+	* gcc.c (main): If -v, print gcc's own version; also no error msg
+	if no input files.
+
+	* loop.c (may_trap_p): Mem ref to nonconstant address may trap.
+	(scan_loop): Check may_trap_p only when insn is in other respects ok.
+
+	* cexp.y: #include config.h (for decl of alloca on some machines).
+
+Thu May 12 17:24:19 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* regclass.c (regclass): When inserting an insn at start of block,
+	update basic_block_head.
+
+Wed May 11 00:47:09 1988  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+	* stmt.c (assign_parms): DECL_OFFSET should be offset as passed
+	(not including big-endian width-change correction).
+
+	* typecheck.c (shorten_compare): Set unsignedp[01] right in case
+	where get_narrower makes no change.
+	(build_binary_op_nodefault): Likewise for shortening shifts.
+
+	* stmt.c (expand_end_case): Use type_for_size to get the type
+	to convert the index to, since `int' is wrong if -mshort.
+
+	* decl.c (grokdeclarator): Don't check PARM type for completeness.
+	(grokparms): If fn definition, check all parm types for completeness.
+	(store_parm_decls): Likewise.
+
+Tue May 10 22:42:13 1988  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+	* typecheck.c (store_init): For invalid init, store error_mark_node.
+	* varasm.c (assemble_variable): Ignore error_mark as an init.
+	* stmt.c (expand_decl): If init is error_mark, init to 0 if possible.
+	This avoids a spurious "uninitialized variable" warning.
+
+Sun May  8 17:08:07 1988  Richard Stallman  (rms at lucky-charms.ai.mit.edu)
+
+	* tm-hp9k320.h: Define STRUCTURE_SIZE_BOUNDARY.
+
+	* decl.c (get_parm_info): Replaces get_parm_types.  Returns a tree_list
+	containing parmdecls and tag list as well as type list.
+	(grokparms): Accept that tree_list as argument.
+	(grokdeclarator): Calling grokparms, say "not a definition" for the
+	function declarators for arg or value types within a definition.
+
+	* parse.y: Call get_parm_info.
+	(parmlist_or_identifiers): If identifiers, make a tree_list
+	like the one get_parm_info returns.
+
+Fri May  6 16:44:19 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* m68k.md (casesi): Delete template aside from match_operand's.
+
+	* tm-encore.h: New file from Robert Brown.
+
+	* ns32k.md: Use %c in some addr insns.
+	(tst*): Use {d,f,}const0_rtx to make the constant 0; OS-independent.
+	(call, call_value): Use %? before address in a bsr.
+
+	* output-ns32k.c (print_operand_address): To output a local label,
+	use `output_asm_label'.
+	Make SEQUENT_ADDRESS_BUG conditionals happen at compile time.
+
+	* tm-ns32k.h: Delete SEQUENT_HAS_FIXED_THEIR_BUG.
+	(PRINT_OPERAND): Output nothing for `%?'.
+	* tm-sequent.h: (PRINT_OPERAND): Output nothing for `%?'.
+
+	* final.c (output_asm_label): No longer `static'.
+
+Thu May  5 09:03:37 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* explow.c (memory_address): Ignore flag_force_reg unless optimize.
+	Also ignore it for addresses of stack slots (avoid invalid REG_EQUIVs).
+
+	* typecheck.c (digest_init): If traditional, allow `char x[100]=0;'.
+
+	* tree.c (get_unwidened): Don't alter a COMPONENT_REF if
+	innerprec equals the precision of the existing type.
+	It was changing pointers to integers.
+
+	* m68k.md (movdi): Put all fpregs in separate constraint alternatives
+	and handicap them so spill reg won't be an fp reg.
+
+	* parse.y (yyerror): Use the arg as part of the error message.
+
+	* decl.c (start_function): Give the RESULT_DECL type int rather
+	than char or short.
+	* typecheck.c (c_expand_return): Convert value from fn's return type
+	to the RESULT_DECL's type.
+
+	* Avoid generating dbx xrefs to enums, since dbx loses on them.
+	Do this by outputting all types in order of definition.
+	This is done only for top-level types; problem remains for local ones.
+
+	* decl.c (finish_decl): Do rest_of_decl_compilation for TYPE_DECLs.
+	* toplev.c (rest_of_decl_compilation): Do dbxout_symbol for them.
+
+	* dbxout.c (dbxout_symbol): Check DECL_RTL only for fns and variables.
+	For a TYPE_DECL, ignore it if the type was already output
+	and its preferred name is the TYPE_DECL.  Else output type in full.
+
+	* decl.c (pushdecl): Don't prefer typedef names to type tag names.
+
+	* stor-layout.c (chain_type): Build chain in forward order.
+
+
+	* tm-3b1.h (ASM_OUTPUT_CASE_LABEL): Error getting length of table.
+
+	* tm-3b1.h: #define SGS_3B1 was missing.
+
+	* typecheck.c (build_compound_expr): Ignore non-volatile subexprs.
+
+	* fold-const.c (fold): Simplify (unsigned) foo >= 0, etc.
+
+	* stor-layout.c (layout_type): Set TYPE_PRECISION of ptr types.
+
+Wed May  4 08:06:25 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* parse.y: Don't use the Bison @ construct, since it makes parser slow.
+
+	* decl.c (finish_function): Delete FILENAME and LINE args.
+
+	* typecheck.c (digest_init): No pedantic warning for array="string".
+
+Tue May  3 09:09:30 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* toplev.c (main): Ignore `-Wcomment'.
+	* gcc.c: Pass -Wall to cpp (which treats it like -Wcomment).
+
+	* tm-isi68.h: Greatly simplified; now works only with GAS.
+
+	* tm-m68k.h (EMPTY_FIELD_BOUNDARY): now 16 (right on Sun, ISI and HP).
+	* tm-sun3.h: No need to redefine it.
+
+	* decl.c (finish_struct): Don't ever make DECL_ALIGN smaller.
+
+	* decl.c: Rename min, max to MIN, MAX.
+
+	* typecheck.c (convert_for_assignment): Avoid warning if assigning
+	a `void *' from a `const void *'.
+
+	* combine.c (FAKE_EXTEND_SAFE_P): Turn off for mem refs; avoid faults.
+
+Mon May  2 07:28:27 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* tm-vax.h: Support -mg switch to use g-float instead of d-float.
+	New macros TARGET_G_SWITCH, ASM_DOUBLE_CHAR.
+	Changes in TARGET_SWITCHES, ASM_OUTPUT_DOUBLE.
+	Define code `#' for PRINT_OPERAND.
+	* vax.md: use `#' in opcodes for doubleword float.
+
+	* tm-vax.h: Define UDIVSI3_LIBCALL and UMODSI3_LIBCALL.
+
+	* cccp.c (main, do_include): Implement -I- switch.
+
+	* jump.c (jump_optimize): When hunting NOTE_INSN_FUNCTION_END,
+	skip final RETURN (found on the vax).
+
+	* toplev.c (main): -Wall is equiv to all -W switches combined.
+
+	* stmt.c (expand_decl, expand_end_bindings,
+	expand_{start,end}_function).  The -noreg treatment of `register' vars
+	is extended to vars used as addresses of vars in memory (varying-size
+	structures).
+	(use_variable): Emit USE for regs used in specified rtx.
+
+	* cse.c (fold_cc0): Stack-frame addresses are always nonzero.
+	(fold_rtx): 0200 bit in prev_insn_cc0 means only zeroness is known.
+
+	* parse.y (parmlist): poplevel needs 3 args.
+
+Sun May  1 07:20:34 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* decl.c (start_function): typo checking for incomplete return type.
+
+	* emit-rtl.c (restore_reg_data): If a pseudo appears nowhere,
+	don't leave its slot empty; create a pseudo for that slot.
+
+	* Version 1.21 released.
+
+	* expr.c (expand_call): Merge duplicate code for structure_value_addr.
+
+	* emit-rtl.c (restore_reg_data): Delete error check; it's legit for
+	a pseudo reg to appear nowhere in the rtl.
+
+Sat Apr 30 07:35:31 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* integrate.c (copy_rtx_and_substitute): Fix typo for arg_pointer_rtx.
+
+	* decl.c (poplevel): Undo previous change with #if 0.
+
+	* stmt.c: `struct nesting' now records the depth on the stack.
+	Each expand_start... must update and record the depth;
+	each expand_end... uses macro POPSTACK to pop.
+	This way, if a level isn't explicitly popped, it won't cause
+	circular structure.
+
+	* dbxout.c (dbxout_type): Replace with main variant only if incomplete.
+
+	* typecheck.c (build_unary_op): Test of `pedantic' was backwards.
+
+	* expr.c (STACK_BYTES): Typo in definition.
+
+	* typecheck.c (build_binary_op_nodefault): Rename code1 to code0,
+	and likewise for code2, tt1, tt2.
+
+	* expr.c (expand_call): Wrong arg order for warning_with_decl.
+
+Fri Apr 29 08:41:06 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* integrate.c (copy_decl_tree): New arg is depth in recursion.
+	Always discard the outermost LET_STMT being copied; never discard any
+	others.  This way the copied LET_STMTs correspond to the copied NOTEs.
+
+	* varasm.c (decode_rtx_const): For SYMBOL_REF, use string address
+	not address of the rtx.  Library fns have only one copy of the name
+	but many copies of the SYMBOL_REF.
+
+	* expr.c (emit_call_1): New arg OLD_ARGS_SIZE is used to reset
+	current_args_size.
+	(emit_library_call, expand_call): Pass new arg; don't restore it here.
+
+	* flow.c (life_analysis): Don't mark sp live at end if fn is empty.
+
+	* parse.y (parse_or_identifiers_1): Handle `error' in here, not in
+	callers notype_declarator etc.  Also read the closeparen here.
+
+Thu Apr 28 12:43:52 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* expmed.c (expand_shift): In extzv strategy, handle the operand
+	predicates for operands 0, 1 and 3.  (Not needed for 2.)
+	* vax.md: extzv pattern for SImode op1 must recognize general_operand
+	since the pattern named "extzv" allows them.
+
+Wed Apr 27 00:52:44 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* expr.c (emit_call_1): New arg NEXT_ARG_REG describes # regs
+	used for passing args.
+	(emit_library_call, expand_call): Provide that argument.
+
+	* explow.c (round_push): New fn: round arg up to STACK_BOUNDARY.
+	* expr.c (expand_builtin): Use round_push on size for __builtin_alloca.
+	* stmt.c (expand_decl): Likewise for variable-size objects.
+	* expr.c (expand_call): Likewise for args_size.var.
+	Also use STACK_BOUNDARY to round a constant arg-block size.
+	Pass emit_call_1 that rounded value.
+	(emit_library_call): Round arg_size with STACK_BOUNDARY.
+	* tm-spur.h: Define STACK_BOUNDARY instead of ROUND_CALL_BLOCK_SIZE.
+	* tm-m68k.h: Define STACK_BOUNDARY as 16.
+
+	* expr.c (emit_call_1): Don't change current_args_size.
+	(emit_library_call, expand_call): Always restore current_args_size
+	to ambient value, after calling emit_call_1.
+
+	* tm-hp9k320.h: Don't define USG here.
+	* config-hp9k3.h: New file.  USG defined here.
+
+	* tm-3b1.h: #undef ASM_OUTPUT_ASCII (a defn came from tm-hp9k320.h).
+
+	* decl.c (grokdeclarator primarily): Cast all RID_... to (int) before
+	using them in arithmetic.  Placates CC on Sequent.
+
+	* emit-rtl.c (emit_jump_insn): Return proper value, for a SEQUENCE.
+	* emit-rtl.c (emit_call_insn): Handle SEQUENCE like emit_jump_insn.
+
+Tue Apr 26 02:41:26 1988  Richard Stallman  (rms at lucky-charms.ai.mit.edu)
+
+	* cccp.c (macroexpand): If traditional, don't disable called macro.
+	(macarg1): Was failing to count backslash-newline inside a string
+	in a macro arg as part of file's linenumber.
+
+Mon Apr 25 18:46:53 1988  Richard Stallman  (rms at lucky-charms.ai.mit.edu)
+
+	* jump.c (jump_optimize): Don't do April 20 optimization on first
+	iteration; let other simpler opts be done before this is considered.
+
+Sun Apr 24 02:45:28 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* tree.c (staticp): a CONSTRUCTOR can be static.
+
+	* varasm.c (output_constant_def): Always return memref, not address.
+
+	* decl.c (complete_array_type): New fn, make an array type complete
+	based on an initializer.
+	(finish_decl): Use complete_array_type.
+	* parse.y (expr_no_commas): When parsing a constructor,
+	Use complete_array_type	on constructors for incomplete array types.
+
+	* typecheck.c (digest_init, store_init_value,process_init_constructor):
+	It's now TREE_STATIC, not TREE_ADDRESSABLE, that records that all elts
+	in a CONSTRUCTOR are simple constants.
+	(digest_init): A CONSTRUCTOR with non-null type is treated as ordinary
+	expression, not as a braced initializer.
+	Allow init of an array from an array-valued expr; warn if pedantic.
+	* expr.c (expand_expr, CONSTRUCTOR case): Put in memory only if static.
+	Was making an extraneous level of MEM; output_constant_def does it all.
+
+	* typecheck.c (build_unary_op): Allow ADDR_EXPR of static CONSTRUCTOR.
+	(default_conversion): Likewise.
+	(initializer_constant_valid_p): Constructor is ok if static.
+
+	* gcc.c: Change -fnostd... to -nostd...
+	* cccp.c (main): Likewise.
+
+	* Everywhere: Use REG_NOTE_KIND to get the kind of a reg note.
+
+	* rtl.c (find_regno_note): New function.
+	* flow.c (flow_deadp): Deleted; caller uses find_regno_note.
+	* global-alloc.c (reg_dead_p): Deleted.
+	(global_conflicts): Use find_regno_note instead of reg_dead_p.
+
+	* final.c (final) Use find_reg_note to look for a REG_INC.
+	* combine.c (insn_has_inc_p): deleted; callers use find_reg_note.
+	(try_combine): Use find_reg_note whenever looking for a REG_INC.
+	(regno_dead_p, remove_death): Check the REG_NOTE_KIND before assuming
+	that the datum in it is a REG.
+	* reload1.c (reload): Use find_reg_note to find a REG_EQUIV.
+
+	* gcc.c: Don't delete .o files if not all compilations succeed.
+	(record_temp_file): New arg SUCCESS_ONLY--delete file only if succeed.
+	(delete_temp_files): New arg SUCCESS says compilation succeeded.
+	(store_arg): Now 3 possibilities for arg TEMPNAMEP; 2 = del on success.
+	(do_spec_1): For %d, set delete_this_arg to 2.
+
+	* decl.c (poplevel): Warn about any still-incomplete type-tags.
+
+Sat Apr 23 02:54:16 1988  Richard Stallman  (rms at rice-krispies.ai.mit.edu)
+
+	* expr.c (expand_builtin): For alloca, round arg up to multiple
+	of PARM_BOUNDARY.  Also to convert it to Pmode unless it already is.
+
+	* stor-layout.c (layout_union): Bug in 14 April change:
+	use caller-specified alignment as minimum, not as maximum.
+
+	* parse.y (skip_white_space): Avoid infinite loop on unterm. comment.
+
+Fri Apr 22 00:22:59 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* cccp.c: Text following #else or #endif is just a warning.
+	(rescan): Digit-case was dropping into the $-case; reorder.
+
+	* cccp.c (rescan): Comment start when -traditional was output as
+	`/*'; should be nothing.
+
+	* jump.c (jump_optimize): Fix prev change:
+	do nothing if range1end == range2end;
+	don't lose any NOTEs when splicing.
+
+	* flow.c (propagate-block): For CALL_INSN, clobber the call-used regs
+	only after mark_set_regs is done; avoids confusion about lifespan
+	of function value reg.
+
+	* gcc.c: Pass -Wcomment to cpp.
+
+	* cccp.c (main, rescan): If -Wcomment, warn if `/*' inside comment.
+
+	* decl.c (duplicate_decls): Ignore `inline' decl following definition.
+
+	* m68k.md (casesi): Split it up into subroutines, so insns emitted
+	by the call to memory_address (on 68000) come in the right place.
+
+	* combine.c (record_dead_and_set_regs): Notice storing in a SUBREG.
+
+	* integrate.c (expand_inline_function): Insn to copy a subroutine's
+	return-value was being output twice, once incorrectly.
+
+	* reload.c (find_equiv_reg): A stack-push insn does not invalidate
+	an equiv for a goal in memory.
+	Any other write to memory does invalidate any goal in memory
+	(PARALLEL case failed to check for this).
+
+	* expmed.c (expand_shift): In the extzv clause, force shifted value
+	out of memory if -fforce-mem.
+
+	* print-tree.c (prtypeinfo): Some attributes were missing.
+	(dump): In ..._TYPE nodes, ignore the TREE_CHAIN field.
+
+	* cse.c (note_mem_written): Pushing on stack does not invalidate mem.
+
+	* vax.md (extv/andl peephole opt): Made incorrect code if output was
+	pushed on stack.  Added special case code.
+	(extv, extzv for SImode operand): Require register_operand.
+
+Thu Apr 21 00:24:52 1988  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+	* stmt.c (assign_parms): Round current_function_pretend_args_size up.
+
+	* integrate.c: `pushlevel' arg was missing.
+
+	* dbxout.c (dbxout_type): Undo rest of March 29 change:
+	When a named type is first seen inside another type, output an xref
+	and let the real definition come out later.
+	It is strange that Sun dbx has sometimes appeared to demand
+	one strategy and sometimes appeared to demand the other.
+
+	* typecheck.c (convert_for_assignment): Allow conversion to or from
+	`const void *', etc., unless pedantic.
+
+	* decl.c (get_parm_types): For `foo (void){}', set last_function_parms
+	to nil so store_parm_decls won't lose.
+
+	* combine.c (subst): (plus (plus X N) -N) => X.
+
+	* explow.c ({anti_,}adjust_stack): Don't make a copy of
+	`stack_pointer_rtx'.
+
+	* integrate.c (expand_inline_function): Typo testing for the
+	USE that indicates a CALL_INSN's value is being returned.
+
+	* expr.c (expand_builtin, alloca case): Copy arg to reg before
+	adjusting stack, to avoid invalid insns on some machines.
+
+Wed Apr 20 00:15:14 1988  Richard Stallman  (rms at rice-krispies.ai.mit.edu)
+
+	* typecheck.c (build_binary_op_nodefault): When shortening,
+	get_narrower may make no change because ARGn is already narrow.
+	In this case, set UNSIGNEPn from ARGn's type.
+
+	* typecheck.c: Rename ARG1,ARG2 to ARG0,ARG1, etc. in several fns.
+
+	* tm-vax.h: Turn off continuation on DBX output.
+
+	* typecheck.c (build_function_call): Don't change __builtin_ffs to an
+	FFS_EXPR.  Note that __builtin_alloca has always made a CALL_EXPR.
+	* expr.c (expand_builtin): New function expands all CALL_EXPRs that
+	are really built-in functions.
+	(preexpand_calls): Do nothing to a CALL_EXPR for a built-in function.
+
+	* loop.c (count_loop_regs_set): Don't move a reg that is in a CLOBBER.
+
+	* stupid.c (stupid_mark_refs): Was getting hard reg's mode from
+	the wrong place.
+
+	* rtl.c (note_stores): Typo in checking vector elt for SET vs CLOBBER.
+
+	* stmt.c (expand_end_bindings): If restoring stack level, 
+	first do pending stack adjust (so it won't be done erroneously after).
+	(expand_goto): likewise.
+
+	* rtl.h: LABEL_NUSES was an rtx.  It should be an int.
+	* stmt.c (expand_label, expand_goto): Delete frobbing with LABEL_NUSES;
+	the value stored there was the same as the CODE_LABEL rtx.
+
+	* jump.c (jump_optimize): Detect  if (foo) ...; else { ... break;}
+	and change to  if (! foo) { ... break;} else ...; so can drop out.
+	(next_label): New fn returns the next label after given insn.
+
+Tue Apr 19 21:30:05 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* flow.c (insn_dead_p): Delete special handling for stack ptr.
+	(mark_set_regs, mark_used_regs): Likewise.
+	(life_analysis): Mark stack ptr live at end of fn if necessary.
+	(propagate_block): Mark stack ptr live leading up to a CALL_INSN.
+
+	* jump.c (jump_optimize): #if 0 around stack-adjust-deletion code.
+
+	* cse.c (fold_rtx): Change const_arg from an array to 3 separate
+	scalars for the first three operands.
+	Handle SIGN_EXTEND and ZERO_EXTEND.
+
+	* integrate.c (copy_rtx_and_substitute): If arg is 0, return 0.
+	(expand_inline_function): Separate vars for old pattern and new insn.
+
+	* expr.c (expand_call): Set TREE_ADDRESSABLE if call is not inlined.
+
+Tue Apr 19 02:25:22 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* Version 1.20 released.
+
+	* tm-ns32k.h: Define new reg class GEN_OR_FLOAT_REGS
+	so that GENERAL_REGS and FLOAT_REGS have a union.
+
+	* tm-ns32k.h (GO_IF_LEGITIMATE_ADDRESS): Recognize a stack-push.
+	* ns32k.md: Many constraints must now allow or reject pushes.
+	Delete the special patterns for pushing.
+
+Mon Apr 18 06:02:39 1988  Richard Stallman  (rms at rice-krispies.ai.mit.edu)
+
+	* reload1.c (forget_old_reloads): For a multiword hard reg,
+	forget old reloads for each word.
+
+	* reload.c (find_reloads): Typo in calling push_replacement.
+
+	* tm-ns32k.h (HARD_REGNO_MODE_OK): Failed to allow fp regs for SFmode.
+
+Sun Apr 17 01:21:35 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* tm-sequent.h (PRINT_OPERAND): Handle absolute integer memaddress.
+
+	* ns32k.md: Add DImode push insns.  Add QImode and HImode push insns.
+	Supply missing statement in movsf.
+
+	* dbxout.c (dbxout_type): Don't contin before 1st field of struct.
+
+	* dbxout.c (dbx_continue): Use DBX_CONTIN_CHAR instead of backslash.
+
+	* loop.c (scan_loop): Ov vax, the "loop-entry jump" can be a return,
+	in which case perhaps there is no label following it.
+	Detect phoniness of loop before looking for that label.
+
+	* decl.c (init_decl_processing): Builtin fn names start with `__'.
+
+	* typecheck.c (shorten_compare): Warn about constant result only in
+	cases like (char)x < 0x80, where old C compilers made it -0x80.
+
+	* vax.md: All jbs/jbc/jlbs/jlbc patters with op0 in SImode
+	must reject mode-dependent memory addresses.
+
+	* recog.c (mode_independent_operand): Test for general operand
+	that doesn't have a mode-dependent memory address.
+
+	* varasm.c (assemble_function): ASM_DECLARE_FUNCTION_NAME, if def,
+	is now responsible for outputting the function name as a label.
+
+Sat Apr 16 05:02:55 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* cccp.c (do_xifdef): Warn about punctuation or other junk in argument.
+	Warn about no argument.  If pedantic, warn if arg starts with digit.
+	If traditional, ignore all after first non-idchar and never warn.
+
+Thu Apr 14 01:12:59 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* integrate.c (expand_inline_function): Typo for addressable parms.
+
+	* cse.c (insert_regs): Copying half a DImode into half of another
+	does not make the two DImode regs equivalent.
+
+	* recog.c (general_operand): Was failing to accept symbol_ref:SI
+	when MODE arg was VOIDmode.
+
+	* expr.c (preexpand_calls): For RTL_EXPR, do nothing.
+
+	* decl.c (start_enum, build_enumerator): Remember default for next one
+	as a tree node (so the high-half isn't lost in a negative one).
+
+	* stor-layout.c (layout_{record,union}): Pay attn to initial value
+	of TYPE_ALIGN in computing final alignment.
+	(layout_union): Round size up to multiple of the alignment.
+
+	* decl.c (finish_struct): Don't alter size after type is laid out.
+	Instead, set TYPE_ALIGN before layout_type.
+
+	* reload1.c (choose_reload_targets): Introduce reg_has_output_reload.
+	If there are two separate reloads (one in and one out)
+	for the same (hard or pseudo) reg, always set reg_last_reload_reg
+	based on the output reload.
+
+Wed Apr 13 21:26:16 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* reload.c (find_reloads_address_1): Always barf if a "constant"
+	register is autoincremented.
+
+	* parse.y (structsp): suspend_momentary before start_enum;
+	else some nodes made by start_enum might be momentary.
+
+	* stmt.c (expand_start_case): New arg is nominal type for comparison
+	(which is the promoted type of the index expression).
+	(pushcase): Always convert VALUE to that nominal type
+	before validating it.
+	* parse.y (case stmt): Promote each case-value before pushcase.
+	* typecheck.c (c_expand_start_case): Promote the index-expr
+	to determine the nominal type, before get_narrower.
+
+Wed Apr 13 12:43:08 1988  Chris Hanson  (cph at kleph)
+
+	* tm-hp9k320.h: Define ASM_FORMAT_PRIVATE_NAME.  HPUX asm forbids
+	`.' in identifiers, so use `___' (there is some danger in this choice).
+
+Tue Apr 12 23:26:48 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* local-alloc.c (block_alloc): Make 1 extra slot in regs_live_at.
+
+	* stmt.c (optimize_bit_field): Function moved from reload1.c.
+	When need to generate a SIGN_EXTEND or ZERO_EXTEND, make it a separate
+	insn and use gen_extend_insn to make it.
+	* optabs.c (gen_extend_insn): New fn, construct body of an insn
+	to extend Y and store in X.
+
+Mon Apr 11 19:20:57 1988  Richard Stallman  (rms at rice-krispies.ai.mit.edu)
+
+	* decl.c (finish_decl): Error if static var has variable size.
+
+	* parse.y (yylex): Warn if int const is out of range.
+
+	* parse.y: New keyword __alignof.
+	* typecheck.c (c_alignof): Given a type, return its alignment in bytes.
+
+	* typecheck.c (c_sizeof{,_nowarn)): Don't return integer_one_node;
+	use build_int to make sure we get something with type `sizetype'.
+
+	* Support variable-sized structures (containing var-sized arrays).
+
+	* stmt.c (assign_parms): Handle parms whose size varies.
+	Use `memory_address' when constructing memrefs to args;
+	no need to set `invalid_stack_slot'.
+	Don't make a REG_EQUIV note for a scalar arg at variable offset.
+	* stor-layout.c (genop, build_int): No longer `static'.
+
+	* stor-layout.c (convert_units): Optimize ceil (ceil(x,2)*2, 4) etc.
+
+	* stmt.c (expand_decl): Don't abort if var-sized object has init.
+	Convert variable size from units of DECL_SIZE_UNIT to units of bytes.
+
+	* expr.c (emit_push_insn): Arg ARGS_SO_FAR is now an rtx.
+	Pay attention to ARGS_ADDR even if machine has push insns.
+	(expand_call): Handle variable-sized arguments.
+	If have any such, push entire arg-block in advance.
+	Record each arg's offset during first loop and don't change args_size
+	during the actual pushing loop; this way the actual pushing loop
+	works regardless of arg-order if arg-block was pushed in advance.
+	(push_block): Copy SIZE to reg unless it's a reg or constant.
+
+	* expmed.c (expand_divmod): If converting CEIL_DIV to FLOOR_DIV,
+	make new pseudo for incremented value, to help cse understand.
+
+Sun Apr 10 00:07:45 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* expr.c (emit_library_call): Two dumb bugs calling emit_call_1.
+
+	* dbxout.c (dbxout_symbol): Handle case of (MEM (REG frameptr)).
+
+	* cccp.c (skip_if_group): Ignore quote-chars if -traditional.
+	(rescan): If -traditional, don't output a space for a comment.
+	(handle_directive): If not -traditional, output a space for a comment.
+
+Sat Apr  9 21:26:51 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* decl.c (get_parm_types): `void' type is error, except as entire list.
+	* parse.y (parmlist_1): `void,...' is error.
+
+	* typecheck.c (pointer_int_sum, pointer_diff):
+	Use an integer type with at least POINTER_SIZE bits.
+	* expr.c (expand_expr, ARRAY_REF): Likewise.
+	* tree.c (type_precision): Prec of a pointer is POINTER_SIZE.
+	(convert_to_pointer): Directly convert any int w/ width==POINTER_SIZE.
+	Other int types convert via an int of that width.
+	(convert_to_integer): Pointers convert via an int of that width.
+
+	* decl.c (init_decl_processing): Use INT_TYPE_SIZE, if def,
+	to set width of `int' and `unsigned int'.
+	(make_index_type): Give new type the width of a long int.
+
+	* tm-m68k.h: Add new -mshort which controls TARGET_SHORT.
+	* tm-m68k.h: Define INT_TYPE_SIZE depending on TARGET_SHORT.
+
+Fri Apr  8 05:02:59 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* typecheck.c (require_complete_type): Fix typo in detection of `void'.
+	(build_function_call): Fix backward test to allow `void' values.
+
+	* dbxout.c (dbxout_tags): Output each tag once even if type is defined.
+
+	* m68k.md (movstrictqi): Reject addr-reg always, for both operands.
+
+	* tm-vax.h (STRUCTURE_SIZE_BOUNDARY): Make this always 8, for BSD.
+	* tm-ultrix.h: New file, overriding STRUCTURE_SIZE_BOUNDARY.
+	[This change has been taken out; tm-ultrix.h is now equivalent to
+	tm-vax.h.  I must have been confused when testing PCC.]
+
+	* integrate.c (expand_inline_function): Don't let inline_target
+	be nonzero in BLKmode.
+
+	* decl.c (grokdeclarator): Const array parm becomes ptr-to-const.
+
+Thu Apr  7 05:02:41 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* genoutput.c (bcopy, bzero): Renamed to mybcopy, mybzero
+	so variation in C library and config.h won't affect the results.
+	* genrecog.c (bzero): likewise.
+	* genextract.c (bcopy): Fn deleted; used only in a string constant. 
+
+	* varasm.c (force_const_mem): Fix typo in arg decl.
+
+	* toplev.c (compile_file): init_file with main_input_filename
+	so dbx output doesn't lack N_SOL symbols.
+
+	* cccp.c (rescan) [CPLUSPLUS]: Put out // comments as // comments.
+
+Wed Apr  6 14:06:38 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* expr.c: Delete SLOW_ZERO_EXTEND conditionals added March 3.
+	Now that enums types can be unsigned, this isn't needed.
+
+	* emit-rtl.c (emit_jump_insn): Handle SEQUENCEs.
+
+	* genemit.c (gen_expand): Use emit_jump_insn, emit_label, emit_barrier
+	when the insn rtl requires it.
+
+	* m68k.md (subsi3): Prefer to avoid reverse-subtraction alternative.
+
+	* stmt.c (expand_end_case): Let CASE_DROPS_THROUGH control what to
+	emit after the table.
+	* tm-vax.h: Define CASE_DROPS_THROUGH.
+
+Tue Apr  5 15:47:10 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* genemit.c (gen_exp): Handle vectors within exprs.
+
+	* stmt.c (expand_end_case): Pass 5th arg (default_label) to gen_casesi.
+	* m68k.md: Define casesi insn rather than tablejump insn.
+
+	* cccp.c (skip_if_group): For validate_else, pass BP (end of cmd name).
+	Don't call validate_else if do_else or do_endif will detect error.
+
+	* Bug: inline fcns can refer to the return reg with a strict_low_part
+	which confuses expand_inline_function.  Fix is to change return reg
+	into inline_target *everywhere* except in or right after a call.
+	* integrate.c (copy_rtx_and_substitute): Delete special case for SET.
+	Replace return-value hard regs with INLINE_TARGET in all contexts.
+	(expand_inline_function): special handling for insn after a CALL_INSN
+	if it copies the function value out.
+	Allow notes and stack adjust insns to intervene
+	between the CALL_INSN and the value-copy.
+
+	* expr.c (emit_call_1): New name for gen_call_1.
+
+	* Bug: ({...}) insns were in wrong place for a subexpression
+	after a sequence point, as in x ? y : ({...}).
+	* tree.def: New tree-code RTL_EXPR holds a sequence.
+	* expr.c (expand_expr): Handle RTL_EXPR by emitting the sequence.
+	* stmt.c (expand_{start,end}_stmt_expr): Use emit_to_sequence
+	to make a sequence from everything within the ({...}).
+	(expand_{start,end,emit}_delayed_expr): Delete these functions.
+	* parse.y (`for'-statements): Don't call them; nothing special needed.
+
+	* parse.y (yylex): Handle syntax L"..." and L'...'
+	(combine_strings): Handle wide strings being combined.
+	* typecheck.c (digest_init): Reject wide string as init for char array.
+	Allow it for an int array, but don't allow a narrow string.
+	* decl.c (init_decl_processing): New var int_array_type_node.
+
+	* parse.y: Define keyword `noalias'.
+	* parse.h: Define RID_NOALIAS.
+
+	* typecheck.c (compparms): Not all parmlists match an empty one;
+	call `compparms1' to filter them.
+
+	* decl.c (groktypename): Remove special case for `void' as parameter.
+	(get_parm_types): Special case for list of one decl with type void.
+
+	* decl.c (build_enumerator): Give enum constants the type `int'.
+	Variable `current_enum_type' eliminated.
+	(finish_enum): No need to repeat `fixup_unsigned_type'
+	since the precision has not changed.
+	* stor-layout.c (layout_type): Allow enum types to be unsigned.
+
+	* emit-rtl.c (unshare_all_rtl): Unshare contents of all reg-notes.
+
+	* parse.y (check_newline): filename is optional in #-lines.
+
+Mon Apr  4 14:36:54 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* typecheck.c (shorten_compare): When data type determines the value,
+	eval the nonconstant arg anyway if it has side effects.
+	(build_conditional_expr): When merging `foo *' with `void *',
+	also allow `const void *'.  Result type has merged set of qualifiers.
+	(qualify_type): Merge qualifiers of two types.
+
+	* decl.c (get_parm_types): Store any tags defined in parmlist
+	into `last_function_parm_types'.
+	(store_parm_decls): Add those tags into the current binding level.
+
+	* parse.y (parmlist, parmlist_or_identifier): Pass 0 to pushlevel;
+	no binding levels in C should be transparent to tags.
+
+	* 3b1 support:
+	* tm-3b1.h: New file.
+
+	* m68k.md: Add HPUX_ASM conditionals for shift-by-24-and-compare.
+	In one of the dbra patterns, a HPUX_ASM conditional was backwards.
+	(movhi) [SGS_3B1]: Define the LI... label as in MIT syntax.
+	(addsi3) [SGS]: Syntax for base-displacement differs from MOTOROLA.
+	(subsi3) [SGS]: likewise.
+	(tablejump) [ASM_OUTPUT_CASE_LABEL]: Use 6, not 2, as displacement.
+	This assumes ASM_OUTPUT_CASE_LABEL on 68k is used for a `swbeg'.
+
+	* final.c (final): Use ASM_OUTPUT_CASE_LABEL (if defined) to output
+	any CODE_LABEL followed by an ADDR_VEC or ADDR_DIFF_VEC.
+	It has 4 args; 4th is the insn which is the ADDR_VEC or ADDR_DIFF_VEC.
+
+	* tm-*.h for 68000 (PRINT_OPERAND_ADDRESS): For unscaled indexing in
+	fetch from a branch table, use L and LI symbols as in the scaled case.
+
+	* cccp.c: If SCCS_DIRECTIVE, define #sccs as no-op.
+
+	* integrate.c (output_inline_function): Real start of function
+	is FIRST_PARM_INSN, not FIRST_FUNCTION_INSN.
+
+	* tree.c (build_string): String contents must be saveable (for
+	inline fcn).
+
+	* cse.c (cse_insn): Don't forget to set dest_hash_code when dest
+	is a stack slot (and so its address is not being optimized).
+
+	* emit-rtl.c (restore_reg_data_1): reg_rtx_no must be 1+ largest REGNO.
+
+	* m68k.md (non-SImode bit-field insns): Change constraint to "o,d"
+	so a nonoffsetable memref is handled by reloading its address
+	but a register can still be handled.
+
+	* toplev.c (main): Execute OVERRIDE_OPTIONS, if it's defined.
+
+Sat Apr  2 00:55:21 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* expr.c (convert_move): Handle a SUBREG in direct truncation case.
+
+	* cse.c (lookup_for_remove): Don't test machine mode of registers:
+	Storing in (REG:SI 0) invalidates (REG:DF 0).
+
+	* decl.c (pushlevel): New arg, nonzero means this level is for
+	variables only, not for tags.  All calls changed.
+	(lookup_tag): Even if THIS_LEVEL_ONLY, skip variables-only levels.
+	(pushtag): Define it in the first non-variables-only level.
+
+	* dbxout.c (dbxout_type): Undo Mar 29 change, in the DBX_NO_XREFS case.
+	So now each struct or union will contain only nameless cross-refs
+	to any others it uses.  The prior change is still in effect when
+	DBX_NO_XREFS is not defined.
+
+	* Implement variable array bounds for parameters.
+	* decl.c (poplevel): Don't crash if DECL_NAME gives 0.
+	* typecheck.c (comptypes): A variable array bound matches anything.
+	* parse.y (parmlist): Call pushlevel, then pushdecl each parm as it
+	is parsed; then poplevel after using get_parm_types to extract the
+	results of the parmlist.
+	* decl.c (get_parm_types): New function; reverse the current decls,
+	put them in last_function_parms, and return a list of their types.
+	(grokparms): Arg is now an idlist or a typelist.  Do nothing if latter.
+	(push_parm_decl): New function, like {start,finish}_decl combined
+	for a parm in a parmlist.
+
+	* dbxout.c (dbxout_symbol): Ignore sym if its DECL_RTL is 0.
+
+	* symout.c (symout_block_symbols): Ignore sym if type is error_mark.
+
+Fri Apr  1 11:41:21 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* expr.c (prepare_call_address): New function; given two rtx's
+	for function and context, copy the context to the right hard reg,
+	put the function address in the right place and return an rtx for it.
+	(gen_call_1): No longer do those things.  Delete args CONTEXT, PROTECT.
+	(emit_library_call, expand_call): Call `prepare_call_address'.
+	In between that and `gen_call_1', USE the parm registers.
+
+	* tm-hp9k320.h (ASM_OUTPUT_*): Flush uses of output_arith_constant.
+
+	* varasm.c (assemble_variable): Use ASM_FORMAT_PRIVATE_NAME
+	to make the name for a local static variable.
+	* tm-m68k.h, tm-vax.h, tm-ns32k.h, tm-spur.h:
+	Define ASM_FORMAT_PRIVATE_NAME.  Use `.', not `$', to separate.
+
+	* tm-m68k.h, tm-ns32k.h (FIX_FRAME_POINTER_ADDRESS):
+	To refer to stack ptr, use stack_pointer_rtx, not a copy.
+
+	* tree.c (build_real_from_string): Function deleted.
+	* parse.y (yylex): Use build_real and atof.
+
+	* parse.y: Allow string concatenation in arg of asm.
+
+	* parse.y (yylex): Always allow `$' in ident, but warn if pedantic.
+	* tm-vms.h: Delete DOLLARS_IN_IDENTIFIERS (no longer tested).
+
+	* cccp.c (rescan, do_define, initialize_random_junk):
+	Always allow `$', but warn if pedantic.
+	(main): If -t, set `traditional'.
+	(collect_expansion): If `traditional', no special handling for quotes
+	and no whitespace added at end of macro definition.
+
+	* expr.c (compare, compare1): Last arg to compare_constants
+	must be a size in bits.
+
+Thu Mar 31 00:31:52 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* expmed.c (expand_mult, expand_divmod, extract_fixed_bit_field):
+	Reject function return register as target if may need to read it.
+	(Reading the return register in an inline function doesn't work.)
+
+	* decl.c (start_function): Delete extra arg to `error'.
+
+	* emit-rtl.c (last_parm_insn): Delete this unused var.
+
+	* make-cc1.com: New version from Kashtan.
+
+	* integrate.c (expand_inline_function): Always set up an INLINE_TARGET
+	for a function that returns a nonvoid nonBLK value.
+	Since `pushlevel' and `poplevel' are called, must also call
+	`expand_{start,end}_bindings' to make a pair of NOTEs.
+	Let them handle USEs at end of scope of formal parameter copies.
+
+	* integrate.c (expand_inline_function): In a new-style CALL_INSN,
+	don't change the result reg into INLINE_TARGET.  Also,
+	generate a move insn after the call only if INLINE_TARGET is non-0.
+
+	* integrate.c (copy_decl_tree): Don't crash if DECL_RTL is 0.
+
+	* integrate.c (copy_for_inline): Don't treat `return' rtx's specially.
+
+	* stmt.c (expand_{start,end,emit}_delayed_expr):
+	New fns to handle ({...})'s in expressions output not where parsed
+	(such as third expression in a `for' statement).
+	* parse.y: Call them to handle third expression in a `for'.
+
+	* decl.c (duplicate_decls): Result is `inline' if either OLD or NEW is.
+
+	* emit-rtl.c (emit_note): Return the note, or 0 if none.
+	* stmt.c (expand_start_bindings): Use emit_note's value.
+
+Wed Mar 30 12:48:22 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* obstack.c (_obstack_begin): If ALIGNMENT is 0, use default.
+	Compute default for the alignment of a `double'.
+	* obstack.h (obstack_{begin,init}): Pass 0 for the alignment.
+
+	* flow.c (mark_used_regs): Discard multiple SUBREGs, STRICT_LOW_PARTs.
+
+	** Call insns that return values are now represented as
+	(set (reg ...) (call ...)), not just (call ...).
+
+	* *.md: Define a "call_value" insn pattern.
+
+	* tm-m68k.h, tm-vax.h, tm-ns32k.h: (NOTICE_UPDATE_CC):
+	These insns invalidate the CC.
+
+	* local-alloc.c (combine_regs): #if 0 special treatment of
+	function value hard reg.
+	(wipe_dead_reg): If hard reg, call reg_is_born so that the death
+	will not be ignored.
+	(reg_is_set): For reg that dies in this insn, mark it dead from now on
+	and post_mark it live after this insn only.
+
+	* combine.c (try_combine): Don't allow a call insn as I1 or I2.
+
+	* loop.c (count_loop_regs_set): Move CALL_INSN into a separate
+	clause.  When finding regs that are function addresses, handle
+	both old and new format call insns.
+
+	* flow.c (insn_dead_p): A SET that contains a CALL can't be dead.
+	(volatile_refs_p): Any CALL constitutes a volatile ref.
+	(mark_used_regs): If setting a reg from a volatile ref,
+	treat it like setting a reg whose value will be used.
+
+	* expr.c (gen_call_1): New arg VALREG if nonzero means generate
+	a call_value insn which stores in VALREG.
+	(expand_call): Use `hard_function_value' to make the VALREG arg
+	unless expression has type `void'.
+
+	* expr.c (emit_library_call): New 2nd arg OUTMODE is mode of result.
+	(So can give gen_call_1 the proper value-register.)
+	All callers (here and optabs.c) pass this arg.
+
+	* cse.c (canon_hash): Consider all CALL rtx's volatile.
+
+	** end of change in representation of call insns.
+
+	* stmt.c (expand_asm_operands): Replace complex lvalues with
+	SAVE_EXPRs here
+	* typecheck.c (c_expand_asm_operands):  rather than here.
+
+	* typecheck.c (pointer_diff): Fix typo preventing use of FLOOR_DIV_EXPR
+	when dividing by power of 2.
+	(build_c_cast): Flush unused locals.
+	(store_init_value): likewise.
+	(process_init_constructor): Delete unused 4th arg `for_static'.
+
+	* toplev.c (fatal_io_error): Arg to fprintf was missing.
+
+	* tm-m68k.h (LEGITIMIZE_ADDRESS): Flush extra arg to `emit_move_insn'.
+
+	* decl.c: Delete some unused local vars.
+
+	* stor-layout.c (layout_decl): `packed_size' now unsigned.
+
+Tue Mar 29 14:47:07 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* Version 1.19 released.
+
+	* loop.c (may_trap_p): Nonzero if X is a division that might trap.
+	(scan_loop): If insn might trap, move only if loop always executes it.
+
+	* dbxout.c (dbxout_type): Never output a cross-ref for
+	a type whose definition is known.  Sun dbx won't accept them.
+
+Mon Mar 28 12:34:46 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* tm-vms.h (TARGET_DEFAULT): Default is PCC alignment.
+	The VMS compile driver controls the real default.
+
+	* typecheck.c (c_expand_return): Don't ignore return value
+	when its type is void.
+
+	* final.c (final): Forget the condition codes after an `asm'.
+
+	* typecheck.c (build_binary_op_nodefault): Warn about ptr < 0
+	even if not pedantic, but not if traditional.
+
+	* typecheck.c (convert_for_assignment): Don't warn about
+	pointers volatile * vs nonvolatile * if -fvolatile specified.
+
+	* decl.c (store_parm_decls): Among the old-style parm decls
+	there can legitiately be other decls!  For example, if a parm
+	is declared `enum {foo, bar} x;', there are decls for `foo' and `bar'.
+	Don't let anything but a PARM_DECL match a parm name;
+	pass all the other decls through into the lexical context.
+
+	* jump.c (jump_optimize): When deleting stack adjusts before a
+	jump-to-return, don't be fooled by intervening NOTEs.
+
+	* tm-sequent.h (PRINT_OPERAND): Output (MEM (MEM (REG))) properly.
+	* output-ns32k.c (print_operand_address): Output (MEM (REG))
+	properly; output stack-pointer as `tos'.
+
+	* flow.c (find_use_as_address): Reject uses within operand 0
+	of a ZERO_EXTRACT or SIGN_EXTRACT reference.  It's hard to reload
+	an autoincrement inside these because they can refer to multiple bytes.
+
+	* reload.c (find_reloads): `o' in constraint means any memref
+	(except auto-increment) is acceptable with reloading.
+	Braino: Clear BADOP, not BAD.
+
+	* reload.c (push_reloads): Use rtx_equal_p (via macro MATCHES)
+	when considering reuse of an old reload.  Otherwise equal values
+	may get reloaded into different registers, and two MEMs that
+	originally matched may fail to match once reloaded.
+
+	* m68k.md (sign_extract and zero_extract insns):
+	If operand 0 is QI or HImode, don't allow register--only `o'
+	(except in some bftst patterns where bitpos is < 8).
+	And change `m' to `o' in all these patterns.
+
+Sun Mar 27 15:32:54 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* expr.c (expand_expr, case CONSTRUCTOR):
+	Not all aggregates are BLKmode; use the type's mode.
+
+	* gcc.c: Pass -y* to ld.
+
+	* cse.c (struct hash): New member `equivalence_only'.
+	(insert): Initialize it.
+	(cse_insn): Set it to 1 when src_eqv is inserted.
+	When finding cheapest equivalent of something,
+	skip elts that are marked with `equivalence_only'.
+
+	* decl.c (duplicate_decls): Don't call `layout_type'
+	if the type is `error_mark_node'.
+
+	* decl.c (implicitly_declare): If decl will be file-scope,
+	make sure it's a permanent node, and its associated data too.
+
+Sat Mar 26 15:48:50 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* flow.c (insn_dead_p, mark_used_regs): Storing a reg via a
+	ZERO_EXTRACT or SIGN_EXTRACT is dead if the reg isn't needed afterward.
+
+	* stmt.c (expand_start_function): Set current_function_name
+	to the name of this function.
+	* tm-vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Use current_function_name.
+
+	* expr.c (expand_increment): A SUBREG in op0 can also a be a copy.
+
+	* ns32k.md: Correct range of args for `adjspb' insn.
+	Use `adjspw' when appropriate.
+	New pattern for `lprd' insn.
+	Change some `const_int' predicates to GET_CODE tests.
+
+	* expr.c (expand_call): Eval function before copying args to hard regs.
+
+	* tree.c (make_node, copy_node): Don't get length of a REAL_CST
+	from tree_code_length.
+
+	* expmed.c (extract_fixed_bit_field): In memory-word case, abort
+	if tm.h parms say word could fail to be well-aligned.
+	* tm-ns32k.h: Define STRUCTURE_SIZE_BOUNDARY so they will be aligned.
+	* tm-vax.h: Define STRUCTURE_SIZE_BOUNDARY since Unix CC seems to.
+
+	* tm-vms.h (CPP_PREDEFINES): Predefine __GNU__ and __GNUC__.
+
+Fri Mar 25 13:23:27 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* gcc.c (main): Handle SIGHUP, SIGTERM.
+
+	* expmed.c (expand_bit_and): Don't clobber OP1 when trying andcb.
+
+Thu Mar 24 21:59:09 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* stmt.c (assign_parms): Get size of BLKmode local from the type,
+	not the mode.
+	(expand_function_start): Init frame_offset before calling assign_parms.
+
+Wed Mar 23 23:50:37 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* expr.c (emit_push_insn): When making a move insn,
+	go via emit_move_insn; else fails to put constants into memory.
+
+Tue Mar 22 15:45:10 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* expr.c (expand_increment): Flush special case for register_operand;
+	actually call the predicate whatever it is.
+
+	* genemit.c (gen_expand): Make `operands' a local variable,
+	not a global static one, in the `gen_...' function.
+	Avoids lossage when one `gen_...' fcn calls another indirectly.
+
+	* genoutput.c (output_epilogue): Don't give printf a null string.
+
+Mon Mar 21 15:41:42 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* expmed.c (store_bit_field) [HAVE_insv]:
+	Force VALUE1, not VALUE, into a register.
+
+	* expmed.c (store_fixed_bit_field): Width of mask for clearing
+	the bit-field depends on mode of OP0.
+
+	* ns32k.md (branch and store-flag insns):
+	Test cc_prev_status, not cc_status.
+
+	* expmed.c (extract_bit_field): Delete unused var `omode'.
+
+	* dbxout.c (dbxout_type, dbxout_tag): Use the main variant
+	of the specified type.
+
+	* reload.c (find_reloads): When an alternative succeeds without reload,
+	initialize goal_alternative_matches from this_alternative_matches.
+
+Sun Mar 20 17:58:00 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* tm-sun*.h: Don't predefine `m68k'; Sun's compiler does not.
+
+Fri Mar 18 13:48:29 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* reload.c (find_reloads): Set up goal_alternative_matches
+	*after* the label `finish'.
+
+	* stmt.c (assign_parms): GET_MODE_SIZE needs a mode, not an rtx.
+
+	* recog.c (constrain_operands): Set global var `which_alternative'
+	to indicate which of the alternatives this insn matches.
+
+	* typecheck.c (commontype): long int vs unsigned int
+	gives long unsigned, if long and int are the same width.
+
+Thu Mar 17 15:39:45 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* emit-rtl.c, tree.c: include local version of varargs.h.
+
+	* decl.c (start_function): Clear TREE_EXTERNAL and set TREE_STATIC
+	here rather than in finish_function.  Affects the case of
+	   `extern foo ();  static foo (a) {...}'
+
+	* gcc.c: Handle -fnostdinc and -fnostdlib switches in specs.
+
+	* cccp.c (main): Handle -fnostdinc: don't put default dirs
+	on the chain to be searched.
+
+	* cccp.c (error, warning, error_with_line): No longer print
+	charpos within file; lineno is enough.
+
+Wed Mar 16 16:56:36 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* expmed.c (expand_inc, expand_dec): Handy new subroutines
+	to generate x+=y or x-=y, given x and y as rtl.
+	* expmed.c (expand_divmod): Use them instead of gen_{add2,sub2}_insn.
+
+	* expr.c (emit_move_insn): Return the move insn emitted.
+	Eliminate the code here to move a DImode or DFmode by pieces.
+
+	* emit-rtl.c (emit_insn): Return-value was wrong if emit_to_sequence;
+	cannot use `last_insn' in that case.
+
+	* regclass.c, stupid.c, local-alloc.c, global-alloc.c:
+	Some vars of type HARD_REG_SET should be `register' only
+	if HARD_REG_SET is a macro (ie a scalar).
+
+	* expr.c (move_block_from_reg): New function, converse of
+	move_block_from_reg.
+	* stmt.c (assign_parms): If a BLKmode arrives in regs,
+	copy to a stack slot using move_block_from_reg.
+
+Tue Mar 15 17:33:22 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* regclass.c (regclass): Don't convert to two-operand insns
+	unless optimizing.
+
+	* varasm.c (decode_rtx_const, const_hash_rtx): Fix typos.
+
+	* stmt.c (fixup_var_1): Don't alter insn moving VAR to or from
+	a subreg of a register.
+
+	* cse.c (fold_rtx): Don't fold if result is not LEGITIMATE_CONSTANT_P.
+	Construct all results in new local variable NEW; then test that
+	and decide whether to return it or the original rtx.
+
+	* cse.c (cse_insn): When SRC_EQV is non-0 but set[0] has been
+	cleared, don't insert SRC_EQV in hash table.
+
+	* All insns emitted by a define_expand become part of the SEQUENCE:
+	* SEQUENCE now contains a vector of insns, not of bodies.
+	* insn-emit.c (add_insn): If `emit_to_sequence' nonzero, add the
+	insn to a separate chain, `sequence_first_insn'.
+	(gen_sequence): Take everything on that chain and make a SEQUENCE.
+	(emit_insn): Handle SEQUENCE differently since elts are now insns.
+	(emit_insn_{before,after}): Handle SEQUENCE.
+	(classify_insn): #if 0.
+	* genemit.c (gen_expand): emit all the insns, then call gen_sequence
+	to make the return value.
+	Define two macros DONE and FAIL for use in a DEFINE_EXPAND:
+	Use DONE to inhibit emission of the pattern of the DEFINE_EXPAND.
+	Use FAIL to make the gen_... function return 0.
+
+Mon Mar 14 12:47:28 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* expr.c (expand_expr): Extend the don't-sign-extend-enums hack
+	to COMPONENT_REF.  (See 3 March.)
+
+	* tm-*.h (FUNCTION_ARG, etc.) New argument NAMED
+	is nonzero for a named arg, zero for an anonymous extra arg.
+	* expr.c (expand_call): Pass 1 for NAMED if appropriate.
+	* expr.c (emit_library_call): Pass 1 for NAMED.
+	* stmt.c (assign_parms): Pass 1 for NAMED.
+
+	* cccp.c: Test __GNUC__, not __GNU__.
+
+	* integrate.c (copy_and_substitute_rtx):
+	Replacing a MEM parm with the parm value, convert mode if mismatch.
+	Always use VOIDmode when generating SETs.
+	Take heed of FIRST_PARM_OFFSET and distinguish arg-pointer
+	from frame-pointer when they are different.
+	(expand_inline_function): Handle (RETURN) insns, by creating a
+	return_label which is output after the integrated code.
+
+	* parse.y (yylex): Condition for ignoring `inline' was backwards.
+
+	* flow.c (mark_used_regs): Ignore STRICT_LOW_PART, so that
+	an insn that sets STRICT_LOW_PART (and its source values) may be dead.
+	(propagate_block): Always pass 1 for strict_low_ok to insn_dead_p.
+
+	* optabs.c (emit_unop_insn): Don't make a REG_RETVAL note.
+	Change above deletes dead STRICT_LOW_PART stores without one.
+
+	* optabs.c (expand_binop, expand_unop): If the library address
+	is to be put in a pseudoreg, do it here, and make the REG_RETVAL
+	note point after that.
+
+	* expr.c (emit_library_call): Never defer stack-pops.
+	Deletion of the library call by flow.c loses if they are deferred.
+
+	* cse.c (cse_insn): Handling of 68k's zero-extend was broken:
+	it made the actual source and the REG_EQUAL source equivalent.
+	* If dest is a STRICT_LOW_PART, ignore the actual source and use
+	the REG_EQUAL source in its place.  src_eqv's mode may be different
+	from src's, so use proper mode in lookups or inserts for src_eqv.
+	* Don't forget to set src_eqv_elt if src_eqv already has an elt.
+	* On use_related_value for src_eqv, use src_eqv_elt.
+
+	* toplev.c (main_input_filename): Name of file mentioned in first
+	#-line in the input.
+	(compile_file): Pass it to dbxout_init as 2nd arg.
+	* dbxout.c (dbxout_init): Use 2nd arg to make the N_SO symbol.
+	* parse.y (check_newline): Store main_input_filename.
+
+	* expr.c (move_block_to_reg): New function, copies a MEM:BLK
+	to consecutive registers.
+	(use_regs): New function to emit a USE for each reg in a series.
+	(expand_call): Use the two new functions when a precomputed BLKmode
+	arg is passed entirely in regs.
+	(emit_push_insn): Use move_block_to_reg when PARTIAL > 0.
+	Also, don't subtract USED from SIZE twice.
+	Use plus_constant to add ARGS_SO_FAR so can use indexing on stack ptr.
+
+	* varasm.c (assemble_integer_zero): Use rtx 0, not tree 0,
+	to go with prev change in ASM_OUTPUT_INT.
+
+Sun Mar 13 01:16:17 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* varasm.c (const_hash, compare_constant_1, record_constant_1):
+	Handle NOP_EXPR and CONVERT_EXPR in constant expressions.
+
+	* optabs.c (expand_binop, expand_unop): When widening operands,
+	those with VOIDmode (like CONST_INT) may be left alone.
+
+Sat Mar 12 01:09:24 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* varasm.c (assemble_variable): When making a .comm or .lcomm,
+	round size up to multiple of BIGGEST_ALIGNMENT.
+
+	* obstack.c (_obstack_newchunk): Eliminate fencepost causing copying
+	to access the word past the end of the existing object.
+
+	* tm-vax.h, tm-ns32k.h: Define {INIT_,}CUMULATIVE_ARGS
+	and upgrade FUNCTION_ARGS for new calling convention.
+
+	* gcc.c: If -O, define __OPTIMIZE__.
+	(do_spec_1): %c now scans SIGNED_CHAR_SPEC: define __CHAR_UNSIGNED__
+	when appropriate whether or not it is the default.
+
+Fri Mar 11 16:49:25 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* parse.y: Define YYDEBUG.
+
+	* rtl.c (rtx_unstable_p): New function, same as old rtx_varies_p.
+	* explow.c (stabilize): Use rtx_unstable_p.
+	* rtl.c (rtx_varies_p): Ignore `unchanging' (undoing previous change
+	in this function) because `unchanging' doesn't enable cse to compare
+	the value with any particular constant value.
+	* rtl.c (insn_store_addr_varies_p): Delete, since not used.
+
+	* hard-reg-set.h (COPY_HARD_REG_SET, etc.) non-scalar case:
+	Rename and rearrange temp variables to avoid name conflicts with args.
+
+	* regclass.c (reg_class_record): Don't smash class to GENERAL_REGS
+	and don't exit prematurely, when `r' or `g' is seen.  Must merge
+	GENERAL_REGS with previously determined desired class.
+
+	* expr.c (expand_call) [no PUSH_ROUNDING]: When pushing the arg
+	block, try to reuse some of the pending_stack_adjust.
+
+	* cse.c: qty_const can now hold values (PLUS frame_pointer integer).
+	Effect is that storing into a structure doesn't invalidate
+	mem refs to scalar stack variables via addresses in registers.
+	(insert): Load such values into qty_const, like true constants.
+	(fold_rtx): Ignore qty_const if it isn't really a constant.
+
+	* expr.c (expand_expr) VAR_DECL: Copy DECL_RTL before calling
+	change_address, so it isn't permanently clobbered.
+
+	* stmt.c (fixup_var_refs_1): Make sure the stack slot address
+	is valid by calling fixup_stack_1 each time it is substituted.
+
+	* stmt.c (fixup_stack_1): Return the altered rtx.
+	If it's a MEM in the stack, return a copy of it.
+
+	* stmt.c (fixup_stack_slots): #if 0.
+	* stmt.c (expand_finish_function): Don't call fixup_stack_slots
+	because fixup_stack_1 is called elsewhere when necessary.
+
+	* reload.c (find_reloads_address): New arg is location of the MEM
+	whose address is being reloaded.  So we copy the MEM if it
+	is one that can be shared.  New arg 0 means no need to copy the MEM.
+	All callers pass the new arg.
+
+	* stmt.c (assign_parms): Determine parm stack-size from
+	the DECL_ARG_TYPE, not from the TREE_TYPE.
+	Else loses when parm is declared `float' but passed as `double'.
+
+	* emit-rtl.c (make_safe_from): Constants are already safe.
+	Use proper machine mode for temp reg when needed.
+
+Thu Mar 10 14:35:14 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* expr.c (emit_push_insn): Don't pass wrong type to plus_constant
+	(case where there is no PUSH_ROUNDING).
+
+	* expr.c (expand_call): Round partial[i] down to multiple of
+	PARM_BOUNDARY before subtracting it from arg size on stack.
+	Compute these sizes just once and keep them in vector `arg_size'.
+	* expr.c (emit_push_insn): Handle `partial' uniformly, in accord
+	with this new convention for how it affects the stack size.
+	* stmt.c (assign_parms): Round NREGS down to PARM_BOUNDARY likewise.
+
+	* obstack.h (obstack_free macro) [Not __GNUC__ but __STDC__]:
+	Don't cast result of (obstack_free) to (int); just ignore it.
+
+	* reload.c (find_reloads): Initialize operand_reloadnum.
+
+	* optabs.c (emit_unop_insn): New argument CODE, used to make
+	a REG_EQUAL note from operand OP0 if more than one insn results.
+	Also a REG_RETVAL note.
+	* expr.c (convert_move): Pass CODE arg to emit_unop_insn.
+	* flow.c (propagate_block): Use insn_dead_p to decide whether
+	to handle a REG_RETVAL note by skipping some insns.
+	Always pass 1 for STRICT_LOW_OK for an insn that has a REG_RETVAL note.
+	Handle case where REG_RETVAL points at an insn that's deleted.
+	* flow.c (insn_dead_p): New operand STRICT_LOW_OK says an insn
+	that sets STRICT_LOW_PART may be considered dead.
+
+	* expr.c (expand_expr): Once again canonicalize X-C to X+(-C).
+	Change on March 1 made it stop doing this.
+
+Wed Mar  9 01:25:35 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* loop.c (move_movables): Don't always mark the moved reg
+	as equivalent to a constant value: not if it is being cleared
+	to zero-extend something or if it is used outside the loop.
+
+	* expr.c (move_by_pieces_1): Finish last change.
+
+	* stmt.c (assign_parms): Update stack_args_size properly.
+	Figure FIRST_PARM_OFFSET when making the stack mem refs.
+
+	* cse.c (insert): Build the related_value lists in the opposite order
+	so that the oldest element in the chain is the one that follows
+	the most basic element.
+
+	* expr.c (expand_expr): COMPONENT_REF case: criterion for
+	converting the the result is if MODE1 (its mode of arrival) isn't
+	a mode we want.
+
+	* toplev.c (rest_of_compilation): Fix typo setting TREE_ASM_WRITTEN.
+
+Tue Mar  8 13:18:37 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* cse'ing of library calls.
+
+	* expr.h: type `optab' is now a ptr to a struct.
+	The old contents are now the `handlers' element.
+	The `code' element gives the RTL code for the kind of expression
+	this optab makes (PLUS for add_optab, etc.)
+	Every var formerly declared `struct optab *' is now just `optab'.
+
+	* optabs.c (init_optab, init_optabs): New function to init an optab
+	and set its `code'.  Used in init_optabs.
+
+	* optabs.c (expand_binop, expand_unop): Use the `code' field
+	to add a REG_EQUAL note to the insn that copies a libcall's
+	value into a pseudo.  Also a REG_RETVAL note pointing at the
+	first insn for setting up args for the call.
+
+	* cse.c (cse_insn): Process REG_EQUIV and REG_EQUAL datum almost like
+	another set-src; put the actual src into the equivalence class of that.
+
+	* flow.c (propagate_block): If a dead insn has a REG_RETVAL reg-note,
+	either ignore or delete all the insns back to the insn the REG_ARG
+	note points to.
+
+	* local-alloc.c (block_alloc): Don't refrain from allocating a
+	"constant" register if the constant value isn't ok for an immediate op.
+
+
+	* dbxout.c (CONTIN): If DBX_CONTIN_LENGTH is <= 0, do nothing.
+
+	* cccp.c: Extra default include dirs for C++.
+	* cccp.c (main): For -M, strip dirs from object file name.
+
+	* rtl.c (find_reg_note): New function.
+
+	* expmed.c (store_fixed_bit_field): Don't AND with VALUE
+	if VALUE's original mode had no more bits than we want.
+
+	* expr.c (emit_library_call): Use varargs.
+
+	* integrate.c (copy_and_substitute_rtx): Recognize arg_pointer_rtx
+	and translate it just like frame_pointer_rtx.
+
+Mon Mar  7 00:48:33 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* expmed.c (extract_fixed_bit_field):
+	Shift counts were wrong for narrow MODE in signed case.
+	Do the sign-extending shifts in the narrowest mode possible.
+	Reduce big-endian case to little-endian case.
+	Delete SLOW_ZERO_EXTEND conditional.
+
+	* Implement constants in memory for RISC machines
+	with limited abilities for immediate args and constant addresses.
+
+	* genoutput.c (output_epilogue): Empty predicate-name
+	is output as 0 in insn_operand_predicate.
+
+	* expr.c (expand_expr): Change 4th arg to an `enum expand_modifier'
+	Value EXPAND_SUM corresponds to old nonzero 4th arg.
+	Value EXPAND_CONST_ADDRESS means ok to return an invalid MEM
+	whose address is a constant.  Changes for this case in ADDR_EXPR,
+	COMPONENT_REF and ..._DECL.
+
+	* varasm.c (output_arith_constant): Function deleted.
+	* tm-*.h: (ASM_OUTPUT_{INT,SHORT,CHAR}): 2nd arg is now an RTX
+	and output it using `output_addr_const'.
+	* varasm.c (output_constant): Change uses of those macros.
+
+	* varasm.c (init_const_rtx_hash_table): Initialize constant pool
+	for a new function.  Called from `expand_function_start'.
+	* varasm.c (force_const_mem): Turn a constant rtx into a MEM rtx
+	which refers to the constant pool.  Other new subroutines too.
+	(force_const_double_mem): Use force_const_mem to make the MEM.
+	(immed_real_const): No longer record the REAL_CST node in the rtx.
+
+	* explow.c (force_reg): If arg is a constant and not legitimate,
+	put it in the constant pool with force_const_mem.
+	Mark the register as equivalent to the constant value.
+	* expr.c (emit_move_insn): Likewise.
+	* explow.c (break_out_mem_refs): Use force_reg to put into a reg.
+	* explow.c (memory_address): Likewise.
+	* expr.c (expand_expr): ADDR_EXPR case: likewise.
+
+	* expr.c (expand_call): Do force_reg on each register-operand
+	so it will go through a pseudo and can be cse'd.
+
+	* recog.c (immediate_operand, nonmemory_operand, general_operand):
+	For constant operands, use LEGITIMATE_CONSTANT_P to decide value.
+	* tm-*.h: Define LEGITIMATE_CONSTANT_P.
+
+	* reload1.c (reload): Invalid constants can't go in reg_equiv_constant.
+
+Sun Mar  6 22:49:06 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* reload.c (push_reloads): If IN occurs within OUT,
+	don't reuse an existing input-only reload.  Otherwise would lose on
+	(set (mem (plus R C)) (plus R C1)) if R is available in a spill reg.
+
+	* reload1.c (choose_reload_targets): Don't choose an inherited
+	reload register that's in use for another reload.
+	Without this, above change doesn't have an effect.
+
+	* Implement the `unchanging' flag in MEM and REG rtx's.
+	Also simplify code with a new subroutine `change_address'.
+
+	* emit-rtl.c (change_address): Return new memory ref like an old
+	one but with specified mode and address.
+	* expmed.c (extract{,_split,_fixed}_bit_field): Use change_address.
+	(store{,_split,_fixed}_bit_field): Likewise.
+	* expr.c (store_expr, expand_expr): Likewise.
+
+	* expr.c (move_by_pieces): Args now memrefs, not addresses.
+	Eliminate the FROM_VOL and TO_VOL args since the memrefs indicate.
+	Change the structure `struct move_by_pieces' similarly.
+	(move_by_pieces_1): Same changes; use change_address.
+	(emit_block_move, emit_push_insn): Calls to move_by_pieces changed.
+
+	* integrate.c (copy_rtx_and_substitute): Use change_address;
+	handle ->unchanging field.
+
+	* rtl.c (rtx_varies_p): Regs or memrefs with ->unchanging don't vary.
+	(copy_rtx): Perserve ->unchanging.
+	(print_rtx): Print ->unchanging as /u.
+
+	* stmt.c (expand_decl): Set ->unchanging on `const' decls.
+	(fixup_memory_subreg): Use change_address.
+	(assign_parms): Record in the rtl which parms are volatile or const.
+
+	* varasm.c (assemble_variable): Set ->unchanging on `const' decls.
+	(output_constant_def): Always set ->unchanging for constant refs.
+
+	* cse.c (canon_hash): Don't treat a MEM as "in memory"
+	if its ->unchanging bit is set.
+
+	* loop.c (invariant_p): A REG or MEM with ->unchanging is invariant
+	(for a MEM, the address must be invariant).
+
+Sat Mar  5 13:22:11 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* genconfig.c (walk_insn_part): DO consider MATCH_DUPs
+	when calculating MAX_RECOG_OPERANDS.
+	(gen_expand): define_expand is now different from define_insn.
+	Compute max # SETs or CLOBBERs for any one sub-insn in a define_expand,
+	instead of summing them all.  And don't count the MATCH_DUPs at all.
+
+	* genemit.c (max_operand_1): Record largest opno in a MATCH_DUP
+	separately from largest in a MATCH_OPERAND.
+	(gen_expand): An operand # with only MATCH_DUPs gets
+	a local variable in the gen_ function we output.
+
+	* integrate.c (save_for_inline): Delete vestige of NOTE_INSN_IS_DECL.
+
+	* cse.c (invalidate): Handle subregs.
+	(cse_ins, invalidate_from_clobbers): Do call `invalidate' for subregs.
+	(insert_regs): When assigning one subreg from a like one,
+	make the two regs equivalent.
+	(cse_insn): Do call insert_regs when dest is a subreg.
+
+	* expr.c (expand_call): Precompute all args going via hard regs
+	since even arithmetic could require a library call.
+
+Fri Mar  4 15:48:17 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* stor-layout.c (layout_parms): Function deleted.
+	* stmt.c (expand_function_start): Don't call it.
+
+	* stmt.c (assign_parms):
+	stack_args_size counts size of args so far passed on stack.
+	Use PARM_BOUNDARY when counting it; derive stack offsets from it.
+	Set current_function_args_size from it.
+
+	When an arg is split between regs and stack, make stack space
+	for the rest of it, and count it.
+	In a varargs function, push the last arg onto the stack.
+	When an arg is passed in regs alone, don't remember a stack slot
+	for it, and if it needs one, use assign_stack_local.
+
+	Set DECL_OFFSET to the stack offset, or -1 if parm came in regs.
+
+	* expr.c (expand_call): Anonymous args of a varargs function
+	are always passed on the stack.
+
+	* varasm.c (force_const_double_mem): Copy the MEM rtx
+	if it may need to be smashed by reloading.
+
+	* genemit.c (gen_expand): define_expand must have nonempty pattern
+	even though, due to `return' statements in the code-to-run,
+	that pattern may not be used to generate code.
+
+Thu Mar  3 17:08:43 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* expr.c (expand_expr): If supposed to sign-extend an enum
+	which is never negative, zero-extend instead (unless SLOW_ZERO_EXTEND).
+	(store_expr): Likewise.
+
+	* reload.c (find_reloads): 'm' for CONST_DOUBLE: clear BADOP, not BAD.
+	After force_const_double_mem, do find_reloads_toplev on the MEM.
+	(find_reloads_address): Handle constant addresses (on machines
+	that don't allow them).
+
+	* final.c (set_current_gdbfile): New fn, get the gdbfile structure
+	for specified filename.
+	(output_source_line): Use set_current_gdbfile for the file.
+	* varasm.c (assemble_variable): Call set_current_gdbfile
+	for the declaration's source file, so GDB won't ignore the file.
+
+	* varasm.c (force_const_double_mem): Build a new REAL_CST node
+	and get its data type from the machine mode of the CONST_DOUBLE.
+	(immed_real_const): Don't save the REAL_CST tree node.
+	* typecheck.c (get_floating_type): Return float type for given mode.
+
+	* integrate.c (expand_inline_function): Ignore the (USE (REG...))
+	(for the return-register) at the end of the inline function.
+	After a CALL_INSN, imagine the (SET (REG ...) (REG ...)) for
+	the return-register if the return-register isn't explicitly used.
+
+Wed Mar  2 22:08:49 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* typecheck.c (build_array_ref): Do default_conversion on INDEX.
+
+Tue Mar  1 15:49:34 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* expr.c (expand_call): Always get a SYMBOL_REF for a fixed function.
+	If may be alloca, set may_call_alloca.
+	(gen_call_1): Never put a SYMBOL_REF through `memory_address';
+	but if function cse is wanted, just copy it to a register.
+	If NO_FUNCTION_CSE is defined, never do function cse.
+
+	* expr.c (init_expr): New function, does init_queue and inits
+	other things.
+
+	* stmt.c (expand_function_start): Call init_expr, not init_queue.
+
+	* optabs.c (expand_binop): Don't clobber OP0 and OP1
+	if may call delete_insns_since later.
+
+	* expr.c (emit_library_call): PUSH_ARGS_REVERSE test was backwards.
+
+	* cse.c (cse_insn): Do canon_reg on the size and position operands
+	in a ZERO_EXTEND or SIGN_EXTEND that is a destination.
+
+	* tm-*.h: Define SLOW_BYTE_ACCESS.
+	* expmed.c ({store,extract}_fixed_bit_field):
+	If SLOW_BYTE_ACCESS, get/set all bit fields from full words.
+
+	* combine.c (subst): Simplify
+	(zero_extend:SI (subreg:QI (zero_extract ...))).
+	* combine.c (simplify_and_const_int): Simplify
+	(and (zero_extract ...) (const_int ...)).
+
+	* local-alloc.c (qty_compare{,_1}): Test of qty_phys_sugg was reversed.
+	(combine_regs): If one pseudo gets two suggested hard regs
+	(one at birth and one at death), prefer the one from birth
+	unless we see at death that it's no good.
+
+	* expr.c (expand_expr): Ignore sum_ok unless mode is Pmode.
+	Don't use force_operand unless sum_ok is set.
+
+Mon Feb 29 19:23:50 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* expr.c (emit_move_insn): When a CONST_DOUBLE needs moving
+	by pieces, force it into memory, unless it is dconst0_rtx,
+	in which case each piece is const0_rtx.
+	(emit_push_insn): Likewise.  Also, write code for pushing a
+	non-BLK mode which has no "mov" insn defined, but only
+	in the case where there is no PUSH_ROUNDING.
+
+	* expr.c (do_tablejump): Put constant term in address last.
+
+	* toplev.c (xrealloc): On error, call fatal instead of abort.
+
+	* optabs.c (emit_cmp_insn): If genning from tst_optab,
+	make the operand fit its predicate.
+
+	* optabs.c (expand_float): Don't adjust stack between cmp and jump.
+
+	* optabs.c (expand_binop): Recursive calls can return 0; handle
+	that event by deleting any preparatory insns.  Also don't smash
+	TARGET when this happens.
+
+	* reload.c (push_reload): If IN != *INLOC, set reload_nocombine.
+	(combine_reloads): Don't combine an input reload with reload_nocombine.
+
+	* jump.c (jump_optimize): Don't delete stack adjusts unless
+	EXIT_IGNORE_STACK is nonzero.
+	* expr.c (clear_pending_stack_adjust): Likewise.
+	* tm-*.h: When EXIT_IGNORE_STACK is defined, give it `1' as defn.
+
+	* expr.c (expand_call): Initialize args_size.
+	Don't push a block if args_size is 0.
+	(emit_library_call): Don't include register-args (or reg-parts
+	of partial ones) in args_size.
+	Don't push a block if args_size is 0.
+
+	* expr.c (expand_expr): For DECLs in memory, check the address
+	validity with memory_address_p, and preserve volatility info.
+
+	* stmt.c (expand_function_end): fixup_gotos needs 2 args.
+
+	* jump.c (mark_jump_label): If INSN is 0, don't set its JUMP_LABEL.
+	Inside an ADDR_VEC or ADDR_DIFF_VEC, recurse with 0 for INSN.
+
+	* varasm.c (force_const_double_mem): Must zero TREE_CST_RTL
+	before output, or nothing will happen.
+
+Sun Feb 28 01:08:53 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* optabs.c (emit_unop_insn): Generate and emit an insn
+	given the insn-code and the two operands (one out, one in).
+	Can move the operands into registers when needed for various
+	reasons.
+	* expr.c (convert_move): Use emit_unop_insn for outputting the
+	conversion insns.
+
+	* expr.c (emit_library_call): Use arg's nominal mode to choose
+	a reg to pass it in, not actual mode (which can be VOIDmode).
+
+	* insn-emit.c (emit_insn): If arg is empty SEQUENCE, do nothing.
+
+	* genemit.c (gen_expand): Scan the rtl-pattern for predicates
+	and machine modes of the operands.
+
+	* m68k.d (dbra patterns): Add HPUX_ASM conditionals.
+
+	* rtl.c (reg_mentioned_p): Use "equal", not "eq", when
+	REG isn't a register.
+	* reload.c (combine_reloads): Verify not reg_mentioned_p even if
+	the input reload's value isn't a register.
+
+	* reload.c (operands_match_p): If successful and 2nd arg
+	has a pre-increment that matches a non-increment, return 2.
+
+	* reload1.c (reload): At end, clobber a pseudoreg to a MEM
+	even if it's an out-of-range address.  It doesn't affect the
+	assembler code in this case, but it makes the dbx output correct.
+
+	* recog.c (constrain_operands): When operands_match_p returns 2,
+	in the constraint alternative that is ultimately successful,
+	copy the output operand from the input that it matched
+	so that the assembler insn that is output shows the pre-increment.
+
+Sat Feb 27 15:16:47 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* combine.c (subst): When optimizing
+        (set (zero_extract ...) (and (zero_extract ...) const))
+        must arrange to have 1's, not 0's, shifted into low bits of const.
+
+	* decl.c (grokdeclarator): When return-type defaults to int,
+	don't warn, just set warn_about_return_type.
+	(start_function): See that variable and warn, after starting function.
+
+	* toplev.c (count_error): No longer print newline if not quiet.
+	(report_error_function): If not quiet, print a newline if
+	printing anything, and don't print the function name.
+
+	* reload1.c (choose_reload_targets):
+	Fix the loop that checks for consecutive available spill regs.
+	Set `have_groups' nonzero if any reload wants a group.
+	In that case, for non-group reloads, prefer a reg that can't be in
+	group, or else one that has only one available neighbor.
+
+	* reload1.c (reload): Find separately the max need for each class
+	for single registers, groups of registers, and single registers
+	not in any group.  (The last one counts non-group reloads
+	in insns that have at least one group reload.)
+	Then make sure enough of each kind are found.
+
+	* expmed.c: Now needs flags.h and recog.h (therefore insn-config.h).
+
+	* expmed.c (store_bit_field):
+	Delete redundant protect_from_queue.
+	Force VALUE out of memory if -fforce-mem.
+	If insv's predicate for VALUE wants a register, put it there.
+
+	* expmed.c (extract_bit_field):
+	Force TARGET out of memory if -fforce-mem.
+	If insv's predicate for TARGET wants a register, put it there.
+
+Fri Feb 26 00:12:48 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* reload1.c (eliminate_frame_pointer): Don't check for pushes
+	unless PUSH_ROUNDING is defined.
+
+	* reload.c: Don't define REG_OK_FOR_{INDEX,BASE}_P
+	(since the tm file is supposed to do it).
+
+	* expr.c (emit_push_insn, expand_call):
+	Don't use PUSH_ROUNDING if it's not defined.
+
+	* expr.c (preexpand_calls): Do nothing for constants and decls.
+
+	* expr.c (expand_call, emit_library_call): When PUSH_ROUNDING
+	is not defined, use ROUND_CALL_BLOCK_SIZE to round the size
+	of the block of arguments.
+
+	* expr.c (expand_call): Don't count register-args in ARGS_SIZE.
+
+	* rtl.h, emit-rtl.c: Create static_chain_incoming_rtx
+	and struct_value_incoming_rtx.
+	* stmt.c (expand_function_start): Use ..._incoming_rtx where needed.
+
+	* expr.c (expand_call): Use new macros INIT_CUMULATIVE_ARGS,
+	CUMULATIVE_ARGS and FUNCTION_ARG_ADVANCE to update data
+	on args scanned so far.
+	(emit_library_call): Likewise.
+	* stmt.c (assign_parms): Likewise.
+	* tm-spur.h, tm-m68k.h: Define these macros.
+
+	* rtl.h (NUM_MACHINE_MODES): NUM_MACHINE_MODE renamed.
+	* rtl.c, genrecog.c: Change places it is used.
+
+	* cccp.c (output_line_command): line_cmd_buf should be chars, not ints.
+
+Thu Feb 25 13:33:29 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* genemit.c (gen_expand): Don't lose if pattern is empty-vector.
+
+	* genconfig.c (gen_insn): Don't lose if pattern is empty-vector.
+
+	* expr.c (expand_expr): For COMPONENT_REF, don't convert to tmode
+	unless the mode we get is unacceptable.
+
+	* loop.c (scan_loop, move_movables): New field `partial' is 1 for
+	zero-extending clr insn; don't make the reg invariant when it's moved.
+
+	* optabs.c (expand_unop, expand_binop, emit_cmp_insn):
+	mode-argument to predicates was missing.
+
+	* optabs.c (expand_binop): If gen-function returns 0, this means
+	the insn wasn't available.
+
+	* reload.c (find_reloads): Don't make optional reloads for operands
+	that match other operands.
+
+	* reload.c (combine_reloads): Reject optional output reload.
+
+	* reload.c (find_equiv_reg): Know that CALL_INSNs clobber memory.
+
+	* typecheck.c (build_binary_op_nodefault):
+	If doing a short shift, leave the shift-count as a fullword.
+
+Tue Feb 23 14:43:46 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* combine.c (subst): Count, in n_occurrences, # times FROM is seen.
+	(try_combine): Refuse to combine x=*y++ into z = x*x.
+
+	* loop.c (invariant_p): Frame pointer and arg pointer are invariant.
+	(move_movables): Don't forget to set ->done!
+	When moving the matching movables, don't forget to set n_times_set.
+
+	* expmed.c (expand_shift): Reorder strategies for logical shift;
+	if widening, try all ashift strategies before extzv.
+
+	* typecheck.c (build_binary_op_nodefault):
+	Always return error_mark if either operand is one.
+
+	* recog.c (nonmemory_operand): New predicate.
+
+	* optabs.c (expand_unop, expand_binop, emit_cmp_insn):
+	Don't treat `register_operand' as special.  Apply the predicate
+	to the rtx; if the predicate fails, use a register instead.
+
+Mon Feb 22 22:37:32 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* expr.c (expand_calls): Preexpand all calls in arguments
+	that are passed in regs before copying any of them into the regs.
+
+	* expr.c (emit_push_insn): Three more args.
+	EXTRA for extra space to leave.
+	ARGS_ADDR and ARGS_SO_FAR for using move-insns on machines
+	that lack true push insns.
+
+	* expr.c (emit_library_call, expand_call):
+	Use the new arguments of `emit_push_insn'.
+
+	* expr.c (PUSH_ARGS_REVERSED): defined if handle args last-to-firs.
+
+Sun Feb 21 12:17:59 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* toplev.c (rest_of_compilation): Set TREE_ASM_WRITTEN
+	when a function is really output as assembler code.
+	Don't do inlining of a function that is already made inline;
+	instead, output it as assembler code, because this must be
+	the second call for that function.
+
+	* decl.c (finish_compilation): Delete it.
+	* toplev.c (compile_file): Output pending inline functions at the end
+	in the same way tentative-defined variables are output.
+
+	* emit-rtl.c (restore_reg_data): New fn: given chain of insns,
+	restore emit-rtl's data on registers from the regs they use.
+
+	* integrate.c (output_inline_function): Use restore_reg_data.
+	(fill_regno_reg_rtx_as_needed): Now restore_reg_data_1 in emit-rtl.c.
+
+	* tree.c (build_decl): Function moved from decl.c.
+	No longer set attributes of function decls specially.
+
+	* decl.c (implicitly_declare, builtin_function, grokdeclarator):
+	Don't expect build_decl to set attributes of FUNCTION_DECL.
+
+	* tree.c (preserve_data): New fn, make all data now on
+	maybepermanent_obstack last permanently.
+
+	* cse.c (cse_insn): Remove a STRICT_LOW_PART from the dest rtx
+	before putting it in the hash table.
+
+	* symout.c (symout_block): Fix the args to `symout_block_symbols'.
+
+Sat Feb 20 00:07:52 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+    Start of changes for inline functions.
+    Changes received from Tiemann, then slightly rearranged for simplicity.
+
+	* integrate.c: New file (Tiemann's rtl2.c).
+	* integrate.c (function_cannot_integrate_p):
+	New fn, only checks whether current fn is safe and good to inline.
+	Returns an error message string if not.
+
+	* expr.c (current_args_size): Var made static.
+	(store_expr): Fn no longer static.
+	(stack_pointer_rtx): Use this var for all refs to the stack pointer.
+	(struct_value_rtx, static_chain_rtx): Likewise
+
+	* expr.c (expand_call): Detect calls to integrable functions
+	and integrate them.
+	**If fn is not named "alloca" then assume it is not `alloca'. **
+
+	* emit-rtl.c (max_label_num): New fn, returns number for next label.
+	(get_first_label_num): New fn, returns first label of current fn.
+	(init_emit): Save first label number of this fn.
+
+	* emit-rtl.c (gen_inline_header_rtx): New fn, make an INLINE_HEADER.
+
+	* emit-rtl.c (emit_declaration): New fn to emit new kind of NOTE.
+
+	* emit-rtl.c (init_emit_once): New fn.
+	Move inits of unique rtl objects here, from init_emit.
+
+	* decl.c (finish_compilation): New fn to compile separately
+	any nonglobal inline functions that need to be addressable.
+
+	* decl.c (grokdeclarator): Handle `inline' kwd among the declspecs.
+	Set TREE_INLINE if it's safe.
+
+	* decl.c (finish_function): If fn was inlined, don't clear
+	the DECL_ARGUMENTS or DECL_RESULT or DECL_INITIAL.
+
+	* gen*.c: Provide rtl_obstack, not current_obstack.
+
+	* rtl.c (rtl_obstack): Variable: ptr to obstack to use for making rtl.
+	* rtl.c (rtx_alloc, rtvec_alloc): Use that obstack.
+	* rtl.c (copy_rtx): Copy the `integrated' flag.
+	* rtl.c (print_rtx): Print that flag as `/i'.
+
+	* rtl.def: New rtx code	INLINE_HEADER.
+
+	* rtl.h (struct rtx_def): Add `integrated' field.
+	* rtl.h: Define macros for fields in an inline_header rtx.
+
+	* stmt.c (max_parm_reg_num, get_first_function_insn):
+	New fns, return info on parm regs and the insns that init them.
+
+	* stmt.c (expand_decl): Simplify with new local `type'.
+
+	* stmt.c (stack_pointer_rtx): Replace all refs to stack pointer
+	with this shared rtx.
+	* stmt.c (struct_value_rtx): Likewise.
+
+	* stmt.c (expand_start_function): Call init_pending_stack_adjust
+	instead of clear_pending_stack_adjust.
+	If not using a return-label, set `return_label' to 0.
+
+	* stmt.c (expand_null_return, expand_end_function):
+	Call clear_pending_stack_adjust unconditionally.
+
+	* expr.c (clear_pending_stack_adjust): Move the conditionals here.
+	For now, this fn is a no-op, since it's not safe in an inline fn
+	and the stack adjusts are deleted by jump.c in if optimizing.
+
+	* expr.c (init_pending_stack_adjust): New fn.
+
+Fri Feb 19 14:30:13 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* toplev.c (main): Decode -finline-functions, -fkeep-inline-functions.
+
+	* toplev.c (rest_of_compilation):
+	At start, save the rtl if function should be inline.
+	For inline function, if we don't yet know whether it should be
+	compiled on its own, don't do so.
+
+	* toplev.c (compile_file): Clear, and later print, `integration_time'.
+	Call `init_emit_rtl' when starting.
+	Call `finish_compilation' at the end.
+
+	[Add an extra arg to the error and warning functions?]
+
+	* tree.c ({push,pop,clear}_momentary):
+	Change momentary_stack from a char ** to a struct momentary_level *.
+
+	* tree.c (build_pointer_type): Put temporary type in `saveable_obstack'
+	* tree.c (build_type_variant): Likewise.
+	* tree.c (make_node): Likewise.  Also put decls and LET_STMTs there.
+	* tree.c (type_hash_canon): Free a temporary type in `saveable_obstack'
+
+	* tree.c (perm_tree_cons): Like `tree_cons' but on perm. obstack.
+
+	* tree.c (init_tree, {{end_,}temporary,permanent}_allocation):
+	Handle `maybepermanent_obstack' and `saveable_obstack' and
+	`rtl_obstack'.
+
+	* tree.h (TREE_INLINE): New attribute macro.
+	* tree.h (DECL_SAVED_INSNS, DECL_FRAME_SIZE):
+	New components in a FUNCTION_DECL.
+	Delete the `unused` slot in a `struct tree_decl'.
+
+	* typecheck.c (mark_addressable): Set TREE_ADDRESSABLE
+	even in FUNCTION_DECLs.
+
+	* typecheck.c (build_function_call):
+	If function is a FUNCTION_DECL, avoid setting TREE_ADDRESSABLE
+	when taking its address.
+
+	* parse.h: Define RID_INLINE.
+	* parse.y: Define keyword `inline'; set up ridpointers for it.
+	(yylex): Don't recognize `inline' of -fno-asm or -ftraditional.
+
+	* flags.h: New vars flag_inline_functions
+	and flag_keep_inline_functions.
+
+  End of changes for inline functions.
+	
+	* tree.c (convert): If EXPR's type is an error_mark, return error_mark.
+
+	* Makefile (install): Don't strip the executables.
+
+	* jump.c (delete_insn): Deleting a label's target
+	can delete either NEXT and PREV!  So must search for a
+	following nondeleted insn to return.
+
+	* typecheck.c (build_function_call): Typo in validating
+	data type of function.
+
+	* genoutput.c (gen_expand): Must create a `struct data' even
+	for a define_expand, so we can output the proper insn_gen_function
+	and leave zeros in the other tables.
+
+	* loop.c (scan_loop): Replace the code for handling zero-extends
+	with unconditional code that checks for a pair of insns.
+
+	* m68k.md: Do zero-extend using define_expand to generate
+	a pair of insns, to set all to zero and then copy the low part.
+
+Thu Feb 18 15:54:00 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* emit-rtl.c (emit_insn): If arg is a SEQUENCE, emit several insns.
+	* emit-rtl.c (classify_insn): Given an RTX, return the rtx-code for
+	an insn containing it: CODE_LABEL, INSN, JUMP_INSN or CALL_INSN.
+
+	* rtl.def: New RTX types DEFINE_EXPAND and SEQUENCE.
+	* gen*.c: Handle DEFINE_EXPAND.  Only genemit.c does real work.
+
+	* make.com, make-cc1.com, make-cccp.com: New, VMS command files.
+
+	* tm-vms.h: New file, used as tm.h to generate VMS code.
+
+	* tm-vax.h (FUNCTION_PROLOGUE): Turn off no bits in the mask;
+	let call_used_registers alone control this.
+	Call MAYBE_VMS_FUNCTION_PROLOGUE, and define that as no-op.
+
+	* tm-vax.h (TARGET_VAXC_ALIGNMENT): New target-flag bit.
+	BIGGEST_ALIGNMENT, EMPTY_FIELD_BOUNDARY and POINTER_BOUNDARY use it.
+
+	* varasm.c (assemble_function): Use ASM_DECLARE_FUNCTION_NAME
+	if it is defined.
+
+	* varasm.c (assemble_variable): On an external,
+	use ASM_OUTPUT_EXTERNAL if defined.  Default is do nothing, as before.
+
+	* toplev.c:
+	Use FATAL_EXIT_CODE and SUCCESS_EXIT_CODE.
+	Don't include time.h and resource.h on VMS.
+	(main) Define __VERSION__ if not already defined.
+	Conditionalize setrlimit on RLIMIT_STACK.	
+	Test __GNUC__, not __GNU__.
+	Don't do `ps v' on VMS.
+	(gettime): Conditional code for VMS.
+
+	* gcc.c: Define __GNUC__ as well as __GNU__.
+	__GNU__ will be deleted in a future version.
+
+	* symout.c (symout_finish) [VMS]: Don't refer to `getwd' on VMS.
+	* symout.c (symout_init) [VMS]: Fatal error; GDB syms not supported.
+
+	* parse.y (yylex): Handle DOLLARS_IN_IDENTIFIERS.
+
+	* genoutput.c (gen_insn): Workaround for VMS printf %s bug.
+
+	* gen*.c: Include config.h.  Whenever exiting, use
+	SUCCESS_EXIT_CODE or FATAL_EXIT_CODE.
+
+	* config-*.h: Define SUCCESS_EXIT_CODE and FATAL_EXIT_CODE.
+	* config-vms.h: New file, mostly like config-vax.h.
+
+Wed Feb 17 13:35:34 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* cccp.c: VMS support from Kashtan.
+	Some #include files are conditional.
+	Use file_size_and_mode instead of fstat.
+	When reading file contents, the size we get from that
+	is just an upper bound; don't assume it must match.
+	Replacement definitions of read and write for VMS.
+	Different default include directories.
+	Conditionalize the setrlimit code on RLIMIT_STACK.
+	Use SUCCESS_EXIT_CODE when exiting if no errors;
+	both that and FATAL_EXIT_CODE are not #defined if already defined.
+
+	Treat $ as an identifier-character if DOLLARS_IN_IDENTIFIERS.
+	Rename the `delete' function as `delete_macro'
+	to avoid VMS name conflict.
+
+	* cexp.y: Treat $ as an identifier-character if DOLLARS_IN_IDENTIFIERS.
+
+	* stmt.c (fixup_memory_offset): Do big-endian compensation
+	only within a word, not for DImode vs SImode.
+
+	* stmt.c (fixup_var_refs): Don't fix up the insn to load the var
+	from its own stack slot; delete it instead.
+
+	* tm-ns32k.h (MODES_TIEABLE_P): DImode is like DFmode.
+
+	* tree.c (MAX_HASH_TABLE): 1009 (more prime) instead of 1008.
+
+	* decl.c (duplicate_decls): If merged type is OLD's type,
+	keep OLD's DECL_SIZE and DECL_SIZE_UNIT.
+
+	* gen*.c (xmalloc, xrealloc): Call `fatal' if memory is full.
+
+	* reload1.c (choose_reload_targets): If a mode doesn't fit the
+	reload register, and the insn is an ASM_OPERANDS, ignore the reload.
+	Otherwise, final would crash.
+
+	* expmed.c (expand_shift): Two new strategies for lshr on short/char:
+	widen and do ashr, or widen and do extzv.
+
+	* vax.md (peepholes): Use dead_or_set_p to check for eliminable
+	intermediate result, rather than requiring a match with final result.
+
+	* local-alloc.c (block_alloc): Testing frame_pointer_needed is
+	enough; no need to test FRAME_POINTER_REQUIRED, etc.
+	* global-alloc.c (find_reg): Likewise.
+	* reload1.c (reload): Likewise for flag_omit_frame_pointer
+
+	* jump.c (delete_insn): If not `optimize', don't complain
+	about finding an already-deleted insn in the chain.
+
+Tue Feb 16 17:14:54 1988  Richard Stallman  (rms at wheaties.ai.mit.edu)
+
+	* final.c: Don't define N_SOL and N_SLINE if already defined.
+
+	* final.c (output_source_line):
+	Typo calling ASM_OUTPUT_SOURCE_FILENAME.
+
+	* flow.c (INSN_VOLATILE): fix a typo.
+
+Fri Feb 12 16:48:16 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* final.c (final): for `asm' without operands, output literally.
+
+Thu Feb 11 12:44:41 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* symout.c (symout_record_fields): Handle nameless fields.
+	* symout.c (symout_record_field_names): Likewise.
+
+	* typecheck.c (require_complete_type): `void' is a complete type.
+	* typecheck.c (build_function_call): Don't complain if result is void.
+
+	* tm-hp9k320.h: Change definition of ASM_SPEC to +X, not -X.
+
+	* cccp.c (main): Expected object file name for foo.cc is foo.o.
+
+Wed Feb 10 16:04:58 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* reload1.c (reload): Initialize `regmask' to zero.
+	Class number is in I, not in CLASS, when setting its elements.
+	Don't let J+K be too large.
+
+	* reload1.c (potential_reload_regs): Make it a `short'
+	since that can't be unsigned.
+
+	* cccp.c (warning): New function, called like `error'.
+	* cccp.c (do_define): Make redefinition just a warning.
+
+Tue Feb  9 13:28:00 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* decl.c (grokdeclarator): Don't be fooled by ERROR_MARK as a declspec.
+
+	* toplev.c (compile_file): Strip final .c or .co from .sym file name.
+
+	* gcc.c: When running `as', specify the .sym file if -gg.
+
+Mon Feb  8 11:26:26 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* expmed.c (store_fixed_bit_field): Don't try gen_lowpart on VALUE
+	if it's a subreg since it might lose; use convert_to_mode instead.
+
+	* tm-hp9k320.h: Define TARGET_MEM_FUNCTIONS.
+	* expr.c (emit_block_move, emit_push_insn, clear_storage):
+	If TARGET_MEM_FUNCTIONS, generate calls to memcpy and memset
+	instead of bcopy and bzero.
+	* optabs.c (emit_cmp_insn): Likewise for memcmp vs bcmp.
+
+	* stmt.c (expand_goto): New temp var to avoid RT/PC compiler bug.
+
+Sun Feb  7 12:20:23 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* flow.c (mark_used_regs, mark_set_regs):
+	Handle hard regs in multiword modes: set the bits for each
+	distinct register-number that makes up the multiword mode.
+	Necessary because function arg registers can inevitably
+	live across basic blocks.
+
+	* cse.c (canon_hash): Function arg and value registers no longer
+	considered volatile, because flow should now handle the code that
+	can result from cse'ing them.
+
+	* cse.c (make_regs_eqv): Abort if OLD is invalid.
+	* cse.c (reg_invalidate): Abort if reg already invalid has eqvs.
+
+Sat Feb  6 16:25:32 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* gcc.c (main): Specific error msg if no input files.
+
+Fri Feb  5 17:56:00 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* stmt.c (expand_decl, put_var_into_stack, assign_parms):
+	Set in_struct on a MEM if the variable is an aggregate or union.
+	* varasm.c (assemble_variable): Set in_struct on aggregate vars.
+
+Thu Feb  4 11:52:30 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* m68k.md (movsf): Correct two fmove.x to fmove.s.
+
+	* expmed.c (extract_fixed_bit_field):
+	Must always generate an `and' to mask the bitfield
+	unless its width is the same as the output machine mode.
+
+	* version 1.18 released.
+
+Wed Feb  3 08:41:20 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* fold-const.c (fold): Convert EXPR's operands before returning them.
+
+Tue Feb  2 15:35:18 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* reload.c (find_reloads_address_1):
+
+	* typecheck.c (default_conversion): Handle COMPOUND_EXPR arrays.
+
+Mon Feb  1 18:53:05 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* ns32k.md: operand 0 of all unsigned divide/modulus insns
+	is now register_operand.
+
+	* stdarg.h: Make va_list be char *, not char *[1].
+	Latest draft doesn't say it must be an array type.
+
+Sun Jan 31 11:14:07 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* flow.c (find_basic_blocks): Add temp var to avoid Sequent
+	compiler bug.
+
+	* tm-ns32k.h (GO_IF_LEGITIMATE_ADDRESS): Don't allow pushes or pops
+	since there are special insn patterns for them.
+	Resubroutinize and add temp vars to make expressions smaller.
+	* ns32k.md: Add a few more special stack insns; now there are enough.
+
+	* tm-sequent.h: Definitions of DBX_NO_XREFS and DBX_CONTIN_LENGTH.
+
+	* reload1.c (choose_reload_targets): Handling of reload_strict_low
+	is needed for input reloads as well as output, since a strict_low_part
+	operand is normally a read-write operand.
+
+	* reload1.c (reload): The mode a reload needs is the wider of
+	the input and output modes--just as it is in choose_reload_targets.
+
+	* reload.c (find_dummy_reload): If IN and OUT have different widths
+	and one of them exceeds a word, don't find any dummy reload.
+
+	* toplev.c (compile_file): Allocate enough space for .jump2 filename.
+
+Sat Jan 30 10:35:46 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* output-ns32k.c (print_operand_address):
+	Print addresses of the form C1+(N*REG+C2) which currently
+	are accepted as legitimate memory addresses.
+
+	* tm-sequent.h: Simple bugs in PRINT_OPERAND, TARGET_DEFAULT
+	and SEQUENT_ADDRESS_BUG.
+
+	* gen*.c: Must explicitly exit; returning from `main' fails
+	to indicate nonzero status due to bug in Unix.
+
+	* parse.y (check_line_number): Ignore entire line of unrecognized
+	#-directive; no error if it is `pragma'.
+
+Fri Jan 29 06:46:01 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* genrecog.c, genextract.c, genoutput.c: Define bcopy and/or bzero.
+
+	* cccp.c (do_define): Make defn->argnames long enough in no-args case.
+
+	* reload1.c (reload): Make basic_block_needs 0 until after the
+	frame pointer reg is spilled, so that ALL pseudos in it are spilled.
+
+	* typecheck.c (truthvalue_conversion):
+	Strip a NOP_EXPR only if it extends, not if it truncates.
+	(build_unary_op): For TRUTH_NOT_EXPR, call invert_truthvalue
+	to simplify.
+
+	* Fixes for HPUX support from cph:
+	* tm-hp9k320.h: Correct names of floating-point registers.
+	Fix typos in ASM_OUTPUT_OPCODE; also convert `fmove' to `fmov'.
+	* Makefile (comments for HPUX):
+	cph says -Wd,-X isn't needed in CFLAGS, nor -lBSD in CLIB.
+	Also that -g can't be used in CFLAGS with HP's pcc.
+	* conf-hp9k320.h: New file, like config-m68k.h but with
+	#defines for the bstring functions.
+	* m68k.md: Add else-clauses to the HPUX_ASM conditionals on cmp insns.
+	Reinsert mistakenly-deleted MOTOROLA conditionals around
+	some OUTPUT_JUMPs.
+
+Thu Jan 28 09:51:41 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* jump.c (jump_back_p): If TARGET is unconditional, return 0.
+
+Wed Jan 27 04:18:29 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* combine.c (subst): Simplify (plus (plus x c1) c2).
+
+	* expr.c (emit_push_insn): Don't use small-block push-insns for BLKmode
+	when one of them would be affected by PUSH_ROUNDING.
+	Instead, make all the space and then copy.
+	* expr.c (expand_call): Don't apply PUSH_ROUNDING if BLKmode.
+
+	* Allow `asm' with operands to be marked volatile.
+	* cse.c (canon_hash): Don't record ASM_OPERANDS that has `volatil'.
+	* loop.c (invariant_p): ASM_OPERANDS with `volatil' can't be invariant.
+	* flow.c (volatile_refs_p): Note ASM_OPERANDS that are volatile.
+	* stmt.c (expand_asm_operands): New arg VOL; mark ASM_OPERANDS as vol.
+	* typecheck.c (c_expand_asm_operands): New arg VOL.
+	* parse.y: allow a TYPE_QUAL after ASM.
+
+	* Make cse handle `asm' with operands:
+	* cse.c (canon_hash): Hash string operands by contents, not address.
+	* cse.c (exp_equiv_p): Compare string operands with strcmp.
+	* rtl.c (rtx_equal_p): Compare string operands with strcmp.
+
+	* decl.c (init_decl_processing): Once sizetype is set,
+	correct the type of the sizes of types already made.
+
+	* cccp.c (do_defines): Don't reject #define foo{a}.
+
+Tue Jan 26 04:53:16 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* reload.c (find_reloads): Now that `asm' is limited to
+	MAX_RECOG_OPERANDS, eliminate dynamic allocation of `constraints'
+	and `constraints1', and go back to `recog_operand' instead of
+	`operands'.
+
+	* typecheck.c (c_expand_asm_operands): New fn to handle `asm' for C.
+	Calls expand_asm_operands, and handles output operands that
+	the other function cannot handle.
+
+	* parse.y: Call that function.
+
+	* stmt.c (expand_asm_operands): Error if too many operands.
+	#include insn-config.h to get MAX_RECOG_OPERANDS.
+
+	* expr.c (expand_assignment): Use store_field to handle
+	structure fields and array elements.
+
+	* output-m68k.c (output_move_double): PUSHOP and POPOP were swapped.
+	Handle insns that push an sp-relative address onto sp;
+	these can arise with -fomit-frame-pointer.
+	BUG? Do unoffsetable mem refs using sp and fp lose?
+
+	* m68k.md (movdi,movdf): Allow unoffsetable mem refs
+	only if the other operand is a register.
+
+	* m68k.md (zero_extendqisi2): SGS conditionals deleted.
+	Supposedly the MOTOROLA syntax works for those addresses.
+
+	* typecheck.c (default_conversion):
+	If flag_traditional, preserve unsignedness when promoting ints,
+	and promote float to double.
+
+	* typecheck.c (build_binary_op_nodefault):
+	Allow comparisons between pointers and ints.
+	If not -traditional, warn about them.
+
+Mon Jan 25 02:11:18 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* expmed.c ({extract,store}_split_bit_field):
+	Functions {extract,store}_split_reg_bit_field now work for memory
+	also, and therefore are renamed.
+	* ({extract,store}_fixed_bit_field): Call those fns when a field
+	is split across two words.
+	Also, preserve the `volatil' bit on memory refs.
+
+	* output-m68k.c (output_move_double): Handle nonoffsetable mem refs.
+	* m68k.md: Relax constraints on movdi, movdf.
+
+	* decl.c (init_decl_processing): Define `int' and `char' first.
+	Set `sizetype' explicitly.
+
+	* stmt.c (fixup_var_refs_1): May not just return when a SET
+	doesn't have VAR as its src or dest.
+
+	* varasm.c: Don't include c-tree.h.
+
+	* decl.c (build_struct): Split this function into three:
+	`xref_tag', `start_struct' and `finish_struct'.
+	`xref_tag' subsumes `xref_enum'.
+
+	* parse.y (structsp): When parsing `struct foo {...}', define the tag
+	as a cross-ref before parsing the components.  Use the three new fns.
+
+	* regclass.c (regclass): Recognize new-format ASM_OPERANDS insns
+	with `asm_noperands', and scan their operands as usual.
+
+	* cse.c: In numerous functions such as canon_hash, rtx_cost, etc.
+	that do tree-walk on rtx, handle vectors of subexpressions.
+
+	* loop.c (invariant_p): Likewise.
+
+	* jump.c (delete_insn): Two bugs:
+	If insn already deleted, return the first following nondeleted.
+	Deleting a jump's label can delete NEXT.  Make sure return value
+	is always the first insn following INSN and not yet deleted.
+
+Sun Jan 24 02:27:49 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* rtl.def (ASM_OPERANDS): Change the rtl expression of an
+	`asm' with operands so it looks like this for one output operand:
+	(set OUTPUT (asm_operands:OUTPUTMODE INSNSTRING OUTPUTCONSTRAINT
+					     0 INPUTS INPUTCONSTRAINTS)).
+	and like this for multiple outputs:
+	(PARALLEL [
+	  (set OUTPUT0 (asm_operands:OUTPUTMODE INSNSTRING OUTPUTCONSTRAINT
+					        0 INPUTS INPUTCONSTRAINTS)).
+	  (set OUTPUT1 (asm_operands:OUTPUTMODE1 INSNSTRING OUTPUTCONSTRAINT1
+					        1 INPUTS INPUTCONSTRAINTS))])
+
+	* parse.y: Change parsing of `asm' to distinguish input and output
+	operands.  Separate them with colon; separate the string with colon.
+
+	* stmt.c (expand_asm_operands): Receive inputs and outputs separately.
+	Generate the new rtl format.
+
+	* recog.c (asm_noperands, decode_asm_operands): New fns
+	for extracting the operands and constraints from these insns.
+
+	* final.c (final): Recognize and output the new rtl format
+	using those new functions.
+
+	* reload.c (find_reloads): Recognize and get constraints
+	from the new rtl format using those new functions.
+	New variable `operand_modes' holds the machine modes of the
+	operands, obtained one way for ASM_OPERANDS insns and another
+	for other insns.
+
+	* rtl.c (note_stores): Calling convention
+	is changed: the first arg FUNCTION now receives as its 2nd arg
+	1 if clobbering, 0 if setting.  Used to be the CLOBBER or SET rtx.
+
+	* local-alloc.c (reg_is_set): This fn is called from note_stores;
+	change its arguments.
+
+	* tm-m68k.h (FIXUP_FRAME_POINTER_ADDRESSES):
+	Use frame_pointer_rtx to recognize intended frame-pointer refs
+	and not recognize pseudo-regs that were allocated to the frame
+	pointer register.
+
+	* emit-rtl.c: All refs to frame pointer use a single rtx, in
+	frame_pointer_rtx.  Likewise arg_pointer_rtx for the arg pointer.
+	If they are the same register, these are the same rtx.
+	Initialize them in init_emit.
+	* rtl.h: Declare these vars.
+
+	* stmt.c (assign_parms, assign_stack_local): Use those rtx's.
+
+Sat Jan 23 00:32:10 1988  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+
+	* reload.c (find_reloads): Don't combine_reloads if `&' constraint
+	was used.
+
+	* parse.y: Parse `asm' with operands.
+	* stmt.c (expand_asm_params): New fn: generate an ASM_OPERANDS for
+	`asm' with operands.
+	* final.c (final): Output an ASM_OPERANDS insn-body.
+	* regclass.c (regclass): Ignore ASM_OPERANDS, like ASM_INPUT.
+
+	* reload.c (find_reloads): Handle reloading of ASM_OPERANDS.
+	The number of operands can no longer be bounded.
+	For example we can't always put the operands in recog_operands.
+
+	New locals OPERANDS and OPERAND_LOCS point to alloca'd vectors of
+	operands and their locations.  New locals CONSTRAINTS and CONSTRAINTS1
+	hold alloca'd vectors of constraints.
+
+	Unfortunately this isn't enough; every vector with length
+	MAX_RECOG_OPERANDS needs to be dynamically allocated.
+	Would this be too slow?  For now, a cheap "solution" is to delete
+	any insn that has too many operands.
+
+	* rtl.def: Delete VOLATILE, UNCHANGING and UNDESCRIBED.
+	Add ASM_OPERANDS.
+
+	* regclass.c (reg_class_record): Delete ref to UNCHANGING.
+	* loop.c (invariant_p):
+	* rtl.c (rtx_varies_p):
+
+	* cccp.c: Define __VERSION__.
+
+	* decl.c (shadow_tag): TYPE_NAME doesn't work to get the tag-name
+	of a struct, so use new function lookup_tag_reverse.
+	* decl.c (lookup_tag_reverse): Given a type, return its tag name.
+
+	* symout.c (symout_source_file): Output one `struct source'.
+	* symout.c (symout_lines): Output all of them, and the sourcevector.
+	* gdbfiles.h: New file for communication between final.c and symout.c.
+
+	* final.c (output_source_line): New arg WRITE_SYMBOLS says write
+	new GDB-format linenumber info.  Assigns a filenum to each source
+	file name and keeps track of the correspondence.
+
+	* cccp.c (do_include): Output the -M info after searching the dirs;
+	include the actual dir name.  Don't generate "./" for current dir.
+
+Fri Jan 22 04:10:10 1988  Richard Stallman  (rms at frosted-flakes)
+
+	* tm-news800.h: Delete override of INDIRECTABLE_1_ADDRESS.
+	Output is faster if it doesn't use 32-bit displacements.
+
+	* reload.c (combine_reloads): New function.
+	If possible, find an input reload
+	and an output reload that can be turned into one input-output reload.
+	The old output-reload is marked as inoperative: reload_out
+	and reload_in both zero.  This is called from find_reloads.
+
+	* reload1.c (reload, choose_reload_targets): Ignore inoperative
+	reloads.
+
+	* Print warnings for variables that could be clobbered by `longjmp'.
+	* expr.c (expand_call): Generate a NOTE_INSN_SETJMP whenever
+	`setjmp' or `_setjmp' is called.
+	* flow.c (propagate_block): When NOTE_INSN_SETJMP is seen,
+	record the live regs in `regs_live_at_setjmp'.
+	* stmt.c (uninitialized_vars_warning): Warn about vars that have regs
+	that are set more than once and are marked in `regs_live_at_setjmp'.
+	Works through function `regno_clobbered_by_longjmp'.
+	* rtl.h: Define NOTE_INSN_SETJMP.
+
+	* genrecog.c (try_merge_2): When enforce_modes, keep all the
+	alternatives segregated by modes and keep the modes in numerical order.
+	* genrecog.c (write_tree): Make conditions for switch-on-modes
+	know what difference enforce_mode makes.
+
+Thu Jan 21 00:12:35 1988  Richard Stallman  (rms at frosted-flakes)
+
+	* tm-ns32k.h: Use Stein's definitions of PRINT_OPERAND{,_ADDRESS};
+	move the Sequent definitions info tm-sequent.h.
+	Handle %$ in both old and new PRINT_OPERAND.
+	Define CPP_PREDEFINES.
+
+	* ns32k.md: Merge some features from Jan Stein's port:
+	strict_low_part insns, smart output of booleans with small
+	constant args, acbd insns generalized for other increments.
+	Use %$ wherever there is an explicit immediate.
+	Fix shortcomings of adjsp insns: use adjspd in general,
+	and use adjspb in all the cases that allow it.
+	Don't bother explicitly clearing CC_REVERSED.
+	For tstsf/tstdf, output the floating-zero constants
+	using {f,d}const0_rtx.
+
+	A problem still remains, which is that the Sequent and the
+	other ns32k assembler syntax require different 
+
+	* typecheck.c (unary_complex_value): Use correct datatype for
+	compound-exprs.
+
+	* gen*.c (main): Use obstack_init instead of obstack_begin.
+
+	* vax.md: define_peephole for  andl3 x,y,z; extzv z,....,z
+
+	* m68k.md (tstsi): Use cmpw instead of cmpl to test addr reg.
+
+	* tm-m68k.h: Bugs for 68000 when frame size is over 64k.
+	For FUNCTION_PROLOGUE, just subtract from sp instead of fp.
+	For FUNCTION_EPILOGUE, must put the size into a0 and then
+	all insns must be indexed by a0.  And do this even on 68020.
+
+	* tm-isi68.h: Similar changes.
+	* tm-news800.h, tm-hp9k320.h: Similar changes.
+
+Wed Jan 20 04:38:21 1988  Richard Stallman  (rms at frosted-flakes)
+
+	* cccp.c (error_with_line): New function.
+	Use it to report the "unterminated whatever" errors.
+
+	* typecheck.c (build_unary_op): Recursive call had missing arg.
+
+	* m68k.md (movhi): If MOTOROLA, the insn that fetches from a
+	case-dispatch table now defines the LI label as .+2.
+	* tm-news800.el, tm-hp9k320.h (PRINT_OPERAND_ADDRESS):
+	Don't subtract 2 when outputting the address in that insn.
+
+Tue Jan 19 00:02:33 1988  Richard Stallman  (rms at frosted-flakes)
+
+	* cse.c (cse_basic_block): Abort if more qtys were used than allocated.
+
+Mon Jan 18 04:44:28 1988  Richard Stallman  (rms at frosted-flakes)
+
+	* cccp.c (special_symbol): tm_mon is origin-0, not origin-1.
+
+	* final.c (output_asm_insn): If %LETTER with no digits,
+	pass null pointer as the operand.
+
+	* output-m68k.c (singlemove_string): Get rid of %e.
+
+	* stmt.c (fixup_memory_subreg): Convert (SUBREG (MEM a)) to (MEM a').
+	* stmt.c (fixup_var_ref_1): Use that fn for operands of
+	SIGN_EXTRACT and ZERO_EXTRACT, since (SUBREG:SI (REG:QI...))
+	could have turned into (SUBREG:SI (MEM:QI...)), which is unsafe.
+
+	* rtl.c (debug_rtx): Print an rtx on stderr, for debugging.
+
+Sun Jan 17 04:37:20 1988  Richard Stallman  (rms at frosted-flakes)
+
+	* gcc.c: options -M* treated like -M.
+
+	* stmt.c (pushcase): Do nothing if the case index has error_mark type.
+
+	* expr.c (expand_increment): Don't use queue for post-inc on memory
+	if the add insn requires register args.  (Better code for RISCs.)
+
+Sat Jan 16 02:10:22 1988  Richard Stallman  (rms at frosted-flakes)
+
+	* ns32k.md: Change register_operand to general_operand.
+	* ns32k.md (udivmoddisi4): Use match_dup where required.
+	Comment it out because it can't accept two independent output args.
+
+Fri Jan 15 00:02:35 1988  Richard Stallman  (rms at frosted-flakes)
+
+	* toplev.c: Include sys/time.h only for BSD.  For USG, use time.h.
+	This is correct for HPUX; don't know about others.
+
+	* gcc.c (execute): Eliminate `union wait'.  Make `status' an int.
+	* gcc.c (execute) [USG]: Use fork instead of vfork.
+
+	* final.c (output_source_line): Use ASM_OUTPUT_SOURCE_{FILENAME,LINE}
+	if they are defined.
+
+	* tm-hp9k320.h: New name for tm-hpux.h.
+	* tm-hp9k320.h (ASM_OUTPUT_LOCAL): Add 3rd arg to `lcomm' statements.
+	* tm-hp9k320.h (ASM_OUTPUT_{DOUBLE,FLOAT}): Use `double' and `float'.
+	* tm-hp9k320.h (CALL_USED_REGISTERS): Don't save any 68881 regs.
+	* tm-hp9k320.h (CPP_PREDEFINES): different names defined.
+	* tm-hp9k320.h (HPUX_ASM, NO_DBX_FORMAT, ASM_SPEC): define these.
+	* tm-hp9k320.h (ASM_OUTPUT_OPCODE): Convert `ftst' to `ftest'.
+	* tm-hp9k320.h: Define ASM_OUTPUT_SOURCE_{FILENAME,LINE}.
+
+	* m68k.md: Rename `hpux' conditionals to `HPUX_ASM'.
+	* m68k.md: Reverse `fcmp' args if HPUX_ASM.
+
+	* cccp.c (print_deps): 2 means give all files, 1 means only user files.
+	* cccp.c (do_include): Support that.
+	* cccp.c (main): -MM sets 1, -M alone sets 2.
+	* cccp.c (main): Give fatal error if I/O error in writing.
+
+	* toplev.c (fatal_io_error): Report I/O error on given filename,
+	and exit.
+
+	* toplev.c (compile_file): Detect error writing asm_out_file.
+	Always put asm file's name in asm_file_name for err msg.
+	* symout.c (symout_finish): Detect error writing symfile.
+	* symout.c (symout_init): Save filename in symfile_name for err msg.
+
+	* gen*.c: Return 1 if ferror (stdout)--in case disk is full.
+
+	* local-alloc.c (block_alloc): Don't crash if 1st rtx
+	in a PARALLEL is not a SET.
+
+	* tm-m68k.h, tm-news800.h (PRINT_OPERAND).  Eliminate code `%e'.
+	* m68k.md: Change `%e' to `e' everywhere.
+	* tm-hpux.h (ASM_OUTPUT_OPCODE): Output `move' as `mov'.
+
+	* tm-m68k.h, tm-news800.h, tm-hpux.h (PRINT_OPERAND):
+	New code `%!' is output as the name for the cc register.
+	* m68k.md (insns that use andi to ccr): Use `%!' to avoid
+	conditionals.
+
+	* cse.c: Record in qty_const_insn the insn that stored the
+	constant value of a qty.  When making a REG_WAS_0 note,
+	store in it the insn that established the value 0.
+
+	* vax.md (movsi): When checking a REG_WAS_0 note,
+	verify that the insn it points to hasn't been deleted or made a NOTE.
+
+Thu Jan 14 00:01:35 1988  Richard Stallman  (rms at frosted-flakes)
+
+	* toplev.c: Eliminate error_with_line and warning_with_line.
+	* parse.y, decl.c: Change remaining calls to those two.
+
+	* tree.c (get_unwidened, get_narrower): To see if a COMPONENT_REF
+	is unsigned, look at the FIELD_DECL, not at the COMPONENT_REF.
+
+	* rtl.c (print_rtx): Print /v for the `volatil' bit.
+	* expr.c (expand_assignment expand_expr): If handling a COMPONENT_REF,
+	note whether it is volatile.
+
+	* fold-const.c (fold): a call to split_tree missed an argument.
+
+	* flow.c (volatile_refs_p): Scan an rtx for volatile mem refs.
+	* flow.c (life_analysis): Record in INSN_VOLATILE which insns
+	have any volatile mem refs.
+	* flow.c (mark_used_regs): Always mark an insn with volatile mem refs.
+	Always pass INSN as an arg.  New arg FINAL now says whether
+	this is the last time scanning.
+	* flow.c (propagate_block): Don't delete insns with volatile mem refs.
+
+	* flow.c: Remove all refs to `obey_regdecls'.
+	Calling this with -noreg just doesn't help -W.
+
+Wed Jan 13 01:13:07 1988  Richard Stallman  (rms at frosted-flakes)
+
+	* decl.c (finish_decl): Error if auto var's size isn't known.
+	Change type to error_mark_node to avoid crash if the var
+	is used in an expression, since it has no DECL_RTL.
+
+	* output-m68k.c (output_move_const_single): % -> %% for sprintf.
+
+	* parse.y (yylex): Store token_buffer properly after ellipsis.
+
+	* decl.c (duplicate_decls): Don't call layout_decl
+	for FUNCTION_DECL or TYPE_DECL.
+
+	* toplev.c (warning_with_decl): New warning function with decl as arg.
+	* (error_with_decl): similar.
+
+	* decl.c: Replace most `yylinerror' calls with `error_with_decl'.
+
+	* decl.c (build_struct): Reform code to detect erroneous bit-fields.
+	All such errors are now detected here.
+	Promote bit-fields to int if appropriate.
+	If traditional, make all int bit-fields unsigned.
+	Set DECL_ALIGN for members that are not bit-fields.
+
+	* decl.c (grokfield): Don't set DECL_ALIGN here.
+
+	* stor-layout.c (layout_decl): Don't promote the type of a bit-field.
+	Use TREE_PACKED to distinguish a bit-field.
+	Don't check the width because build_struct did that.
+
+	* m68k.md (cmpm): Reject if either operand (address) is a constant.
+
+Tue Jan 12 15:11:20 1988  Richard Stallman  (rms at frosted-flakes)
+
+	* cse.c (canon_reg): Never replace ANY hard reg from reg_rtx
+	because that could alter the machine mode.
+
+	* tm-news800.h: Redefine INDIRECTABLE_1_ADDRESS only if MOTOROLA.
+
+Mon Jan 11 13:15:45 1988  Richard Stallman  (rms at frosted-flakes)
+
+	* jump.c (follow_jumps): If we find a cycle, make it a jump to self.
+
+	* cse.c (predecide_loop_entry): Give up if chase more than 10 jumps.
+
+Sun Jan 10 14:52:42 1988  Richard Stallman  (rms at frosted-flakes)
+
+	* reload1.c (reload): basic_block_needs (new vector) gets 1
+	for each basic block that needs a reload.
+	* reload1.c (spill_hard_reg): Don't spill pseudos that are
+	confined to a basic block which has no need for any reloads.
+	* reload1.c (reload): Each cycle that any element of basic_block_needs
+	changes from 0 to 1, must re-spill all previously spilled regs.
+
+	* regclass.c (record_address_regs):
+	Skip the charging of ICOST if it is 0.
+
+	* flags.h, toplev.c: New flag -fvolatile.
+	* typecheck.c (build_indirect_ref): If flag_volatile,
+	every INDIRECT_REF is marked with TREE_THIS_VOLATILE.
+
+	* fold-const.c (fold): Test in TRUTH_NOT_EXPR case was backward.
+	Also result type is always `int'.
+
+Sat Jan  9 04:16:11 1988  Richard Stallman  (rms at rice-krispies)
+
+	* flags.h (flag_traditional): New flag.
+	* toplev.c: recognize -ftraditional and -traditional.
+	* parse.y (yylex): If flag_traditional, don't recognize
+	`signed', `const' or `volatile'.
+
+	* decl.c (pushdecl): If flag_traditional, any extern decl
+	takes effect at top level.
+
+	* tree.c (lvalue_or_else): New 2nd arg for use in error message.
+	* typecheck.c: All callers pass 2nd arg.
+
+	* global-alloc.c: allocno_preferred_reg can specify a preferred
+	hard reg for each allocno.  If so, try it first (new call to find_reg).
+
+	* global-alloc.c (find_reg): New arg PREFREG specifies reg to try
+	first.
+
+	* decl.c (build_struct): if :0 bit field at the end, round the
+	structure size to multiple of EMPTY_FIELD_BOUNDARY.
+
+	* cse.c (make_regs_eqv): Was testing for reg_next_eqv[lastr] == 0
+	and should be == -1.
+
+	* reload1.c (reload_as_needed): Fix invalid optimization deleting
+	the previous store into a pseudo-reg that feeds an input-reload.
+	It is not safe because a later insn may look in the pseudo's stack
+	slot for the value.  Delete the store only if we can eliminate the
+	pseudo entirely or if the current insn stores a new value there.
+	Also verify that reload_in[j] is a REG.
+
+	* reload1.c (reload_as_needed): When doing an input reload from a
+	pseudo that was stored by the previous insn (not as a reload),
+	redirect the previous insn into the reload register, if this lets
+	us eliminate the pseudo entirely.
+
+	* reload1.c (reload_as_needed): In both of the above cases, it's
+	impossible to prevent a stack slot since one was already assigned,
+	so don't alter reg_n_refs.  Instead, set reg_renumber to record
+	that this pseudo did get a hard reg.
+
+	* stmt.c: Set `volatil' in pseudo-regs for the user's variables.
+
+	* jump.c (delete_insn): Do nothing if insn already deleted.
+
+	* tm-sun{2,3}.h: #define STRUCTURE_SIZE_BOUNDARY 2
+	for compatibility with Sun PCC.  Note that 4.3 vax PCC
+	does not want this.
+
+	* fold-const.c: Replace truncate_unsigned with force_fit_type
+	which truncates unsigned types and sign-extends signed types.
+
+	* expr.c (do_jump): emit_queue before outputting the jump insns
+	that use the comparison.
+
+	* stmt.c: Error message for any goto that jumps into a
+	binding contour that restores a stack level.
+
+	TREE_PACKED (label) means label was defined inside
+	such a binding contour that is now exited.  Using such a label
+	is an error.
+
+	TREE_ADDRESSABLE (label) means label was used from a place
+	outside all such binding contours.  If this is 1 when
+	TREE_PACKED is set to 1, it is an error.
+
+	Any other invalid goto must have a fixup.  fixup_gotos detects
+	such invalid gotos.  fixup_gotos takes a second arg, which
+	is the first insn of the contour now being exited.
+
+	* GNU C version 1.17.
+
+Local Variables:
+mode: indented-text
+left-margin: 8
+fill-column: 76
+version-control: never
+End:
diff --git a/gcc/ChangeLog.1 b/gcc/ChangeLog.1
new file mode 100644
index 0000000..b0f29ab
--- /dev/null
+++ b/gcc/ChangeLog.1
@@ -0,0 +1,9207 @@
+Thu May 10 22:48:31 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtl.def (DEFINE_DELAY): Change description to describe annulling.
+
+	* genattr.c (main): Write out definitions for annulling, if present.
+
+	* genattrab.c (expand_delays): Build internal attributes for
+	which insns can be annulled in a delay slot.
+	(gen_delay): Validate number of elements in DEFINE_DELAY list.
+	(write_eligible_delay): Write out routines for validating annulled
+	insns as well as those in normal delay slot.
+	(main): Call write_eligible_delays to output annulling information,
+	if it exists for this machine.
+
+	* out-m68k.c (not_sp_operand): New function.
+	* m68k.md (andsi3): Don't allow sp as ourput to avoid reload
+	inefficiency.
+
+	* calls.c (struct arg_data): Delete field STORED; add fields
+	PASS_ON_STACK and SAVE_AREA.
+	(prepare_call_address): Static chain value can't have QUEUED.
+	(expand_call): Rework to support additional calling sequence options.
+
+	Major changes include:
+	Call FUNCTION_ARG_PASS_BY_REFERENCE to determine whether an 
+	object should be passed by invisible reference.
+	Handle arguments passed both on stack and in a register; this can be
+	used to allow arguments that are hard to compute directly into
+	registers to be passed.
+	Support option (ACCUMULATE_OUTGOING_ARGS) where the largest amount
+	of stack for outgoing arguments is computer and pushed during the
+	function prologue.  Stack space usage is tracked and any location
+	that would need to be reused will be saved and restored.
+	If preallocating arg block, compute address where each arg will be
+	placed and pass it as target to expand_expr.
+
+	Other changes:
+	Use virtual regs to see if structure value address isn't stable.
+	If inlined, return TARGET if TARGET and TEMP are equivalent.
+	UNNAMED_ARGS_IN_REGISTERS is redundant with the NAMED parameter to
+	FUNCTION_ARG and has been deleted.
+	Use virtual_outgoing_stack_rtx instead of FIRST_PARM_CALLER_OFFSET.
+	Use locate_and_pad_parm to compute any needed padding for argument.
+	If REG_PARM_STACK_SPACE is defined, allocate backing stack locations
+	for args passed in registers; these are not included in the length
+	of stack space required unless OUTGOING_REG_PARM_STACK_SPACE is also
+	defined.
+	When precomputing register parameters, can stop computation when we
+	obtain any rtx, not necessarily a register.
+	No longer need code to protect data written below bottom of stack;
+	this is taken care of by preexpanding calls in argument.
+	target_for_arg no longer needed; its function is performed by
+	store_one_arg.
+	Always copy function return result to our target since they cannot
+	possibly be the same.
+	(target_for_arg): No longer used.
+	(store_one_arg): Save and restore in-use argument list location.
+	Support args passed both in register and on stack.
+	No need for explicit code for preallocated area; now pass location
+	as target to expand_expr; only copy if result in different place.
+	Put sequence point after expanding one value.
+
+	* cse.c (struct write_data): Add bit to indicate stack pointer changed.
+	(canon_hash): Allow recording of stack pointer.
+	(cse_insn): Indicate stack pointer invalidated by subroutine calls.
+	Pass stack push and pop operations to note_mem_written.
+	Process stack pointer assignment as normal operation.
+	Finish change of April 7th that excludes ap and fp from being marked
+	as clobbered by calls.  Also exclude sp; if it is clobbered by a
+	call, an explicit CLOBBER will be written.
+	(note_mem_written): Look for adjustment of stack pointer.
+	(invalidate_from_clobbers): Invalidate stack pointer, if required.
+
+	* emit-rtl.c (gen_inline_header_rtx): Add field for outgoing args size.
+	(copy_rtx_if_shared): Check for any virtual register instead of frame
+	or argument pointer.
+	(init_emit): Start normal pseudos after virtual pseudos.
+	Copy the unique virtual regs into regno_reg_rtx.
+	(init_emit_once): Incoming and outgoing static chain can be the same;
+	inlining of nested functions won't need the distinction.
+	Create unique copies of virtual registers.
+
+	* explow.c (memory_address): Don't worry about refs to fp or ap;
+	force_reg knows how to handle them correctly.
+	(fix_lexical_addr): Moved to function.c
+	(adjust_stack, anti_adjust_stack): Do nothing for adjustment of zero.
+	(allocate_dynamic_stack_space): New function copied from
+	expand_builtin.  Handle STACK_POINTER_OFFSET via
+	virtual_stack_dynamic_rtx.  When STACK_POINTER_OFFSET is defined,
+	perform alignment by always reserving a multiple of STACK_BOUNDARY
+	stack bits.  This avoids concern about whether sp itself or the top of
+	stack needs to be aligned; if we start with an aligned stack, we keep
+	it aligned.
+	(round_push): Use ADD and AND rather than DIV and MULT.
+
+	* expr.c (init_expr): Initialize some more vars.
+	(push_block): Use virtual_outgoing_args_rtx so don't need
+	STACK_POINTER_OFFSET here.
+	Merge extra and size more efficiently; no need to call force_operand
+	since memory_address is called.
+	(emit_push_insn): Pass type for FUNCTION_ARG_PADDING.
+	Use REG_PARM_STACK_SPACE instead of FIRST_PARM_CALLER_OFFSET.
+	To see if must copy address, check if it is a virtual register that
+	will be mapped to sp; only need check if not accumulating space
+	space for outgoing parms.
+	Ignore EXTRA if argument block has already been allocated.
+	(emit_library_call): Major rework to support calling sequences similar
+	to expand_call in calls.c, but only support a very small subset of
+	the conventions; abort if something outside our subset occurs.
+	Abort if incorrect mode is passed; we can't convert here since we don't
+	know the signedness.
+	(store_field): Check for virtual registers instead of hard registers
+	when seeing if stable.
+	(safe_from_p): Location in outgoing stack area is known to be safe.
+	(expand_builtin, BUILT_IN_ALLOCA): Use allocate_dynamic_stack_space.
+
+	* expr.h: Define current_function_outgoing_args_size and
+	locate_and_pad_parm; delete definition of get_structure_value_addr.
+	(ARGS_SIZE_RTX): Always return a valid operand.
+	(ARGS_SIZE_TREE): New macro.
+	(FUNCTION_ARG_PADDING): Accept MODE and TYPE like other
+	FUNCTION_ARG_... macros.
+	(FUNCTION_ARG_BOUNDARY): Provide default for new macro.
+	(MUST_PASS_IN_STACK): New macro.
+	(allocate_dynamic_stack_space): New function.
+	* tm-3b1.h, tm-3b1g.h, tm-apollo68.h, tm-crds.h, tm-mot3300.h:
+	Change definition of FUNCTION_ARG_PADDING to use TYPE instead of SIZE.
+
+	* function.c (current_function_outgoing_args_size): New var.
+	(arg_pointer_save_area, virtuals_instantiated): Likewise.
+	(invalid_stack_slot): No longer used.
+	(push_function_context, pop_function_context): Save and restore
+	outgoing args size and arg pointer save area.
+	No longer save or restore invalid_stack_slot.
+	(pop_function_context): Set up variables whose value is constant
+	throughout rtl generation.
+	(get_frame_size): No longer adjust by STARTING_FRAME_OFFSET.
+	(assign_stack_local): Use virtual_stack_vars_rtx instead of fp
+	until virtuals have been instantiated, then use fp.
+	Remove reference to obsolete invalid_stack_slot.
+	Can no longer be called with size == 0.
+	(assign_outer_stack_loc): Use virtual_stack_vars_rtx instead of fp.
+	Remove references to obsolete invalid_stack_slot.
+	Push to obstack of containing function when allocating rtx.
+	(put_var_into_stack): Only switch obstacks around making of
+	queue entry.
+	Replace call to parm_stack_loc with reference to info in proper
+	function.
+	(fixup_stack_1): Handle any virtual register instead of handling
+	just fp.
+	(instantiate_virtual_regs, instantiate_virtual_regs_1): New functions.
+	(use_variable, use_variable_after): Check for virtual register
+	instead of checking against ap and fp.
+	(parm_stack_loc): Function deleted.
+	(assign_parms): No longer need internal_arg_pointer.
+	Accept SECOND_TIME argument that suppresses rtl generation and
+	assignments to DECL_RTL.  Used by integrate.c to recompute vars.
+	Don't use FIRST_PARM_OFFSET here; use virtual_incoming_args_rtx.
+	Replace test for nonstable incoming arg pointer.
+	If structure value address is treated as the first argument, add
+	it into the list of arguments; this means we can have a RESULT_DECL
+	in with the PARM_DECL's.
+	DECL_OFFSET is no longer needed by integrate.c.
+	Handle args passed by invisible reference.
+	Support new macro, SETUP_INCOMING_VARARGS, to save all registers used
+	for args including and beyond those for the current arg.  Used for
+	non-ANSI varargs.
+	Pass locate_and_pad_parm data it needs to handle reg->stack boundary
+	if register parameters have assigned stack space.
+	If we received the function's incoming structure pointer as a
+	normal argument, update DECL_RTL of DECL_RESULT.
+	Round total argument size if required; similarly, always use at
+	least REG_PARM_STACK_SPACE bytes if defined.
+	(locate_and_pad_parm): Do not need PARM.
+	Major rework to do much of the job of aligning and padding stack
+	location.  Now a void function wich is passed pointers to struct 
+	args_size vars that are set to the argument position, size, and
+	initial offset.
+	Accept flag denoting if a parm was passed in a register and also
+	the current function declaration.
+	If register parameters are assigned stack locations and there is a
+	minimum required size for the area assigned to register parameters,
+	pad the stack position when a parameter not assigned to a register
+	is encountered.
+	Remove redundant code in MAX_PARM_BOUNDARY case.
+	(lookup_static_chain): Use virtual_stack_vars_rtx instead of fp.
+	(fix_lexical_addr): Move from explow.c.
+	If referencing variable that lives in the incoming argument area
+	of its parent and a separate ap is required, allocate a save area in
+	the parent for it and use it here.  If no separate ap is require,
+	compute offset between ap and fp.
+	(trampoline_address): No need to push obstacks here.
+	(init_function_start): Initialize new vars; delete obsolete vars.
+	(expand_function_start): Don't need to handle case where incoming
+	structure return address is passed as hidden parameter here; now done
+	completely in assign_parms.
+	(expand_function_end): Save ap if a save area was made for it.
+	Set REG_FUNCTION_VALUE_P when copying address of returned
+	structure.
+	Be consistent in use of FUNCTION_... macros vs. hard_function_value.
+
+	* function.h (outgoing_args_size, arg_pointer_save_area): New fields.
+	(invalid_stack_slot): Obsolete, deleted.
+
+	* integrate.c: Major rework and simplification.
+	Split up vars into two classes.  Those used for expand_inline_function
+	and children are now part of struct inline_remap.  Most of the others
+	are for save_for_inline and its children.
+	(function_cannot_inline_p): The only type of arguments that will
+	cause us to reject inlining are variable-sized arguments; also
+	reject functions that return variable-sized objects.
+	For now, don't inline a nested function.  We'll support this shortly.
+	Use current_function_returns_pcc_struct instead of duplicating test.
+	(save_for_inline): No need to set TREE_VOLATILE for parms.
+	Save outgoing args size in header.
+	Use unique copy of virtual reg rtx's.
+	Handle any required fixups for INSN_LIST forward-references.
+	Don't bother resetting dead static vars when we are done.
+	Need not save current_function_pretend_args_size.
+	(copy_for_inline): First copy all insns, then all REG_NOTES to avoid
+	problems with forward references.
+	(struct inline_remap): Move all previously-static vars used by
+	expand_inline_function and children into this structure.  This avoids
+	potential problems due to recursive calls to expand_inline_function.
+	(expand_inline_function and children): Allocate a struct inline_remap
+	and pass to all children.
+	(expand_inline_function): Rework parameter handling by looking at
+	DECL_RTL and using it to determine what types of mappings need to be
+	done.  Support objects passed by invisible reference.  Put any
+	constant memory addresses into const_equiv_map.  parm_map is no longer
+	used.
+	Likewise for the return value: consult DECL_RTL (DECL_RESULT)).
+	Don't allocate space for called function's frame until referenced.
+	No longer need special handling for insn following CALL.
+	Ignore USE whose argument has REG_FUNCTION_VALUE_P true.
+	Ignore setting function register if we don't have a mapping for it
+	(e.g., we are ignoring the result of the call).
+	Look at new SET_SRC for constant equivalences.  Some new ones may
+	have resulted from constant folding.
+	Pass both new and old rtx to try_constants.
+	Discard NOTE_INSN_DELETED notes.
+	Copy insns first, then REG_NOTES, to avoid problems with forward refs.
+	(copy_parm_decls): Compute new address of parameter using the
+	constant equivalence map, which will contain the remapping of
+	the frame and argument pointer.
+	(copy_decl_tree): Likewise.
+	(copy_rtx_and_substitute): Handle references to frame and argument
+	pointers by allocating a space equal to the size of the frame and
+	incoming arguments, respectively, and setting a pseudo to point to
+	the start of each area.  Set up an equivalence in CONST_EQUIV_MAP
+	between fp or ap and the actual address.  Return the pseudo.
+	Don't need to deal with possibility of (SUBREG (CONST_INT)) since
+	we are only replacing register with other registers here.
+	No longer need to special-case PLUS and MEM;  subst_constants will do
+	this work.
+	Update detection of sets of ap and fp.
+	(try_constants, subst_constants): Accept old and new rtx.  They will
+	be isomorphic, with only register numbers changed.  Use old rtx to
+	look up register in CONST_EQUIV_MAP and new rtx for substitution.
+	Correctly handle SUBREG of CONST_INT and CONST_DOUBLE.
+	Fix typos in handling of PLUS.
+	(access_parm_map, copy_address): Delete functions.
+	(try_fold_cc0): Handle both compare and test.
+	(fold_out_cnst_cc0): Rework to simplify and remove dubious cases.
+	(output_inline_function): Call assign_parms to perform any needed
+	setups.
+	Need not restore pretend arg size (will be computed by assign_parms).
+	Restore outgoing argument size.
+
+	* output.h (current_function_outgoing_args_size): New var.
+
+	* rtl.h (OUTGOING_ARGS_SIZE): New field in INLINE_HEADER.
+	(PRETEND_ARGS_SIZE): No longer needed.
+	(virtual_..., VIRTUAL_...): Define virtual register numbers and rtx.
+
+	* rtlanal.c (rtx_equal_p): Update comment on use of
+	REG_FUNCTION_VALUE_P.
+
+	* stmt.c (expand_goto): Just restore fp; non-local goto handler
+	will restore ap if needed.
+	(expand_return): Don't use STARTING_FRAME_OFFSET here.
+	(expand_end_bindings): Adjust fp in nonlocal-goto handler.  If needed,
+	reload ap from its save area in the frame; allocate save area if none.
+	(expand_decl): Use new function allocate_dynamic_stack_space.
+
+	* toplev.c (rest_of_compilation): Instantiate virtual registers.
+	Clear rtx_equal_function_value_matters immediately after possibly
+	saving current routine for inlining.
+
+	* stupid.c (stupid_life_analysis): Don't try to allocate virtual
+	registers (which don't exist any more).
+
+Thu May 10 13:59:11 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (modes_equiv_for_class_p): Don't compare HARD_REGNO_NREGS.
+
+	* combine.c (subst): Simplify
+	(sign_extend:M (subreg:N (ashiftrt:M (sign_extend:M (any:N ...))))).
+
+	* fixincludes: Verify that a link leads back to /usr/include
+	by checking name of dir it arrives in.  If so, use rest of dirname
+	as target for new link.
+
+	* Makefile.in (tmpgnulib): Put dummy entry in loop with LIBFUNCS_EXTRA
+	so loop is never null.  Then ignore that entry when it comes up.
+
+	* gcc.c (default_compilers): Add explicit suffix to arg of -dumpbase.
+
+Tue May  8 13:54:37 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-ultrix.h: New file.
+
+Mon May  7 18:47:47 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* i386.md (test... recognizers): Output symbolic constant first.
+
+Sun May  6 22:51:06 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* function.c (fixup_memory_subreg): Make a sequence if -fforce-addr.
+
+	* fixincludes: When going to directory of link name, don't lose  
+	if name has no directory.
+	Move the code to fix netinet/ip.h; was in the middle of something.
+
+	* Makefile.in (tmpgnulib): Test LIBFUNCS_EXTRA for nonempty.
+
+Sun May  6 08:29:27 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (LIBFUNCS): Remove extraneous "\".
+
+	* Makefile.in (stamp-gnulib2): Move "-" to proper line.
+
+	* gnulib2.c (clear_cache): Ignore routine unless INSN_CACHE_SIZE
+	is defined (avoids cpp-detected divide-by-zero).
+
+	* expr.c (safe_from_p): Don't blow up when passed a null tree.
+
+	* varasm.c (get_pool_size): New function to return constant pool size.
+
+Fri May  4 16:11:54 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (safe_from_p): If EXP has some rtx, just check it.
+	Handle TREE_LIST, RTL_EXPR, and WITH_CLEANUP_EXPR.
+	Note that CALL clobbers memory and hard registers.
+	Look at enclosed object for SUBREG, but SUBREG of a hard reg is unsafe.
+
+	* expr.c (store_constructor): Now that safe_from_p has been applied
+	to the target, need not avoid hard register targets.
+	Abort if called with neither ARRAY_TYPE or RECORD_TYPE.
+
+	* reload.c (find_equiv_reg): Handle goal of (plus (sp) (const)).
+
+	* Makefile.in (STAGESTUFF): Include hard-params.
+
+Fri May  4 15:33:22 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gcc.c (add_prefix): New arg WARN.  Record in prefix_list.
+	(main): Calls changed.  Pass nonzero for -B prefixes.
+	Later, call unused_prefix_warning.
+	(unused_prefix_warning): Warn about prefixes never used.
+
+Thu May  3 16:56:43 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* print-tree.c (print_node): Align the `align' line with the others.
+
+	* expmed.c (store_bit_field): Maximum size for loading mem struct
+	into reg comes from the mode of the value to be stored.
+	Alignment is no restriction if it matches BIGGEST_ALIGNMENT.
+	Always do the real work in SImode if couldn't use MEM.
+	(extract_bit_field): Likewise.
+
+	* combine.c (subst): Handle (sign_extend:M (subreg (sign_extract:M)))
+	on big-endian machine like corresponding zero_extend case.
+
+	* combine.c (try_combine): Use rtl_equal_p instead of == when
+	testing for sources and destinations that match.
+
+	* pyr.md (bitw recognizer): Set CC_NO_OVERFLOW.
+
+Thu May  3 13:03:02 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case COND_EXPR): Can always use original
+	target if specified.
+	In "X ? A + B : A" case, use safe_from_p to see if target conflicts
+	with B.
+
+	* cse.c (cse_insn): Don't rewrite (set REG0 REG1) if REG1 is a hard
+	register even if is REG0 cheaper.
+
+Thu May  3 12:04:19 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (reload): Handle multiple size groups for one class.
+
+	* stdarg.h: Typo in conditional.
+
+Wed May  2 16:34:25 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-sun3.h (CC1_SPEC): Ignore -target.
+	(WORD_SWITCH_TAKES_ARG): Define it.
+	* tm-sparc.h (CC1_SPEC): Ignore -target and -dalign.
+	(WORD_SWITCH_TAKES_ARG): Define it.
+
+Wed May  2 09:38:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): Always replace registers with oldest equivalent,
+	including the case when the destination is present in the source.
+
+Tue May  1 15:55:52 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gnulib2.c (__adddi3, __subdi3): New, simpler algorithm.
+
+Tue May  1 14:48:03 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* Makefile.in: Insert "else true;" in *_ALLOCA macros.
+
+	* stor-layout.c (mode_for_size): No longer static.
+	Accept LIMIT parameter to limit mode to MAX_FIXED_MODE_SIZE.
+	(layout_decl, layout_type): Pass appropriate limit parameter to
+	mode_for_size.
+
+Tue May  1 13:09:43 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stmt.c (assign_parms): Don't make entry_parm and stack_parm valid.
+	Leave them explicit stack slots.
+	* explow.c (validize_mem): Copy it, don't alter it.
+
+	* out-m68k.c (standard_68881_constant_p): Handle HOST_WORDS_BIG_ENDIAN.
+
+	* integrate.c (save_for_inline): Copy reg notes after all insns.
+
+	* combine.c (subst): When checking reg_last_set, verify nonzero.
+
+	* gcc.c (default_compilers): Use %b, not %i, after -dumpbase.
+
+	* stor-layout.c (make_unsigned_type): Change like make_signed_type.
+
+Tue May  1 07:36:21 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* tm-m68k.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Allocate space
+	for local variables even if no frame pointer; adjust size to account
+	for place where old frame pointer would have been placed.
+	(INITAL_FRAME_POINTER_OFFSET): Add frame size instead of subtracting
+	it and perform adjustment described above.
+
+	* expr.c (validate_subtarget): Deleted.
+	(expand_expr): Replace calls to validate_subtarget with safe_from_p.
+
+Mon Apr 30 01:39:14 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Makefile.in (install-headers): Simplify loop by cd'ing to srcdir.
+
+	* stor-layout.c (layout_type): Get alignment of all scalar types
+	from the mode.
+	(make_signed_type): Get rid of ptr_size_node, function_size_node.
+	* tm-*.h (POINTER_BOUNDARY): Deleted.
+
+	* c-typeck.c (build_unary_op): For ADDR_EXPR of COMPONENT_REF,
+	mark the PLUS_EXPR constant if appropriate.
+	(parser_build_binary_op): Record C_SET_EXP_ORIGINAL_CODE here.
+	(build_binary_op): Not here.
+
+	* fold-const.c (size_int): Make arg unsigned.
+
+	* varasm.c (output_addressed_constants): Fixed typo.
+
+	* cccp.c (macarg1): `\' not special outside strings.
+
+	* c-typeck.c (build_unary_op): In increment ops,
+	typo checking for ptr to void/function.
+	Check original type for this and for amount of increment.
+
+Sat Apr 28 16:43:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (build_indirect_ref): Error if target is incomplete type.
+
+Fri Apr 27 13:56:22 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (order_regs_for_reload): Count multi-word pseudos right.
+
+Thu Apr 26 17:52:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (handle_directive): Don't pass directive through if no_output.
+
+	* c-parse.y (yylex): Large hex constants are signed if -traditional.
+
+Tue Apr 24 13:57:22 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* i860.md, m88k.md: Add missing = in some output constraints.
+
+	* tm-ns32k.h (POINTER_BOUNDARY): Now 32.
+
+	* out-*.c (output_move_double): Use split_double.
+	* final.c (split_double): New function, handles byte-order differences.
+
+	* stmt.c (expand_decl): Check size for integer, not "constant".
+	* stor-layout.c (layout_decl, layout_type): Likewise.
+	* c-decl.c (finish_decl): Likewise.
+	* c-typeck.c (digest_init): Likewise.
+	* varasm.c (assemble_variable, output_constructor): Likewise.
+	(decode_addr_const): Distinguish getting rtl by code alone.
+	(output_addressed_constants): No need to abort.
+	In ADDR_EXPR case, check TREE_CODE_CLASS.
+
+	* c-tree.h (C_DECLARED_LABEL_FLAG): New flag.
+	* c-parse.y (label declarations): Set it.
+	* c-decl.c (pop_label_level, lookup_label): Use it.
+
+	* expr.c (string_constant): Accept variable offsets.
+	(expand_expr): Check for explicit integers, not constants, in sizes.
+	(safe_from_p): No need to check TREE_CONSTANT.
+
+	* Makefile.in (prefix): Now replaces /usr/local instead of adding on.
+
+Mon Apr 23 02:01:11 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cplus-tree.h (DECL_FRIENDLIST): Use DECL_INITIAL.
+
+	* expr.c (expand_assignment): Use expr_size to compute size.
+
+Sun Apr 22 21:53:55 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (expand_assignment, expand_expr): Check for COMPONENT_REF
+	before testing DECL_BIT_FIELD.
+
+	* stor-layout.c (convert_units): Deleted.  All calls eliminated.
+
+	* TREE_CONSTANT renamed from TREE_LITERAL.
+	* TYPE_READONLY split off from TREE_READONLY.
+	* TREE_SIDE_EFFECTS renamed from TREE_VOLATILE.
+	* TYPE_VOLATILE split off from TREE_VOLATILE/TREE_THIS_VOLATILE.
+
+Sun Apr 22 15:26:50 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (strength_reduce): Avoid problems in biv elimination by not
+	being forced to use giv's that have complex new_reg values while the
+	underlying giv is marked maybe_dead; clear maybe_dead in this case.
+
+	* loop.c: Make verification of loops take linear, not quadratic, time.
+	(verify_loop, can_jump_in_range_p): Deleted.
+	(prescan_loop): New function, contents are from old verify_loop.
+	(scan_loop): Call prescan_loop.
+	(find_and_verify_loops, mark_loop_jump): New functions.
+	(loop_optimize): Allocate new tables and call find_and_verify_loops
+	once instead of calling verify_loop for each loop.
+	Use data from find_and_verify_loops instead of scanning all insns.
+
+	* expr.c (safe_from_p): New function.
+	(validate_subtarget): Use safe_from_p.
+	(expand_expr, case CONSTRUCTOR): Likewise.
+
+	* expr.c (store_expr): Handle cases where EXP is a compound
+	or conditional expression specially to avoid unnecessary temporaries.
+
+Sun Apr 22 00:15:58 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.h (struct tree_type): Delete size_unit.
+	(struct tree_decl): Delete size_unit and voffset_unit.
+	Reduce lang_flags to save 1 word.
+
+	* function.c (init_function_start): Don't use DECL_RESULT_TYPE.
+	* integrate.c (expand_inline_function): Likewise.
+	* c-decl.c (start_function, duplicate_decls): Likewise.
+	* tree.h (struct tree_decl): Delete voffset.
+	(DECL_RESULT_TYPE): Deleted.
+
+	* objc-actions.c (encode_field_decl, objc_copy_list):
+	Switch to DECL_FRAME_SIZE.
+	* cplus-class.c (finish_struct): Likewise.
+	* cplus-decl2.c (grokbitfield): Switch to DECL_BIT_FIELD.
+	* c-parse.y, cplus-parse.y, objc-parse.y: Likewise.
+
+	* tree.h (TYPE_NO_FORCE_BLK): New flag in types.
+	* stor-layout.c (layout_type): Use it.
+	* tree.h (DECL_TOO_LATE): New flag.
+	* stmt.c (expand_end_bindings, expand_goto_internal): Use it.
+	* tree.h (TREE_PACKED): Deleted.
+
+	* cplus-typeck.c (unary_complex_lvalue): Confusing use of
+	DECL_SIZE_UNIT; not clear what to do.
+	* cplus-tree.c (layout_vbasetypes): Likewise.
+	* cplus-class.c (modify_vtable_entry): Likewise.
+
+	* cplus-parse.y (YYDEBUG): Force it on.
+	(print_parse_statistics, init_parse): No-op if not YYDEBUG.
+
+	* fold-const.c (fold): REAL_INFINITY affects reals, not ints.
+
+	* protoize.c (edit_fn_declaration): Make arg volatile to stop warning.
+
+Sat Apr 21 03:04:32 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expmed.c (store_bit_fields): Adjust for elimination of BImode.
+
+	* c-parse.y (simple_if, stmt): Store stmt_count in proper place,
+	which is slot 1 of the if.
+	(simple_if, lineno_stmt, stmt): Output the note at beginning of
+	stmt, not in lineno_stmt.  Use emit_line_note.
+	(simple_if): Set if_stmt_*, then use lineno_stmt directly.
+	(lineno_stmt): Before most uses, call skip_white_space.
+	(finput): Move to top of file.
+
+	* cplus-class.c (build_instantiated_decl): Fix typo.
+
+	* cplus-tree.h (C_TYPE_FIELDS_READONLY): Use lang_flag_1.
+	(TYPE_HAS_CONSTRUCTOR, TYPE_HAS_DESTRUCTOR, TYPE_NEEDS_CONSTRUCTOR):
+	(TYPE_NEEDS_DESTRUCTOR): Advance each to next lang_flag.
+	* tree.h (TREE_LANG_FLAG_5, TREE_LANG_FLAG_6): Define them.
+
+	* config.gcc: Delete ./Makefile.in iff not in the source dir.
+
+	* Makefile.in (for-bootstrap): New target.
+
+	* dbxout.c (dbxout_finish_symbol, dbxout_type, dbxout_prepare_symbol):
+	Add temporary conditionals on WINNING_GDB.
+
+	* print-tree.c (print_node): Print the TYPE_SYMTAB_ADDRESS.
+
+	* Makefile.in (protoize.o, unprotoize.o, SYSCALLS.c.X):
+	Include from or look in dir $(srcdir).
+
+Fri Apr 20 16:30:11 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c (output_constructor): Backward test for bit-field.
+
+	* Makefile.in (stamp-*): Delete .c or .h from these names.
+
+Fri Apr 20 15:56:21 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cplus-typeck.c (compparms, comp_target_parms,	build_modify_expr_1):
+	(build_modify_expr): Clean parens in complicated if.
+	* cplus-decl.c (finish_decl, grokdeclarator): Likewise.
+
+Fri Apr 20 14:42:36 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-3b1.h (ASM_SPEC, PRINT_OPERAND_ADDRESS): Support 68020, 68881.
+	Useful even though this isn't one.
+	(ASM_OUTPUT_OPCODE): Convert fbne to fbneq.  Don't change ftst.
+	(REGISTER_NAMES): Define it.  Fpreg names not same as hp.
+
+	* stor-layout.c (mode_for_size): Don't check MAX_FIXED_MODE_SIZE.
+	(layout_type): Check it here when appropriate.
+
+	* loop.c (strength_reduce): Clean parens in complicated if.
+
+	* fold-const.c (mul_double, const_binop): Add parens around shifts.
+
+Thu Apr 19 03:03:39 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* machmode.def: Delete unused modes.
+
+	* stor-layout.c (mode_for_size): Accepts mode class as arg.
+	Calls changed.
+	(layout_type): Can now use mode_for_size for floating types.
+
+	* stor-layout.c (layout_type): Get mode of function type from size.
+	* c-decl.c, cplus-decl.c (grokdeclarator): Don't worry about
+	mode of a function type.
+	* calls.c (prepare_call_address): No values contain static chains.
+
+	* tree.h (struct tree_decl, struct tree_common): Rename the flag bits.
+	* cplus-tree.h: References here changed.
+
+	* tree.h (DECL_BIT_FIELD): New macro, with new flag.
+	* print-tree.c: Print it.
+	* stor-layout.c (layout_decl): Use on input instead of TREE_PACKED.
+	Clear it if field happens to be aligned.
+	* expr.c, tree.c, varasm.c, symout.c, objc-actions.c, c-typeck.c:
+	Use this to distinguish bit-fields.
+	* c-decl.c, cplus-class.c (finish_struct): Set this for bit-fields.
+
+	* c-typeck.c (build_binary_op): Make NON_LVALUE_EXPR, not NOP_EXPR.
+
+	* out-sparc.c (find_addr_reg): Avoid using frame pointer. 
+
+	* config.gcc: Delete all formfeeds from Makefile.
+
+	* stor-layout.c (layout_decl): Delete `bitsize'.
+	(layout_record): Test size for CONST_INT, not TREE_LITERAL.
+	(layout_type): Simplify array case.
+
+	* fold-const.c (size_binop): Division not special case.
+
+Wed Apr 18 16:05:23 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (datatype): Function deleted.
+	(build_binary_op_nodefault, pointer_int_sum, pointer_diff):
+	Don't use it.
+	* cplus-typeck.c (build_binary_op_nodefault, pointer_int_sum):
+	(pointer_diff): Likewise.
+	(convert_for_assignment): Likewise.  Took some work.
+	(datatype): Function deleted.
+
+	* c-typeck.c (common_type): Renamed from commontype.
+	(function_types_compatible_p): New function.
+	(compparms): Deleted.
+	(self_promoting_args_p): Renamed from compparms1.
+	* cplus-typeck.c (common_type, self_promoting_args_p): Likewise.
+	* c-typeck.c (build_function_call): Eliminate local value_type.
+
+	* c-typeck.c (parser_build_binary_op): Detect +/- within boolean.
+
+	* c-typeck.c (convert_arguments): Renamed from actualparameterlist.
+	Push results on front, and reverse at end.
+	* cplus-typeck.c: Likewise.  All calls changed.
+
+	* tree.h (STMT_BIND_SIZE): Deleted.
+	(struct tree_bind_stmt): Deleted that slot.
+	* tree.c (build_let_stmt): Don't set it.
+
+	* print-tree.c (print_node): Call print_lang_identifier.
+	* c-decl.c, cplus-ptree.c (print_lang_identifier): New function.
+
+	* gnulib2.c (__clear_cache): New function.
+
+Tue Apr 17 16:57:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cplus-tree.c (build_member_type): Use TYPE_HASH, not TREE_UID.
+	(TYPE_HASH): Use the address.  Delete the duplicate definition.
+
+	* c-typeck.c (build_unary_op): Bug in pedantic warning about ++.
+
+	* tree.h (TYPE_SEP, TYPE_SEP_UNIT): Deleted.
+	* stor-layout.c (layout_type): Don't set them.
+	(mode_for_size): New name for agg_mode; code cleaned up.
+	* c-tree.h (C_TYPE_FIELDS_READONLY): Use TREE_LANG_FLAG_1.
+
+	* fold-const.c (size_int, size_binop): New names for build_int
+	and genop, moved here.  All callers changed.
+	(const_binop): New name for combine, and now static.
+	* stmt.c (expand_end_case, group_case_nodes, node_has_low_bound):
+	(node_has_high_bound): Don't call `combine' directly.
+
+	* tree.h (DECL_VOFFSET, DECL_VOFFSET_UNIT): Deleted.
+	* tree.c (staticp): Don't use DECL_VOFFSET.
+	* stor-layout.c (layout_*): Don't use it or set it.
+	(layout_record): Simplify: Keep all sizes in units of 1.
+
+	* tree.c (debug_tree, print_node, print_node_brief, indent_to):
+	New functions to print a tree.
+	* c-decl.c (print_lang_decl, print_lang_type): Define as no-op.
+	* cplus-ptree.c (print_lang_type): Complete rewrite.
+	Most other functions deleted.
+	* tree.c (print_node): Call print_lang_* unconditionally.
+
+	* tree.c (TYPE_HASH): Now use the address.
+
+Mon Apr 16 16:27:28 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* final.c: Check LEAF_REGISTERS, not LEAF_REGS.
+
+	* real.h (*_FLOAT_FORMAT): Change enums to macros.
+	(REAL_INFINITY): Define it if IEEE format.
+
+	* c-decl.c (c_decode_options): Handle -Wconversion here.
+	* toplev.c (main): Not here.
+
+	* tm-*.h (INITIAL_FRAME_POINTER_OFFSET): Count get_frame_size.
+
+Mon Apr 16 15:05:49 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (eliminate_biv): Build COMPARE with VOIDmode, not mode
+	of operands.
+
+Mon Apr 16 14:55:58 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* jump.c: Include real.h.
+
+Sun Apr 15 20:30:24 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* c-typeck.c (pedantic_lvalue_warning): New function.
+	(build_component_ref): Handle COMPOUND_VALUE and COND_EXPR by moving
+	reference inside it and calling pedantic_lvalue_warning.
+	(build_unary_op): Incrementing a cast-expression is warning, not
+	error; call new pedantic_lvalue_warning.
+	(unary_complex_lvalue): Use of compound or conditional expression as
+	lvalue is warning, not error.
+	(build_modify_expr): Likewise.
+	* cplus-typeck.c: Likewise.
+
+Sun Apr 15 12:27:11 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cse.c (fold_rtx, fold_cc0): Check TARGET_FLOAT_FORMAT,
+	not FLOAT_NOT_IEEE.
+	* jump.c (jump_back_p): Likewise.  FLOAT_NOT_IEEE is now gone.
+
+	* cccp.c (collect_expansion): Handle warn_stringify.
+	(main): Set it for -Wtraditional.
+
+	* function.c (init_function_start):
+	Set current_function_returns_pointer here.
+	(expand_function_start): Not here.
+
+	* expr.c (emit_library_call): Precompute reg and partial of all parms,
+	to do it in proper order.
+
+	* final.c (final_scan_insn): Typo in deleting obvious no-ops.
+
+	* expr.c (emit_push_insn): Change #if to ordinary if.
+
+Sat Apr 14 13:20:40 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (do_jump): In COMPONENT_REF, check TYPE is nonzero.
+
+	* tm-i386.h (ASM_OUTPUT_ADDR_DIFF_ELT): Delete spurious `abort ()'.
+
+	* emit-rtl.c (reverse_comparison): New function.
+	(get_last_insn_anywhere): New function.
+	* i386.md (ble, blt): New define_expands.
+
+	* Makefile.in (LANGUAGES): New parameter chooses languages to build.
+	(native): Use that.
+	(c, c++, objc): Targets for use in LANGUAGES.
+
+	* Makefile.in (install): Split up.
+	(install-cross, install-headers, install-gnulib, install-proto):
+	(install-man, $(libsubdir)): New targets.
+
+	* Makefile.in (native): New target, split from start.encap.
+	(tmpgnulib): Split out from gnulib.portable.
+	(gnulib.convert): Makes tmpgnulib, then converts.
+	(LIBCONVERT): New parameter.
+	(GCC_FOR_TARGET): New parameter.
+	(hard-params.o, hard-params, stamp-gnulib2): Use that.
+
+	* cse.c (fold_cc0): Compare equivalence classes of non-constants.
+	Waiting for papers from Steven McCanne.
+
+Fri Apr 13 14:12:46 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stor-layout.c (layout_type): If record is BLKmode because not
+	aligned, set TREE_PACKED.  Don't force BLKmode due to field
+	with TREE_PACKED. 
+
+	* cse.c (fold_rtx): Use dconst1, not atof.
+	* varasm.c (output_constant): Likewise.
+
+	* c-parse.y (yylex): Handle SIGFPE in atof.
+
+	* tm-tti68k.h: New file.
+
+	* toplev.c, flags.h (flag_pretend_float): New flag.
+
+	* regclass.c (reg_class_record): Handle `E' constraint, for float
+	constants but only if can examine their bits.
+	* reload.c (find_reloads): Likewise.
+	* recog.c (constrain_operands): Likewise.
+	* out-m68k.c (output_move_double): Abort on float constant
+	if can't examine the bits.
+	(standard_68881_constant_p): Fail if can't examine the bits.
+	(standard_sun_fpa_constant_p): Likewise.
+
+	* m68k.md (DFmode move recognizers): Use `E', not `F'.
+	* tm-m68k.h (PREFERRED_RELOAD_CLASS): Handle float constants.
+
+	* tm-next.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_FLOAT_OPERAND):
+	(ASM_OUTPUT_DOUBLE, ASM_OUTPUT_DOUBLE_OPERAND): Use REAL_VALUE_ISINF.
+	* tm-sun3.h, tm-sparc.h: Likewise.
+
+	* xm-vax.h (HOST_FLOAT_FORMAT): Define it.
+	* tm-vax.h (TARGET_FLOAT_FORMAT): Define it.
+
+	* real.h (enum float_format): Define codes for formats.
+	(HOST_FLOAT_FORMAT, TARGET_FLOAT_FORMAT): New macros, defaulted here.
+	(REAL_IS_NOT_DOUBLE, REAL_VALUE_TYPE): Override if formats differ.
+	(REAL_VALUE_ISINF): New macro.
+	* xm-vax.h (isinf): Define as macro.
+
+	* Makefile.in (LIBFUNCS_EXTRA): New variable.
+	(gnulib.portable): Compile those files.
+
+	* Makefile.in (AUX_OUTPUT2): New variable.
+	(OBJS): Use it.
+	(aux-output2.o): New target.
+
+	* Makefile.in (RANLIB, RANLIB_TEST): New variables.
+
+	* Makefile.in (AR_FLAGS, OLDAR_FLAGS): New variables.
+	(gnulib.portable, stamp-gnulib2): Use them.
+
+	* i386.md: Add patterns for `bt' insns.
+
+Fri Apr 13 12:54:14 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* c-decl.c (builtin_function): Now returns decl that was made.
+
+	* config.gcc: Support both -host= and +host=.
+
+Thu Apr 12 22:39:10 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Changes from Data General.
+
+	* syms.h: New file.
+	* sdbout.c: Include that if not USG.
+
+	* tree.h (enum built_in_function): Added BUILT_IN_STRCPY and
+	BUILT_IN_STRCMP.
+	* c-decl.c (init_decl_processing): Create additional pointer and
+	function types.  Declare strcpy, strcmp, memcpy, memcmp built-in.
+	* expr.c (expand_builtin): Support strcpy, strcmp, memcpy, memcmp.
+	If special handler breaks out of switch, do library call.
+	By default, print error message and do library call.
+	(get_pointer_alignment, string_constant): New functions.
+
+	* dbranch.c: Put entire contents in conditional on HAVE_DELAYED_BRANCH.
+	(init_flags, enote): Clear and set memr.
+	(enote): Don't move a store across a fetch.
+	(insn_eligible_p): Check enote before volatility and dependencies.
+	Check for volatility if memw or memr.
+	(loads_from_mem_p): New function.
+
+	* Makefile.in (dbranch.o): New target.
+	(OBJS): Add dbranch.o.
+
+Thu Apr 12 22:39:10 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* calls.c (expand_call): Count args in order written, with argpos.
+
+Thu Apr 12 22:01:16 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expmed.c (synth_mult): Ensure OPS is always valid in returned alg.
+
+	* local-alloc.c (block_alloc): If we have an operand that is an
+	address, look inside it for registers to combine with.
+
+	* reload.c (combine_reloads): If the output reload is for an
+	earlyclobber operand, can't combine it.
+	Try to use a register that dies in an insn for a single output reload
+	if the insn has only one output.
+
+Thu Apr 12 21:27:18 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (duplicate_decls): Preserve DECL_INITIAL from old
+	function def to new one.
+
+Thu Apr 12 07:55:14 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_assignment): Order of source and destination to
+	bcopy/memcpy was reversed.
+
+Wed Apr 11 17:29:18 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-i386.h (ABC_REGS): New register class.
+	(REG_CLASS_CONTENTS, REG_CLASS_NAMES, enum reg_class): Changed.
+	* i386.md (divsi3, etc.): Exclude register d from constraints.
+
+	* c-parse.y (save_filename, save_lineno): New nonterminals
+	to record text location at start of statement.
+	(lineno_stmt): New nonterminal, outputs line note before statement.
+	(lineno_decl): Likewise for decl, to avoid conflicts.
+	(stmt): Don't emit line notes at start of statement.
+	(simple_if): Collect file and line using save_filename, save_lineno.
+
+	* Changes from Data General.
+
+	* cccp.c (main, do_include): Implement -H to print header names.
+
+	* c-parse.y (component_decl_list): Parse even if final `;' missing.
+
+Wed Apr 11 16:49:16 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* gcc.c: Fix miscellaneous typos.
+
+Wed Apr 11 12:59:57 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* config.gcc: Typos in setting pass1done, testing it,
+	and calling sed for usage msg.
+
+	* cccp.c (macroexpand): Count Newline Space as part of whitespace
+	sequence when stringifying.
+
+	* expmed.c (expand_mult): Handle synth_mult returning no operations.
+
+Tue Apr 10 21:08:06 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (do_line): No error if string follows number without space.
+
+Tue Apr 10 20:52:02 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* recog.c (apply_change_group): Return a zero if rejected changes.
+
+	* loop.c (update_giv_derive): If a giv is only set conditionally, it
+	may only derive other givs in its own basic block.
+
+Tue Apr 10 13:09:40 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-ctix.h:  New file.  Waiting for papers from Ronald Cole.
+	csusac!unify!dbrus.rjc@ucdavis.ucdavis.edu.
+
+	* cse.c (rtx_cost): Use new macro RTX_COSTS.
+	(COSTS_N_INSNS): New macro for use in RTX_COSTS.
+
+	* config.gcc: Fix typos in conditionals and case.  Also usage message.
+	Missing backslashes in `echo | tee'.
+	Unset various vars after pass 1.
+
+	* c-typeck.c (build_c_cast): Complain if function type specified.
+
+	* expmed.c (synth_mult): Accept max_cost as arg and cut off there.
+	Pass it along recursively, making it smaller.
+	Eliminate quadratic loop, thus postponing powers of 2.
+	Costs are now signed.  Initialize best_alg->cost from max_cost
+	and change to -1 only before returning.
+	(expand_mult): Pass cost of multiply as max cost.
+	Use synth_mult only if optimizing.
+	In alg_compound case, sign was backward.
+	Use TEM as target for force_operand there, to get better output.
+
+Tue Apr 10 07:09:51 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case COND_EXPR): Add missing argument to
+	operand_equal_p.
+	Check for (X ? unop A : A) in addition to (X ? A + B : A).
+
+	* Makefile.in (protoize, unprotoize): Compile with GCC, not just link.
+
+	* fold-const.c (fold): Fix typo in converting conditional to COND.
+
+	* expr.c (expand_expr): Treat (A ? 1 : 0) as A when A is a comparison.
+	(do_jump): Special-case (A ? 1 : 0) and (A ? 0 : 1).
+
+	* expr.c (store_expr): Fix typo in checking mode of target.
+
+Mon Apr  9 18:33:55 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (expand_inline_function): Clear out parm_copies.
+
+Mon Apr  9 18:00:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* tree.def: SAVE_EXPR now has three operands.
+	* tree.h: Add new field SAVE_EXPR_CONTEXT; SAVE_EXPR_RTL remains last.
+	* tree.c (save_expr): Set context to current function.
+	(decl_function_context): Context is in SAVE_EXPR_CONTEXT if SAVE_EXPR.
+	* calls.c (expand_call): Call make_tree to build an RTL_EXPR instead
+	of explicitly making SAVE_EXPR.
+	* cplus-typeck.c (c_expand_return): Use make_tree instead of SAVE_EXPR.
+	* c-parse.y, objc-parse.y: Don't call mark_addressable here.
+	* expr.c (expand_expr, ..._DECL cases): If non-local, make addressable.
+	(expand_expr, case SAVE_EXPR): If defined in containing function, put
+	put into stack.
+	* function.c (put_var_into_stack): Use SAVE_EXPR_RTL for SAVE_EXPR.
+	* print-tree.c (dump): SAVE_EXPR_RTL is now third operand.
+	* stmt.c (expand_asm_operands): Call save_expr instead of making
+	tree node directly.
+
+Mon Apr  9 00:08:15 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Makefile.in (install): Turn off x bit on SYSCALLS.c.X.
+
+	* i860.md (cmpeqsf, etc.): Change opcode name to pfeq.ss, etc.
+
+	* tm-m68k.h (PRINT_OPERAND_PRINT_FLOAT): Delete spurious backslash.
+
+	* c-decl.c (store_parm_decls): Don't do storedecls in prototype case.
+	That was discarding the enumerators already pushdecl'd.
+
+	* gcc.c (exec_prefix, startfile_prefix): Record prefix search paths.
+	(find_a_file): New function to search a path.
+	(find_exec_file): Deleted; find_a_file used instead.
+	(find_file): Just call find_a_file.
+	(add_prefix): Add name to a prefix path.
+	(process_command): Call that.
+
+	* gcc.c (spec_list): Generalize asm_spec, etc., to arbitrary names.
+	(set_spec): New function.  Set the old specific vars and spec list.
+	(do_spec_1): Handle `%(' and `%[' for general specs.
+
+	* ns32k.md (ashlhi3): Use %0, not %1.
+
+	* cplus-tree.h (TREE_ANON_UNION_ELEM, DECL_ANON_UNION_ELEM):
+	regdecl_attr is now in decl, not common.
+	(TREE_PARMLIST): Use external_attr.
+	(TREE_VIA_PUBLIC): Use static_attr.
+
+Sun Apr  8 23:43:59 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* fold-const (fold): Two conversions in a row are needed if from a
+	pointer type to an integer type of a different precision.
+
+	* flow.c (mark_used_regs): When replacing addition with register
+	in auto-increment creation, mark that insn must be re-recognized.
+
+Sun Apr  8 13:56:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-m68k.h (ASM_OUTPUT_FLOAT): Defn depends on CROSS_COMPILER.
+	(PRINT_OPERAND): Depends on CROSS_COMPILER and HOST_WORDS_BIG_ENDIAN.
+	(PRINT_OPERAND_EXTRACT_FLOAT, PRINT_OPERAND_PRINT_FLOAT):
+	These new subroutines contain the code that depends.
+
+	* xm-m68k.h, xm-mips.h, xm-pyr.h, xm-tahoe.h (HOST_WORDS_BIG_ENDIAN):
+	New macro, defined in these files.
+
+	* config.gcc: Define macro CROSS_COMPILE if making cross-compiler.
+	* Makefile.in (INTERNAL_CFLAGS): Include CROSS.
+
+	* config.gcc: Decode -host argument.  Set $host and $target.
+	Rename vars for files to link to, to tm_file, xm_file, etc.
+	Let $host override xm_file value.
+	Mention $host in messages and config.status if diff from $target.
+	Check for errors in args at beginning of processing.
+
+	* expmed.c (expand_shift): Make no insns if count is 0.
+
+	* cse.c (rtx_cost): Increase default cost of mult and div.
+
+	* expmed.c (synth_mult): New function.  Finds best way to multiply
+	by given constant, and the cost.
+	(expand_mult): Use that.
+	(init_expmed): Init new vars add_cost, shift_cost, mult_cost,
+	and negate_cost.  mult_is_cheap has been deleted.
+
+	* expmed.c (store_bit_field): Don't use insv if unit for copying
+	mem to reg won't hold the entire field.
+
+Sun Apr  8 12:54:07 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case COND_EXPR): Add OK_DEFER_POP to path with
+	only OK_DEFER_POP.
+
+Sun Apr  8 12:50:54 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* i386.md (insv): Use SImode for operand 0.
+
+Sat Apr  7 15:24:56 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* emit-rtl.c (gen_lowpart, gen_highpart): When checking mode class,
+	check for not MODE_FLOAT.
+	* cse.c (fold_rtx): Likewise when avoiding x-x -> 0 for IEEE float.
+	* jump.c (jump_back_p): Likewise.
+	* optabs.c (emit_cmp_insn): Likewise, comparing result of libcall.
+	* expr.c (move_block_to_reg, emit_push_insn): Likewise,
+	when putting floats in memory.
+
+	* machmode.def (PSImode, PDImode): Class is now MODE_PARTIAL_INT.
+	* expr.c (convert_to_mode): Don't treat them as ints.
+
+	* fixincludes: When making directory links, assume any relative path
+	is within /usr/include.
+
+Sat Apr  7 14:56:27 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* function.c (assign_stack_local, assign_outer_stack_local):
+	Don't use division for rounding to avoid problems with negative
+	dividends; use logical operations instead.
+	No need to ever align stricter than BIGGEST_ALIGNMENT.
+
+Sat Apr  7 14:38:36 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (expand_expr, case CONSTRUCTOR:): Finish Jan 12 change
+	in store_expr by calling store_constructor if target is a temp.
+
+	* cse.c (cse_insn): For regs invalidated by calls, go back to
+	checking for fp and ap explicitly, not fixed_regs.
+
+Sat Apr  7 14:06:43 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* recog.h: Define num_validated_changes and cancel_changes.
+	* recog.c (validate_change, apply_change_group, cancel_changes):
+	Support changes both within an insn and within a MEM.
+
+Sat Apr  7 00:45:49 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sparc.md (addcc and subcc patterns): Set CC_NO_OVERFLOW.
+
+Fri Apr  6 15:20:51 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cccp.c (lookup_import): Return -1 for not found to agree with
+	the open system call.  Use -2 for duplicate.
+	(do_include): -2 now means duplicate; previously, -1 meant not found
+	from open and duplicate from lookup_import.
+
+Fri Apr  6 00:06:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (poplevel): Use DECL_INITIAL to detect undef label.
+
+	* sparc.md (peephole for returning sum): Use more restrictive preds.
+
+	* reload1.c (choose_reload_regs): When testing reload reg
+	for HARD_REGNO_MODE_OK, use SImode instead of VOIDmode.
+
+Thu Apr  5 14:00:41 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (main, include_defaults): Use STANDARD_INCLUDE_DIR
+	instead of /usr/include.
+	* Makefile.in (cccp.o): Specify STANDARD_INCLUDE_DIR.
+
+	* varasm.c (assemble_variable): No sdb output for initialized global.
+	* toplev.c (compile_file): Output it here, at end of run.
+
+	* stdarg.h (va_start): Round initial pointer value down
+	to double boundary.  This is to eliminate big-endian adjustment.
+
+	* fixincludes: Delete netinet/ip.h and sundev/vuid_event.h
+	if no changes are needed.
+
+	* c-typeck.c (build_c_cast): Reject array types for result.
+	* cplus-typeck.c (build_c_cast): Likewise.
+
+	* tm-*.h (ASM_OUTPUT_SKIP): Print size as unsigned.
+	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
+
+	* fold-const.c (fold): Simplify double truncation, double extension,
+	or extension followed by truncation.
+
+	* fixincludes: Don't ignore errors when making dirs.
+	But check whether dir already exists.
+
+	* cse.c (fold_rtx): Don't simplify real*0, because of nans.
+
+	* real.h (dconst0, dconst1, dconstm1): Declare them.
+	* tree.c (real_zerop, real_onep): New functions.
+	* fold-const.c (fold): Check for trivial +, -, * with reals.
+	Also use dconst0 instead of computing with REAL_VALUE_ATOF.
+
+Tue Apr  3 22:52:26 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m68k.md (32-bit bit fields): Special patterns added.
+	(push byte and adjust stack by 2): New peephole.
+	These from Bruce Robertson.
+
+	* c-decl.c (grokdeclarator): Complain if fn defn has `typedef' etc.
+
+Tue Apr  3 21:39:54 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (preexpand_calls): Reinsert check to not expand calls
+	already preexpanded.
+
+Mon Apr  2 07:05:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* c-typeck.c (digest_init): Don't blow up on null list.
+
+	* Makefile.in (cc1obj): Link OBJC_OBJS instead of C_OBJS.
+	* objc-actions.c: Correct compilation errors.
+	* objc-parse.y: Likewise.
+
+Mon Apr  2 03:33:14 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* objc-actions.h: Define the objc tree codes.
+	Declare doing_objc_thang.
+
+Fri Mar 30 17:28:30 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* sdbout.c (PUT_SDB_EPILOGUE_END): Write out assembler name for
+	function (i.e., usually include leading "_").
+
+	* sdbout.c (PUT_SDB_...): Use new macro SDB_DELIM; it defaults to ";".
+
+Fri Mar 30 15:25:20 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* jump.c (prev_active_insn, next_active_insn): New functions.
+	These skip USEs and CLOBBERs.
+	(jump_optimize): Use them instead of ..._real_insn
+	for the simple optimizations.
+
+	* integrate.c (expand_inline_function): Always index const_equiv_map
+	with regno from current function.  And set up the map only after
+	creating all the pseudos we will need for the parms.
+	This requires intermediate tables parm_equivs and parm_copies.
+	Make const_equiv_map big enough to handle all the pseudos we
+	expect to make.  Record actual size, and don't look in it
+	for regnos too large.
+	(subst_constants, const_equiv): Don't access const_equiv_map
+	if regno is too large.
+
+	* function.c (trampoline_address): Push and pop obstacks around
+	call to assign_outer_stack_local.
+
+	* function.c (push_function_context, pop_function_context):
+	Save and restore max_parm_reg and parm_reg_stack_loc.
+	* function.h (struct function): Make slots.
+
+	* c-decl.c (c_build_type_variant): New function.
+	(grokdeclarator): Call that, for ARRAY_TYPE only, in fields and vars.
+	* c-decl.c, c-typeck.c: All calls to build_type_variant use that now.
+
+	* emit-rtl.c (reinstate_emit_status): Unused function deleted.
+
+Thu Mar 29 15:35:47 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.c (rtl_in_current_obstack): New function.
+	* toplev.c (rest_of_compilation): Call that.
+	This makes it true that rtl is allocated in current_obstack
+	during optimization.
+
+	* reload1.c (eliminate_frame_pointer): Scan equivalent addresses
+	of pseudo-regs, and eliminate frame-pointer there too.
+	(reload): Don't do this here.
+
+	* c-decl.c (build_enumerator): Return pair of decl and value.
+	(finish_enum): Go through the list replacing decls with names.
+
+	* function.c (fixup_var_refs): Eliminate all but first arg.
+	Use current sequence_stack, insn chain and rtl_expr_chain.
+	(put_var_into_stack): Don't pass those args.
+	If var is nonlocal, don't do it now; put it on fixup_var_refs_queue.
+	(pop_function_context): Do fixup_var_refs on vars queued up.
+
+	* tree.c (function_maybepermanent_obstack): Make a separate
+	saveable obstack for each nested function level.
+	(init_tree): Init this variable.
+	(save_tree_status, restore_tree_status): Save and restore it.
+	Create and free a new obstack for the purpose.
+	(temporary_allocation, resume_temporary_allocation): Use this var.
+	(preserve_data, preserve_initializer): Use this var.
+	(make_node): Use this var for PARM_DECL nodes.
+
+	* tree.c (push_obstacks): New name for push_obstack.
+	Additional arg specifies saveable_obstack.  All calls changed.
+	(pop_obstacks): New name for pop_obstack.  All calls changed.
+
+	* config.gcc: Add `3300'.
+	(genix): Fix typo in name of makevar file.
+	* tm-mot3300.h, xm-mot3300.h: New files.
+	* math-3300.h: New file.
+
+	* output.h: Fix typo in SDB_DEBUGGING_INFO.
+
+	* tm-sun386i.h (LINK_SPEC): Moved here, and -static handled.
+	* xm-sun386i.h: Moved from here.
+	* tm-alliant.h (LINK_SPEC): Moved here, from xm-alliant.h.
+
+	* tm-convex.h, tm-i860.h, tm-spur.h, tm-vax.h, tm-tahoe.h, tm-pyr.h:
+	Delete FIX_FRAME_POINTER_ADDRESS.
+
+	* tm-sparc.h, tm-m88k.h: Turn off FIX_FRAME_POINTER_ADDRESS.
+	INITIAL_FRAME_POINTER_OFFSET could be written later.
+
+	* tm-m68k.h, tm-ns32k.h, tm-alliant.h, tm-i386.h, tm-mips.h:
+	Define INITIAL_FRAME_POINTER_OFFSET.
+
+	* toplev.c (compile_file): Remove .m and .cc suffixes, like .c.
+
+	* final.c (end_final): For basic block profiling, don't output
+	source file name.  Instead, append ".d", and remove ".c".
+	* gnulib2.c (__bb_init_func): New name for __bb_init_function.
+	Conditionalize on mc68000, not m68k.
+	Fix other typos.
+
+Wed Mar 28 16:07:15 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c, cplus-decl.c (duplicate_decls): Preserve DECL_FRAME_SIZE
+	from definition past subsequent declarations.
+
+	* c-decl.c (xref_tag): If global_binding_level, make nodes permanent.
+
+	* expmed.c (init_expmed): Set up mult_is_very_cheap.
+	(expand_mult): Never use shifts if mult_is_very_cheap.
+
+	* expr.c (store_expr): When copying through new temporary,
+	allocate temporary first and use as target.
+
+	* tm-m68k.h (HARD_REGNO_MODE_OK): Abort on VOIDmode.
+
+	* reload1.c (fix_frame_pointer_address): New function.
+	(alter_frame_pointer_addresses): New arg INSN.  Calls changed.
+	Use that function instead of macro FIX_FRAME_POINTER_ADDRESS
+	which is now obsolete.
+	(eliminate_frame_pointer): Use macro INITIAL_FRAME_POINTER_OFFSET
+	to initialize depth.  Abort if that macro is missing.
+
+	* expmed.c (store_bit_field): If loading MEM into a reg, use the
+	mode of the MEM if that is not BLKmode.
+	(extract_bit_field): Likewise.
+
+	* tm-mips.h (STRUCTURE_SIZE_BOUNDARY): Changed from 16 to 8.
+
+	* calls.c (expand_call): Handle STACK_BOUNDARY when using push insns.
+
+	* function.c (assign_parms): Note how PUSH_ROUNDING affects stack
+	parm size.
+
+Tue Mar 27 19:40:11 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (poplevel): Output inline nested functions if needed.
+	* cplus-decl.c: Likewise.
+
+	* i386.md (insv): New pattern added for the moment.
+
+Tue Mar 27 17:47:35 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* function.c (lookup_outer_static_chain): Deleted, no longer used.
+	(trampoline_address): RTL for trampoline, rather than its address, is
+	stored in trampoline list.
+	Just add entry to list; don't fill in the trampoline here.
+	(expand_function_end): Fill in any required trampolines here.
+	(expand_function_start): Move tail recursion entry to after
+	creation of display list; size computations come next.
+
+Tue Mar 27 14:09:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m68k.md (movsi, movhi, movstricthi, movqi, movstrictqi):
+	Avoid both clr and st on volatile mem, but only on 68000.
+	(SImode store 0 recognizer): Likewise.
+
+	* stor-layout.c (agg_mode): Don't consider PSImode, etc.
+
+Mon Mar 26 21:12:16 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (combine_regs): Only set suggested bit for first
+	register if multi-word quantity.
+	(find_free_reg): Look at suggested regs for first in set, then use
+	all available for subsequent regs.
+
+Mon Mar 26 15:01:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (start_enum): Don't lay out the type.
+	(finish_enum): Always lay it out, and always set the precision.
+	Change the type of the enumerators if int is too narrow.
+
+	* tm-m68k.h (NOTICE_UPDATE_CC): addq and subq do update cc's
+	even if destination is an address register.
+
+	* c-parse.y, objc-parse.y (check_newline): Call HANDLE_PRAGMA if def.
+	* out-next.c: New file.
+	(handle_pragma): New function.
+	* tm-next.h (HANDLE_PRAGMA): Define it.
+
+	* Makefile.in (GNULIB2): New variable.
+	(gnulib2): Use it.
+	(gnulib2.portable): New name for old rule.
+	(install-headers): Split out part of install rule.
+	(INSTALL_HEADERS): New variable.
+
+	* make-next: New file.
+
+	* function.c (assign_parms): Get type from proper place.
+	internal_arg_pointer is now an arg.  Compute arg_pointer_copied
+	from that.  Fix typos.
+	(expand_function_start): Compute internal_arg_pointer here.
+	Fix typos handling incoming struct value address.
+
+	* cccp.c (do_include): Ignore null strings found in stackp.
+
+	* cccp.c (discard_comments): Handle backslash-newline.
+
+Mon Mar 26 07:18:58 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* function.h (temp_slot, temp_slot_level): Now saved by function.c.
+	* function.c (struct temp_slot): Move from stmt.c.
+	(push_function_context, pop_function_context): Save/restore temp slots.
+	(assign_parms): Pass type to locate_and_pad_parms.
+	(locate_and_pad_parms): Accept TYPE.
+	Don't need STACK_OFFSET.
+	(expand_function_start): Pass type to locate_and_pad_parms.
+	(init_function_start): Initialize temp_slot info.
+	* stmt.c (temp_slot, init_stmt_for_function, save_stmt_status,
+	restore_stmt_status): Delete temp_slot stuff from here.
+
+Sun Mar 25 20:21:58 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (emit_move_insn): Turn memory address checking back on,
+	but allow push_operand for x.
+
+	* ns32k.md (movstrsi): If UTEK_ASM, output $0 operand in movsd.
+	(movsi): Handle UTEK_ASM like GNX_V3.
+	* out-ns32k.c (print_operand_address): Add UTEK_ASM conditionals.
+	* tm-merlin.h: New file.
+
+	* tm-ns32k.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE):
+	Use save and restore insns if no frame pointer.
+
+	* cccp.c (handle_directive): Discard backslash-newline within <...>.
+
+Sat Mar 24 13:23:52 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gcc.c (default_compilers): Add entry for .m files, for Objective C.
+	Always pass some -lang... option to cpp.
+
+	* cccp.c (do_include): Support #import as well as #include.
+	(lookup_import, add_import, import_hash): New functions.
+	(main): Handle options -lang-c++ and -lang-objc and -lang-c.
+	Set variables cplusplus and objc.
+	(enum node_type, directive_table): Add #import.
+	(handle_directive): Treat #import as undefined unless objc is nonzero.
+	(initialize_builtins): If objc, define __OBJC__.
+
+	* Makefile.in (lang-objc, cc1obj): New targets.
+	(objc-parse.o, objc-parse.c, objc-actions.o): New targets.
+	(C_OBJS): Add c-lang.o.
+
+	* objc.gperf: New file.
+	* objc-parse.y, objc-actions.c, objc-actions.h: New files.
+
+	* c-lang.c: New file.
+	* c-decl.c (c_decode_option): New name for lang_decode_option.
+	Used from c-lang.c and objc-actions.c.
+
+	* toplev.c (compile_file): Call lang_init and lang_finish.
+	* c-lang.c, objc-actions.c, cplus-decl.c: Define those functions.
+
+	* c-typeck.c (comptypes): Call maybe_objc_comptypes for record types.
+	* c-lang.c, objc-actions.c (maybe_objc_comptypes): New functions.
+
+	* c-decl.c (implicitly_declare, finish_decl, finish_struct):
+	Call maybe_objc_check_decl before rest_of_decl_compilation.
+	* c-lang.c, objc-actions.c (maybe_objc_check_decl): New functions.
+
+	* function.c (assign_stack_local): Align each slot only as needed.
+	Normally don't round size up, just align first.
+	New argument ALIGN specifies alignment, or 0 for that of MODE.
+	All callers changed.
+	(assign_outer_stack_local): Likewise.
+	* final.c (final_start_function): Round frame size to STACK_BOUNDARY.
+
+	* function.c (assign_stack_temp, preserve_temp_slots):
+	(free_temp_slots): Moved from stmt.c.
+
+	* stmt.c (expand_decl): Use convert_units to avoid overflow.
+
+Fri Mar 23 00:52:34 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (grokdeclarator): Warn if array element is incomplete.
+
+	* varasm.c (assemble_variable): Use convert_units to compute
+	size in bytes.
+	(output_constructor): Likewise, for non-bit fields.
+
+	* c-typeck.c (check_format, my_strchr): New functions.
+	(build_function_call): Call check_format.
+	* c-decl.c (lang_decode_options): Handle -Wformat.
+	* c-tree.h (warn_format): New flag.
+
+	* xm-hp9k320.h (USE_C_ALLOCA): Define if not compiling with GCC.
+
+Thu Mar 22 23:35:33 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (get_parm_info): Void parm is special only if no name.
+
+	* loop.c (may_not_optimize): Static var replaces local `may_not_move'.
+	(strength_reduce): Don't accept those regs as givs.
+
+Thu Mar 22 06:45:16 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* integrate.c (expand_inline_function): Compute delta to frame
+	from the address at which it was allocated.
+
+Wed Mar 21 17:36:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* recog.c: Increase number of changes saved for validate_change.
+	(validate_change): If INSN == 0 and in group, add to group; if not,
+	always OK.
+	(apply_change_group): If INSN == 0, change is always OK.
+
+	* cse.c (cse_basic_block): If extending block, don't call
+ 	cse_end_of_basic_block with null insn if we got to end of function.
+
+Wed Mar 21 14:08:35 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* calls.c (expand_call): Don't reuse pending_stack_adjust for argblock
+	if inhibit_defer_pop.
+
+	* expr.c (push_block): New argument EXTRA.  All callers changed.
+	(emit_push_insn): Use that for the padding when using push_block.
+
+	* tm-sparc.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG):
+	Only word-aligned BLKmodes can go in registers.
+	(FUNCTION_ARG_PARTIAL_NREGS): Likewise.
+	* tm-spur.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Likewise.
+	* expr.c (expand_call): If encounter a stack parm before offset
+	gets up to zero, make it zero.
+	* function.c (assign_parms): Likewise.
+
+	* ns32k.md (stack adjust insn): Don't use cmpd or cmpqd on Sequent.
+	* tm-sequent.h (SEQUENT_ADJUST_STACK): Define this.
+
+	* make-hp9k320g (AR): Define it.
+	* Makefile.in (gnulib): Use OLDAR.
+	(OLDAR): New variable.
+
+	* make-iris: New file.
+
+	* xm-iris.h: Undef alloca before defining it.
+
+	* Makefile.in (stage1, ...): Always copy gnulib, never link.
+
+	* cccp.c (main): Use -d...M... as option for macro dump.
+	* gcc.c (default_compilers): Pass -d* to cpp.
+
+Tue Mar 20 01:41:49 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y (datadef): Error message fix.
+	* cplus-parse.y: Likewise.
+
+Mon Mar 19 15:26:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (expand_inline_function): Save static chain value.
+	(copy_rtx_and_substitute): Substitute it where called function
+	copies its static chain.
+	* emit-rtl.c (init_emit_once): Make static_chain_incoming_rtx
+	distinct.
+
+	* function.c (current_function_contains_functions): New variable.
+	(init_function_start): Initialize it.
+	(pop_function_context): Set it to 1.
+	* integrate.c (function_cannot_inline_p):
+	Don't inline fn with nested fns.
+
+	* integrate.c (copy_rtx_and_substitute): Don't replace fp
+	as destination of assignment.
+
+	* assert.h (__assert) [not __GNUC__]: Rename arg to avoid stringify.
+
+	* function.c (expand_function_start): If struct_value_incoming_rtx
+	is 0, get the address from first parm reg or first stack slot.
+	(assign_parms): In that case, skip the space it occupies.
+
+	* calls.c (expand_call): If STRUCT_VALUE is 0, pass address as parm
+	even if that means using a register.
+
+Mon Mar 19 07:43:46 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* integrate.c (function_cannot_inline_p): Check for non-ANSI varargs
+	as well as ANSI varargs.
+	Allow inlining of functions with large frames now that we can share
+	them between inlined functions.
+	(expand_inline_function): Save static vars in case we were called
+	recursively.
+	Make sure we don't free temporary stack slot used for argument.
+
+	* tree.def: Add new code types '<', '1', and '2' for comparison,
+	unary arith, and binary arith, resp.  Change some 'e' types to those.
+	* expr.c (init_comparisons): Delete fn.
+	(expand_expr): Handle X ? A binop B : A with copy and conditional op.
+	In X ? A : B, if A and B both simply, do with only one jump.
+	Remove existing test for things like x = y | (a == b).
+	(preexpand_calls): Handle new code types for expressions.
+	* optabs.c (init_optabs): No longer call init_comparisons.
+	* fold-const.c (operand_equal_p): No longer static.
+	Ignore NON_LVALUE_EXPR.
+	Only require constants if new operand ONLY_CONST is non-zero.
+	(fold): Treat tree code types '<', '1', and '2' as 'e'.
+	Handle cases where an arithmetic operation is applied to a compound,
+	conditional, or comparison operation by distributing the arithmetic
+	operation inside the compound, conditional, or comparison operation.
+	Update calls to operand_equal_p.
+	Convert A ? B : B to (A, B).
+	* expmed.c (make_tree): No longer static.
+	* tree.h: Define new macro TREE_CODE_CLASS.
+	Define extern make_tree.
+	* print-tree.c (prtypeinfo): New new macro TREE_CODE_CLASS.
+	(dump): Use new macro and treat types '<', '1', and '2' as 'e'.
+	* cplus-lex.c (init_lex): Likewise.
+	* tree.c (make_node, copy_node): Ditto.
+
+Mon Mar 19 00:05:50 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gcc.c (main): Trap SIGPIPE.
+
+Sat Mar 17 13:09:46 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* jump.c (jump_optimize): Also delete no-op insns to store bit fields.
+
+	* sparc.md (patterns for addcc, subcc, andcc, andncc, orcc, orncc):
+	(and xorcc, xorncc): Use arith32_operand as predicate.
+
+Fri Mar 16 15:19:21 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-vms.h (NO_DOLLAR_IN_LABEL): Define this.
+
+	* function.c (assign_parms): Use INIT_CUMULATIVE_INCOMING_ARGS
+	if that is defined.
+
+	* c-decl.c (duplicate_decls): `static' always prevails, for functions.
+	* cplus-decl.c (duplicate_decls): Likewise.
+
+	* sparc.md (patterns for andncc, orncc, xorncc):
+	Delete `%' from constraint.
+	(patterns for addcc, andcc, orcc, xorcc): Use symmetrical predicates.
+	(peephole for returning sum): Likewise.
+
+Thu Mar 15 22:02:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expmed.c (expand_mult_add): Handle either x or mult having VOIDmode.
+	Always pass both args to type_for_mode.
+
+	* expmed.c (extract_bit_field, store_bit_field):
+	When changing mode of a reg to SImode, also do big-endian correction.
+	Consistently use BYTES_BIG_ENDIAN to decide how bits are numbered.
+	Fix stray ref to CODE_FOR_extzv in case for extv.
+
+	* c-typeck.c (build_unary_op): Allow function type args to `!',
+	since they convert to pointers.
+	* cplus-typeck.c (build_unary_op): Likewise.
+
+Thu Mar 15 06:30:21 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (convert_to_mode): Don't copy constant to register.
+	Use GET_MODE_CLASS instead of integer_mode_p.
+	(integer_mode_p): Delete obsolete fn (only use above).
+
+	* loop.c (product_cheap_p): Don't crash if no insns need to multiply;
+	that case is cheap.
+
+Thu Mar 15 02:11:34 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* regclass.c (init_reg_sets_1): Set n_non_fixed_regs.
+	* loop.c (scan_loop, strength_reduce): Set threshold from num of regs.
+
+Wed Mar 14 19:31:18 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (function_cannot_inline_p): Allow BLKmode parms.
+	Allow address of aggregate parm.
+	(expand_inline_function): Create and maintain const_equiv_map
+	and const_age_map.  Increment const_age at basic blocks.
+	Don't substitute constant values for parm regs;
+	instead, call try_constants for each insn copied.
+	When structure_value_addr in't 0, check aggregate_value_p too.
+	Round size of parm_map up.
+	Don't init inline_fp_rtx unless it is used.
+	Don't use emit_move_insn when copying a SET insn.
+	(copy_rtx_and_substitute): Handle inline_target being used when 0.
+	Don't build a SUBREG of a CONST_INT.
+	For PLUS of constant, do plus_constant whether mem address or not.
+	Set up inline_fp_rtx if we need it.
+	Clear RTX_UNCHANGING_P in all MEMs.
+	(try_constants, subst_constants): New functions.
+	(access_parm_map): No big-endian offset for BLKmode parms.
+	Do change_address if mode doesn't match.
+	(const_equiv): New function.
+	(try_fold_cc0): Use that function.
+	In "small win" case, extract CODE_LABEL out of LABEL_REF for emit_jump.
+	(output_inline_function): Set return_label to 0.
+
+	* recog.c (cancel_changes, num_validated_changes): New functions.
+
+Tue Mar 13 17:30:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* recog.c (constrain_operands): Define `V' constraint.
+
+Tue Mar 13 17:10:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cplus-lex.c (operator_name_string, init_lex): Cast enums to ints
+	to avoid errors from some C compilers.
+
+	* cplus-init.c (expand_aggr_vbase_init): Make declarations consistent.
+
+Sun Mar 11 18:37:43 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* ns32k.md (movsi): Flush spurious arg to abort.
+
+	* Makefile.in (gnulib.portable, stamp-gnulib2): Ignore error in ranlib.
+
+Sat Mar 10 19:38:36 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* function.h: Add new fields temp_slots and temp_slot_level.
+	* stmt.c (struct temp_slot): New structure.
+	(init_stmt_for_function): Initialize temp slot info.
+	(save_stmt_status, restore_stmt_status): Save and restore temp slots.
+	(expand_asm_operands): Remove redundant assignment to LAST_EXPR_TYPE.
+	Free any temporaries made.
+	(assign_stack_temp, preserve_temp_slots, free_temp_slots): New fns.
+	(expand_expr_stmt): If last expression had a value (i.e., in ({..})
+	grouping), maybe preserve temporaries.
+	(expand_return, tail_recursion_args): Free any temporaries allocated.
+	(expand_start_bindings): Push temporary stack level.
+	(expand_end_bindings): Pop temporary stack level.
+	(expand_decl): Use kept temporary slots for automatic variables.
+	Free temporary slots after computing size.
+	(expand_decl_init, expand_cleanups, expand_end_case): Free any
+	allocated temporaries.
+	* calls.c (expand_call): Use assign_stack_temp instead of
+	get_structure_value_addr.
+	Make a new temporary level while expanding a call and free
+	temporaries as soon as we know they aren't going to be reused.
+	(store_one_arg): Free any temporary slots made for arg being stored.
+	* function.c (get_structure_value_addr): Delete fn.
+	(init_function_start): No longer initialize structure value addr.
+	* integrate.c (expand_inline_function): Use temporary slot for
+	inlined function's frame.
+	Free temporaries needed while evaluating arguments.
+	* expr.c (expand_assignment, do_jumps): Free temps no longer needed.
+	(store_expr): Don't check for structure value addr.
+	(save_noncopied_parts, expand_expr): Call assign_stack_temp
+	instead of assign_stack_local.
+	(preexpand_calls): No longer special-case fns returning structures.
+	* c-typeck.c (c_expand_asm_operands): Free any temporaries made.
+	* cplus-typeck.c (c_expand_asm_operands): Ditto.
+	* cplus-decl2.c (finish_file): Ditto.
+	* cplus-init.c (expand_aggr_init_1): Ditto.
+	* cplus-type2.c (make_merged_ref): Preserve result and free
+	other temporaries.
+	* cplus-parse.y (stmt): Free any temporaries in EXCEPT clause.
+
+Sat Mar 10 16:07:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* loop.c (other_reg_use_p): New name for only_reg_use_p.
+	Return 0 if IN == EXPR.
+	(check_eliminate_biv): Re-invert the test using other_reg_use_p.
+
+Fri Mar  9 18:34:11 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* optabs.c (init_optabs): Handle PSImode insns.
+
+Fri Mar  9 18:24:11 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (local_alloc): Clear qty_phys_sugg and _has_sugg
+	when doing loop, not just when doing bzero.
+	Add new vars qty_phys_copy_sugg and _has_copy_sugg.
+	(block_alloc): Rework detection of possible tied registers to use
+	extracted insn operands rather than trying to parse operands from
+	RTL description.
+	Don't tie registers if output has earlyclobber.
+	For REG_NO_CONFLICT, check commutativity of expression in REG_EQUAL,
+	rather than of operation of attached insn.
+	If insn is a simple copy, pass that info to combine_regs.
+	(combine_regs): For multi-word items, mark all registers actually
+	used as preferred.
+	If the insn is a simple copy, record hard reg suggestions in
+	qty_phys_copy_sugg instead of qty_phys_sugg.
+	(find_free_reg): Correctly check for all registers used.
+	If qty_phys_has_copy_sugg is non-zero, use that register set.  If
+	none of them couldn't be allocated, try the other suggest set if
+	it exists.
+
+Thu Mar  8 02:17:50 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* jump.c (jump_optimize): Detect tablejumps that always go to
+	the same place, and change to unconditional jumps.
+
+	* fold-const.c (fold): Simplify comparison of integer value with self.
+
+	* rtl.h (FUNCTION_FLAGS...): Additional flag bits for saving
+	current_function_returns_pointer, and several others.
+	(FUNCTION_PRETEND_ARGS_SIZE): New component in inline header.
+	* integrate.c (save_for_inline): Record these flags.
+	(output_inline_function): Get them out again.
+	Also restore current_function_args_size and ..._pretend_...
+
+	* ns32k.md (movsi, movdi): Handle floating point registers.
+
+	* dbxout.c (dbxout_prepare_symbol): New function, output N_SOL stab.
+	(dbxout_symbol, dbxout_parms, dbxout_reg_parms): Call it.
+	* final.c (output_source_file): New function.
+
+	* reload.c (find_reloads_toplev): Do BYTES_BIG_ENDIAN offset
+	only within a word.
+
+	* stdarg.h: Use _VA_LIST_ as macro to indicate already loaded.
+
+	* fixincludes: Supply missing semicolon in netinet/ip.h.
+
+	* tm-alliant.h (FUNCTION_PROLOGUE): Use `linkl' on 68020.
+
+	* regclass.c (init_reg_sets): For subunion, keep largest candidate.
+
+Wed Mar  7 00:37:22 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* emit-rtl.c (in_sequence_p): New function.
+
+	* expr.c (expand_builtin): For BUILT_IN_SAVEREGS, insert after
+	the initial NOTE insn.
+
+	* dbxout.c (dbxout_finish_symbol): New argument is a decl or 0.
+	Output line number in desc field.
+	All callers changed to pass the argument.
+
+	* tree.h (TREE_PUBLIC): Move back to tree_common.
+
+	* dbxout.c (dbxout_init): Output working dir in a N_SO symbol.
+
+	* expr.c (emit_library_call): Handle PUSH_ROUNDING.
+
+	* explow.c (break_out_memory_refs): Use same mode as the MEM has.
+
+	* out-mips.c (output_load_immediate): Let the assembler do the work.
+
+Tue Mar  6 22:20:49 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (macroexpand): Fix bug in scanning strings for stringify.
+
+	* stmt.c (expand_goto_internal): Adjust stack after cleanups.
+	(expand_end_bindings, fixup_cleanups): Likewise.
+
+	* tm-alliant.h (STATIC_CHAIN_REGNUM): Use 10.
+
+Tue Mar  6 15:23:11 1990  Jim Kingdon  (kingdon at pogo.ai.mit.edu)
+
+	* config.gcc: Accept srcdir & vint with either '-' or '+'.
+
+	* c-parse.y (hash, is_reserved_word): Use __inline so it can
+	be compiled with `gcc -traditional'.
+
+Tue Mar  6 14:52:12 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* c-parse.y (compstmt): Don't return null tree for empty group.  This
+	will cause the compiler to dump core on a ({}) construct.
+	* cplus-parse.y (compstmt): Ditto.
+
+Tue Mar  6 14:33:42 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.h (TREE_STATIC): Move back to common.
+
+Tue Mar  6 06:04:30 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* function.h (expr_stmts_for_value): New field.
+	* stmt.c (init_stmt_for_function): Initialize vars for expression
+	statements.
+	(save_stmt_status, restore_stmt_status): Save and restore value of
+	expr_stmts_for_value.
+
+	* cse.c (record_jump_equiv): Ensure previous insn is an INSN before
+	testing it (it might be a NOTE).
+
+Tue Mar  6 00:26:20 1990  Richard Stallman  (rms at geech)
+
+	* tm-ns32k.h (NOTICE_UPDATE_CC): Use abort in case
+	that shouldn't happen.
+
+Mon Mar  5 23:11:57 1990  Richard Stallman  (rms at geech)
+
+	* Makefile.in (cplus-tab.h): Say expect 12 reduce/reduce conflicts.
+
+	* genoutput.c (output_prologue): Include insn-attr.h.
+
+	* pyr.md (addsi3, mulsi3, umulsi3, andsi3, iorsi3, xorsi3):
+	Make input arg predicates symmetrical.
+	(adddi3, anddi3, iordi3, xordi3): Likewise.
+	(addsi3): Use immediate subtract if suitable.
+
+Sat Mar  3 21:08:25 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (move_block_to_reg, emit_push_insn): Don't treat double 0.0
+	as two words of zero.
+	Handle DImode constants as two integers.
+	Support CONST_INT (currently only called with const0_rtx).
+
+	* expr.c (convert_move): Can only use slt if STORE_FLAG_VALUE == -1.
+
+Sat Mar  3 15:03:00 1990  Richard Stallman  (rms at geech)
+
+	* function.c (setjmp_protect_args, setjmp_args_warning): New functions.
+	* toplev.c (rest_of_compilation): Call setjmp_args_warning.
+	* c-decl.c (finish_function): Call setjmp_protect_args.
+
+	* flow.c (regno_clobbered_at_setjmp): Argument registers
+	are in effect set at start of function.
+
+	* tm-sparc.h (ASM_OUTPUT_DOUBLE): Replace missing line.
+
+	* print-tree.c (prtypeinfo): Don't check DECL-only
+	flags for other nodes.
+
+	* toplev.c: Eliminate `#ifdef 0'.
+
+	* dbxout.c (print_int_cst_octal): New function.
+	(dbxout_type): Use that for long long types.
+
+	* Makefile.in (start.encap, rest.encap): Split all.internal.
+
+	* tahoe.md: Adjust formatting.
+
+	* tahoe.md (ashlsi3, lshlsi3): Don't clobber a const_int.
+	Instead, use %s to convert shift count to multiplier.
+	* tm-tahoe.h (PRINT_OPERAND): Handle %s.
+
+	* tm-tahoe.h (CONST_COSTS): Specify cost of MULT.
+
+Fri Mar  2 01:00:11 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cse.c (rtx_cost): By default, multiply and divide are expensive.
+
+	* expmed.c (expand_mult_add): Use type_for_mode.
+	Allow ADD to have a different mode.
+	* c-typeck.c (type_for_mode): New function.
+	(get_floating_type): Function deleted.
+	* cplus-typeck.c: Likewise.
+
+	* jump.c (jump_optimize): Simplify `if (x) goto foo; else goto foo;'.
+
+Thu Mar  1 17:41:22 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* out-mips.c (tree_code_name): Declaration deleted.
+
+	* stmt.c (expand_expr_stmt): No "no side effects" warning for (void)0.
+
+	* assert.h (__assert): Don't call abort; use 0 as value.
+	* gnulib2.c (__eprintf): Call abort here.
+
+	* c-decl.c (pushdecl): Don't warn if shadowing error_mark_node.
+
+	* optabs.c: Use GET_MODE_WIDER_MODE instead of INC_MODE.
+
+	* machmode.def: Set up next-wider-mode for floating modes.
+
+Wed Feb 28 18:58:22 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* stmt.c (expand_goto_internal): Add missing stack adjust.
+	(expand_fixup): Don't do stack adjust if fixup isn't for current pos.
+
+	* stmt.c (expand_start_stmt_expr, expand_end_stmt_expr): No need to
+	save result from start_sequence in RTL_EXPR.
+
+	* stmt.c (expand_end_loop): Correctly see if NOTE_INSN_LOOP_CONT
+	was written.
+
+	* stmt.c (expand_decl): Omit move to OLDADDR if it would be noop.
+
+	* expr.c (expand_expr): Don't use variable TYPE in subblocks that
+	hides TYPE at function level.
+
+	* expr.c (force_operand): Always generate PLUS for constant.
+	Use negate_rtx to negate constant.
+
+	* expr.c (expand_expr): Ensure that type is not wider than
+	HOST_BITS_PER_INT when assuming that constant is entirely in
+	TREE_INT_CST_LOW.
+	Simplify EXPAND_SUM code for PLUS_EXPR and MINUS_EXPR.
+	Call preexpand_calls at binop instead of all places that branch to it.
+
+	* expmed.c (expand_shift): Skip widening try for rotates; avoid
+	passing UNSIGNEDP == -1 to expand_binop.
+
+	* expr.c (expand_builtin): Use a sequence instead of reorder_insns.
+
+	* tree.c (save_expr): Ignore NON_LVALUE_EXPRs.
+	Mark as TREE_VOLATILE so won't be inadvertently deleted.
+	(build): Special-case LENGTH == 1 also.
+
+Wed Feb 28 12:57:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (convert_move): Handle conversions to and from PSImode.
+
+	* stor-layout.c (layout_type): For integer types, don't consider
+	PSImode, etc.
+
+	* expmed.c (init_expmed): Typo: test was backwards.
+
+	* Makefile (install): When installing $${eachfile}, use basename.
+
+Tue Feb 27 14:48:46 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.h (struct tree_common): Delete certain attributes.
+	external, public, static, nonlocal, regdecl, inline.
+	(struct tree_decl): Insert them here.
+
+	* combine.c (try_combine): Avoid generating nested SUBREGs for
+	operands when handling case where I2 or I1 is a SUBREG assignment.
+	Never combine with an insn that sets a register to itself if it has
+	a REG_EQUAL note.
+	(subst): Correct errors in changing (minus (x) (c)) to (plus (x) (-c)).
+	Recompute CODE before second switch.
+	Case NOT: in second switch failed to set undobuf.storage.
+	(gen_lowpart_for_combine): Don't allow multi-word modes; do allow
+	null conversions.
+
+Tue Feb 27 07:13:17 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): Don't combine when doing so would
+	replace destination that is being modified, as opposed to replaced.
+
+	* function.c (fixup_var_refs_1): Rework to correctly support
+	bit-field insns that don't allow memory operands.
+	Correctly detect insns that simply copy a variable to or from a
+	register.
+	(optimize_bit_field): Use a sequence rather than reorder_insns.
+	* Makefile.in (function.o): Update dependancies.
+
+	* recog.h: Delete obsolete insn_machine_info.
+
+	* function.c (assign_parms): Use move_block_from_regs to place
+	first part of parameter partially in registers into memory.
+
+Mon Feb 26 19:02:56 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fixincludes: Find only .h files when looking for headers.
+
+	* function.c (expand_function_start): Save arg ptr reg
+	if there are nonlocally-referenced parms.
+
+Fri Feb 23 13:21:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y (readescape): For x, avoid overflow when shifting in if.
+
+Thu Feb 22 19:14:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fixincludes: Delete directories before creating them.
+	When making internal symbolic directory links, chase
+	chain of existing links to the end.
+
+	* dbxout.c (dbxout_type): Always use main variant (until
+	there is code to report the distinctions usefully).
+
+Wed Feb 21 13:20:33 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* math-68881.h (hypot): New function.
+
+	* optabs.c (expand_binop): Swap operands if that makes modes match.
+
+	* expr.c (expand_expr): For ARRAY_EXPR, when converting to
+	multiplication and addition, use type of index for product.
+
+	* gcc.c (LIB_SPEC): Link with -lg if -g specified.
+	* tm-isi68.h, tm-next.h, tm-sparc.h, tm-sun3.h, tm-sun386i.h: Likewise.
+	* tm-mips.h (LIB_SPEC): Override to avoid using -lg.
+
+	* toplev.c (main): Warn for -g if not supported.
+
+	* c-decl.c (grokdeclarator): Do pedantic checks for const functions
+	where function decls and variant function types are made.
+
+Mon Feb 19 20:06:48 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* optabs.c: Restore Feb 13 change.
+
+	* varasm.c (readonly_data_section): New fn.
+	(assemble_variable, get_or_assign_label, output_constant_pool):
+	Use new fn instead of text_section.
+	* final.c (end_final): Write profiling table to read-only section.
+	(get_attr_length, shorten_branches): Address vectores take no space
+	if not in text section.
+	Vectors are in operand 0 for ADDR_VEC but 1 for ADDR_DIFF_VEC.
+	(final_scan_insn): Merge cases for ADDR_VEC and ADDR_DIFF_VEC.
+	Put vector tables in read-only section.
+
+Sun Feb 18 13:58:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gnulib2.c (__shtab): New vector.
+	* Makefile.in (LIB2FUNCS): Add that member.
+
+	* *tahoe*: New versions of these files.
+
+	* optabs.c: File was deleted.  Copied last backup.
+	Feb 13 change lost.
+
+	* tm-sparc.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Handle nans.
+	Don't output more digits than the numbers have.
+	* tm-sun3.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Likewise.
+	(ASM_OUTPUT_DOUBLE_OPERAND): Don't output excess digits.
+
+	* m68k.md (movqi): Don't use clrb or st if dest is volatile.
+
+	* expmed.c (expand_mult): Don't use sum of shifts if mult is cheaper.
+	(init_expmed): Set mult_is_cheap based on rtx_cost.
+	* toplev.c (compile_file): Call init_expmed.
+	* cse.c (rtx_cost): Not static.
+
+	* tm-mips.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL):
+	Start name with $.
+
+	* tm-alliant.h, tm-convex.h, tm-hp9k3bsd.h, tm-news.h, tm-seq386.h:
+	* tm-sequent.h, tm-spur.h, tm-sun2.h, tm-tahoe.h, tm-vax.h:
+	(LIB_SPEC): Put in -lc with appropriate alternatives.
+
+	* toplev.c (rest_of_compilation):
+	Clear rtx_equal_function_value_matters just before final.
+
+	* cccp.c (rescan): If don't find paren after macro, back up over space.
+
+Sat Feb 17 20:58:21 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-hp9k320.h (CPP_SPEC): Remove _INCLUDE__STDC__.
+
+Wed Feb 14 09:06:26 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (struct movable): Add SET_DEST and SET_EQUAL fields.
+	(single_set): New fn.
+	(scan_loop, force_movables, move_movables, consec_set_invariant_p):
+	Use new fn to look for insns that contain a single set.
+	Use new fields in struct movable.
+	(scan_loop, strength_reduce): Pass number of registers to
+	strength_reduce.
+	(libcall_benefit): New fn.
+	(scan_loop, strength_reduce, consec_sets_giv): Use it.
+	(skip_consec_insns): Correctly count insns to be skipped when
+	NOTEs are present.
+	(combine_movables): In some cases, combine regs that load CONST_INTs
+	even if the modes of the destination differ.  This requires starting
+	the inner loop from the start of the movable list.
+	Use find_reg_note to search for notes.
+	Don't choose a use of an equivalence instead of the insn that sets
+	the register directly (hence setting up the equivalence).
+	Set DONE for the matched movable to ensure it isn't duplicated.
+	(replace_call_address): No longer used.
+	(move_movables): When moving a LIBCALL block where the address of
+	the fn is in a register, emit an insn to move the actual address
+	in case the original move was CSE'ed out of the block.
+	Emit AND insn via expand_binop instead of explicit RTL.
+	Search for matching from start of list, not from movable being matched.
+	If mode of combined movables differ, use SUBREG to replace narrower.
+	(replace_regs): Don't replace register if it is the destination.
+	(count_nonfixed_reads): Mem ref is fixed if addres is loop invariant.
+	(can_jump_into_range_p): Speed up common cases.
+	(count_loop_regs_set): Do same thing for parts of PARALLEL as when
+	they occur standalone.
+	(struct induction): Delete fields forces, forces2, and consec.
+	Store dest and src reg rtx instead of register number.
+	Add new fields always, cant_derive, combined_with, maybe_dead, and
+	derive_adjustment.
+	(struct iv_class): Add new fields initial_test, init_set, incremented.
+	(all strength reduction routines): Use single_set and use new 
+	struct induction fields; forces is no longer used.
+	(record_biv): New fn.
+	(strength_reduce): Use it.
+	(record_initial, valid_initial_value_p): New fns.
+	(strength_reduce): Scan for bivs in loop order.
+	Refine handling of maybe_never.
+	A reg isn't a biv if it is never incremented.
+	Use note_stores and record_initial to correctly note all changes
+	to a biv's register prior to the start of the loop.
+	We may know biv's initial value if it was tested NE before the loop.
+	Use new valid_initial_value_p.
+	Ensure giv's insn is the last in a LIBCALL block or if consec.
+	Don't set maybe_never on jump back to top of loop.
+	Don't delete any insns setting givs; flow will eliminate them as
+	dead.  Ditto for biv updates when biv can be eliminated.
+	If giv's last use is in a computation of another giv, mark that it
+	might be dead.
+	Make two passes over givs.  In first pass, handle non-matched
+	givs.  In second pass, handle the matched givs.
+	(only_reg_use_p): Now static.
+	(delete_insn_forces): Fn deleted; no longer used.
+	(update_giv_derive): New fn.
+	(strength_reduce): Call it for every insn and label.
+	(record_giv): If giv never used, ignore it.
+	(basic_induction_var): Always set *MULT_VAL to something.
+	A set of a biv from an invariant MEM is allowed.
+	(simplify_giv_expr, expr_cost): New fns.
+	(general_induction_var): Rewrite to use them.  More types of
+	expressions are now recognized as givs.
+	Use results produced by update_giv_derive to ensure that giv derivation
+	works correctly when spanning biv update.
+	(consec_sets_giv): Can allocate temporary induction struct on stack.
+	Skip insns that set irrelevant items between two updates to giv.
+	(gen_iv_mult, emit_iv_init_code): Replace with emit_iv_add_mult.
+	(update_reg_last_use): New fn.
+	(emit_iv_add_mult): Call it for all operands.
+	(express_from, combine_givs_p, combine_givs): New fns.
+	(strength_reduce): Call them to combine givs.
+	(product_cheap_p): Rewrite to handle more cases.
+	Free any memory allocated.
+	(get_condition): New fn.
+	(strength_reduce, check_dbra_loop): Use it.
+	(check_dbra_loop): Use emit_move_insn instead of writing explicit SET.
+	Use emit_cmp_insn/emit_jump_insn to write out replacement test.
+	(check_eliminate_biv): Use single_set.
+	Refine test for insns that use biv only to calculate giv.
+	Return non-zero if can eliminate biv; don't set eliminable.
+	(can_eliminate_biv_p): Remove some duplicate code and allow
+	all constants in some cases where only CONST_INT was allowed.
+	Don't replace biv with giv that might be dead.
+	(eliminate_biv): Compute whether to put an invariant before insn
+	in which the biv is being eliminated or at the start of loop.
+	Allow more types of constants.
+	Don't replace biv with giv that might be dead.
+	Use validate_change when substituting into insn.
+	(strength_reduce): Change calls to check_eliminate_biv and
+	eliminate_biv.  Call the former again after maybe_dead has possibly
+	been set on some givs.
+
+Tue Feb 13 19:58:46 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.c (function_obstack): New variable.
+	(init_allocation): Init it to temporary_obstack. 
+	(save_tree_status): Save it, make new obstack for it.
+	(restore_tree_status): Free new obstack, restore old.
+	(temporary_allocation, resume_temporary_allocation): Use that one.
+	* function.h (struct function): Slot for saved function_obstack.
+	* tree.c (push_obstack, pop_obstack): New functions.
+	These implement a stack for obstack selection.
+	* function.c (put_var_into_stack): If var is nonlocal,
+	switch to obstacks of the function it is in.
+
+Tue Feb 13 17:52:15 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* optabs.c (emit_no_conflict_block): During reload, don't do
+	any encapsulation or add notes.
+	Allow single insn or no insns in sequence.
+
+Tue Feb 13 12:51:45 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stor-layout.c (build_int): Increase limits of cache size.
+
+	* sdbout.c (sdbout_symbol): Force output of symbol's type.
+
+Tue Feb 13 08:28:37 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* toplev.c (rest_of_compilation): Don't skip compilation of function
+	if TREE_INLINE but no saved insns (e.g., if not -O).
+
+	* rtlanal.c (replace_rtx): New function.
+	* rtl.h: Define it.
+
+Tue Feb 13 00:02:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (finish_struct): Lay out any existing array types
+	of newly completed struct.
+	(layout_array_type): New subroutine.
+
+Mon Feb 12 11:33:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* function.c (assign_parms): If not -O, keep all parms in memory.
+
+	* expr.c (clear_pending_stack_adjust): Ignore TREE_INLINE if not -O.
+
+	* out-i386.c (output_fix_trunc): New function.
+	(fp_pop_int): Re-enabled.  Handle more modes, individually.
+	(print_operand): Handle %D.
+	* i386.md (fix_truncdfdi2, fixuns_truncdfdi2): New patterns.
+	These changes from James Van Artsdalen.
+
+	* gnulib2.c (__builtin_vec_delete): Use __builtin_delete, not free.
+
+	* sdbout.c (sdbout_field_types): Do look through pointer types.
+
+Sat Feb 10 19:31:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sdbout.c (plain_type_1): Don't output tag until known.
+	(sdbout_one_type): Don't record tag in KNOWN_TYPE_TAG until end.
+	Reenable output of member types before original structure.
+
+	* expr.c (expand_expr): Convert post-inc to pre-inc if result ignored.
+
+Sat Feb 10 14:35:03 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* ns32k.md (movsf): Convert double constant to float.
+
+Fri Feb  9 00:02:43 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (duplicate_decls): Don't lose alignment of OLDDECL.
+
+	* cccp.c (handle_directive): Keep comments by copying them explicitly.
+
+	* cccp.c (rescan): When scanning for open-paren after macro name,
+	discard comments if appropriate.
+
+Fri Feb  9 18:26:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): Suppress infinite loop when associating
+	operations in cases where a reg, R, is equal to "R OP const1" and
+	we are looking at "R OP const2" for some associative operator OP.
+
+Thu Feb  8 14:19:41 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (build_enumerator): Pedantic warning if value not an int.
+	Access default value after checking for constant specified,
+	as it should no longer be possible to have NON_LVALUE_EXPR
+	in the default.
+
+	* c-typeck.c (default_conversion): Don't truncate wide enums.
+
+	* tm-hp9k320.h (CPP_SPEC): Define _INCLUDE__STDC__ if not traditional.
+	* tm-hp9k310.h (CPP_SPEC): Likewise.
+
+Wed Feb  7 12:59:07 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (emit_insns_before): New fn.
+	(init_emit_once): Add uses of new macros to support static chain
+	passed in memory.
+	* calls.c (prepare_call_address): Rework to set static chain for
+	languages that have EPmode function addresses and for nested
+	functions in C.
+	Emit USE insn for static_chain_rtx into list of USE insns to be
+	placed later.
+	(emit_call_1): USE_INSNS is now a list of insns, not a SEQUENCE.
+	(expand_call): Remove gratuitous forcing of FUNEXP to Pmode (it
+	might have been EPmode).
+	Make USE_INSNS a list, rather than a SEQUENCE.
+	Use prepare_call_address to emit load into static chain.
+	* expr.c (emit_library_call): Update call to prepare_call_address.
+	* function.c (expand_function_start): Use incoming static chain rtx
+	instead of outgoing form (was correct in one place, wrong in one).
+	* stmt.c (expand_goto): Set static_chain rtx after stack pointer
+	in case it uses the stack pointer.
+	Only write one USE for stack_pointer_rtx.
+
+Tue Feb  6 17:26:14 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): Suppress optimization of `if (...) x = 1;
+	else {...}  if (x) ...', when a label is present between the
+	assignment to X and the unconditional jump.
+
+Mon Feb  5 23:22:30 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): If I2 or I1 is a PARALLEL, ignore only
+	CLOBBER parts when combining.  Previously used to ignore USE parts
+	also but the latter can indicate that the insn needs some setup that
+	isn't shown in its rtl.
+
+Mon Feb  5 13:32:32 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* vax.md (addhi3, addqi3): Fix typo checking for dec insn.
+
+	* cccp.c (struct file_buf): New field `nominal_fname' is name spec'd
+	in #line command; `fname' is name of actual input file.
+	Many functions now use or set this field as well or instead.
+
+	* c-decl.c (grokdeclarator): Fix missing paren.
+
+Sun Feb  4 12:37:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-3b1g.h: New file.
+	* config.gcc (3b1g, 3b1-gas): New alternative.
+
+	* loop.c (move_movables): Skip USE insns when checking for
+	the insn that loads the address of a library function.
+
+	* combine.c (combine_instructions): Compute total_distrib_*.
+
+	* final.c (final): Do basic block profiling at end of function.
+	(final, final_scan_insn): Run CC_STATUS_INIT after block profiling.
+	(final_scan_insn): Detect cond jumps that use PARALLEL.
+
+Sun Feb  4 00:04:22 1990  Richard Kenner  (rms at sugar-bombs.ai.mit.edu)
+
+	* function.c (assign_stack_local): Use plus_constant to avoid
+	PLUS when offset is zero.
+	(assign_outer_stack_local): Ditto.
+
+Sun Feb  4 00:04:22 1990  Ron Guilmette  (rms at sugar-bombs.ai.mit.edu)
+
+	* explow.c (fix_lexical_addr): Fix typo.
+
+	* tree.c (build_type_variant): Special handling for protoize.
+
+	* protoize.c: New file.
+
+	* toplev.c (flag_gen_aux_info): Define it.
+	(f_options): Recognize the flag.
+	(compile_file): Open and close the aux_info file.
+
+	* flags.h (flag_gen_aux_info): Declare it.
+
+	* c-typeck.c (comptypes): Handle equivalent variant types for protoize.
+
+	* c-decl.c (implicitly_declare): Call gen_aux_info_record.
+	(start_decl, store_parm_decls): Likewise.
+	(pushdecl): For protoize, distinguish different names for same type.
+	(grokdeclarator): For protoize, don't always get main variant.
+	(finish_function): Take the main variant here.
+
+	* c-aux-info.c, SYSCALLS.c: New files.
+
+	* Makefile.in (proto, protoize, unprotoize): New targets.
+	(protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize): More new.
+	(c-aux-info.o): Also new.
+	(STAGESTUFF): Add protoize, unprotoize.
+	(install): Install protoize, unprotoize and SYSCALLS.c.X.
+
+Sat Feb  3 17:09:58 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (digest_init): Allow conversion of array exp to pointer.
+	Constructors with types are simply expressions, so don't treat as
+	initializers.		    
+
+	* Makefile.in (uninstall): New target.
+
+	* Makefile.in (include/README): Target deleted.
+	(include): Deleted.
+	(INSTALL): Create include dir here.
+
+	* Makefile.in (all.internal): Enable compiling cc1plus.
+	(lang-cplus): New target.
+	(*.o): Add some missing dependencies.
+	(STAGESTUFF): Add cc1plus.
+
+Fri Feb  2 18:21:22 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* tree.c (decl_function_context): Don't abort when passed ERROR_MARK.
+
+Fri Feb  2 17:04:37 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (copy_for_inline): Use real width of rtunion in bcopy.
+	* emit-rtl.c (copy_rtx_if_shared): Likewise.
+
+	* assert.h (assert) [__STDC__]: Use comma operator to avoid warning.
+
+	* c-decl.c (grokdeclarator): Traditionally change return type float
+	to double.
+
+	* cse.c (predecide_loop_entry): Give up unless simple jump enters loop.
+
+Thu Feb  1 19:32:28 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y (yylex, skip_white_space): CR is not whitespace.
+
+Thu Feb  1 17:18:33 1990  Richard Kenner  (kenner at sugar-bombs.ai.mit.edu)
+
+	* tm-m68k.h (PREFERRED_RELOAD_CLASS): Never return DATA_REGS for
+	ADDR_REGS, even for QImode.
+
+	* cse.c (cse_insn): If source equivalent is not in table, but
+	source is, put equivalent in same class as source.  But do not
+	do this if the destination has a STRICT_LOW_PART.
+	(cse_main): Call init_recog instead of init_recog_no_volatile.
+
+Thu Feb  1 17:18:33 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Makefile.in (cplus-tab.c, cplus-tab.h): Renamed from cplus-parse.*. 
+	(TAGS, realclean): Renamed these files.
+	(cplus-decl2.o, cplus-type2.o, cplus-search.o): New targets.
+	(cplus-except.o, cplus-expr.o): New targets.
+	(new-method.o): Target deleted.
+	(CPLUS_OBJS): Add and delete object files.
+	(CPLUS_TREE_H): Change header names.
+	(INTERNAL_CFLAGS): Set the MERGED flag.
+
+	* calls.c (expand_call): Flush junk in assign of CONTEXT.
+
+	* expr.c (expand_expr): LOOP_STMT is just an infinite loop.
+	Handle EXIT_STMT.
+	* tree.def (EXIT_STMT): Change meaning: exit if expression is true.
+	* stmt.c (warn_if_unused_value): Do nothing for EXIT_STMT.
+
+Thu Feb  1 14:10:57 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* optabs.c (emit_no_conflict_block): Accept optional expression
+	to be placed in REG_EQUAL note on last insn emitted.
+ 	Just emit insns if TARGET is not a register.
+	(expand_binop, expand_unop): Change calls.
+
+Thu Feb  1 01:03:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.def (NON_LVALUE_EXPR): New tree code.
+	* fold-const.c (non_lvalue): No longer static.
+	Make NON_LVALUE_EXPR.  Do nothing if arg certainly not lvalue.
+	* c-typeck.c (build_c_cast): Call non_lvalue.
+	(default_conversion, build_function_call, actualparameterlist):
+	(build_binary_op_nodefault, truthvalue_conversion, build_modify_expr):
+	(convert_for_assignment, digest_init): Strip NON_LVALUE_EXPR from args.
+	(build_unary_op, build_modify_expr): No longer need to check for
+	NOP_EXPR that indicates not an lvalue.
+	(build_compound_expr, build_c_cast): Don't strip NON_LVALUE_EXPR
+	* expr.c (expand_expr, do_jump): Handle NON_LVALUE_EXPR.
+	* c-decl.c (build_enumerator, grokdeclarator): Strip them.
+	* c-parse.y (case label): Strip them.
+
+	* limits.h (INT_MIN): Define so it has type `int', not unsigned.
+	(CHAR_MIN, SCHAR_MIN, SHRT_MIN): Put arens around value.
+
+	* reload1.c (inc_for_reload): Forget reg_last_reload_reg
+	for the reg being inc'd.
+
+Wed Jan 31 17:37:53 1990  Michael Tiemann  (rms at sugar-bombs.ai.mit.edu)
+
+	* cplus-*: New files.
+
+	* tree.def (TARGET_EXPR): New name for NEW_EXPR.
+	* tree.c (simple_cst_equal): Change NEW_EXPR to TARGET_EXPR.
+
+	* stmt.c (estimate_case_costs): Check all nodes against ASCII range.
+
+	* stmt.c (warn_if_unused_value): Delete obsolete node types.
+
+	* recog.c (validate_change): Fix one-off bug testing recog_memoized.
+
+	* local-alloc.c (local_alloc): Initialize qty_phys_reg.
+
+	* fold-const.c (non_lvalue): Propagate TREE_LITERAL, TREE_VOLATILE.
+
+	* expr.c (expand_expr): Delete DELETE_EXPR.
+	Call lang_expand_expr for any unknown tree code.
+	Handle IF_STMT, LOOP_STMT, LET_STMT for real.
+
+	* dbxout.c (dbxout_type): Output args for method type.
+	Treat OFFSET_TYPE as int if not using GDB extensions.
+
+Wed Jan 31 17:32:35 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* stmt.c (node_has_high_bound, node_has_low_bound):
+	Use integer_one_node, not new node.
+
+	* expr.c (do_jump): In comparisons against zero, used unsigned, rather
+	than signed, extensions, as that is more likely to be the faster one.
+
+Wed Jan 31 14:09:40 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* toplev.c (rest_of_compilation): Ignore TREE_INLINE if not -O.
+
+	* out-mips.c (mips_prologue): Handle big stack frames > 2**16.
+
+	* tree.h (struct tree_type): Rename `max' field to `maxval'.
+	(TYPE_MAX_VALUE, TYPE_OFFSET_BASETYPE, TYPE_METHOD_BASETYPE):
+	Use new name.
+
+	* reload1.c (reload): Reject fixed regs when spilling large groups.
+
+	* c-decl.c (start_function):
+	Optionally warn if non-proto defn without previous prototype.
+
+	* Makefile.in: New rule to make .../include subdir.
+	New rule to run fixincludes into it.
+	Rule `install' depends on them.
+
+	* assert.h (assert) [no NDEBUG]: Split into versions with/out __STDC__
+	(_assert) [__STDC__]: Pass expression and file separately to _eprintf.
+	(_assert) [not __STDC__]: Likewise, but implemented differently.
+	* gnulib2.c (__eprintf): Handle 3 args plus format string.
+
+	* tm-i386.h (STACK_BOUNDARY): Define it.
+
+Tue Jan 30 16:24:14 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (install): Fix typo in name of varargs file.
+
+	* combine.c (try_combine): Don't allow combine to violate machine's
+	alignment restriction.
+
+Sun Jan 28 03:53:28 1990  Michael Tiemann  (tiemann at rio)
+
+	* stmt.c (warn_if_unused_value): Don't warn for LOOP_STMT, IF_STMT,
+	or LET_STMT.
+
+	* toplev.c (compile_file): Code to mention symbol that was not
+	written to asm file is now #if 0'd out.  What good is it telling the
+	debugger about a symbol it cannot see?
+
+	* dbxout.c (dbxout_type): Change METHOD_TYPE print character from
+	'@' to '#'.  Also, don't try to output CONST_DECLs.  GDB doesn't
+	understand them, and they don't have DECL_OFFSETs.
+
+	* sparc.md (floatsidf2): Changed constraint from "rfm" to "rm" for
+	second operand.
+
+	* toplev.c (lang_expand_expr): New variable is pointer-to-function
+	which expands language-specific tree codes.  Its default is
+	`fancy_abort'.
+
+Sat Jan 27 10:18:44 1990  Michael Tiemann  (tiemann at rio)
+
+	* gcc.c (main): Initialize COMPILERS before calling
+	`validate_all_switches'.
+
+	* tree.c (decl_{type,function}_context): Handle LET_STMT.
+
+	* stmt.c (expand_decl_cleanup): New function.
+
+	* stmt.c (expand_decl): No longer takes CLEANUP parameter.
+	All callers changed.
+
+	* tree.c (build_{loop,if,goto,compound}, etc): Turn these tree
+	constructors back on.
+
+	* tree.def: Delete DELETE_EXPR, PUSH_EXPR, POP_EXPR.
+
+	* c-typeck.c (max): New macro.
+
+	* c-decl.c (maybe_build_cleanup): New function.
+
+	* tree.c ({value,purpose}_member): New functions.  Returns first
+	element of LIST that matches respective components with ELEM.
+
+	* varasm.c (first_global_object_name): Variable defined.
+
+Sat Jan 27 23:31:02 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload): Reject fixed regs when completing group of 2.
+
+Fri Jan 26 17:28:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (do_jump): Don't use CONST0_RTX when value to be tested is
+	CONST_INT.
+
+Fri Jan 26 13:39:01 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gcc.c (main): Warn about bad switches at beginning, not at end.
+
+Thu Jan 25 22:03:37 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* loop.c (general_induction_var): Reject widening multiply.
+
+	* cccp.c (grow_outbuf): Always return 0.
+
+Thu Jan 25 07:04:31 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (subst): Correctly reference length in
+	(zero_extract (zero_extend ... )) combinations.
+
+	* c-decl.c: Define warn_traditional.
+	(build_enumerator): Remove NOP_EXPRs from default value also.
+
+	* fold-const.c (fold): Strip NOP_EXPRs when looking for constants.
+
+Thu Jan 25 01:57:34 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Makefile.in (install): Clear execute bit for nonexecutable files.
+
+	* i860.md (andsi3): Truncate xop2 constant to 16 bits.
+
+Wed Jan 24 22:32:47 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genemit.c (main): Include output.h in insn-emit.c.
+	* genpeep.c (main): Similar.
+	* genrecog.c (main): Ditto.
+	* Makefile.in (insn-emit.h, insn-peep.h, insn-recog.h): Add dependancy.
+
+Wed Jan 24 20:13:08 1990  Richard Stallman  (rms at albert.ai.mit.edu)
+
+	* cccp.c (do_define): Report error for duplicate macro args.
+
+Mon Jan 22 07:52:28 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (alter_reg): Rework change of January 7th to allow
+	for no previous insn and clear equivalence information of correct
+	pseudo.
+
+Mon Jan 22 01:22:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fold-const.c (fold): Don't simplify non-lvalue to an lvalue.
+	(non_lvalue): New fn; makes a NOP_EXPR with readonly flag.
+	* c-typeck.c (build_unary_op, build_modify_expr): Reject such.
+
+Sun Jan 21 20:53:49 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (lvalue_p): Don't call language_lvalue_valid.
+	Don't bother with looking for NEW_EXPR or REFERENCE_TYPE.
+	(language_lvalue_valid): Deleted.
+
+Sat Jan 20 19:50:15 1990  Michael Tiemann  (mtiemann at apple-gunkies.ai.mit.edu)
+
+	* expr.c (expand_expr): Implemented language-independent expansion
+	for NEW_EXPR.
+
+Thu Jan 18 14:29:10 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+ 	* cccp.c (rescan): Set beg_of_line when string ends at newline.
+	(skip_quoted_string): Don't swallow newline that ends a string.
+	(handle_directive): No need to back up here.
+	Pass LIMIT as second arg to skip_quoted_string.
+
+Thu Jan 18 12:50:09 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (gen_lowpart): Verify CONST_DOUBLE is integer mode.
+	(gen_highpart): Add support for CONST_INT and CONST_DOUBLE.
+
+	* recog.c (general_operand): Don't allow nested SUBREGs.
+	(nonmemory_operand, memory_operand, register_operand): Ditto.
+
+	* emit-rtl.c (gen_reg_rtx): Don't allow creation of pseudos
+	during or after reload.
+
+Thu Jan 18 11:41:14 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (actualparameterlist): -Wconversion warns if
+	representation or width is changed.
+
+Thu Jan 18 01:09:47 1990  Michael Tiemann  (mtiemann at apple-gunkies.ai.mit.edu)
+
+	* dbxout.c (various places): Don't assume that DECL_NAME of a
+	PARM_DECL is non-zero.  It might be empty for anonymous parms.
+
+Thu Jan 18 00:06:58 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (local_alloc): qty_phys_sugg is now an array of
+	HARD_REG_SETs.  Initialize new variable qty_phys_has_sugg.
+	(block_alloc): Don't test for nonlocal gotos here.
+	Test qty_phys_has_sugg instead of qty_phys_sugg to see if
+	quantity needs early allocation.
+	(qty_compare, qty_compare_1): No longer consider whether a quantity
+	has a hard register suggestion as part of its priority.
+	(combine_regs): We now record multiple hard register suggestions
+	in qty_phys_sugg.
+	(find_free_reg): Test here for nonlocal gotos.
+	Support new meaning of qty_phys_sugg by restricting to those
+	registers if just_try_suggested.
+	Check for no registers available prior to looping over registers.
+
+	* global-alloc.c (prune_preferences): New fn.
+	(global_alloc): No longer keep a single vector of which registers
+	someone prefers; instead keep this record one per allocation number.
+	Record registers not saved over calls as already used for register
+	allocation purposes, so we can feel free to allocate them with no
+	cost.
+	Call new fn to prune preferences and build list of registers
+	preferred by earlier allocnos.
+	find_reg no longer gets preference information as argument.
+	(find_reg): Don't take preferred registers as argument; get the
+	info from global variables.
+	(set_preference): Remove regs_someone_prefers.
+	(dump_conflicts): Print register preferences in dump file.
+	
+Wed Jan 17 16:00:59 1990  Michael Tiemann  (mtiemann at apple-gunkies.ai.mit.edu)
+
+	* tree.c (decl_function_context): New function, returns the
+	innermost DECL_CONTEXT of FNDECL when that context is a
+	FUNCTION_DECL.
+	* tree.c (decl_type_context): New function, returns the
+	innermost DECL_CONTEXT of FNDECL when that context is a
+	TYPE_DECL.
+	* All callers changed to use `decl_function_context' when handling
+	nested functions.
+	* All C++ callers changed to use `decl_type_context' when handling
+	member functions.
+
+	* expr.c (fixed_type_p): New function says whether the compiler
+	guarantees that it knows the true type of an object.
+	* expr.c (expand_expr): Call that function for INIT_EXPR and
+	MODIFY_EXPR.  Also, for MODIFY_EXPR, check both RHS and LHS.
+
+	* tree.h (DECL_ARG_TYPE): Use INITIAL, not ARGUMENTS slot in
+	`tree_decl.  Now reserving ARGUMENTS slot for VAR_DECL and
+	 PARM_DECL for language-specific features.
+
+	* tree.c (build_decl): Don't set DECL_PRINT_NAME by default.
+
+	* assert.h: Assume that undefined __GNUC__ implies `assert' must
+	rely on printf.
+
+Wed Jan 17 15:31:40 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+ 	* cccp.c (rescan): If traditional, end preproc number after expt sign.
+
+Wed Jan 17 15:18:25 1990  Michael Tiemann  (mtiemann at apple-gunkies.ai.mit.edu)
+
+	* stmt.c: Extended struct nesting to hold exception handling
+	contours.  New functions:
+
+	   expand_start_try, expand_end_try, in_try_block
+	   expand_start_except, expand_end_except, in_except_block
+	   expand_start_catch, expand_end_catch, expand_catch_default
+	   expand_raise, expand_escape_except, in_exception_handler
+
+Wed Jan 17 13:48:01 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (main): Typo, had `includes' for `include'.
+	Always increment p.
+
+	* reload1.c (alter_reg): Delete spurious `break'.
+
+	* local-alloc.c (block_alloc): Delete ref to undef var first_time.
+
+Wed Jan 17 13:35:47 1990  Michael Tiemann  (tiemann at apple-gunkies.ai.mit.edu)
+
+	* toplev.c: Unmerge all changes of Bryan Boreham--no papers (yet).
+
+Wed Jan 17 12:33:52 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stor-layout.c (layout_type): Struct requires BLKmode if any field
+	crosses a word boundary.
+
+Wed Jan 17 12:04:18 1990  Michael Tiemann  (tiemann at apple-gunkies.ai.mit.edu)
+
+	* stor-layout.c (layout_type): Unterminate comment terminated.
+
+	* tree.c (lvalue_p,lvalue_or_else): Remove these functions from this
+	file.
+	* c-typeck.c (lvalue_p,lvalue_or_else): Put them in this file.
+
+Wed Jan 17 00:46:24 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (pushdecl): Delete garbage accidentally added before.
+
+	* tree.c (set_identifier_size): SIZE is size in bytes.
+	* tree.c (get_identifier): If `set_identifier_size' has not been
+	called, abort.
+	* c-decl.c (init_decl_processing): Don't call `set_identifier_size'
+	from here.
+	* c-parse.y (init_lex): Call `set_identifier_size' from here.
+
+	* varasm.c (force_const_mem): Save DESC's label on the
+	saveable_obstack.  (Note, saveable is misspelled.)
+
+	* listing: New file.
+
+Tue Jan 16 20:43:55 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (convert_sequence): Put in #if 0.
+
+Tue Jan 16 17:25:43 1990  Michael Tiemann  (tiemann at apple-gunkies.ai.mit.edu)
+
+	* toplev.c: Merged Bryan Boreham's undumping code.
+
+	* print-tree.c (dump): Handle TREE_VEC.
+
+	* varasm.c (output_constant_pool):  When done, set FIRST_POOL,
+	LAST_POOL to zero.
+
+	* varasm.c (first_global_object_name): New variable.  Records the
+	name of the first global declaration (variable or function) whichi
+	is written to the assembly file.
+
+	* tree.h (tree_code_name): Add declaration.
+
+Tue Jan 16 17:06:29 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (block_alloc): Make an initial pass to try to
+	allocate registers that have suggested hard registers.
+	(find_free_reg): Add new argument to only try suggested hard register.
+
+Tue Jan 16 15:54:06 1990  Michael Tiemann  (tiemann at apple-gunkies.ai.mit.edu)
+
+	* tree.h (tree_vec): Added.
+
+	* tree.def (IDENTIFIER_NODE): Default length is 2.
+	* tree.def (TREE_VEC): Define it.
+	* tree.def ({NEW_,DELETE_,REFERENCE_}EXPR): fixed comments.
+
+	* tree.c (preserve_initializer): New function.  Like
+	`preserve_data', but saves nodes on momentary_obstack as well.
+	* tree.c (make_tree_vec): New function.  Allocates a TREE_VEC node.
+	* tree.c (copy_node): Support added for TREE_VEC.
+	* tree.c (build_parse_node): New function.  Builds tree node on
+	TEMP_DECL_OBSTACK.
+	
+Tue Jan 16 15:23:16 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.h: Eliminate definitions of andcb_optab and expand_bit_and.
+	* expmed.c (expand_bit_and): Eliminate function.
+	(store_fixed_bit_field, extract_fixed_bit_field, expand_divmod):
+	Replace expand_bit_and with call to expand_binop.
+	* expr.c (expand_expr): Handle TRUTH_AND_EXPR and BIT_AND_EXPR
+	as normal binary operations.
+	(do_store_flag): Replace expand_bit_and with expand_binop.
+	* optabs.c (expand_binop, init_optabs): Eliminate andcb_optab.
+
+	* expmed.c (expand_shift): Don't use extzv for rotate.
+	If all three tries at a shift operation failed, delete the
+	insns made during the last try.
+	Handle failure of extzv operation.
+	Call protect_from_queue before convert_to_mode for op1.
+
+Tue Jan 16 10:38:28 1990  Michael Tiemann  (tiemann at apple-gunkies.ai.mit.edu)
+
+	* tree.c: Added temp_decl_obstack for building declarators without
+	needing to use permanent_obstack at top level.
+	* tree.c (init_tree): Init temp_decl_obstack.
+	* tree.c (permanent_allocation): Free nodes allocated on
+	temp_decl_obstack.
+	* tree.c (build_decl_list,decl_tree_cons): New functions.  Like
+	`build_tree_list' and `tree_cons', but for building on
+	temp_decl_obstack.
+	* tree.c (build1): New function.  Builds tree node for unary tree
+	node kinds; doesn't use varargs.
+	* tree.c (simple_cst_equal): Interface changed to return 1 if
+	arguments are equal, 0 if not, and -1 if arguments were not
+	understood by the function.
+	* tree.c (build_{method,offset}_type): TYPE_*_BASETYPE is the
+	TYPE_MAIN_VARIANT of BASETYPE.
+
+Mon Jan 15 01:50:51 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cexp.y (exp): Accept unary +.
+
+	* Makefile.in (hard-params): Compile with GCC.
+	(hard-params.o): Likewise, and depend on the GCC executables.
+
+	* tm-sparc.h (CONST_COSTS): Give 1, not 0, for immed consts.
+
+Sun Jan 14 14:38:10 1990  Michael Tiemann  (tiemann at apple-gunkies.ai.mit.edu)
+
+	* stmt.c (estimate_case_costs): New function.  Case code no longer
+	assumes that all case values are equally likely for all types.  In
+	particular, when the type of argument for the switch statement does
+	not look like it is not ASCII text, we assume that it might be, and
+	assign a weight to its value based on frequency distribution of
+	characters in ASCII text.
+	* stmt.c (balanace_case_nodes): If case values look like ASCII text,
+	then use the cost table.  Otherwise, do not.  Using the cost table
+	means that the otherwise almost-balanced binary tree may be skewed
+	in hopes of picking up common values more quickly than just
+	log(n).  This is done at the direct expense of the less common
+	values, which will be reached at more than log(n).
+	* stmt.c (emit_case_nodes): If using COST_TABLE and the most likely
+	case value is on one side of the tree or another, hand-pick boundary
+	tests so that condition codes can be reused (if possible).
+	* stmt.c (expand_end_cast): If optimizing, and the type of
+	ORIG_INDEX is not an enumeral type, then call `estimate_case_costs.'
+
+Sun Jan 14 12:18:49 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fold-const.c (lshift_double, rshift_double, lrotate_double):
+	(rrotate_double): Don't shift more than width of operand.
+
+Fri Jan 12 12:17:06 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* recog.c (next_insns_test_no_inequality): Return 1 at end of rtl.
+
+	* expr.c (store_expr): No special handling for constructor
+	unless value is going in struct value block.
+
+	* stor-layout.c (layout_type): Use common nodes for sizes of ptrs, fns.
+	(make_signed_type, make_unsigned_type): Create those nodes.
+	(layout_record): Just ignore VAR_DECL if not static.
+
+Thu Jan 11 14:09:47 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (lang_decode_option): Decode -Wtraditional.
+	* c-decl.c (implicitly_declare): Warn if extern decl previously seen.
+	* c-typeck.c (c_expand_start_case): Warn if switch exp is long.
+
+	* c-typeck.c (actualparameterlist): Optionally warn on truncation.
+	* toplev.c (main): Handle -Wconversion.
+
+	* cccp.c (skip_if_group): Skip strings even if -traditional.
+	(handle_directive): Likewise, when handling copy_command.
+
+Thu Jan 11 14:15:50 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): Only check for REG_EQUAL notes and make
+	REG_EQUAL notes instead of REG_EQUIV notes.
+	* explow.c (force_reg): Make REG_EQUAL note instead of REG_EQUIV
+	note.  Check for and reuse old note if present.
+	* local-alloc.c (block_alloc): Convert REG_EQUAL to REG_EQUIV for
+	constant when register is only set once.
+	* loop.c (combine_movables, move_movables): Check for REG_EQUAL notes
+	instead of REG_EQUIV notes.
+	* optabs.c (expand_binop): Correct typo in writing REG_EQUAL note.
+	(emit_no_conflict_block): Suppress REG_NO_CONFLICT notes for
+	non-registers.
+
+Thu Jan 11 14:09:47 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* i860.md (movsf): Ensure F to f is reloaded via r.
+
+	* expr.c (expand_increment): Don't call stabilize.
+
+Wed Jan 10 15:03:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (duplicate_decls): If old fn decl follows new ellipsis decl,
+	warn only if pedantic.
+
+	* loop.c (loop_skip_over): Do nothing if don't find expected compare.
+
+Tue Jan  9 21:31:46 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): Don't delete USE and CLOBBER insns.
+	The later call to find_equiv_reg can malfunction if CLOBBERs are
+	deleted.
+
+Mon Jan  8 17:48:20 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gcc.c (link_command_spec): Always check gnulib both first and last.
+
+Mon Jan  8 17:07:25 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* optabs.c (expand_unop): Perform multi-word logical negation one
+	word at a time.
+	(expand_binop, expand_unop): Insert REG_EQUAL note on last insn of
+	multi-insn sequence.
+	Use TARGET_PIECE instead of TARGET in multi-word logical operations.
+	(emit_no_conflict_block): New fn.
+	(expand_binop, expand_unop): Call it.
+	(gen_add2_insn, gen_sub2_insn): Abort if operands do not match those
+	of the predicates for the appropriate generators.
+
+	* expr.h: Fix typo and define emit_no_conflict_block.
+
+Mon Jan  8 15:33:19 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* rtl.h (REG_UNSET): Fix the code.
+	* rtl.c (reg_note_name): Add REG_UNSET.
+
+	* c-decl.c (struct binding_level): parm_flag now 2 for def, 1 for decl.
+	(declare_parm_level): New parm distinguishes them.  All calls changed.
+	(pushdecl): Don't warn about shadowing with parm name in fn decl.
+
+Mon Jan  8 15:15:07 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_basic_block): Allow NOTEs between LOOP_BEG and jump to
+	end test.
+	(predecide_loop_entry): Accept JUMP_INSN rather than LOOP_BEG NOTE.
+
+	* reload1.c (gen_input_reload): When adding constant to register,
+	move the constant into the output, then add the register, rather than
+	the other way around.
+
+Mon Jan  8 12:20:26 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y (components): Don't allow to be empty.
+	(component_decl): Special cases if empty, to call shadow_tag.
+	Recognize the semicolon here.
+	(component_decl_list): No semicolon here.
+
+	* c-decl.c (shadow_tag): Print warning if nameless structure defined.
+
+Sun Jan  7 19:09:33 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c (output_constant): Use size of machine mode
+	to choose how to output the constant.
+
+	* varasm.c (immed_real_const_1): Detect 1 as well as 0.
+
+	* reload1.c (reload): When deleting reg_equiv_init insn,
+	also delete the prev insn if it is no longer needed.
+
+	* real.h (REAL_VALUE_FROM_CONST_DOUBLE, CONST_DOUBLE_FROM_REAL_VALUE):
+	New macros.
+
+	* reload.c (find_reloads_address_1): Preserve original X value
+	in case we replace it with new memory reference.
+
+	* optabs.c (expand_binop): Handle case of no previous insns.
+
+	* jump.c (jump_back_p): Check for floating point if not IEEE.
+
+	* global-alloc.c (dump_global_regs): Break the line occasionally.
+
+	* flow.c (mark_used_regs): Recognize post-decrement properly.
+	It looks like (plus REG -CONST), not (minus REG CONST).
+	Also, patch out old insn as a note in the usual way.
+
+	* calls.c (emit_call_1): Arg to RETURN_POPS_ARGS is FUNTYPE itself.
+
+	* expr.c (STACK_PUSH_CODE): New macro, which config.h can override.
+	(gen_push_operand): Use it.
+	(emit_push_insn): Reverse padding if pushing is post-increment.
+	(expand_expr): For MINUS, sign-extend negated value.
+
+	* emit-rtl.c (init_emit_once): Initialize new variables
+	fconst1_rtx, dconst1_rtx, dconst0, dconst1, dconstm1.
+
+	* cse.c (fold_rtx): For COMPARE and MINUS, test for floating zero arg.
+	Also handle equal floating args if FLOAT_NOT_IEEE.
+	For NEG, eliminate silly temp var.
+	For MULT and DIV, handle more cases with floating point.
+	Change division by floating constant into multiplication.
+
+	* config.gcc: Add i386-mach.
+	* xm-i386.h: Use built-in alloca if compiling with GCC.
+
+	* Makefile.in (c-parse.tab.o): Delete -o switch.
+	(cexp.o): Put in explicit command.
+
+	* combine.c (record_dead_and_set_regs): Ignore stack pushes.
+
+Sat Jan  6 15:33:32 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* out-mips.c (function_arg, function_arg_advance):
+	Define typedef for CUMULATIVE_ARGS, and use it here.
+
+	* c-parse.y (yylex): Put 0 at end of wide string.
+
+	* tm-mips.h (CC1_SPEC): Don't distort meaning of -O.
+
+Fri Jan  5 12:12:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* optabs.c, expr.h: All use of umul_optab deleted.
+	* gnulib.c (__umulsi3): Deleted.
+
+	* gcc.c (link_command_spec): If LIBS_COMPILED_WITH_GCC, gnulib is last.
+
+	* Makefile.in (INTERNAL_CFLAGS): New parameter.
+	(ALL_CFLAGS): New variable, replaces CFLAGS when compiling.
+	(HOST_CFLAGS): Define from ALL_CFLAGS.
+
+	* Makefile.in (insn-*.o, cccp.o, others): Use CPPFLAGS.
+
+	* Makefile.in (gnulib): Add null command.
+
+Fri Jan  5 08:11:20 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (subst): When applying De`Morgan's law, compute NOT
+	of constant.
+
+	* integrate.c (save_constants, restore_constants): Clean up fns
+	by passing in a pointer to an rtx so that insns can be modified
+	in place.
+	(save_for_inline): Change call to save_constants.
+	Apply save_constants to REG_NOTES.
+	(expand_inline_function): Use emit_move_insn instead of generating
+	an explicit SET.
+	Apply copy_rtx_and_substitute to REG_NOTES.
+	(output_inline_function): Change call to restore_constants.
+	Apply restore_constants to REG_NOTES.
+
+Thu Jan  4 23:58:59 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Makefile (c-parse.tab.o): Add explicit compilation cmd.
+
+Thu Jan  4 22:48:01 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (insert_regs, insert, use_related_value): Don't assume REG is
+	first in class.
+	(HASH): Handle register with HASHREG macro for speed.
+	(insert): No longer need equivalence_only.
+	Use COST macro.
+	(use_related_value): No longer need to check for valid address.
+	(find_best_addr): New function.
+	(fold_rtx): Remove copyflag argument and replace with insn.
+	Check for common cases before making recursive call.
+	Call validate_change to ensure change is valid, but always return
+	simplified expression.
+	Replace operand with folded operand, or constant operand, whichever
+	is cheaper and is valid.
+	Call find_best_addr for MEMs.
+	(fold_cc0): Add insn operand to pass to calls to fold_rtx.
+	(cse_insn): Rework to enumerate all possible equivalences and replace
+	source with cheapest valid.
+	Simplify associative operations with constants where an operand is
+	equivalent to the same operation with another constant.
+	Use validate_change for all changes.
+
+Thu Jan  4 17:58:28 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stmt.c (expand_end_loop): Put NOTE_INSN_LOOP_CONT at top by default.
+
+	* c-typeck.c (actualparameterlist):
+	Convert parmnum to origin-1 to print.
+
+	* Makefile.in (USER_H): Add float.h.
+
+Wed Jan  3 00:27:53 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gnulib.c (__extendsfdf2): Delete unused var.
+
+	* reload1.c (alter_reg): Undo big-endian conversion from
+	assign_stack_local.
+
+	* calls.c (store_one_arg): Round size up for move_block_to_reg.
+	(expand_call): Round up when emitting USE insns.
+	* function.c (assign_parms): Round size up for move_block_from_reg.
+
+	* Makefile (install): Use nested foreach-loop to expand va*.h.
+
+Tue Jan  2 16:01:47 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* mips.md (call_value): Ignore calls to __builtin_saveregs.
+
+	* tm-mips.h (STARTING_FRAME_OFFSET): Change from -8 to 0.
+	(FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Use new fns in out-mips.c.
+	* out-mips.c (prologue_looks, mips_prologue, mips_epilogue): New.
+
+	* gnulib2.c: Everything except arithmetic support moved from gnulib.c.
+	* Makefile.in (LIB2FUNCS, LIBFUNCS): Likewise.
+
+Sun Dec 31 20:10:52 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.h (struct tree_common): Declare `code' as char, not int.
+
+Thu Dec 28 13:49:43 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Makefile.in (includes): Set variable LIB.  Run from `./'.
+
+Wed Dec 27 18:54:25 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (eliminate_frame_pointer): Special case for reg = reg2+fp.
+
+	* loop.c (can_eliminate_biv_p, eliminate_biv): If add_val non zero,
+	it must be a constant or register.
+
+Wed Dec 27 18:11:23 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* i860.md (load DF constant to reg): Typo: extra percent sign.
+	(floatsidf2): Two words of a double were backwards.
+
+Mon Dec 25 16:32:50 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* emit-rtl.c (emit_note_before): New function.
+	* stmt.c (expand_end_loop): Output NOTE_INSN_LOOP_CONT if none.
+	** Above change turned off.
+
+Mon Dec 25 00:02:31 1989  Torbj|rn Granlund  (tege at zevs.sics.se)
+
+	* tm-pyr.h (CONST_COSTS): Define more optimal costs.
+
+	* tm-pyr.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Should not be defined.
+	  The cvtdw instruction causes a trap for floating point values
+	  that are out-of-range for a signed int.
+
+	* tm-pyr.h (CONST_DOUBLE_OK_FOR_LETTER_P): Don't accept any
+	  special constraint chars, since we don't use any.
+
+	* tm-pyr.h (CONSTANT_ALIGNMENT): Correct comment.
+
+	* out-pyr.c (weird_memory_memory): Flush decl of unused variables.
+
+	* out-pyr.c (has_direct_base): Don't accept 0 as a base, if there
+	  is a register displacement.  This is a workaround of a bug in
+	  /bin/as.  (/bin/as changes things like "cmpw 8(reg),0(reg)" into
+	  "cmpw 8(reg),(reg)", which is invalid assembler.)
+
+Sun Dec 24 12:01:05 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (finish_struct): Ok to define nameless union in parms.
+	* c-typeck.c (compparms): Allow union vs its member's type,
+	but only if same size & union is nameless.
+	(comptypes): In that case, for a parm, prefer the member's type.
+	(actualparameterlist): Nameless union parm casts all its memb types.
+
+	* integrate.c (copy_decl_tree, copy_parm_decls): Set TREE_INLINE.
+	* c-decl.c (pushdecl): No shadow-warning if TREE_INLINE is set.
+
+	* dbxout.c (current_sym_code): Declare as enum; avoid warnings.
+
+Sat Dec 23 10:54:22 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* combine.c (subst): Under NOT, move it inside AND and IOR.
+	Under XOR, move NOT out.
+
+	* toplev.c (set_target_switch): Handle multiple entries for one name.
+
+	* ns32k.md (adjust stack): Distinguish processor subtype at run-time.
+	(extract byte from register): Likewise.
+	* tm-ns32k.h (TARGET_32532, TARGET_32332): New target options.
+	* tm-encore.h, tm-sequent.h (TARGET_DEFAULT): Default them.
+
+Fri Dec 22 20:33:15 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Makefile.in (all): Move above where make-MACHINE is inserted.
+	(all.internal): Definition of `all' indirects through this.
+	(GNULIB): Variable allows rule for gnulib to be redirected.
+	(gnulib.portable): Name for the standard rule for gnulib.
+
+	* tm-mips.h (ASM_OUTPUT_SOURCE_FILENAME): New macro.
+	(REG_CLASS_SUBUNION, REG_CLASS_SUBCLASSES, REG_CLASS_SUPERCLASSES):
+	Obsolete macros deleted.
+
+Thu Dec 21 16:20:00 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fold-const.c (fold): Bug taking assignments out of conversions:
+	Use language-independent method.
+
+	* reload1.c (alter_reg):
+	Always do big-endian correction on slot address.
+
+	* i386.md (float push recognizers): Don't pop fpreg if not dead.
+
+Wed Dec 20 10:54:54 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* assert.h: Cast value to void.
+
+Tue Dec 19 09:42:13 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gcc.c (link_command_spec): Put %l first.
+
+Tue Dec 19 08:59:43 1989  Richard Kenner  (rms at sugar-bombs.ai.mit.edu)
+
+	* genattrtab.c (get_attr_value): Initialize has_asm_insn field when
+	making a new attr_value.
+
+Sun Dec 17 12:06:37 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (digest_init, process_init_constructor, store_init_value):
+	Give error for each invalid element seen in an initializer.
+	New arguments say whether context wants error messages.
+	* c-parse.y (cast_expr): Pass new args.
+	* Unfortunately, this doesn't do the job, since the whole initializer
+	is parsed before any is digested.
+
+	* c-decl.c (duplicate_decls): Source loc of definition is
+	more important than that of declaration.
+
+	* cccp.c (include_defaults): On unos, also search /include.
+
+	* m68k.md (movsi, movhi, store-0 recognizer): Conditional for CRDS.
+	(mulhi3, mulhisi3, umulhi3, umulhisi3): Add % and CRDS conditional.
+	(zero-extend recognizers): Put % before period in clr insns.
+	(divide and modulus recognizers): Likewise for and, ext, swap and div.
+	(dbra recognizers): Likewise for sub and clr insns.
+	(tablejump recognizer): Conditional for CRDS.
+	* tm-crds.h, xm-crds.h: New files.
+
+	* gcc.c (read_specs): Don't include trailing newline in data
+	read from specs file.
+	(skip_whitespace): Empty line is a delimiter in specs data.
+
+	* cccp.c (grow_outbuf): Change value back to int.
+
+	* cse.c (cse_end_of_basic_block): Fix unterminated comment.
+
+	* cccp.c (main): Add `.C' as known suffix for deps output.
+
+	* expr.c (do_jump): Cast vector length to int in case will subtract.
+
+	* tm-att386.h (ASM_OUTPUT_LOCAL): Revert last change: put it data seg.
+
+	* reload.c (decompose): Make a separate case for SUBREG.
+
+	* Makefile.in (HOST_RTLANAL): Define like HOST_RTL.
+	(genattrtab): Use that to get at rtlanal.o.
+	($(HOST_PREFIX_1)rtlanal.o): New rule for cross-compilation.
+	(STAGESTUFF): Typo in stamp-attrtab.c.
+
+	* tm-hp9k320.h (CPP_PREDEFINES): Add __hp9000s300, _HPUX_SOURCE.
+
+	* stupid.c (reg_order): Make it int, in case reg # is large.
+	(stupid_reg_compare, stupid_life_analysis): Implement this.
+
+	* gnulib2.c (__floatdidf): Define WORD_SIZE.
+
+	* flow.c (find_basic_blocks): Don't clobber stack if no basic
+	blocks.
+
+Sat Dec 16 12:38:07 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* loop.c (can_eliminate_biv_p, eliminate_biv): Check in case
+	neither side of a compare is the biv by itself.
+	(check_eliminate_biv): Test of only_reg_use_p was backwards.
+	(general_induction_var): If V is 0 and G is not,
+	combine additive terms with plus_constant, provided
+	either one of them is an integer.
+	Check both operands of a sum for being givs in their own right.
+	(strength_reduce): When eliminating a biv, don't mung insns that use
+	it via a giv that will be handled later.
+	(loop_skip_over): Duplicate an endtest that takes several insns.
+
+	* loop.c (strength_reduce): When writing insn to init a biv, 
+	update life range of reg used to init it.
+
+	* combine.c (try_combine): Do combine (y = x, x = y).
+
+	* loop.c (strength_reduce): When finding initial value of a biv,
+	notice assignments to subregs of it, etc.
+
+	* m68k.md (all shift patterns): Require register_operand for ops 0, 1.
+
+	* reload1.c (alter_reg):
+	Don't set spill_stack_slot_width if from_reg is -1.
+
+	* cse.c (cse_main): Delete local redef of flag_cse_follow_jumps.
+
+	* reload1.c (new_spill_reg): Fatal error if fixed reg is spilled.
+	(order_regs_for_reload): Make sure all the regs are in spill_regs.
+
+	* mips.md (movsf): Fix wrong opcode moving genreg to fpreg.
+
+	* toplev.c: Undef FFS after including param.h.
+
+	* final.c (final_scan_insn): Delete label reinsert_compare.
+
+	* expmed.c (store_bit_field): Move var value1 inside HAVE_insv.
+	(extract_bit_field): Similar for bitsize_rtx, bitpos_rtx.
+
+	* c-typeck.c (pointer_diff): Delete unused var.
+	* expr.c (emit_push_insn): Likewise.
+	* gcc.c (execute): Likewise.
+	* genrecog.c (try_merge_2): 
+	* loop.c (skip_consec_insns, scan_loop): 
+	* recog.c (asm_noperands, memory_operand):
+	* function.c (expand_function_end):
+	* stmt.c (emit_jump_if_reachable):
+	* toplev.c (error_for_asm):
+	* varasm.c (assemble_string):
+
+	* integrate.c (fp_addr_p): Var deleted.
+
+	* regclass.c (regclass_init): Now returns void.
+	* emit-rtl.c (emit_insns): Likewise.
+	* stmt.c (emit_nop): Likewise.
+	* out-sparc.c (output_eager_then_insn): Likewise.
+
+	* reload1.c (reload_reg_reaches_end_p, reload_reg_free_before_p):
+	(reload_reg_free_p): Abort if switch drops through.
+
+	* cccp.c: Supply a return type for every function (usually void).
+	(grow_outbuf): Now returns void.
+	(line_for_error): Abort if the loop terminates.
+	* gcc.c: Supply a return type for every function (usually void).
+
+	* jump.c (jump_optimize): Leave block-beg, block-end notes
+	in old context when swapping two ranges of insns.
+	(squeeze_block_notes): New function.
+
+	* calls.c (expand_call): Compute valreg from pointer type
+	in case of pcc struct return.
+
+	* gnulib2.c (__builtin_saveregs): Use __ names for machine types.
+
+	* fold-const.c (fold):
+	Move constant out of assignment, within conversion.
+
+Fri Dec 15 00:42:31 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c (assemble_variable): Use new macro DATA_ALIGNMENT if def.
+	(get_or_assign_label): Use this instead of CONSTANT_ALIGNMENT.
+
+	* integrate.c (save_constant, restore_constant): Handle naked
+	constant-pool SYMBOL_REF.
+	(copy_for_inline, copy_rtx_and_substitute): Ditto.
+
+	* integrate.c (expand_inline_function):
+	Put caller's line number after inline stuff.
+	Put callee's line number before parm manipulation.
+
+	* tree.c (make_node): Have a DECL_SOURCE_FILE in every decl.
+
+	* m68k.md (fpa float and float-trunc): Accept general_operand.
+
+	* calls.c (expand_call): Do INIT_CUMULATIVE_ARGS just once.
+
+	* calls.c (expand_call): If struct ret addr is passed as parm,
+	count it in structure_value_addr_parm.
+
+	* If local-alloc assumes a reg does not conflict,
+	don't use it as dummy reload.
+	* local-alloc.c (wipe_dead_reg): Add REG_UNSET note.
+	* reload.c (find_dummy_reload): Check for that note.
+
+	* jump.c (jump_optimize): Realize that more things can follow
+	the NOTE_INSN_FUNCTION_END note.  Change in two places,
+	for optimized and one for unoptimized.
+
+Thu Dec 14 23:40:23 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Makefile.in (install, libsubdir): Change $(machine) to $(target).
+
+Tue Dec  5 07:35:57 1989  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtl.h: Declare emit_jump_insn_before and emit_jump_insn_after.
+
+	* reload.c (reg_class_subset_p): Delete duplicate copy.
+	local-alloc.c (reg_class_subset_p): Move from here.
+	regclass.c (reg_class_subset_p): Move to here.
+
+	* combine.c (try_combine): Fix placement and content of LAST_CALL_CUID
+	test to elminate memory faults.
+
+	* final.c (asm_insn_count): New fn.
+	(get_length_attr, shorten_branches): Rework length
+	computation of insns with INSN_CODE == -1.  Call above fn to more
+	accurately obtain length of ASM insn.
+
+	* genattrtab.c (check_attr_value): Allow CONST_INT to specify
+	numeric values for attributes.  Also, prevent memory faults
+	on errors when ATTR is null.
+	(make_canonical): Convert CONST_INT to appropriate CONST_STRING.
+	(write_attr_case): Correctly check for ASM insns.
+	(make_numeric_value): Generalize to all positive integers.
+
+	* jump.c (jump_optimize): Set JUMP_LABEL on jump added
+	in "{ ... x = 1;} if (x)" optimization and add to jump_chain.
+
+	* local-alloc.c (no_conflict_p): Tighten up code to prevent
+	memory faults.
+
+	* reload.c (find_reloads): Fix typo in EXTRA_CONSTRAINT call.
+
+Tue Nov 28 11:20:47 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* expr.c (save_noncopied_parts):  Rename stack_loc as target.
+	Make the stack slot address correct.
+
+Mon Nov 27 15:39:40 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* math-convex.h: New file.
+
+	* c-decl.c (grokdeclarator): Don't test size of error_mark_node
+	as type of a field.
+
+Sun Nov 26 12:36:01 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* tm-mips.h (CONST_OK_FOR_LETTER_P): Delete extra paren.
+
+Fri Nov 24 12:36:29 1989  Chris Smith  (csmith at mozart)
+
+	* tm-convex.h (OVERRIDE_OPTIONS): remove target=host default.
+	* out-convex.c (override_options): remove.
+
+	* tm-convex.h (*_TYPE_SIZE): define type sizes as the usual values. 
+	* convex.md (movstrictsi): new, for field insertion in DImode regs.
+
+	* tm-convex.h (LEGITIMATE_CONSTANT_P): allow all CONST_DOUBLES.
+	(PREFERRED_RELOAD_CLASS): reload nonimmediates from memory (NO_REGS).
+	* convex.md (movdi, movdf): use 'G' to handle nonimmediates.
+	(anddi3, iordi3, xordi3): allow immediates if high word is identity.
+
+	* convex.md (tstdi): Finally figure out how to allocate a temp reg
+	in a way that won't get optimized away; remove hardwired use of s1.
+
+	* convex.md (cmpqi): don't sign extend to SImode because operands
+	might be unsigned.  Must compare bytes in registers instead.
+
+	* convex.md (movtf): new.
+
+	* convex.md (ash*, lsh*): rewrite to use shift vs. shiftrt. 
+	Better code because no need to sign or zero extend when going left.
+	(shift, mask & test peephole): test next_insn_tests_no_inequality.
+	(similar with lshiftrt): New peephole.
+
+	* tm-convex.h: add g++ defines FASCIST_ASSEMBLER, VTABLE_USES_MASK.
+
+Sun Nov 26 11:39:13 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* reload.c (decompose): Handle SUBREGs.
+
+Wed Nov 22 11:26:00 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* pyr.md (mode conversion peepholes): Set CC_NO_OVERFLOW.
+	* out-pyr.c (consecutive_operands): Don't expect wrap from reg15 to 16.
+
+	* make-pyr: Find the alloca which comes with the system.
+
+	* tm-mips.h (CONST_OK_FOR_LETTER_P): Define `K'.
+	(SMALL_INT): Range is 16 bits, not 17.
+	(SMALL_INT_UNSIGNED): New macro.
+	* mips.md (andsi3, iorsi3, xorsi3): Use `K', not `I'.
+
+	* mips.md (negsi2): Accept general_operand as input.
+
+	* stor-layout.c (build_int): Defend against negative arguments.
+
+	* varasm.c (MAX_HASH_TABLE): Change to a prime.
+
+Tue Nov 21 10:58:28 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* mips.md (one_cmpl*): Accept general_operand as input.
+
+Mon Nov 20 11:18:58 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* optabs.c (emit_cmp_insn): New arg, COMPARISON.
+	(emit_float_lib_cmp): New subroutine, handles soft-float comoare
+	of floating point values.  Chooses ibrary fn from COMPARISON.
+	* expr.c, expmed.c, stmt.c, optabs.c: All calls changed.
+	* gnulib.c (__eqdf2, __nedf2, __gtdf2, etc.): New functions.
+	(__eqsf2, __nesf2, __gtsf2, etc.): New functions.
+
+	* cse.c (fold_rtx): Simulate negative shift counts.
+
+Sun Nov 19 14:36:18 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* out-pyr.c (notice_update_cc): Set CC_NO_OVERFLOW in many cases.
+
+	* cse.c (fold_rtx, fold_cc0): Handle float trap. 
+
+Sat Nov 18 00:17:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c (output_constant): Handle float trap in fprintf.
+	* toplev.c (float_signal): Don't print message.
+	* fold-const.c (combine): Print it here.
+
+	* sparc.md (extend patterns): Handle CONST_INT as operand.
+	* out-sparc.c (output_block_move, output_mul_by_constant): 
+	(output_eager_then_insn): Delete unused vars.
+
+	* varasm.c (decode_rtx_const): Add a cast in SYMBOL_REF case.
+
+	* tm-i386.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE)
+	(INITIALIZE_TRAMPOLINE): New macros.
+	* i386.md (indirect_jump): New pattern.
+
+	* out-i386.c (singlemove_string): Fix paren error.
+
+Fri Nov 17 12:19:56 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (expand_increment): For pre-increment, copy the rtx to return.
+
+	* c-parse.y (compstmt): There may be implicit decls, so check
+	and maybe keep the level.
+
+	* tm-mips.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE):
+	Use call_used_regs, not a private copy.
+
+Thu Nov 16 00:28:29 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c: Keep track of paradoxical subregs of each pseudo,
+	and make extra stack space for their sake.
+	(reload): Record max size paradoxical subreg for each pseudo.
+	(scan_paradoxical_subreg): New subroutine for that.
+	(reload): Make stack slots big enough for that size.
+
+	* tm-i860.h (ASM_DECLARE_FUNCTION_NAME): Define it,
+	so we can output a no-op before each function.
+
+	* tm-pyr.h (INIT_CUMULATIVE_ARGS): Simplify.
+	Pass function type to aggregate_value_p.
+
+	* fold-const.c (fold):
+	For foo++ > const, don't change if foo++ could overflow.
+
+	* loop.c (eliminate_biv):
+	Fix typo; check both coeffs when comparing givs.
+
+Wed Nov 15 00:12:59 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sdbout.c (sdbout_end_function, sdbout_end_block, sdbout_begin_block):
+	Don't allow line numbers < 1.
+
+	* integrate.c (copy_for_inline): `break' was missing for case 'u':.
+
+	* sdbout.c (plain_type_1): Output .dim X,Y...; for multi-dim array.
+	(sdbout_array_dim): New recursive subroutine.
+	(PUT_SDB_DIM): Macro eliminated.
+	(PUT_SDB_START_DIM, PUT_SDB_NEXT_DIM, PUT_SDB_LAST_DIM): New macros.
+	* tm-3b1.h: Override PUT_SDB_START_DIM.
+
+	* jump.c (delete_insn): Extra test for PREV != 0.
+
+Tue Nov 14 17:31:08 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-m68k.h (WORDS_BIG_ENDIAN): Define it.
+	* out-m68k.c (output_move_double): Adapt CONST_DOUBLE case to that.
+
+	* varasm.c (decode_rtx_const): For SYMBOL_REF, use addr of string.
+
+	* tm-pyr.h (INIT_CUMULATIVE_ARGS):
+	If -fpcc-struct-return, always do the scalar thing.
+
+	* tm-sun3.h (LINK_SPEC): Specify -L to control choice of -lm.
+
+	* function.c (expand_function_end): Use FUNCTION_OUTGOING_VALUE.
+
+Sat Nov 11 00:18:54 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* calls.c (prepare_call_address): If NO_RECURSIVE_FUNCTION_CSE,
+	don't do function cse on calls to same function.
+	(emit_call_1): Don't call memory_address for SYMBOL_REF.
+
+	* tm-att386.h (ASM_OUTPUT_COMMON): Use ROUNDED, not SIZE.
+	(ASM_OUTPUT_LOCAL): Likewise.  Also, generate .lcomm
+	rather than a .data area symbol.
+	* tm-sun386.h: Likewise.
+
+	* tm-bsd386.h (ASM_OUTPUT_COMMON): Use ROUNDED, not SIZE.
+	(ASM_OUTPUT_LOCAL): Likewise.
+
+	* cexp.y (parse_escape): Delete unused var `count' from case 'x'.
+
+Fri Nov 10 15:04:15 1989  Richard Stallman  (rms at rice-chex)
+
+	* caller-save.c (emit_mult_restore, emit_mult_save):
+	Improve arithmetic for address to save at.
+
+Thu Nov  9 00:14:19 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-pyr.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP):
+	Don't use obsolete pushw and popw insns.
+	(ASM_OUTPUT_ALIGN): Ensure arg in range 2 to 5.
+	* pyr.md (tstdi): Pattern deleted.
+	(SImode test recognizer): Output ucmpw if jump is unsigned.
+
+	* out-sparc.c (operands_satisfy_eager_branch_peephole): 
+	Check for moves between FP and non-FP regs; they take two insns.
+	* sparc.md (eager branch peepholes): Likewise.
+	(Ordinary delayed branch peepholes): Similar check.
+	* out-sparc.c (single_insn_extra_test): New subroutine.
+
+	* final.c (final_scan_insn):
+	Rearrange to avoid calling BLOCK_PROFILER for a jump table.
+
+	* reload1.c (choose_reload_regs): Split up a hairy if.
+
+Wed Nov  8 00:48:50 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* calls.c (expand_call): Handle UNNAMED_ARGS_IN_REGISTERS.
+
+	* toplev.c (main): Handle -gsdb to make sdb output when that and dbx
+	are both supported.
+
+	* combine.c (subst): In (sign_extend:M (subreg:N (and:M .. <const>) 0))
+	insist that constant be positive in mode N.
+	Also test mode N in similar zero_extend case.
+
+	* c-typeck.c (build_modify_expr): When assigning to COND_EXPR
+	put cast to void around precomputed rhs.
+
+	* calls.c (emit_call_1): Make funexp a valid address.
+
+Tue Nov  7 18:57:17 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (emit_move_insn): If args in memory, make addresses valid. 
+
+	* rtl.h: Undefine FFS in case it was defined by the system.
+
+	* c-parse.y (combine_strings): Ignore warn_write_strings
+	if -traditional or -fwritable-strings.
+
+	* Makefile.in (gnulib2): Fix syntax in shell conditionals.
+
+	* stmt.c (expand_return): Handle COND_EXPR specially.
+
+Mon Nov  6 14:43:55 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* optabs.c (expand_float): Check sign of FROM; may be faster than TO.
+
+	* fold-const.c (fold): If REAL_INFINITY, allow division by zero.
+	* tm-sun3.h (REAL_INFINITY): Define it.
+
+	* tm-i860.h, tm-m88k.h, tm-pyr.h, tm-spur.h (INIT_CUMULATIVE_ARGS):
+	Test aggregate_value_p, not just BLKmode.
+
+	* gnulib2.c (__builtin_saveregs): Moved from gnulib.c.
+	Code added for mips.
+
+	* pyr.md (conditional branch recognizers): Don't simplify if not -O.
+
+	* out-pyr.c (extend_and_branch): Handle two constant operands.
+
+	* integrate.c (function_cannot_inline_p): Don't inline if alloca used.
+
+Sun Nov  5 02:59:23 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Always make a LET_STMT and notes for the top level of a function
+	if it has any subblocks.
+	* c-decl.c (struct binding_level): New field keep_if_subblocks.
+	(poplevel): Obey the new field.
+	(keep_next_if_subblocks): New variable.
+	(pushlevel): Use that variable.
+	(store_parm_decls): Set that variable.
+	(compstmt): Pass nonzero to expand_end_bindings
+	for the new kept binding levels.
+	(kept_level_p): New function.
+
+	* xm-mips.h: Define USE_C_ALLOCA if compiling with CC.
+
+	* tm-alliant.h (CHECK_FLOAT_VALUE): Define this.
+
+	* calls.c (expand_call): Make valreg 0 if passing structure address.
+
+Sat Nov  4 23:27:02 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* caller-save.c (emit_mult_save, emit_mult_restore):
+	Test regs for suitability as address before using as temps.
+
+	* cccp.c (make_definition, do_define): Better error checks for name.
+
+Fri Nov  3 01:05:04 1989  Torbj|rn Granlund  (tege at echnaton)
+
+	* pyr.md (tstdi): New pattern.  Use 64-bit shift with count zero.
+
+	* tm-pyr.h: -mretd pops args with the retd insn.
+
+	* pyr.md (peep-holes for loop optimizations): Use the R output
+	  format in PRINT_OPERAND, don't use output_branch.
+	* out-pyr.c: No need for functions output_branch, output_inv_branch.
+
+	* tm-pyr.h (ASM_OUTPUT_ALIGN): Don't truncate alignment to two.
+
+Wed Nov  1 00:38:27 1989  Torbj|rn Granlund  (tege at echnaton.sics.se)
+
+	* out-pyr.c (output_inv_branch): When reversing test operands, ne
+	  remains ne, and eq eq eq.
+
+	* pyr.md: Cleanup output code for compare patterns.
+
+	* pyr.md (return): Adjust frame pointer if
+	  current_function_pretend_args_size != 0.
+
+	* pyr.md (extendsidi2): Use general_operand for the input operand.
+
+	* pyr.md, out-pyr.c: Output shift insns with output_shift.
+
+	* tm-pyr.h, out-pyr.c: Make NOTICE_UPDATE_CC understand how
+	  condition codes are really set.  Define flag CC_VALID_FOR_UNSIGNED
+	  with to make it possible not to reset cc after each compare or
+	  test.
+	* pyr.md: Don't use CC_STATUS_INIT for most patterns.
+
+	* out-pyr.c (already_sign_extended): Cleanup, correct, optimize.
+
+	* out-pyr.c: rename radr_diff to constant_diff.
+
+	* out-pyr.c (movdi_possible): Don't combine moves from memory to
+	  memory, because of possible address aliasing.  Don't combine moves
+	  with register destination if the source operands are depending on
+	  the destination of the first move, as in
+
+	    movw (pr3),pr3
+	    movw 4(pr3),pr4.
+
+	* out-pyr.c (consecutive_operands): Handle SUBREG in addition to REG.
+
+	* out-pyr.c (output_move_double): movl of immediate *sign* extends.
+
+Tue Oct 31 22:51:39 1989  Torbj|rn Granlund  (tege at echnaton.sics.se)
+
+	* pyr.md (cmpsi): Don't expand this.  It's just slower.
+
+	* out-pyr.c (extend_and_branch): Handle only QImode and HImode.
+	  Flush code specific for SImode.
+
+	* out-pyr.c (extend_and_branch): To make zero extensions to HImode
+	  of constants not crash:
+	* out-pyr.c (ensure_extended): Call extend_const if it's a
+	  CONST_INT.  Don't call extend_const from extend_and_branch.
+	* pyr.md, out-pyr.md: Use global variable test_mode to determine the
+	  mode of tests and compares.  Set in define_expands for tests and
+	  compares.  Used in extend_and_branch.
+	* out-pyr.c: Pass mode between extend_and_branch and ensure_extended.
+
+	* out-pyr.c (extend_and_branch): Accept SUBREG whereever REG is
+	  accepted.
+	* out-pyr.c (weird_memory_memory): Accept SUBREG whereever REG is
+	  accepted.
+
+Thu Nov  2 16:23:57 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gnulib2.c (lshrdi2, and other shifts): Take second arg as long long.
+
+	* combine.c (subst):
+	Simplify (zero_extract (subreg:SI (lshift:QI (mem:QI ...)) 0) ...)
+
+	* expr.c (do_jump): Don't discard NOP_EXPR from around COMPONENT_REF.
+	Put one on, if that allows extracting the component in natural mode.
+
+	* final.c (get_attr_length): Omit the body if no length attribute.
+
+	* Makefile.in (genattrtab): Use host-rtlanal.c as dep and to link.
+	(insn-attrtab.o): Use $(INCLUDES).
+
+	* cse.c: Include stdio.h.
+
+	* c-decl.c (finish_enum): Local `value' was declared and set wrong.
+
+	* Makefile.in (gen*.o): Find source files in $(srcdir).
+	(LIBDEPS, HOST_LIBDEPS): Don't use USE_ALLOCA.
+
+Wed Nov  1 00:05:59 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stmt.c (init_function_start): Init max_parm_reg.
+
+	* varasm.c (compare_constant_1): For ADDR_EXPR, compare symbol name.
+	For PLUS_EXPR, etc., don't record code twice.
+	(record_constant_1): Likewise.
+
+	* expr.c (expand_assignment): Allow for overlap when storing into a
+	structure value area supplied by the caller.
+
+	* cse.c (remove): Handle an elt in the wrong bucket.
+
+	* function.c (fixup_stack_1): Avoid using move insn for address arith.
+
+	* out-sparc.c (output_mul_by_constant): Constant zero is legitimate.
+
+	* caller-save.c (emit_mult_restore, emit_mult_save):
+	Handle stack addresses which are invalid.
+
+	* cse.c (use_related_value): Don't abort if offset is 0.
+
+Tue Oct 31 15:12:54 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* config.gcc (pyramid): Set $machine to pyr.
+
+	* calls.c (expand_call): Don't OK_DEFER_POP in is_const case.
+
+Mon Oct 30 17:00:44 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* final.c (shorten_branches, init_insn_lengths):
+	Define unconditionally; conditionalize the contents, perhaps.
+
+Mon Oct 30 03:23:52 1989  Richard Kenner    (kenner at vlsi1.ultra.nyu.edu)
+
+	* final.c (shorten_branches): New function.
+	(init_insn_lengths, get_attr_length): New functions.
+	* function.c (init_function_start): Call init_insn_lengths.
+	* recog.c (constrain_operands): Call alter_subreg if nec.
+	* toplev.c (rest_of_compilation): Call shorten_branches.
+	(compile_file): Init and print shorten_branch_time.
+
+Mon Oct 30 03:23:52 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (spill_regs): Make it short, not char.
+
+Sun Oct 29 00:53:46 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* final.c (final_scan_insn): Delete no-op moves, even without -O.
+
+	* c-parse.y (yylex): Prevent warning for numbers that underflow.
+
+	* stmt.c (assign_parms): Convert stack addresses to valid addresses.
+	(validize_mem): New subroutine.
+
+	* c-decl.c (finish_enum): If -fshort-enums, round size up to match
+	some ordinary C integer type.
+	Compute precision properly when some values are negative.
+	Make type double precision when necessary.
+
+	* c-decl.c (lang_decode_option): Accept and ignore -fnotraditional.
+
+	* gcc.c (default_compilers): Pass -ftraditional to cpp as -traditional.
+
+	* DOLLARS_IN_IDENTIFIERS now has three values.  1 is now the default.
+	It means enable $ only with -traditional.  2 means enable unless -ansi.
+	* c-decl.c (lang_decode_option): Implement that.
+	* cccp.c (main): Likewise.
+	* tm-vms.h, tm-apollo68.h, tm-convex.h, tm-next.h:
+	Define DOLLARS_IN_IDENTIFIERS as 2.
+	* tm-pyr.h: Define it as 0.
+	* cexp.y (initialize_random_junk): Test DOLLARS_IN_IDENTIFIERS
+	for nonzeroness.
+
+	* stmt.c (check_for_full_enumeration_handling): Accept enum type
+	as argument (since was finding it incorrectly).
+	Delete special case for constant index.
+	(expand_end_case): Pass enum type; check for constant index.
+
+Sun Oct 29 00:53:46 1989  Richard Kenner    (kenner at vlsi1.ultra.nyu.edu)
+
+	* varasm.c (force_const_double_mem): Remove redundant code.
+	(record_constant_rtx): Use normal obstack since temporary data.
+	(force_const_mem): Don't output constant immediately.  Instead,
+	save it for new fn to write.  Also, make hash table mapping
+	internal label to desired constant.
+	(output_constant_pool): New fn to write constant pool.
+	(assemble_function): Call it.
+	(init_const_rtx_hash_table): Initialize new hash table and pool
+	chain and offset.
+	(find_pool_constant): New fn to map internal label SYMBOL_REF to
+	data about constant.
+	(get_pool_constant, get_pool_mode, get_pool_offset): New fns
+	using above fn to return data about constant pool labels.
+	* rtl.h: Define last three new fns.
+
+	* integrate.c (save_constants): New fn to convert constant pool
+	references to recognizable representation of constant that was
+	being used.
+	(save_for_inline): Call it.
+	(copy_for_inline, output_inline_function): Undo this for copy to
+	be compiled.
+	(restore_constants): New fn used in output_inline_function.
+	(copy_rtx_and_substitute): Make new constant pool entries for
+	constants in pool when fn was inlined.
+
+	* cse.c (cse_end_of_basic_block): Optionally make a "basic block"
+	that follows branches.  Now takes previous block as argument and
+	computes which branch to follow/fall through next.
+	(cse_main, cse_basic_block): Make compatible with above.
+
+	* toplev.c: Add new flag, -fcse-follow-jumps.
+	(rest_of_compilation): Pass dump file to cse_main.
+
+	* flags.h: Add flag_cse_follow_jumps.
+
+Sat Oct 28 01:24:14 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* optabs.c (emit_cmp_insn): Default MODE before computing CLASS.
+
+Fri Oct 27 16:25:19 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-next.h (__inline): define as macro for old 1.34 Next uses.
+
+Thu Oct 26 01:05:09 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* mips.md (compare/branch peepholes): Combine using match_operator.
+	* out-mips.c (relop, frelop, frelop_reversed): New functions.
+	* tm-mips.h (PRINT_OPERAND): New codes `C' and `N' for comparisons.
+	(ASM_OUTPUT_SOURCE_LINE): Output .loc--MIPS likes that.
+	(EXTENDED_COFF, NO_UNDERSCORES, USE_COLLECT): Define, for collect.c.
+	(COFF): Undefine, for collect.c.
+
+	* getattrtab.c: Rename define_asm_insn to define_asm_attributes.
+	* rtl.def: Likewise.
+
+Wed Oct 25 00:52:12 1989  Richard Kenner    (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtl.def: Add new RTL codes for insn attributes.
+	Change last operand of DEFINE_INSN and DEFINE_PEEPHOLE.
+
+	* rtlanal.c (rtx_equal_p): Add support for "V", "n", and "s" types.
+
+	* genoutput.c (output_epilogue): No longer output machine_info
+	stuff.
+	(process_template): New function.
+	(gen_insn, gen_peephole): Call process_template.
+	(fatal): Add more args.
+
+	* final.c: Allow called configuration macros to use attribute data.
+
+Wed Oct 25 00:52:12 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* rtlanal.c (rtx_equal_p): Handle operand types n, V, S.
+
+	* optabs.c (floattab): Record unsigned-float insns.
+	(can_float_p): New arg UNSIGNEDP.
+	(expand_float): Use those insns if available.
+
+Tue Oct 24 19:23:11 1989  Richard Kenner    (kenner at vlsi1.ultra.nyu.edu)
+
+	* genattr.c, genattrtab.c: New files.
+	* Makefile.in (insn-attr.h, insn-attrtab.c):
+	New files made by those two.
+
+	* Makefile.in (insn-*.[ch]): Name the temp file `tmp-foo.c', etc.,
+	not `tmp-insn-foo.c'.
+
+	* combine.c (subst): Generalize simplification of
+	(zero_extend:M (subreg:N (zero_extract:M ...) 0)) and similar.
+
+Tue Oct 24 19:23:11 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* combine.c (try_combine): Don't move a volatile asm.
+
+Mon Oct 23 01:45:34 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* combine.c (try_combine): Don't install a subreg relating two modes
+	that aren't tieable.
+
+	* gnulib2.c (__fixdfdi): Declare __fixunsdfdi.
+
+	* combine.c: Make uid_cuid an int *.
+	(combine_instructions): Allocate as such.
+	* loop.c: Make uid_luid an int *.
+	(loop_optimize): Allocate as such.
+
+Sun Oct 22 20:35:55 1989  Richard Kenner    (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): Call simplify_set_cc0_and for SIGN_EXTEND.
+	(subst): Start by putting constant last in commutative operations
+	and convert MINUS of a constant to PLUS.
+	Put CONST around any PLUS with 2 constants.
+	Simplify (minus <foo> (and <foo> (const_int -pow2))).
+	Handle (zero_extend (and ...)) when the and is nontrivial.
+	Convert (XOR (NOT x) (NOT y)) to (XOR x y).
+	Simplify (abs (neg <foo>)).
+	Simplify abs of something known positive.
+	Handle (zero_extend (truncate...)) using gen_lowpart.
+	Do it for sign_extend too.
+	Simplify (ZERO_EXTRACT (AND x) ...).
+	Simplify (ZERO_EXTRACT (ZERO_EXTEND z) ...), etc.
+	Extend "Extracting a single bit from result of shift" to SIGN_EXTRACT.
+	(ashiftrt (*shift <X> <c1>) <c1>) can be (sign_extend <X>)
+	(lshiftrt (*shift <X> <c1>) <c1>) can be (zero_extend (subreg <X>))
+	Do (lshift <X> (sign_extend <Y>)) on non-regs using gen_lowpart.
+	Eliminate AND in (lshift (and <X> <C1>) <C2>).
+	Use gen_lowpart in (lshift:m1 (zero_extend:m2 <X>) <C>).
+	Use gen_lowpart in (and x const) => (zero_extend (subreg x 0)).
+	(simplify_set_cc0_and): Ignore outermost SIGN_ or ZERO_EXTEND.
+	Handle constant bit number.
+	Try to get into SImode for bitfield jumps.
+
+	* recog.c (apply_change_group, validate_change): New functions.
+
+Sat Oct 21 00:51:49 1989  Richard Kenner    (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_end_of_basic_block): Optionally make a "basic block"
+	that follows branches.  Now takes previous block as argument and
+	computes which branch to follow/fall through next.
+	(cse_main, cse_basic_block): Make compatible with above.
+
+	* cse.c (new_basic_block): Don't assume sizeof (rtx) == sizeof (int).
+
+	* cse.c (make_new_qty, canon_hash): Add  sanity checks.
+
+	* cse.c (lookup_as_function): Don't assume VOIDmode == 0.
+
+	* cse.c (exp_equiv_p): For commutative operations, check both orders.
+	Detect unexpected operand-type letters.
+	Mode is significant for all codes.
+
+	* cse.c (fold_rtx): CONST_DOUBLE can also appear in DImode.  Verify
+	that floating-point is used before folding it.
+	Verify that the host's INT width is wide enough to do folding.
+
+	* cse.c (cse_insn): Treat each component of PARALLEL exactly the same
+	way as if it were standing alone.
+
+	* combine.c (combine_instructions): If an insn explicitly references
+	CC0, try to combine it with the previous insn.  Also, enable
+	combining an insn with two different insns whose results it uses.
+
+	* combine.c (try_combine): Ignore USE or CLOBBER parallel parts in
+	I2 and I1 as they are not functional.
+
+Sat Oct 21 00:51:49 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* out-pyr.c (extend_and_branch): Allow SUBREG like REG.
+	* pyr.md (mem-reg and reg-mem HI, QI patterns):
+	Don't match unless one arg is MEM.
+
+Sat Oct 21 00:28:48 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stor-layout.c (layout_decl): No more need to avoid >1 wd in one reg.
+
+	* tree.c (build_index_type): Copy precision from sizetype.
+
+	* reload.c (find_reloads_toplev): Don't truncate constant if bigger
+	than host word size.
+
+	* gnulib2 (__floatdidf, __fixunsdfdi): Use WORD_SIZE, not BITS_PER...
+	(WORD_SIZE): # of bits in a `long' on the target.
+
+	* genextract.c (gen_peephole): Use sizeof (rtx) copying operands.
+
+	* fold-const.c (force_fit_type): Use POINTER_SIZE for pointers.
+
+	* final.c (end_final, final_scan_insn): In sizes and aligns of
+	profiling vars and tbls, use INT_TYPE_SIZE for size of an int,
+	or give max alignment.
+
+	* expr.c (do_jump): Comparing constant arg vs 0, take # sig bits
+	from mode of data type.
+
+	* gcc.c: Add CC1PLUS_SPEC like CC1_SPEC.
+	(validate_all_switches, do_spec_1, process_command, read_specs):
+	Handle it.  Use %2 to use it.
+	(default_compilers): Pass %2 to cc1plus.
+
+	* out-sparc.c (output_fp_move_double): Use ldd only when safe,
+	on same conditions used for std.
+
+	* Makefile.in (USE_ALLOCA): New var is $(ALLOCA) if compiling with
+	cc, null otherwise.  Use this to refer to alloca.
+
+	* Makefile.in (gnulib): Test vrbl HPUX_GAS to decide whether to run
+	hpxt instead of ranlib.
+	(stamp-gnulib2): Don't ranlib if HPUX_GAS.
+	* make-hp9kgas: New file, sets HPUX_GAS.
+
+Fri Oct 20 13:33:34 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expmed.c (store_bit_field, extract_bit_field):
+	Use mode whose size is UNITS_PER_WORD for struct in reg.
+	(store_fixed_bit_field, extract_fixed_bit_field):
+	Handle bigger constant masks.
+	(mask_rtx, lshift_value): New subroutines.
+
+	* c-parse.y (combine_strings): Use correct width of `int'.
+
+	* varasm.c (make_decl_rtl): Warn for volatile explicit register vars.
+
+Fri Oct 20 00:27:00 1989  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload_as_needed): Set new variable reload_in_progress
+	and clear it after reload complete.
+
+	* reload1.c (choose_reload_regs):
+	Don't count deleted reloads vs number of spill regs.
+
+	* reload1.c (choose_reload_regs): Arg of HARD_REGNO_MODE_OK
+	was the pseudo; should be the reload reg.
+
+	* reload1.c (gen_input_reload): Don't generate a move with a PLUS
+	as an operand.
+
+	* reload.c (find_reloads): Ignore unconstrained operands
+	when looking for conflict with an earlyclobber.
+
+	* reload.c (subst_indexed_address):
+	Replace and canonicalize more thoroughly.
+	(form_sum): New subroutine.
+
+	* out-i386.c (singlemove_string): Handle ordinary constants as input.
+
+	* tm-decstatn.h (CPP_PREDEFINES): Add bsd4_2, ultrix, MIPSEL, 
+	host_mips, R3000, LANGUAGE_C, SYSTYPE_BSD.
+	* tm-mips.h (CPP_PREDEFINES): Add host_mips, R3000, MIPSEB, LANGUAGE_C.
+	(CPP_SPEC): Remove those from here.
+	Define __SYSTYPE_*__ always.  Define SYSTYPE_* only if not -ansi.
+	No CPP_SPEC needed for decstation.
+	Correct typos in option tests.
+
+	* c-parse.y (unary_expr): Handle EXTENSION here, not in primary.
+
+Thu Oct 19 18:16:40 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-m68k.h, tm-alliant.h (PRINT_OPERAND):
+	Don't print :l for address if :w was already printed.
+
+	* Allow elided braces with unions.
+	* c-typeck.c (digest_init): Treat unions more like records.
+	(process_init_constructor): Handle union types.
+
+	* c-parse.y (program): Pedantic warning for empty file.
+
+Wed Oct 18 22:28:21 1989  Torbj|rn Granlund  (tege at echnaton.sics.se)
+
+	* out-pyr.c (extend_const, extend_and_branch): Make sure all const
+	  are CONST_INT.
+
+	* out-pyr.c (movdi_possible): Handle combination of two immediate
+	  moves correctly.  (Pyramid immediate move to a DImode operand
+	  (movl) work by SIGN extension of the 32 bit immediate source.)
+	* Handle CONST tagged addresses.
+
+	* out-pyr.c (already_sign_extended): Skip harmless JUMP_INSN when
+	  scanning after extension insn.
+	* Check for right mode of extension.
+	* Delete redundant register number test.
+
+	* pyr.md (anonymous SImode test pattern): Predicate need to accept
+	  any operand that can be generated for corresponding compare.  Used
+	  to reject "foo(p) int *p {int a=0; return *p==a;}".
+
+	* pyr.md (shift patterns): Condition bogus if no insn really output.
+
+	* pyr.md: Flush obsolete comment about conversion.
+
+	* tm-pyr.h (FUNCTION_PROLOGUE): Don't really set up a frame pointer
+	  if it's never referenced.  Also, don't round up frame size to a
+	  multiple of 32, since input args and alloca nevertheless breaks
+	  such alignment attempts.
+	* tm-pyr.h (FUNCTION_EPILOGUE): Goodbye.  Use (define_insn "return"
+	  ..) in md instead.
+	* pyr.md (return): Use "ret" or "retd" depending on the existense
+	  of a freme pointer.
+	* tm-pyr.h (EXIT_IGNORE_STACK): Ensure the stack pointer is
+	  preserved even when the frame pointer is not really set up.
+
+	* pyr.md: Reinsert move-and-test peep-hole optimization.
+
+	* pyr.md: Flush silly peep-hole optimizations for loops.  They were
+	  inverted optimizations.
+
+	* tm-pyr.h (NOTICE_UPDATE_CC): Make it identify the most important
+	  cases when set conditions codes can be used, without an explicit
+	  test.
+
+Wed Oct 18 13:01:24 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gcc.c (default_compilers): Support -E on .h file.
+
+	* tm-mips.h (FUNCTION_PROLOGUE): Get rid of __0__gcc macro.
+	Store that value in frame_stack_difference.
+	(FUNCTION_EPILOGUE): Get rid of __0__gcc macro.
+	(FIX_FRAME_POINTER_ADDRESS): Use frame_stack_difference.
+	* out-mips.c (frame_stack_difference): Define here.
+
+	* gcc.c (default_compilers): Define __GNUG__ for g++.  
+
+Tue Oct 17 01:17:07 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-i860.h (HAVE_PRE_INCREMENT): Undefine this.
+
+	* mips.md (movsf): New alternatives for r registers.
+	* tm-mips.h (FUNCTION_PROLOGUE): Handle big stack frames.
+	* out-mips.c (function_arg): Handle mode distinction for floating args.
+
+	* pyr.md (mtstsw pattern): Accept general_operand.
+
+	* Makefile.in (gcc): Force-move when installing new gcc.
+	(realclean): Delete Makefile.
+
+	* i860.md (movsf): New alternatives: allow loading r from F.
+	Prefer f-reg as reload when moving m from F.
+	* tm-i860.h (PRINT_OPERAND): Handle CONST_DOUBLE if SFmode.
+
+Sun Oct 15 14:27:48 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* i860.md (movhi, movqi): Support moves to/from fp regs.
+
+	* stmt.c (expand_goto): USE both stack ptr and static_chain_rtx
+	just before jumping.
+
+	* sparc.md (tablejump peepholes): Fix paren error that no-op'd them.
+
+	* tm-sparc.h (*TRAMPOLINE*): Defined macros, but defns are wrong.
+	* sparc.md (indirect_jump): New pattern; plus peepholes.
+
+	* sparc.md (cse'd multiply): New pattern for mult. by -1.
+
+	* out-i860.c (load_opcode, store_opcode): Handle DImode and fp reg.
+
+	* toplev.c (compile_file): Always test TREE_USED and TREE_ADDRESSABLE
+	in identifier as well as in decl.
+	* c-decl.c (poplevel): Preserve TREE_ADDRESSABLE from local externs.
+	* c-typeck.c (mark_addressable): Don't set bit in identifier here.
+
+Fri Oct 13 00:12:46 1989  Richard Kenner  (rms at sugar-bombs.ai.mit.edu)
+
+	* flow.c (life_analysis): No need to think abt CONSIDER on first pass.
+
+	* flow.c (propagate_block): Remove duplicated code to update OLD.
+
+	* flow.c (mark_set_1): Handle nested SUBREG, SIGN_EXTRACT,
+	STRICT_LOW_PART, etc.  Also, always set subreg_p when setting
+	a bit field, even if modes are same.
+
+	* expr.c (expand_expr): Check for |= or &= of two bitfields of size 1.
+	Convert to test followed by assignment.
+
+	* rtl.def (INLINE_HEADER): Correct erroneous field types.
+
+	* rtl.h: Add definitions for saving flags in INLINE_HEADER.
+
+	* emit-rtl.c (gen_inline_header): Correct out-of-date arguments.
+	Add support for saving flags.
+
+	* integrate.c (save_for_inline): Save function flags.
+	Update comments.
+	(expand_inline_function, output_inline_function): Let machine-dependant
+	code view (or possibly modify) inlined insn, if desired.
+
+	* function.c (assign_stack_local): Don't set frame_pointer_needed or
+	invalid_stack_slot if assigning zero-sized area.
+
+	* stmt.c (fixup_var_refs_1): If the machine's SIGN_EXTRACT or
+	ZERO_EXTRACT insns can't accept a memory operand, fix them up.
+
+	* expr.c (do_jump): Look inside EQ_EXPR or NE_EXPR if one arg is 0.
+	Be smart about PLUS_EXPR, MINUS_EXPR, ABS_EXPR, REFERENCE_EXPR,
+	NEGATE_EXPR, rotation, CONVERT_EXPR.
+
+	* jump.c (reverse_condition): Make non-static.
+	(swap_condition): New routine.
+
+	* final.c (alter_cond): Use new swap_condition.
+
+	* expr.c (expand_expr): In cases where a jump will be generated, use
+	original_target because the registers won't be able to be merged due
+	to the jump.
+
+	* expr.c (expand_expr): Put constant last for PLUS.
+
+Fri Oct 13 00:12:46 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* recog.c (constrain_operands): Add case for `&'.
+
+	* tm-vax.h (TRAMPOLINE_TEMPLATE): Add a .word 0 at beginning.
+	(TRAMPOLINE_SIZE): Increase by 2.
+	(INITIALIZE_TRAMPOLINE): Copy reg mask from pure code to trampoline.
+	Jump into the pure code after the reg mask.
+
+	* expmed.c (expand_divmod): Use divmod insn for quotient if no div.
+
+	* expmed.c (extract_bit_field): With structure reg fetched from mem,
+	don't put in subreg if mode already correct.
+	(store_bit_field): Typo: had extzv, wanted insv.
+
+	* recog.c (init_recog): Set volatile_ok to 1.
+	(init_recog_no_volatile): Similar, but set volatile_ok to 0.
+	(recog_memoized): Don't set volatile_ok.
+	* reload1.c (reload): Call init_recog.
+	* combine.c (combine_instructions): Call init_recog_no_volatile.
+	* loop.c (loop_optimize): Likewise.
+	* cse.c (cse_main): Likewise.
+	* function.c (expand_function_start): Call init_recog_no_volatile
+	for the sake of predicates called from optabs.c.
+
+	* toplev.c (compile_file): Warn if fun declared static and used
+	but never defined.
+
+Thu Oct 12 01:48:30 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (macarg1): Count newlines even after backslash.
+
+	* c-decl.c (pushdecl): Don't warn for explicit extern
+	followed by static.  That case is useful for incomplete arrays.
+
+	* c-decl.c (grokdeclarator): Delete some junk about Pmode vs EPmode.
+
+	* tm-sparc.h (SELECT_RTX_SECTION): Test was backwards.
+
+	* reload.c (reg_class_subset_p): New function.
+
+Wed Oct 11 00:35:25 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* vax.md (indirect_jump): New pattern.
+
+	* c-parse.y (primary): Turn off pedantic after `__extension__'.
+	(hash, is_reserved_word, etc.): Recognize `__extension__'.
+
+	* expr.c (emit_library_call, expand_call): Make a SEQUENCE for
+	any needed USE insns and pass them to emit_call_1.
+	(emit_call_1): Place the passed SEQUENCE immediately before the
+	generated CALL_INSN even if gen_call made more than one insn.
+
+	* tm-seq386.h (DBX_DEBUGGING_INFO): Override this.
+	(HARD_REGNO_MODE_OK): Override this.
+
+	* c-typeck.c (build_conditional_expr): Supply missing layout_decl arg.
+
+	* dbxout.c (dbxout_symbol): Handle nested functions.
+
+Wed Oct 11 00:35:25 1989  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c: Update jump_chain when insns change.
+	(jump_optimize): Leave room in jump_chain for some extra labels.
+	Record length in max_jump_chain.  Check this when updating.
+	When optimizing jump-to-return, delete from one chain and add to other.
+	When cross-jumping turns cond jump to simple one, add to new chain.
+	Zero jump_chain at end, so redirect_jump won't change it further.
+	(redirect_jump): Delete from one chain, add to another.
+	(do_cross_jump): Likewise.
+	(delete_from_jump_chain): New subroutine.
+
+	* cse.c: If `if (x != y) goto l;' fails to jump, assume x==y.
+	(reg_invaliate): Add new argument for when value isn't
+	changing, just its class.
+	(invalidate): Update reg_invalidate call.
+	(record_jump_equiv): New function.
+	(cse_insn): Call it.
+
+	* cse.c (cse_insn): Delete previous test based on
+	prev_insn_explicit_cc0 just as based on prev_insn_cc0.
+
+Tue Oct 10 00:14:35 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload.c (push_reload, combine_reloads): Let two reloads share
+	if one's regclass is a subset of the other.
+
+	* Makefile.in: What depends in expr.h, depends on insn-codes.h also.
+
+Mon Oct  9 19:11:38 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (finclude): Close descriptor as soon as text is read.
+	Eliminate `success'; return directly after successful processing.
+	(do_include): Don't close descriptor here.
+
+	* tm-i386.h (REG_CLASS_FROM_LETTER): Don't define `S' letter.
+	It wasn't used; and now it means something else.
+
+	* tm-ns32k.h (REG_CLASS_FROM_LETTER): Don't define `r' here.
+	`r' is standard.
+
+Mon Oct  9 01:09:25 1989  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* flow.c (life_analysis): Ignore USEs and CLOBBERs when finding
+	redundant register copies.
+	* jump.c (jump_optimize): Do the same thing here.
+
+	* jump.c (mark_jump_label): Loop NOTEs aren't relevant after loop
+	optimization.
+
+	* integrate.c (copy_for_inline): Correctly handle RTL type "u".
+	* final.c (output_operand_lossage): Make non-static.
+
+	* recog.c (constrain_operands): Treat N, O, P like I, J, K, L, M.
+	For Q...U, use EXTRA_CONSTRAINTS if defined.
+	* reload.c (find_reloads): Likewise.
+
+	* rtl.c (copy_rtx, read_rtx, print_rtx): Handle operand type `V'.
+
+	* rtlanal.c (note_stores): Use variable Y instead of equivalent
+	slower expression.
+
+	* rtlanal.c (dead_or_set_p): Hard regs don't always have same RTX.
+
+	* rtlanal.c (may_trap_p): Don't use const0_rtx here.
+	So we can use this file in programs that don't have const0.
+
+Mon Oct  9 01:09:25 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Support language-specific tree codes.
+	* tree.c (standard_tree_code_type, standard_tree_code_length):
+	Renamed tables.  tree_code_type and tree_code_length are now pointers.
+	* tree.c (init_tree): Copy the tables to allocated memory.
+	* tree.c (tree_code_name): Move here from print-tree.c
+	and define like tree_code_type.
+
+	* rtl.c (print_rtl): Handle 0 as operand.
+
+	* emit-rtl.c (save_emit_status): Don't call init_emit here.
+	* function.c (push_function_context): Do it here.
+
+	* emit-rtl.c (reinstate_emit_status): New function.
+	* function.c (trampoline_address): Use this around
+	INITIALIZE_TRAMPOLINE.
+
+	* function.c (trampoline_address): Use fp->tail_recursion_reentry
+	when trampoline is in outer function.
+
+	* Save and restore stack levels in nonlocal gotos.
+	* function.c: New variable nonlocal_goto_stack_level.
+	(init_function_start, push_function_context, pop_...): Init, push, pop.
+	(delete_handlers): Delete insns to set or use this slot.
+	* stmt.c (declare_nonlocal_label): Create this stack slot.
+	(expand_goto): Restore stack ptr from it.
+	(expand_end_bindings, expand_decl): When setting stack ptr,
+	store new value here.
+	* expr.c (expand_builtin): Likewise, for alloca.
+	* calls.c (expand_call): Likewise.
+
+	* varasm.c (make_function_rtl): Rename nested functions for assembler.
+	* c-decl.c (start_function): Clear TREE_PUBLIC for nested function.
+
+	* tm-i860.h (*TRAMPOLINE*): Define macros.
+
+	* i860.md (movdi): accept F source in 2nd alternative.
+	Accept G source in 3rd.
+	(adddi3, subdi3): Typo in opcode of output.
+
+	* i860.md (indirect_jump): Added pattern.
+
+	* c-decl.c (lookup_label): Shadow label if it's wrongly inherited.
+	Set DECL_CONTEXT here, since nondeclared labels must be local.
+
+Sun Oct  8 01:38:27 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* function.c (expand_function_start): Copy static chain to pseudo
+	reg if chain is used.
+
+	* tm-mips.h (ASM_SPEC): Pass -nocpp to as.
+
+	* c-decl.c (grokdeclarator): Ignore variant differences
+	when preserving typedef types from being altered.
+
+	* Allow inner label scopes for ({...}).
+	* c-decl.c (push_label_level, pop_label_level): New functions.
+	* c-parse.y (stmt exprs): Call them.
+
+	* c-decl.c (lookup_label): Set DECL-SOURCE-LINE to locus of reference.
+	(poplevel): Use locus of reference in err msg for undef label.
+	(define_label): Use DECL_INITIAL as flag that label has been defined.
+
+	* function.c (expand_end_function): Delete nonlocal goto handlers
+	if no nonlocal gotos are actually received.
+	(delete_handlers): New function.
+
+	* flow.c (find_basic_blocks): Treat blocks as reachable
+	if headed by labels with LABEL_PRESERVE_P.
+	(insn_dead_p): Don't delete insns to set the frame pointer or arg ptr.
+
+	* m68k.md (indirect_jump): New pattern.
+
+Sat Oct  7 00:46:18 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (lookup_label): If label is nonlocal and wasn't declared so,
+	report error and return 0.
+	(shadow_label): New function.
+	* c-parse.y (goto stmt): Handle 0 returned by lookup_label.
+	(label_decl, label_decls): Parse forward-declarations of labels.
+	(pushlevel): Allow label declarations at start of compound stmt.
+
+	* rtl.h (LABEL_PRESERVE_P): New flag in CODE_LABEL.
+	* jump.c (jump_optimize): Increment LABEL_NUSES if that flag is set.
+
+	* stmt.c (any_pending_stack_level): New function.
+	(expand_end_bindings): If block has stack level or cleanups,
+	and this function has any nonlocal labels, make a nonlocal goto handler
+	for the block, and put it in effect during the block.
+	Set LABEL_PRESERVE_P on the handler's label.
+	(expand_goto): For a nonlocal label, restore its stack frame
+	and jump to current handler.
+
+	* function.c: New var nonlocal_labels lists labels ok for nonlocal.
+	Initted in init_function_start, pushed and popped with fcn context.
+	* stmt.c (declare_nonlocal_label): Put a LABEL_DECL on this list.
+
+	* output.h: Declare current_function_has_nonlocal_label
+	and sdb_begin_function_line.
+	* final.c: Don't declare them.
+
+	* function.c (current_function_has_nonlocal_label): New var.
+	(init_function_start): Init it.
+	(push_function_context, pop...): Save and restore it.
+	* flags.h: Declare current_function_has_nonlocal_label.
+	* stmt.c (expand_goto): Set it if nonlocal label.
+	* local-alloc.c (combine_regs): Don't tie call-crossing reg
+	to a non-call-crossing reg, if receive nonlocal gotos.
+	(block_alloc): Don't allocate pseudos that cross calls,
+	if receive nonlocal gotos.
+	* global-alloc.c (global_alloc): Don't even make an allocno for
+	a reg that crosses calls, if receive nonlocal gotos.
+
+	* function.c (init_function_start): Init function_call_count.
+	(push_function_context, pop_...): Save and restore it.
+	* calls.c (expand_call): Increment function_call_count.
+	* stmt.c (expand_{start,end}_bindings): Use this var
+	to determine whether there are any function calls in a block.
+	No need for a nonlocal goto handler if block has no calls.
+
+	* c-decl.c (define_label): Set DECL_CONTEXT.
+	Maybe push label on shadowed_labels.
+	(pop_c_function_context): Clear out labels in named_labels
+	and reinstall those in shadowed_labels.
+	Restore shadowed_labels.
+	(push_c_function_context): Push shadowed_labels.
+	(start_function): Clear shadowed_labels.
+
+	* function.c: New file, split from stmt.c.
+
+	* xm-mips.h: Use __builtin_alloca.
+
+Fri Oct  6 00:30:42 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* jump.c (jump_optimize): Optimization of
+	`if (...) x = 1; else {...}  if (x) ...' got sense wrong sometimes.
+
+	* Makefile.in (stamp-gnulib2): depend on gcc, cc1, cpp via
+	gnulib2-indirect.
+
+	* tm-vax.h (TRAMPOLINE_SIZE,INITIALIZE_TRAMPOLINE,TRAMPOLINE_TEMPLATE):
+	Define macros.
+
+	* m68k.md (addsi3): Change ! to ? in lea alternatives.
+	Put them before the add-to-register alternative.
+
+	* reload.c (find_dummy_reload): Use PREFERRED_RELOAD_CLASS here
+	as in push_reload, so we make accurate predictions.
+
+	* c-decl.c (pushdecl): Don't set DECL_CONTEXT for function declaration
+	that isn't a definition.
+
+	* explow.c (fix_lexical_addr): Handle address that's just a base reg.
+
+	* expr.c (expand_expr, case VAR_DECL): No need for static chain
+	if var is static.
+
+	* reload.c (find_equiv_reg): Do let xregno be a pseudo reg,
+	but don't call HARD_REGNO_NREGS in that case.
+
+	* local-alloc.c (combine_regs): Set reg_qty[sreg] even if it was <0.
+
+	* c-decl.c (start_function): Clear named_labels.
+
+Thu Oct  5 00:30:39 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload.c (find_equiv_reg): Don't let xregno be a non-hard reg.
+	Don't do OVERLAPPING_REGNO_P on a pseudo reg number. 
+
+	* Handle addresses of nested functions.
+	* New tm macros TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE,
+	ALLOCATE_TRAMPOLINE, TRAMPOLINE_TEMPLATE.
+	* expr.c (expand_expr, case ADDR_EXPR): Handle addresses of nested fns.
+	* stmt.c (trampoline_address): New function.
+	* varasm.c (assemble_trampoline_template): New function.
+
+	* i386.md (trunchiqi2, etc.): Output %1 with size of destination.
+	* out-i386.c (PRINT_REG): Support 'b' as CODE.
+
+	* combine.c (try_distrib): Make sure we don't move a reg use
+	across a store into that reg.
+
+	* reload1.c (order_regs_for_reload): Rate fixed regs at LARGE+2,
+	and explicitly used regs at LARGE+1.
+
+	* stor-layout.c (layout_record): Support BIGGEST_FIELD_ALIGNMENT.
+	* tm-vax.h (BIGGEST_FIELD_ALIGNMENT): Define it.
+	(BIGGEST_ALIGNMENT): Now always 32.
+
+	* stor-layout.c (build_int): When memoizing, make permanent nodes.
+
+Wed Oct  4 19:40:37 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* xm-i860.h: Missing file added.
+
+	* integrate.c (function_cannot_inline_p): Don't inline if > 100 bytes
+	of stack space, unless declared inline.
+
+Tue Oct  3 00:16:08 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stmt.c (assign_outer_stack_local): New function.
+	(put_var_into_stack): Allocate stack slot in fn the variable is in.
+
+	* stmt.c (put_var_into_stack): If variable-size object is nonlocal,
+	put the pseudo with its address into the stack.
+
+	* calls.c: New file, split out from expr.c.
+	(expand_call): Pass static chain if fn wants it.
+
+	* Make put_var_into_stack handle vars of containing function.
+	* stmt.c (put_var_into_stack): Find the rtl chains for the
+	function that the variable belongs to.
+	(fixup_var_refs): New args FIRST_INSN, STACK and RTL_EXPS.
+
+	* Make DECL_CONTEXT the function a var is in, and set it right away.
+	* c-decl.c (store_parm_decls): Use DECL_RESULT, not DECL_CONTEXT,
+	as the flag for duplicate names or missing names.
+	* c-decl.c (start_function): Don't set current_function_decl
+	till after calling pushdecl.
+	* c-decl.c (pushdecl): Set DECL_CONTEXT to current_function_decl.
+	(poplevel): Used to set it here, to the LET_STMT.  Don't.
+	* stmt.c (init_function_start): Test for a FUNCTION_DECL in
+	DECL_CONTEXT, not for a LET_STMT.
+
+	* c-parse.y (primary <- identifier): Set TREE_NONLOCAL if appro.
+	Also call mark_addressable.
+
+	* stmt.c (expand_function_start): Store static chain into stack frame.
+	Fetch static chains of containing functions into pseudos.
+	(lookup_static_chain): Moved here; and really does something.
+	* expr.c (expand_expr): Handle nonlocal variable.
+	* explow.c (fix_lexical_addr): New function.
+
+	* out-i386.c (fp_pop_int): Use %L0 in fistp insn.
+
+	* global-alloc (find_reg): Fix typo marking new hard reg conflicts.
+
+	* stmt.c (pushcase, pushcase_range, expand_end_case):
+	When warning about insns at start of case, don't mind NOTEs.
+
+	* local-alloc.c (combine_regs):
+	Transfer all pseudos from SREG's old qty to its new qty.
+
+	* Support nested functions:
+	* stmt.c (push_function_context, pop_function_context): New functions.
+	* tree.c (save_tree_status, restore_tree_status): New functions.
+	* stor-layout.c (save_storage_status, restore_storage_status): Ditto.
+	* expr.c (save_expr_status, restore_expr_status): Ditto.
+	* emit-rtl.c (save_emit_status, restore_emit_status): Ditto.
+	* c-decl.c (push_c_function_context, pop_c_function_context): Ditto.
+	(start_function, finish_function): New arg NESTED.
+	* c-parse.y (nested_function, notype_nested_function): New nonterms.
+	(decl): New alternative to use them.
+
+	* tree.h: Declare lineno.
+	* c-decl.c (finish_function): Don't expect lineno as arg.
+	* c-parse.y (fndecl, *nested_function): Don't pass it.
+
+	* expr.c (init_expr, expand_call): Delete may_call_alloca.
+	* tm-m88k.h, tm-sparc.h, tm-spur.h: Use current_function_calls_alloca.
+	* tm-mips.h: It wasn't really used; delete its declaration.
+
+Mon Oct  2 16:26:33 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (emit_reload_insns): Reject any OLDEQUIV that is
+	in use in any other reload of this insn.
+
+	* expr.c (expand_call): Don't put on notes for const functions
+	if there aren't real insns to hold them.
+
+Sun Oct  1 19:50:59 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (expand_inline_function): Handle PARALLEL in CALL_INSNs
+	when setting follows_call.
+
+	* mips.md (call_value): Change to a straightforward define_insn
+	with just one action--no PARALLEL.
+
+	* i860.md (pfeq, pfgt and pfle patterns): Add f0 as 3rd arg.
+
+	* integrate.c (save_for_inline): Don't delete NOTE_INSN_FUNCTION_END.
+
+	* c-parse.y (simple_if): Return $$ as value of stmt_count.
+	(stmt (if statement)): Warn if $$ was not incremented in the body.
+	(stmt (else statement)): Likewise.
+	(stmt): All alternatives except null statement increment stmt_count.
+
+Fri Sep 29 08:56:30 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* regclass.c (reg_class_record): If move between CLASS and GENERAL_REGS
+	is costly, charge that cost to GENERAL_REGS and its subclasses.
+	* tm-alliant.h, tm-m68k.h (REGISTER_MOVE_COST): New macro.
+
+	* regclass.c (regclass): When a reg is a parm equiv to a stack slot,
+	decrease its memcost, since the insn to load it would go away.
+
+	* global-alloc.c (find_reg): Rewrite two-pass hard reg preference code.
+	Uses regs_used_so_far to avoid allocating a reg not used elsewhere
+	in the first pass.  Also updates regs_used_so_far.
+	(global_alloc): Initialize regs_used_so_far.
+
+	* tm-next.h (LINK_SPEC): Typo for -Z option.  Don't pass -M option
+	to ld, since that is for cpp.
+
+	* Support -MD and -MMD options.
+	* gcc.c (default_compilers): Pass them to cpp in special way.
+	Don't inhibit compilation for them, only for -M and -MM.
+	* cccp.c (main): Handle them like -M and -MM except take arg
+	which is file name to write deps in.
+
+	* toplev.c: #if 0 around everything for GDB_DEBUG.
+	* symout.c: File removed from distribution.
+	* Makefile.in: Don't try to compile or link it.
+
+	* tm-hp9k320.h (ASM_FILE_START): Output a `version' pseudo-op.
+	[! HPUX_ASM] (ASM_SPEC): Don't use the -V option.  Recognize -mc68000.
+	(CALL_USED_REGISTERS): Redefinition deleted.  HPUX 6.5 doesn't need it.
+	* tm-hp9k310.h, tm-hp9k310g.h: New files.
+
+Thu Sep 28 12:57:11 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stmt.c (pushcase, pushcase_range): Warn if code was emitted inside
+	case stmt before 1st label is seen.
+	(expand_start_case): New arg is string to use in that warning.
+	(struct nesting): New fields printname and seenlabel.
+	* c-typeck.c (c_expand_start_case): Pass new arg to expand_start_case.
+
+	* gcc.c: Can now read compilation specs, and asm_spec (etc), from file.
+	(cpp_spec, asm_spec, etc.): New variables, initted to corresp. macros.
+	(do_spec_1, validate_all_switches): Use the variables, not the macros.
+	(link_command_spec): New name for old link_spec.
+	(compilers, n_compilers): Now a pointer, with size of vector ptd to.
+	(default_compilers): New name for old `compilers' vector.
+	(read_specs): Given file name, read specs and add to `compilers'.
+	Also set cpp_spec, asm_spec, etc.
+	(skip_whitespace): New subroutine.
+	(main): Initialize `compilers' from `default_compilers'.
+	Find a specs file and call read_specs.
+	Search thru `compilers' from back to front.
+	* Makefile.in (install): Use gcc -dumpspecs to write a specs file.
+
+	* Support multiple installed compilers; find them by
+	target machine and version.
+	(STANDARD_EXEC_PREFIX): Change to `.../gcc/'.
+	(standard_exec_prefix_1): Change to `.../gcc/'.
+	(process_command): Options -b and -V set spec_machine, spec_version.
+	Option -dumpspecs writes specs file to define cpp_spec, asm_spec, etc.
+	Option -dumpversion writes version number.
+	(main): Set machine_suffix from spec_machine and spec_version.
+	* Makefile.in (libsubdir): New variable, made from libdir.
+	(gcc.o): Define DEFAULT_TARGET_MACHINE macro in compilation.
+	Change value of STANDARD_EXEC_PREFIX as above.
+	(cccp.o): Use libsubdir.
+	(install): Install files under $(libsubdir), after making that dir.
+
+	* reload.c (decompose): Handle case of pseudo with no hard reg.
+
+Wed Sep 27 01:20:36 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* global-alloc.c: #if 0 handling of REG_NO_CONFLICT notes.
+
+	* c-typeck.c (build_c_cast): Implement cast to union type.
+
+	* Edit the makefile automatically when necessary.
+	* config.gcc: Produce Makefile by editing Makefile.in with sed.
+	* Makefile.in: New name for file `Makefile'.
+	Comments on editing the file deleted.
+	* config/make-*: Various files are inserted by sed into Makefile.
+
+	* Provide a way for languages to control printing of function names.
+	* toplev.c (error, fatal, announce_function, etc.):
+	Use value of decl_printable_name to compute what name to print.
+	* stmt.c (init_function_start): Likewise.
+	* toplev.c (main): Init that variable.
+	(decl_name): New function, used by default.
+
+	* explow.c (round_push): Fix typo: return fast if ALIGN is 1.
+
+	* flow.c (dump_flow_info): Delete excess arg to fprintf.
+	* gcc.c (fatal): Delete excess arg to delete_temp_files.
+
+	* expr.c (convert_move): Handle absence of integer truncate insns
+	by copying value to a reg (and then using subreg).
+
+	* final.c (final_start_function): Do leaf-function register renumbering
+	if that is defined for this machine.
+	(leaf_renumber_regs, only_leaf_regs_used, leaf_function_p): New fns.
+
+	* varasm.c (in_text_section): New function.
+	* tm-3b1.h (ASM_OUTPUT_SKIP): Use that.
+
+	* stmt.c (case_index_expr_type): New function.
+
+	* c-parse.y (maybe_attribute): Don't fail to return a value.
+
+Tue Sep 26 02:40:23 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Do auto-increments for hard regs.
+	* flow.c (mark_used_regs): Do set reg_next_use for hard regs.
+	When making an auto-increment for a hard reg, don't mess with
+	reg_n_refs or reg_n_sets.
+	(try_pre_increment_1): Likewise.
+
+	* gcc.c (compilers): -undef inhibits predefined symbols.
+
+	* combine.c (subst): In case EQ, prefer ZERO_EXTRACT, not SIGN_EXTRACT.
+	* vax.md (jbs, jbc patterns): Write with ZERO_EXTRACT.
+	* m88k.md: Likewise.
+
+	* Merge C++ changes in stmt.c:
+	* Set up an obstack, stmt_obstack.
+	(ALLOC_NESTING): Allocate a `struct nesting' on that.  Callers changed.
+	(POPSTACK): Use the obstack.
+	(init_stmt): New fn: init the obstack.
+	(any_pending_cleanup): New fn.
+	(expand_start_bindings): Leave outer_cleanups 0 if nothing in it.
+	(expand_end_bindings): Preserve some global vars around cleanups.
+	After cleanups, if no stack level to restore, do pending pops.
+	(fixup_cleanups): Do pending pops after the cleanups.
+	(expand_start_case): Don't output a NOTE if already have one.
+	(assign_parms): Speed up sizetree computations in common case.
+	(init_function_start): Use lang_printable_name for current_function_name.
+	(expand_function_end): Don't set REG_FUNCTION_VALUE_P
+	for a pseudo reg used to copy into the real return.
+	* toplev.c (compile_file): Call init_stmt.
+
+	* c-typeck.c (commontype): If one arg is error_mark_node, return other.
+
+Mon Sep 25 12:13:07 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* optabs.c (expand_binop): Handle boolean ops on >SImode with
+	several one-word insns.  Put out REG_EQUAL and REG_NO_CONFLICT notes.
+	* global-alloc.c (global_conflicts): For each insn, record
+	in no_conflict_pairs all the REG_NO_CONFLICT notes of the insn.
+	(record_one_conflict): Don't mark a conflict between such a pair.
+	* local-alloc.c (block_alloc): Do combine_regs on the sequences
+	made by expand_binop for multi-word boolean ops.
+	(combine_regs): New arg ALREADY_DEAD is 1 if UREG died prior to INSN.
+	(no_conflict_p): New subroutine.
+	* combine.c (try_combine): Move REG_NO_CONFLICT notes like REG_INC.
+	* flow.c (life_analysis): Don't delete no-op moves
+	if they carry REG_EQUAL notes.  These insns are needed later.
+	* reload.c (find_dummy_reload): Use actual operands (which may be
+	subregs) for most purposes, including checking for overlap.
+	(hard_reg_set_here_p): Handle a range of regnos, not just one.
+
+	* loop.c (move_movables): Use special techniques to move regs
+	used for zero-extension.  Don't combine matching regs; instead,
+	just record them in pairs in regs_may_share.
+	* global-alloc.c (global_alloc): Digest regs_may_share into a
+	vector, reg_may_share.  Then assign matching regs the same allocno.
+	(global_alloc): Initialize allocno_n_refs, allocno_live_length,
+	allocno_calls_crossed.
+	(allocno_compare): Use those new vectors; don't use allocno_reg.
+	(find_reg): Use those new vectors.
+	Assign hard reg to all the pseudos that share the allocno.
+
+	* jump.c (jump_optimize): Two new cases simplify jumping to or
+	falling into a test-and-branch after setting the register being tested.
+	* jump.c (get_label_before, get_label_after): New functions.
+	(do_cross_jump): Use get_label_before.
+
+Sun Sep 24 00:21:24 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gnulib2.c (__fixunsdfsi): Defined here, not in gnulib.c.
+	* Makefile (LIBFUNCS, LIB2FUNCS): Corresponding change.
+
+	* tm-i860.h (SDB_DEBUGGING_INFO): Define this, not SDB_...
+
+	* gcc.c (link_spec): Don't specify -lg.
+	* tm-alliant.h, tm-convex.h, tm-hp9k3bsd.h, tm-isi68.h, tm-news.h
+	* tm-pyr.h, tm-seq386.h, tm-sequent.h, tm-sparc.h, tm-spur.h
+	* tm-sun2.h, tm-sun3.h, tm-sun386i.h, tm-tahoe.h, tm-vax.h:
+	Make LIB_SPEC link with -lg.
+	* tm-harris.h, tm-vaxv.h, tm-vms.h: Turn off inherited LIB_SPEC.
+
+	* recog.h (insn_*): Declare these tables `const'.
+	(const): Define this as nothing, if not __STDC__.
+	* expr.h (insn_gen_function): Declare `const'.
+	(const): Define this as nothing, if not __STDC__.
+	* genoutput.c (main): In insn-output.c, don't define `const' if
+	already defined.
+
+	* recog.c (offsettable_nonstrict_memref_p): New function.
+	* stmt.c (fixup_var_refs_1): Use that, not offsettable_memref_p.
+	* reload.c (find_reloads): Likewise.
+
+	* integrate.c (save_for_inline): Set in_nonparm_insns when arrive
+	at the first nonparm insn.
+	(copy_for_inline): Set TREE_READONLY only if in_nonparm_insns.
+
+	* Makefile (float.h): Make hard-params an ordinary dependency.
+
+	* c-decl.c (poplevel): When popping a local extern decl,
+	save the TREE_USED bit in the identifier.
+	* toplev.c (compile_file): Check that, printing "not used" warnings.
+
+	* c-parse.y (init_lex): Discard undesired reserved words from table.
+	(yylex): No need to check for them at lookup time.
+
+	* tree.c (make_node): Always put PARM_DECL in saveable_obstack.
+
+	* toplev.c (floor_log2, exact_log2): Rewritten for speed.
+
+	* tree.c (listify): New function.
+
+	* c-typeck.c (convert_for_assignment): New args for function being
+	called and argument number.  Used in error messages.
+	(actualparameterlist): Pass those args usefully.
+	(wrn_for_assignment): New function.
+
+	* loop.c (general_induction_var): Handle give copied from a biv.
+
+	* i386.md (div*i3, udiv*i3): New patterns.
+	(divmodhi4, udivmodhi4): New patterns.
+
+	* combine.c (subst):
+	Simplify (sign_extend:M (subreg:N (lshiftrt:M REG CONST) 0))
+	when REG was assigned from (zero_extend:M (any:N ...)).
+	Make the similar (zero_extend:M ...) case share code.
+
+	* expr.c (store_field): A frame-pointer-relative address is stable.
+
+	* expr.c (expand_expr): Effectively pass on IGNORE for 2nd op of comma.
+
+Sun Sep 24 00:21:24 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Version 1.36 released.
+
+	* genextract.c (main): Pass `insn' as arg to `fatal_insn_not_found'.
+
+	* tahoe.md (casel patterns): Use %@ for operand of .align.
+	* tm-tahoe.h (PRINT_OPERAND): %@ prints `1'.
+	* tm-harris.h (PRINT_OPERAND): Redefine it; %@ prints `2'.
+
+	* config.gcc (decstation): New entry.
+
+	* tm-harris.h: New file, using tm-tahoe.h.
+
+	* tm-decstatn.h, tm-mips-bsd.h, tm-mips-sysv.h: New files.
+
+Sat Sep 23 00:28:14 1989  Alain Lichnewsky  (lich at glenlivet)
+
+	* added -Zxxx flag in tm-mips.h. (-Z stands for systype)
+
+	  used as -ZSYSV or -ZBSD43 on RISC_OS. I suppose
+	  that at somepoint -ZPOSIX might be required for Ultrix. 
+
+	* changed command issued to loader to set -systype and to get
+          crt1 crtn instead of crt0.
+
+        * changed predefines for cpp to agree with RISC-OS
+
+	* tm-mips.h checks for machine type ( defined(ultrix) == DECSTATION)
+	  so that user does not have to go in and change tm-mips.h anymore
+
+	* cpp defines mips host_mips unix and SYSTYPE_SYSV
+	  or SYSTYPE_BSD43. 
+
+Fri Sep 22 00:31:29 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* pyr.md (andsi3): Flush spurious paren.
+
+	* Makefile (hard-params): Don't use LIBS or LIBDEPS.
+
+	* rtl.c (init_rtl):
+	Use malloc to allocate the string for format of CONST_DOUBLE.
+	Don't fail to store in rtx_format.
+
+Thu Sep 21 00:33:13 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* print-tree.c (dump): Move decl of P in REAL_CST case.
+
+	* fold-const.c (fold): For ABS_EXPR, handle REAL_IS_NOT_DOUBLE.
+
+	* c-convert.c (convert_to_real): Use REAL_VALUE_ATOF to make 0.
+
+	* mips.md (movdi): Handle constant with or without WORDS_BIG_ENDIAN.
+	For alternative 2, output just 2 store insns, not 3.
+
+	* dbxout.c (dbxout_symbol): Optionally go to .data for
+	a static file-scope variable.
+	* tm-vax.h: Define DBX_STATIC_STAB_DATA_SECTION to request this.
+
+	* varasm.c (output_constant, force_const_mem):
+	ASM_OUTPUT_DOUBLE_INT now takes rtx as argument.
+
+	* gvarargs.h [__NeXT__]: Undefine macros defined by stdardg.h.
+	Define _VARARGS_H.
+
+	* stddef.h (size_t): Don't define it if _SIZE_T macro is defined.
+	(NULL): Undef any previous defn.
+
+	* cexp.y (NULL): Don't define if already defined.
+
+	* emit-rtl.c (force_next_line_note): New function.
+	* stmt.c (expand_function_start): Call that just before returning.
+
+Wed Sep 20 01:22:16 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y (asm_clobbers):
+	Allow string concatenation: call combine_strings.
+
+Mon Sep 18 00:04:06 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (expand_call): If calling const function, don't defer
+	pops for this call.
+
+	* c-parse.y (yylex): When float constant ends in `f',
+	actually truncate to a single-float.
+
+Sun Sep 17 01:36:43 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gcc.c (SWITCH_TAKES_ARG): -A takes an arg.
+	(link_spec): Inhibit start files when -A.
+
+	* convex.md (call, call_value): Supply dummy arg to RETURN_POPS_ARGS.
+
+	* gnulib2.c (__fixunsdfdi): After removing top half, A can be neg.
+	(__cmpdi2, __ucmpdi2): Was misusing macros HIGH and LOW--
+	use .s.high and .s.low to extract words from long_long.
+
+	* Makefile (gnulib2): Run `./gcc'.
+
+	* Makefile (float.h): Use `make', not `$(MAKE)'.
+	(hard-params.o): Use `$(srcdir)' in deps as in commands.
+
+	* out-tahoe.c (output_move_double): Handle constant operand 1.
+
+Sat Sep 16 01:15:24 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (emit_reload_insns): Put death note for input reload reg
+	even if reload was inherited.
+
+	* out-i860.c (output_block_move): Typo loading size of block.
+
+	* m68k.md (dbra patterns): Do CC_STATUS_INIT.
+
+	* cse.c (fold_rtx): Check GET_MODE_CLASS before floating negate.
+
+Fri Sep 15 00:39:44 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* combine.c (subst): Don't combine (subreg (mem))
+	if subreg's mode is wider than mem's mode.
+
+Thu Sep 14 04:33:51 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Makefile (clean): Delete temp files used in making gnulib.
+
+	* tm-next.h (LINK_SPEC): Pass -Z and -seglinkedit options.
+
+Tue Sep 12 01:06:39 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stor-layout.c (layout_type): Ignore MAX_FIXED_MODE_SIZE for ints.
+
+	* mips.md (cmpsi + bleu peephole): Should output unsigned insn.
+
+	* expmed.c (store_bit_field, extract_bit_field): If loading mem
+	into reg for bit field insn, don't use a larger mode than insn wants.
+
+	* Makefile (stamp-gnulib2): Depend on gcc, cc1, cpp to avoid
+	wrong order of making when parallel.
+
+	* Makefile (float.h): Do use $(MAKE) to run recursive make.
+
+Mon Sep 11 00:49:11 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (main): Test for missing arg after -o, etc.
+
+	* tm-next.h: Nearly completely new.
+
+	* gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move after config.h.
+
+	* cccp.c: Cast some args to strcpy and strcat.
+
+	* genoutput.c (error): Declare arg S.
+
+	* tm-pyr.h, pyr.md, out-pyr.c, xm-pyr.h: New files.
+	* config.gcc: New item for pyr.
+
+	* gvarargs.h: If __pyr__, use va-pyr.h.
+
+Sun Sep 10 00:48:43 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (inc_for_reload): Really return the first of the insns.
+
+	* stor-layout.c (build_int): Memoize size nodes for sizes <= 32.
+
+	* loop.c (check_dbra_loop): Don't reverse a biv that is used
+	in between its update and the loop endtest insn.
+
+Sat Sep  9 02:10:49 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stor-layout.c (genop): Don't use `combine' for nonexplicit constants.
+	Handle some identity elements, etc., directly.
+	(layout_basetypes): Function deleted.
+	(layout_record): Ignore any TYPE_DECLs in the fieldlist.
+	Don't do PCC_BUTFIELD_TYPE_MATTERS hack on field with ERROR_MARK type.
+	(layout_union): Delete error check for base types.
+	Ignore any TYPE_DECLs in the fieldlist.
+	(layout_type): Copy layout info directly into all variants of type.
+	Delete unused local `x'.
+
+	* mips.md (movdi): Handle constant source operand.
+	(movsi): Some output code moved to output_load_immediate.
+	* out-mips.c (output_load_immediate): New function.
+
+	* config.gcc (iris): Use tm-iris.h and xm-iris.h.
+
+	* integrate.c (copy_for_inline): Copy all nonconstant MEM addresses.
+
+	* tm-3b1.h (ASM_OUTPUT_SPACE): New override defn, to output explicit
+	bytes of 0 if in text segment.
+
+Fri Sep  8 19:15:08 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* combine.c (try_combine): Don't do i3dest stuff if i3 isn't a SET.
+
+Thu Sep  7 00:16:32 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (function_cannot_inline_p): Fn is "not even close"
+	only if > 3 * max_insns.
+
+	* toplev.c (fatal_insn_not_found): New fn.
+	* genextract.c (main): Make insn_extract call that fn.
+
+	* integrate.c (expand_inline_function): Don't abort about bad offset
+	in a parm whose type is error_mark_node.
+	Make another syntax level to hold parm destructors.
+
+	* tm-mips.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE):
+	Increment push_loc after, not before, each reg save or restore.
+	When storing reg 9 or 29, use offset tsize-4.
+	Make tsize larger by 4 initially.
+	(STARTING_FRAME_OFFSET): -8, not -4.
+
+	* gcc.c (choose_temp_base): Make use of TMPDIR and P_tmpdir
+	if they exist.
+
+	* toplev.c, gcc.c, cccp.c, gen*.c (fancy_abort):
+	New function which can be used to replace `abort'.
+
+	* toplev.c (main): Save argv, argc in save_argv, save_argc.
+
+	* jump.c (delete_insn): Always advance NEXT across deleted insns,
+	in case not optimizing.  Fixes setting current_function_returns_null.
+
+	* symout.c: Include stddef.h with <...>.
+
+Wed Sep  6 00:39:35 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gcc.c (find_exec_file): Was using `argbuf[0]' where wanted `prog'.
+
+	* combine.c (combine_instructions): Dont call record_dead_and_set_regs
+	if insn has become a NOTE.
+
+	* reload.c (combine_reloads): Update reload_when_needed.
+
+	* jump.c (delete_insn): If delete label on ADDR_VEC, delete table too.
+	(jump_optimize): If ADDR_DIFF_VEC label has 1 ref, delete it and table.
+
+	* gunlib2.c (__fixunsdfdi, __floatdfdi): Make the long long,
+	and/or its two halves, unsigned.
+
+	* reload1.c (reload): When setting double_reg_address_ok,
+	require it to be offsettable.
+	* out-sparc.c (output_fp_move_double): Now safe to use std
+	for all reg+reg addresses.
+
+	* vax.md: Add another simplified-casesi pattern for operand 0 constant.
+
+	* cse.c (fold_rtx): Don't truncate VAL at end if WIDTH is 0.
+	Don't alter WIDTH for that purpose based on the operands.
+
+	* stmt.c (warn_if_unused_value): && or || is ok if 2nd op has effect.
+
+	* c-parse.y (ALIGNOF unary_expr): Find a larger value if possible.
+
+	* reload.c (combine_reloads): Don't combine an output address reload.
+	(find_reloads): Call combine_reloads after setting reload_when_needed.
+	(find_reloads_address): Update OPERAND if copy the operand.
+
+	* cccp.c (macroexpand): Missing arg no error in 1-arg macro if -trad.
+
+Tue Sep  5 14:12:23 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload.c (find_dummy_reload): Don't use the output reg if it is
+	a fixed reg which can overlap with other regs.
+
+	* cse.c (exp_equiv_p): Two vectors must have same length.
+
+	* tree.def (WITH_CLEANUP_EXPR): Print-name string was wrong.
+
+	* optabs.c (expand_fix): Undo previous change (unsigned conversion).
+	It doesn't work.
+
+	* gcc.c: Pass -i option to cpp.  It takes an arg.
+
+	* cccp.c (cplusplus_include_defaults) [VMS]: Typo in array indices.
+
+	* Makefile (gnulib): Create it in tmpgnulib, then rename at the end.
+
+	* i860.md (movdi from constant pattern): Fix `st' opcode typos.
+
+	* Makefile (hard-params*): Use CCLIBFLAGS, not CFLAGS.
+
+Fri Sep  1 03:43:50 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-i386gas.h (ASM_OUTPUT_ALIGN): .align arg isn't a log, in gas.
+	(ASM_OUTPUT_ALIGN_CODE): Align labels, etc. to 4-byte boundary.
+
+	* integrate.c (save_for_inline): Delete NOTE_INSN_DELETED notes.
+
+	* Makefile (clean): Delete dbr and jump2 dumps.
+
+	* Makefile (gnulib, gnulib2): Compile in main dir, not libtemp subdir.
+	This avoids trouble with -I options, etc.
+
+Thu Aug 31 15:07:19 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (emit_reload_insns):
+	Be specific moving REG_DEAD notes to an output reload.
+	Sometimes move them to output-operand-address reloads.
+
+	* out-sparc.c (output_fp_move_double): Very cautious about std.
+	Use it only for something visibly aligned, or for an array element.
+
+	* cccp.c (main) [VMS]: Remove dirs and extension from PROGNAME.
+	(pfatal_with_name) [VMS]: Return VMS system call error code as status.
+	(cplusplus_include_defaults) [VMS]: Add GNU_GXX_INCLUDE.
+
+	* xm-vms.h (FATAL_EXIT_CODE): Now (44 | 0x10000000).
+
+	* expr.c (do_store_flag): Allow more values of STORE_FLAG_VALUE.
+
+	* gnulib2.c (__fixunsdfdi): Explicitly cast doubles to `long int'
+	to avoid infinite recursion.
+
+Wed Aug 30 13:28:54 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* loop.c (skip_consec_insns): Skip NOTEs.
+
+	* loop.c (general_induction_var): If G or V is a nonreplaceable giv,
+	give up.  If G is allocated here, consider it replaceable.
+
+	* stupid.c: Make uid_suid, reg_where_born and reg_where_dead
+	vectors of ints, not short.
+
+Tue Aug 29 00:21:13 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-iris.h: Fix typo in formfeed char.
+
+	* out-i860.c (singlemove_string): Add missing `.l' to `st', `ld'.
+
+	* loop.c (general_induction_var): Don't set G from 2nd op. of MINUS,
+	since that would negate the result.
+
+Mon Aug 28 00:16:36 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* dbxout.c (dbxout_symbol): When we need a pointer type, don't
+	record it in TYPE_POINTER_TO, lest it not live as long as its target.
+
+	* tm-hp9k320.h (CPP_PREDEFINES): Delete __hp9000s300 and _HPUX_SOURCE.
+
+	* Makefile (gnulib): Deleted stamp-gnulib2 in wrong dir.
+	(hard-params.o): Copy it into current dir before compiling.
+	(STAGESTUFF): Include the stamp-*.[ch] files.
+
+Sun Aug 27 13:59:39 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* out-i860.c (output_size_for_block_move): Typo in CC_KNOW_HI_R31.
+
+	* integrate.c (expand_inline_function): Ignore insns to set value reg
+	if we don't want the value.
+
+	* varasm.c (make_function_rtl, make_decl_rtl): Use DECL_ASSEMBLER_NAME.
+
+	* Makefile (stamp-gnulib2): Don't explicitly delete old members,
+	just replace them.
+
+	* m68k.md, alliant.md (trunchiqi): Use movew if moving from memory
+	or from a const_int.
+
+	* integrate.c (expand_inline_function): Set first_parm_offset
+	later on, after computing the args, in case those args
+	contain inline function calls.
+
+	* alliant.md (movqi): Like recent change in m68k.md.
+
+Sat Aug 26 00:26:03 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* tm-hp9k320.h (CPP_PREDEFINES): Take out m68k and mc68000.
+	* tm-news.h (CPP_PREDEFINES): Add mc68000.
+
+Fri Aug 25 15:37:35 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* optabs.c (expand_fix): Can convert to unsigned int
+	by subtracting 2**(N-1), converting to signed, and adding 2**(N-1).
+
+	* reload.c (find_reloads_address): For out-of-range stack slot,
+	reload the displacement into a reg.
+	(find_reloads_toplev): For subreg of a reg with a reg_equiv_address,
+	turn the whole thing into a memref.
+
+Thu Aug 24 14:07:03 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* c-decl.c (grokdeclarator): If function is declared `extern inline',
+	set current_extern_inline.
+	(start_function): In that case, set TREE_EXTERN in function decl.
+	* toplev.c (rest_of_compilation): In that case, don't really compile.
+	(compile_file): Don't output such functions at the end either.
+
+	* c-typeck.c (build_function_call): Do set NAME if we have one.
+
+	* Prevent any variability in results of qsort.
+	* stupid.c (stupid_reg_compare): Compare by regno as last resort.
+	* global-alloc.c (allocno_compare): Same idea.
+	* local-alloc.c (qty_compare_1): Same idea.
+	* reload1.c (hard_reg_use_compare, reload_reg_class_lower): Same idea.
+
+	* cccp.c (macroexpand): If read one arg, but it's whitespace,
+	consider that 0 args for checking number of args.
+	Improve plurals in error messages.
+
+	* expr.h (inhibit_defer_pop): New name for current_args_size,
+	now declared here.
+	(NO_DEFER_POP, OK_DEFER_POP): Moved here.
+	* expr.c: Names related to current_args_size renamed.
+	(clear_current_args_size): Deleted.
+	* stmt.c (expand_function_start): Init inhibit_defer_pop here.
+
+	* stmt.c (expand_start_stmt_expr): Do NO_DEFER_POP.
+	(expand_end_stmt_expr): Do OK_DEFER_POP, and don't do deferred pops.
+
+	* Makefile (c-parse.tab.c): Pass -o option to Bison.
+
+Wed Aug 23 23:14:06 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* expmed.c (store_bit_field, extract_bit_field):
+	Use GET_MODE_WIDER_MODE to scan possible modes for bestmode.
+
+	* Makefile (stamp-gnulib2): Discard error messages from `ar d'.
+
+Tue Aug 22 00:31:51 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* final.c (output_source_line): In COFF, don't output `.ln 0'.
+
+	* Makefile (stamp-gnulib2): Depend on gnulib.  For parallel make.
+
+	* stmt.c (uninitialized_vars_warning): Don't crash if DECL_RTL is 0.
+
+	* i386.md (truncdfsf2): Pay attention whether stack top is dead.
+
+Mon Aug 21 22:02:40 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* reload1.c (choose_reload_regs): Don't use regno uninitialized,
+	in the code that does find_equiv_reg.
+
+Sun Aug 20 00:06:47 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* m68k.md (movqi): Was outputting bad code for areg->mem and mem->areg.
+
+	* explow.c (memory_address): Handle a hard reg in wrong reg class.
+
+	* stmt.c (expand_function_end): Set REG_FUNCTION_VALUE_P in return
+	reg when returning address of structure value block.
+
+	* integrate.c (save_for_inline): Preserve integrated bit on insns.
+
+Sat Aug 19 14:20:07 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* combine.c (subst): Don't change (subreg:M (mem:N ...)) to 
+	(mem:M ...) if address is mode-dependent.
+
+	* config.gcc: Copy and alter Makefile for any srcdir except `.'.
+	In that case, make a .gdbinit as well.
+
+	* sparc.md (andcbsi3, iorcbsi3, xorcbsi3): These are not commutative.
+
+	* vax.md (cmpv and cmpzv patterns): Use COMPARE, not MINUS.
+
+Fri Aug 18 12:24:52 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)
+
+	* alliant.md (movqi): Change move to mov in assembler code.
+
+	* integrate.c (expand_inline_function):
+	Handle args passed in regs and copied to slots reached via arg ptr.
+
+	* out-sparc.c (output_delayed_branch):
+	Do alter_subreg on operands of delay insn.
+
+	* reload1.c (choose_reload_regs): Look for a reg to share
+	before one that we won't share.
+
+	* expr.h: Define OPTAB_MUST_WIDEN.
+	* optabs.c (expand_binop): Handle that case.
+	* expmed.c (expand_shift): Use that when widening lshift to ashift.
+
+	* optabs.c (emit_cmp_insn): Use CONST0_RTX, not individual vars.
+
+	* gnulib2.c (lsh*di3, ash*di3): Return right away if count is zero.
+	Otherwise tried to shift by 32.
+	Also replace constant 32 by something symbolic.
+
+	* final.c (output_source_line): Output line number in COFF
+	even if wrong file.
+
+Thu Aug 17 15:16:34 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)
+
+	* Makefile (version.o): Make this a target; specify source file.
+	(obstack.o): Likewise.
+
+	* config.gcc (i860): New alternative.
+
+	* i860.md (movstrsi): Record the alignment as operand 3.
+	Renumber following (internal) operands.
+	* out-i860.c (output_block_move): Rewrite as in out-sparc.c.
+	(output_size_for_block_move): Likewise.  And don't
+	subtract alignment from the size.
+
+Wed Aug 16 13:27:12 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)
+
+	* loop.c (combine_movables): Don't combine zero-extend
+	registers that live outside the loop.
+
+	* integrate.c (expand_inline_function): Use copy_to_mode_reg
+	to set up this_struct_value_rtx, to handle sums right.
+
+	* Makefile: Use $(srcdir) in bison output files used as deps.
+	Supply some missing deps.
+	(*.info, doc): *.info files go in srcdir.
+
+Tue Aug 15 00:11:12 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)
+
+	* i860.md, tm-i860.h, out-i860.c: New files.
+
+	* c-decl.c (duplicate_decls): Fix bug determining whether NEWDECL
+	is a definition or just a decl.
+	Combine code to preserve various things from old definition
+	through a declaration.
+
+	* config.gcc: Scan all args at beginning, setting variables.
+	Arg of form -srcdir=... sets srcdir explicitly.
+	srcdir now doesn't contain a slash, and is used with a slash.
+
+	* Makefile (install): Copy header files and gcc.1 from srcdir.
+	But copy float.h from current dir.  (Remove that from USER_H.)
+	(various): Use new variable INCLUDES to get the -I options.
+	Add -I. at the beginning of these.
+	(gnulib, gnulib2): Likewise, use SUBDIR_INCLUDES.
+	Also, get source file from srcdir.
+	Also, depend on $(CONFIG_H).
+	(alloca.o): Get alloca.c from srcdir.
+
+	* reload1.c (emit_reload_insns): Bug in last change:
+	don't fail to set this_reload_insn.
+
+	* Makefile (Bison rules): Specify $(srcdir) for target and source.
+	(Explicit C rules): Specify $(srcdir)/ for source in commands.
+	Use sed to eliminate `./' in normal case.
+	(insn-*.c): Use $(srcdir) to run move-if-change.
+
+	* config.gcc: Check . and .. for the sources.
+	If in .., use that when making links.
+	Also, copy Makefile, alter srcdir in it, and add a VPATH.	
+
+	* stmt.c (expand_end_case): When converting CONST_INT index
+	to an INTEGER_CST, sign-extend if signed type.
+
+Mon Aug 14 13:51:08 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)
+
+	* c-decl.c (duplicate_decls): Warn for qualifier mismatch
+	only if pedantic; don't consider it a type mismatch.
+	Merge the qualifiers of the two decls if the types match.
+
+	* expmed.c (store_bit_field): For insv, memref displacement
+	always counts in bytes, regardless of unit fetched.
+	When checking predicate of op0, accept any mode.
+
+	* optabs.c (expand_float): One call to can_float_p had args backwards.
+
+	* loop.c (check_dbra_loop): Set the JUMP_LABEL of the new jump insn.
+	Increment label's use count rather than storing 2.
+
+	* Makefile: Instead of $<, which fails in certain makes,
+	use $@ and then substitute in the name with sed.
+
+	* out-sparc.c (output_scc_insn): Handle CC_REVERSED for ordered tests.
+	Use orcc insns to store the result and set cc's for it.
+
+	* sparc.md (scc combination patterns):
+	Use operands[0] as basis for recorded cc value.
+
+	* gnulib2.c (floatdidf, fixdfdi, fixunsdfdi): New functions.
+
+	* gnulib.c (floatdidf, fixdfdi, fixunsdfdi): Deleted.
+	(union longlong, union double_di): Deleted.
+	(HIGH, LOW): Deleted.
+	These were deleted because most did not handle full range of DI
+	and they didn't use the right calling convention for DI.
+
+Sun Aug 13 13:06:45 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)
+
+	* c-typeck.c (comptypes): Qualifiers must match.
+	(Was already true for scalars.)
+	Also, array elt qualifiers must match.
+
+	* tm-apollo68.h (STRUCT_VALUE): Make it 0.
+	(This was done before and lost.)
+	* out-i386.c (function_epilogue): Use ret $4 to pop structure address.
+	(This was done before and lost.)
+
+	* out-i386.c (call_top_dead_p): Don't fail to check
+	the rtx code of the insns themselves.
+	(This was done before and lost.)
+
+	* out-sparc.c (output_block_move): If align is 8, make it 4.
+
+	* typeclass.h: New file.
+	* expr.c: Include it.
+	(expand_builtin): Use those codes in __builtin_classify_type.
+
+	* Makefile (all, lang-c): Reinstall gnulib2.
+
+	* Makefile (gnulib2): Don't give up if `ar d' fails.
+
+	* expr.c (emit_library_call): New 2nd arg NO_QUEUE.
+	All callers changed to pass it.
+	* optabs.c (expand_binop, expand_unop): Don't call emit_queue.
+	Instead, pass 1 for NO_QUEUE to emit_library_call.
+
+Sat Aug 12 12:05:22 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)
+
+	* reload1.c (emit_reload_insns): Decision for where to put input
+	reload insn is now common to ordinary case and auto-increment.
+	Likewise, updating these positions afterward.
+
+	* stmt.c (assign_parms): Treat last named arg as nameless.
+	* expr.c (expand_call): Likewise.
+
+	* explow.c (copy_to_mode_reg): Use force_operand for PLUS or MULT.
+	(copy_addr_to_reg): Use copy_to_mode_reg.
+
+	* expmed.c (store_bit_field): Handle case where insv rejects memrefs.
+
+	* tm-convex.h (ASM_OUTPUT_ALIGN): Magic to handle the fact
+	that this is not called when LOG is 0.
+
+Fri Aug 11 16:39:51 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)
+
+	* emit-rtl.c (get_lowpart): For multi-word, in error check,
+	test the unit size of the containing mode.
+
+	* cccp.c (macroexpand, dump_all_macros): Return void.
+	(macroexpand): Cast sprintf arg to char*.
+	(error, warning, error_with_line): Declare first arg char*.
+
+Thu Aug 10 21:42:13 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)
+
+	* expr.c (expand_call):
+	Use force_operand to copy arithmetic to register.
+
+	* dbxout.c (dbxout_symbol): Go back to N_FUN for const variable.
+
+	* integrate.c (expand_inline_function): Use proper machine mode
+	for a structure value in memory at address passed by caller.
+
+Wed Aug  9 15:21:36 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* config.gcc: Delete unnecessary variable assignments in case stmt.
+	(isi68-nfp): New alternative.
+
+	* combine.c (try_combine): Don't substitute for a register
+	which is being explicitly clobbered.
+
+	* This change was requested for C++.
+	* varasm.c (decode_reg_name, make_decl_rtl): Arg ASMSPEC now char *.
+	* toplev.c (rest_of_decl_compilation): Likewise.
+	* c-decl.c (finish_decl): Change call to rest_of_decl_compilation.
+
+	* tree.h (struct tree_decl): Pack machine_mode into 8 bits.
+
+	* explow.c (memory_address, copy_to_reg):
+	Use force_operand to copy arithmetic to register.
+
+	* tm-isi68-nfp.h: New file.
+	* tm-isi68.h: Allow overriding TARGET_DEFAULT, and let that
+	change CPP_SPEC and LINK_SPEC.
+	(ASM_FILE_START): No `.globl fltused' if soft-float.
+
+Tue Aug  8 21:50:52 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c (const_hash): For constructor, mask TREE_TYPE to HASHBITS
+	bits and take modulo, so we don't get negative numbers.
+
+	* varasm.c (record_constant_1, compare_constant_1):
+	Record and compare the width of an integer.
+
+	* varasm.c (assemble_function, assemble_variable, get_or_assign_label):
+	(force_const_mem): Don't call ASM_OUTPUT_ALIGN if boundary is 1.
+
+	* c-decl.c (duplicate_decls): Consider const and volatile as part of
+	type when checking for match and when installing new type into OLDDECL.
+
+	* expr.c (do_store_flag): Make sure target fits operand predicate.
+	Also, omit the AND insn when true-value is 1
+	and the mode we get is wider than the one we want.
+
+	* genrecog.c (main): Make insn-recog.c include real.h.
+
+Mon Aug  7 16:58:56 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* genemit.c (main): Define `operands' as `emit_operands',
+	not `recog_operands'.
+
+	* reload1.c (emit_reload_insns): Don't copy back a dead output reg.
+
+Sun Aug  6 13:56:53 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sdbout.c (plain_type_1, sdbout_one_type): Use the main variant.
+	(sdbout_type_fields): No need to check TREE_ASM_WRITTEN here,
+	since sdbout_one_type does that.
+
+	* expr.c (do_store_flag): Ensure the CLOBBER doesn't clobber an input.
+
+	* fold-const.c (fold_convert): Attempt to avoid overflow
+	when converting real to integer.  Use unsigned conversion for
+	low part; always convert as positive and then change sign;
+	subtract high part before converting low part.
+	Also, check for real values out of range for chosen int type;
+	warn and do not convert.
+
+	* tm-hp9k320.h (CPP_SPEC) [not HPUX_ASM]: Don't define mc68000 here.
+	(CPP_PREDEFINES): Remove mc68k, add m68k and mc68000.
+	[HPUX_ASM]: Define CPP_SPEC here as in the other case,
+	but add __HPUX_ASM__ to each alternative.
+
+	* tm-m68k.h (FUNCTION_EPILOGUE): Call new hook FUNCTION_EXTRA_EPILOGUE.
+	* tm-altos3068.h (FUNCTION_EXTRA_EPILOGUE): Define it.
+
+	* Makefile: Use $< wherever appropriate.
+	Also put definitions of customization vars before the comments
+	saying how to override them.
+
+Sat Aug  5 14:15:39 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* i386.md (sne): Typo in opcode name.
+
+	* tree.h (struct tree_identifier): Delete redundant/unused error_locus.
+
+Fri Aug  4 00:04:10 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c (const_hash, compare_constant_1, record_constant_1):
+	Compare types only for record constructors, not for array constructors.
+
+	* dbxout.c (dbxout_parms): When outputing parm from home in local slot,
+	with address from the RTL, don't do big-endian correction on it.
+
+	* c-typeck.c (build_unary_op): Do default conversion for unary +.
+
+	* cccp.c (rescan): Accept comments between macro and its args.
+
+	* c-decl.c (lang_decode_option): -traditional implies writable strings.
+
+	* cccp.c (trigraph_pcp): Make warning msg more accurate.
+
+	* c-typeck.c (c_expand_asm_operands): Delete the default promotion
+	which was inserted mysteriously since 1.35.
+
+	* global-alloc.c (global_conflicts): Allocate regs_set only once.
+	Make it twice as big since clobbers are stored twice.
+
+	* sparc.md (block move patterns): Record and use alignment operand.
+	* out-sparc.c (output_block_move): Get alignment from there.
+	(output_size_for_block_move): Greatly simplified.
+
+	* tm-i386v.h (PCC_BITFIELD_TYPE_MATTERS): Define it.
+
+	* stor-layout.c (layout_record): Anonymous bitfields don't affect
+	overall structure alignment, in PCC_BITFIELD_TYPE_MATTERS case.
+
+	* loop.c (strength_reduce): Prevent hard reg from becoming biv or giv.
+
+	* combine.c (subst): Simplify (eq (neg ...) (const_int 0)).
+
+Thu Aug  3 13:08:05 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cse.c (fold_rtx): For (op var const) special cases, also check 
+	for constant as first argument.
+
+	* c-decl.c (pushtag): For global_binding_level, make permanent nodes.
+
+	* expr.c (do_store_flag): Put the CLOBBER before the comparison.
+
+	* expr.c (emit_push_insn): Conditionalize recent changes
+	on no FIRST_PARM_CALLER_OFFSET, so they don't happen on sparc.
+
+	* out-sparc.c (gen_scc_insn):
+	Don't be confused by CLOBBER emitted by do_store_flag.
+	Skip past such insns looking for last_insn.
+	Don't alter last_insn; instead, patch it to a NOTE and emit new insn.
+
+	* varasm.c (const_hash, compare_constant_1, record_constant_1):
+	For a CONSTRUCTOR, hash/compare/record type as well as elts.
+
+	* cse.c (cse_insn): July 18 change was wrong.
+	Now, invalidate at the beginning any regs explicitly clobbered
+	so they will not be substituted for if they appear as inputs.
+	* sparc.md (movstrsi): Copy addresses to temp regs, then use them.
+
+	* loop.c (record_giv): When comparing life spans for setting
+	->forces, use luids consistently, not uids.
+
+	* sparc.md (ashlsi3, ashrsi3, lshrsi3): Truncate constants mod 32.
+
+Wed Aug  2 17:50:30 1989  Richard Stallman  (rms at sugar-bombs)
+
+	* mips.md (patterns to move a subreg): Deleted.
+
+Sun Jul 30 19:23:13 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gcc.c (process_command): Skip `-b' like `-B', in 2nd scan.
+
+	* xm-sunos4.h: Deleted.
+	* tm-sparc.h, tm-sun3.h: Define LINK_SPEC here instead.
+	* tm-sun4os3.h: Undef it here.
+	* tm-sun3os3.h, tm-sun3os3nf.h: New files to undef LINK_SPEC.
+	* config.gcc: Use those new files where needed.
+
+	* config.gcc: Delete sun3-fpa and sun3-os4-fpa.
+	* tm-sun3-fpa.h: Deleted.
+
+	* cccp.c (do_include): Mention even non-ex files for -M.
+
+	* out-mips.c (addr_compensate): Handle HImode.
+	* mips.md (Set HI from subreg of SI rule):
+	Allow operand in memory.
+
+	* mips.md (cmpqi, cmphi): Patterns deleted.
+	(cmpsi, cmpsf, cmpdf): Change predicates to register_operand.
+
+	* cexp.y (rule for ?:): Result is unsigned if either operand is.
+
+	* expr.c (emit_push_insn): If PARTIAL > 0, load the partial regs
+	at the end, in case the rest of the push does a function call.
+
+	* reload1.c (alter_frame_pointer_addresses):
+	After altering a PLUS, re-fetch CODE before scanning subexps.
+
+	* stmt.c (assign_parms): Don't copy the arg pointer value
+	if it is also the frame pointer.  If we do copy it,
+	inhibit REG_EQUIV notes for parms copied into pseudo regs
+
+	* integrate.c (copy_for_inline, copy_rtx_and_substitute):
+	Set up filename and lineno fields of copy of ASM_OPERANDS.
+
+Sat Jul 29 18:58:49 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (expand_inline_function): Handle struct-value-addr
+	passed in memory just like that passed in reg:
+	in either case, translate the pseudo-reg made in
+	expand_function_start.
+	(function_cannot_inline_p): Permit inlining in that case.
+	But reject it if using pcc-style return convention.
+
+	* stor-layout.c (layout_type): Consider STRICT_ALIGNMENT
+	for ARRAY_TYPE just as for RECORD_TYPE.
+
+Wed Jul 26 12:54:59 1989  Richard M. Stallman  (rms at mipos3)
+
+	* cse.c (fold_rtx): If WIDTH is zero for binary operator,
+	look at the modes of the original operands.
+
+	* cse.c (cse_insn): Set prev_insn_explicit_cc0, for (set (cc0) INT).
+	(predecide_loop_entry): Likewise.
+	(fold_rtx): Look at it, for (if_then_else (cc0) ...).
+
+	* expr.c (expand_builtin): Pass back return value from
+	__builtin_saveregs.
+
+	* stmt.c (assign_parms): Allow arg pointer reg not to be fixed.
+	If it is not, copy it to a pseudo reg and use that later on.
+
+Tue Jul 25 15:42:04 1989  Richard M. Stallman  (rms at mipos3)
+
+	* expr.c (expand_builtin): New builtin __builtin_classify_type.
+	* tree.h, c-decl.c: Additional support.
+
+	* flow.c (mark_used_regs): Treat arg pointer like stack pointer.
+
+	* expr.c (emit_library_call):
+	Pass (tree)0 as TYPE arg to FUNCTION_ARG, etc.
+
+Mon Jul 24 11:18:10 1989  Richard M. Stallman  (rms at mipos3)
+
+	* loop.c (regs_match_p): Fix braino.
+
+	* integrate.c (copy_for_inline, copy_rtx_and_substitute):
+	Make ASM_OPERANDS constraint vector be shared like operand vector.
+
+	* xm-iris.h: New file.
+
+	* Makefile (stage4): New target.
+
+	* gnulib2.c (badd, bsub, bmul, bdiv): If want long value from
+	arithmetic, widen the operands first.
+	(__div_internal aka bdiv): Rename to __bdiv.
+
+	* sparc.md (seq combination patterns): Fully initialize cc_status.
+
+	* expr.c (emit_push_insn): Like July 19 change, for BLKmode.
+
+	* stmt.c (expand_function_end): Stack-restore for alloca
+	is now done after the return_label.
+
+	* loop.c (scan_loop): Set MAYBE_NEVER for conditional jump to loopbeg.
+
+	* integrate.c (copy_rtx_and_substitute): Allow mapping of hard regs.
+	(expand_inline_function): Always create parm_map.
+	Handle structure value that way if nec. even if no parms.
+	Otherwise, find the pseudo used in the function to hold the
+	structure address, and map it to a new pseudo.
+
+	* expr.c (expand_call):
+	Use mark_addressable to make FNDECL addressable.
+	* c-typeck.c (mark_addressable): No longer static.
+
+	* cse.c (cse_insn): Modify last change: don't canon_reg
+	for hard regs inside clobbers.
+
+	* expr.c (expand_assignment): ALIGN arg to store_field comes from
+	the structure, not from the value stored.
+
+Fri Jul 21 16:23:45 1989  Richard M. Stallman  (rms at mipos3)
+
+	* stmt.c (warn_if_unused_value): Don't warn for a cast
+	around a MODIFY_EXPR.
+
+	* tm-hp9k320.h (PCC_STATIC_STRUCT_RETURN): Undefine it.
+	(CPP_PREDEFINES): Add some.
+
+	* combine.c (simplify_and_const_int):
+	Simplify (and (ashiftrt (zero_extend FOO) N) M).
+
+	* optabs.c (expand_binop): When widening,
+	for some operations we need not actually extend.
+
+Thu Jul 20 16:16:35 1989  Richard M. Stallman  (rms at mipos3)
+
+	* Makefile (insn-emit.o): Depend on insn-codes.h.
+
+	* stmt.c (check_for_full_enumeration_handling): 
+	Handle all cases for TYPE_NAME of enum type.
+
+Wed Jul 19 17:00:39 1989  Richard M. Stallman  (rms at mipos3)
+
+	* fold-const.c (fold_convert): Don't fail to force_fit_type.
+
+	* expr.c (emit_push_insn): When pushing only part of scalar on stack,
+	adjust stack offset not to count the words not pushed.
+
+	* stmt.c (expand_function_end): Always put return structure address
+	in return register.
+
+	* c-typeck.c (process_init_constructor): Assume 0 for nameless field.
+
+	* recog.c (general_operand, memory_operand):
+	Check validity of mem address using the mode of the MEM.
+
+	* fixincludes: When calling egrep, use redirect, not -s.
+
+Tue Jul 18 11:18:55 1989  Richard M. Stallman  (rms at mipos3)
+
+	* Makefile (bootstrap*): Pass value of libdir down.
+
+	* cse.c (cse_insn): Do canon_reg on any CLOBBERs and USEs.
+
+	* cse.c (cse_insn): Don't use no_labels_between_p to check
+	for jump to following label; find following label and compare.
+
+	* combine.c (try_combine): Don't substitute into subreg(x)=y
+	if modes of x and y are not tieable.
+
+	* out-i386.c (call_top_dead_p): Don't fail to check
+	the rtx code of the insns themselves.
+
+	* i386.md (tstsf, tstdf): Don't discard TOS if not dead.
+
+	* stupid.c: Don't use regs with PRESERVE_DEATH_INFO_REGNO_P
+	for pseudos which live across jumps or labels.
+	(stupid_life_analysis): Update last_jump_suid, last_label_suid.
+	(stupid_mark_refs): Use those to set reg_crosses_blocks.
+	(stupid_find_reg): Check that data, passed from stupid_life_analysis.
+
+	* toplev.c (main): Avoid using caddr_t.
+
+	* mips.md (inverted bgeu peephole): Typo in opcode.
+
+Mon Jul 17 12:29:45 1989  Richard M. Stallman  (rms at mipos3)
+
+	* i386.md (mulb patterns): Turned off due to assembler bug.
+
+	* rtl.c (read_name): Use 0, not NULL, for character.
+
+	* alliant.md (movqi): Typos in mov opcodes.
+
+	* tm-sparc.h, tm-spur.h (CONST_DOUBLE_OK_FOR_LETTER_P):
+	Use CONST_DOUBLE_LOW, etc. 
+
+	* stmt.c (expand_function_end): Check value of EXIT_IGNORE_STACK,
+	not just whether defined.
+
+	* i386.md (seq, etc.): New patterns.
+	* expr.c (do_store_flags): If result is wrong mode, 
+	ensure rest of bits are cleared.
+	Before storing low part of TARGET, emit a CLOBBER for it.
+
+	* i386.md (load address): Use an immediate add if possible.
+
+	* i386.md (ashlsi3): Don't generate leal; shift is faster.
+
+	* Now struct_value_rtx is 0 to treat it as a parm.
+	* expr.c (expand_call): Implement that.
+	* integrate.c (expand_inline_function): Don't freak out.
+	* tm-apollo68.h (STRUCT_VALUE): Make it 0.
+
+	* On 386, called function must pop the structure value address.
+	* tm-i386.h (STRUCT_VALUE): Don't change this.
+	Address is now pushed but not counted as a parm.
+	* out-i386.c (function_epilogue): Use ret $4 to pop that address.
+	* output.h: Declare the current_function_... variables.
+	* final.c: Include output.h.
+
+	* varasm.c (make_decl_rtl): Insert missing `else', validating reg decl.
+
+Fri Jul 14 14:12:17 1989  Richard M. Stallman  (rms at mipos3)
+
+	* out-sparc.c, out-spur.c (output_move_double):
+	Fixed typo, addreg0 => addreg1.
+
+	* c-decl.c (lang_decode_option): Handle -fshort-enums.
+	(finish_enum): In that case, give enum minimum number of bytes.
+	* toplev.c (main): Default flag_short_enums.
+	* toplev.c, flags.h (flag_short_enums, flag_signed_char): 
+	Define those flags here, not in c-decl.c and c-tree.h.
+
+	* i386.md (mulqi3, umulqi3): New patterns.
+
+	* c-convert.c (convert_to_integer): Tighter restrictions on
+	distributing truncation through max, min, and multiplication.
+	If operands were extended from unsigned, make the operation
+	unsigned.
+
+	* cccp.c (main): Fix bug where #include <...>, when -I- was used,
+	failed to search standard dirs and/or searched some dirs
+	intended only for #include "...".
+
+	* tm-mips.h (FUNCTION_PROLOGUE,FUNCTION_EPILOGUE):
+	Increment push_loc after store or load, not before.
+
+Thu Jul 13 11:24:30 1989  Richard M. Stallman  (rms at mipos3)
+
+	* emit-rtl.c (add_insn_after): Don't update last_insn
+	if insn is in a sequence.  Instead, update end of sequence.
+
+	* stmt.c (fixup_var_refs): Update end of stacked sequence.
+
+	* stmt.c (expand_function_start): Set result rtl before assign_parms.
+
+	* optabs.c (emit_unop_insn): Set PREV_INSN after preliminaries.
+
+	* stmt.c (warn_if_unused_value): Do CONVERT_EXPR like NOP_EXPR.
+
+	* stmt.c (expand_function_start): Make sure parm_birth_insn
+	is a NOTE.
+
+	* Makefile (clean): Delete tmp-insn-*.
+
+Wed Jul 12 14:24:12 1989  Richard M. Stallman  (rms at mipos3)
+
+	* i386.md (mulqi3): Restrict operand 2 to `q' reg.
+
+	* reload1.c (choose_reload_regs): Check HARD_REGNO_MODE_OK
+	for regs to be inherited.
+	Also check HARD_REGNO_MODE_OK at end for modes of both
+	reload_in and reload_out as well as reload_mode.
+
+	* Makefile (maketest): Update for config subdir.
+
+Tue Jul 11 16:29:57 1989  Richard M. Stallman  (rms at mipos3)
+
+	* integrate.c (copy_decl_tree): Copy TREE_USED of each LET_STMT.
+
+	* make-cc1.com: Changes by Angel Li.
+	Define variables CC, CFLAGS, LDFLAGS, LIBS.
+	Use LIBR library, not LIB.  Specify a /INC in CFLAGS.
+	Use MCR to run the gen* files.  Add some comments.
+	* make-cccp.com: Similar.
+	* config-gcc.com: New file.
+
+	* stmt.c (assign_parms): Compute parm alignment from passed type.
+
+	* c-typeck.c (actualparameterlist): Instead of truncating
+	and then promoting for PROMOTE_PROTOTYPES, go straight to int.
+
+	* c-parse.y (setspecs): Save old current_declspecs on a stack.
+	(decl, component_decl): Restore from that stack.
+
+Wed Jul  5 15:01:00 1989  Richard Stallman  (tiemann at yahi)
+
+	* tm-aix386.h, xm-aix386.h: New files.
+
+	* loop.c (check_dbra_loop): Handle either test or compare
+	for insn two before loop end; detect and reject anything else.
+
+	* expr.c (expand_call, expand_builtin): If alloca is done,
+	set current_function_calls_alloca.
+	* stmt.c (expand_function_end): If so, generate code to save and
+	restore the stack pointer, if not EXIT_IGNORE_STACK.
+
+	* ns32k.md (movsi): Fixes for moving from fp or sp.
+
+	* tm-mips.h (ASM_OUTPUT_ASCII): Start new .ascii every 256 chars.
+
+Tue Jul  4 11:01:00 1989  Richard Stallman  (tiemann at yahi)
+
+	* reload1.c (choose_reload_targets): Don't depend on
+	reload_spill_index when cancelling invalid inheritance.
+	Also, abort if trying to preserve death info
+	on a spill reg used in operand addressing.
+
+	* fold-const.c (fold): Don't fold "foo"[n] here.
+	* expr.c (expand_expr): Do it here.
+	Handle wide strings correctly.
+
+	* i386.md (movsf,movdf): Disallow mem-mem moves.
+	Enable mem-to-reg moves.
+
+	* c-decl.c (finish_{struct,enum}): Warn if inside parm decls.
+	(in_parm_level_p, declare_parm_level): Record when inside.
+	* c-parse.y (parmlist, parmlist_or_identifiers): Call
+	declare_parm_level.
+
+	* c-decl.c (parmlist_tags_warning): Revise warning message text.
+
+	* tm-hp9k320.h (ASM_SPEC): Pass -V switch to assembler.
+
+	* tm-sun386.h (ASM_START_FILE): Truncate filename to 14 chars.
+
+	* c-typeck.c (decl_constant_value): Use only literal values.
+
+Sat Jul  1 17:29:54 1989  Richard Stallman  (tiemann at yahi)
+
+	* integrate.c (copy_rtx_and_substitute): Don't make nested SUBREGs.
+
+	* stmt.c (expand_function_start): Set new global
+	current_function_returns_pointer.
+
+	* stmt.c (get_frame_size): Return the size, not the offset.
+	* integrate.c (expand_inline_function): When setting FP_DELTA,
+	compensate for this change.
+	* tm-alliant.h,tm-mips.h,tm-sparc.h,tm-tahoe.h
+	(FUNCTION_PROLOGUE,FUNCTION_EPILOGUE): Compensate.
+
+	* out-mips.c (function_arg): Return 0 for BLKmode.
+
+	* tm-mips.h (FUNCTION_INCOMING_ARG): Delete; no register windows.
+	* out-mips.c (function_inarg): Delete; no longer used.
+
+	* mips.md (addsi3): Use register_operand for operands 0,1.
+	(load address): New pattern, following movsi.
+	(fix_trunc*): Use trunc insn, not cvt.
+	(cmpfs + bgt peephole): Operands were backwards in template.
+
+	* gcc.c (main): Record in explicit_link_files which input files go
+	straight to linker.  If linker is not run, complain about them.
+	(execute): Increment execution_count, to show we were called.
+
+	* gcc.c (validate_all_switches): Check ASM_SPEC, CC1_SPEC, etc.,
+	so we find all switches that could be valid.
+
+	* varasm.c (output_constructor): Position fields according to
+	DECL_OFFSET; don't try to compute alignment here.
+
+	* tm-sparc.h (PCC_BITFIELD_TYPE_MATTERS): Define this.
+
+	* reload1.c (emit_reload_insns): Fix stupid error in last change.
+
+	* c-decl.c (duplicate_decls): If redeclaring builtin, give error is
+	type mismatched; otherwise warn only if -W.
+
+	* jump.c (jump_back_p): Verify that PREV is not null.
+
+Mon Jun 26 13:50:28 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (choose_reload_regs): If number of reloads needing
+	spill regs exceeds n_spills, don't inherit any reloads.
+
+	* sdbout.c (sdbout_record_type_name): Dumb error in last change.
+
+	* reload1.c (emit_reload_insns): Extend last change: don't use
+	equiv reg if reg is in use at same stage of insn, either.
+
+Sun Jun 25 00:00:56 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (emit_reload_insns): Don't use an equivalent register
+	to reload from, if that register was used for reloading
+	earlier in this insn.
+
+	* sdbout.c (sdbout_record_type_name): Handle a TYPE_DECL as the
+	type name.  Get rid of TYPE_TAG_NAME as separate macro.
+
+	* optabs.c (emit_cmp_insn): Args to memcmp are addresses, not blocks.
+
+	* reload1.c (choose_reload_regs): Typo, clearing reload_override_in.
+
+	* tm-i386.h: Add register classes SIREG and DIREG.
+	(enum reg_class, REG_CLASS_NAMES): Define class names.
+	(REGNO_REG_CLASS, REG_CLASS_CONTENTS): Define their contents.
+	(REG_CLASS_FROM_LETTER): Define letters `S' and `D'.
+
+Sat Jun 24 00:17:16 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (keep_next_level): New function.
+	(struct binding): New slot `keep' says make a LET_STMT for this level.
+	(pushlevel, poplevel): Implement that.
+	* c-parse.y (stmt exprs): Call keep_next_level.
+
+	* sdbout.c (plain_type_1): Handle REFERENCE_TYPE, METHOD_TYPE.
+	Correct for size less than 0.
+	(plain_type): Correct for size less than 0.
+
+	* global-alloc.c (mark_reg_set): For CLOBBERs, call mark_reg_clobber.
+
+	* reload1.c (order_regs_for_reload): Among regs explicitly used,
+	prefer those used less often.
+
+	* reload1.c (choose_reload_regs): If we find alternate place
+	to reload from, verify it after all reloads assigned.
+	New variable reload_override_in used for this.
+
+	* combine.c (record_dead_and_set_regs): Look inside SIGN_EXTEND and
+	STRICT_LOW_PART for place being set.
+	(subst): When using reg_last_set to find what a register contains,
+	verify the entire register was set.
+
+	* toplev.c (rest_of_decl_compilation): Report invalid register name.
+
+Fri Jun 23 13:19:41 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-hp9k3bsd.h: New file.
+	* config.gcc: New target hp9k320-bsd.
+
+	* gcc.c (record_temp_file): Don't add a name twice to one queue.
+
+	* stmt.c (expand_expr_stmt): Call warn_if_unused_value.
+	(warn_if_unused_value): Code extracted from expand_expr_stmt.
+	Recurse to handle COMPOUND_EXPR.  Don't warn about COND_EXPR.
+
+	* tm-encore.h (DBX_REGISTER_NUMBER): Override tm-ns32k.h;
+	return operand unchanged.
+
+	* reload1.c (emit_reload_insns): Don't use recog_memoized
+	on an asm.
+
+	* jump.c (delete_insn): Update last_insn.
+	* emit-rtl.c (set_last_insn): New function.
+
+	* reload1.c (reload): Put a note at end of insn chain.
+
+	* gcc.c: Put cpp output of .S file into a .s file.
+
+Thu Jun 22 22:14:35 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* optabs.c (expand_binop, expand_unop): Emit queue before library call.
+	It is done within emit_library_call, and cse screws up if there is a
+	queued insn in the middle of a cse-able sequence.
+
+Wed Jun 21 11:57:22 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-mips.h (CPP_PREDEFINES): Define -Dunix.
+
+	* reload.c (combine_reloads): Combined reload needed for entire insn.
+
+	* c-parse.y (yylex): Braino checking for out-of-range escape seq.
+
+	* stor-layout.c (layout_union): Handle PCC_BITFIELD_TYPE_MATTERS.
+	(layout_struct): Don't let a bitfield cross the storage unit
+	of its type, if PCC_BITFIELD_TYPE_MATTERS.
+
+Tue Jun 20 00:03:48 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c (get_or_assign_label): Let CONSTANT_ALIGNMENT specify
+	alignment of the constant.
+	CONSTANT_ALIGNMENT is a new optional macro.
+
+	* varasm.c (force_const_mem, get_or_assign_label):
+	Make buffer bigger.
+
+	* toplev.c (print_target_switch_defaults): New fn called for -version.
+
+	* toplev.c (compile_file): Detect error closing output file.
+
+	* stor-layout.c (fixup_unsigned_type): Don't shift by 32.
+
+	* stmt.c (emit_case_nodes): Pass UNSIGNEDP along to emit_cmp_insn.
+
+	* stmt.c (expand_end_case): If index is narrow and cannot be
+	directly compared, widen it just once.
+
+	* c-parse.y (yylex): Support multi-character constants.
+	Thorough rewrite of char constant parsing.
+
+	* c-decl.c (pushdecl): Replace local extern function decl with
+	previous global decl if latter is inline, or builtin, or has
+	more arg type info.
+
+	* hard-params.c (xmalloc): Define it, for alloca.c.
+
+	* tm-hp9k320.h (STANDARD_STARTFILE_PREFIX): Override -D in Makefile.
+
+	* expmed.c (store_fixed_bit_field): Avoid shift by 32.
+
+	* stmt.c (expand_function_start): Emit a NOTE_INSN_FUNCTION_BEG.
+	* final.c (final_scan_insn): For SDB output, do the
+	sdbout_begin_function at that note.
+
+	* reload1.c (choose_reload_regs): If a reload reg inherits
+	from a previous reload, verify safety after all reloads are assigned.
+
+	* c-decl.c (build_enumerator): Remove no-op casts.
+
+	* reload.c (find_reloads): If an earlyclobber operand matches
+	an input operand it is constrained to match, that's not a problem.
+	If an earlyclobber operand loses due to earlyclobber, its matching
+	input operand also loses.
+
+	* reload1.c (choose_reload_regs): Don't use result of find_equiv_reg
+	if that reg is used for reloading in an earlier part of the insn.
+
+	* cse.c (fold_rtx): If WIDTH is 0, don't try sign-extending ARG0, ARG1.
+
+	* Makefile (hard-params*): Use $(OLDCC).
+
+	* c-typeck.c (c_alignof): No warning for -pedantic.
+
+	* c-parse.y (readescape): Don't have both error and warning
+	on one hex escape.
+
+	* c-parse.y (yylex): Treat vertical tab as white space.
+	(skip_white_space): Likewise.
+
+	* c-parse.y (datadef): If pedantic, warn for stray semicolon.
+
+	* expr.c (expand_increment): Pass accurate unsignedp arg
+	to expand_binary_op.
+
+Mon Jun 19 13:36:20 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* config.gcc (news, news-gas): Use xm-m68k.h.
+
+	* final.c (output_asm_label, output_addr_const): Make buf bigger.
+
+	* cexp.y (main): Handle EOF on input.
+	(lookup, warning): Provide as a dummy.
+	(is_idchar, is_idstart): Declare as unsigned char.
+
+	* cexp.y (parse_escape): Use TARGET_NEWLINE, etc., as values.
+	Support hex escapes.  Warn if octal or hex escape doesn't fit in char.
+
+	* cexp.y (yylex): Sign-extend char constants if appropriate.
+
+	* genemit.c: Make insn-emit.c include insn-flags.h.
+
+	* gcc.c: Move record_temp_file past page which declares vflag.
+
+	* integrate.c (expand_inline_function): If copying an insn with
+	a REG_EQUIV note, make a similar note.
+
+	* Allow reload regs to be reused for parts of an insn.
+	* reload.c (find_reloads): Classify each reload for which part
+	of the insn it is needed in.
+	(find_reloads_address, etc.): Pass down the overall operand
+	that this is part of, to record it on address reloads.
+	(push_reload): Record that for each reload.
+	* reload1.c (reload): Compute maximum needs of any part of the insn.
+	(choose_reload_regs): Part of old choose_reload_targets.
+	Hairier criteria for inheriting reloads and for which ones are
+	available for the next insn to inherit.
+	(emit_reload_insns): The rest of old choose_reload_targets.
+	Emit reload insns in proper order according to where they are needed.
+	* Record `reload_reg_in_use' separately for each part of the insn.
+	(mark_reload_reg_in_use): New function.
+	(reload_reg_free_p, reload_reg_free_before_p): New functions.
+	(reload_reg_reaches_end_p): New function.
+
+	* expr.c (expand_expr): Emit queue in X+=(Y?Z:A) optimization.
+
+	* rtlanal.c (rtx_equal_p): Check vectors have same length.
+
+Sun Jun 18 12:16:14 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stmt.c (expand_expr_stmt): Maybe warn if top-level operator
+	makes an unused result.
+
+	* gcc.c (delete_temp_files, delete_failure_queue):
+	If -v, report failures in unlink.
+
+	* Makefile (includes): New target to run fixincludes.
+	(install): Swap arms of if-statement.
+
+Sat Jun 17 12:41:53 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stor-layout.c (layout_union): Arg to error_with_decl was missing.
+
+	* ns32k.md (movsf): Use CONST_DOUBLE_LOW to extract from CONST_DOUBLE.
+
+	* loop.c (consec_sets_giv): Change type of force, force2.
+
+	* combine.c (dump*): Declare arg as FILE*.
+
+	* Makefile (clean): Delete hard-params.
+
+	* flow.c (life_analysis): Use a special obstack for the temporary
+	regsets.
+
+	* m68k.md (clr pattern): On 68000, use moveq to clear data reg.
+
+	* gvarargs.h: File varargs.h renamed.
+	The old name conflicted with <varargs.h>, now that -I. is used.
+	* tree.c, expr.c, emit-rtl.c: Change #include commands.
+	* Makefile (install): Install gvarargs.h under name varargs.h.
+	* gcc.c: Include gvarargs.h, not system's varargs.h.
+
+	* Makefile: Use -I$(srcdir) before -I$(srcdir)/config.
+	* config/tm.h: Deleted; didn't work if config was a symlink.
+
+	* cse.c (cse_insn): Record location of inner_dest
+	so it can be replaced properly if a new MEM rtx is made.
+
+Fri Jun 16 14:17:20 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* make-cc1.com: Compile and link rtlanal.c.
+
+	* c-typeck.c (build_array_ref): Call fold on the array ref.
+	* fold-const.c (fold): Simplify array ref of string constant.
+
+	* stmt.c (expand_asm_operands): Fix error message.
+
+	* Makefile (gnulib2): Remove old members before compiling new.
+	Fix stupid errors.
+	* gnulib2.c (__cmpdi2, __ucmpdi2): Typos in names of interface unions.
+
+	* genconfig.c (main): Don't write MAX_CLOBBERS_PER_INSN; obsolete.
+	Add 3 to MAX_RECOG_OPERANDS.
+
+	* cse.c (fold_cc0): Extra arg specifies machine mode.
+	Callers changed.
+	(cse_insn): Record original mode of each src for this purpose.
+
+Thu Jun 15 12:35:18 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gnulib2.c (_cmpdi2, _ucmpdi2): Moved here from gnulib.c.
+	Use long long for argument type.
+
+	* rtlanal.c (may_trap_p): Moved here from loop.c.
+	Return 1 for division by explicit zero.
+
+	* reload1.c (eliminate_frame_pointer, alter_frame_pointer_addresses):
+	Rerecognize insns which are changed by this.
+
+	* i386.md (call_value): Don't return prematurely.
+
+	* alliant.md (movqi): Handle moving Aregs to mem and vice versa.
+	(bftst -> btst): Restrict to bitpos less than 8
+	so operand may be non-offsettable.
+	(nop): New pattern.
+	(return): Was disabled; now deleted.
+	* tm-alliant.h (PRINT_OPERAND_PUNCT_VALID_P): Define it.
+	* out-alliant.c (output_btst): Same change as in out-m68k.c
+
+	* alliant.md, out-alliant.c: Offsetable -> offsettable.
+
+	* c-parse.y (rule for stmt_exprs): Make the LET_STMT volatile. 
+
+	* c-decl.c (duplicate_decls): Don't save inline function data
+	from previous definition if a new *definition* is seen.
+
+	* integrate.c (access_parm_map): Handle subregs and constants.
+
+	* stmt.c (expand_return): Don't crash if DECL_RTL (DECL_RESULT()) is 0.
+
+	* tm-tahoe.h (LONGJMP_RESTORE_FROM_STACK): Define it.
+
+	* tm-mips.h (CONSTANT_P): Deleted; duplicates rtl.h.
+
+Fri Jun  9 01:39:30 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Makefile (float.h): Avoid using $(MAKE).
+
+	* Don't cram two things into STMT_BODY of a LET_STMT.
+	* tree.h (struct bind_stmt): New field, subblocks.
+	(STMT_SUBBLOCKS): New macro to access it.
+	* print-tree.c (walk): Print new field.
+	* tree.c (build_let_stmt): Store the old BODY arg into subblocks field.
+	* c-parse.y (stmt expr rule): Put rtl expr alone into body field.
+	* dbxout.c (dbxout_block): Recurse on subblocks, not body.
+	* sdbout.c, symout.c: Likewise.
+	* integrate.c (copy_decl_tree): Likewise.
+	* stmt.c (setjmp_protect, uninitialized_vars_warning): Likewise.
+	* expr.c (expand_expr): For LET_STMT, simply use its body.
+
+	* machmode.def: Add sixth arg to each entry.
+	* tree.h, rtl.h, rtl.c: Add arg to DEF_MACHMODE.
+	* rtl.h (GET_WIDER_MODE): New macro; table in rtl.c.
+	* expr.c (expand_expr): Use that for widening multiply.
+
+	* stmt.c (fixup_var_refs_1): When converting MEM to QImode for
+	bit field, adjust the address if possible to make bitpos
+	less than 8.
+	* m68k.md (bftst -> btst): Restrict to bitpos less than 8
+	so operand may be non-offsettable.
+
+	* cccp.c (do_line): Accept and pass on 3rd arg for enter or leave file.
+
+	* out-m68k.c (output_btst): Handle COUNT bigger than size of unit.
+
+	* cccp.c (CHECK_DEPTH): Macro to detect instack overflow.
+	(finclude, macroexpand, expand_to_temp_buffer): Use that.
+
+	* cccp.c (rescan): Don't check for disabled macro if traditional.
+	(macroexpand): Don't disable macro if traditional.
+
+	* sdbout.c (sdbout_one_type): Take out last change; assembler barfs.
+
+	* c-parse.y (maybe_attribute): Eliminate #-syntaxes.
+	Make ATTRIBUTE the name for __attribute.
+
+	* c-parse.gperf: Add __attribute{,__} and __signed{,__}.
+	* c-parse.y: Install results of that change.
+
+	* Fix bug in sizeof ({...}).
+	* c-decl.c (poplevel): Set TREE_USED.  Return the LET_STMT.
+	* c-parse.y (stmt-expr rule): Put the RTL_EXPR in the LET_STMT,
+	clear its TREE_USED, and use it as the result.
+	* expr.c (expand_expr): Allow LET_STMT as an expr.
+	Set its TREE_USED and expand the TREE_VALUE of its body.
+	* dbxout.c (dbxout_block): Ignore LET_STMT if TREE_USED not set.
+	* sdbout.c, symout.c: Likewise.
+
+Thu Jun  8 00:06:36 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y (yylex): Extend ERANGE-inhibitor for 0.0
+	to 0.0e0 as well.
+
+	* flow.c (life_analysis): Prevent allocation of regs live at setjmp
+	on certain machines.  Controlled by LONGJMP_RESTORE_FROM_STACK.
+	Sets reg_live_length to -1.
+	* local-alloc.c (block_alloc): Be prepared for that.
+	* tm-vax.h (LONGJMP_RESTORE_FROM_STACK): Define it.
+
+	* gnulib2.c (all interfaces): Declare args and values as long long,
+	and split them using unions.
+
+	* loop.c (check_dbra_loop): Don't reverse loop if there are two
+	refs to varying addresses.  Consider foo[i] = foo[i-1].
+	(count_nonfixed_refs): Subroutine to count them.
+
+	* cexp.y: Distinguish signed and unsigned.
+	An integer value is now represented by a struct.
+	All rules for arithmetic changed.
+	(yylex): Adapt to change in yylval data type.
+
+	* limits.h (LONG_MIN): Make sure it's a signed long.
+
+	* sdbout.c (sdbout_one_type): Output types of fields first,
+	if they are structs.  Don't go through pointers.
+	(sdbout_field_types): Subroutine for that
+
+Wed Jun  7 13:00:44 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fixincludes: Switch to /usr/include before doing vuid_event.h.
+	Use $2 as output directory for sed.
+
+	* tm-i386.h (FUNCTION_PROFILER): Put counter address in %edx.
+	* tm-i386v.h (LIB_SPEC): Use -L/usr/lib/libp if profiling.
+
+	* expr.c (expand_increment): Typo testing for BImode component.
+
+	* convex changes from csmith:
+	* tm-convex.h: use EXTRA_SECTIONS to do .bss.
+	out-convex.c: set_section, align_section are now unused.
+	* convex.md: add pattern to pick an A-reg destination for sums
+	whose source involves a dedicated A reg (frame or arg pointer)
+	* convex.md: immediate and, or, xor instructions store a 32-bit
+	result.  Fix instructions that assumed it was 64.
+
+	* mips.md (probe): New pattern to create stack space.
+
+	* Makefile (float.h): Ignore errors from hard-params.
+	Specify ./ to run it.
+
+Tue Jun  6 15:45:27 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* out-tahoe.c: Rename `offsetable' to `offsettable'.
+
+	* tahoe.md (nop): New pattern.
+
+	* i386.md (umul...): Constrain operand 1 as `0', not `a'.
+	`a' sometimes wanted two a-regs for operands 0 and 1.
+
+	* cccp.c: Forward-declare some structs.
+
+	* c-decl.c: Rearrange fcn fwd decls and struct decls.
+
+	* expr.c: Move some fcn fwd decls after structs their args use.
+	* genpeep.c, genextract.c: Likewise.
+
+	* loop.c: Forward-declare some structs.
+
+	* stmt.c: Move decls of structs before those of static functions.
+
+	* loop.c (strength_reduce): Delete extra arg to check_eliminate_biv.
+
+	* integrate.c (expand_inline_function): Supply missing arg
+	to convert_to_mode.
+
+	* gcc.c (handle_braces): Supply missing arg to do_spec_1.
+
+	* explow.c (lookup_static_chain): Accept a context arg.
+
+	* expmed.c (store_split_bit_field): Pass ALIGN arg
+	to extract_fixed_bit_field.
+
+	* expr.c (expand_assignment): Convert TYPE_ALIGN to bytes.
+	(store_constructor, expand_expr): Likewise.
+
+	* tm-m68k.h: NO_ADDSUB_Q conditionals turn off all addq, subq insns.
+	(Fully supported only with MOTOROLA and HPUX_ASM flags.)
+
+	* jump.c (do_cross_jump): Don't die if LABEL is 0.
+
+	* tm-mips.h (PRINT_OPERAND_PUNCT_VALID_P): New macro.
+	* tm-iris.h: New file.  Unsplit lines accidentally split.
+
+Mon Jun  5 15:39:30 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (output_inline_function): Call init_function_start,
+	not expand_function_start.
+	* emit-rtl.c (restore_reg_data): No need to init reg_rtx_no.
+
+	* stmt.c (init_function_start): Set current_function_returns_struct.
+
+	* rtlanal.c (reg_set_between_p): New fn analogous to reg_used_between_p
+	* loop.c (strength_reduce): Reject biv initial value which is altered
+	subsequently before actual loop start.
+
+	* rtlanal.c: New file split out from rtl.c.
+	Has things not used in the gen files.
+
+	* loop.c (strength_reduce): Reject biv initial value in a hard reg
+	clobbered by an intervening function call.
+
+	* tree.c (get_identifier): New flag needed to enable id-clash warnings.
+	(start_identifier_warnings): Set that flag.
+	* c-decl.c (init_decl_processing): Call that, after making built-ins.
+
+Sat Jun  3 14:41:34 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* final.c (final_scan_insn): No basic block profiling at jump tables.
+
+	* stmt.c (expand_decl): Probe the stack to make pages exist.
+	* expr.c (expand_builtin): Likewise, for alloca.
+
+	* move-if-change: Specify /bin/sh.
+
+	* tm-ns32k.h (INDIRECTABLE_2_ADDRESS_P): Don't accept PLUS
+	with constant operands but not inside CONST.
+
+	* integrate.c (output_inline_function, save_for_inline):
+	Save stack_slot_list, and restore it for actual output.
+	* emit-rtl.c (gen_inline_header_rtx): New arg for this.
+
+	* emit-rtl.c (restore_reg_data): Initialize reg_rtx_no.
+	(restore_reg_data_1): Handle reg_rtx_no jumping past
+	reg_pointer_flag_length.
+
+	* reload1.c (alter_reg): Do nothing if regno_reg_rtx has 0.
+
+	* integrate.c (copy_rtx_and_substitute): Typos for stack parm
+	addresses in PLUS case.
+
+	* genoutput.c (gen_insn, gen_peephole): Make output_n fns static.
+	(output_prologue): Use new macro DEFAULT_MACHINE_INFO if defined.
+
+	* tree.h (enum machine_mode): Define MAX_MACHINE_MODE as in rtl.h.
+
+Fri Jun  2 15:40:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (do_include): A file included via a system header file
+	counts as a system header file for -M.
+
+	* gnulib2.c: Support boolean ops and shifts.
+
+	* loop.c (emit_iv_inc): Use emit_iv_init_code.
+
+	* rtl.h (CONST0_RTX): Don't try to cast abort.
+
+    	* tm-news.h (PRINT_OPERAND_ADDRESS): Fix typo `reg_name'.
+	Delete two garbage lines.
+
+	* loop.c (eliminate_biv): Use emit_iv_init_code to compute comparison
+	value.  If value is constant, recognize the insn, and if that fails,
+	put the value in a register.  
+
+Thu Jun  1 16:56:39 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* print-tree.c (dump): Don't die if rtx components are null.
+
+	* expmed.c (expand_mult_add): New fn to do A * X + B.
+	(make_tree): New subroutine.
+	* loop.c (emit_iv_init_code): Use that.  Much simpler now.
+
+Tue May 30 17:20:40 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fold-const.c (fold): Use TREE_SET_CODE to store in tree codes.
+
+	* tree.h (struct tree_common): Make `code' an unsigned int.
+	(TREE_CODE, TREE_SET_CODE): Put in casts.
+
+	* optabs.c (emit_cmp_insn): Supply all the args in recursive calls.
+
+	* toplev.c (report_error_function): Fix typo; METHOD_TYPE missing.
+
+	* fixincludes: Add code to make internal non-directory links.
+
+Mon May 29 21:36:28 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gcc.c (find_exec_file): Try both with and without machine_suffix.
+	(find_file): Use machine_suffix here too.
+
+Sat May 27 00:02:26 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload.c (decompose): OFFSET wasn't initialized.
+
+	* cse.c (cse_main): Assign monotonic cuids.
+	(make_regs_eqv, CHEAPER): Use cuids, not uids.
+	(cse_end_of_basic_block): Return a cuid, not a uid.
+
+	* expr.c (expand_builtin): For BUILTIN_SAVEREGS, range of regs
+	moved included one extra previous insn.
+
+	* emit-rtl.c (emit_line_note): Don't check -g here.
+	(emit_note): For line number when no -g, increment cur_insn_uid anyway.
+	* stmt.c (expand_start_case): Always output a NOTE_INSN_DELETED.
+
+	* loop.c (loop_optimize): Don't count line-number NOTEs for luids.
+	Prevents -g from affecting optimization decisions.
+
+Fri May 26 17:31:15 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* local-alloc.c (block_alloc): Don't count notes in insn_number.
+	Prevents -g from affecting order of allocation.
+
+Thu May 25 14:12:19 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* local-alloc.c (block_alloc): Clear full length of regs_live_at.
+
+	* ns32k.md (cmpsi): Make this the first cmp pattern.
+
+	* jump.c (do_cross_jump): Skip NOTEs while checking for existing label.
+
+	* cse.c (cse_insn): When no-oping a jump, decrement use count of label.
+	(cse_basic_block): If label use count is 0, go past it.
+
+	* integrate.c (access_parm_map): New fn, broken out of
+	copy_rtx_and_substitute, handles case of mem ref to stack arg.
+	(copy_rtx_and_substitute): Call it.
+	Also use it for address of a stack arg.
+
+	* gen*.c (fatal): Declare 1st arg as string.
+
+Wed May 24 00:13:36 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* optabs.c (init_optabs): Handle movdi and movdf insns.
+
+	* final.c (end_final): Realign locn ctr after outputting string.
+
+	* tm-sparc.h (LINK_SPEC): Link bb_link.o before standard lib.
+
+	* tm-sun386i.h (LINK_SPEC): Accept and ignore -sun386.
+
+	* gcc.c (find_exec_file): Use machine_suffix.
+	(process_command): Set that for -b option.
+
+	* integrate.c (function_cannot_inline_p): No size limit
+	for functions declared inline.
+
+	* loop.c (skip_consec_insns): New fn, skip several insns or libcalls.
+	(force_movables): New fn, part of scan_loop broken out.
+	(ignore_some_movables): New fn, ignore a movable whose insn
+	is within another movable's libcall.
+	(scan_loop): Call those three.
+	Don't handle m->consec for zero-extend movables, since always 0.
+
+Tue May 23 12:58:24 1989  Joe Weening  (weening at gang-of-four.stanford.edu)
+
+	* config/alliant.md:
+	Removed operand classes 'x', 'y', 'G', 'H'.
+	Added "%." to many opcodes to simplify comparison with m68k.md.
+	Changed TARGET_68881 to TARGET_CE.
+	Changed floating-point insns to better describe the Alliant CE.
+	Most args to floating-point insns are now nonimmediate_operand.
+	Removed special insns for pushing doublewords onto stack.
+	Added non-CE versions of movsf and movdf to avoid using FP
+	registers in this case.
+	(float*i*f2): Don't allow immediate ops.
+	(sne): Fix typo, fsne => fsneq.
+	(call, call_value): Changed to always pop args from stack
+	upon return; this gives better code than before and conforms
+	to Alliant calling standard.
+	Incorporated some recent changes to m68k.md.
+
+	* config/out-alliant.c:
+	(regno_reg_class): Removed FPA reg classes.
+	(output_move_const_double): Function not needed, removed.
+
+	* config/tm-alliant.h:
+	Removed FPA registers and reg classes.
+	Target flags: changed TARGET_68881 to TARGET_CE, removed
+	TARGET_RTD, TARGET_REGPARM, TARGET_FPA.
+	Removed TARGET_CE test in several places since we need to
+	use FP regs even for non-CE programs.
+	(TARGET_VERSION, CPP_SPEC): Define for Alliant.
+	(CONDITIONAL_REGISTER_USAGE): Removed, not needed.
+	(FRAME_POINTER_REQUIRED): Defined.
+	(RETURN_POPS_ARGS): Defined.
+	(FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P):
+	Use fp0 to return floating-point values.
+	(FUNCTION_ARG): Remove TARGET_REGPARM code.
+	(FUNCTION_ARG_PARTIAL_NREGS): Always 0.
+	(FUNCTION_PROFILER): Define for Alliant.
+	(FUNCTION_EPILOGUE): Remove use of rtd instruction.
+	Renamed CC_IN_68881 to CC_IN_FP.
+	(NOTICE_UPDATE_CC): Incorporate changes that were made
+	in tm-m68k.h.
+
+	* config/xm-alliant.h (LINK_SPEC): Pass -X to linker.
+
+Tue May 23 12:58:24 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sdbout.c: Don't include c-tree.h.
+
+	* tree.c (build_index_type): Use sizetype for min and max values.
+	Convert maxval rather than clobbering it.
+
+	* tm-hp9k320.h: Finish unterminated comment.
+
+	* sdbout.c (sdbout_parms): Use gen_fake_label for anonymous parm.
+
+Sun May 21 12:58:06 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stmt.c (aggregate_value_p): New fn says whether expression is a type
+	that functions cannot return as a scalar.
+	(assign_parms, expand_function_start): Use that.
+	* expr.c (expand_call): Likewise.
+
+	* gcc.c (delete_failure_queue): New subroutine.
+	(delete_temp_files): No longer delete the failure queue.
+	(main): Delete failure queue after each failing compilation.
+
+Sat May 20 13:16:23 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c (force_const_mem): New optional macro SELECT_RTX_SECTION.
+
+	* mips.md: Change %u0 to %:.
+	(movsi): Add constraint alternative accepting address arg.
+
+	* fold-const.c (mul_double): Special case for 2nd arg 2, 4, 8.
+	(combine): Special case shortcuts for plus, minus, mult, div.
+
+	* stmt.c (expand_function_start): Simplify hairy statement for 3B1.
+	* expr.c (expand_call): Likewise.
+
+	* math-68881.h: New file.
+
+	* m68k.md (movqi): Handle moving aregs to mem and vice versa.
+
+	* dbxout.c (dbxout_type): Don't test use_gdb_dbx_extensions
+	in cases that occur in C.
+
+	* stmt.c (expand_function_{start,end}): Make DECL_RESULT's rtl 0
+	when function returns no value.
+
+	* tree.c (build_decl): Initialize DECL_PRINT_NAME, DECL_ASSEMBLER_NAME.
+
+	* c-decl.c (store_parm_decls): Call init_function_start.
+
+Thu May 18 00:41:37 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stmt.c (expand_null_return_1): New arg USE_GOTO says jump to
+	return_label even if could otherwise use a return insn.
+	Make a return_label if we need one and don't have one already.
+	If have parm cleanups, always jump to cleanup_label.
+	(expand_null_return): Pass 1 for USE_GOTO if cleanups pending.
+	(expand_return): Set LAST_INSN if have local cleanups or parm cleanups.
+	Use that if jumping to tail-recursion label.
+	Optimization for returning a comparison is safe for local cleanups
+	but don't do it if there are parm cleanups.
+	Calling expand_null_return_1, pass 1 for USE_GOTO if local cleanups.
+	(this_contour_has_cleanups_p): New function.
+
+	* stmt.c (init_function_start): New function, beginning of
+	expand_function_start broken out.
+	Use DECL_PRINT_NAME to get function's name.
+	(expand_function_start): Now two args, function and PARMS_HAVE_CLEANUPS
+	Compute RETURN_LABEL sooner; make one if parm cleanups.
+	If parms have cleanups, put scalar return value in pseudo-reg.
+	Don't mark that pseudo with REG_FUNCTION_VALUE_P.
+	(expand_function_end): Simplify decisions about output of return_label
+	and return insn.
+	If DECL_RESULT is pseudo-reg, copy it to real return reg.
+
+	* stmt.c (expand_function_end): Handle ordinary struct values
+	like pcc, but only if unoptimized.
+	(expand_function_start): Make a return_label for ordinary struct value.
+
+	* stor-layout.c (layout_type): Handle METHOD_TYPE like FUNCTION_TYPE.
+	(layout_decl): Allow TYPE_DECL.
+
+	* stor-layout.c (layout_basetypes): Code for basetypes broken
+	out of layout_record.  Sets the type size tentatively.
+	(layout_record): Start with that tentative size.
+	Also, don't do anything with CONST_DECL members.
+
+	* stor-layout.c (layout_union): Simpler error report for static memb.
+
+	* reload1.c (eliminate_frame_pointer): Reduce PUSH_ROUNDING
+	conditional to apply only to push instructions.
+
+	* expr.c (expand_call): Fix stupid errors handling MAX_PARM_BOUNDARY.
+	* stmt.c (assign_parms): Likewise.
+
+	* toplev.c (announce_function, report_error_function):
+	(error_with_decl, warning_with_decl): Use DECL_PRINT_NAME.
+
+	* toplev.c (compile_file): Subtract integration_time from parse_time.
+
+	* toplev.c (compile_file): Don't output read-only static variables
+	at end of compilation if address was not used.
+
+	* toplev.c (rest_of_compilation): Handle flag_syntax_only.
+
+	* toplev.c (main): Handle -g0 and -G0 options.
+	For -g and -G, set use_gdb_dbx_extensions.
+
+	* toplev.c (main): Set `progname'.
+	(pfatal_with_name, fatal_io_error, {error,warning}_with_file_and_line):
+	(sorry): Print value of `progname', not "cc1".
+
+	* tree.def: Delete FRIEND_DECL.  Add PUSH_EXPR and POP_EXPR.
+
+	* tree.c (simple_cst_equal): Handle INDIRECT_REF.
+
+	* tree.c (lvalue_p): Handle METHOD_TYPE.  Handle NEW_EXPR.
+
+	* tree.c (copy_list): New function.
+
+	* tree.h (struct tree_decl): New fields print_name and assembler_name.
+	(DECL_PRINT_NAME, DECL_ASSEMBLER_NAME): New accessors.
+
+	* c-decl.c (LONG_DOUBLE_TYPE_SIZE): New compilation parameter.
+
+Wed May 17 22:07:17 1989  Randall Smith  (randy at apple-gunkies.ai.mit.edu)
+
+	* dbranch.c (emit_delay_sequence): Reset insn code to -1 when
+	turning insn into a sequence so that it won't think that it matches
+	something in the md file.
+
+	* dbranch.c (insn_eligible_p): Call refers_to_regno_p with a
+	non-zero range.
+
+	* dbranch.c (pnote): Modified to make sure instruction clobbered
+	register is a set, rather than, say, a clobber.
+
+Wed May 17 14:01:20 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sdbout.c (sdbout_parms): Handle parm with no name.
+
+	* loop.c (combine_movables): Test for overlap of zero-extend regs
+	was screwed up.
+
+	* c-typeck.c (c_sizeof{,_nowarn}): Convert from bytes to chars,
+	since c defines sizeof (char) as 1.
+	(pointer_int_sum, pointer_diff): Use c_sizeof{,_nowarn}. 
+
+Tue May 16 16:27:32 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (choose_reload_targets): Don't reuse regs
+	mentioned in reload_reg_rtx.
+
+	* tm-tahoe.h, tahoe.md, out-tahoe.c, xm-tahoe.h: New files.
+
+Mon May 15 16:25:12 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fixincludes: Exit with explicit status 0 at end.
+	cd to /usr/include before cd to subtree root in case of relative link.
+	Create dir $LIB earlier.
+	When checking for a link, treat .. like an absolute target.
+
+	* symout.c (symout_block_symbols): Give every local decl a typespec.
+	* cexp.y (parse_number):
+	* flow.c (life_analysis, dump_flow_info):
+
+	* loop.c (consec_sets_invariant_p): Logic error accepted consec sets
+	of which only one was invariant.
+
+	* expr.c (expand_expr): Use no subtargets inside loops.
+	* stmt.c (inside_loop): New function.
+
+Sun May 14 00:11:07 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.h: Declare long long types.
+
+	* c-parse.y (combine_strings): Make string contents saveable.
+
+	* tree.c (savealloc): New function.
+
+	* m68k.md (movdi): % missing in fmove%.d.
+
+	* c-parse.y (yylex): Detect overflow past 64-bits.
+	Detect specially numbers not fitting in signed long long.
+
+Sat May 13 13:16:05 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (alter_frame_pointer_addresses): Preserve volatility.
+
+	* varasm.c (output_constructor): Die if BITS_PER_UNIT is too big
+	for this function to work.
+
+	* genpeep.c (match_rtx): For match_operator, match the operands, too.
+
+	* varasm.c (output_constant): Use ASM_OUTPUT_DOUBLE_INT for DImode.
+
+	* stor-layout.c (make_signed_type, make_unsigned_type):
+	(fixup_unsigned_type): Use HOST_BITS_PER_INT.
+
+	* stor-layout.c (layout_type): Use TFmode if appro.
+
+	* optabs.c (emit_cmp_insn): Use mode sizes to check cmpstrqi, cmpstrhi.
+
+	* c-typeck.c (get_floating_type): Compare MODE against modes of types.
+	(signed_type, unsigned_type, signed_or_unsigned_type, type_for_size):
+	Handle long long types.
+	(digest_init): Don't assume width of `char' is BITS_PER_UNIT.
+
+	* c-parse.y (yylex): For truncating chars, use width of `char' type.
+	Allow `ll' in int constants and make long long.
+	Also make long long if constant won't fit in an int.
+
+	* c-decl.c (SHORT_TYPE_SIZE): Round up when dividing.
+
+Fri May 12 22:36:21 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* real.h: Allow multiple inclusion.
+
+	* tm-sun386i.h (DBX_REGISTER_NUMBER): Bizarre renumbering.
+
+Thu May 11 00:36:21 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fixincludes: Fix non-ansi declaration of sprintf in X11/Xmu.h
+
+	* c-parse.y (stmt from expr): Do default conversion if useful
+	for sake of ({...}).
+
+	* sparc.md (andcc recognizer): Operand missing in subreg.
+
+Wed May 10 17:20:38 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* rtl.c (read_name): Error if name is missing.
+	(dump_and_abort): Don't print char args if -1.
+
+	* i386.md (umulqihi3): Operand numbers were missing.
+
+	* reload1.c (choose_reload_targets): Allow spill reg in find_equiv_reg
+	if it's free and correct class. 
+
+	* cse.c (canon_hash): Handle empty strings.
+
+	* cccp.c (macroexpand): Newline newline treated like real white space
+	when stringifying.
+
+	* Rename *offsetable* to *offsettable*.
+
+Tue May  9 22:54:58 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (finish_type): Layout any variants of the type.
+
+Tue May  9 12:30:28 1989  Randall Smith  (randy at apple-gunkies.ai.mit.edu)
+
+	* final.c (final_scan_insn, final): Added an argument to
+	final_scan_insn to disallow peephole processing (to turn it off
+	during delayed branch scheduling).
+
+	* final.c (final_scan_insn): Made insn not matching any MD rtl a
+	criteria for delayed branch case.  Moved delayed branch case to just
+	before real insn recognition to reduce the number of insns on which
+	recog_memoized is called.
+
+Mon May  8 15:02:42 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fixincludes (LIB): Allow overriding.
+
+	* cccp.c: Don't search /usr/include/CC by default.
+
+Mon May  8 13:09:21 1989  Randall Smith  (randy at apple-gunkies.ai.mit.edu)
+
+	* print-tree.c (dump): Fixed typo; IDENTIFIER ==> IDENTIFIER_NODE.
+
+Sun May  7 12:44:53 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* print-tree.c (dump): TYPE_NAME may be IDENTIFIER or TYPE_DECL.
+
+Sat May  6 00:13:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.def: Define EXACT_DIV_EXPR, for when remainder known as 0.
+	* fold-const.c (combine, fold, div_and_round_double): Handle new code.
+	* expr.c (expand_expr): Likewise.
+	* c-typeck.c (pointer_diff): Use EXACT_DIV_EXPR.
+
+	* integrate.c (expand_inline_function): Use size of passed type
+	for allocating stack slot with that type.
+
+	* c-parse.y (maybe_attribute, attribute*): New syntax for Apollos.
+	These tokens currently not generated.
+
+Fri May  5 18:43:01 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* toplev.c [USG]: Undefine FLOAT for sake of sys/param.h on hpux.
+
+	* optabs.c (expand_binop): If backtracking, don't delete insns made
+	for -fforce-mem.
+
+Thu May  4 01:57:23 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload.c (find_reloads): Don't compare an earlyclobber operand
+	with itself.
+
+	* reload.c (immune_p): Constants and stack slots don't overlap.
+
+	* Put no-ops in front of loops and labels,
+	to prevent confusion in the debugger.
+	* c-parse.y (loops and labels): Call emit_nop.
+	* stmt.c (emit_nop): New function--sometimes emit a no-op.
+	* *.md (nop): New insn.
+
+	* expr.c (expand_call): Typo in arg to FIRST_PARM_CALLER_OFFSET.
+
+Wed May  3 01:34:58 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* loop.c (scan_loop): Scanning around end of loop
+	should not set maybe_never.
+
+	* Rename SELECT_VARIABLE_SECTION to SELECT_SECTION.
+	* varasm.c (get_or_assign_label): Use SELECT_SECTION if defined.
+	* varasm.c: Use EXTRA_SECTION_FUNCTIONS if defined (new macro).
+
+	* mips.md: Change %u to %u0 to avoid error check.
+
+	* tm-mips.h (TARGET_VERSNUM): Inc. to 1 08.
+	(TARGET_VERSION): Change strings.
+	(AL_DEBUG): Don't define it.
+	(HARD_REGNO_MODE_OK): Add some casts to int.
+	(STACK_ARGS_ADJUST): Name was misspelled.
+	(PRINT_OPERAND_ADDRESS): Just abort for MEM, POST_INC, etc.
+	(EXTRA_SECTIONS, SELECT_VARIABLE_SECTION, SELECTORS_EXTRA_SECTIONS,
+	SELECT_VARIABLE_CONST_SECTION): New macros.
+	(ASM_FILE_END): Change function name.
+	* out-mips.c (function_arg_advance): Delete debugging printfs.
+	(function_inarg, function_arg): Likewise.
+	(compare_collect, compare_restore): Add some.
+
+	* reload1.c (reload): Fix handling of caller_save_needed.
+
+	* stmt.c (expand_function_start): Clear caller_save_needed.
+
+	* stmt.c (emit_case_nodes): Some compiler has trouble with calling
+	a function pointer.
+	* gnulib.c: likewise.
+
+Tue May  2 15:32:25 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* loop.c (combine_movables): For zero extend,
+	do each from-mode separately.
+
+Mon May  1 00:18:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-apollo68.h: New file.
+
+	* c-parse.y (is_reserved_word, hash): Add keywords `__asm__', etc.
+	* c-parse.gperf: Corresponding changes.
+
+	* c-parse.y (check_newline): Set main_input_filename before
+	considering optional arguments.
+
+	* final.c (final_scan_function): Return next insn to process.
+	Usually that's the following insn; occasionally, previous compare.
+
+	* c-decl.c (DOUBLE_TYPE_SIZE): Wrong value.
+
+	* reload.c (decompose): Failed to return value.
+
+	* Support local specified-register variables.
+	* varasm.c (decode_reg_name): New function, cvt asmspec to regnum.
+	(make_decl_rtl): Call that.
+	* toplev.c (rest_of_decl_compilation): Handle local specified-register
+	declarations.
+
+	* i386.md (tstqi, trunc*qi): Constrain to `q' regs.
+
+	* loop.c (scan_loop, move_movables): ->global for zero-extend register
+	now means register is used outside range from where it is set
+	to the following label.  Non-global zero-extend regs
+	may be entirely cleared.
+
+	* loop.c (combine_movables): Loop that combines matching movables
+	broken out from scan_loop.
+	Now also combine non-global zero-extend registers with each other
+	if their lifespans don't overlap.
+
+	* c-typeck.c (build_unary_op, ADDR_EXPR of a COMPONENT_REF):
+	Always convert to desired result type.
+
+Sun Apr 30 12:58:58 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (init_decl_processing): New macros parameterize int types.
+	CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE,
+	FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE.
+
+	* fixincludes: Use sed instead of ex.  No problem with split lines.
+
+	* print-tree.c (dump): Print type's name, if any.
+
+	* c-parse.y: Use __inline, not plain inline.
+
+	* toplev.c: New option -fdelayed-branch.
+	(compile_file): Open and close dbranch dump file.
+	Collect and print dbranch time.
+	(rest_of_compilation): Optionally do dbranch scheduling, 
+	only if HAVE_DELAYED_BRANCH.
+	(main): Handle -dd.
+
+	* rtl.c (copy_rtx): Handle null pointers as code `e'.
+
+	* final.c (dbr_sequence_length): New function.
+	(final_scan_insn): Most of `final' broken out.
+	Add support for SEQUENCE insns.
+	last_ignored_compare and new_block now top-level static.
+
+	* c-parse.y (MAX_WORD_LENGTH): Long enough for __volatile.
+
+Sat Apr 29 13:03:20 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y (asm statements): Output line numbers.
+
+	* loop.c (emit_iv_init_code, emit_iv_inc, eliminate_biv): Copy
+	additive term rtx's to prevent sharing between insns.
+
+	* c-parse.y (check_newline): Increment input_file_stack_tick.
+	* toplev.c (report_error_function): Describe input stack only if
+	changed.
+
+	* c-decl.c (finish_struct): Reject zero width for named field.
+
+	* tm-sun3.h (CC1_SPEC): Prevent error on `-sun3'.
+	* tm-sparc.h (CC1_SPEC): Prevent error on `-sun4'.
+
+	* Makefile (cleanconfig): cleanlinks renamed; also delete gnulib.
+	(gnulib): Delete stamp-gnulib2 since gnulib2 should be redone after.
+
+Fri Apr 28 00:38:32 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* config.gcc (genix): Correct xm file name.
+
+	* tm-genix.h: Undefine ASM_SPEC inherited from tm-encore.h.
+
+	* Makefile: Make float.h using hard-params.
+	(clean): Delete float.h.
+
+	* hard-params.c: New program.
+
+	* varasm.c (assemble_variable): Use SELECT_VARIABLE_SECTION if defined.
+	(in_section): Use EXTRA_SECTIONS if defined.
+
+	* toplev.c (compile_file): Call ASM_FILE_END if defined.
+
+	* gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Let config override.
+
+	* loop.c (emit_iv_init_code): Force A to a reg if it isn't.
+
+Thu Apr 27 12:51:14 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-mips.h (ASM_START_FILES): Don't call print_options.
+	Don't call the funny abort-functions.
+	* out-mips.c: Delete funny debugging functions and aborts.
+	(print_options): #if 0.
+	(compare_restore): Test for COMPARE, not MINUS.
+	(mips_section_get, mips_output_external, mips_asm_final): New fns.
+
+	* input.h: New file with *input_filename, lineno and input_file_stack.
+	Included in toplev.c and c-parse.y.
+	* c-decl.c (finish_function): LINENO is now arg.
+	* c-parse.y: Calls changed.
+
+	* c-parse.y (check_newline): Handle `1' or `2' from cpp
+	by pushing or popping input_file_stack.
+	* toplev.c (compile_file): Push main input file on input_file_stack.
+	(report_error_function): If in include file, print the chain
+	of include-locations.
+
+	* cccp.c (output_line_command): New arg says whether entering or
+	leaving a file.  Output `1' or `2' on #-line if so.  Callers changed.
+
+	* gnulib2.c: Little-endian fixes from csmith@convex.com.
+
+	* fixincludes: Wrong quoting in `echo' command.
+
+	* tm-mips.h (REG_P): Duplicate defn deleted.
+	(PRINT_OPERAND): `\' was missing.
+
+Wed Apr 26 02:44:59 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (handle_directive): Preprocess even #pragma, but copy 
+	to output file afterward.
+	(do_pragma): Use standard calling convention.
+	(install_builtins, special_symbol): Define __INCLUDE_LEVEL__.
+
+	* cccp.c (do_include): Don't forget to close file.
+
+	* final.c (output_asm_insn): Use PRINT_OPERAND_PUNCT_VALID_P
+	to validate punctuation after percent.
+	* tm-m68k.h, tm-alliant.h, tm-ns32k.h, tm-vax.h, tm-i386.h:
+	Define PRINT_OPERAND_PUNCT_VALID_P.
+
+	* Version 1.35 released.
+
+	* c-decl.c (grokdeclarator): Use INT_CST_LT only on int constants.
+
+Tue Apr 25 15:47:11 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload.c (find_reloads_address_1): Always return a value.
+
+	* flow.c (mark_set_1): Look inside zero_extract, sign_extract.
+
+	* expr.c (emit_library_call) [STACK_ARGS_ADJUST]:
+	Fix typo for `struct args_size'.
+
+Mon Apr 24 00:12:18 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* flow.c (mark_set_1): Look inside strict_low_part.
+
+	* c-typeck.c (decl_constant_value): Don't use var's init if volatile.
+
+	* print-tree.c (dump): Don't call walk on rtx's.
+
+	* integrate.c (expand_inline_function): Convert expanded arg from
+	passed mode to nominal mode.
+
+Sun Apr 23 13:14:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fixincludes: fix _IO macros if split across two lines.
+	Fix typo: EOF was indented.
+
+	* gnulib2.c: New file with DImode library routines.
+	* Makefile (gnulib2): Put them into gnulib.
+	Must be explicitly requested.
+
+Fri Apr 21 13:45:45 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (main): Don't turn on trigraphs for -Wtrigraphs or -Wall;
+	use -trigraphs for that.
+
+	* cccp.c (main): Use -trigraphs to enable trigraphs.
+	* gcc.c: Pass -trigraphs to cpp; don't pass -T.
+
+	* Makefile: Variable srcdir relates location of sources
+	to current directory.  Default is `.'.
+
+	* integrate.c (expand_inline_function): When copying expanded arg,
+	use mode it's passed in, not arg's nominal mode.
+
+	* dbxout.c (dbxout_block): Print generated name with assemble_name.
+
+Thu Apr 20 12:36:09 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stdarg.h: check __sparc__ instead of sparc.
+
+Tue Apr 18 18:58:03 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-next.h (STARTFILE_SPEC): Define it.
+
+Mon Apr 17 19:56:05 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* dbxout.c (dbxout_block): Use ASM_GENERATE_INTERNAL_LABEL to format
+	the labels LBB... and LBE...
+
+Sun Apr 16 23:57:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* mips.md: Change MINUS to COMPARE where appropriate.
+
+Sat Apr 15 16:11:49 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (finish_struct, redeclaration_error_message):
+	Rename variables named OLD and NEW.
+
+	* sparc.md (cse'd mult pattern): Handle memory operands.
+	Optimize small integer operands.
+
+	* stmt.c (expand_decl): On sparc, ensure dynamic arrays of doubles
+	are properly aligned, despite unaligned STACK_POINTER_OFFSET.
+
+Fri Apr 14 10:59:56 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (expand_call): Bugs treating struct value address as param:
+	do so only if it's supposed to be pushed;
+	decode value of FUNCTION_ARG properly.
+
+	* tm-altos3068.h (CPP_SPEC): Some braces were dropped.
+
+	* gcc.c (pexecute): Print message when exec fails.
+	(perror_exec): New fn.
+	(perror_with_name,pfatal_with_name): Change message syntax.
+
+	* tm-hp9k320.h (ASM_IDENTIFY_GCC): Define as no-op.
+
+Wed Apr 12 00:20:31 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cse.c (cse_insn): Can record constant value being stored in
+	a bit field, if we can tell that truncation won't change it.
+
+	* m68k.md (bfset, bfclr, bfchg insns): Do CC_STATUS_INIT
+	since the cc's are set from the old contents.
+
+	* gcc.c (compilers): Running `as', put -o option before input file.
+
+	* gcc.c: Delete output file only if that file's compilation fails.
+	* gcc.c (record_temp_file): Changed args: always_delete, fail_delete.
+	(store_arg): Likewise.  Callers changed.
+	(clear_failure_queue): Called after each compilation.
+
+Tue Apr 11 01:18:53 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* combine.c (subst): (SET (ZERO_EXTRACT) (OR (ZERO_EXTRACT) const))
+	optimization was sometimes invalid.
+
+	* tm-m68k.h (NOTICE_UPDATE_CC): A doubleword move that requires 2 insns
+	does not set the cc's usefully.
+
+	* Makefile (cleanlinks): Just do `clean', not `realclean'.
+	(realclean): Delete config links also.
+
+	* expr.c (expand_call): Handle case where return value is in memory
+	but TARGET is a register.
+
+	* c-typeck.c (build_binary_op_nodefault): New arg ERROR_CODE
+	is passed to binary_op_error instead of CODE.
+	All callers changed.
+	(binary_op_error): CODE = NOP_EXPR is new special case.
+	(truthvalue_conversion): Call build_binary_op_nodefault directly
+	and specify NOP_EXPR for the error code.
+
+	* c-decl.c (xref_tag): If pedantic, warn on fwd ref to enum.
+
+Mon Apr 10 19:44:48 1989  Chris Smith  (csmith at mozart)
+
+	* tm-convex.h (PCC_BITFIELD_TYPE_MATTERS): It doesn't,
+	but set it anyway.  It makes for better code on this
+	word machine.
+
+	* convex.md (one_compl*): add not:QI and not:HI, which
+	do get used after all.
+
+	* tm-convex.h (A_REG_P, S_REG_P): define new macros
+	convex.md: use them
+
+	* convex.md (addsi3): tidy up constraints.
+
+	* tm-convex.h (REG_OK_FOR_INDEX_P): stack pointer is not ok.
+
+	* convex.md: add a pattern to push REG+CONST so we can
+	prefer an A reg.
+
+	* tm-convex.h (tstqi): should sign extend, not zero extend.
+
+	* expr.c (convert_move): Extending narrow to DI via SI,
+	operand of extendsidi2 was wrong.
+
+	* emit-rtl.c (gen_lowpart): Handle CONST_DOUBLE.
+
+Mon Apr 10 05:19:39 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* recog.c (nonmemory_operand): Test constant operands
+	as general_operand does.
+
+	* tm-m68k.h (PRINT_OPERAND): Limit effect of code `d'
+	to constant addresses.
+
+	* loop.c (can_eliminate_biv_p, eliminate_biv): Don't rely on givs with
+	nonconstant coefficients, since the coeffs could be zero.
+
+	* loop.c (can_eliminate_biv_p): Check each giv for ! ignore
+	before assuming it can be used.
+	(check_eliminate_biv): New fn, a piece of strength_reduce broken out.
+
+	* cccp.c (error_from_errno): New fn, like error and perror_with_name.
+	(do_include): Call that if open fails.
+	(finclude): Print I/O error msg before closing desc.
+
+	* c-decl.c (shadow_tag): If more than one tag or structure,
+	or anything other than a tag, warning.
+
+	* c-parse.y (components): Just warn if memb decl has no member,
+	and only if pedantic.
+
+	* loop.c (strength_reduce): Print uids, not luids, for dump.
+	(record_giv): giv_count field counts only DEST_REG givs.
+	(check_dbra_loop): src_two_before_end was set wrong.
+
+	* loop.c (record_giv): New arg LOOP_END; all callers changed.
+	Don't mark giv replaceable if used past LOOP_END.
+	(find_mem_givs): New arg LOOP_END; all callers changed.
+
+	* out-i386.c (FP_CALL): Make this a `return' stmt.
+
+Fri Apr  7 11:56:58 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (expand_expr, case ..._DECL): Preserve mode thru
+	calling change_address.
+
+	* expr.c (emit_library_call): Typo: ARGNUM => COUNT.
+
+	* expr.c (preexpand_calls, expand_call): Take note of RETURN_IN_MEMORY.
+	* stmt.c (assign_parms): Likewise.
+	* integrate.c (function_cannot_inline_p): Likewise.
+
+	* STACK_ARGS_ADJUST: Arg is now a `struct arg_data' and it should
+	be updated in place.
+	* tm-mips.h: Define it.
+	* expr.c (expand_call): Adapt to this.  Assume padding comes after args
+	so turn off the feature of changing the args' offsets.
+	(emit_library_call): Adapt to this.
+
+	* tm-mips.h (PRINT_OPERAND): Use CONST_DOUBLE_{LOW,HIGH}.
+	Truncate SFmode constants to single precision.
+
+	* c-typeck.c (mark_addressable): Fix test for local vs global reg var.
+
+	* config.gcc: Change `:-' to `-' in var refs.
+	Shell on convex doesn't handle `:-'.
+
+Thu Apr  6 00:09:01 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (expand_inline_function): Compare actual's mode
+	against formal's DECL_ARG_TYPE's mode, not TREE_TYPE's mode.
+
+	* c-decl.c (implicitly_declare): Make the decl permanent if
+	in global binding level.  (Can happen for certain invalid input.)
+
+	* c-typeck.c (build_modify_expr): Block path that made a MODIFY_EXPR
+	containing an ERROR_MARK.
+
+	* config/tm.h: New file.
+
+	* loop.c (only_reg_use_p): Fix bugs in recursion, add some fast
+	special cases.  Comment on return value was backwards.
+	(strength_reduce): Negate the value of only_reg_use_p.
+
+	* genoutput.c (output_prologue): Output `#include hard-reg-set.h'.
+	* Makefile: insn-output.o depends on that.
+
+	* toplev.c (main): Typo recognizing -Wswitch.
+
+	* config.gcc (mips): New alternative.
+	* tm-mips.h, out-mips.c, mips.md, va-mips.h: New files.
+	* varargs.h: Include va-mips.h if on mips.
+
+Wed Apr  5 16:58:04 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (duplicate_decls): Rename OLD, NEW to OLDDECL, NEWDECL.
+
+	* stmt.c (expand_function_start): Ref subr instead of
+	current_function_decl; should make no difference.
+
+	* stmt.c (assign_parms): Do extra padding for some parms,
+	controlled by MAX_PARM_BOUNDARY.
+	* expr.c (expand_call): Same thing for caller side.
+	Note this is implemented only for machines that lack push insns.
+	Also, in both cases, it doesn't handle variable-size args.
+
+Tue Apr  4 12:22:06 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gcc.c (find_file): Try STANDARD_EXEC_PREFIX for startfiles too.
+
+	* varasm.c (make_decl_rtl): Delete never-executed clause.
+
+	* spur.md (movqi, loadhi, extend*, zero_extendhisi):
+	Make subregs with C code, not RTL patterns, so we can
+	avoid generating subreg of subreg.
+
+	* optabs.c (emit_cmp_insn): Not all clauses always succeed,
+	so stop using `else' structure.
+
+	* stmt.c (expand_return): Avoid moving void to void, in cleanups case.
+
+Mon Apr  3 18:04:33 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m68k.md (cmphi): Don't allow a-reg vs a-reg, since that sign-extends.
+	If there is one a-reg, make sure it is not last.
+
+Sun Apr  2 13:02:26 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stor-layout.c (agg_mode): Use highest mode that has desired size.
+	Allow all integer modes, but reject sizes > MAX_FIXED_MODE_SIZE.
+	(That defaults to the size of DImode.)
+
+	* machmode.def: Add PSI, PDI and XF, CXF modes.
+
+Sat Apr  1 00:50:11 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* ns32k.md (ashd, lshd): Delete patterns that logand the count with 31.
+	The shift count is not truncated on this machine.
+
+	* combine.c (subst): Simplify nested or's, nested xor's.
+	(try_distrib): XOR doesn't distribute through anything.
+
+	* rtl.c (rtx_equal_p): Don't die on null pointers.
+
+	* loop.c (eliminate_biv): Use COMPARE, not MINUS, in generated compare.
+
+	* loop.c (invariant_p): Mem refs in constant pool are invariant.
+
+	* c-decl.c (redeclaration_error_message): If -traditional, allow
+	redeclarations of typedef provided they agree.
+
+	* c-decl.c (start_decl): Do expand_decl on the decl that pushdecl
+	returns.  If there was a prev. decl with a different type,
+	we have changed its type and cleared its old rtl, so it need new rtl.
+
+Sat Apr  1 00:50:11 1989  Matthew Self  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (convert_move): Modified to use mode classes
+	instead of refering to specific machine modes.
+
+	* expr.c (do_jump): Converted to use CONST0_RTX macro.
+	do_jmp no longer refers to any machine modes directly except
+	for VOIDmode!
+
+	* expr.c (compare, compare1): Modified to use CONST0_RTX
+	macro.  No longer refers to any machine modes directly
+	except VOIDmode and BLKmode!
+
+	* machmode.def: Documented assumptions made about the order
+	of machine modes during mode widening.
+
+	* optabs.c (expand_binop, expand_twoval_binop, expand_unop,
+	emit_cmp_insn): Added mode widening which is independent of
+	specific machine modes.  It assumes that we may widen to any
+	higher numbered mode of the same mode class.
+	  NOTE: the checks for VOIDmode ops which were present in
+	QI and HI to SI widening are now present in all widening.
+	I assume this is correct.  Also, widening is now possible
+	from QI to HI.  This may or may not be a good thing....
+
+	* rtl.h (CONST0_RTX): Added definition of new macro
+	CONST0_RTX (mode).
+
+	* rtl.h (GET_NOTE_INSN_NAME, GET_REG_NOTE_NAME): New macros.
+	* rtl.c (note_insn_name, reg_note_name): New tables.
+	* rtl.def (NOTE): Change last field from `i' to `n'.
+	* rtl.c (print_rtx): Print mode of INSN_LIST or EXPR_LIST as reg-note.
+	Print operand code `n' as name of kind of note.
+	(read_rtx): treat `n' like `i'.
+
+	* loop.c (struct induction): Add `mode' field.
+	(strength_reduce, record_giv): Set the `mode' field in V.
+	(can_eliminate_biv_p, eliminate_biv): Use that field.
+
+	* loop.c (struct iv_class): `init_insn' records what inits the biv.
+	Replaces `init_val_set' flag.
+	(strength_reduce): Update and test `init_insn' instead.
+	Use of a biv between its init and the start of the loop
+	does not preclude its elimination from the loop.
+	Setting a giv is ok for eliminating a biv, even if giv is "ignore",
+	since that just means giv will be combined with another.
+	Handle some DEST_ADDR givs for that purpose.
+	Test for giv-setting before check can_eliminate_biv_p.
+	New error check for replaceable giv whose value needed after loop.
+	(only_reg_use_p): New fn.
+
+	* expr.c (expand_expr): PLUS, MINUS with EXPAND_SUM:
+	Associate even harder.
+
+	* loop.c (strength_reduce): Treat all constant biv init vals like ints.
+
+	* loop.c (strength_reduce): Clear all_reduced when v->ignore is set;
+	the code to check this later didn't always do the job.
+
+	* loop.c (verify_loop): Set loop_continue.
+	(scan_loop): mention its value.
+	* rtl.h: Define NOTE_INSN_LOOP_CONT.
+	* stmt.c (expand_loop_continue_here): Output one.
+
+Fri Mar 31 10:08:29 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (pointer_int_sum, pointer_diff): Treat const void * like
+	void *.
+
+	* rtl.c (rtx_addr_varies_p): Don't die on null exp.
+	* cse.c (refers_to_mem_p, refers_to_p): Likewise.
+
+	* gcc.c (validate_switches, validate_all_switches): New fns.
+	Mark a switch as valid if any compiler spec or the linker spec
+	matches it, even for languages not being used.
+
+Thu Mar 30 00:22:14 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* loop.c (loop_optimize, move_movables): when moving a `clr' insn used
+	in zero-extension, sometimes change it to an `and' so that the
+	significant low bits are not clobbered.
+
+	* cccp.c: Implement __BASE_FILE__ and #once.
+	(savestring): New fn.
+	(struct file_name_list): new name for struct directory_stack.
+	(enum node_type): Add T_ONCE, T_BASE_FILE.
+	(directive_table): Add #pragma once.
+	(initialize_builtins): Add __BASE_FILE__.
+	(special_symbol): Handle __BASE_FILE__, together with __FILE__.
+	(do_include): Ignore the file if it's on the #pragma once list.
+	(do_once): New fn; add current file to #pragma once list.
+
+	* cccp.c (do_include): Don't add non-ex files to list of deps.
+
+	* config.gcc: Use {...:-...}, not {...=...}.
+
+	* c-parse.y: Add precedence for IF/ELSE, and for parens;
+	avoids some conflicts.
+
+	* tm-newsgas.h: Include tm-news.h and define USE_GAS.
+
+	* tm-news.h: New name for tm-news800.h.
+	If not USE_GAS, define SONY_ASM.
+	Don't define USE_GAS by default.
+	(CPP_PREDEFINES): Various alternatives depending on processor type.
+	(ASM_FORMAT_PRIVATE_NAME): Override this.
+	(ASM_IDENTIFY_GCC): Override; output nothing.
+	(FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Round fsize up to % 4.
+	Max for halfword link insn is 32k, not 64k.
+	(FUNCTION_EPILOGUE): Don't output move.l if no regs to restore.
+	(PRINT_OPERAND_ADDRESS): Change handling of tableref pc-rel addresses.
+	* m68k.md (movhi): Add SONY_ASM conditional.
+
+	* cse.c (cse_insn): If replacing a dest address, preserve MEM_IN_STRUCT
+
+	* gcc.c (error, fatal): alternate varargs defns if HAVE_VPRINTF.
+
+Wed Mar 29 09:54:13 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gcc.c (process_command): Check WORD_SWITCH_TAKES_ARG, so that
+	-Tdata can be handled right.
+
+	* stmt.c (check_for_full_enumeration_handling): new fn, for warn_switch
+	(expand_end_case): Call it, if orig index was enum.
+	* toplev.c (main): Handle -Wswitch.
+	* c-parse.y (SWITCH stmt): Pass orig switch expr to expand_end_case.
+
+	* tm-*.h, out-*.c: Uniformly use reg_names, not reg_name, and don't
+	define any duplicates.
+	* final.c: Delete reg_name.
+
+	* c-parse.y (is_reserved_word): Add keywords __asm and __inline;
+	also __const and __volatile.
+	(yylex): Keywords that start with `__' are recognized regardless of
+	-traditional or -ansi.
+
+	* c-parse.y (check_newline): Always recognize #ident.
+	Macro IDENT_DIRECTIVE is no more.
+	If ASM_OUTPUT_IDENT is undefined, don't output anything for #ident.
+	* tm-3b1.h: Don't define IDENT_DIRECTIVE or ASM_OUTPUT_IDENT.
+	* tm-encore.h, tm-i386gas.h, tm-i368v.h, tm-sun386i.h, tm-vaxv.h:
+	Don't define IDENT_DIRECTIVE; define ASM_OUTPUT_IDENT to output in
+	default way.
+
+	* expr.h (RETURN_IN_MEMORY): New macro, default defn here.
+	* expr.c (expand_call): Use it to control where to return value.
+	* stmt.c (expand_function_start): Likewise.
+
+	* out-sparc.c (find_addr_reg): Abort if none found.
+	Eliminate confusion; do only one change between tests for PLUSness.
+	(output_move_double): Arg to find_addr_reg is address, not mem ref.
+	* out-m68k.c, out-spur.c, out-i386.c, out-alliant.c: Likewise.
+
+	* jump.c (find_cross_jump): Don't let either E1 or E2 be included
+	in the range of matching insns preceding the other (E2 or E1).
+
+	* c-parse.y (check_newline): No error for `#pragma\n'.
+
+	* Makefile (gcc.o): Control STANDARD_STARTFILE_PREFIX here.
+
+	* stmt.c (walk_fixup_memory_subreg): handle null.
+
+	* tm-sparc.h (FUNCTION_BLOCK_PROFILER): Change LPBnn to LPYnn,
+	to avoid conflict with final.c.
+
+Tue Mar 28 15:23:17 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (do_include): If fail, print system error message.
+	(perror_with_name): Use more standard error format.  Inc. `errors'.
+
+	* dbxout.c (dbxout_function): Output any temporary types
+	that were made by dbxout itself.
+
+	* stmt.c: always use an epilogue if pcc-struct-return.
+	(expand_function_start): Compute return_label after testing that.
+	(expand_function_end): Output a return insn after pcc-struct-return
+	processing, if there is a return insn.
+	(expand_null_return): Don't output a return insn, in that case.
+	Simplify the conditions--depends entirely on HAVE_return.
+
+	* tm-m68k.h (FUNCTION_BLOCK_PROFILER): Use jsr, not call.
+
+	* reload.c (find_reloads): Certain mem addresses will be offsetable
+	after reloading; in particular, those where reg_equiv_address applies.
+
+	* loop.c (check_dbra_loop): Change MINUS to COMPARE.
+
+	* c-typeck.c (convert_for_assignment): Return THE standard error_mark.
+
+Thu Mar 23 09:39:02 1989  Richard M. Stallman  (rms at watson)
+
+	* c-parse.y (components): Error if empty.
+
+	* dbxout.c (dbxout_symbol): Output const variables as N_STSYM.
+
+	* varasm.c (force_const_mem): Use ASM_OUTPUT_DOUBLE_INT if defnd.
+
+	* c-decl.c (grokdeclarator): Warn about `long long long'.
+
+	* reload1.c (reload): When changing REG to MEM, clear REG_USERVAR_P.
+	* final.c (alter_subreg): Preserve volatile bit of MEM.
+
+	* m68k.md (cmpsi, cmphi): Permit cmpm.
+
+	* gcc.c (find_file): Use standard_startfile_prefix_2.
+	Now search /usr/local/lib/, /lib/ and /usr/lib/.
+
+	* tm-m68k.h (PRINT_OPERAND): Support code `d'.
+	* m68k.md (cmpsi, cmphi, cmpqi): Use it for all mem addresses.
+
+	* final.c (output_asm_insn): Don't allow %LETTER without an
+	operand number.
+	* tm-m68k.h, m68k.md, tm-hp9k320.h, tm-news*.h: Use %@ instead of %s.
+	* tm-alliant.h, alliant.md: Likewise.
+	* i386.md, out-i386.h: Put `0' after each %L, %W, %B, %S, %Q, %R.
+
+	* stmt.c (expand_end_stmt_expr): Pop pending stack args.
+
+	* varasm.c (assemble_variable): For 0-size common variable,
+	allocate at least 1 byte.
+
+	* tm-encore.h (ASM_OUTPUT_DOUBLE, PRINT_OPERAND): Use 0f, not 0l,
+	for doubles.
+
+Mon Mar 13 10:24:56 1989  Richard M. Stallman  (rms at ccvi)
+
+	* out-i386.h (function_prologue, function_epilogue):
+	Use call_used_regs, not a copy, so -f options work.
+	Save regs in the opposite order.
+	Save regs even starting from 0 if they happen to be call-saved.
+
+	* Bug fixes from Rob McMahon.
+
+	* loop.c (strength_reduce): When inserting insn to set
+	nonreplaceable giv, put it after all the consecutive insns
+	that compute it.
+
+	* reload.c (find_reloads): When forcing const to mem,
+	use the insn's operand mode, not the const's mode.
+
+	* reload1.c (choose_reload_targets): Use wider of inmode and outmode
+	when determining have_groups.
+
+	* reload1.c (choose_reload_targets): typo checked wrong insn with
+	constraint_accepts_reg_p.
+
+	* reload1.c (choose_reload_targets): Enable #if-0'd code for
+	forgetting old reloads in case of output reload from a non-spill-reg.
+
+Sun Mar 12 00:04:49 1989  Richard M. Stallman  (rms at ccvi)
+
+	* c-parse.y (yyerror): Add forward-decl here.
+	* c-tree.h: Delete decl here.
+
+	* New macro USE_C_ALLOCA.
+	* cse.c (cse_main): Do alloca (0) to clear out C alloca.
+	* flow.c (life_analysis):
+	* local-alloc.c (local_alloc):
+	* reload1.c (reload_as_needed): likewise.
+
+	* loop.c (emit_iv_init_code, eliminate_biv):
+	Always put constant in a PLUS last.
+
+	* gcc.c (make_switch): Unused function deleted.
+
+	*gcc.c (switches): Each switch has a `used' field.
+	(process_command): Init it to 0 when making `switches'.
+	(do_spec_1, handle_braces, give_switch): Set to 1 when switch is used.
+	(main): If it remains 0 at the end, print error message.
+
+	* expr.c (convert_move, convert_to_mode): Don't truncate a MEM in
+	place if it is volatile.
+
+	* loop.c (strength_reduce): When reducing a giv, if the biv is
+	incremented between the giv's creation and its use, increment
+	the reduced giv var *after* its use.
+
+	* c-decl.c (duplicate_decls): Warn about proto vs nonproto
+	only if no other errors apply.
+
+	* jump.c (invert_exp): Don't crash if arg is null.
+
+	* alliant.md (float*i*f2): Don't allow immediate ops.
+	(sne): Fix typo, fsne => fsneq.
+
+	* expr.c (store_one_arg, expand_call): When size doesn't matter,
+	pass const0_rtx, not (rtx) 0.
+
+	* expr.c (do_jump): Args to invert_exp were missing.
+
+	* gcc.c (store_arg): Now 2 separate args for delete-on-success
+	and delete-on-failure.  All calls changed.
+	(do_spec_1): DELETE_THIS_FILE is meaningful for output files.
+
+	* config/xm-alliant.h (LINK_SPEC): Pass -X to linker.
+
+Sat Mar 11 10:30:41 1989  Richard M. Stallman  (rms at ccvi)
+
+	* tm-*.h, xm-*.h, *.md: Moved to subdir `config'.
+	* output-*.c: Moved to `config/out-*.c'.
+	* Makefile (.c.o): Define rule to use -Iconfig when compiling.
+	(various): Delete the commands from some compilation rules.
+	Put -Iconfig in other compilation commands.
+	Also some reordering of variable defs and comments for cleanliness.
+	(realclean): Change a shell comment to a Make comment.
+
+	* fold-const.c (fold): Simplify and extend TRUTH_... operators
+	knowing that args must be ints and values will be 0 or 1.
+
+	* gcc.hlp: New file (for VMS).
+
+	* reload1.c (reload): Don't let two 2-groups overlap.
+
+	* reload.c (push_reloads): When a plain reg matches a reload
+	for an increment, don't change the reload_in to a plain reg.
+	Leave the increment there.
+
+	* integrate.c (expand_inline_function): Don't try to inline
+	unless the parm machine modes really match what's expected.
+
+	* stmt.c (emit_case_nodes): default_label is an rtx, not tree.
+
+	* tm-next.h (DOLLARS_IN_IDENTIFIERS): Define it as 1.
+
+	* output-sparc.c (output_move_double): Don't trust random structs
+	to be double-word aligned.
+
+	* gcc.c: Pass -Wcomments to cpp.
+
+	* rtl.def (ASM_OPERANDS): New operands, source file and line.
+	* rtl.h (ASM_OPERANDS_*): New macros for components of ASM_OPERANDS.
+	* stmt.c (expand_asm_operands): Use new fields, not REG_ASM_* notes.
+	* toplev.c (error_for_asm): likewise.
+	* rtl.h (enum reg_note): Delete REG_ASM_FILE, REG_ASM_LINE.
+
+	* combine.c (try_combine): Check explicitly for volatility in I2, I1.
+
+Fri Mar 10 19:30:10 1989  Richard M. Stallman  (rms at ccvi)
+
+	* c-parse.y (GOTO stmt): Set TREE_USED for the label.
+	* c-decl.c (poplevel): Warn about unused label.
+
+	* c-decl.c (warn_pointer_arith, warn_strict_prototypes): New vars.
+	(lang_decode_options): Options to set them.
+	* c-typeck.c (pointer_int_sum, c_sizeof): Maybe warn if bad target.
+	* c-decl.c (grokparms): Maybe warn if nonprototype fn decl.
+
+	* flags.h, toplev.c (warn_shadow): New flag.
+	* toplev.c (main): Decode it.
+	* c-decl.c (pushdecl): Maybe warn about any shadowing.
+	Existing parm-shadowing warning now disabled if shadowing decl
+	is also a parm.
+
+	* flags.h, toplev.c (warn_id_clash, id_clash_len): New flags.
+	* toplev.c (main): Decode -Wid-clash-LEN.
+	* tree.c (get_identifier): Implement warning if two idents match.
+
+	* toplev.c (compile_file): Warn about statics defined and unused.
+
+	* rtl.h (CONST0_RTX): New macro.
+
+	* recog.c (offsetable_address_p): New 1st arg says whether to demand
+	a strictly valid address.
+	(offsetable_memref_p): Pass nonzero.
+	* stmt.c (optimize_bit_field): Pass zero.
+
+	* cccp.c (main): Allow -Wcomment like -Wcomments.
+	* c-decl.c (lang_decode_options): Likewise.
+
+Sun Mar  5 15:02:59 1989  Randall Smith  (randy at apple-gunkies.ai.mit.edu)
+
+	* m68k.md [tstdf, cmp[sd]f, truncdfsf2, floatsi[sd]f2, add[sd]f3,
+	sub[sd]f3, mul[sd]f3, div[sd]f3, neg[sd]f2, abs[sd]f2]: Made sure
+	that the test function's in the match_operands of the define_expand
+	and define_insn's matched, and made that test function
+	"register_operand" when both define_insn's really needed registers
+	in that spot.
+
+Sat Mar  4 00:25:37 1989  Richard M. Stallman  (rms at c2v)
+
+	* expr.c (emit_push_insn): Don't ever bypass the big-endian
+	padding at the end.
+
+	* cccp.c (deps_output): Break line if would otherwise exceed 75 chars.
+	Make a name for that value 75.
+
+	* combine.c (subst): Handle general case of (subreg (sign_extend X)).
+
+	* tm-sun386i.h (CPP_PREDEFINES): Define `sun'.
+
+	* fixincludes: change `find' calls to find dirs thru symlinks.
+
+	* flow.c (mark_set_1): (set (subreg (reg N))...)
+	does make reg N significant for this basic block.
+
+Fri Mar  3 13:55:25 1989  Richard M. Stallman  (rms at c2v)
+
+	* c-decl.c (parmlist_tags_warning): Print an explanation
+	for the first such warning.
+
+	* i386.md (extendsfdf): Let op 1 match op0 if that is an fp reg.
+
+	* expr.c (expand_call): Fix stupid errors copying pcc struct value.
+
+	* varasm.c (output_constructor): Discard NOP_EXPRs from build_c_cast.
+
+Thu Feb 23 05:55:57 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Version 1.34 released.
+
+	* c-typeck.c (build_c_cast): If EXPR is an error mark, return that.
+
+	* fold-const.c (div_and_round_double): Abort if divisor is 0.
+	(combine): Likewise, for real constants.
+	(real_zerop): New subroutine.
+	(fold): Don't try to fold division if divisor is 0.
+	Don't try to fold reals if can't do arithmetic on them.
+	Don't try to compare reals for TRUTH_..._EXPR if can't do arith.
+	Use real_zerop to test reals for zeroness.
+	For TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR, can simplify based on
+	first operand alone.
+
+	* c-typeck.c (store_init_value): Fix error msg text.
+
+	* tm-sparc.h (FUNCTION_PROFILER): Use `mcount'.
+	* tm-sun4os3.h (FUNCTION_PROFILER): Override it; use `.mcount'.
+
+Wed Feb 22 04:33:22 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-hp9k320.h (CPP_SPEC, CPP_PREDEFINES): Make handling of
+	-Dmc68000 depend on TARGET_DEFAULT.
+
+	* tm-sparc.h (FUNCTION_PROFILER): Missing newline in fprintf.
+
+	* integrate.c (expand_inline_function): Don't map struct-value-address
+	in memory if fn does not use it.
+
+	* c-parse.y (check_newline): At skipline, detect eof.
+
+	* stmt.c (uninitialized_vars_warning): Change text of warning.
+
+Tue Feb 21 03:58:50 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* output-sparc.c (output_mul_insn): Handle case of both args
+	in reg 8, or both in reg 9.
+
+	* tm-sparc.h (ASM_SPEC): Define, to handle -pipe.
+
+	* tm-sparc.h (FUNCTION_PROFILER): Add omitted fprintf args.
+	(BLOCK_PROFILER): Likewise.  Use tempvar.
+
+	* m68k.md (QImode btst): Allow nonoffsetable mem refs.
+
+Mon Feb 20 00:32:42 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* flow.c (mark_used_regs): Don't record about global reg vars.
+
+	* config.gcc (convex-*): tm file names are tm-convex1.h, tm-convex2.h.
+
+	* tm-vax.h, tm-ns32k.h, tm-alliant.h: Define PCC_STATIC_STRUCT_RETURN.
+
+	* gcc.c (compilers): Pass `-a' to cc1.
+	* tm-sun3.h, tm-sparc.h (LIB_SPEC): Define, to handle `-a'.
+
+	* expr.c (emit_push_insn): Copy stack addresses to be passed to bcopy;
+	old method of preadjustment is broken by changes in emit_library_call.
+
+	* c-decl.c (finish_decl): New temp `temporary'; don't get confused
+	about whether allocation was temporary.
+
+Sun Feb 19 17:03:35 1989  Chris Smith  (csmith at mozart)
+
+	* tm-convex.h: define PCC_STATIC_STRUCT_RETURN
+
+	* convex.md:
+	remove pshea patterns, movsi does it better.
+	add ashift:DI abs:DF abs:SF
+	(tstdi): use a clobbered register instead of a bogus DImode zero.
+	(trunchiqi2): delete noninstruction cvth.b
+	(udivsi3, udivhi3, udivqi3): deleted, expand_divmod does it now.
+	(call, call_value): delete stupid call/ret -> jump optimization.
+	(call, call_value): flush call_ap_check, use reg_mentioned_p instead.
+
+	* convex.md: (movxx): swap constraint alternatives so that the
+	leftmost alternative is (set =g r).  This makes (set mem const)
+	get combinable input reloads of const instead of uncombinable
+	output reloads to mem.  They still do not combine, but wtf,
+	I'll inch up on it.
+
+	* output-convex.c: (const_double_{high,low}_int): new routines
+	to pick apart const_doubles for assembler.
+
+Sun Feb 19 01:40:17 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sparc.md (shift memory right 24 bits): Another `a1' typo.
+
+	* config.gcc (convex-*): Delete troublesome whitespace.
+
+	* c-decl.c (grokparms): Delete redundant `parm != 0' tests.
+
+	* stmt.c (fixup_memory_subreg): Slight simplification.
+
+	* tm-sparc.h (FUNCTION_PROFILER): Fill delay slot.
+	(FUNCTION_BLOCK_PROFILER): Use sethi.
+	(BLOCK_PROFILER): Use %g2, not %g0.  Use sethi.
+
+Sat Feb 18 02:11:25 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (expand_expr): Ignore const array's initial value
+	if it's an error_mark.
+	* c-decl.c (finish_decl): Set DECL_INITIAL to an error_mark
+	if the decl is a permanent node.
+
+	* cccp.c (rescan): If traditional, if macro ends inside string,
+	keep scanning for the end of the string.
+	(handle_directive): A line of just `#' becomes blank.
+	(collect_expansion): \ in strings traditionally doesn't hide macro arg.
+
+	* m68k.md, alliant.md (addsi3): New alternative a=r+a, in addition
+	to old a=a+r, needed since reload-insns are not commuted.
+
+Fri Feb 17 03:15:23 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-m68k.h (PCC_STATIC_STRUCT_RETURN): Define it.
+	* toplev.c, flags.h: New var flag_pcc_struct_return.
+	* stmt.c (expand_function_start): Obey new flag and new variable.
+	* expr.c (expand_call): Obey new flag and new variable.
+	* varasm.c (assemble_static_space): New function.
+
+	* stmt.c (expand_return): If we need cleanups, compute retval first
+	into pseudo reg, then do the cleanups, then copy it to return reg.
+
+Thu Feb 16 02:59:52 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* regclass.c (init_reg_sets_1): Win if STATIC_CHAIN_REGNUM undefined.
+
+	* expr.c (expand_call): Handle conflict between two precomputed
+	args that are both function calls returning structures.
+
+	* loop.c (move_movables): Bkwds test of m->partial, for a matching reg.
+
+	* expr.c (emit_library_call, expand_call): Handle STACK_ARGS_ADJUST.
+
+Wed Feb 15 01:59:15 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* toplev.c (flag_caller_saves): New var, for -fcaller-saves.
+	DEFAULT_CALLER_SAVES controls initial value.
+	* global-alloc.c (find_reg): Do caller saves only if flag set.
+	* local-alloc.c (find_free_reg): Do caller saves only if flag set.
+	* tm-alliant.h, tm-convex.h: Define DEFAULT_CALLER_SAVES.
+
+Wed Feb 15 01:59:15 1989  Chris Smith  (rms at sugar-bombs.ai.mit.edu)
+
+	* caller-save.c: New file.
+	* regs.h (CALLER_SAVE_PROFITABLE): New macro.
+	(reg_n_calls_crossed): new int-vector replaces reg_crosses_calls.
+	* flow.c (allocate_for_life_analysis, propagate_block, dump_flow_info):
+	Use reg_n_calls_crossed.
+	* stupid.c (stupid_mark_refs, stupid_life_analysis): Likewise.
+	* global-alloc.c (find_reg): Sometimes allocate call-clobbered regs
+	for call-crossing pseudos.
+	New arg ACCEPT_CALL_CLOBBERED; callers changed.
+	* local-alloc.c (find_free_reg): Similar changes.
+	(qty_n_calls_crossed): New int-vector replaces qty_crosses_calls.
+	(alloc_qty, local_alloc, combine_regs, find_free_reg): change that var.
+	* regclass.c (call_fixed_regs, call_fixed_reg_set): new vars.
+	(init_reg_sets_1): Initialize them.
+	* reload1.c (reload): Call caller-saves processing if needed.
+
+Wed Feb 15 01:59:15 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (expand_expr): INTEGER_CST for DImode: don't handle
+	endianness here.  So CONST_DOUBLE_LOW is always the low word.
+	* varasm.c (force_const_mem): Handle it here. 
+
+	* expr.c (convert_move): widening followed by extendsidi2 had braino.
+
+	* integrate.c: Don't include ctype.h; not needed and kills Sun cpp.
+
+	* m68k.md (cmpsf, cmpdf and their recognizers):
+	Replace MINUS with COMPARE.
+	Also, use VOIDmode for COMPAREs, not SF or DF.
+
+	* optabs.c (sign_expand_binop): Handle ops such as division where
+	an unsigned char could be widened and handled with signed int insns.
+	* expmed.c (expand_divmod): Use that.
+
+	* c-typeck.c (digest_init): Allow for type variants in validating
+	initialization from a string constant.
+
+	* c-typeck.c (decl_constant_value): Disable opt. if pedantic or
+	outside functions, so that validity of program is never affected.
+
+	* fold-const.c (fold): Signedness-test for ABS_EXPR was backwards.
+
+Tue Feb 14 01:30:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (main): Don't omit normal output, if we want deps on
+	a separate stream.
+
+	* c-decl.c (grokdeclarator): Don't record any arg types for functions
+	if -traditional.
+
+	* print-tree.c (prtypeinfo): Mention permanent attribute.
+
+	* tm-next.h: New file.
+
+	* c-typeck.c (decl_constant_value): The DECL_INITIAL may be ERROR_MARK.
+
+	* c-decl.c (duplicate_decls): For fns, new static decl overrides
+	old non-static one.
+
+	* emit-rtl.c (gen_lowpar, gen_highpart): Use change_address, so we
+	preserve volatility, etc.
+
+	* stmt.c (expand_expr_stmt): Use emit_filename, emit_lineno
+	as file and line for any warning.
+	* emit-rtl.c (emit_line_note): Set those vars.
+
+	* c-decl.c (store_parm_decls): If -Wimplicit, warn of arg with no decl.
+
+	* recog.c (offsetable_address_p): Use strict_memory_address_p,	
+	since called from reload.c.
+
+Mon Feb 13 03:11:50 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sparc.md (compare-to-reg patterns): Some still had MINUS.
+
+	* toplev.c (main): Warn if `-a' on system that can't handle it.
+
+	* stmt.c (expand_asm_operands): Delete unused local `val'.
+	(pushcase_range): Likewise for `value'.
+	(fixup_var_refs): Likewise for `insn'.
+	* emit-rtl.c (start_sequence): Likewise for `save'.
+	* loop.c (scan_loop): Likewise for `before_start'.
+	* expr.c (expand_expr): Delete label `binop1'.
+
+	* reload1.c (constraint_accepts_reg_p): Handle SUBREGs of REGs.
+
+Sun Feb 12 05:37:46 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gnulib.c (__bb_init_func): New function
+
+	* tm-m68k.h (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): Defined.
+
+Sat Feb 11 00:05:55 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-sparc.h (FUNCTION_PROFILER): Make it really work.
+	(BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): New macros.
+
+	* final.c (final): Use BLOCK_PROFILER at start of each basic block.
+	(final_start_function): Use FUNCTION_BLOCK_PROFILER if -a.
+	(end_final): New fn to output the block-profiling tables.
+	* toplev.c (profile_block_flag): Set if -a.
+	(compile_file): Call end_final.
+
+	* combine.c (try_combine): Avoid combining in most cases if I3
+	has an inc or dec and I1 or I2 uses the same register.
+
+	* tree.c (size_in_bytes, int_size_in_bytes): Use type's main variant.
+
+	* c-typeck.c (actualparameterlist): Error if parm type is incomplete.
+
+	* expr.c (expand_call): Ignore args that have incomplete type.
+
+Fri Feb 10 02:26:02 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y (case stmts): strip dummy NOP_EXPRs.
+
+	* reload1.c (reload_as_needed): Clear reg_{has,is}_output_reload here,
+	(choose_reload_targets): not here.
+
+Thu Feb  9 01:35:55 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* output-sparc.c (output_mul_by_constant): Forget cc status.
+
+	* stmt.c (assign_parms): Don't put volatile parms in regs.
+
+	* vax.md (jlbs/jlbc recognizers): Move them before jbc/jbs recognizers.
+
+	* cse.c (fold_rtx): Handle (EQ (COMPARE ...) (CONST_INT 0)).
+
+	* c-typeck.c (default_conversion, digest_init): For static const
+	nonvolatile scalar variable, use its initial value if known.
+
+	* expr.c (expand_expr: case COMPONENT_REF): If containing structure
+	comes out volatile, leave the component MEM volatile too.
+
+	* hard-reg-set.h: Fix multi-word case macros to swallow semicolon.
+
+	* c-typeck.c (default_conversion): In array=>ptr, volatility
+	of target type comes from TREE_THIS_VOLATILE, not TREE_VOLATILE.
+
+	* reload1.c (forget_old_reload_1, choose_reload_targets):
+	New array reg_is_output_reload is converse of reg_has_output_reload.
+	forget_old_reload_1 needs both.
+
+Wed Feb  8 01:26:24 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reload1.c (forget_old_reloads_1): New fn, guts of forget_old_reloads.
+	Do process a spill reg if it isn't used for reloading in this insn.
+	(forget_old_reloads): Deleted, replaced with note_stores.
+	(reload_as_needed): Undo Feb 1 change.
+	Call forget_old_reloads_1 on pseudos autoincremented and not reloaded.
+
+	* c-typeck.c (convert_for_assignment): Handle variant types.
+
+	* c-decl.c (lang_decode_option): -Wall implies -Wunused.
+
+Tue Feb  7 01:32:28 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* combine.c (try_combine): Don't try adding outputs to an asm_operands.
+
+	* cse.c (CHEAPER): Don't ever let a hard reg get ahead of a pseudo.
+
+	* stmt.c (fixup_gotos): Don't crash on undef label if THISBLOCK is 0.
+
+	* c-decl.c (parmlist_tags_warning): New fn.
+	* c-parse.y (parmlist, parmlist_or_identifiers): Call it,
+	to warn about any tags defined inside the parmlist.
+	* c-decl.c (grokparms): Don't warn about ptr to incomplete type.
+	The new warning is better.
+
+Mon Feb  6 01:11:36 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (store_constructor): Incorrect ALIGN arg in store_field calls.
+
+	* c-parse.y (%union): Delete unused alternative.
+
+	* c-decl.c (grokparms): Use main variant to test for ptr to incomplete.
+
+	* c-decl.c (finish_enum): Delete superfluous init for `pair'.
+
+	* cse.c (fold_rtx): Optimize X+0, X-0 in floating point.
+	Fix typo in PLUS case; omitted value to compare GET_MODE_CLASS against.
+	(equiv_constant): Allow CONST_DOUBLE.
+
+	* cse.c: Optimize past if-statements that are known to fail.
+	(cse_insn): If condjump becomes uncond to end of this block,
+	set cse_skip_to_next_block.
+	(cse_basic_block): If that happens, ignore rest of block, and maybe
+	treat next block as part of this one (if tables have room).
+	Resume insn that starts next basic block to be scanned.
+	(cse_main): Make room for at least 500 qtys.
+	(cse_end_of_basic_block): Subroutine broken out of cse_main.
+
+	* c-parse.y (hash, is_reserved_word): Rewrite: new hash technique.
+
+	* c-decl.c (duplicate_decls): Be smart about proto vs nonproto mismatch
+	involving a function definition.
+
+Sun Feb  5 17:31:12 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* alliant.md (movdi): Typo in `fmoved'.
+	(ftruncsf2): Handle moving into fp reg.
+
+	* jump.c (jump_optimize): Typo in testing PRESERVE_DEATH_INFO_REGNO_P.
+
+	* reload1.c (choose_reload_targets): Move all death notes to the
+	output reload insn.
+
+	* m68k.md (fix_truncsfsi2,fix_truncdfsi2): Use accurate rtl pattern.
+
+	* loop.c (delete_insn_forces): Use presence of REG_RETVAL to check
+	for value-of-library-call insn.
+
+Sat Feb  4 18:17:56 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (expand_inline_function): Make addresses of stack
+	slots valid somehow.
+
+	* tm-3b1.h (DIVSI3_LIBCALL, etc.): Define these macros; avoid gnulib.
+
+	* expmed.c (store_bit_field): Avoid (subreg (mem)) when converting
+	VALUE1 to SImode.
+
+	* jump.c (jump_optimize): Do delete USE and CLOBBER insns.
+	This is needed for proper jump optimization.
+
+	* rtl.def (COMPARE): New code.
+	* *.md (compare and related patterns): Use COMPARE, not MINUS:VOID.
+	* loop.c (eliminate_biv, can_eliminate_biv_p): Likewise.
+	* cse.c (fold_rtx, fold_cc0, cse_insn):
+	* output-m88k.c (output_{f,}compare, output_store):
+	* output-sparc.c (strict_single_insn_op_p, single_insn_src_p, safe_insn_src_p):
+	* combine.c (subst):
+	* jump.c (jump_back_p):
+
+Fri Feb  3 18:34:27 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* output-i386.c (notice_update_cc): If arith insn sets the cc's,
+	discard all remnants of previous cc value and flags.
+
+	* sparc.md (ashiftrt mem by 24): Fix typo `a1'.
+
+Thu Feb  2 14:55:44 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* output-sparc.c (output_mul_insn): Clear the CC status.
+
+Wed Feb  1 20:01:54 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Version 1.33 released.
+
+	* reload1.c (reload_as_needed): On entering new basic block,
+	if it didn't need reload regs, forget all inherited contents of those.
+
+	* tm-alliant.h (NOTICE_UPDATE_CC): Floating moves don't set the cc's.
+	Also delete the clauses and tests for FPA regs. 
+
+Tue Jan 31 21:51:05 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* config.gcc: Handle convex-c1, convex-c2.
+	* tm-convex1.h, tm-convex2.h: New files that include tm-convex.h.
+	* tm-convex.h: Define switches -mnoc1, -mnoc2.
+
+	* config.gcc: rename `nofp' to `nfp', to match the file names.
+
+Mon Jan 30 22:12:15 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* output-sparc.c (output_delay_insn): Extract the operands,
+	call alter_subreg, constrain_operands and NOTICE_UPDATE_CC.
+	So callers other than output_eager_then_insn don't lose.
+	(output_eager_then_insn): No need to do that stuff.
+
+	* symout.c (symout_block_symbols): Handle (MEM (REG)) for
+	variable-sized arrays.
+
+	* tm-encore.h (ASM_SPEC): Always pass -j; avoid jump-range lossage.
+
+Sun Jan 29 17:06:26 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* alliant.md: Fix refs to CONST_DOUBLEs to use CONST_DOUBLE_{HIGH,LOW}.
+
+	* combine.c (subst): (minus (zero_extend ...) (const_int ...)) opt.
+	now limited to within the context of (set (cc0) ...).
+
+Sat Jan 28 14:26:08 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cse.c (fold_cc0): Missing `&' extracting CONST_DOUBLEs.
+	(fold_rtx): Don't put CONST_DOUBLEs together into a (CONST (PLUS...)).
+
+	* output-convex.c (gen_cmp): Recognize CONST_DOUBLE as a constant.
+
+	* tree.c (build_real_from_int_cst): Typo in REAL_ARITHMETIC case.
+
+	* Makefile (bootstrap2): Don't use bootstrap3 as subroutine.
+
+	* varasm.c (force_const_mem): Put the CONST_DOUBLE on the chain
+	if its MEM is stored in it; so it can be cleared at end of function.
+
+	* stmt.c (emit_case_nodes): Put a compare before each cond-jump.
+	Two cond-jumps after one cond is invalid and makes cse produce garbage.
+
+Fri Jan 27 01:05:01 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-sun2.h (CPP_SPEC): Define __HAVE_68881__ only if -m68881.
+
+	* c-decl.c (start_decl): Don't expand_decl if DECL already has rtl.
+	(grokparms): If just declaring fcn, incomplete parm type is just
+	a warning, and don't discard the specified type.
+
+	* expmed.c (expand_divmod): Be smarter about not clobbering args
+	with intermediate results; one mem can clobber another, and a reg
+	can clobber a mem.
+
+	* tm-i386.h (FUNCTION_PROFILER): Use LPREFIX.  May actually work now.
+	* tm-i386gas.h: Include tm-bsd386.h, not tm-att386.h.
+	This means changing asm syntax.
+	#undef DBX_NO_XREFS and DBX_CONTIN_LENGTH.
+
+	* sparc.md (eager branch peepholes): Don't forget 2nd arg to
+	safe_insn_src_p.
+	Don't print warnings.
+	* output-sparc.c: (strict_single_insn_op_p): Return 0 for floating
+	REG or MEM, since copying that may take 2 insns.
+	(operands_satisfy_eager_branch_peephole): require delay insn to
+	be strict_single_insn_op_p as well as safe_insn_src_p.
+	(operand_clobbered_before_used_after): Don't print warnings.
+
+	* varasm.c (decode_rtx_const): Clear entire structure incl. gaps.
+	Avoids spurious hash mismatches.
+	(force_const_mem): If CONST_DOUBLE, store its CONST_DOUBLE_MEM field.
+	Also look in that field rather than hashing, to save time.
+
+	* c-typeck.c (build_c_cast): If value is literal, mark NOP_EXPR as so.
+	(store_init_value): Change error msg.
+
+	* c-decl.c (duplicate_decls): Classify prototype vs nonprototype
+	mismatches better.
+
+	* tm-3b1.h: Fix comment.
+
+Wed Jan 25 12:46:50 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Makefile (cleanlinks): Use -f.
+
+Tue Jan 24 17:54:16 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cse.c (canon_hash): Fix paren error in last change.
+
+	* varasm.c (immed_real_const_1): Missing arg to bcmp.
+
+Mon Jan 23 02:43:45 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stor-layout.c (layout_type): BLKmode elts force array to be BLKmode.
+
+	* genpeep.c, genoutput.c, genemit.c: Put `#include "real.h"' in output.
+
+	* stmt.c (expand_expr_stmt): No "no effect" warning for error-mark.
+
+	* varargs.h: Rename implicit arg name to __builtin_va_alist
+	which triggers code in assign_parms.  Does this really matter?
+
+	* sparc.md (sne): New define_expand.
+	(seq recognizers): Handle sne as well.
+	* output-sparc.c ({strict_,}single_insn_src_p):
+	Some NEG and MINUS insns are actually 2 asm insns.
+	(safe_insn_src_p): No floating arith is safe; they can trap.
+	(eq_or_neq): New fn, for seq/sne recognizers.
+
+	* c-decl.c (grokdeclarator, size of array type):
+	Strip from SIZE any NOP_EXPRs that don't change anything.
+
+	* reload.c, recog.c: Include real.h so constraint macros can examine
+	CONST_DOUBLEs.
+
+Sun Jan 22 04:12:54 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (init_decl_processing): Define __builtin_saveregs.
+	* tree.h: likewise.
+	* expr.c (expand_builtin): Handle it.
+
+	* tm-sparc.h: Define TARGET_EAGER and -meager.
+	* sparc.md (eager branch peepholes): Reenable, but test TARGET_EAGER.
+	Change fb insns to use %F.  Delete `,a' from some of them.
+	* jump.c (jump_optimize): Don't delete USE and CLOBBER insns.
+
+	* xm-vms.h (const): Define it as empty.
+
+	* make-cccp.com: Move the rename of cexp_tab.c.
+	Compile cccp.c with no macro definitions.
+
+	* cccp.c (main): VMS conditional for setting max_include_len.
+
+Sat Jan 21 12:53:00 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varargs.h (va_start): On sparc, call __builtin_saveregs.
+	Delete the old conditional that used va-sparc.h.
+	Rename macros and locals to start with two underscores.
+	* va-sparc.h: File deleted.
+
+	* c-decl.c (store_parm_decls): Initialize OTHERS.
+
+	* stmt.c (assign_parms): Obey layout_decl.
+
+Fri Jan 20 02:19:32 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cse.c (fold_rtx): For SYMBOL_REF and LABEL_REF, mask address
+	to 16 bits.
+
+	* tree.h (NUM_TREE_CODES): NUM_TREE_CODE renamed.
+
+Thu Jan 19 13:53:24 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (mark_addressable): For global reg var, report error.
+	Now returns an int; value of 0 means caller should fail.
+	All calls (in this file) changed.
+
+	* stor-layout.c (layout_decl): Don't let an more than 1 word
+	of any aggregate go in any 1 register.  (Needed for machines whose
+	integer regs are 64 bits).
+
+	* tm-convex.h, xm-convex.h, convex.md, output-convex.c: new files.
+
+	* expr.c (convert_move): Use extendqidi2, etc. for converting
+	small ints to double ints.  Use zero_extendsidi2 rather than
+	clearing the high half.
+
+Wed Jan 18 01:20:52 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c (make_decl_rtl): If global `register' decl is invalid,
+	make ordinary non-register rtl.
+
+	* output-sparc.c (operand_clobbered_before_used_after): new fn.
+	(reg_clobbered_p, safe_insn_src_p): New fns.
+	(single_insn_src_p): Treat constants all as ok, even though not
+	always literally so.  Also accept some SIGN_EXTENDs and ZERO_EXTENDs.
+	(strict_single_insn_src_p): New fn, like above but is strict
+	about constants and constant memory addresses.
+	(relop): New fn.
+	(output_move_double): Don't make a MEM, and don't use %m.
+	(output_delayed_branch): New name for output_delay_insn.
+	Now handle non-small constant operands.
+	Avoid duplicate loads of g1 for constant addresses.
+	Use recog_operand directly for output of the delay insn.
+	(output_delay_insn): Now a completely new fn.
+	(output_eager_then_insn, next_real_insn_no_labels): New fns.
+	(operands_satisfy_eager_branch_peephole): New fn.
+
+	* sparc.md: New peepholes for testing a recently used operand.
+	New peepholes for delayed branches, incl. conditional ones.
+	** Some of them commented out because they seem not to work.
+	(andcc recognizer): Fix typo, missing %.
+	(bgt): Change bgt to bg in output.
+	(reversed jumps): Replace with one pattern using match_operand.
+	It uses %F to output the condition.
+	(movsi): For round-valued immed const, use just a sethi.
+	For other immed, use explicit sethi and or.
+	(movhi, movqi): use `move' for reg source or small int source.
+	For other immed, use explicit sethi and or.
+	(movsi, etc.):	Handle all constant addresses like SYMBOL_REFs.
+	(movsf): Delete never-used duplicate code for constant addresses.
+	(addsi3, subsi3, cse'd multiply): Use sethi and or, rather than set.
+	(andsi3, iorsi3, xorsi3): Likewise.
+	(jump): Make an annulled branch.
+
+	* tm-sparc.h (PROMOTE_PROTOTYPES): Define this.
+	(GO_IF_LEGITIMATE_ADDRESS): Now accept all constant addresses;
+	also cleaned up.
+	(NOTICE_UPDATE_CC): Don't change the G1 status when storing in memory.
+	Assume all PARALLEL insns are peepholes.
+	(PRINT_OPERAND): New codes C and N for outputting conditions,
+	either forward or reversed.  Also F for reversed floating.
+
+	* jump.c (delete_for_peephole): New function to delete range of insns.
+	* genpeep.c (gen_peephole): Output code to use this.
+
+	* Makefile (install): Fix typo, had $${name} for $${file}.
+
+Tue Jan 17 00:00:12 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* i386.md (ashlsi3): Use addl or leal for special cases.
+
+	* c-decl.c (grokdeclarator): Make a non-global VAR_DECL public
+	if it is external.
+
+	* masm386.c: Clean up formatting.
+
+	* cse.c (fold_rtx): Typo simplifying x|0 or x^0
+	when the 0 comes second.
+
+	* expmed.c (store_fixed_bit_field): For halfwords, verify that
+	the field fits in an *aligned* halfword.
+	(extract_fixed_bit_field): likewise.
+
+	* expmed.c (store_split_bit_field): New arg align, passed in from
+	store_fixed_bit_field and passed back to it.
+	(extract_split_bit_field): likewise.
+
+	* expr.c: Reinsert changes from Jan 2, mysteriously deleted Jan 3.
+	Also changes from Dec 23, Dec 28 and Dec 29.
+
+	* tm-i386.h: Likewise for changes from Dec 30.
+
+	* c-typeck.c (build_component_ref): If field's type is error-mark,
+	return an error-mark.
+
+Mon Jan 16 14:16:54 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* genpeep.c (main): Output code to exit early if insn is followed
+	by a barrier.
+	(gen_peephole): Reject barriers just like labels.
+
+	* stmt.c (do_jump_if_equal): New arg UNSIGNEDP, for emit_cmp_insn.
+	Caller changed.  Now static.
+
+	* final.c (final): Set INSN_DELETED_P in insns when output.
+
+	* final.c (final): Re-set BODY if peephole does anything.
+
+	* c-decl.c (grokparms): Ignore anything but PARM_DECLs in the list.
+	(store_parm_decls): If we had a prototype, separate out anything other
+	than a PARM_DECL declared in it, and pushdecl those at the end,
+	after DECL_ARGUMENTS is set.
+
+	* stmt.c (expand_end_case): Do stack adjusts after computing index.
+
+	* expr.c (store_one_arg): Handle padding for case of BLKmode
+	for which space was preallocated.
+
+	* integrate.c (copy_rtx_and_substitute): When copying asm insn,
+	preserve sharing of the input-operand vectors.
+	(expand_inline_function): Clear {orig,copy}_asm_operands_vector
+	to make that mechanism work.
+	(save_for_inline, copy_for_inline): Likewise.
+
+	* stmt.c (expand_asm_operands): Reject `+' in constraints.
+	Every output constraint requires `='; inputs reject it.
+
+	* stmt.c (expand_function_end): Arg to fixup_gotos was missing.
+
+Sun Jan 15 00:28:23 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c, gcc.c (main): Handle SIGPIPE.
+	(pipe_closed): New fn; report suitable fatal error.
+
+	* loop.c (loop_optimize): Initialize moved_once.
+
+	* gcc.c (do_spec): Don't call `execute' if value != 0.
+	Delete redundant second call to do_spec_1.
+
+	* toplev.c (compile_file): Make declared-but-not-defined warnings
+	only if -Wunused.
+
+	* stmt.c (emit_case_nodes): Fix typo setting gen_ble_pat.
+
+	* tm-sparc.h ({U,}MODSI3_LIBCALL): Name was wrong.
+
+	* gcc.c (env_exec_prefix refs): Don't try to open via it if it's null.
+
+	* output-sparc.c (output_store, output_load_{fixed,floating}):
+	Fixed confusions between the mem ref and its address.
+
+	* cse.c (canon_hash): global_regs has entries only for hard regs.
+	* flow.c (insn_dead_p, mark_set_p, mark_used_regs): Likewise.
+
+	* cse.c (fold_rtx): More simplifications for MULT, IOR, AND, XOR
+	DIV and shifts with one arg 0 or 1.
+
+Sat Jan 14 11:41:11 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (build_array_ref): If pedantic, check for regdecl arrays.
+
+	* fixincludes: Make all subdirs in advance, so no need for `dirname'.
+
+	* genpeep.c (gen_peephole): Delete code to increment LABEL_NUSES;
+	instead, clear JUMP_LABEL for any jumps being deleted.
+	No need to test INSN1 for being a label, since not called then.
+	[If any of the matched insns is a JUMP_INSN, set want_jump,
+	and in that case make the matched peephole a JUMP_INSN itself.]
+	That's in an #if 0 now; it's good in jump, but not in final.
+
+	* jump.c (jump_optimize): Don't do peepholes here.
+	* final.c (final): Do them here.
+
+	* jump.c (jump_optimize): In optimizing `if (foo) bar; else break;',
+	don't try to invert anything but a standard-looking conditional jump.
+
+	* jump.c (jump_optimize): Do peepholes on ALL BUT the first pass.
+
+	* gcc.c (env_exec_prefix): New var used like user_exec_prefix
+	but set from envvar GCC_EXEC_PREFIX.
+
+Fri Jan 13 13:21:59 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* genpeep.c (gen_peephole): Test INSN1 for a label at the very start,
+	then test following insns at the end of the loop.
+
+	* sparc.md (call recognizers): do CC_STATUS_INIT, for %g1.
+
+Thu Jan 12 02:13:49 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c (make_decl_rtl): Recognize more error cases for reg vars:
+	BLKmode, or initializer given.
+	Distinguisn missing asm from invalid name.
+
+	* expr.c (expand_call): Never return 0; return const0_rtx instead.
+	This makes expand_expr more uniform.
+
+	* c-decl.c (grokparms): For ptr to incomplete type, just warn;
+	don't change the parm's type.
+
+	* stmt.c (expand_return): Set RETVAL_RHS so as to recognize
+	tail-recursive fcn returning void.
+	Unconditionally test value of expand_expr for being a REG.
+
+	* reload.c (find_reloads): Don't process insns that have
+	no constraint alternatives.  No more need for have_constraints.
+
+	* recog.c (constrain_operands): New local var nalternatives.
+	Don't bother checking the insn if nalternatives is 0.
+
+Wed Jan 11 01:27:48 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Implement global register decls.
+
+	* varasm.c (make_decl_rtl): Handle global register vars.
+	(make_function_rtl): Set function_defined: after 1st function dfn.
+	(assemble_variable): Ignore global register vars.
+
+	* c-decl.c (grokdeclarator): Don't reject global register decls.
+	(builtin_function): Use make_decl_rtl, not make_function_rtl,
+	to avoid setting function_defined.
+
+	* regclass.c (init_reg_class{,_1}): Init and process global_regs.
+	They are fixed, and call-clobbered.
+
+	* flow.c (insn_dead_p): Storing one of global_regs is never dead.
+	(mark_used_regs, mark_set_1): A global reg is never dead.
+
+	* cse.c (canon_hash): Consider global regs volatile.
+
+
+	* expr.c (do_jump): Know how to invert jumps which are sequences.
+
+	* dbxout.c, symout.c, final.c: On USG, use our own stab.h.
+
+	* tm-i386gas.h: New file for GAS on sysV (with DBX debugging info).
+
+	* m68k.md (bfchg and bfins patterns): Make # alternatives uniform.
+	* alliant.md: Likewise; also in movdf patterns.
+
+	* genoutput.c (output_epilogue): Spurious `break' disabled
+	error check for mismatched # of alternatives.
+	(output_epilogue, scan_operands): Errors in input are not fatal.
+
+	* flow.c (regno_uninitialized): Avoid crash if no basic blocks.
+
+	* sparc.md (move insns): Delete special patterns that handled
+	symbolic constant addresses.  The main move patterns now do this.
+	* output-sparc.c (output_store, output_load_{fixed,floating}):
+	Subroutines to do the work for this; has the code from those
+	special patterns.  Also fixed bugs in testing against cc_status.mdep.
+
+	* output-sparc.c (output_delay_insn): Clear the CC status.
+	This is necessary for %g1 in the case of a call insn.
+
+	* tm-i386.h (REG_CLASS_CONTENTS): INDEX_REGS is now all but ESP.
+	(REGNO_REG_CLASS): Corresponding change.
+	(REG_CLASS_FROM_LETTER): Eliminate `x' letter since not used.
+
+	* optabs.c (emit_cmp_insn): New arg ALIGN, used for BLKmode.
+	All callers changed.
+	Pass alignment (as rtx) as 4th arg to cmpstr gen functions.
+	Use cmpstrhi if available.
+	* expr.c (compare): Only this call passes a nonzero ALIGN.
+
+	* expr.c (emit_push_insn, emit_block_move): Pass alignment (as rtx)
+	as 4th arg to movstr gen functions.
+
+Tue Jan 10 23:43:05 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stor-layout.c (layout_type): Use BLKmode, if a struct isn't
+	aligned well enough for a scalar mode.
+
+	* expr.c (expand_expr): For static CONSTRUCTOR, ensure memory
+	address is made valid.
+
+	* genpeep.c (match_rtx): For MATCH_OPERATOR, set max_opno, n_operands.
+
+Mon Jan  9 17:07:56 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c (output_constant): Split strings every 2000 chars.
+
+	* stmt.c (expand_end_case): Test bkwds, handling constant switch arg.
+
+Fri Jan  6 09:11:20 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* output-sparc.c (output_delay_insn): Add parens to first if test.
+	(output_move_double): Turn addr for `sethi' into MEM for %m.
+
+	* c-typeck.c (convert_for_assignment): move test for ERROR_MARK.
+
+	* c-parse.y (unary_expr): Allow cast_expr as arg of unary op.
+
+	* stmt.c (expand_decl): Don't abort if FUNCTION_DECL lacks rtl;
+	assemble_variable is called after this.
+
+	* c-parse.y (primary -> identifier): Separate case for undeclared
+	identifier outside of functions; avoids confusing error msgs.
+
+Thu Jan  5 01:24:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Makefile (install): Ignore errors in all `if' commands.
+	Create $(libdir) if nec.
+
+	* Makefile (insn-*.[ch]): Put in empty commands.  May help Ultrix Make.
+
+	* stmt.c (emit_case_nodes): New arg UNSIGNEDP says do unsigned jumps.
+	Arg INDEX is an rtx, not a tree.
+	(expand_end_case): Pass that arg.
+	(node_has_{low,high}_bound): check for overflow, avoid confusion.
+
+Wed Jan  4 02:24:21 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sparc.md (movdi, movdf): Use `&' constraint when loading reg from;
+	otherwise can lose on (set (reg X) (mem (plus (reg X) (reg X+1)))).
+
+	* expr.c (emit_push_insn): For memory scalar partially going in regs,
+	copy each word to reg before pushing.  Avoids memory-to-memory move.
+	Make the displaced address valid.
+	Also delete unfinished STACK_OFFSET variable.
+
+	* c-parse.y (check_newline): Read just one #-directive and return.
+	This prevents lossage when toplev.c calls it to get the main input file
+	name, and it gets a following #ident as well.
+
+	* c-decl.c (lang_decode_option): Set warn_cast_qual for -Wcast-qual.
+	* c-typeck.c (build_c_cast): Issue some warnings if set.
+
+	* tm-3b1.h (ASM_OUTPUT_CASE_LABEL): Missing `;'.
+
+Tue Jan  3 18:07:31 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (emit_library_call): Do force_operand on each operand
+	if it isn't a REG, MEM or constant.
+	Do this, or mode conversions, earlier, before loading any hard regs.
+
+	* m68k.md (addsi3) [SGS]: Put a zero displacement in the `lea'.
+
+	* c-typeck.c (default_conversion): Don't lose `const' or `volatile'
+	when converting array type to pointer.
+
+Mon Jan  2 01:18:01 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expmed.c (store_bit_field, store_fixed_bit_field): New arg,
+	alignment in bytes the structure is known to have.
+	(store_fixed_bit_field): Handle working in halfwords,
+	in case the pointer isn't known to have fullword alignment.
+	* expmed.c (extract_bit_field, extract_fixed_bit_field): likewise.
+	(extract_bit_field): fix unsignedp arg to extract_fixed_bit_field.
+	* expr.c (store_field): New arg, passed to {store,extract}_bit_field
+	(expand_assignment, store_constructor): Pass that arg.
+	(expand_expr): Pass new arg to extract_bit_field.
+
+	* m68k.md (casesi_2 recognizer): Offset always 6 for 3b1.
+
+	* c-typeck.c (convert_for_assignment): Strip from rhs no-op NOP_EXPRs
+	put on by build_c_cast (to make the result not an lvalue).
+	(build_modify_expr, build_compound_expr): likewise.
+	(build_conditional_expr): likewise.
+	(actualparameterlist, build_function_call): likewise.
+	(default_conversion, truthvalue_conversion): likewise.
+
+	* loop.c (move_movables): If reg has moved out of one loop,
+	divide `savings' by 2.
+
+Sun Jan  1 03:00:07 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (truthvalue_conversion): Distribute the conversion
+	into the arms of a COND_EXPR.
+
+	* cse.c (fold_rtx): Don't fold a MINUS with VOIDmode
+	into a symbolic constant--it's incorrect.
+
+	* cse.c (cse_insn): If SRC is a subreg with known value, simplify it.
+
+	* integrate.c (copy_rtx_and_substitute): Allow a ref to a part of
+	MEM parm whose actual parm is a reg, provided it refs
+	the low part of the MEM.
+	(function_cannot_inline_p): Don't inline functions which have
+	aggregate parameters and take their addresses.  This could produce
+	refs to non-low-parts, which copy_rtx_and_substitute can't handle.
+
+	* c-typeck.c (build_modify_expr): If lhs is COND_EXPR,
+	make a COMPOUND_EXPR to ensure the rhs is computed before the branch.
+
+	* Implement -pipe.
+	* gcc.c (do_spec_1): `|' is now a special delimiter
+	which goes in the argbuf.
+	When a newline is preceded by a `|', delete it if no -pipe.
+	Otherwise, don't execute yet, and keep scanning.
+	(do_spec): At end, if we have stuff with no newline, execute it.
+	(handle_braces): Implement %{|foo:...}.
+	(execute): If argbuf contains some `|'s, run several processes
+	and pipe them together.
+	(pexecute): new subroutine to make one of the processes.
+	(find_exec_file): new fn to search for program to execute.
+	(record_temp_file): new arg FAIL_ONLY.
+	(store_arg): 2nd arg == 3 means delete file on failure.
+	This is used for output files.
+	(delete_temp_files): delete certain files only if fail.
+
+	* cccp.c (include_defaults): /usr/include before /usr/local/include.
+
+	* recog.c (asm_noperands): 1-off in loop checking CLOBBERS
+	when no output operands and PARALLEL.
+
+	* expmed.c (negate_rtx): Sign-extend the high bits rather than clear.
+
+	* cse.c (fold_rtx): fold negation of real values.
+	(fold_cc0): fold comparisons on real values.
+
+	* Makefile (install): Use $(INSTALL) for gcc.1 and files in USER_H.
+
+	* Handle floating-point problems for cross-compilation.
+
+	* real.h (CONST_DOUBLE_LOW, etc.): new macros to access CONST_DOUBLE.
+	* varasm.c (immed_double_const, decode_rtx_const): Use these.
+	({force,clear}_const_double_mem): Likewise.
+	* output-*.c (output_move_double): Use these.
+	* output-m68k.c (standard_{68881,sun_fpa}_constant_p): Likewise.
+	* tm-*.h (PRINT_OPERAND): Use these.
+	* output-i386.c (print_operand): Use these.
+	* final.c (output_addr_const): Likewise.
+	* emit-rtl.c (gen_rtx): Delete special code for CONST_DOUBLE.
+
+	* real.h (union real_extract): Portable type for storing real as ints.
+	* varasm.c (immed_double_const, decode_rtx_const): Use these.
+
+	* varasm.c (immed_real_const_1, decode_rtx_const):
+	Don't assume REAL_VALUE_TYPE is 2 ints long.
+	* emit-rtl.c (init_emit_once): Likewise.
+
+	* real.h (REAL_VALUE_TYPE): Define as `double' if not defined.
+	(REAL_IS_NOT_DOUBLE): Define this if default REAL_VALUE_TYPE not used.
+	(REAL_VALUES_EQUAL, REAL_VALUES_LESS): Define, if not already defined.
+	(REAL_VALUE_LDEXP, REAL_VALUE_ATOF): Likewise.
+	* tree.h (struct tree_real_cst): Use REAL_VALUE_TYPE for the value.
+
+	* rtl.c (init_rtl): Increase length of CONST_DOUBLE if REAL_VALUE_TYPE
+	needs more space.  Change the rtx_format element to match.
+	* varasm.c (immed_real_const_1): 1st arg now has REAL_VALUE_TYPE.
+	(force_const_mem): Assume a CONST_DOUBLE contains REAL_VALUE_TYPE.
+	* emit-rtl.c (init_emit_once): Likewise.
+	And use REAL_VALUE_ATOF to get a floating zero.
+	* optabs.c (expand_float): Use REAL_VALUE_TYPE, REAL_VALUE_LDEXP.
+	* c-parse.y (yylex): Likewise, and use REAL_VALUE_ATOF.
+	* fold-const.c (split_tree): Don't accept REAL_CSTs.
+	(combine, fold_convert, fold): Use REAL_ARITHMETIC if defined;
+	else don't fold reals if they are not doubles.
+	* tree.c (build_real_from_int_cst): Likewise.
+	* print-tree.c (dump) [REAL_IS_NOT_DOUBLE]: output float value
+	in hex, since we don't know how to do it right.
+
+Sat Dec 31 14:15:13 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* optabs.c (init_optabs): Handle new macros {U,}MULSI3_LIBCALL,
+	DIVSI3_LIBCALL, MODSI3_LIBCALL.
+	* tm-sparc.h: Define {,U}{MUL,DIV,MOD}SI3 to call Sun's library direct.
+
+	* tm-sun3-nfp.h, tm-sun3-fpa.h: New files.
+
+Fri Dec 30 00:14:36 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (main): Certain envvars specify a file to write deps info to.
+
+	* toplev.c (compile_file): Warn about undefined fns declared static.
+
+	* m68k.md (casesi_2 recognizer) [SGS] RTX_INTEGRATED_P test backwards.
+	* tm-3b1.h (ASM_OUTPUT_CASE_LABEL): Likewise.  Also missing `\'.
+
+	* reload1.c (count_occurrences): New function.
+	(choose_reload_targets): Don't delete a reload if the same reg
+	is used elsewhere in the current insn.
+	(delete_output_reload): code split out from choose_reload_targets.
+
+	* c-typeck.c (build_c_cast): Always put on some operator,
+	so the cast is never an lvalue for strict ANSI.
+
+	* c-typeck.c (initializer_constant_valid_p): Don't depend on
+	distinction between NOP_EXPR and CONVERT_EXPR.
+
+	* c-convert.c: Fns reordered; new comments.
+
+	* fold-const.c (fold): If simplifying a NOP_EXPR within a BIT_AND_EXPR,
+	return a NOP_EXPR.
+	New var TYPE holds type of expr.
+
+	* c-parse.y (expr_no_commas): Split off cast_expr and unary_expr,
+	to reject `sizeof (int) foo'.
+
+	* toplev.c (main): Treat plain `-' as input filename.
+
+	* final.c (final): If an insn's output routine returns 0,
+	it means to output the deleted compare insn immediately preceding.
+
+	* m68k.md (branch insns): Use 0 as 3rd arg for OUTPUT_JUMP
+	rather than explicitly clearing the overflow flag.
+
+	* tm-i386.h (OUTPUT_JUMP): Really use NO_OV; don't abort.
+	* i386.md (branch insns): Put real data (sometimes 0) in 3rd arg
+	of OUTPUT_JUMP.  0 means preceding test may not be deleted.
+	(lea pattern): Clear the cc's.
+	* output-i386.c (notice_update_cc): various arith insns set the cc's.
+
+Thu Dec 29 13:22:01 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stmt.c (expand_decl_init): Do nothing for static decls.
+
+	* reload.c (find_reloads_address{,_1}): Return 1 iff entire arg
+	was reloaded as a whole, else 0.
+	(find_reload): If find_reloads_address returns 1, don't let that MEM
+	satisfy a `>' or `<' constraint.
+
+	* m68k.md (cmpmb): Delete special pattern, make cmpqi handle it.
+	The special pattern couldn't handle reloading the incremented register.
+
+	* integrate.c (copy_rtx_and_substitute): Test BYTES_BIG_ENDIAN,
+	not BITS...
+
+	* combine.c (subst): Consider big-endian correction
+	when simplifying (subreg (mem ...) ...).
+
+	* reload.c (find_reloads): Don't crash if matching operands in `asm'
+	are both read or both write.
+
+	* expr.c (emit_push_insn): Address for movstr must be XINNER, not X.
+
+	* toplev.c (main): Typo parsing `-fno...'.
+
+Wed Dec 28 13:07:21 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* toplev.c (rest_of_compilation): `volatile' fns need jump_optimize
+	for warnings, as if -Wreturn-type.
+	* c-typeck.c (c_expand_return): Warn about `return' in a `volatile' fn.
+	* c-decl.c (finish_function): Warn if `volatile' fn can drop thru end.
+
+	* cse.c (canon_reg): Handle nulls as subexpressions.
+	(fold_rtx, canon_hash, mention_regs, exp_equiv_p): Likewise.
+	* loop.c (invariant_p, replace_regs, replace_call_address, may_trap_p,
+	{basic,general}_induction_var): Likewise.
+
+	* expr.c (expand_call): Handle `const' functions:
+	Local IS_CONST is 1 if function is const.
+	Attach REG_RETVAL and REG_LIBCALL notes around the call.
+	Copy fn address to register outside of those notes.
+	Likewise precompute all parms outside them.
+
+	* expr.c (expand_call): If fn is volatile, emit barrier after the call.
+
+	* c-decl.c (grokdeclarator): Allow function declared const or volatile.
+
+Sat Dec 24 18:40:12 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* integrate.c (function_cannot_inline_p): If STRUCT_VALUE_INCOMING
+	or STRUCT_VALUE	is defined, can't inline functions returning BLKmode.
+
+Fri Dec 23 13:26:26 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (store_constructor): Compute array's size
+	with int_size_in_bytes.
+
+	* varasm.c (assemble_variable): If shared data, go to data section
+	before outputting an uninitialized symbol.
+
+	* tm-sequent.h (ASM_OUTPUT_ALIGN_CODE): Missing backslash.
+	(SHARED_SECTION_ASM_OP): Macro defined.
+	* tm-seq386.h (SHARED_SECTION_ASM_OP): Macro defined.
+
+	* c-typeck.c (c_expand_asm_operands): Warn if output op is `const'.
+
+	* Fix problem where a stmt expr in an initialization
+	refers to the variable it is initializing.
+	* stmt.c (expand_decl_init): New fn split out from `expand_decl'.
+	* c-decl.c (finish_decl): Call that.
+	Don't call expand_decl if already done.
+	(start_decl): Call expand_decl if type is complete already.
+
+	* Makefile (install): Typo in ranlib command.
+
+Thu Dec 22 15:57:12 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.h (tree_identifier): New field.
+	(IDENTIFIER_ERROR_LOCUS): Accessor for it.
+	* c-parse.y (primary => IDENTIFIER):
+	Undeclared variable gets one err msg per function it appears in.
+
+	* ns32k.md (andsi3): Delete extra brace.
+
+	* alliant.md, xm-alliant.h, tm-alliant.h, output-alliant.c: New files.
+
+	* combine.c (SUBST, SUBST_INT): Store new field `is_int'.
+	(copy_substitutions): Don't copy an int as an rtx.
+
+	* Makefile (INSTALL): Install gcc.1 properly.
+
+	* tm-ns32k.h (FUNCTION_PROLOGUE, ASM_OUTPUT_ALIGN_CODE):
+	Add missing backslashes.
+
+See file ChangeLog.0.
diff --git a/gcc/ChangeLog.10 b/gcc/ChangeLog.10
new file mode 100644
index 0000000..ad16692
--- /dev/null
+++ b/gcc/ChangeLog.10
@@ -0,0 +1,10185 @@
+Sun Mar 31 05:10:10 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stor-layout.c (layout_decl): Don't make a bitfield an integral mode
+	if the mode of the field type is not MODE_INT.
+
+	* sched.c (schedule_block): CALL_INSNs don't affect fixed regs.
+
+	* flow.c (propagate_block): CALL_INSNs don't kill fixed regs.
+
+Sat Mar 30 03:32:48 1996  Torbjorn Granlund  <tege@noisy.tmg.se>
+
+	* expmed.c (expand_divmod, case TRUNC_DIV_EXPR): Move some code
+	to avoid shifting by a too large count.
+
+Fri Mar 29 15:45:51 1996  Doug Evans  <dje@cygnus.com>
+
+	* configure (i[3456]86-*-sunos5*): Delete, config.sub converts
+	sunos5 to solaris2.
+	(sparc-*-sunos5*): Likewise.
+	(sparc64-*-{solaris2*,sunos5*}): Delete.  Stick with sparc-*-solaris2*.
+
+	* sparc.h (FUNCTION_PROFILER): Save/restore %g2 around mcount call.
+
+Fri Mar 29 14:20:31 1996  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.c (notice_update_cc): Clear cc_status if ref modified MEM.
+
+Fri Mar 29 09:37:52 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* calls.c (expand_call): Remove current_call_is_indirect nonsense.
+	Add additional argument to INIT_CUMULATIVE_ARGS.
+	(emit_library_call): Likewise.
+	(emit_library_call_value): Likewise.
+	* expr.c (expand_builtin): Likewise.
+	* function.c (assign_parms): Likewise.
+	* config/pa/pa.h (hppa_args): New field "indirect".
+	(INIT_CUMULATIVE_ARGS): Initialize "indirect" field.
+	(FUNCTION_ARG): Check "indirect" field, rather than
+	"current_call_is_indirect".
+	* a29k.h (INIT_CUMULATIVE_ARGS):New arg, INDIRECT.
+	* alpha.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* arm.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* clipper.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* convex.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* dsp16xx.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* elxsi.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* fx80.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* gmicro.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* h8300.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* i370/mvs.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* i386.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* i860.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* i960.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* m68k.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* m68k/mot3300.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* m88k.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* mips.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* ns32k.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* pdp11.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* pyr.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* romp.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* rs6000.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* sh.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* sparc.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* spur.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* tahoe.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* vax.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* we32k.h (INIT_CUMULATIVE_ARGS): Likewise.
+	* mips.c (mips_expand_prologue): Add extra arg to
+	INIT_CUMULATIVE_ARGS call.
+
+Thu Mar 28 18:45:49 1996  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* alpha.c (summarize_insn): Fix three "off-by-one" bugs in loop bounds.
+
+Thu Mar 28 16:50:10 1996  Doug Evans  <dje@cygnus.com>
+
+	* ginclude/inl-sparc.h: Deleted.
+
+Thu Mar 28 12:07:31 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* ginclude/va-h8300.h (va_arg): Don't assume sizeof (int) == 4.
+
+	* pa.c (hppa_legitimize_address): Don't lose for
+	(plus (plus (mult (A) (shadd_const)) (B)) (C)) if
+	B + C isn't a valid address for indexing.
+	(basereg_operand): Only accept base registers after
+	cse has completed.  Don't accept the frame pointer if
+	it's likely to be eliminated.
+	* pa.md (unscaled indexing patterns): Add variants with
+	basereg and index register reversed.
+	(HImode and QImode loads): Add zero extended variants.
+
+Wed Mar 27 07:45:27 1996  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* expmed.c (negate_rtx): Fix typo in previous change.
+
+Tue Mar 26 13:50:43 1996  Jim Wilson  <wilson@mole.gnu.ai.mit.edu>
+
+	* calls.c (expand_call): In convert_to_mode call, use word_mode
+	not SImode.
+
+Tue Mar 26 13:44:34 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+	* configure: Delete unnecessary special handling of --with-cpu.
+
+Tue Mar 26 10:41:57 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* expr.c (emit_push_insn): When doing a partial push, emit
+	a CLOBBER so that flow doesn't think the entire register
+	is live.
+
+Tue Mar 26 10:00:52 1996  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* alpha.c (summarize_insn, default case): Properly use format_ptr.
+
+Tue Mar 26 09:51:09 1996  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k.h (output_move_simode_const): New extern declaration.
+	* m68k.c (output_move_simode_const): New function.
+	(singlemove_string): Call it.
+	* m68k.md (fullword move): Likewise.
+
+Tue Mar 26 05:43:06 1996  Torbjorn Granlund  <tege@noisy.tmg.se>
+
+	* vax.md (insv matcher): Call CC_STATUS_INIT.
+	* vax.h (NOTICE_UPDATE_CC): Handle ZERO_EXTRACT destination.
+
+Mon Mar 25 19:18:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* function.c (expand_function_start): Don't set up context_display
+	unless current_function_needs_context.
+
+Mon Mar 25 18:48:18 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* fold-const.c (fold, case BIT_IOR_EXPR): Recognize rotates
+	with variable count.
+
+Mon Mar 25 18:05:28 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* Makefile.in (libgcc1-test): Undo Feb 12 change.
+
+Mon Mar 25 08:09:59 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* objc/thread-single.c (objc_mutex_unlock): Properly declare thread_id.
+
+Mon Mar 25 08:02:50 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* configure (m68k-motorola-sysv*): Fixed indentation.
+
+Sun Mar 24 08:16:42 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expmed.c (negate_rtx): Don't try to negate a constant ourself;
+	instead call simplify_unary_operation.
+
+Sun Mar 24 07:29:06 1996  Richard Henderson  <rth@tamu.edu>
+
+	* gcc.c (process_command): Instead of hardcoding non-empty
+	switches_need_spaces to turn on "o" and "L", make the string
+	contain the switches that need the spaces.
+	* m68k/ccur-GAS.h (SWITCHES_NEED_SPACES): Change definition
+	correspondingly.
+
+Sat Mar 23 18:34:44 1996  Harry Dolan  <dolan@ssd.intel.com>
+
+	* i860/paragon.h (LIB_SPEC): Always output -lmach.
+
+Sat Mar 23 18:25:39 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+	* c-typeck.c (set_init_index): Check for use outside an array
+	initializer.
+
+        * defaults.h (ASM_OUTPUT_ADDR_DIFF_ELT): Delete.
+        * pdp11.h (ASM_OUTPUT_ADDR_DIFF_ELT): Don't define.
+
+Sat Mar 23 15:55:35 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+	* combine.c (make_extraction): In BITS_BIG_ENDIAN correction of POS,
+	need to treat MEM and REG differently.
+
+	* sparc.h (SPARC_SIMM{10,11,13}_P): Define.
+	(SMALL_INT): Use SPARC_SIMM13_P.
+	(CONST_OK_FOR_LETTER_P): Support new letters L,M.
+	* sparc.c (arith11_operand): Use SPARC_SIMM11_P.
+	(arith10_operand): Use SPARC_SIMM10_P.
+	* sparc.md (*mov{qi,hi,si,di}_cc_sp64): Fix constraints.
+	(*mov{qi,hi,si,di}_cc_reg_sp64): Likewise.
+
+Sat Mar 23 07:47:19 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* m68k/linux.h (TRAMPOLINE_TEMPLATE): Correct first instruction.
+	* m68k/m68kv4.h (TRAMPOLINE_TEMPLATE): Likewise.
+
+Sat Mar 23 07:06:55 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* bc-emit.c (bc_emit_instruction): Add missing va_end call.
+
+	* c-typeck.c (build_array_ref): Give error if subscripting a function.
+
+Fri Mar 22 09:11:45 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (optimize_reg_copy_1): Only update reg_live_length
+	if it is non-negative.
+
+Thu Mar 21 14:42:26 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc/splet.h (STARTFILE_SPEC,LINK_SPEC): Define.
+
+Wed Mar 20 17:23:18 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* cse.c (note_mem_written): Delete obsolete code for handling
+	(mem (scratch)).
+
+	* mips.c (mips_expand_prologue): In initialization of fnargs, delete
+	special treatment of METHOD_TYPE.
+
+Wed Mar 20 17:07:45 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc/sol2.h (ASM_CPU_SPEC): Recognize -mcpu=v8plus, not v9.
+	Fix typo in ultrasparc entry.
+	* sparc/sparc.h (CPP_CPU_SPEC): Add v8plus entry.
+	(ASM_CPU_SPEC): Likewise.
+
+	* sparc/sparc.c (fcc_reg_operand): Ensure correct mode.
+	(icc_or_fcc_reg_operand): Likewise.
+	(gen_v9_scc): IF_THEN_ELSE must have a mode.
+	(print_operand): New operand code `x' for all condition codes.
+	New operand codes `c,d' for reversed conditional moves.
+	* sparc/sparc.md (movqicc,movhicc): New named patterns.
+	(movdicc): if_then_else must have a mode.
+	(movsicc,movsfcc,movdfcc,movtfcc): Likewise.
+	Change condition to TARGET_V9, not TARGET_ARCH64.
+	Fail if DImode compare and ! TARGET_ARCH64.
+	(conditional move matchers): Rewrite.
+
+Wed Mar 20 16:12:29 1996  Stan Cox  <coxs@wombat.gnu.ai.mit.edu>
+
+	* i386.h (HARD_REGNO_MODE_OK): Relax QImode constraint to
+	avoid a reload problem.
+
+Wed Mar 20 13:12:22 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.c (hppa_legitimize_address): Don't lose for x[n-const]
+	when n-const will not be shifted.  Don't pessimize code for
+	x[n-const] when const is small.
+
+Wed Mar 20 11:42:32 1996  Markus Theissinger  <Markus.Theissinger@gmd.de>
+
+	* m68k/sun3.h (LIB_SPEC): Don't link /usr/lib/bb_link.o with `gcc -a'.
+	(__bb_init_func): Deleted.
+	(BLOCK_PROFILER_CODE): Don't set macro to nothing.
+
+	* m68k/xm-sun3.h: New file.
+	* configure (m68k-sun-sunos*): Use it.
+
+	* xm-linux.h (HAVE_POPEN): New define.
+
+Wed Mar 20 11:28:37 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* m68k/linux.h (ASM_SPEC): Deleted.
+	(STRUCT_VALUE_REGNUM): Redefine as register a0.
+	(STATIC_CHAIN_REGNUM): Redefine as register a1.
+	(TRAMPOLINE_TEMPLATE): Redefine to use the right register.
+
+Wed Mar 20 08:04:34 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* libgcc2.c (__dummy): New function.
+	* Makefile.in (LIB2FUNCS): Add __dummy.
+	* expr.c (expand_builtin, case BUILT_IN_SETJMP): Call "setjmp"
+	pattern, if any.
+	Call dummy function pointed to by static chain pointer.
+	(expand_builtin, case BUILT_IN_LONJMP): Ignore second expression.
+	Set address of __dummy into static chain pointer.
+	Copy the label to return to into a pseudo earlier.
+
+	* stupid.c (last_setjmp_suid, regs_crosses_setjmp): New variables.
+	(stupid_life_analysis, stupid_mark_refs): Use them to track which
+	regs are live over a setjmp; don't allocate such regs.
+
+Tue Mar 19 22:02:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* cplus-dem.c (demangle_template): Fix for non-mangled pointer
+	arguments.
+
+Tue Mar 19 13:54:06 1996  Jeffrey A. Law  <law@wombat.gnu.ai.mit.edu>
+
+	* pa.c (compute_frame_size): Update comments to reflect reality.
+	(hppa_expand_prologue): Don't save registers which aren't
+	used, even if it creates holes.  Partially undoes changes from
+	early March.
+	(hppa_expand_epilogue): Likewise.
+
+Tue Mar 19 08:25:17 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+	* stmt.c (struct case_node): New member balance.
+	(add_case_node): New function.
+	(pushcase, pushcase_range): Use it.
+	(case_tree2list): New function.
+	(expand_end_case): Use it.
+
+Tue Mar 19 07:44:22 1996  Stephen L Moshier  (moshier@world.std.com)
+
+	* regstack.c (move_for_stack_reg): Avoid stack overflow while
+	storing XFmode from fp reg to memory.
+
+Tue Mar 19 07:38:03 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* m68k.h (MASK_*): New macros.
+	(OVERRIDE_OPTIONS): Use them.
+	(TARGET_SWITCHES): Likewise.
+	Treat -m68332 like -m68000.
+
+Mon Mar 18 20:04:13 1996  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* expmed.c (emit_store_flag): If expanding (GE X 0) will need two
+	insns, don't use subtarget for the result of the first insn.
+	Move a likely constant to the start of a condition.
+
+Mon Mar 18 19:48:14 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* m68k.h (CONST_OK_FOR_LETTER_VALUE): New constraint 'M'.
+	* m68k.c (output_function_epilogue): Restore registers using sp+
+	instead of fp(n) in leaf functions.
+	(USE_MOVQ, use_movq): Function replaced by macro.
+	* m68k.md (pushexthisi_const, movsi_const0): New names.
+	(andsi3, iorsi3): Allow only 'M', not 'K' constants, if dest is 'd'.
+
+Mon Mar 18 19:33:20 1996  Fila Kolodny <fila@ibi.com>
+
+	* i370/t-mvs: New file.
+	* configure (i370-*-mvs*): Use it.
+	* i370/mvs.h (FUNCTION_PROLOGUE): LE/370 takes 120 bytes for DSA.
+	Have only one copy of timestamp and PPA2 per object module.
+	Only have unnamed CSECT to match IBM C.
+
+Mon Mar 18 19:26:21 1996  Paul Russell  (Rusty.Russell@adelaide.maptek.com.au)
+
+	* combine.c (simplify_if_then_else): Allow for case that
+	condition might no longer be a condition.
+
+Mon Mar 18 19:14:42 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-typeck.c (build_conditional_expr): If OP1 is null, set
+	both OP1 and ORIG_OP1 to IFEXP.
+
+	* c-iterate.c (iterator_loop_epilogue): Don't clear DECL_RTL
+	for a static decl.
+
+Mon Mar 18 08:02:25 1996  Stephen L Moshier <moshier@world.std.com>
+
+	* alpha.c (summarize_insn, case SUBREG, CONST_*): New cases.
+
+Sun Mar 17 16:55:00 1996  Doug Evans  <dje@cygnus.com>
+
+	* combine.c (find_split_point): Handle NULL return from
+	make_extraction.
+	(make_field_assignment): Likewise.
+
+Sat Mar 16 18:56:47 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.c (substitute_in_expr, case COMPONENT_REF): Ignore
+	if inner PLACEHOLDER_EXPR has not yet been initialized.
+
+	* i386.c (standard_80386_constant_p): -0.0 is not 0.0.
+	* i386.md (insv): Restore missing end of comment.
+
+	* combine.c (make_extraction): Correct typo in force_to_mode
+	call in previous change.
+	Return 0 if pos+len out of range of want desired mode.
+
+Sat Mar 16 16:20:43 1996  David Mosberger-Tang  <davidm@azstarnet.com>
+
+	* alpha.md (trap): New attribute.
+	Modify patterns for all floating-point trap generating instructions.
+	* alpha.h (CPP_SPEC): Added -mieee and -mieee-with-inexact.
+	(alpha_trap_precision, alpha_fp_rounding_mode, alpha_fp_trap_mode):
+	New enum types.
+	(target_flags, alpha_tp, alpha_fprm, alpha_fptm): New external vars.
+	(alpha_fprm_string, alpha_fptm_string, alpha_tp_string): Likewise.
+	(TARGET_IEEE{,_WITH_INEXACT,_CONFORMANT}): New macros.
+	(MASK_IEEE{,_WITH_INEXACT,_CONFORMANT}): Likewise.
+	(MASK_FP, MASK_FPREGS,
+	(TARGET_SWITCHES): Added "ieee-conformant", "ieee", and
+	"ieee-with-inexact"; use MASK symbols.
+	(TARGET_OPTIONS): New macro.
+	(OVERRIDE_OPTIONS, FINAL_PRESCAN_{INSN,LABEL}): New macros.
+	(PRINT_OPERAND_PUNCT_VALID_P): Allow operand codes for FP insns.
+	(CC1_SPEC): New macro.
+	* alpha.c (alpha_tp, alpha_fprm, alpha_fptm): New variables.
+	(alpha_tp_string, alpha_fprm_string, alpha_fptm_string
+	(trap_pending): Likewise.
+	(override_options, summarize_insn, final_prescan_insn): New functions.
+	(print_operand): Handle cases '&', '\'', ')', and '+'.
+	(output_prolog): Emit ".eflag 48" if TARGET_IEEE_CONFORMANT.
+	(output_epilog): Call final_prescan_insn before emitting epilog.
+
+	* final.c (final_scan_insn, case CODE_LABEL): Invoke
+	FINAL_PRESCAN_INSN if FINAL_SCAN_LABEL is defined.
+
+	* alpha/{linux.h,x-linux,xm-linux.h}: New files.
+	* configure (alpha-*-linux*): New case.
+	* alpha.c (output_prolog): Set alpha_function_needs_gp if profiling
+	and TARGET_PROFILING_NEEDS_GP defined.
+
+Thu Mar 14 22:28:20 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Fix last change.
+	* aix41.h (LINK_SPEC): add -bnoentry if shared and no explicit entry.
+
+Thu Mar 14 12:47:33 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* mips.h (ASM_OUTPUT_DOUBLE_INT): Use 'X' if CONST_INT and
+	HOST_BITS_PER_WIDE_INT == 64.
+
+	* mips.c (mips_expand_prologue): Change TYPE_NEEDS_CONSTRUCTING to
+	TREE_ADDRESSABLE;
+
+Thu Mar 14 11:21:37 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): For 32-bit mode,
+	allow TImode variables with int offsets, so that structures
+	greater than 8 bytes and less than or equal to 16 bytes can be
+	instantiated correctly.
+
+	* rs6000.c (rs6000_valid_type_attribute_p): Add exception
+	attribute for Windows NT.
+
+	* win-nt.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete, merge into
+	ASM_DECLARE_FUNCTION_NAME.
+	(ASM_DECLARE_FUNCTION_NAME): Add support for exception attribute
+	setting fields 3 & 4 of the structured exception handling table.
+
+Thu Mar 14 01:53:19 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.h (ASM_DECLARE_FUNCTION_NAME): Change TYPE_NEEDS_CONSTRUCTING
+	to TREE_ADDRESSABLE.  From Jim Wilson.
+
+Wed Mar 13 13:40:32 1996  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* c-tree.h (warn_sign_compare): Add extern to declaration.
+
+Wed Mar 13 13:37:00 1996  Doug Evans  <dje@cygnus.com>
+
+	* configure: Use cross-make and build-make if building
+	cross compiler with cross compiler.
+
+Wed Mar 13 12:00:34 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* i386/cygwin32.h (ASM_OUTPUT_ALIGN): Correct defination.
+
+	* rs6000/{win-nt,cygwin32}.h (STARTFILE_SPEC): Add crti.o before
+	all objects.
+	(ENDFILE_SPEC): Add crtn.o after all objects.
+
+	* configure (powerpcle-*-cygwin32): Use t-winnt, not t-cygin32
+	* rs6000/t-cygwin32: Delete, no longer used.
+
+	* rs6000/t-winnt ({,INSTALL_}LIBGCC): Build and install crti.o and
+	crtn.o.
+
+	* rs6000/win-nt.h (EXTRA_SECTION_FUNCTIONS): Add ctors_section and
+	dtors_section.
+	(INVOKE__main): Define, so that __main is called.
+	(ASM_OUTPUT_{CONSTRUCTOR,DESTRUCTOR}): Define to put pointers to
+	the constructor/destructor in the appropriate section.
+
+	* nt-c{i,n}.asm: New files to be linked before/after all of the users'
+	objects.
+
+Wed Mar 13 00:42:17 1996  Per Bothner  <bothner@cygnus.com>
+
+	* dbxout.c (dbxout_type):  Better "variant" handling to ignore
+	const/volatile but not typedef names.  Improves Feb 12 change.
+
+Tue Mar 12 17:25:14 1996  David Mosberger-Tang  <davidm@azstarnet.com>
+
+	* glimits.h (__LONG_MAX__): On Alpha, use 64 bit value.
+
+Tue Mar 12 15:07:49 1996  Torbjorn Granlund  <tege@tmg.se>
+
+	* m68k.c (valid_dbcc_comparison_p): Don't test cc_prev_status here.
+	(flags_in_68881): New function.
+	* m68k.md (dbra peepholes): Use flags_in_68881.
+
+Tue Mar 12 13:54:15 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* sparc.md (nonlocal_goto): Emit barrier after jump.
+	(setjmp{,_64,_32}): New patterns.
+
+Tue Mar 12 12:43:27 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* i960/i960.h (ROUND_TPE_SIZE): Return round_up result instead of
+	COMPUTED.
+
+	* expr.c (expand_expr, case COMPONENT_REF): For unaligned object in
+	an aligned union, delete check for EXPAND_SUM.
+
+	* expr.h (clear_storage): Add comment terminator.
+
+Mon Mar 11 19:07:50 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* recog.c (constrain_operands, case 'V'): Don't call
+	offsettable_memref_p before reload has completed.
+
+Mon Mar 11 16:06:13 1996  Doug Evans  <dje@cygnus.com>
+
+	* h8300/h8300.h (SP_AND_G_REGS): Renamed from SP_AND_G_REG.
+	(CC_DONE_CBIT): Delete.
+	(CC_OVERFLOW_0,CC_OVERFLOW_UNUSABLE,CC_NO_CARRY): Define.
+	* h8300/h8300.c (cond_string): Delete CC_DONE_CBIT handling.
+	(notice_update_cc): Delete CC_CBIT, CC_WHOOPS.  Add CC_SET_ZN_C0.
+	(restore_compare_p): New function.
+	(shift_one): Use shll instead of shal so overflow bit is usable.
+	Set cc_valid bits to cc_status.flags values.
+	(emit_a_shift): Set cc_status.flags.
+	* h8300/h8300.md (attr cc): Delete whoops,cbit.  Add set_zn_c0.
+	(all patterns) Update cc attr setting.
+	(tstqi,tsthi,tstsi): Delete CC_DONE_CBIT handling.
+	(addhi3,subhi3): Change define_expand to define_insn.
+	(branch_true,branch_false): Check if compare needs to be restored.
+
+Mon Mar 11 13:55:23 1996  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.h (CONST_DOUBLE_OK_FOR_LETTER_P): Add 'H' for movdi
+	patterns in 32 bit that generate 3 instructions.
+	(num_insns_constant): Add declaration.
+
+	* rs6000.c (num_insns_constant{,_wide}) Functions to determine the
+	number of insns it takes to generate an integer constant.
+	(easy_fp_constant): Allow DImode in easy constants.  Use
+	num_insns_constant_wide.
+	(input_operand): Allow any CONST_{INT,DOUBLE}'s for {SI,DI}mode.
+
+	* rs6000.md (movdi): Generate a normal movdi using a CONST_DOUBLE
+	for 32 bit mode rather than using SUBREG's.  For 64 bit mode,
+	break large integer constants into smaller pieces.  Add various
+	define_splits to handle loading the various DImode constants.
+
+Mon Mar 11 06:54:19 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (make_extraction): Use proper mode for INNER in all cases.
+	(simplify_comparison, case ZERO_EXTRACT): For bits big endian and
+	no extzv, use BITS_PER_WORD.
+	* fx80.md, gmicro.md, i386.md, m68k.md, tahoe.md, vax.md:
+	Use proper modes and predicates for {sign,zero}_extract.
+
+Sun Mar 10 06:23:52 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+	* emit-rtl.c (free_insn): New variable.
+	(init_emit, restore_emit_status): Clear it.
+	(gen_sequence): Store insn in free_insn when sequence length is 1.
+	(make_insn_raw): Use free_insn if available and still in the
+	rtl generation phase.
+
+Fri Mar  8 15:37:31 1996  Mike Stump  <mrs@cygnus.com>
+
+	* expr.c (expand_expr, case TARGET_EXPR): Delay putting the cleanup
+	on the cleanup chain until after the subexpression has been expanded.
+
+Fri Mar  8 16:14:51 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+        * i386.c (ix86_binary_operator_ok): one memory operand is OK.
+        This is independent of commutativity.
+
+Fri Mar  8 14:07:43 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* expr.c (store_constructor_field): Call store_field if bitpos is
+	nonzero and target is not a MEM.
+
+	* jump.c (jump_optimize): When handle a USE insn before an
+	unconditional jump, disable the optimization if the USE is the
+	only insn in the loop.
+
+	* sh.c (reg_unused_after): Return 0 if see a JUMP_INSN.
+
+Fri Mar  8 12:08:36 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc/lynx.h (CPP_SPEC): Use %(cpp_cpu).
+
+	* sparc/sparc.md (move_pic_label_si,move_label_di): Rewrite length
+	attr calcs to be more conservative.
+
+Thu Mar  7 19:14:21 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc/t-splet: New file.
+	* sparc/splet.h: New file.
+	* configure (sparclet-*-aout*): Use them.
+
+	* sparc/sparc.h (MASK_LIVE_G0,TARGET_LIVE_G0): Define.
+	(FIRST_PSEUDO_REGISTER): Add 1 for %icc (now 101).
+	(FIXED_REGISTERS,CALL_USED_REGISTERS): Update.
+	(FIXED_REGISTERS): %g0 is fixed by default.
+	(SPARC_{FIRST,LAST}_V9_FCC_REG): Define.
+	(SPARC_{ICC,FCC}_REG): Define.
+	(CONDITIONAL_REGISTER_USAGE): Don't fix %fcc0 if v8.
+	(REG_CLASS_CONTENTS): Reg 0 is an int reg, reg 100 is %icc.
+	(REGNO_REG_CLASS): Rewrite to use global `sparc_regno_reg_class'.
+	(REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER,LEAF_REGISTERS): Add %icc.
+	(REG_CLASS_FROM_LETTER): Handle 'c' for FPCC_REGS in non-v9 case.
+	(REGNO_OK_FOR_{BASE,INDEX}_P): Treat %g0 as a normal reg.
+	(REG_OK_FOR_{BASE,INDEX}_P,EXTRA_CONSTRAINT): Likewise.
+	(REGISTER_NAMES): Add %icc.
+	(ADDITIONAL_REGISTER_NAMES): Use SPARC_ICC_REG.
+	* sparc/sparc.c (leaf_reg_remap): Add %icc=100.
+	(reg_or_0_operand): Don't allow 0 if TARGET_LIVE_G0.
+	(fcc_reg_operand): Renamed from ccfp_reg_operand.
+	Use SPARC_FCC_REG.  Don't treat reg 0 as an fcc reg.  Don't match
+	modes if `mode' argument is VOIDmode.
+	(icc_or_fcc_reg_operand): New function.
+	(gen_compare_reg): Use SPARC_FCC_REG for v8 fp compares.
+	Use SPARC_ICC_REG for int compares.
+	(eligible_for_epilogue_delay): Don't allow anything if TARGET_LIVE_G0.
+	Delete unnecessary test for %g0.
+	(emit_move_sequence): Don't emit (set (mem) (const_int 0)) if
+	TARGET_LIVE_G0.
+	(output_scc_insn): Label moved to operand 3.  Condition code reg
+	moved to operand 2.
+	(sparc_mode_class): Enum C_MODE renamed to CC_MODE.
+	(hard_32bit_mode_classes): Set reg 0 to S_MODES.  Add entry for %icc.
+	(hard_64bit_mode_classes): Set reg 0 to D_MODES.  Add entry for %icc.
+	(sparc_regno_reg_class): New global.
+	(sparc_init_modes): Initialize it.
+	(output_cbranch): Delete fp_cond_reg argument.
+	(print_operand, MEM op): Don't print "%g0+" if TARGET_LIVE_G0.
+	(sparc_flat_eligible_for_epilogue_delay): Don't allow anything if
+	TARGET_LIVE_G0.
+	* sparc/sparc.md (live_g0): New attribute.
+	(*): Integer condition code register is now reg 100.
+	Use SPARC_ICC_REG instead of hardcoding reg 100 where possible.
+	Non-v9 floating point condition code register is now reg 96.
+	(*cmp{sf,df,tf}_{fpe,fp}_sp{32,64}): Combine v9/non-v9 cases.
+	(*{normal,inverted}_{,fp,fpe}_branch): Update call to output_cbranch.
+	(*mov{qi,hi,si}_insn): Don't use if TARGET_LIVE_G0.
+	(*mov{qi,hi,si}_insn_liveg0): New patterns.
+	(*mov{si,di,sf,df,tf}_ccfp{,e}_sp64): ccfp_reg_operand renamed to
+	fcc_reg_operand.
+	(*negdi2_sp32,negsi2,one_cmplsi2,ffssi2): Ensure %%g0 is 0 if
+	TARGET_LIVE_G0.
+	(*one_cmpldi2_sp32): Move operand 1 to rs1 and use 0 as rs2.
+	(patterns that use %g0 in rs2): Use 0 immediate value instead.
+	(patterns that read %g0): Don't use if TARGET_LIVE_G0.
+
+Thu Mar  7 15:39:16 1996  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* sh.h (PASS_IN_REG_P): Change < to <=.
+	* va-sh.h (va_start): Change __SH3E___ to __SH3E__.
+	(va_arg): Add little-endian SH3E support.  Fix big-endian version
+	to work for arguments smaller than the word size.
+
+Thu Mar  7 10:37:37 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* lib2funcs.asm: Remove entry/exit routines.  Move them into...
+	* ee.asm: New file.  Entry/exit code.
+	* ee_fp.asm: New file.  Entry/exit code with frame pointer.
+	* t-pa: Corresponding changes.
+	* t-pro: Corresponding changes.
+
+	* pa.c: Fix misc small typos/thinkos in recent changes.
+
+Wed Mar  6 17:36:03 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* cplus-dem.c (demangle_template): Fix for address-of-extern arguments.
+
+Wed Mar  6 15:12:55 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* t-pro (dp-bit rule): Fix typo.
+
+	* lib2funcs.asm (__outline_prologue): Remove frame pointer
+	support.
+	(__outline_prologue_fp): Out of line prologue with frame pointer.
+	(__outline_epilogue, outline_epilogue_fp): Similarly.
+	* pa.c (compute_frame_size): Allocate enough space to avoid holes
+	in the callee register saves.  Remove some special handling of %r3.
+	(hppa_expand_prologue): Don't do an out of line prologue/epilogue
+	if it would take more insns than an inline prologue/epilogue.
+	Don't leave holes in the callee register save set.
+	(hppa_expand_prologue): Corresponding changes.  Pass stack size
+	to out of line epilogue code.
+	* pa.h (FRAME_POINTER_REQUIRED): Revert last change.
+	* pa.md (outline_prologue_call): Handle outline prologues which
+	don't need frame pointers.
+	(outline_epilogue_call): Similarly.
+	* t-pro: Reenable multilib code.  Build a set of libraries that
+	optimize for space.
+
+Wed Mar  6 14:28:14 1996  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* Makefile.in (USER_H): Add ginclude/va-sh.h.
+	* ginclude/stdarg.h, ginclude/varargs.h: Use va-sh.h.
+	* ginclude/va-sh.h: New file.
+
+	* sh.h (PASS_IN_REG_P): Fix typo in last change.
+
+Wed Mar  6 11:42:06 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.h (enum processor_type): Remove PROCESSOR_PPC602.
+	(RTX_COSTS): Remove PROCESSOR_PPC602.  PPC603 MULT cost depends
+	on constant and domain.
+	* rs6000.c (processor_target_table): 602 uses PROCESSOR_PPC603.
+	(get_issue_rate): Remove CPU_PPC602.
+	* rs6000.md (function units): Remove PPC602.  Add store and
+	fpstore type attribute values.  Update patterns.
+
+Tue Mar  5 18:43:43 1996  Richard Henderson  <rth@tamu.edu>
+
+	* m68k/coff.h (ASM_OUTPUT_SECTION_NAME): New define.
+
+	* m68k/{aux-crt1.c,aux-crt[2n].asm}: New files.
+	* m68k/{aux-exit.c,aux-low.gld,aux-mcount.c}: More new files.
+	* m68k/{aux.h,auxgnu.h,auxstd.h}: Even more new files.
+	* m68k/{t-aux,xm-aux.h}: The rest of the new files.
+	* m68k/sgs.h (ASM_OUTPUT_CASE_END): Add missing semicolon.
+	(switch_table_difference_label_flag): Make extern.
+	* fixincludes (sys/param.h): Fix c89 __asm statements.
+	* configure (m68k-apple-aux*): New target.
+
+Tue Mar  5 17:38:19 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc.md (*mov{qi,hi,si}_insn): Simplify length attribute.
+	(*movsi_insn): Use fpload/fpstore attributes for fp loads/stores.
+	%r1 -> %1 for fpstore alternative.
+	(*movsf_insn,*movsf_no_f_insn): %r1 -> %1.
+
+Tue Mar  5 17:19:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* expr.c (expand_expr, case *_DECL): If we make a non-local
+	reference from a function with DECL_NO_STATIC_CHAIN set, abort.
+	(expand_expr, case ADDR_EXPR): We don't need a trampoline for a
+	function with DECL_NO_STATIC_CHAIN set.
+	* function.c (lookup_static_chain): If we're checking on a function
+	that doesn't need a static chain, return 0.
+	(init_function_start): We don't need context if DECL_NO_STATIC_CHAIN
+	is set.
+	* tree.c (staticp): Check DECL_NO_STATIC_CHAIN on nested functions.
+
+Tue Mar  5 15:04:29 1996  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* sh.md (push_e, pop_e): Add TARGET_SH3E to condition.
+	* sh.h (JUMP_TABLES_IN_TEXT_SECTION): Define.
+	* sh.c (find_barrier): Set si_limit to 1018 instead of 1020, and
+	hi_limit to 510 instead of 512.
+
+Tue Mar  5 13:39:44 1996  Doug Evans  <dje@cygnus.com>
+
+	* loop.c (init_loop): Use pseudo reg in add_cost computation
+	so cost doesn't vary depending on whether reg 0 happens to be
+	fixed or not.
+
+Tue Mar  5 09:32:24 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+	* reg-stack.c (record_label_references): Check for undefined label.
+
+Tue Mar  5 09:22:20 1996  Scott Christley (scottc@net-community.com)
+
+	* objc/objc-api.h, objc/runtime.h: Include objc/thread.h.
+	* objc/class.c (__objc_init_class_tables): Surround sarray access
+	with mutex lock/unlock.
+	(__objc_add_class_to_hash, objc_lookup_class): Likewise.
+	(objc_get_class, objc_get_next_class): Likewise.
+	(__objc_resolve_class_links, class_pose_as): Likewise.
+	* objc/init.c (__objc_runtime_mutux, __objc_runtime_thread_alive):
+	New variables.
+	(objc_init_statics, __objc_init_protocols): Surround sarray access
+	with mutex lock/unlock
+	(__objc_exec_class): Likewise.
+	Initialization for thread-safe global variables.
+	Declarations for thread-safe functions and global variables
+	* objc/sendmsg.c (get_imp, __objc_responds_to):
+	Surround sarray access with mutex lock/unlock.
+	(__objc_init_install_dtable): Likewise.
+	(__objc_update_dispatch_table_for_class): Likewise.
+	(__objc_print_dtable_stats): Likewise.
+	* objc/selector.c (sel_get_typed_uid, sel_get_any_typed_uid): Likewise.
+	(sel_get_any_uid, sel_get_name, sel_register_name): Likewise.
+	(sel_register_typed_name): Likewise.
+	* objc/sarray.h (union sversion): New.
+	(struct sarray): Maintain multiple versions.
+	(sarray_remove_garbage): Add prototype.
+	* objc/sarray.c (sarray_{remove,free}_garbage): New functions.
+	(sarray_at_put, sarray_new, sarray_lazy_copy):
+	Modify/copy sarray structure/data in a thread-safe manner
+	(sarray_{realloc,free}): Reallocate/free sarray structure/data in a
+	thread-safe manner.
+
+	* objc/THREADS, objc/thread.c, objc/thread.h: New files.
+	* objc/thread-{decosf1,irix,solaris,win32,single}.c: New files.
+	* objc/objc-list.h: Renamed from objc/list.h.
+	* objc/Makefile: Changes to compile new files and name renaming.
+	* objc/makefile.dos: Likewise.
+
+Tue Mar  5 07:51:31 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* bc-emit.c, bc-optab.c (free): Delete declaration of library function.
+
+	* c-decl.c (duplicate_decl): If making decl non-external, copy
+	context from old to new.
+
+Tue Mar  5 02:27:35 1996  Jeffrey A. Law  <law@cygnus.com
+
+	* lib2funcs.asm (__outline_prologue): New "function".
+	(__outline_epilogue): New "function".
+	* pa.h (TARGET_SPACE): Define.
+	(target_flags): Add -mspace and -mno-space.  Enable/disable
+	space saving optimizations.
+	(FRAME_POINTER_REQUIRED): Frame pointers are always required
+	when generating out of line prologues and epilogues.
+	* pa.c (compute_frame_size): Handle out of line prologues/epilogues.
+	(hppa_expand_prologue): If optimizing for space, emit an out of
+	line prologue.
+	(hppa_expand_epilogue): Similarly.
+	(override_options): Optimizing for space is not compatable with
+	either profiling or PIC code generation.
+	* pa.md (outline_prologue_call): New pattern.
+	(outline_epilogue_call): Likewise.
+
+Tue Mar  5 02:17:32 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc.md (*cmp{si,di}_insn): %r0 -> %0.
+	(DFmode move define_split): Ensure registers not extended v9 fp regs.
+	(*mov{sf,df,tf}_cc_reg_sp64): %r3 -> %3.
+
+Mon Mar  4 18:46:37 1996  Manfred Hollstein  <manfred@lts.sel.alcatel.de>
+
+	* Makefile.in (CRT0STUFF_T_CFLAGS): New macro.
+	(stamp-crt0, crt0.o, mcrt0.o): New goals.
+	(STAGESTUFF): stamp-crt0 added.
+
+	* collect2.c (main): Check new define DEFAULT_A_OUT_NAME.
+
+	* m68k.c (print_operand): Emit .l as scale factor #ifdef MOTOROLA.
+	* m68k/mot3300-crt0.S, m68k/mot3300Mcrt0.S: New files.
+	* m68k/mot3300g.h: Deleted.
+	* m68k/mot3300.h (FUNCTION_PROFILER): Emit label references
+	corresponding to those generated by ASM_OUTPUT_INTERNAL_LABEL.
+	(MOTOROLA, MOTOROLA_BSR, ...): Define #ifndef USE_GAS.
+	(ASM_SPEC): Define properly #ifdef USE_GAS.
+	(LIB_SPEC): -L/usr/lib/libp deleted.
+	(STARTFILE_SPEC): -L/usr/lib/libp added.
+	(DEFAULT_A_OUT_NAME): Define.
+	(LINK_SPEC): Pass -v if GNU ld is used.
+	(LOCAL_LABEL_PREFIX): Local labels start with .L using GAS, else L%.
+	(USER_LABEL_PREFIX): Undefine.
+	(FUNCTION_PROFILER): Call asm_fprintf instead of normal fprintf.
+	(ASM_APP_ON, ASM_FILE_START): GAS supports it.
+	(CTORS_.../DTORS_...): Define if GNU ld is used.
+	(ASM_FILE_START): Define properly for Motorola and GNU as syntax.
+	(TARGET_VERSION): Re-define only #ifndef USE_GAS.
+	(CALL_USED_REGISTERS): Deleted.
+	(GLOBAL_ASM_OP): Re-define only #ifndef USE_GAS.
+	(ASM_{LONG,SHORT,CHAR,BYTE,BYTE_OP}): New macros.
+	(ASM_OUTPUT_{DOUBLE,LONG_DOUBLE,FLOAT,INT,SHORT}): Use them.
+	(ASM_OUTPUT_{CHAR,BYTE,ASCII,FLOAT_OPERAND,DOUBLE_OPERAND}): Likewise.
+	(ALIGN_ASM_OP, SKIP_ASM_OP): New macros.
+	(ASM_OUTPUT_{ALIGN,SKIP}): Use them.
+	(ASM_OUTPUT_SOURCE_FILENAME): Define only if not using GNU as.
+	(ASM_{GENERATE,OUTPUT}_INTERAL_LABEL): Provide proper definitions for
+	Motorola and GNU as syntax.
+	(ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Changed for portability between
+	Motorola and GNU as syntax.
+	(ASM_OUTPUT_{CASE_LABEL,OPCODE}): Define only if not using GNU as.
+	(ASM_OUTPUT_CASE_FETCH, ASM_RETURN_CASE_JUMP): New macros.
+	(ASM_OUTPUT_{COMMON,LOCAL}): Proper defns for Motorola and gas syntax.
+	(SDB_...): Define only for Motorola as.
+	(ALT_LIBM): New define to tell g++.c about an alternative name for
+	`-lm'.
+	(MATH_LIBRARY, NEED_ATEXIT, HAVE_ATEXIT, EXIT_BODY): New macros.
+	* m68k/t-mot3300, m68k/t-mot3300-{gald,gas,gld}: New files.
+	* m68k/x-mot3300-gas: New file.
+	* m68k/xm-mot3300.h (USG): Set to 1.
+	* configure (m68k-motorola-sysv*): Keep track of new different
+	combinations (--with-gnu-...), and provide proper definitions for
+	tm_file, xmake_file, tmake_file, use_collect2, and extra_parts.
+
+	* gbl-ctors.h (HAVE_ATEXIT): Define if NEED_ATEXIT is defined.
+	(atexit): Use `int atexit' prototype also if NEED_ATEXIT is defined.
+	(on_exit): According to man on_exit on the Sun it returns int not void.
+	* libgcc2.c (L_bb/atexit, onexit): Declarations replaced by
+	#include'ing "gbl-ctors.h".
+	(L_exit/atexit): New function.
+	(L_exit/exit): Call any registered functions.
+
+Mon Mar  4 18:03:38 1996  Bryan Ford  (baford@cs.utah.edu)
+
+	* configure (i[3456]86-moss-msdos*): New target.
+	* i386/moss.h: New file.
+
+Mon Mar  4 17:38:50 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* sh.h (PASS_IN_REG_P): Don't reject BLKmode for SH3e.
+	For SH3e, do reject parameter that won't fit entirely in registers.
+
+	* sh.md (mulhisi3-2, mulhisi3-1, mulsidi3_i, umulsidi3_i,
+	smulsi3_highpart, umulsi3_highpart): Renames operands 1/2 to 0/1.
+	(mulsidi3, umulsidi3): Add support for TARGET_LITTLE_ENDIAN.
+
+	* sh.c (machine_dependent_reorg): In TARGET_RELAX code, when scan
+	forward from LINK, fail if pass a CODE_LABEL before finding INSN.
+	Fail if SCAN not INSN is a JUMP_INSN.
+
+Mon Mar  4 11:27:10 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.h (CALL_LONG): Change CALL_xx values from an enumeration
+	to bitmasks.  Add CALL_LONG to support longcall attributes.
+	(rs6000_args): Call_cookie field is now an int.
+	(rs6000_longcall_ref): Add declaration.
+
+	* rs6000.c (init_cumulative_args): Add support for longcall
+	attributes to always call through a pointer.
+	(function_arg): Ditto.
+	(rs6000_valid_type_attribute_p): Ditto.
+	(rs6000_longcall_ref): New function for long calls.
+
+	* rs6000.md (call insns): Add support for longcall attributes.
+
+Mon Mar  4 08:42:14 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+	* real.c (significand_size): Don't test the modes, but their sizes.
+
+	* dwarfout.c (xstrdup): Moved from here.
+	* toplev.c (xstrdup): New function.
+	* tree.h (xstrdup): Declare.
+	* bc-emit.c (bc_xstrdup): Delete.
+	* expr.c (bc_strdup): Delete.
+	(bc_load_externaddr_id): Use xstrdup instead of bc_xstrdup.
+	* function.c (bc_expand_function_start): Likewise.
+	* 1750a.c (strdup): Delete.
+	(float_label): Use xstrdup instead of strdup.
+	* 1750a.h (xstrdup): Declare instead of instead of strdup.
+	(ASM_OUTPUT_LABEL): Use xstrdup instead of strdup.
+	(FIX_FRAME_POINTER_ADDRESS): Don't use DEPTH in string.
+
+Mon Mar  4 08:23:23 1996  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* xm-we32k.h (NO_WAIT_H): Deleted.
+
+	* collect2.c: Never include wait.h.
+
+Sat Mar  2 22:43:07 1996  Torbjorn Granlund  <tege@spiff.gnu.ai.mit.edu>
+
+	* configure (code for making links): Work around sh bug on FreeBSD.
+
+Sat Mar  2 13:40:29 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* h8300.h (BIGGEST_FIELD_ALIGNMENT): Replace uses of
+	TARGET_ALIGN_STRUCT_300 with TARGET_ALIGN_300.
+	(BIGGEST_ALIGNMENT): Likewise.
+
+Sat Mar  2 08:04:50 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* calls.c (expand_call): If passing by invisible ref, not const.
+
+	* sparc.c (SKIP_CALLERS_UNIMP_P): Make agree with test used in call.
+
+	* expr.c (do_jump, case COMPOUND_EXPR): Call preserve_temp_slots.
+
+	* fold-const.c (fold, case *_DIV_EXPR): Ignore SAVE_EXPR if has RTL.
+
+Fri Mar  1 17:59:17 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* optabs.c (emit_cmp_insn): Immediately copy the return
+	value from the library call into a pseudo register.
+	(emit_float_lib_cmp): Likewise.
+
+Fri Mar  1 14:37:40 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/sysv4.h (BSS_SECTION_ASM_OP): Define.
+	(*_SECTION_ASM_OP): Change tab after .section into a space.
+	(ASM_OUTPUT_INT): Ditto.
+	(ASM_OUTPUT_ALIGNED_LOCAL): Rewrite to use bss_section.
+	(ASM_OUTPUT_ALIGNED_BSS): Define to use ASM_GLOBALIZE_LABEL and
+	ASM_OUTPUT_ALIGNED_LOCAL.
+
+	* rs6000/win-nt.h (BSS_SECTION_ASM_OP): Define.
+	(ASM_OUTPUT_ALIGNED_LOCAL): Define.
+	(ASM_OUTPUT_LOCAL): Don't define any more.
+	(ASM_OUTPUT_ALIGNED_BSS): Define to use ASM_GLOBALIZE_LABEL and
+	ASM_OUTPUT_ALIGNED_LOCAL.
+
+Thu Feb 29 17:33:12 1996  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* c-typeck.c (push_init_level): When output padding to align structure
+	field, set constructor_unfilled_fields.
+
+	* dbxout.c (dbxout_type, case METHOD_TYPE): Add CHARS (1) call
+	after emitting second '#' character.
+
+Thu Feb 29 13:59:27 1996  Doug Evans  <dje@charmed.cygnus.com>
+
+	* h8300/h8300.h (ASM_OUTPUT_BSS): Define.
+	* m68k/coff.h (BSS_SECTION_ASM_OP): Define.
+	(ASM_OUTPUT_ALIGNED_BSS): Define.
+	* m68k/m68k-aout.h (BSS_SECTION_ASM_OP): Define.
+	(ASM_OUTPUT_BSS): Define.
+
+Thu Feb 29 13:39:39 1996  Per Bothner  <bothner@cygnus.com>
+
+	* varasm.c (compare_constant_1):  For a SET_TYPE CONSTRUCTOR,
+	first extract and compare the set length.
+
+	* varasm.c (record_constant_1):  For SET_TYPE CONSTRUCTOR,
+	permanent_obstack.next_free is *end* of available space.
+
+Thu Feb 29 13:14:14 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.h (TARGET_SWITCHES): Add new flags "-mlong-load-store" and
+	"-mno-long-load-store".
+	(TARGET_LONG_LOAD_STORE): Define.
+	* pa.md (symbolic high part): Handle TARGET_LONG_LOAD_STORE.
+
+Thu Feb 29 11:39:30 1996  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386/i386.md (cmpxf*): XF compare cannot have mem operands.
+	(casesi expand): Put (minus:SI..) into subsi3 format.
+	* i386/i386.c (i386_return_pops_args): Cleanup extra argument
+	used as address of a returned structure.
+
+Wed Feb 28 22:24:28 1996  Doug Evans  <dje@cygnus.com>
+
+	* varasm.c (enum in_section): Define in_bss if BSS_SECTION_ASM_OP
+	is defined.
+	(bss_section,asm_output_bss,asm_output_aligned_bss): New functions.
+	(assemble_variable): Delete redundant test for too large an object.
+	Rewrite test for uninitialized variables.  Use new macros
+	ASM_OUTPUT{,_ALIGNED}_BSS if defined to output global uninitialized
+	but not common variables.
+	* bytecode.h (BC_OUTPUT_BSS): Define.
+	* lynx.h (EXTRA_SECTIONS): Delete in_bss.
+	(EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION.
+	* svr3.h (EXTRA_SECTIONS): Likewise.
+	(BSS_SECTION_FUNCTION): Delete.
+	* convex/convex.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete.
+	* dsp16xx/dsp16xx.h (EXTRA_SECTIONS): Delete in_bss.
+	(EXTRA_SECTION_FUNCTIONS): Delete bss_section.
+	* gmicro/gmicro.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete.
+	* i386/aix386ng.h (EXTRA_SECTION_FUNCTIONS): Delete
+	BSS_SECTION_FUNCTION.
+	* i386/att.h (BSS_SECTION_FUNCTION): Delete.
+	* i386/sco5.h (EXTRA_SECTIONS): Delete in_bss.
+	(EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION.
+	(BSS_SECTION_FUNCTION): Delete.
+	* i386/seq-sysv3.h (BSS_SECTION_FUNCTION): Delete.
+	* i386/svr3gas.h (EXTRA_SECTIONS): Delete in_bss.
+	(EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION.
+	(BSS_SECTION_FUNCTION): Delete.
+	* i860/paragon.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Undef.
+	* m68k/crds.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete.
+	(BSS_SECTION_ASM_OP): Define.
+	* m68k/m68k.h (BC_OUTPUT_BSS): Define.
+	* mips/iris6.h (EXTRA_SECTIONS): Delete in_bss.
+	* pa/pa.h (EXTRA_SECTIONS): Delete in_bss.
+	(EXTRA_SECTION_FUNCTIONS): Delete bss_section.
+	* sparc/litecoff.h (EXTRA_SECTIONS): Delete in_bss.
+
+Wed Feb 28 14:12:25 1996  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* sh.h (FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P): Include FP
+	registers only when TARGET_SH3E.
+	(PASS_IN_REG_P): Exclude BLKmode only when ! TARGET_SH3E.
+
+Wed Feb 28 12:03:26 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.c (rs6000_trampoline_{template,size}): Change the Windows
+	NT trampoline template so that it doesn't require making the stack
+	executable.  Add support for 64 bit systems.
+	(rs6000_initialize_trampoline): Ditto.
+
+Tue Feb 27 16:42:00 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.c (print_operand): New code 'H'.
+	* rs6000.md (insv, extzv): Add DImode patterns.  Use 'h'
+	consistently for masking SImode shifts.
+	(rotldi3, ashldi3, lshrdi3, ashrdi3): Use 'H'.
+	(movsf split): Generate CONST_INT instead of SUBREG.
+
+Tue Feb 27 15:02:17 1996  Doug Evans  <dje@cygnus.com>
+
+	* sh/sh.h (HANDLE_PRAGMA): Delete `return'.
+
+Tue Feb 27 08:18:12 1996  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* arm.c (aof_text_section): Remove pseudo read-only hack.  Doesn't
+	take a parameter any more.
+	* arm/aof.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove
+	readonly data sections.
+	(READONLYDATA_SECTION, READONLY_DATA_SECTION): Delete.
+
+	* arm.h (enum arm_cond_code): New enum.
+	(ARM_INVERSE_CONDITION_CODE): Moved here from arm.c.
+	(SELECT_CC_MODE): Call arm_select_cc_mode to do the work.
+	(PREDICATE_CODES): Add dominant_cc_register; delete
+	reversible_cc_register.
+	* arm.c (arm_current_cc): Now an enum.
+	(ARM_INVERSE_CONDITION_CODE): Moved to arm.h
+	(revsersible_cc_register): Delete.
+	(dominant_cc_register): New function.
+	(select_dominance_cc_mode): New function.
+	(arm_select_cc_mode): New function.
+	(output_return_instruction): New parameter REVERSE, used to
+	reverse the condition of a conditional return.  All callers
+	changed.
+	(arm_print_operand case 'D'): Only suppress condition printing
+	if the operand is a NULL pointer.
+	(get_arm_condition_code): Now a static function returning
+	enum arm_cond_code.  Handle dominance expressions.  Return enum
+	values rather than integers.
+	* arm.md (*addsi3_compare0_scratch): New insn.
+	(*movsi_compare0, *cmpsi_insn, *cmpsi_shiftsi): Make sure the
+	compare has mode CC.
+	(cmp{si,sf,df,xf} expands): Just provide sufficient information
+	to allow the parameters to be matched properly.
+	(*cmpsi_negsi): Delete (of dubious validity).
+	(*cmpsi_shiftsi_swp): New pattern.
+	(*condbranch_reversed): No longer needs to check REVERSIBLE_CC_MODE.
+	(mov{si,sf,df}cc, *mov{si,sf,df}{,_hard,_soft}_insn): The mode of the
+	IF_THEN_ELSE must be appropriate to the target (not void).
+	(*and_scc): Match cc_register, not reversible_cc_register.
+	(*ior_compare_compare): Delete.
+	(split for ior_compare_compare + condjump): Delete.
+	(*impossible_cond_compare): Delete.
+	(*condition_compare_ior): Delete.
+	(*cond_move): Mode for the IF_THEN_ELSE must be SImode.
+	(*and_scc_scc): Delete.
+	(split for and_scc_scc + condjump): Delete.
+	(*impossible_cond_branch_and): Delete.
+	(*cmp_ite0, *cmp_ite1): New patterns.
+	(if_compare_not): Should be an anonymous pattern.
+	(Peephole for move and compare): Compare mode must be mode CCmode.
+	(Split pattern for comparing shifted reg then branch): Delete.
+	(*loadqi_compare): Delete, replaced with a split pattern to do
+	the same thing.
+	(*cond_move_not): Match cc_register, not reversible_cc_register.
+
+	* arm.c ({load,store}_multiple_sequence): New functions.
+	(emit_{ldm,stm}_seq): New functions.
+	* arm.md (load/store multiple peepholes): Rewrite using the above
+	functions.
+	(all patterns taking immediate_operand): If the code later assumes
+	this is a CONST_INT, then match const_int_operand instead.
+
+Mon Feb 26 17:26:13 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc/sparc.md: Add sparclet scheduling parameters.
+	(compare define_insn's): Move closer to compare define_expand's.
+	(32 bit multiply patterns): Use for TARGET_SPARCLET.
+	(*smacsi,*smacdi,*umacdi): Multiply/accumulate patterns for the
+	sparclet.
+
+Sat Feb 24 19:13:29 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.md (movsf split): Fix typo in last patch.
+
+Sat Feb 24 10:02:55 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* toplev.c (fatal_insn): Flush stdout/stderr.
+
+Sat Feb 24 02:03:28 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.md (abssi2): Rework to avoid matching constraints.
+
+Fri Feb 23 11:21:43 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.c (override_options): Warn if both PIC code generation and
+	profiling are requested.
+
+Fri Feb 23 08:47:38 1996  Richard Kenner  (kenner at vlsi1)
+
+	* expr.c (expand_builtin, case BUILT_IN_SETJMP): Set CONST_CALL_P
+	on NOTE_INSN_SETJMP instead of emitting USE insns for call-saved regs.
+	* reload1.c (reload): For special CONST_CALL_P NOTE_INSN_SETJMP,
+	mark all call-saved regs as used.
+	* sched.c (sched_analyze): Record NOTE_INSN_SETJMP if no
+	CALL_INSN as prev; preserve CONST_CALL_P bit.
+	(reemit_notes): Restore CONST_CALL_P.
+
+Thu Feb 22 17:45:12 1996  Doug Evans  <dje@cygnus.com>
+
+	* configure (sparclet-*-aout*): Set extra_headers.
+	* ginclude/inl-sparc.h: New file.
+
+Wed Feb 21 20:39:53 1996  Doug Evans  <dje@cygnus.com>
+
+	* configure (sparc64-*-solaris2*): Merge with sparc-*-solaris2*.
+	* sparc/sparc.h (enum processor_type): Declare.
+	(sparc_cpu_attr): Define.
+	(TARGET_OPTIONS): Add -mtune=.
+	(sparc_select): Declare.
+	(sparc_cpu_string): Delete.
+	(FIRST_PSEUDO_REGISTER): Set to 100.
+	({FIXED,CALL_USED}_REGISTERS): Merge !v9/v9 cases.
+	(CONDITIONAL_REGISTER_USAGE): Mark %g5 as fixed if !v9.
+	Mark %g1 as fixed if v9.  Fix v9-only regs if !v9.
+	Mark fp{16..47} as call-saved if v9.
+	(enum reg_class): Merge !v9/v9 cases.
+	(REG_CLASS_NAMES,REG_CLASS_CONTENTS,REGNO_REG_CLASS): Likewise.
+	(REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER,LEAF_REGISTERS): Likewise.
+	(FP_REG_CLASS_P,SPARC_REGISTER_NAMES): Likewise.
+	(REG_CLASS_FROM_LETTER): Test TARGET_V9 at runtime.
+	* sparc/sparc.c (sparc_cpu_string): Delete.
+	(sparc_select): New global.
+	(sparc_override_options): Handle -mtune=xxx.
+	* sparc/sparc.md (cpu attr): Add sparc{lite,let} implementations.
+	* sparc/sp64-sol2.h: Deleted.
+
+	* arm/arm.md (consttable_end): Delete call to text_section.
+	(align_4): Delete call to readonly_data_section.
+
+Wed Feb 21 14:29:06 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+        * cplus-dem.c (demangle_template): Initialize is_bool.  Correctly
+        handle 0 as a pointer value parameter.
+
+Wed Feb 21 14:13:29 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* tree.c (decl_function_context): Do decl_function_context right for
+	function-local classes.
+
+Wed Feb 21 12:42:52 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* c-typeck.c (initializer_constant_valid_p): Don't dereference
+	a null pointer on partial structure initialization.
+
+Wed Feb 21 11:49:58 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000/rs6000.h (ASM_OUTPUT_EXTERNAL): Append section info
+	even when verbatim symbol prefix '*' present.
+	* rs6000/aix3newas.h (ASM_OUTPUT_EXTERNAL): Same.
+	* rs6000/aix41.h (ASM_OUTPUT_EXTERNAL): Same.
+	* rs6000/powerpc.h (ASM_OUTPUT_EXTERNAL): Same.
+	* rs6000/win-nt.h (ASM_OUTPUT_EXTERNAL): Same.
+
+Wed Feb 21 03:55:32 1996  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (validate_else): Don't loop given `#endif /'.
+	Handle multiple adjacent backslash-newlines correctly.
+	Accept a new parameter LIMIT to specify end of input;
+	this prevents confusion when the input contains '\0' characters.
+
+	(collect_expansion): Fix off-by-1 error when searching for `*/'
+	at end of a comment used for traditional token concatenation.
+
+	(macarg1): Fix off-by-1 error when skipping past `*/'
+	at end of comment.
+
+Tue Feb 20 16:12:31 1996  Doug Evans  <dje@cygnus.com>
+
+	* hard-reg-set.h (twice unrolled GO_IF_HARD_REG_EQUAL): Add missing \.
+
+Tue Feb 20 14:21:16 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.h (DBX_CONTIN_LENGTH): Define to 4000 characters.
+
+	* pa.c (hppa_expand_epilogue): Always emit a blockage insn
+	before cutting back the stack.
+
+Mon Feb 19 19:42:15 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* sparc/sparc.h (TARGET_SWITCHES): Add -m{,no-}impure-text.
+	(MASK_IMPURE_TEXT, TARGET_IMPURE_TEXT): Define.
+	(LINK_SPEC): Only add `-assert pure-text' if -mimpure-text wasn't used.
+
+Mon Feb 19 19:20:15 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+	* configure (sparc-aout): sparc-aout.h renamed to aout.h.
+	(sparclet-aout): Likewise.
+	(sparclite-*-aout*): Renamed from sparclite-*-*.
+	Don't set use_collect2.
+	(target_cpu_default): Set to TARGET_CPU_<cpu> for sparc.
+
+	* sparc/sparc.h (TARGET_CPU_sparc{,let,lite,64}): Define.
+	({CPP,ASM}_DEFAULT_SPEC): Set from TARGET_CPU_foo.
+	(SPARC_ARCH64 CPP_PREDEFINES): Define __arch64__.
+	(CPP_SPEC): Add %(cpp_cpu).
+	(CPP_CPU_SPEC): Define.
+	(CC1_SPEC): Convert -m<cpu> to -mcpu=<cpu>.
+	(ASM_SPEC): Add %(asm_cpu).
+	(ASM_CPU_SPEC): Define.
+	(EXTRA_SPECS,SUBTARGET_EXTRA_SPECS): Define.
+	(OVERRIDE_OPTIONS): Call SUBTARGET_OVERRIDE_OPTIONS after
+	sparc_override_options.
+	({MASK,TARGET}_SUPERSPARC): Delete.
+	({MASK,TARGET}_SPARCLET): Define.
+	(MASK_ISA): Renamed from MASK_CPUS.
+	(TARGET_SWITCHES): Delete no-{v8,sparclite}.
+	(sparc_cpu,sparc_cpu_string): Declare.
+	({SUB,}TARGET_OPTIONS): Define.
+	(FIXED_REGISTERS): Add definitions for sparc64 in 32 bit mode.
+	(CONDITIONAL_REGISTER_USAGE): Don't set fixed_regs[234] if sparc64.
+	Don't set call_used_regs[48..80] for sparc64 in 32 bit mode.
+	Don't clobber fixed_regs[234] if -ffixed- was passed.
+	(ADJUST_COST): Change test for supersparc.
+	* sparc/sparc.c (sparc_cpu_string,sparc_cpu): New globals.
+	(sparc_override_options): Set ISA and CPU from sparc_cpu_string.
+	Delete tests for v9 only switches if not v9.
+	Error if -mcpu=v9 and v9 support not compiled in.
+	* sparc/sol2.h (CPP_SPEC): Use %(cpp_cpu).
+	(ASM_SPEC): Likewise.
+	(ASM_{DEFAULT,CPU}_SPEC): Use Solaris syntax for sparc64.
+	* sparc/sysv4.h (ASM_SPEC): Add %(asm_cpu).
+	* sparc/t-sparcbare (MULTILIB_*): -mv8 renamed to -mcpu=v8.
+	* sparc/t-sparclite (MULTILIB_*): Delete msoft-float and mno-flat,
+	they're the defaults.  Add -mcpu=f934 as synonym for -mfpu.
+	* ginclude/va-sparc.h (__arch64__): Renamed from __sparc_v9__.
+
+	* sparc/lite.h: #include aoutos.h.
+	(TARGET_DEFAULT): Use MASK_FOO values.
+	* sparc/sp64-aout.h: #include aoutos.h.
+	(TARGET_DEFAULT): Add MASK_APP_REGS.
+	(JUMP_TABLES_IN_TEXT_SECTION,READONLY_DATA_SECTION): Delete.
+	* sparc/sp64-elf.h (TARGET_DEFAULT): Add MASK_APP_REGS.
+ 	(CPP_PREDEFINES): Define __arch64__.
+	* sparc/sp64-sol2.h (TARGET_DEFAULT, SUBTARGET_SWITCHES): Delete.
+	(ASM_SPEC): Delete.
+
+	* sparc/sparc.h ({MASK,TARGET}_FRW): Delete.
+	(FRAME_POINTER_REQUIRED,INITIAL_FRAME_POINTER_OFFSET,
+	BASE_{INCOMING_ARG,OUTGOING_VALUE}_REG,INCOMING_REGNO,OUTGOING_REGNO,
+	FUNCTION_{PROLOGUE,EPILOGUE},DELAY_SLOTS_FOR_EPILOGUE): TARGET_FRW
+	renamed to TARGET_FLAT.
+
+	* sparc/sparc.md (cpu attr): Add all cpu variants.
+	(negtf2,negdf2,abstf2,absdf2): Use isa attr, not arch attr, in
+	determining insn lengths.
+
+	* sparc/aout.h: Renamed from sparc-aout.h.
+	(CPP_PREDEFINES): Delete __GCC_NEW_VARARGS__.
+	Add -Acpu(sparc) -Amachine(sparc).
+
+Mon Feb 19 17:49:08 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.md (movsf split): Use SUBREG not operand_subword.
+	(movdf split): operand_subword TARGET_32BIT and new split using
+	SUBREG for TARGET_64BIT.
+	* rs6000.c (easy_fp_constant): Rewrite to not use operand_subword.
+	(input_operand): Remove final add_operand test made irrelevant by
+	Dec. 8 change.
+	(output_toc): Handle DImode values.
+
+Mon Feb 19 13:38:00 1996  Lee Iverson  <leei@Canada.AI.SRI.COM>
+
+	* i386/sol2.h (SWITCH_TAKES_ARG): Restore -R.
+	* sparc/sol2.h (SWITCH_TAKES_ARG): Likewise.
+
+Mon Feb 19 08:19:00 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* hard-reg-set.h (HARD_REG macros): If there are more than
+	HOST_BITS_PER_WIDE_INT hard registers and less than or equal to
+	4*HOST_BITS_PER_WIDE_INT hard registers, unroll the loops by hand.
+
+Mon Feb 19 07:35:07 1996  Torbjorn Granlund  <tege@tmg.se>
+
+	* rs6000.md (not:SI with assign and compare): Fix typo.
+	* (not:DI with assign and compare): Likewise.
+
+Mon Feb 19 07:17:25 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* sparc.md (nonlocal_goto): No longer need USE of %o0.
+	(goto_handler_and_restore): Show uses %o0.
+
+	* combine.c (force_to_mode, case IOR): Fix typo in commuting
+	IOR and LSHIFTRT.
+
+	* alpha.c (call_operand): If in REG, only reg 27 valid.
+
+Mon Feb 19 06:57:34 1996  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* emit-rtl.c (operand_subword): For 32-bit targets, return
+	the appropriate subword of extended precision CONST_DOUBLEs.
+
+	* arm.c (offsettable_memory_operand): New function.
+	(alignable_memory_operand): New function.
+	(gen_rotated_half_load): New function.
+	(get_arm_condition_code): Extract the mode of the comparison and
+	use it to generate the correct return value.
+	* arm.h (EXTRA_CC_MODES, EXTRA_CC_NAMES): Add CC_Zmode.
+	(SELECT_CC_MODE): return CC_Zmode if the operand is QImode.  Allow LT
+	and GE comparisons in CC_NOOVmode.
+	(PREDICATE_CODES): add offsettable_memory_operand and
+	alignable_memory_operand.
+	* arm.md (*zeroextract[qs]i_compare0_scratch): Use const_int_operand
+	for operands 1 and 2.
+	(split patterns for aligned memory half-word operations): New patterns.
+	(movhi): Handle memory accesses where the alignment is known in a more
+	efficient manner.
+	(*compareqi_eq0): Use CC_Zmode.
+
+Mon Feb 19 05:34:08 1996  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* toplev.c (lang_options): Add -W{no-,}sign-compare.
+
+	* c-tree.h: Declare warn_sign_compare.
+
+	* c-typeck.c (build_binary_op): Check warn_sign_compare rather
+        than extra_warnings to decide whether to warn about comparison of
+        signed and unsigned.
+
+	* c-decl.c (c_decode_option): Handle warn_sign_compare.  -Wall
+        implies -Wsign-compare.
+
+Sun Feb 18 21:13:44 1996  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* c-lex.c (yylex, case '0'..'9','.'): For cases '0' and '1',
+	check for single digit constant before resorting to general
+	number processing.
+
+Sun Feb 18 19:29:44 1996  J.T. Conklin  <jtc@netbsd.org>
+
+	* m68k.h (TARGET_68060): New macro.
+	(TARGET_SWITCHES): Add -m68060.
+	* m68k.md (const_umulsi3_highpart): Disable for TARGET_M68060.
+	(ftruncdf2, ftruncsf2, muldf3, mulsidi3): Likewise.
+	(smulsi3_highpart, umulsi3_highpart, umulsidi3): Likewise.
+
+	* {m68k,ns32k,sparc}/netbsd.h (DBX_NO_XREFS): Removed.
+
+Sun Feb 18 13:29:56 1996  Charles M. Hannum  (mycroft@netbsd.org)
+
+	* c-common.c (check_format_info): Warn about `L' if -pedantic.
+
+Fri Feb 16 20:13:23 1996  Paul Eggert  <eggert@twinsun.com>
+
+	* c-typeck.c (convert_for_assignment):
+	Bring back conversion to union without a cast,
+	undoing the Jan 16 change, but with the following differences:
+
+	- The union must have the transparent_union attribute.
+	- The conversion must be for a function argument.
+	- Warn consistently about such conversions if pedantic.
+	- Do not warn about an assignment incompatibility for one union member
+	  if another union member is compatible with no warning.
+
+Fri Feb 16 12:06:21 1996  Stan Cox  <coxs@spiff.gnu.ai.mit.edu>
+
+	* i386.c (ix86_*_binary_operator*): Allow CONST_INT as operand1
+	of MINUS.
+	* i386/dgux.h (OPTIMIZATION_OPTIONS): Call optimization_options.
+
+Fri Feb 16 08:39:47 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure: Change stdout report when have multiple files in
+	tm_file, host_xm_file, or build_xm_file.
+	(a29k-*-bsd): Use both a29k.h and unix.h.
+	(a29k-*-udi): Rename a29k-udi.h to udi.h;
+	use a29k.h, dbxcoff.h, and it.
+	(a29k-*-vxworks): Use a29k.h, dbxcoff.h, a29k/udi.h, and a29k/vx29k.h.
+	(alpha-dec-osf[23456789]*): Use alpha.h, not osf2.h.
+	(alpha-dec-osf1.2): Use alpha.h and alpha/osf12.h.
+	(alpha-*-osf*): Add explicit assignment of tm_file.
+	* a29k/udi.h: Renamed from a29k-udi.h.
+	Don't include a29k.h or dbxcoff.h.
+	* a29k/unix.h: Don't include a29k.h.
+	* a29k/vx29k.h: Don't include a29k-udi.h.
+	* alpha.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use unsigned int.
+	* alpha/osf2.h: Deleted.
+	* alpha/osf12.h: Don't include alpha.h.
+	(WCHAR_TYPE, WCHAR_TYPE_SIZE): Use short unsigned int.
+	* alpha/win-nt.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use short unsigned int.
+
+Thu Feb 15 18:26:04 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/ntstack.asm (__allocate_stack): Round up length to 16
+	byte boundary.
+
+	* rs6000.md (allocate_stack): On Windows NT, call set_sp to
+	indicate to CSE that the stack pointer changes with the call to
+	__allocate_stack.
+	(set_sp): New pattern.
+
+Thu Feb 15 16:49:15 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* integrate.c (save_for_inline_copying): Allocate reg_map with size
+	based on regno_pointer_flag_length instead of max_reg+1.
+
+Thu Feb 15 07:48:34 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fixincludes (rpc/types.h): Remove spurious "ls" command.
+
+	* reload1.c (eliminate_regs, case USE): If using a register that
+	is source of elimination, show can't be eliminated.
+
+	* expr.c (expand_builtin, case BUILT_IN_SETJMP): Shows clobbers FP
+	and all caller-save registers.
+	Set current_function_has_nonlocal_goto.
+
+Wed Feb 14 13:51:55 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.md (fix_truncdfsi2): Use SUBREG not operand_subword.
+	(movdi): Test HOST_BITS_PER_WIDE_INT at build time.
+	* collect2.c (scan_libraries): Append '/' to import path if missing.
+
+Wed Feb 14 09:01:55 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.md (movdi): Use HOST_WIDE_INT, not long long.
+
+Tue Feb 13 19:36:21 1996  Per Bothner  <bothner@cygnus.com>
+
+	* expr.c (store_constructor):  Fix flow control thinko (merge error).
+	* expr.c (store_constructor):  Pass correct value to recursive call.
+
+Wed Jan 31 11:34:45 1996  Mike Stump  <mrs@cygnus.com>
+
+	* expr.c (expand_expr, case TARGET_EXPR): We must always store
+	into the allocated slot for TAREGT_EXPRs.
+
+Tue Feb 13 18:27:05 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+	* configure (powerpc-ibm-aix3): Look for 3.2.x, not 3.2x.
+
+	* fixincludes (memory.h): Fix it also on sysV68.
+
+Tue Feb 13 17:59:03 1996  Lee Iverson  <leei@Canada.AI.SRI.COM>
+
+	* gcc.c (DEFAULT_SWITCH_TAKES_ARG): New macro, from SWITCH_TAKES_ARG.
+	(SWITCH_TAKES_ARG): Use it.
+	* i386/{osfrose,sol2}.h (SWITCH_TAKES_ARG): Likewise.
+	* mips/{gnu,mips}.h (SWITCH_TAKES_ARG): Likewise.
+	* sparc/sol2.h (SWITCH_TAKES_ARG): Likewise.
+	* config/svr4.h (SWITCH_TAKES_ARG): Likewise.
+
+Tue Feb 13 17:43:46 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* integrate.c (save_constants_in_decl_trees): New function.
+	(save_for_inline_copying, save_for_inline_nocopy): Call it.
+
+Tue Feb 13 17:40:27 1996  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* expr.c (convert_move): Fix typo in extendqfh2 case.
+
+	* reload1.c (reload): Make some non-group code no longer
+ 	conditional on SMALL_REGISTER_CLASSES.
+
+Tue Feb 13 17:30:45 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+	* pdp11.c: #include flags.h
+	(output_function_prologue, function_epilogue): Remove declarations
+	of call_used_regs and frame_pointer_needed.
+
+	* c-common.c (overflow_warning): Fix typo in warning message.
+
+	* c-decl.c (finish_decl): TREE_ASM_WRITTEN says if duplicate_decls
+	modified declaration to match an outside file scope declaration.
+
+	* stmt.c (expand_end_case): Don't use ADDR_DIFF_VEC for PIC if
+	ASM_OUTPUT_ADDR_DIFF_ELT is not defined.
+	* a29k.h, romp.h (ASM_OUTPUT_ADDR_DIFF_ELT): Remove.
+
+Tue Feb 13 13:36:36 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/cygwin32.h (CPP_PREDEFINES): Do not define PPC, just
+	define __PPC__.  Also define _ARCH_PPC to be compatible with the
+	other rs6000/powerpc ports.
+	* rs6000/win-nt.h (CPP_PREDEFINES): Ditto.
+
+	* rs6000/cygwin32.h (LIBGCC_SPEC): Don't define, always link in.
+	(SDB_DEBUGGING_INFO): Undef.
+	(DBX_DEBUGGING_INFO): Define.
+	(PREFERRED_DEBUGGING_TYPE): Define as DBX_DEBUG.
+
+	* rs6000/t-{cygwin32,winnt} (MULTILIB*): Remove multilib support.
+
+	* rs6000/x-cygwin32 (LANGUAGES): Delete, don't override.
+
+	* rs6000/ntstack.asm: New file to provide __allocate_stack, which
+	guarantees all pages in a dynamically allocated stack frame are
+	touched in order, so that the stack is properly grown.
+
+	* rs6000/cgywin32.asm: Delete unused file.
+
+	* rs6000/t-{cygwin32,winnt} (LIB2FUNCS_EXTRA): Add ntstack.S
+	to libgcc2 build.
+
+	* rs6000.md (allocate_stack): For NT, call __allocate_stack to
+	bump the stack if the size is large or variable.
+
+	* libgcc1-test.c (mainCRTStartup,__start): New startup functions
+	to silence more linkers.
+
+Tue Feb 13 13:30:53 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* expr.c (store_constructor_field): Only call change_address if
+	bitpos is nonzero.
+
+Tue Feb 13 08:21:01 1996  Fila Kolodny <fila@ibi.com>
+
+	* i370/mvs.h (CPP_SPEC): Add '-trigraphs' because IBM's h files
+	contain them.
+
+Tue Feb 13 08:17:52 1996  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
+
+	* c-typeck.c (quality_type prototype): Typo, rename as
+	qualify_type.
+	(build_binary_op): Fix precedence errors.
+	* combine.c (force_to_mode, num_sign_bit_copies, simplify_comparison):
+	Fix precedence errors.
+	* emit-rtl.c (gen_lowpart): Could return without a value.
+	* jump.c (jump_optimize): Fix potential infinite loop.
+	* reg-stack.c (record_reg_life_pat): Fix precedence error.
+	* reload1.c (emit_reload_insns): Fix precedence errors.
+	* stmt.c (bc_pushcase): Fix precedence error.
+
+Mon Feb 12 23:14:02 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* toplev.c (rest_of_compilation): Also set RTX_INTEGRATED_P when
+ 	we aren't going to emit the inline just yet.
+
+Mon Feb 12 21:31:02 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* rtl.h (INLINE_REGNO_POINTER_FLAG, INLINE_REGNO_POINTER_ALIGN):
+	Add one to array index.
+
+Mon Feb 12 20:55:39 1996  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+	* configure (i[345]86-*-linux*): Set tmake_file t-linux.
+	Add crtbeginS.o and crtendS.o to extra_parts.
+	* i386/linux.h (CC1, LIB_SPEC): Deleted.
+	* config/linux.h (STARTFILE_SPEC): Add crtbeginS.o if -shared.
+	(CC1_SPEC): New.
+	(LIB_SPEC): Remove %{mieee-fp:-lieee}; use -lc_p for -profile.
+	* config/t-linux: New file.
+
+Mon Feb 12 20:42:11 1996  Randy Smith  <randys@camaro.osf.org>
+
+	* i386/x-osfrose (XCFLAGS{,_NODEBUG}): Remove $(SHLIB).
+	(XCFLAGS): New variable.
+	(libdir, mandir, bindir): Delete.
+	* i386/t-osf: New file.
+	* i860/paragon.h (STARTFILE_SPEC): Make gcc find crt0.o, not loader.
+	(LIB_SPEC): Remove /usr/lib.
+	* Makefile.in (TCFLAGS): New variable.
+	(GCC_CFLAGS): Add $(TCFLAGS).
+	(LIBGCC2_CFLAGS): Add -D for __GCC_FLOAT_NOT_NEEDED.
+	(libgcc1-test): Remove -nostdlib.
+	(float.h-cross): Don't give error #ifdef __GCC_FLOAT_NOT_NEEDED.
+	* enquire.c: Define __GCC_FLOAT_NOT_NEEEDED.
+	* configure (i[3456]86-*-osfrose): Add t-osf as tmake_file.
+
+Mon Feb 12 18:43:54 1996  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
+
+	* 1750a.c (add_1_to_mem): Corrected.
+
+Mon Feb 12 18:23:35 1996  Doug Evans  <dje@cygnus.com>
+
+	* configure (sparclet-*-aout*): New configuration.
+
+Mon Feb 12 14:43:50 1996  Per Bothner  <bothner@cygnus.com>
+
+	Changes to distinguish typedef from original type in debug output.
+	* tree.h (DECL_ORIGINAL_TYPE):  New macro.
+	* tree.c (copy_node):  Zero out type.symtab union.
+	* c-decl.c (pushdecl):  Set DECL_ORIGINAL_TYPE for typedef origin.
+	* dbxout,c (dbxout_type):  Don't canonicalize typedef type to base.
+
+Mon Feb 12 12:01:16 1996  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* arm/arm.h: (CPP_SPEC): Define __ARMEB__, __ARMEL__, and
+	__ARMWEL__ depending on the endian flags passed to the compiler.
+	(ARM_FLAG_LITTLE_WORDS): Define.
+	(TARGET_SWITCHES): Add option -mwords-little-endian.
+	(TARGET_LITTLE_WORDS): Define.
+	(WORDS_BIG_ENDIAN): Select based on the endian switches.
+	(LIBGCC2_WORDS_BIG_ENDIAN): Define based on run-time endian
+	defines.
+	* arm/arm.c (output_move_double): Cope with both word-endian
+	alternatives.  Remove extraneous parameters from calls to
+	output_mov_immediate.
+	(arm_print_operand): New print code 'Q' for the least significant
+	register of a DImode operand.  Make code 'R' always print the
+	most significant register, rather than the highest numbered.
+	* arm/arm.md (all DImode output patterns): Use print code
+	'Q' to access the least significant word.  Make sure the
+	patterns are fully aware of the word endianness.
+
+	* arm/semi.h (CPP_SPEC):  Define __ARMEB__, __ARMEL__, and
+	__ARMWEL__ depending on the endian flags passed to the compiler.
+	(LINK_SPEC): Pass -EB to the linker if compiling for big-endian
+	mode.
+	(ASM_SPEC): Likewise for the assembler.
+	* arm/semiaof.h (CPP_SPEC):  Define __ARMEB__, __ARMEL__, and
+	__ARMWEL__ depending on the endian flags passed to the compiler.
+
+Mon Feb 12 10:15:29 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Permit tm_file and xm_file to be a list of header
+	file names, rather than just a single file.  For many targets,
+	handle --with-stabs by adding dbx.h to tm_file, rather than using
+	a different tm_file.
+	* dbx.h: New file.
+	* alpha/gdb-osf2.h: Remove.
+	* alpha/gdb-osf12.h: Remove.
+	* alpha/gdb.h: Remove.
+	* i386/sysv4gdb.h: Remove.
+	* mips/iris5gdb.h: Remove.
+	* mips/iris4gl.h: Remove.
+	* mips/iris4gdb.h: Remove.
+	* mips/iris3gdb.h: Remove.
+	* mips/dec-gosf1.h: Remove.
+	* mips/news4-gdb.h: Remove.
+	* mips/news5-gdb.h: Remove.
+	* mips/svr4-t-gdb.h: Remove.
+	* mips/ultrix-gdb.h: Remove.
+	* mips/bsd-5-gdb.h: Remove.
+	* mips/bsd-4-gdb.h: Remove.
+	* mips/svr4-5-gdb.h: Remove.
+	* mips/svr4-4-gdb.h: Remove.
+	* mips/svr3-5-gdb.h: Remove.
+	* mips/svr3-4-gdb.h: Remove.
+	* mips/mips-5-gdb.h: Remove.
+	* mips/ecoffl-gdb.h: Remove.
+	* mips/ecoff-gdb.h: Remove.
+	* mips/mips-4-gdb.h: Remove.
+
+Mon Feb 12 07:22:20 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* integrate.c (save_for_inline_copying): Put virtual regs into
+	new regno_reg_rtx copy.
+
+Sun Feb 11 18:53:12 1996  Torbjorn Granlund  <tege@noisy.tmg.se>
+
+	* i386.md: Delete spurious integer subtract patterns.
+	Delete % from subtract operand constraints.
+
+Sun Feb 11 19:17:24 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* m68k.md (movqi): Call CC_STATUS_INIT when loading to/from
+	an address register via a data register.
+
+Sun Feb 11 08:44:49 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-common.c (check_format_info): Handle missing type in format
+	when terminated by a new `%'.
+
+Sat Feb 10 15:14:22 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* cross-make (STMP_FIXPROTO): Moved from here to build-make.
+	* build-make (STMP_FIXPROTO): Moved here from cross-make.
+
+Sat Feb 10 08:39:05 1996  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
+
+	* 1750a.md (movstrqi): Corrected.
+	(zero_extendqihi2): Taken out, let GCC synthesize.
+	(movhi-1): Added insn to move HImode small constant to memory.
+	(movhf-1): Added insn to move HFmode zero to memory.
+	(movtqf-1): Added insn to move TQFmode zero to memory.
+	(numerous insns): Taken out B (Base Reg with Index) mode.
+
+	* 1750a.c (movcnt_regno_adjust): Corrected.
+	(mov_memory_operand, zero_operand): Added.
+	(b_mode_operand): Corrected.
+	(simple_memory_operand, add_1_to_mem): Added.
+	(print_operand_address): Corrected case of 'Q' output modifier.
+
+	* 1750a.h (REG_ALLOC_ORDER): Changed back to natural order.
+	(CONST_DOUBLE_OK_FOR_LETTER_P): Added letter 'G'.
+	(EXIT_IGNORE_STACK): Set to 0.
+	(REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Use corresponding REGNO_OK.
+	(MOVE_MAX, MOVE_RATIO): Defined.
+
+Sat Feb 10 08:28:12 1996  Martin Anantharaman  <martin@goofy.imech.uni-duisburg.de>
+
+	* configure (m68k-*-psos*): New configuration.
+	* psos.h: New file.
+	* m68k/m68k-psos.h: New file.
+
+Sat Feb 10 08:07:52 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* sched.c (flush_pending_lists): Add new arg, ONLY_WRITE.
+	(sched_analyze_{1,2,insn}): Add new arg to flush_pending_lists.
+	(sched_analyze): Always flush pending write list for call, even const.
+
+	* integrate.c (save_for_inline_copying): Put reg_map in function's
+	maybepermanent obstack instead of using alloca; set regno_reg_rtx
+	to it; delete recently-added copying of this later.
+
+Sat Feb 10 00:49:58 1996  Doug Evans  <dje@cygnus.com>
+
+	* sched.c (add_dependence): Add test for next != CODE_LABEL.
+
+Fri Feb  9 16:10:04 1996  Stan Cox  (coxs@dg-rtp.dg.com)
+
+	* i386.md (fp, integer): Added function units for pentium.
+	(cmp*,mov*,add*,sub*,mul*,div*,extend*,trunc*,and*,ior*,xor*,neg*,
+	abs*,sqrt*,sin*,cos*,not*,ash*,lsh*,rot*,sub): Tightened constraints,
+	added attribute support, and made changes for new `binary' and
+	`unary' functions.
+
+	* i386.c (processor_costs): New variable.
+	(optimization_options, ix86_expand_binary_operator,
+	ix86_binary_operator_ok, ix86_expand_unary_operator,
+	ix86_unary_operator_ok, is_mul, is_div, copy_all_rtx, rewrite_address,
+	last_to_set_cc, doesnt_st_condition_code, sets_condition_code,
+	str_immediate_operand, is_fp_insn, is_fp_dest, is_fp_store,
+	agi_dependent, reg_mentioned_in_mem): New functions.
+
+	* i386/i386.h (OPTIMIZATION_OPTIONS, ALIGN_DFmode, IS_STACK_MODE,
+	IX86_EXPAND_BINARY_OPERATOR): New macros.
+	(RTX_COSTS, REGISTER_MOVE_COST, ADJUST_BLOCKAGE) Changed for pentium.
+
+Fri Feb  9 14:47:27 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc.c (sp64_medium_pic_operand): New function.
+	(move_pic_label): Delete.
+	(legitimize_pic_address): Simplify using some named patterns.
+	(finalize_pic): Add preliminary sparc64 support.
+	(emit_move_sequence): Reorganize.
+	* sparc.md (pic_lo_sum_si,pic_sethi_si,get_pc_sp32,get_pc_sp64,
+	move_pic_label_si,move_label_di,sethi_di_sp64): Make named patterns.
+	(sethi_di_sp64_const,sethi_di_medium_pic): New anonymous patterns.
+	(move_pic_label_si,move_label_di): Optimize for near labels.
+	(tablejump): Use for TARGET_MEDANY.
+	(casesi): Delete.
+
+Fri Feb  9 13:48:45 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* mips.md (probe+2, probe+4): New conditional move patterns.
+	(movsicc): Don't truncate comparison if it is DImode.
+
+	* sh.h (CPP_SPEC): Add defines for -m1, -m2, and -m3.
+
+Fri Feb  9 09:11:28 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* toplev.c (rest_of_compilation): Set RTX_INTEGRATED_P in
+	INLINE_HEADER iff function is inlineable.
+	* calls.c (expand_call): Test RTX_INTEGRATED_P in DECL_SAVED_INSNS.
+
+Thu Feb  8 01:11:15 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.md (floatunssisf2 expander): Don't use "general_operand".
+	(floatunssidf2 expander): Likewise.
+
+Wed Feb  7 16:59:31 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/{sysv4,win-nt,netware,cygwin32}.h ({ASM,LINK}_SPEC):
+	Don't use %{V} for either linker or assembler.
+
+Tue Feb  6 17:22:29 1996  Per Bothner  <bothner@cygnus.com>
+
+	* dbxout.c (dbxout_range_type):  Emit non-range INTEGER_TYPE
+	as a sub-range of itself (so gdb can tell the difference).
+
+Tue Feb  6 17:01:44 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.md (addsi3 and adddi3 split): Use cleaner computation
+	and portable HOST_WIDE_INT.
+	(iordi3 split): Use HOST_WIDE_INT.
+	(movdi): Add TARGET_64BIT support and generate 64 bit constants.
+	(movdi matcher, TARGET_POWERPC64): Add immediate constraint handled
+	by new define_split.
+	(allocate_stack): Use TARGET_32BIT.
+	(tablejump): Add TARGET_64BIT support using ...
+	(tablejumpsi): Rename original tablejump pattern.
+	(tablejumpdi): New pattern.
+
+Tue Feb  6 15:29:22 1996  Per Bothner  <bothner@cygnus.com>
+
+	* stor-layout.c (layout_type):  Use same code to layout CHAR_TYPE
+	as for INTEGER_TYPE (instead of hard-wiring in QImode).
+
+Tue Feb  6 15:13:38 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.md (various patterns): Avoid using "general operand" in
+	define_insn patterns.
+
+Sun Feb  4 21:37:05 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/eabi{,sim}.h (LINK_START_SPEC): Bump the default start address
+	for the simulator to 0x10000074 so that we don't waste a page in the
+	linked file.
+
+Fri Feb  2 19:44:10 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/eabi-c{i,n}.asm (.sdata2, .sbss2): Put these in the
+	read-only section, not read-write.
+
+	* libgcc2.c (__unwind_function, rs6000/powerpc): Use _ARCH_PPC
+	being defined to indicate to use PowerPC mnemonics.
+
+	* config/rs6000/t-cygwin32 (MULTILIB*): Add software floating
+	point support.
+
+Thu Feb  1 09:10:02 1996  Steve Chamberlain  <sac@slash.cygnus.com>
+
+	* config/{i386,rs6000}/cygwin32.{asm,h}: New templates.
+	* config/{i386,rs6000}/{t,x}-cygwin32: Ditto.
+	* config/{i386,rs6000}/xm-cygwin32.h: Ditto.
+	* configure.in (powerpcle-*-cygwin32, i[3456]86-*-cygwin32): New.
+
+Fri Feb  2 17:42:40 1996  Paul Eggert  <eggert@twinsun.com>
+
+	* c-decl.c (finish_struct):
+	Fix typo in transparent union warning that led to core dump.
+
+	* c-parse.in (stmt): Warn about `goto *expr;' if pedantic.
+	(label): Warn about `case expr ... expr:' if pedantic.
+
+Fri Feb  2 11:05:27 1996  Doug Evans  <dje@cygnus.com>
+
+	* h8300/h8300.h (TARGET_ALIGN_300): Renamed from
+	TARGET_ALIGN_STRUCT_300.
+	(TARGET_SWITCHES): Rename -malign-struct-300 to -malign-300.
+	(BIGGEST_ALIGNMENT): Use TARGET_ALIGN_300.
+
+Fri Feb  2 08:25:49 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* flow.c (jmp_uses_reg_or_mem): Renamed from uses_reg_or_mem.
+	Don't look into condition of an IF_THEN_ELSE; also make faster.
+	(find_basic_blocks): Use new name.
+
+Fri Feb  2 06:49:56 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+	* reload.c (debug_reload): Fix typo for reload_noncombine.
+
+Thu Feb  1 21:49:02 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa-pro.h (TARGET_DEFAULT): Turn on TARGET_SOFT_FLOAT by
+	default for all pro targets.
+	* t-pro: Delete all multilib references.
+
+Thu Feb  1 17:50:02 1996  Doug Evans  <dje@cygnus.com>
+
+	* c-lex.c (check_newline): Return result of HANDLE_PRAGMA.
+	* h8300/h8300.h (HANDLE_PRAGMA): Pass result back to caller.
+	* i960/i960.h (HANDLE_PRAGMA): Likewise.
+	* sh/sh.h (HANDLE_PRAGMA): Likewise.
+	* nextstep.h (HANDLE_PRAGMA): Likewise.
+
+Wed Jan 31 19:26:03 1996  Doug Evans  <dje@cygnus.com>
+
+	* m68k/m68k-none.h: Rewrite to use EXTRA_SPECS.
+	* m68k/vxm68k.h (CPP_SPEC): Delete.
+	(SUBTARGET_EXTRA_SPECS): Define.
+
+Wed Jan 31 15:10:59 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.c (output_epilog): Fix PPC64 typos and use TARGET_32BIT.
+	(output_prolog): Same.
+	(rs6000_trampoline_template, rs6000_trampoline_size): Use TARGET_32BIT.
+	* rs6000.md (movdf TARGET_POWERPC64 matcher): Fix std typo.
+	(movdi TARGET_POWERPC64 matcher): Same.
+
+Wed Jan 31 09:46:11 1996  Richard Earnshaw (rearnshaw@armltd.co.uk)
+
+	* regs.h (regno_pointer_align, REGNO_POINTER_ALIGN): Delete from
+	here...
+	* rtl.h (regno_pointer_align, REGNO_POINTER_ALIGN): ... and put
+	them here.
+
+Wed Jan 31 08:26:12 1996  Andreas Schwab  (schwab@issan.informatik.uni-dortmund.de)
+
+	* m68k/linux.h (STRICT_ALIGNMENT): Define to zero.
+	(LEGITIMATE_PIC_OPERAND_P): Match definition from m68kv4.h.
+
+	* m68k.h (TRAMPOLINE_{TEMPLATE,SIZE}): Avoid need for helper function.
+	(INITIALIZE_TRAMPOLINE): Likewise.
+	(TRAMPOLINE_ALIGNMENT): Renamed from TRAMPOLINE_ALIGN.
+	* m68k/next.h (INITIALIZE_TRAMPOLINE): Adjusted accordingly.
+
+	* m68kv4.h (STATIC_CHAIN_REGNUM): Redefine to use register a1.
+	(TRAMPOLINE_TEMPLATE): Likewise.
+
+	* m68k/linux.h, m68kv4.h (LIBCALL_VALUE): Return XFmode value in fp0.
+	* m68k.c (init_68881_table): Use SFmode for the first six
+ 	constants and DFmode for the seventh.
+
+	* m68k.md (movqi): Use moveq if possible.
+
+Wed Jan 31 08:18:15 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_builtin, case BUILT_IN_NEXT_ARG): Strip off
+	INDIRECT_REF when checking second arg.
+
+	* calls.c (struct arg_data, expand_call): Test STRICT_ALIGN with #if.
+
+Wed Jan 31 07:47:56 1996  Tim Wright  (timw@sequent.com)
+
+	* configure (i[345]-sequent-sysv*): Change to sysv3*; add i686.
+	(i[3456]86-sequent-ptx4*, i[3456]86-sequent-sysv4*): New cases.
+	* fixinc.ptx (sys/mc_param.h): Remove embedded asm.
+	* fixinc.svr4 (__STDC__): Add one more case.
+	* i386/ptx4-i.h, ptx4.h: New files.
+
+Wed Jan 31 07:15:23 1996  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k.h (MACHINE_STATE_{SAVE,RESTORE}): Allow MOTOROLA syntax.
+
+	* m68k.md ({adddi,subdi}_sexthishl32): 'a' and 'd' versions merged
+	and fixed; do not generate 'add/sub a,m'.
+
+	* gcc.c (warn_std_ptr): Initialize with 0 instead of NULL_PTR.
+
+Tue Jan 30 13:29:05 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* dbxout.c: Don't include <string.h>.  Don't compare strchr result
+	to NULL.
+
+	* config/svr4.h (ASM_FINAL_SPEC): Use %|, not ${pipe:-}.
+
+Tue Jan 30 06:48:43 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (nonzero_bits, case REG): Ignore REG_POINTER_ALIGNMENT.
+	Restore old code for SP, but use it for all pointers to
+	defined locations in the frame.
+
+Mon Jan 29 11:25:28 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* dbxout.c (dbxout_type_methods): Don't use #ifndef inside call to
+	strchr.
+
+Sun Jan 28 14:44:09 1996  Doug Evans  <dje@cygnus.com>
+
+	* config/dbxcoff.h (*): #undef first.
+
+Sat Jan 27 21:46:16 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.c (rs6000_sync_trampoline): Add cmpdi to 64bit case.
+	(rs6000_initialize_trampoline): CSE of Pmode to pmode.
+	* rs6000.md (movdf): Handle move between FPR and 64 bit GPR.
+	(movdi matcher): Handle SPR move to itself and add "mr." combiner.
+
+Sat Jan 27 10:06:31 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Redefine, put small
+	data items in .sbss if -msdata.
+	(SWITCH_TAKES_ARG): Add 'B', 'b', and 'V'.
+
+Sat Jan 27 07:59:25 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.h (enum built_in_function): Add BUILT_IN_{SET,LONG}JMP.
+	* expr.c: Include hard-reg-set.h.
+	(arg_pointer_save_area): New declaration.
+	(expand_builtin, case BUILT_IN_{SET,LONG}JMP): New cases.
+	* Makefile.in (expr.o): Includes hard-reg-set.h.
+	* c-decl.c (init_decl_processing): Add definitions for
+	__builtin_setjmp and __builtin_longjmp.
+	* cccp.c (initialize_builtins): Add def of __HAVE_BUILTIN_SETJMP__.
+
+	* expr.c (expand_expr, case COMPONENT_REF): Pass EXPAND_INITIALIZER
+	to recursive call.
+
+Fri Jan 26 17:24:07 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc.h (sparc_arch_type): Delete.
+	({,TARGET_}MASK_DEPRECATED_V8_INSNS): Define.
+	(ARCH64_SWITCHES): Renamed from V9_SWITCHES.
+	* sparc.c (sparc_arch_type): Delete.
+	(sparc_init_modes): Likewise.
+	(output_move_quad): Don't use ldq/stq unless TARGET_HARD_QUAD.
+	* sparc/sp64-sol2.h (TARGET_DEFAULT): Add MASK_DEPRECATED_V8_INSNS.
+	(SUBTARGET_SWITCHES): Add -m{no-,}deprecated-v8-insns.
+	* sparc.md (arch attribute): Rewrite.
+	(isa): New attribute.
+	(32 bit multiply/divide patterns): Use if TARGET_DEPRECATED_V8_INSNS.
+	(32 bit divide patterns): V9 doesn't require delay after y reg write.
+
+Fri Jan 26 12:08:43 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.h (TARGET_32BIT): Define.
+	(BITS_PER_WORD, UNITS_PER_WORD): Invert so 32bit expected case.
+	(LONG_TYPE_SIZE, POINTER_BOUNDARY, PARM_BOUNDARY): Likewise.
+	(RS6000_REG_SAVE, RS6000_SAVE_AREA, RS6000_VARARGS_SIZE): Likewise.
+	(RETURN_ADDRESS_OFFSET, CASE_VECTOR_MODE, MOVE_MAX): Likewise.
+	(Pmode, FUNCTION_MODE): Likewise.
+	(LEGITIMATE_OFFSET_ADDRESS_P): Handle TARGET_64BIT.
+	(GO_IF_LEGITIMATE_ADDRESS, LEGITIMIZE_ADDRESS): Likewise.
+	(GO_IF_MODE_DEPENDENT_ADDRESS): Same.
+
+Fri Jan 26 10:37:52 1996  Stan Coxs  <coxs@dg-rtp.dg.com>
+
+	* m88k.md (umulsidi3): Added for the 88110
+
+Fri Jan 26 09:35:42 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/sysv4.h (STRIP_NAME_ENCODING): Deal with names that have
+	both @ and * prefix characters.
+	(ASM_OUTPUT_LABELREF): Ditto.
+
+Thu Jan 25 10:03:34 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.h (LEGITIMIZE_ADDRESS): Rewrite to use HOST_WIDE_INT, not
+	plain int.
+	(optimize,flag_expensive_optimizations): Provide declaration for
+	expander functions.
+
+	* rs6000.md (movsi): Correct code in splitting an address into
+	load from the TOC, and add low/high integer parts.  If expensive
+	optimizations, and reload hasn't started, use separate pseudo regs
+	for each step.
+
+	* rs6000.c (small_data_operand): Don't use the function
+	eliminate_constant_term, unwind code directly.
+	(input_operand): SYMBOL_REF/CONST of small data operand is valid.
+	(print_{,address_}operand): Add @sda21(0) in appropriate cases for
+	small data.
+	%L, etc. so that if the item is in small memory, the appropriate
+	relocation is used.
+	(rs6000_select{,_rtx}_section): Don't put floating point constants
+	or small strings in .sdata2 since we can't tell from the pointer
+	whether it is in the small data area or not.
+
+	* rs6000.h (EXTRA_CONSTRAINT): Add 'U' for small data references.
+	(LEGITIMATE_SMALL_DATA_P): Test explicitly for SYMBOL_REF or CONST
+	before calling small_data_operand.
+
+	* rs6000.md (movsi): Handle the addresses of small data items.
+
+	* rs6000/sysv4.h (g_switch_{value,set}): Add declarations.
+	(SDATA_DEFAULT_SIZE): Default to 8.
+	(SUBTARGET_OVERRIDE_OPTIONS): If -G was not set, set it to
+	SDATA_DEFAULT_SIZE.
+	(CC1_SPEC): Pass -G nn to the compilers.
+	(SWITCH_TAKES_ARG): Add -G nn support.
+	(LINK_SPEC): Pass -G nn to the linker.
+
+Thu Jan 25 09:16:34 1996  Doug Evans  <dje@cygnus.com>
+
+	* configure (sparc64-*-solaris2*): New target.
+	* sparc/sparc.h (SPARC_{V9,ARCH64}): Default value is 0.
+	(*): Replace SPARCV9 with SPARC_{V9,ARCH64}.
+	(MASK_CPUS): Define.
+	({MASK,TARGET}_ENV32): Delete.
+	({MASK,TARGET}_ARCH64,TARGET_ARCH32): Define.
+	(TARGET_SWITCHES): Reset cpu flags first for each variant.
+	(CONDITIONAL_REGISTER_USAGE): If 32 bit v9 system, unfix g1-g4,
+	fix g5, and make %f48-%f80 call used.
+	* sparc/sp64-aout.h (SPARC_{V9,ARCH64}): Define.
+	(TARGET_VERSION): Define.
+	(TARGET_DEFAULT): Add MASK_ARCH64, delete MASK_ENV32.
+	(JUMP_TABLES_IN_TEXT_SECTION): Define.
+	(READONLY_DATA_SECTION): Make text_section.
+	* sparc/sp64-elf.h (SPARC_{V9,ARCH64}): Define.
+	(TARGET_DEFAULT): Add MASK_ARCH64.
+	(ENDFILE_SPEC): No longer need to check for -nostartfiles.
+	(ASM_IDENTIFY_GCC): Define as empty.
+	* sparc/sp64-sol2.h: New file.
+	* sparc/sparc.c (*): Replace TARGET_V9 with TARGET_ARCH64.
+	(hard_32bit_mode_classes): Add v9 regs.
+	(gen_v9_scc): Handle 32 bit v9 case.  Call v9_regcmp_p.
+	* sparc/sparc.md (*): Replace TARGET_V9 with TARGET_ARCH64 in places
+	requiring 64 bit environment.
+	(multf3_extend): Require TARGET_HARD_QUAD.
+
+Thu Jan 25 00:33:25 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config/dbxcoff.h (DBX_USE_BINCL): Define.
+	(DBX_CONTIN_LENGTH): Define if not defined.
+
+Wed Jan 24 18:00:12 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* alpha.c (alpha_write_verstamp): Only emit MS_STAMP and LS_STAMP,
+	not the extra numbers.
+
+Wed Jan 24 15:18:15 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.c (init_cumulative_args): Rewrite to use DEFAULT_ABI
+	runtime tests, instead of V.4 #ifdefs.
+	(function_arg{,_advance,_partial_nregs,_pass_by_reference}): Ditto.
+	(setup_incoming_varargs): Ditto.
+  	(init_cumulative_args): Set call_cookie field to CALL_NORMAL or
+	CALL_NT_DLLIMPORT.
+	(function_arg): Add support for DLL imports.
+	(rs6000_valid_{decl,type}_attribute_p): New functions for NT
+	attributes cdecl, stdcall, dllimport, and dllexport.
+	(rs6000_comp_type_attributes): New attribute support.
+	(rs6000_set_default_type_attributes): Ditto.
+	(rs6000_dll_import_ref): Ditto.
+
+	* rs6000.h (FP_ARG_{AIX,SYSV}_MAX_REG): Move here from sysv4.h.
+	* sysv4.h (FP_ARG_{AIX,SYSV}_MAX_REG): Move to rs6000.h.
+
+	* rs6000.h (rs6000_call_cookie): New enum to describe the integer
+	that is the 2nd argument to call insns and 3rd argument to
+	call_value insns. Add support for NT DLL imports.
+	(rs6000_args): Add call_cookie field.
+	(VALID_MACHINE_{DECL,TYPE}_ATTRIBUTE): Define to call C functions.
+	({COMP_TYPE,SET_DEFAULT_TYPE}_ATTRIBUTES): Ditto.
+	(rs6000_valid_{decl,type}_attribute_p): Add declarations.
+	(rs6000_comp_type_attributes): Ditto.
+	(rs6000_set_default_type_attributes): Ditto.
+	(rs6000_dll_import_ref): Ditto.
+
+	* win-nt.h (ASM_DECLARE_FUNCTION_NAME): Add support for dllexport
+	attribute.
+
+	* rs6000.md (call insns): Add support for NT dllimport functions,
+	and fix up NT indirect calls.  Also correctly set the flag
+	rs6000_save_toc_p on NT indirect calls.
+
+	* aix41.h (LINK_SPEC): Use new extra specs to avoid separate
+	versions for native and cross compilation.
+	* rs6000.h (LINK_SPEC): Ditto.
+	* sysv4.h (LINK_SPEC): Ditto.
+
+	* rs6000.h (EXTRA_SPECS): Add link_syscalls, link_libg, link_path,
+	link_specs, and also allow target to define more with the macro
+	SUBTARGET_EXTRA_SPECS.
+	(LINK_{LIBG,SYSCALLS}_SPEC): Define as fixed pathnames if native
+	compilation, and currently nothing if cross compiling.
+	(LINK_START_SPEC): If not defined, define as empty.
+	* eabi{,sim}.h (LINK_START_SPEC): Add default -Ttext for
+	simulator.
+
+	* eabi{aix,le}.h (MULTILIB_DEFAULTS): Add -mno-sdata default.
+	* sysv4{,le}.h (MULTILIB_DEFAULTS): Ditto.
+
+	* rs6000.c (small_data_operand): New function to return true if
+	the operand lives in small data under eabi.
+	(rs6000_select{,_rtx}_section): New functions to determine whether
+	to put global and static items in the V.4/eabi small data areas if
+	-msdata.
+
+	* rs6000.h (LEGITIMATE_SMALL_DATA_P): Call small_data_operand it
+	if V.4.
+	(GO_IF_LEGITIMATE_ADDRESS): If LEGITIMATE_SMALL_DATA_P, the item
+	is a valid address.
+	(ASM_OUTPUT_LABELREF): Use fputs, not fprintf.
+	(small_data_operand): Declare function.
+
+	* sysv4.h (TARGET_SWITCHES): New switch -msdata to use V.4 and
+	eabi defined small data sections.
+	(SUBTARGET_OVERRIDE_OPTIONS): Don't allow -msdata and
+	-mrelocatable or -mcall-aix options.
+	(EXTRA_SECTION{S,_FUNCTIONS}): Add .sdata, .sdata2, and .sbss
+	sections.
+	(SELECT{,_RTX}_SECTION): Call (rs6000_select{,_rtx}_section).
+	(ASM_SPEC): The -msdata switch passes -memb to the assembler.
+	(ENCODE_SECTION_INFO): Prepend a '@' to the name, if the item
+	lives in a small data region.
+	(STRIP_NAME_ENCODING): Strip '@' in addition to '*'.
+	(ASM_OUTPUT_LABELREF): Strip a leading '@'.
+
+	* t-{ppc,eabi}gas (MULTILIB*): Add support for libraries built
+	with/without -msdata.  Drop support for -mcall-aixdesc libraries.
+
+Wed Jan 24 15:18:15 1996  Kim Knuttila  <krk@cygnus.com>
+
+	* config/rs6000/win-nt.h (LIB_SPEC): Change options to GNU ld style.
+	(From Jason Molenda)
+
+Wed Jan 24 14:32:48 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* reload1.c (used_spill_regs): New variable.
+	(reload): Set it.
+	* reorg.c (find_dead_or_set_registers): New function.
+	(mark_target_live_regs): Delete loop looking forward from target
+	and instead call find_dead_or_set_registers.
+	(fix_reg_dead_note): New function.
+	(fill_slots_from_thread): Call it.
+
+	* loop.c (scan_loop): Correct comment.
+	(strength_reduce): Correct comments.  Don't set maybe_multiple when
+	pass branch to scan_start.  Don't set not_every_iteration after
+	passing a CODE_LABEL, or after passing a branch out of the loop.
+	When outputting DEST_ADDR giv increments, put them next to the memory
+	address on machines with auto-increment addresses.
+	(record_biv): Set new field always_executed.
+	(record_giv): Set new fields always_executed and auto_inc_opt.
+	(maybe_eliminate_biv_1): Reject biv with auto_inc_opt optimization
+	in some cases.
+	* loop.h (struct induction): New fields always_executed and
+	auto_inc_opt.
+
+	* c-typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not
+	POINTER_SIZE to agree with expr.c.
+
+Tue Jan 23 15:17:30 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc/sol2.h (ASM_OUTPUT_ALIGNED_LOCAL): Delete, use svr4.h's.
+
+Tue Jan 23 03:28:01 1996  Paul Eggert  <eggert@twinsun.com>
+
+	* cexp.y: Use preprocessor arithmetic instead of C arithmetic
+	to avoid warnings on some compilers.
+	(HOST_WIDE_INT_MASK): Remove.
+	(MAX_CHAR_TYPE_MASK, MAX_WCHAR_TYPE_MASK): New macros.
+	(yylex): Use them.
+
+Mon Jan 22 18:39:21 1996  Per Bothner  <bothner@cygnus.com>
+
+	* cppexp.c (cpp_parse_expr):  Set HAVE_VALUE flag for unary
+	minus, even if skip_evaluation is true.
+
+Mon Jan 22 16:53:48 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000/rs6000.h (BIGGEST_ALIGNMENT): Increase to 64 always.
+	(BIGGEST_FIELD_ALIGNMENT): Define.
+	(GO_IF_LEGITIMATE_ADDRESS): Merge PRE_INC and PRE_DEC cases.
+	(LEGITIMIZE_ADDRESS): Use Pmode not SImode.
+	(CASE_VECTOR_MODE): Depend on TARGET_64BIT.
+	(ASM_OUTPUT_COMMON): Delete.
+	(ASM_OUTPUT_ALIGNED_COMMON): Define.
+	* rs6000/sysv4.h (BIGGEST_FIELD_ALIGNMENT): Undefine.
+	* rs6000/rs6000.md (adddi3, subdi3, negsi2): New PowerPC64 patterns.
+	(ashldi3, lshrdi3, ashrdi3, anddi3, iordi3, xordi3): Same.
+	(moddi3, cmpdi, tablejump matchers): Same.
+	(divdi3): Update PowerPC64 patterns.
+	* rs6000.c (rs6000_initialize_trampoline, case ABI_AIX): Use Pmode
+	not SImode.
+
+Sun Jan 21 23:33:24 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* dbxout.c: Include <string.h>
+
+Fri Jan 19 17:17:00 1996  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* tree.h (CONSTRUCTOR_TARGET_CLEARED_P):  Removed.
+	* expr.c (is_zeros_p, mostly_zeros_p):  Handle SET_TYPE CONSTRUCTORs.
+	(store_constructor_field):  New helper function.
+	(store_constructor):  Take 'cleared' parameter.
+	(expand_expr):  Fix store_constructor_call to pass 'cleared' of 0.
+
+	* expr.c (store_constructor, SET_TYPE):  Fix off-by-one-error.
+	Also, devide start byte by BITS_PER_UNIT before passing to memset.
+	(store_constructor):  `continue' in wrong place.
+
+	* expr.c (store_constructor):  If storing into a range of array
+	elements, and the range is small, or the target it not memory,
+	unroll the loop (and use store_field, which handles REGs).
+	(store_constructor):  Handle RANGE_EXPR in array index.
+
+Fri Jan 19 16:52:25 1996  Doug Evans  <dje@charmed.cygnus.com>
+
+	* svr4.h (SWITCH_TAKES_ARG): Add 'x'.
+	* sparc/sol2.h (SWITCH_TAKES_ARG): Likewise.
+
+Fri Jan 19 15:18:38 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* dbxout.c (flag_minimal_debug): Initialize to 0 if both
+	NO_DOLLAR_IN_LABEL and NO_DOT_IN_LABEL are defined.
+	(dbxout_type_methods): If the mangled method name uses the special
+	C++ marker character, pass show_arg_types as 1 when calling
+	dbxout_type.
+
+Fri Jan 19 11:48:28 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/eabi-ci.asm (_SDA_BASE_): Move the default definition
+	from the .got section to the .sdata section.  Do not add 32768.
+	(_SDA2_BASE_): Provide a default definition.
+
+	* rs6000/eabi-cn.asm (.got.blrl): Don't define this section any
+	more, linker now directly creates the blrl instruction at
+	_GLOBAL_OFFSET_TABLE_-4.
+
+Fri Jan 19 05:12:31 1996  Richard Earnshaw <rearnsha@armltd.co.uk>
+
+	* arm/lib1funcs.asm (__divsi3, __modsi3, __udivsi3, __umodsi3):
+	Replace with smaller, faster versions.
+
+Thu Jan 18 17:41:46 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* sh.c (ctype.h): Delete.
+	(regno_reg_class, reg_class_from_letter): Add SH3e support.
+	(prepare_scc_operands, broken_move, push, pop, push_regs): Likewise.
+	(calc_live_regs, sh_expand_prologue, sh_expand_epilogue): Likewsie.
+	(initial_elimination_offset, arith_reg_operand): Likewise.
+	(sh_builtin_saveregs, fp_zero_operand, fp_one_operand): New functions.
+	(sh_function_arg, sh_function_arg_partial_nregs): Delete.
+	* sh.h (CPP_SPEC, CONDITIONAL_REGISTER_USAGE): Add SH3E support.
+	(TARGET_SWITCHES, OVERRIDE_OPTIONS, FIRST_PSEUDO_REGISTER): Likewise.
+	(FIXED_REGISTERS, CALL_USED_REGISTERS, HARD_REGNO_MODE_OK): Likweise.
+	(enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
+	(REG_ALLOC_ORDER, CONST_DOUBLE_OK_FOR_LETTER_P, NPARM_REGS): Likewise.
+	(FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Likewise.
+	(FUNCTION_ARG_REGNO_P, CUMULATIVE_ARGS, ROUND_REG): Likewise.
+	(INIT_CUMULATIVE_ARGS, FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Likewise.
+	(FUNCTION_ARG_PARTIAL_NREGS, LEGITIMATE_CONSTANT_P): Likewise.
+	(MODE_DISP_OK_4, REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
+	(DBX_REGISTER_NUMBER, enum processor_type): Likewise.
+	(SH3E_BIT, TARGET_SH3E, FPUL_REG, FIRST_FP_REG, LAST_FP_REG): New.
+	(FIRST_FP_PARM_REG, FIRST_FP_RET_REG, BASE_RETURN_VALUE_REG): New.
+	(BASE_ARG_REG, enum sh_arg_class, struct sh_args): New.
+	(GET_SH_ARG_CLASS, PASS_IN_REG_P, sh_builtin_saveregs): New.
+	(EXPAND_BUILTIN_SAVEREGS, DOUBLE_TYPE_SIZE): New.
+	(TARGET_SWITCHES): Delete broken -m3l option.
+	* sh.md (cpu, movsi_i, movsf_i, blt, bge, sle, sge): Add SH3E support.
+	(push_e, pop_e, movsi_ie, movsf_ie, addsf3, subsf3): New patterns.
+	(mulsf3, macsf3, divsf3, floatsisf2, fix_truncsfsi2): New patterns.
+	(cmpgtsf_t, cmpqesf_t, cmpsf, negsf2, sqrtsf2, abssf2): New patterns.
+	(abssf2+9, abssf2+10): Add SH3e support to peepholes
+	(abssf2+11, abssf2+12): New peepholes for SH3e.
+	* t-sh (MULTILIB_OPTIONS): Add SH3E support.
+	(MULTILIB_DIRNAMES): Define to empty.
+
+Thu Jan 18 11:29:11 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* cplus-dem.c (cplus_demangle_opname): Change type of opname
+	parameter to const char *.
+	(cplus_mangle_opname): Change return type and type of opname
+	parameter to const char *.  Don't cast return value.
+	* demangle.h (cplus_demangle_opname): Update declaration.
+	(cplus_mangle_opname): Likewise.
+
+Thu Jan 18 10:07:33 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* gcc.c (extra_specs): If EXTRA_SPECS is defined, define
+	extra_specs array to hold the extra specs the machine description
+	defines.
+	(set_spec): If EXTRA_SPECS is defined, handle the extra
+	specifications.
+	(process_command): Ditto.
+	(main): Ditto.
+	(validate_all_switches): Ditto.
+
+	* rs6000/{rs6000.h,powerpc.h,aix41.h} ({CPP,ASM}_SPEC): Use common
+	specs with EXTRA_SPECS, only modifying things in the target that
+	needs to be modified, rather than having tons of mostly duplicate
+	definitions.
+	* rs6000/{sysv4{,le}.h,}netware.h,lynx.h,} ({CPP,ASM}_SPEC): Ditto.
+	* rs6000/eabi{le,aix}.h,aix3newas.h}} ({CPP,ASM}_SPEC): Ditto.
+
+Wed Jan 17 19:38:24 1996  Paul Eggert  <eggert@twinsun.com>
+
+	* cexp.y (HOST_WIDE_INT_MASK): Renamed from LONG_MASK;
+	use HOST_WIDE_INT.
+	(HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT): Put back.
+	(parse_c_expression, expression_value, parse_escape, left_shift,
+	right_shift, struct constant, exp, parse_number, yylex):
+	Replace `long' with `HOST_WIDE_INT'.
+	* cccp.c (PTR_INT_TYPE): Remove obsolete define to `long'.
+	(parse_escape, parse_c_expression, eval_if_expression, get_lintcmd,
+	do_line, do_if, do_elif): Replace `long' with `HOST_WIDE_INT'.
+	(trigraph_pcp): Don't assume a pointer difference fits in an int.
+
+Wed Jan 17 18:56:31 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* expmed.c (extract_bit_field): For multi-word bitfield, clobber
+	target before storing to it.
+
+Wed Jan 17 14:19:34 1996  J.T. Conklin  <jtc@slave.cygnus.com>
+
+	* sparc/{t-sol2,t-sunos40,t-sunos41}: Define away LIBGCC1_TEST
+	so that cross compilers targeted at these systems will build.
+
+Wed Jan 17 09:51:58 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc.h (v9 INIT_CUMULATIVE_ARGS): Fix typos.
+
+	* gcc.c (process_command): New local lang_n_files, and use
+	it in test of -c with -o.  Move test of -save-temps.
+	Test for trailing NUL in -c.
+
+	* i386/t-go32: New file.
+	* i386/xm-go32.h: New file.
+	* configure (i[345]86-*-go32*): Define xm_file and tmake_file.
+
+Wed Jan 17 07:47:43 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cccp.c (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Put back.
+	(pcfinclude): Use HOST_WIDE_INT for casting pointer to integer.
+
+Wed Jan 17 05:25:06 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* va-pa.h (__gnuc_va_list): Use a "void *".
+
+Tue Jan 16 18:45:23 1996  Per Bothner  <bothner@cygnus.com>
+
+	* cppexp.c (cpp_lex):  Do cpp_pop_buffer after CPP_POP so retried
+	cpp_skip_hspace will actually work.
+
+	* cppexp.c (SKIP_OPERAND):  New macro.
+	(cpp_parse_expr):  Suppress evaluation and diagnostics in
+	unevaluated subexpressions.
+	Corresponds to Eggert's Fri Jun  9 17:58:29 1995 change.
+
+Tue Jan 16 11:59:07 1996  Mike Stump  <mrs@cygnus.com>
+
+	* expr.c (expand_expr, case COND_EXPR): Make sure cleanups live on
+	the function_obstack as they are used by the exception handling code.
+	(defer_cleanups_to): Ditto.
+	(TRUTH_ANDIF_EXPR): Ditto.
+	(TRUTH_ORIF_EXPR): Ditto.
+
+Tue Jan 16 13:57:13 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* cccp.c (new_include_prefix): Ignore ENOTDIR error from stat.
+
+Tue Jan 16 12:18:56 1996  Doug Evans  <dje@cygnus.com>
+
+	* i386/t-sol2 (crt[1in].o): Add missing -c.
+	* sparc/t-sol2 (crt[1in].o,gcrt1.o): Likewise.
+	Source files are assembler.
+
+	* gcc.c (do_spec_1, case 'W'): Rename local `index' to `cur_index' to
+	avoid warning on solaris.
+
+Tue Jan 16 11:42:09 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config/dbxcoff.h: New file for stabs in COFF support.
+	* config/a29k/a29k-udi.h: Use dbxcoff.h.
+	* config/h8300/h8300.h: Likewise.
+	* config/i960/i960-coff.h: Likewise.
+	* config/m68k/coff.h: Likewise.
+	* config/m88k/m88k-coff.h: Likewise.
+	* config/sh/sh.h: Likewise.
+	* config/sparc/litecoff.h: Likewise.
+
+Tue Jan 16 08:21:45 1996  Hans-Peter Nilsson  <Hans-Peter.Nilsson@axis.se>
+
+	* optabs.c (expand_fix): Don't copy TARGET to TO if same.
+
+	* expr.c (emit_move_insn_1): Don't emit clobber when moving
+	by parts and source equals destination.
+
+Tue Jan 16 08:08:29 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expmed.c (extract_bit_field): Don't abort if not MEM_IN_STRUCT_P.
+
+	* local-alloc.c (memref_referenced_p, case REG): Fix last change.
+
+	* fold-const.c (const_binop): Strip NOPS from both args.
+
+	* regclass.c (regclass): Remove useless cast.
+
+Tue Jan 16 07:06:03 1996  Paul Eggert  <eggert@twinsun.com>
+
+	* cexp.y: General code cleanup in the style of 1995-04-01 change.
+	Add prototypes for static functions.
+	Add parentheses suggested by `gcc -Wparentheses'.
+	Use `long' uniformly, instead of long, int, HOST_WIDE_INT mess.
+	(struct constant): Use `signedp' flag (with sign bit) instead of
+	`unsignedp' flag; it's a little more convenient.
+
+	(HAVE_STDLIB_H, STDC_HEADERS, LONG_MASK, __attribute__, PROTO,
+	VA_START, PRINTF_ALIST, PRINTF_DCL, PRINTF_PROTO, PRINTF_PROTO_1,
+	vfprintf, SIGNED, UNSIGNED): New symbols.
+	<stdlib.h>: Include if HAVE_STDLIB_H.
+	<string.h>: New include.
+	(HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Remove.
+	(yylex, yyerror, expression_value, parse_number,
+	initialize_random_junk): Now static.
+
+	(overflow_sum_sign): Renamed from possible_sum_sign, with an
+	extra arg SIGNEDP.
+	(parse_number): Inline strcmp when checking for "0x".
+	(yylex): Keep track of mask needed when decoding wide characters.
+	(parse_escape): New arg RESULT_MASK; use it instead of
+	assuming char width.
+	(yylex, parse_escape, parse_c_expression): Store all host
+	integers as long, not int or HOST_WIDE_INT.
+	(left_shift): No need to do signed left shifts separately.
+
+	These changes are for the test program (if TEST_EXP_READER):
+	(pedantic, traditional): Allocate storage.
+	(main): Set pedantic, traditional, yydebug depending on args.
+	(is_hor_space, warning, lookup): Change types and implementation
+	to match rest of program.
+	(pedwarn, check_assertion, xmalloc): New functions.
+
+	* cccp.c (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Remove.
+	(parse_escape, parse_c_expression, eval_if_expression):
+	Change return type to `long'; all callers changed.
+	(pcfinclude): Use `int', not HOST_WIDE_INT; any integral type will do.
+
+	* cccp.c (skip_quoted_string): If pedantic and not pedantic_errors,
+	skipped multiline strings elicit a warning, not an error.
+	(rescan): Minor code reorg to keep it parallel with skip_quoted_string.
+
+	* fold-const.c (left_shift_overflows): Remove; unused.
+
+	* c-typeck.c (convert_for_assignment): Don't automatically convert
+	from a union member to the union.
+
+Tue Jan 16 06:26:00 1996  Stefan Vogel  (stefan@ssw.de)
+
+	* config/svr4.h (ASM_OUTPUT_SECTION_NAME): Define section attributes
+	only when a section is defined the first time.
+
+Tue Jan 16 06:03:27 1996  Thomas Graichen  <graichen@omega.physik.fu-berlin.de>
+
+	* i386/freebsd.h (ASM_WEAKEN_LABEL): Deleted; not supported.
+
+Mon Jan 15 20:59:49 1996  J. Kean Johnston  <hug@netcom.com>
+
+	* Makefile.in (LIBGCC2_CLFAGS): Add -DIN_LIBGCC2.
+	(libgcc1.a): Add -DIN_LIBGCC1.
+	(stamp-crtS): Remove -fpic, use CRTSTUFF_CFLAGS_S.
+	* config/t-libc-ok: Add CRTSTUFF_CFLAGS_S.
+
+	* configure (i[3456]86-*-sco3.2v5*): New case.
+	* i386/sco5.h, i386/t-sco5, i386/x-sco5, i386/xm-sco5.h: New files.
+	* ginclude/stdarg.h, ginclude/varags.h: Add test for SCO Open Server 5.
+
+Mon Jan 15 20:44:13 1996  J.T. Conklin  <jtc@netbsd.org>
+
+	* m68k/netbsd.h (ASM_SPEC): New macro.
+
+Mon Jan 15 17:01:16 1996  Doug Evans  <dje@cygnus.com>
+
+	* c-lex.c (check_newline): Pass character after `#pragma' to
+	HANDLE_PRAGMA.  Don't call get_directive_line if at end of line.
+	* c-common.c (get_directive_line): Watch for EOF.
+	* h8300/h8300.h (HANDLE_PRAGMA): New argument `c'.
+	Must issue `return' now.
+	* i960/i960.h (HANDLE_PRAGMA): Likewise.
+	* sh/sh.h (HANDLE_PRAGMA): Likewise.
+	* nextstep.h (HANDLE_PRAGMA): Likewise.
+	* h8300/h8300.c (handle_pragma): New argument `ch'.
+	Simplify pragma processing.  Delete support for `#pragma section'.
+	* i960/i960.c (process_pragma): New argument `c'.  Change result to
+	terminating character.
+	* nextstep.c (handle_pragma): Likewise.
+	* sh/sh.c (handle_pragma): Likewise.  Also simplified.
+
+	* sched.c (reemit_notes): Add prototype.
+	(sched_analyze_2): Reorganize comments.  Call prev_nonnote_insn.
+	(sched_analyze): Add abort call.
+	(schedule_block): Call prev_nonnote_insn.
+	Move call of reemit_notes to after SCHED_GROUP_P scheduling.
+	Set `head' to `last'.
+
+Mon Jan 15 16:12:25 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* configure (*-*-gnu*): Use tmake_file=t-gnu.
+	* config/t-gnu (CRTSTUFF_T_CFLAGS): New file.
+	* configure (*-*-gnu*): Remove crtbeginS.o and crtendS.o frmo
+	$extra_parts.  Use xmake_file=x-linux.
+
+Mon Jan 15 15:30:49 1996  Gran Uddeborg <gvran@uddeborg.pp.se>
+
+	* i386/svr3{,z}.ifile: Allocate address areas for the "stab"
+	and "stabstr" sections.
+
+Mon Jan 15 14:39:14 1996  Paul Eggert  <eggert@twinsun.com>
+
+	* c-decl.c (finish_incomplete_decl): Warn if completing an
+	array that wasn't declared extern.  Simplify test for whether
+	completion is needed.
+
+	* cccp.c (do_xifdef): Warn about `#ifdef 0' if not traditional;
+	formerly the warning was issued if not pedantic.
+
+Mon Jan 15 13:24:12 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.md ({add,sub}di3): Make it work on little endian PowerPC
+	systems.
+
+	* rs6000/eabi-c{i,n}.asm (.sbss2 section): Don't make .sbss2 a
+	.bss section just yet, because it confused the linker.
+
+Mon Jan 15 08:50:31 1996  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k.md (pushdi): Allow "i" for operand 1.
+	(extendqidi2): Improve 68000 code generation.
+	(adddi_lshrdi_63): New pattern.
+
+Mon Jan 15 08:38:40 1996  H.J. Lu {hjl@gnu.ai.mit.edu)
+
+	* configure (i[3456]86-*-linux*): Add extra_parts.
+	* i386/linux.h (LIB_SPEC): Remove %{mieee-fp:-lieee}.
+	Use -lc_p for -profile.
+	(CC1_SPEC): New macro.
+	* linux.h (STARTFILE_SPEC): Use crtbegin.o for both shared llibrary
+	and normal executable;  use gcrt1.o for -profile.
+	(ENDFILE_SPEC): Use crtend.o for shared llibrary and normal executable.
+	* x-linux (INSTALL_ASSERT_H): Unset it.
+	* configure (i[3456]86-*-linux*oldld*): Set xmake_file to x-linux-aout.
+	(i[3456]86-*-linux*aout*): Likewise.
+	* x-linux-aout: New file, copied from config/x-linux.
+
+Mon Jan 15 07:41:05 1996  Dmitry K. Butskoy  (buc@stu.spb.su)
+
+	* varasm.c (in_data_section): New function.
+
+Mon Jan 15 07:37:13 1996  Andreas Schwab  (schwab@issan.informatik.uni-dortmund.de)
+
+	* c-typeck.c (build_c_cast): Don't warn about alignment when we
+	have an opaque type.
+
+Mon Jan 15 07:22:59 1996  Michel Delval  (mfd@ccv.fr)
+
+	* reload.c (find_equiv_reg): Apply single_set, not PATTERN, to WHERE.
+
+Mon Jan 15 07:02:21 1996  John F. Carr  <jfc@mit.edu>
+
+	* reorg.c (mark_referenced_resources, case TRAP_IF): Set volatil.
+
+Mon Jan 15 06:20:38 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* gcc.c (process_commands): Remove inadvertant fallthrough.
+
+	* function.c ({,round_}trampoline_address): TRAMPOLINE_ALIGNMENT is
+	in bits, not bytes.
+
+	* objc/archive.c (objc_{write,read}_type, case _C_STRUCT_B): Fix typo.
+
+	* expr.c (expand_expr, case COMPONENT_REF): Don't make recursive
+	call on object with EXPAND_SUM.
+
+	* stmt.c (save_expr_regs): Delete declaration; unused.
+
+Sun Jan 14 21:44:26 1996  Michael Meissner  <meissner@wogglebug.tiac.net>
+
+	* rs6000/eabi-ci.asm (__EXCEPT_START__): Provide label for start
+	of g++ exception pointers.
+
+	* rs6000/eabi-cn.asm (__EXCEPT_END__): Provide label for end of
+	g++ exception pointers.
+
+	* rs6000/eabi.asm (__eabi): Relocate exception pointers unless
+	they are NULL.
+
+	* va-ppc.h (va_arg): Long longs are always passed in odd registers.
+
+	* rs6000.c (function_arg_boundary): On V.4, long longs are always
+	passed in odd registers.
+
+	* rs6000.md ({add,sub}di3): Remove restriction for POWER only,
+	since all of the instructions used are common to both
+	architectures.
+
+Sun Jan 14 20:34:03 1996  Jeffrey A. Law  <law@cygnus.com>
+
+ 	* expr.c (expand_assignment): Fix alignment parm in emit_block_move.
+
+Sun Jan 14 19:00:25 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* sched.c (schedule_block): Copy RTX_INTEGRATE_P bit when create
+	a new note.
+
+	* integrate.c (save_for_inline_copying, case NOTE): Copy
+	RTX_INTEGRATED_P bit.
+
+Sun Jan 14 17:57:52 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stupid.c (stupid_find_reg): Don't try to allocate reg if live
+	over more than 5,000 insns.
+
+Sat Jan 13 23:09:07 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.h (STACK_BOUNDARY): Bring back down to 64bits.
+
+	* pa.md (pre_ldwm): Fix bug exposed by recent changes.
+	Simplify.
+	(pre_stwm, post_ldwm, post_stwm): Likewise.
+	(HImode and QImode variants): Likewise.
+	* pa.c (hppa_expand_prologue): Corresponding changes.
+	(hppa_expand_epilogue): Likewise.
+
+	* pa.c (hppa_legitimize_address): Generate more indexing
+	address modes.
+
+Fri Jan 12 19:03:21 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc/sol2.h (COMMON_ASM_OP): Delete, use sysv4.h's.
+
+	* sched.c (schedule_block): Maintain a valid chain so
+	emit_note_before works.
+
+Fri Jan 12 13:20:01 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/eabi{,-ci,-cn}.asm: Add support for V.4 .sbss/.sdata, and
+	eabi .sbss2/.sdata2 sections, loading up r13 and r2 respectively
+	if the sections were used, and we don't need to relocate the
+	pointers.
+
+Thu Jan 11 19:41:07 1996  Per Bothner  <bothner@cygnus.edu>
+
+	* sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE):  Use AGGREGATE_TYPE_P so
+	QUAL_UNION_TYPE and SET_TYPE are also passed by invisible reference.
+	* sparc.h (INIT_CUMULATIVE_ARGS for SPARCV9):  Return types of
+	QUAL_UNION_TYPE and SET_TYPE also make invisible 1st argument.
+
+Thu Jan 11 18:33:50 1996  Doug Evans  <dje@cygnus.com>
+
+	* h8300/h8300.h (TARGET_ALIGN_STRUCT_300): New macro.
+	(TARGET_SWITCHES): Add -malign-struct-300.
+	(BIGGEST_FIELD_ALIGNMENT): Update.
+
+Thu Jan 11 12:07:44 1996  J.T. Conklin  <jtc@cygnus.com>
+
+	* h8300/h8300.h (CPP_PREDEFINES): Delete -D_DOUBLE_IS_32BITS.
+
+Thu Jan 11 11:09:33 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.md (mulsf3 !POWERPC): Use dmul attribute.
+	(divsf3 !POWERPC): Use ddiv attribute.
+
+Thu Jan 11 11:09:33 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/eabi-ctors.c (__do_global_ctors): If global variable
+	__atexit is non-NULL, call it with __do_global_dtors address to
+	register the function to run destructors.
+	(__do_global_{c,d}tors): Guard against NULL pointers.
+
+	* rs6000/eabi.asm (__eabi): If the __eabi function was already
+	called, do nothing.
+
+Thu Jan 11 11:29:09 1996  Doug Evans  <dje@cygnus.com>
+
+	* fixincludes: Wrap rpc/types.h in extern "C", for osf2.0.
+
+Wed Jan 10 13:16:03 1996  Doug Evans  <dje@cygnus.com>
+
+	* varasm.c (variable_section): New function.
+	(assemble_variable): Call it.
+
+Wed Jan 10 11:27:28 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/eabi-c{i,n}.asm (__DTOR_{LIST,END}__): Fix typo.
+	* rs6000/eabi{,sim}.h ({START,END}FILE_SPEC): Add %s to object
+	files.
+
+	* rs6000/t-{eabi,eabigas,ppc,ppcgas} (MULTILIB_MATCHES): Drop
+	support for obsolete -mcpu=mpc403.  Add -mcpu=821 and -mcpu=860 to
+	soft-float defaults.
+
+	* rs6000/t-eabi{,gas} (LIBGCC): Add stmp-crt.
+	(INSTALL_LIBGCC): Add install-crt.
+	(EXTRA_PARTS): Delete.
+	(stmp-crt{,-sub}): New rules to build crti.o and crtn.o in a
+	multilib fashion.
+	(install-crt): Install the multilib crt values.
+
+Tue Jan  9 17:30:16 1996  Doug Evans  <dje@cygnus.com>
+
+	* c-tree.h (merge_attributes): Moved from here.
+	* tree.h (merge_attributes): To here.
+	* c-typeck.c (merge_attributes): Moved from here.
+	* tree.c (merge_attributes): To here.
+
+Mon Jan  8 18:27:38 1996  Arne H. Juul  <arnej@pvv.unit.no>
+
+	* mips/netbsd.h (LINK_SPEC): Change nostdlib to nostartfiles.
+	(LOCAL_LABEL_PREFIX): Delete.
+	(ASM_OUTPUT_SECTION_NAME): Define.
+
+Sun Jan  7 17:11:11 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* collect2.c (scan_libraries): Correct Import File ID interpretation.
+
+Sun Jan  7 16:56:56 1996  Michael Meissner  <meissner@wombat.gnu.ai.mit.edu>
+
+	* {svr4,mips/elf{,64}}.h (MAX_OFILE_ALIGNMENT):  Define as
+	32768*8.
+
+Sat Jan  6 15:52:36 1996  Doug Evans  <dje@cygnus.com>
+
+	* a29k/vx29k.h (CPP_SPEC): Define.
+
+	* configure: Recognize any --with/--without option.
+
+	* Makefile.in (MAKEINFOFLAGS): New variable.
+	(cpp.info,gcc.info): Use it.
+
+	* sparc/t-sol2 (crt1.o,crti.o,crtn.o,gcrt1.o): Use $(GCC_FOR_TARGET).
+	* i386/t-sol2 (crt1.o,crti.o,crtn.o): Likewise.
+
+Fri Jan  5 10:44:25 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/aix{3newas,41}.h ({ASM,CPP}_SPEC): Update for new
+	processors.
+	* rs6000/eabi{aix,le}.h ({ASM,CPP}_SPEC): Ditto.
+	* rs6000/{lynx,netware,powerpc,sysv4}.h ({ASM,CPP}_SPEC): Ditto.
+
+	* rs6000.c (rs6000_override_options): Remove requirement that
+	-mcpu=common be big endian.
+	(rs6000_stack_info): If NAME__main is defined, mark this function
+	as doing a call, even if there are no arguments.
+
+	* rs6000.md (SI*SI->DI splitters): Add reload_completed
+	condition.
+	(mulsidi3): If big endian, do move directly, rather than moving by
+	pieces.
+
+	* rs6000/eabi{,sim}.h (STARTFILE_SPEC): Add crti.o before any
+	other objects.
+	(ENDFILE_SPEC): Add crtn.o after any objects.
+	* rs6000/t-eabi{,gas}: Build crt{i,n}.o from eabi-crt{i,n}.asm.
+	* rs6000/eabi-crt{i,n}.asm: New files to provide begin/end labels
+	for all special sections used by eabi as opposed to relying on GLD
+	to set all of these symbols.
+	* rs6000/eabi.asm (__eabi): Change to use the new labels provided
+	above.  Don't assume that the .got2, .ctors, .dtors, and .fixup
+	sections are contiguous.
+
+Fri Jan  5 10:40:37 1996  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.md (mulh_call): Remove r4 clobber.
+	(quoss_call): Remove cr0 and cr1 clobbers.
+
+	* rs6000.md (function units): Add MPC505/821/860 support.
+	(SF multiply add combiner patterns): Use dmul attribute when limited
+	to DFmode POWER instructions.
+	* rs6000.c (processor_target_table): Add MPC505/821/860 support.
+	Remove MASK_POWER and add MASK_PPC_GFXOPT for PPC602.  Always use
+	new mnemonics for common mode.
+	(rs6000_override_options): Don't set SOFT_FLOAT based upon
+	PROCESSOR_DEFAULT.
+	* rs6000.h (processor_type): Add PROCESSOR_MPCCORE.
+	(RTX_COSTS): Add PROCESSOR_MPCCORE cases.
+	(CPP_SPEC): Add new processor support.
+
+Fri Jan  5 00:32:49 1996  Doug Evans  <dje@cygnus.com>
+
+	* sparc/sparc.h (MACHINE_STATE_RESTORE): Add missing .align.
+
+Wed Jan  3 18:29:32 1996  Doug Evans  <dje@cygnus.com>
+
+	* arm/lib1funcs.asm (__USER_LABEL_PREFIX__): Define if not already.
+	(CONCAT1,CONCAT2,SYM): Define.
+	(__udivsi3,__divsi3,__umodsi3,__modsi3,__div0): Use SYM to define
+	global labels.
+
+Wed Jan  3 02:41:39 1996  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Call text_section.
+
+Tue Jan  2 16:12:13 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* sh.c (gen_shifty_op): Output a NOP for a shift by 0.
+	(find_barrier): New variables si_limit, hi_limit.  Set them depending
+	on whether we are optimizing.  Set found_hi if the destination is
+	HImode.
+	(machine_dependent_reorg): If not optimizing, then change scan to a
+	note instead of calling delete_insn.
+	* sh.h (OVERRIDE_OPTIONS): Don't set optimize or flag_delayed_branch.
+
+	* dbxout.c (gstab.h): Include if cross compiling.
+
+Mon Jan  1 21:13:43 1996  Arkady Tunik  <Arkady_Tunik@comverse.com>
+
+	* configure (i[3456]-*-solaris2*): Support stabs.
+	* i386/sol2dbg.h: New file.
+
+Mon Jan  1 09:08:01 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-typeck.c: Use DECL_C_BIT_FIELD, not DECL_BIT_FIELD in all tests.
+
+	* global.c (reg_allocno): No longer static.
+	* reload1.c (reg_allocno): Declare.
+	(order_regs_for_reload): New arg, GLOBAL.
+	Bias against regs allocated in local-alloc.
+	(reload): Pass new parm to order_regs_for_reload.
+
+	* local-alloc.c (reg_equiv_replacement): New variable.
+	(memref_referenced_p, case REG): Check for reg_equiv_replacement.
+	(update_equiv_regs): reg_equiv_replacement now file-scope.
+
+	* c-decl.c (finish_struct): Warn if field with enumeral type is
+	narrower than values of that type.
+
+	* combine.c (rtx_equal_for_field_assignment_p): New function.
+	(make_field_assignment): Use it.
+	Expand compound operations on both sides of an IOR.
+	Properly adjust constand in IOR when computing bit position.
+
+Sun Dec 31 18:47:22 1995  Doug Evans  <dje@cygnus.com>
+
+	* m68k-none.h (MULTILIB_DEFAULTS): Define.
+
+Sun Dec 31 15:47:20 1995  Jeffrey A. Law  <law@cygnus.com>
+
+	* hard-reg-set.h (losing_caller_save_reg_set): Declare.
+	* regclass.c (losing_caller_save_reg_set): Define.
+	(init_reg_sets_1): Initialize losing_caller_save_reg_set.
+	* global.c (find_reg): Avoid caller-saving registers in
+	losing_caller_save_reg_set.
+	* local-alloc.c (find_free_reg): Avoid caller-saving registers
+	in losing_caller_save_reg_set.
+	(CLASS_LIKELY_SPILLED_P): Delete definition.  Moved into regs.h.
+	* regs.h (CLASS_LIKELY_SPILLED_P): Define if not already defined.
+
+	* reorg.c (fill_simple_delay_slots): Try to fill from the
+	target of an unconditional branch if necessary.
+
+	* pa.h (REG_ALLOC_ORDER): Allocate PA1.1 caller-saved FP regs
+	before PA1.0 caller-saved FP regs.
+
+	* sched.c (adjust_priority): Use ADJUST_PRIORITY if its defined.
+
+	* pa.h (ADJUST_PRIORITY): Define to keep lifetimes of registers
+	that will be allocated to %r1 shorter.
+
+Sun Dec 31 14:20:49 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rtl.h (assign_temp): Add extra arg.
+	* function.c (assign_temp): Add extra arg, DONT_PROMOTE.
+	Don't return (const_int 0) for VOIDmode.
+	* stmt.c (expand_asm_operands): Call assign_temp with extra arg.
+	* expr.c (save_nocopied_parts, expand_expr): Likewise.
+	(expand_expr, case SAVE_EXPR): Set TEMP to (const_int 0)
+	if MODE is VOIDmode.
+	(expand_expr): Don't use assign_temp for pseudos when might
+	want to be TMODE.
+
+	* stmt.c (tail_recursion_args): Compare TYPE_MAIN_VARIANTs.
+
+	* calls.c (expand_call): Don't warn about not being able to
+	inline if -O0.
+	* expr.c (clear_pending_stack_adjust): Don't do optimization if -O0.
+	* function.c (instantiate_decls): Check DECL_SAVED_INSNS to see
+	if obstack change is needed.
+	* toplev.c (rest_of_compilation): Leave DECL_INLINE set even if
+	won't inline.
+
+	* tree.h: Add documentation on uses of common area flags.
+	(DECL_ERROR_ISSUED): New macro.
+	(DECL_NO_STATIC_CHAIN): New macro; currently unused.
+	* c-aux-info.c (gen_decl): DECL_REGISTER isn't defined
+	for FUNCTION_DECL.
+	* toplev.c (compile_file): Likewise.
+	* stmt.c (fixup_gotos): Use DECL_ERROR_ISSUED instead
+	of DECL_REGISTER.
+	* varasm.c ({bc_,}make_decl_rtl): Don't look at DECL_REGISTER
+	for functions.
+
+Sat Dec 30 07:57:11 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* sdbout.c (plain_type_1, case ARRAY_TYPE): Subtract lower bound
+	when writing dimension.
+
+Fri Dec 29 18:23:58 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (eval_if_expression): End expression with '\n', not '\0'
+	so '\0' can be diagnosed properly.
+	* cexp.y (yylex, parse_c_expression, main): Likewise.
+
+Thu Dec 28 18:24:54 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* tree.h (TYPE_ARRAY_MAX_SIZE):  New macro (used by Chill).
+	* function.c (assign_temp):  New function.  Can handle Chill-style
+	variable-sized array with static maximum size.
+	* rtl.h (assign_temp):  New declaration.
+	* stmt.c (expand_asm_operands):  Use new assign_temp function.
+	* expr.c (save_noncopied_parts, expand_expr):  Likewise.
+
+Thu Dec 28 15:28:47 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+        * function.c (assign_parms):  Fix thinko for struct value arg.
+
+Fri Dec 29 12:41:47 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.md (movdf): Reinstate 12/24 change accidently dropped in
+	undoing 12/27 changes.
+
+Thu Dec 28 22:24:53 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.h: (reg_class): Undo 12/27 changes, except for
+	formatting.
+	(REG_NAMES): Ditto.
+	(REG_CLASS_CONTENTS): Ditto.
+	(REGNO_REG_CLASS): Ditto.
+	(REG_CLASS_FROM_LETTER): Ditto.
+	(PREDICATE_CODES): Delete predicate functions.
+	(gpc_reg{0,3,4,34}_operand): Delete declaration.
+	(cc_reg{0,1}_operand): Ditto.
+
+	* rs6000.c (gpc_reg{0,3,4}_operand): Delete.
+	(cc_reg{0,1}_operand): Ditto.
+
+	* rs6000.md (common mode functions): Undo 12/27 changes, and add
+	the appropriate clobbers for common mode calls.  Keep the
+	define_splits for powerpc SI*SI->DI.
+
+Thu Dec 28 11:08:11 1995  Mike Stump  <mrs@cygnus.com>
+
+        * sparc.h (RETURN_ADDR_OFFSET): Rename from
+        NORMAL_RETURN_ADDR_OFFSET, returns the offset for the current
+        function specifically.
+
+Thu Dec 28 07:07:14 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* c-lex.c (yylex): Improve error message for bogus numbers.
+	Consolidate duplicated code.
+
+	* cexp.y (parse_number): Improve error message for bogus numbers.
+	(yylex): Consider `0xe-1' to be a (bogus) number if not traditional.
+
+	* cccp.c (do_include): In VMS, worry only about EACCES when open fails.
+	(new_include_prefix): Don't try to stat dir prefixes in VMS.
+
+Wed Dec 27 14:02:54 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* fix-header.c:  Add EXIT_FAILURE and EXIT_SUCCESS to stdlib.h if
+	missing.  Re-write how errno is added to be done similarly.
+	(XOPEN_SYMBOL, XOPEN_EXTENDED_SYMBOL):  New macros, to mark XPG4
+	functions.
+	(std_include_table):  Add a number of functions (mostly XPG4).
+
+Tue Dec 26 23:18:34 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* sys-types.h:  Add dummy definition for ssize_t.
+	* sys-protos.h (bcmp, bcopy, gethostname, lockf, read, readlink,
+	write):  Fix prototypes to match Posix and XPG4.
+	(socket, strcasecmp, strncasecmp):  New prototypes (from XPG4).
+
+Wed Dec 27 15:30:04 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* libgcc2.c (_bb_init_prg): Cast arg to bzero to (char *).
+
+	* regs.h (reg_rtx_no, regno_pointer_{flag_length,align): New decls.
+	(REGNO_POINTER_ALIGN): New macro.
+	* emit-rtl.c (regno_pointer_align): New variable.
+	(gen_reg_rtx): Extend regno_pointer_align table.
+	Allocate tables in saveable obstack.
+	(mark_reg_pointer): New arg, ALIGN.
+	(gen_inline_header): New args for reg info.
+	(set_new_first_and_last_insn): Set cur_insn_uid.
+	({save,restore}_emit_status): Save and restore regno_pointer_align.
+	(restore_reg_data{,_1}): Deleted.
+	(init_emit): Allocate register tables in saveable obstack.
+	Set REGNO_POINTER_ALIGN for regs pointing into frame.
+	* function.c (assign_parms): Set REGNO_POINTER_ALIGN for
+	parms that are pointers.
+	* function.h (struct function): New field regno_pointer_align.
+	* expr.c (expand_expr, case VAR_DECL): Set REGNO_POINTER_ALIGN
+	when copying address into memory.
+	(expand_expr, case COMPONENT_REF, case ADDR_EXPR): Set alignment
+	of register when result or result's address.
+	(expand_expr, case CONVERT_EXPR): Don't handle -fforce-mem here.
+	* combine.c (set_nonzero_bits_and_sign_copies): Handle reg even
+	if only set once and in one basic block.
+	(nonzero_bits, case REG): Use REGNO_POINTER_ALIGN instead of
+	explicit alignment of registers pointing into frame.
+	* stmt.c (expand_decl): Set alignment of register for pointer
+	variable.
+	* optabs.c (emit_unop_insn): Don't do -fforce-mem for SIGN_EXTEND.
+	* cse.c (find_best_addr): Make sure folded address better before using.
+	* rtl.h (INLINE_REGNO_{RTX,POINTER_FLAG,POINTER_ALIGN}): New macros.
+	(gen_inline_header): Add three new parms.
+	* rtl.def (INLINE_HEADER): Add three new fields.
+	* integrate.c: Include regs.h.
+	(initialize_for_inline): Pass additional args to gen_inline_header.
+	(save_for_inline_copying): Make new regno_reg_rtx, regno_pointer_flag,
+	and regno_pointer_align arrays.
+	(expand_inline_function): Set alignment of reg for parm if passed
+	by hidden pointer.
+	Set regno_pointer_{flag,align} into remap table.
+	(copy_rtx_and_substitute): Set alignment of pointers into
+	stack frame.
+	Copy pointer flag and alignment to regs that are copies of
+	pointer registers from the original regs.
+	(output_inline_function): Don't call restore_reg_data.
+	Restore reg_rtx_no, regno_{reg_rtx,pointer_flag,pointer_align}.
+	* integrate.h (struct inline_remap): New fields regno_pointer_flag
+	and regno_pointer_align.
+	* unroll.c (unroll_loop): Set regno_pointer_{flag,align} in
+	remap table.
+	* explow.c (memory_address, allocate_dynamic_stack_space):
+	Pass additional arg to mark_reg_pointer.
+	* Makefile.in (integrate.o): Includes regs.h.
+
+	* alpha.c ({non,}aligned_memory_operand): Test REGNO_POINTER_ALIGN.
+	(reg_or_unaligned_mem_operand): New function.
+	(get_unaligned_address): Add new arg, EXTRA_OFFSET.
+	* alpha.h ({CONSTANT,DATA}_ALIGNMENT): Align to at least BITS_PER_WORD.
+	(PREDICATE_CODES): Add reg_or_unaligned_mem_operand.
+	* alpha.md (extend{qihi,qisi,hisi}2): Allow unaligned memory
+	as arg 1 and pass to extend_{q,h}idi2.
+	(unaligned_extend{q,h}idi): New patterns.
+	(extend{q,h}idi2): If unaligned memory, call above new patterns.
+	(ext{q,l,w}h recognizer): Update to proper RTL.
+	(ext define_split): Comment out for now; wrong and maybe useless.
+	(unaligned_{load,store}hi): Do similarly to QImode.
+	(movhi, reload_{in,out}hi): Call unaligned case differently.
+
+Wed Dec 27 11:38:20 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.md (mulsidi3{,_common}): Undo previous change using
+	register classes instead of fixed registers for SI*SI->DI common
+	mode multiplies.
+
+	* rs6000.c (gpc_reg34_operand): Delete unused function.
+	* rs6000.h (gpc_reg34_operand): Ditto.
+
+	* rs6000.c (gpc_reg{3,4}_operand): Reorganize code and don't allow
+	SUBREG's.
+
+	* rs6000.c (rs6000_override_options): Do not allow -mcpu=common on
+	little endian PowerPC's.
+	(gpc_reg{0,3,4,34}_operand): New functions to match a specific
+	register.
+	(cc_reg{0,1}_operand): Ditto.
+
+	* rs6000.h (reg_class): Add register classes for register 3 by
+	itself, register 4 by itself, registers 3&4, and CR1.
+	(REG_NAMES): Add support for new register classes.
+	(REG_CLASS_CONTENTS): Ditto.
+	(REGNO_REG_CLASS): Ditto.
+	(REG_CLASS_FROM_LETTER): Ditto.
+	(PREDICATE_CODES): Add new predicate functions.
+	(gpc_reg{0,3,4,34}_operand): Add declaration.
+	(cc_reg{0,1}_operand): Ditto.
+
+	* rs6000.md (common mode multiplication/division): Move/rename the
+	common mode calls so that they are closer to the define_expands
+	that call them.  Set attribute type to be jmpreg, rather than
+	integer, so optimizer knows the branch processing unit is used.
+	Make SI*SI->DI multiplier use register classes instead of
+	hardwired registers.  Add the appropriate clobbers of CR0/CR1 as
+	mandated by the PowerOpen spec.
+	(PowerPC SI*SI->DI multipliers): Add appropriate define_splits.
+
+	* rs6000/t-{,x}newas (MULTILIB*): Don't build power2 or 601
+	specific libraries.
+
+Tue Dec 26 21:52:18 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold_convert): When converting a NaN to
+	another type, change the type of the node before returning it.
+
+Mon Dec 25 17:12:10 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* c-typeck.c (mark_addressable): Fix error in last change.
+
+Sun Dec 24 22:19:49 1995  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.c (output_function_epilogue): Use assemble_integer rather
+	than calling ASM_OUTPUT_INT directly.
+	* pa.h (ASM_OUTPUT_INT): Use labels for everything in the
+	exception table section.
+
+	* pa.c (print_operand): Don't call fprintf to output a register
+	name.  Use fputs instead.
+
+	* pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Strip any name encoding
+	on the section name.
+
+Sun Dec 24 17:46:03 1995  Markus Theissinger  <Markus.Theissinger@gmd.de>
+
+	* toplev.c (main): Add -ax option.
+	* gcc.c (struct compilers): Likewise.
+	* final.c (end_final): Extended header increased to 11 words.
+	(profile_after_prologue): FUNCTION_BLOCK_PROFILER uses
+	count_basic_blocks instead of profile_label_no.
+
+	* libgcc2.c (struct bb): Add flags field.
+	(HAVE_POPEN): Test new define.
+	(struct __bb, struct bb_{edge,func}): New structs.
+	(__bb_init_{prg,file},__bb_{init,exit}_trace_func,__bb_trace_ret,
+	(__bb_trace_func{,_ret},gopen,gclose): New functions.
+
+	* sparc.h, i386.h, m68k.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER):
+	Extension for -ax option (profile_block_flag == 2).
+	(MACHINE_STATE_SAVE,MACHINE_STATE_RESTORE): New macros.
+	(FUNCTION_BLOCK_PROFILER_EXIT): New macro.
+	* sparc.c (output_function_epilogue), i386.c (function_epilogue):
+	Use FUNCTION_BLOCK_PROFILER_EXIT.
+	* m68k.c (output_function_epilogue): Likewise.
+	* xm-sparc.h: Define HAVE_POPEN.
+
+Sun Dec 24 06:50:30 1995  Barrett Richardson  (barrett@iglou.com)
+
+	* floatlib.c (__divdf3): Rewrite to do software divide of two
+	doubles instead of using __divsf3.
+
+Sun Dec 24 06:38:15 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.md (movdf): Don't copy a word at a time; nearly always loses.
+
+	* c-tree.h (DECL_C_BIT_FIELD): New macro.
+	* c-decl.c (finish_struct): Set it when set DECL_BIT_FIELD.
+	* c-typeck.c (mark_addressable, case COMPONENT_REF):
+	Give error if taking address of a bit field.
+
+	* gcc.c (unused_prefix_warning): Include machine_suffix if
+	require_machine_suffix.
+	(warn_B, warn_std, warn_std_ptr): New variables.
+	(process_commands): Use them and NULL_PTR as WARN arg to add_prefix.
+
+	* gcc.c (process_command): Give error for -c with -o and
+	multiple compilations.
+	(handle_braces): Rename variable "pipe" to "pipe_p".
+
+	* expr.h (clrstr_optab): New declaration.
+	(clear_storage): New parm, ALIGN.
+	* tree.h (CONSTRUCTOR_TARGET_CLEARED_P): New macro.
+	* genopinit.c (optabs): Add "clrstr%a%".
+	* optabs.c (init_optabs): Initialize clrstr_optab.
+	* expr.c (struct clear_by_pieces): New structure.
+	(clear_by_pieces{,_1}, {is,mostly}_zeros_p): New functions.
+	(clrstr_optab): New optab.
+	(clear_storage): Rework to try to use clear_by_pieces, then
+	new clrstr insn, then library call.
+	(store_constructor): Track if target is already cleared.
+	Clear target first if CONSTRUCTOR is mostly zeros.
+	Don't write zeros if target has been cleared.
+	Add new arg to clear_storage call.
+	(expand_expr, case CONSTRUCTOR): Don't put static constructor
+	in memory if mostly zero.
+	* i386.md (clrstrsi): New pattern and associate anonymous pattern.
+
+Sat Dec 23 12:21:53 1995  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.c (output_move_double): Correctly identify and handle
+	overlapping moves.
+	* pa.md (movdi patterns): Eliminate earlyclobbers in mem<->gr
+	cases.
+	(movdf patterns): Likewise.
+
+Fri Dec 22 17:29:42 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (store_constructor): Don't call change_address on REG.
+	(expand_expr, case CONSTRUCTOR): Likewise.
+
+	* mips.c (expand_block_move): Preserve MEM flags in call to
+	movstrsi_internal.
+
+	* pa.c (emit_move_sequence): Don't try to set REGNO_POINTER_FLAG
+	for a SUBREG.
+
+	* reload.c (find_valid_class): New function.
+	(push_reload): Use it in cases where a SUBREG and its contents
+	both need to be reloaded.
+
+	* toplev.c (rest_of_compilation): Never defer functions that
+	contain nested functions.
+
+Fri Dec 22 15:55:00 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.md (function units): Add 403 support which deleted
+ 	by accident on Nov 21st.  Mark all compares from 602, 603, 604,
+ 	620, 403, like was done for rios{1,2} and 601 as needing the bpu,
+ 	so that compares are hoisted far enough branches for zero cycle
+ 	branch support.
+
+Fri Dec 22 15:13:47 1995  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.h: (TARGET_UNROLL_STRLEN): New macro.
+	* i386.c: (output_strlen_unroll): New function.
+	* i386.md: (strlensi): New pattern.
+
+Thu Dec 21 18:53:31 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* config/gnu.h (GNU_CPP_PREDEFINES): Add missing space after
+	-Amachine(CPU).
+
+Thu Dec 21 12:23:42 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* configure ({powerpc,rs6000}*): Change --enable-cpu to
+	--with-cpu.
+	* rs6000.c (rs6000_select): Ditto.
+
+	* rs6000/aix41.h (LINK_SPEC): Do not pass -bexport to the linker
+	if -g and -shared.
+
+Wed Dec 20 11:23:39 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* configure ({powerpc,rs6000}-ibm-aix*): Merge these two into the
+	same case statement.  Aix 4 now generates -mcpu=common by default.
+	({powerpc,rs6000}*): Add support for --enable-cpu=<value> to
+	select the default cpu to compile for.
+
+	* rs6000/aix41.h (TARGET_DEFAULT): Make -mcpu=common the default
+	behavior.
+	(PROCESSOR_DEFAULT): Ditto.
+	(MULTILIB_DEFAULTS): Set mcpu=common.
+
+	* rs6000/rs6000.h (TARGET_CPU_DEFAULT): Define to be NULL if not
+	defined.  This is used for the --enable-cpu=<value> switch.
+	(PROCESSOR_COMMON): Set this to PROCESSOR_601.
+	(PROCESSOR_POWERPC): Set this to PROCESSOR_604.
+	(TARGET_OPTIONS): Add -mtune= switch.
+	(rs6000_select): New structure to hold -mcpu=, -mtune= switches
+	and the result of configuring --enable-cpu=.
+	(OVERRIDE_OPTIONS): Pass TARGET_CPU_DEFAULT to
+	rs6000_override_options.
+
+	* rs6000/rs6000.c (rs6000_cpu_string): Delete global variable.
+	(rs6000_select): Define new global variable.
+	(rs6000_override_options): Take default_cpu argument, and provide
+	support for it and -mtune= in addition to -mcpu=.
+
+	* rs6000/{aix{3newas,41},lynx,netware,powerpc}.h (ASM_SPEC): Add
+	support for -mcpu=power2.
+	* rs6000/{rs6000,sysv4}.h (ASM_SPEC): Ditto.
+
+	* rs6000/{aix41,eabiaix,eabile,lynx,powerpc}.h (CPP_SPEC): Make
+	sure all -mcpu=xxx targets are supports.
+	* rs6000/{rs6000,sysv4,sysv4le}.h (CPP_SPEC): Ditto.
+
+	* rs6000/t-x{newas,rs6000}: New files to be used when making a
+	cross compiler, to prevent libgcc1-test from being made.
+
+	* rs6000/t-{x,}newas (MULTILIB_*): Build multlilib libraries for
+	power, power2, 601, powerpc, and common mode processors.
+
+	* rs6000/aix41ppc.h: Delete, no longer used.
+
+Tue Dec 19 18:31:21 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* mips.c (mips_reg_names, mips_sw_reg_names, mips_regno_to_class):
+	Add entry for new RAP reg.
+	* mips.h (FIRST_PSEUDO_REGISTER): Increment.
+	(FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES,
+	DEBUG_REGISTER_NAMES): Add entry for new RAP reg.
+	(RAP_REG_NUM, RETURN_ADDRESS_POINTER_REGNUM): New macros.
+	(RETURN_ADDR_RTX): Define.
+	(ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET):
+	Add RETURN_ADDRESS_POINTER_REGNUM support.
+	* emit-rtl.c (return_address_pointer_rtx): New global variable.
+	(gen_rtx, init_emit_once): Add support for it.
+
+Tue Dec 19 15:08:31 1995  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* collect2.c: Remove auto_export functionality.
+
+Tue Dec 19 10:57:23 1995  Kim Knuttila  <krk@cygnus.com>
+
+	* ginclude/ppc-asm.h: Do not compile the register macros under
+	winnt.
+
+Mon Dec 18 19:31:23 1995  Adam Fedor  <fedor@wilma.Colorado.EDU>
+
+	* objc/encoding.c (objc_alignof_type): Handle _C_PTR case.
+
+Mon Dec 18 18:40:34 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* combine.c (simplify_rtx, case SUBREG): For SUBREG of a constant,
+	use <= instead of < when comparing mode sizes.
+	(force_to_mode, case NOT): Use full mask inside	the NOT operation.
+
+	* expr.c (emit_block_move): When call emit_libary_call for bcopy,
+	pass arguments using correct types and modes.
+	(emit_push_insn, expand_assignment): Likewise.
+	(clear_storage, store_expr): Likewise for memset and bzero.
+	(store_constructor): Likewise for memset.
+	* optabs.c (emit_cmp_insn): Likewise for memcmp and bcmp.
+	* convex/convex.c (expand_movstr_call): Likewise for memcpy.
+	* m88k/m88k.c (expand_block_move): Likewise for memcpy and bcopy.
+	* mips/mips.c (block_move_call): Likewise for memcpy and bcopy.
+	* mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise for cacheflush.
+
+	* c-common.c (WCHAR_TYPE_SIZE): Add a default definition.
+
+	* sdbout.c (sdbout_symbol, case FUNCTION_DECL): Use DECL_INITIAL
+	instead of DECL_EXTERNAL to identify declarations.
+
+        * svr4.h (ASM_IDENTIFY_GCC): Don't output stab here.
+	(ASM_IDENTIFY_GCC_AFTER_SOURCE): Output stab here instead of
+	above.
+
+	* stmt.c (expand_asm_operands): Handle numeric constraints in
+	with the default case.
+
+Mon Dec 18 16:49:43 1995  John F. Carr  <jfc@mit.edu>
+
+	* expr.h (expand_mult_highpart_adjust): Declare.
+
+Mon Dec 18 16:39:41 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (store_constructor): Fix error in last change: just
+	copy MEM, but be sure to share address.
+	(expand_expr, case CONSTRUCTOR): Likewise.
+
+Mon Dec 18 16:22:46 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.h (ASM_GENERATE_INTERNAL_LABEL): Put a leading '*'
+	in the label string so as to not confuse dbxout.c which believes
+	it can skip the leading character of the string.
+
+Mon Dec 18 09:44:56 1995  Mike Stump  <mrs@cygnus.com>
+
+	* libgcc2.c (__empty): An empty function used by the C++ frontend for
+	defaulting cleanup actions.
+
+	* tree.c (save_tree_status, restore_tree_status): Save and restore
+	temporary_firstobj, so that in progress objects that live on the
+	temporary obstack are not reallocated, if we save and restore the
+	tree status in their lifetime.
+
+
+Mon Dec 18 07:49:34 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (fixup_var_refs_1): Fix error in last change (when
+	mode of VAR is not the same as PROMOTED_MODE).
+
+Sun Dec 17 12:14:37 1995  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Don't surround section names
+	with '$'.  That confuses collect2.
+	(ASM_OUTPUT_SECTION_NAME): Likewise.
+
+	* sched.c (canon_rtx): Recursively look for equivalences;
+	look for expressions equivalent to MEMs.
+	(true_dependence): Canonicalize inputs before operating
+	on their values.
+	(anti_dependence, output_dependence): Likewise.
+
+        * jump.c (follow_jumps): Don't follow an unconditional jump
+        that is not a simple_jump.
+
+        * pa.c (override_options): Make 7100 scheduling the default.
+
+        * pa.md: Add 2nd reload peephole somehow omitted from Nov27 changes.
+
+	* regclass.c (regclass): Use SECONDARY_RELOAD_CLASS if it's
+	defined to avoid useless work.
+
+	* combine.c (find_split_point): Try to split SET_DEST
+	just like we do for SET_SRC.
+
+Sun Dec 17 11:37:25 1995  Torbjorn Granlund  <tege@noisy.tmg.se>
+
+	* expmed.c (expand_mult_highpart): When doing widening multiply,
+	put constant in a register.
+	(expand_mult_highpart): When mode is word_mode use gen_highpart
+	instead of right shift by size.
+
+	* expr.c (expand_expr, case MULT_EXPR): Generalize code for widening
+	multiply to handle signed widening multiply when only unsigned optab
+	is defined, and vice versa.
+
+Sun Dec 17 07:35:50 1995  Pat Rankin  <rankin@eql.caltech.edu>
+
+	* vax/vms.h (WCHAR_TYPE_SIZE): Define.
+
+Sun Dec 17 07:08:34 1995  Ronald F. Guilmette  <rfg@monkeys.com>.
+
+	* fp-test.c: New file.
+
+Sun Dec 17 07:06:03 1995  Peter Flass  <flass@lbdc.senate.state.ny.us>
+
+	* i370.md (cmpqi): Fix generation of literal operand of CLM instruction
+	to avoid double literals (=X'=F'...).
+
+Sun Dec 17 06:57:02 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c: Try harder not to open or stat the same include file twice.
+	Simplify include file names so that they are more likely to match.
+	E.g. simplify "./a//b" to "a/b".  Represent directories with simplified
+	prefixes, e.g. replace "./a//b" with "a/b/", and "." with "".
+
+	(absolute_filename): New function.
+	(do_include): Use it.
+	(read_name_map): Likewise; this makes things more consistent for DOS.
+
+	(main, do_include, open_include_file): -M output now contains
+	operands of -imacros and -include.
+
+	(skip_to_end_of_comment): When copying a // comment, don't try to
+	change it to a /* comment.
+	(rescan, skip_if_group, skip_to_end_of_comment, macarg1): Tune.
+
+	(rescan, skip_if_group, skip_to_end_of_comment, macarg1):
+	If warn_comments is nonzero, warn if backslash-newline appears
+	in a // comment.  Simplify method for finding /* /* */ comment.
+	(skip_if_group): Optionally warn if /* /* */ appears between # and
+	a directive inside a skipped if group.
+	(macarg): Optionally warn if /* /* */ appears in a macro argument.
+
+	(strncat, VMS_strncat, vms_ino_t, ino_t): Remove.
+	(INCLUDE_LEN_FUDGE): Add 2 if VMS, for trailing ".h".
+	(INO_T_EQ, INO_T_HASH): New macros.
+
+	(struct file_buf): New member `inc'.
+	(expand_to_temp_buffer): Initialize it.
+
+	(struct file_name_list): New member `inc'.
+	(struct file_name_list): New member `st'.
+	c_system_include_path is now 1 if not 0.
+	fname is now an array, not a pointer.
+	(struct include_file): New members `next_ino', `deps_output', `st'.
+	Remove members `inode' and `dev'; they are now in `st'.
+
+	(INCLUDE_HASHSIZE): Rename from INCLUDE_HASH_SIZE.
+	(include_hashtab): Rename from include_hash_table.
+	(include_ino_hashtab): New variable.
+
+	(main): Store file status in struct stat, not in long and int pieces.
+	Use base_name to strip prefixes from file names.
+	When printing directory prefixes, omit trailing / and print "" as ".".
+	Fatal error if the input file is a directory.
+	(main, path_include): Regularize operands of -include, -imacros,
+	-isystem, -iwithprefix, and -iwithprefixbefore.
+	Regularize default include directories.
+
+	(do_include):
+	Allocate dsp with alloca, since fname is now dynamically allocated.
+	Use -3 to represent a never-opened file descriptor.
+	Make copy of file name, and simplify the copy.
+	Use base_name to identify the end of fname's directory.
+	Do not prepend dir for "..." if it matches the search list's first dir.
+	open_include_file now subsumes redundant_include_p and lookup_import.
+	Use bypass_slot to remember when to skip directories when including
+	a file that has already been seen.
+	Instead of using 0 to represent the working directory, and ""
+	to represent a directory to be ignored, use "" for the former,
+	and assume the latter has been removed before we get here.
+	Assume the directory prefixes have already been simplified.
+	Report as errors all open failures other than ENOENT.
+	Fatal error if fstat fails.
+	Use new deps_output member to avoid printing dependencies twice.
+	(bypass_hashtab): New variable.
+
+	(do_include, open_control_file, record_control_macro): New convention:
+	control_macro is "" if the file was imported or had #pragma once.
+	(pragma_once_marker): Remove.
+
+	(redundant_include_p, include_hash, lookup_include, lookup_import,
+	add_import, file_size_and_mode): Remove; subsumed by open_include_file.
+	(skip_redundant_dir_prefix): Remove; subsumed by simplify_filename.
+
+	(is_system_include, read_name_map, remap_include_file):
+	Assume arg is a directory prefix.
+
+	(base_name, simplify_filename, remap_include_file,
+	lookup_ino_include, new_include_prefix): New functions.
+
+	(open_include_file): New arguments `importing' and `pinc'.
+	Move filename mapping into new remap_include_file function.
+	First try to find file by name in include_hashtab;
+	if that doesn't work, open and fstat it and try to find it
+	by inode and dev in include_ino_hashtab.
+
+	(finclude): Get file status from inc->st instead of invoking fstat.
+	Store inc into fp->inc so that record_control_macro doesn't
+	need to do a table lookup.
+	(finclude, record_control_macro): Accept struct include_file *
+	instead of char * to identify include file.  All callers changed.
+
+	(check_precompiled): Get file status from new argument `st'.
+
+	(do_pragma): Output at most one warning about #pragma implementation.
+	Always return 0 instead of returning garbage sometimes.
+	(do_pragma, hack_vms_include_specification):
+	Use base_name for consistency, and remove redundant code.
+
+	From Per Bothner:
+	Unify the 3 separate mechanisms for avoiding processing
+	of redundant include files: #import, #pragma once, and
+	redundant_include_p to use a single more efficient data structure.
+	(struct file_name_list):  Remove no-longer needed field control_macro.
+	(dont_repeat_files, all_include_files):  Remove, no longer used.
+	(struct import_file):  Renmed to struct include_file, moved earlier
+	in file, renamed field name to fname, and added control_macro field.
+	(pragma_once_marker):  New constant.
+	(import_hash_table):  Renamed to include_hash_table.
+	(import_hash):  Renamed to include_hash.
+	(IMPORT_HASH_SIZE):  Renamed to INCLUDE_HASH_SIZE.
+	(main, path_include):  Don't clear removed control_macro field.
+	(lookup_include):  New function - look up fname in include_hash_table.
+	(redundant_include_p):  Re-write to use lookup_include.
+	(lookup_import, record_control_macro):  Likewise.
+	(add_import):  Defer fstat to caller.  Combine two xmallocs into one.
+	(do_once):  Use pragma_once_marker in include_hash_table.
+	(do_pragma):  Re-implement to scan include_hash_table.
+	(do_include):  Use new lookup_include and add_import.
+
+Sun Dec 17 06:45:43 1995  John F. Carr <jfc@mit.edu>
+
+	* configure (savesrcdir): Do not create paths with trailing "/.".
+
+	* combine.c (try_combine): When checking for two sets of the same
+	register in a split insn, also test for setting a ZERO_EXTRACT,
+	STRICT_LOW_PART, or SUBREG.
+
+Sun Dec 17 06:37:00 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload.c (push_secondary_reload): Don't strip paradoxical SUBREG
+	if reload_class is CLASS_CANNOT_CHANGE_SIZE.
+
+Sat Dec 16 18:24:20 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_assignment): Fix alignment parm in emit_block_move.
+
+Sat Dec 16 18:16:08 1995  John Hassey  (hassey@rtp.dg.com)
+
+	* local-alloc.c (optimize_reg_copy_2): Don't attempt
+	optimization if destination register dies.
+
+Sat Dec 16 08:31:16 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* fold-const.c (fold):  Don't record overflow when negating
+	unsigned constants.
+
+Sat Dec 16 07:45:11 1995  Gran Uddeborg  (uddeborg@carmen.se)
+
+	* configure (i[3456]-*-isc, gas, stabs): Remove crt* from extra_files
+
+Sat Dec 16 07:03:33 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* stor-layout.c (layout_record): When PCC_BITFIELD_TYPE_MATTERS,
+	compute bitpos using field_size % type_align instead of field_size.
+
+	* fixincludes (stdio.h):  Fix return type of fread and fwrite
+	on sysV68.
+
+Sat Dec 16 06:57:14 1995  Thomas Lundqvist  (d0thomas@dtek.chalmers.se)
+
+	* function.c (fixup_var_refs_1): Fix two incorrect calls to single_set.
+
+Fri Dec 15 22:30:27 1995  Torbjorn Granlund  <tege@noisy.tmg.se>
+
+	* i386.h (REGISTER_MOVE_COST): Simplify.
+
+Fri Dec 15 22:30:27 1995  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* i386.h (TARGET_CPU_DEFAULT*, PROCESSOR_*,
+	TARGET_{LEAVE,386_ALIGNMENT,PUSH_MEMORY,ZERO_EXTEND_WITH_AND,
+	DOUBLE_WITH_ADD,BIT_TEST}): New macros.
+	* i386.c (ix86_cpu*, ix86_isa*): New global variables.
+	(override_options): Add -mcpu and -misa support
+	* i386.md: Use TARGET* macros.
+	* i386/dgux.{c,h}: New files.
+	* m88k/t-dgux: (GCC_FOR_TARGET, T_CFLAGS): New macros.
+	* m88k/t-dguxbcs: New file.
+	* m88k/x-{dgux,dguxbcs}: (GCC_FOR_TARGET, X_CFLAGS): Removed.
+
+Fri Dec 15 18:41:50 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* fixincludes (sys/wait.h):  Add forward declaration of struct rusage
+	on AIX 3.2.5.
+
+Fri Dec 15 18:39:36 1995  Marco S Hyman  (marc@dumbcat.sf.ca.us)
+
+	* xm-bsd386.h (DONT_DECLARE_SYS_SIGLIST): Defined.
+
+Fri Dec 15 18:36:42 1995  Gran Uddeborg (uddeborg@carmen.se)
+
+	* i386/svr3dbx.h (DO_GLOBAL_DTORS_BODY): Delete; obsolete.
+
+Fri Dec 15 18:21:34 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* i386/i386iscgas.h, i386/t-iscscodbx: Deleted; long dead.
+
+Fri Dec 15 10:01:27 1995  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* configure (target_cpu_default) Set for 486/586/686
+	(m88k-dg-dgux) Use t-dguxbcs instead of x-dguxbcs
+	(i*86*) Change [345] to [3456]
+	(i[3456]86-dg-dgux) Added
+	* Makefile.in (out_object_file) Add MAYBE_TARGET_DEFAULT
+
+Fri Dec 15 08:05:49 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (init_temp_slots): New function.
+	(init_function_start): Code moved to new function and called here.
+	* toplev.c (rest_of_compilation): Call init_temp_slots.
+
+	* expmed.c (store_bit_field): Don't use insv for BLKmode value.
+	(store_split_bit_field): Set total_bits to BITS_PER_FOR for
+	BLKmode value.
+
+Fri Dec 15 06:35:36 1995  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* xcoffout.h (DBX_STATIC_BLOCK_END): Use macro arguments.
+	(xcoff_begin_function_line, xcoff_current_function_file): Remove
+	unused extern declarations.
+	(DBX_OUTPUT_MAIN_SOURCE_FILENAME): Use macro argument.
+	* xcoffout.c (xcoff_begin_function_line): Make static.
+	(xcoff_inlining): Likewise.
+	(xcoff_current_function_file): Likewise.
+	(xcoff_output_standard_types): Remove TARGET_64BIT dependencies from
+	int and unsigned int.
+
+Mon Oct 16 12:25:52 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* fix-header.c:  Support different kinds of functions (ANSI and
+	Posix1).  Enable ANSI proptotypes if __STRICT_ANSI__.
+	(namelist_end):  Removed.
+	(std_include_table):  Divide up functions into kinds.
+	(add_symbols):  New function.
+	(read_scanfile, write_rbrac, main):  Use new data structures.
+
+Thu Dec 14 19:17:12 1995  Torbjorn Granlund  <tege@noisy.tmg.se>
+
+	* rs6000.md (umulsidi3): New pattern.
+
+Thu Dec 14 18:08:59 1995  Torbjorn Granlund  <tege@noisy.tmg.se>
+
+	* expmed.c (expand_divmod, case TRUNC_DIV_EXPR): Only reject
+	larger-than-HOST_BITS_PER_WIDE_INT modes for general constants,
+	not for powers-of-2.
+
+	* i960.md (andsi3): Match op2 with logic_operand, change constraints
+	accordingly.  Output andnot for negative op2.
+	(iorsi3, xorsi3): Analogous changes.
+	* i960.c (logic_operand): New function.
+	(i960_print_operand): Handle code `C'.
+	* i960.h (PREDICATE_CODES): Add logic_operand.
+	(CONST_OK_FOR_LETTER_P): Handle `M'.
+	* i960.md: Move all plain logical patterns together.
+	* i960.h (SHIFT_COUNT_TRUNCATED): Define as 0 as appropriate.
+
+	* clipper.md (untyped_call): New pattern.
+
+	* m68k.md (ashrsi_31): New pattern.
+
+Thu Dec 14 17:22:14 1995  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* arm/arm.c (output_move_double): Extract DFmode constants using
+	REAL_VALUE_TO_TARGET_DOUBLE.
+
+Thu Dec 14 15:05:13 1995  Doug Evans  <dje@cygnus.com>
+
+	* Makefile.in (distclean): Delete float.h.
+	* configure: Set CROSS_FLOAT_H from float_format.
+	* config/float-i64.h: New file.
+	* config/float-i32.h: New file.
+	* config/float-vax.h: New file.
+	* arm/cross-float.h: Delete.
+	* arm/t-semi (CROSS_FLOAT_H): Delete.
+
+Wed Dec 13 19:16:57 1995  Mike Stump  <mrs@cygnus.com>
+
+	* expr.c (expand_expr, case ADDR_EXPR): Ensure op0 isn't QUEUED.
+
+Wed Dec 13 19:12:21 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* gcc.c (my_strerror): Return "cannot access" if errno is 0.
+	(perror_with_name, pfatal_with_name, perror_exec): Don't assume that
+	the returned value from my_strerror contains no '%'s.
+	(sys_nerr): Declare only if HAVE_STRERROR is not defined.
+
+Wed Dec 13 19:05:47 1995  Alan Modra  (alan@spri.levels.unisa.edu.au)
+
+	* Makefile.in (c-parse.y, objc-parse.y): Add warning that file is
+	automatically generated.
+
+Wed Dec 13 15:40:30 1995  Mike Stump  <mrs@cygnus.com>
+
+	* function.c (identify_blocks): Start with a chain of BLOCKs to
+	match the rest of the backend (dbxout.c), instead of just one
+	BLOCK.
+	(reorder_blocks): Ditto.
+	(all_blocks): Ditto.
+
+	* stmt.c (find_loop_tree_blocks): Pass the toplevel list of
+	blocks, not just the first subblock.
+
+Wed Dec 13 16:11:18 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expmed.c (expand_divmod): Don't use TARGET if it's the wrong mode.
+
+Wed Dec 13 15:02:39 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* dbxout.c (struct typeinfo): Define.
+	(typevec): Change to be struct typeinfo *.  Change other uses as
+	appropriate.
+	(struct dbx_file): Define if DBX_USE_BINCL.
+	(current_file): New static variable if DBX_USE_BINCL.
+	(next_file_number): Likewise.
+	(dbxout_init): If DBX_USE_BINCL, initialize new variables.
+	(dbxout_start_new_source_file): New function.
+	(dbxout_resume_previous_source_file): New function.
+	(dbxout_type_index): New function.
+	(dbxout_range_type): Use dbxout_type_index.
+	(dbxout_type): Likewise.  If DBX_USE_BINCL, initialize new typevec
+	fields.
+	* c-lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols
+	== DBX_DEBUG, call dbxout_start_new_source_file and
+	dbxout_resume_previous_source_file when appropriate.
+	* config/sparc/sunos4.h (DBX_USE_BINCL): Define.
+	* config/svr4.h (DBX_USE_BINCL): Define.
+
+Wed Dec 13 06:52:40 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/win-nt.h (ASM_OUTPUT_EXTERNAL): Do not emit .extern for
+	builtin functions.
+
+Tue Dec 12 15:37:48 1995  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.c: Replace many uses of fprintf with putc and fputs.
+	(output_function_profiler): Use more efficient mnemonics, target
+	dependent mnemonics, asm_fprintf, and reg_names array.
+
+	* rs6000.h: Replace many uses of fprintf with putc and fputs.
+
+	* rs6000.h (INT_TYPE_SIZE): Remove TARGET_64BIT dependency.
+	(MAX_INT_TYPE_SIZE): Delete.
+
+Tue Dec 12 13:58:57 1995  Doug Evans  <dje@cygnus.com>
+
+	* h8300/t-h8300 (MULTILIB_{OPTIONS,DIRNAMES}): Add -mint32 support.
+
+Sun Dec 10 18:51:21 1995  Torbjorn Granlund  <tege@noisy.tmg.se>
+
+	* rs6000.md (matcher for neg:SI (geu:SI ..)): Get ppc syntax right.
+
+Sun Dec 10 08:47:16 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (simplify_if_then_else): Convert "a == b ? b : a" to "a".
+
+	* expr.c (expand_expr, case CONSTRUCTOR): If TREE_READONLY,
+	set RTX_UNCHANGING_P in TARGET.
+	(expand_expr, case COMPONENT_REF): If result is BLKmode,
+	use that to access object too.
+
+Sun Dec 10 01:06:57 1995  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.md (millicode delay slot description): Remove reference
+	to defunct TARGET_MILLICODE_LONG_CALLS.
+
+Sat Dec  9 18:05:03 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* expr.c (expand_expr, case INDIRECT_REF): Correct typo in May 8
+	change.
+
+	* sh.h (ADDRESS_COST): Define.
+	* sh.md (subsi3): Rename to subsi3_internal.  Add new define_expand
+	to handle subtracting a register from a constant.
+
+Fri Dec  8 19:17:30 1995  Mike Meissner  <meissner@beauty.cygnus.com>
+
+	* rs6000/rs6000.c (input_operand): Allow any integer constant, not
+	just integers that fit in 1 instruction.
+
+Fri Dec  8 10:45:07 1995  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* arm/lib1funcs.asm (RET, RETCOND): Define according to whether we
+	are compiling for 32 or 26 bit mode.
+	(all return instructions): Use RET or RETCOND as appropriate.
+
+Wed Dec  6 06:58:23 1995  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* arm.c (arm_gen_constant): New function.
+	(arm_split_constant): Split most of the functionality into
+	arm_gen_constant.  Try to decide which way of handling the constant
+	is optimal for the target processor.
+
+	* arm.c (arm_prgmode): New enum.
+	(target_{cpu,fpe}_name, arm_fast_multiply, arm_arch4): New variables.
+	(all_procs): New table describing processors and capabilities.
+	(arm_override_options): New function.
+	(arm_return_in_memory): New function.
+	(arm_rtx_costs): Adjust the multiply costs to cope with processors
+	with fast multiplication instructions.
+	(output_move_double): Use the ldm/stm variants more efficiently.
+	Delete cases that can no-longer occur.
+	(output_return_instruction, output_func_epilogue): Use TARGET_APCS_32,
+	not TARGET_6 for determining the type of return instruction to emit.
+	(final_prescan_insn case CALL_INSN): Use TARGET_APCS_32, not TARGET_6
+	to determine condition preservation.
+	* arm.h (CPP_SPEC): Add defines for the cpu type, hard or soft floating
+	point, and the APCS PC size.
+	(TARGET_*): Restructure.
+	(ARM_FLAG_*): Many new definitions for different target options, not
+	all of which are supported yet.
+	(TARGET_SWITCHES): Use the ARM_FLAG_* definitions instead of explicit
+	numbers.
+	(prog_mode_type): New enum.
+	(floating_point_type): Split emulated floating point into FP_SOFT[23].
+	(OVERRIDE_OPTIONS): Call arm_override_options.
+	(ARM_CPU_NAME): Default to NULL if not defined by a subtarget.
+	(BYTES_BIG_ENDIAN): Can now be set as a compilation option.
+	(RETURN_IN_MEMORY, DEFAULT_PCC_STRUCT_RETURN): New definitions.
+	(GO_IF_LEGITIMATE_OFFSET): Use different HImode offsets if compiling
+	for an architecture 4 target.  The offsets for floating point
+	constants are the same as for integers if compiling TARGET_SOFT_FLOAT.
+	(GO_IF_LEGITIMATE_ADDRESS): Don't allow PRE_INC and POST_DEC if
+	the size is more than 4 bytes.  Restrict the range offsets for DImode;
+	likewise for DFmode when TARGET_SOFT_FLOAT.
+	(LEGITIMIZE_ADDRESS): Use symbol_mentioned_p, not LEGITIMATE_CONSTANT_P
+	to determine if a constant address might be better in a register.
+	Handle DFmode addresses in the same way as DImode if TARGET_SOFT_FLOAT.
+	(LOAD_EXTEND_OP): If arm_arch4, then HImode also zero-extends.
+	* arm.md (attributes): Rearrange order, so that condition clobbering
+	can be automatically determined for call insns.
+	(attribute cpu): Add new cpu ARM7.
+	(attribute type): Add new type MULT.
+	(attribute prog_mode): New attribute.
+	(attribute conds): Clobbering of call insns can now be determined
+	using prog_mode attribute.
+	(function units "write_buf", "write_blockage"): Model the write buffer
+	as two function units, so that conflicts are avoided more often.
+	(funcion unit "core"): New function unit, so that elapsed cycles can
+	be more accurately determined.
+	(all anonymous patterns): Add names.
+	(mulsidi3, umulsidi3): New patterns available with fast multiply
+	variants.
+	(all call insns): The conds attribute is now determined automatically.
+	(zero_extendhisi): Expand for architecture 4 variants if appropriate.
+	(*zero_extendhisi_insn): New pattern.
+	(extendqi{hi,si}, extendhisi): Expand for architecture 4 variants if
+	appropriate.
+	(*extendhisi_insn, *extendqihi, *extendqisi): New patterns.
+	(storehi_single_op): New expand.
+	(movhi): Handle architecture 4 expansion.
+	(*movhi_insn_arch4): New pattern.
+	(*movhi_*): Adjust applicability conditions to handle architecture 4.
+	(reload_outdf): Handle pre/post inc/dec reloads.
+	(tablejump): Delete.
+	(matcher for optimized tablejump): delete.
+	(casesi): New expand.
+	(casesi_internal): New pattern.
+	* semi.h (EXIT_BODY): Delete.
+	(TARGET_DEFAULT): Set to ARM_FLAG_APCS_32.
+	(CPP_SPEC): Define.
+	arm/cross-float.h: New file, used when building a cross-compiler.
+	* t-semi: Don't define inhibit_libc when building libgcc2.a.
+	(CROSS_FLOAT_H): Define.
+
+	* arm.c	({symbol,label}_mentioned_p): New functions.
+	(add_constant, dump_table, fixit, find_barrier, broken_move): New
+	support functions for handling constant spilling.
+	(arm_reorg): New constant spilling pass, for putting unhandlable
+	constants into the rtl where we can load them efficiently.
+	(output_load_symbol): Delete.
+	* arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): No need to handle floating
+	point constants any more, since arm_reorg will deal with them.
+	(LEGITIMATE_CONSTANT_P): Is now anything that doesn't contain a
+	LABEL.
+	(GO_IF_LEGITIMATE_ADDRESS): Recognize address expressions generated
+	by arm_reorg, but only after reload has completed.
+	(MACHINE_DEPENDENT_REORG): Define.
+	(ASM_OUTPUT_SPECIAL_POOL_ENTRY): There should be nothing left in
+	the pool, even if it might look like it.
+	* arm.md (*movsi_insn): Much simpified now that constants are handled
+	properly.
+	(movaddr): New expand.
+	(movsf, movdf): No need to force constants into the pool any more.
+	(*movdf_hard_insn): Much simplified.
+	(consttable_4, consttable_8, consttable_end, align_4): New patterns
+	for supporting embedded constants.
+
+	* configure: New target arm-semi-aof.
+	* arm.c (strings_fpa): Use a form which is common to both GAS and
+	ARMASM.
+	(output_return_instruction, output_func_epilogue): Call
+	assemble_external_libcall, before trying to generate an abort call
+	in the assembler.
+	(arm_asm_output_label): Call ARM_OUTPUT_LABEL, rather than assuming
+	that labels are followed by a colon.
+	(aof_text_section, aof_add_import, aof_delete_import,
+	 aof_dump_imports): New functions to support ARMASM assembler
+	generation.
+	* arm/aout.h: New file.
+	* arm/aof.h: New file.
+	* arm.h (most assembler-specific defines): Move to arm/aout.h.
+	(CONSTANT_ADDRESS_P): Can't directly access constant strings when
+	generating assembler for ARMASM.
+	(ENCODE_SECTION_INFO): Don't define if generating ARMASM assembler.
+	(ASM_OUTPUT_INTERNAL_LABEL): Generalize, so that it can be used
+	with all targeted assemblers.
+	(ASM_OUTPUT_LABEL): Call arm_asm_output_label.
+	* riscix.h: Include arm/aout.h, not arm/arm.h.
+	* riscix1-1.h: Likewise.
+	* semi.h: Likewise.
+	* arm/semiaof.h: New file.
+	* arm/t-semiaof: New file.
+
+Mon Dec  4 22:17:37 1995  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* gcc.c (LIBGCC_SPEC): Do link with libgcc when -shared.
+	* alpha.h (LIBGCC_SPEC): Remove.
+	* linux.h (LIBGCC_SPEC): Remove.
+	* svr4.h (LIBGCC_SPEC): Remove.
+	* i386/t-crtpic (TARGET_LIBGCC2_CFLAGS): Use -fPIC.
+	* t-pa (TARGET_LIBGCC2_CFLAGS): Use -fPIC.
+	* sparc/t-sunos41 (TARGET_LIBGCC2_CFLAGS): Use -fPIC.
+	* sparc/t-sol2 (TARGET_LIBGCC2_CFLAGS): Use -fPIC.
+	* configure (i386-linux): Use i386/t-crtpic.
+
+	* i386/xm-sco.h: #define NO_SYS_SIGLIST.
+
+Mon Dec  4 21:30:37 1995  Jim Wilson  <wilson@mole.gnu.ai.mit.edu>
+
+	* sh/sh.c (shiftcosts): For SH3, max cost of arithmetic right
+	shift is 3.
+	(expand_ashiftrt): For SH3, if shift cost is more than 3, then
+	call gen_ashrsi3_d to use shad instruction.
+
+Mon Dec  4 18:29:08 1995  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* c-decl.c (finish_struct): Don't mess with the type of bitfields.
+
+Mon Dec  4 15:28:02 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (store_constructor, record): If field is READONLY,
+	set RTX_UNCHANGING_P in TO_RTX.
+
+Mon Dec  4 12:59:33 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config/sparc/t-sol2 (CRTSTUFF_T_CFLAGS): Use -fPIC
+	unconditionally, since binutils 2.6 supports it.
+
+Sun Dec  3 20:55:43 1995  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Handle arbitrary sections.
+	(ASM_OUTPUT_SECTION_NAME): Define.
+
+Sat Dec  2 22:19:16 1995  Jeffrey A. Law  (law@cygnus.com)
+
+	* pa.h: Replace many uses of fprintf with fputs.
+	* pa.c: Likewise.
+	* pa-pro.h: Likewise.
+
+	* pa.h (SECONDARY_RELOAD_CLASS): Don't call secondary_reload_class
+	to handle trivial cases.
+	* pa.c (secondary_reload_class): Rework to be more efficient.
+
+Sat Dec  2 07:52:46 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/rs6000.md (movsi): Don't split large constants in the
+	movsi pattern, let the define_split split it later as needed.
+
+Fri Dec  1 16:00:42 1995  Brendan Kehoe  <brendan@cygnus.com>
+
+	* sparc/sparc.c (output_double_int): Handle CODE_LABEL's if v9.
+
+Fri Dec  1 09:13:23 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* m68k/m68k.md (decrement_and_branch_until_zero): Split into a
+	define_expand and an anonymous define_insn.
+	* fx80/fx80.md (decrement_and_branch_until_zero): Ditto.
+	* m88k/m88k.md (decrement_and_branch_until_zero): Ditto.
+
+Thu Nov 30 15:02:16 1995  Jim Wilson  <wilson@mole.gnu.ai.mit.edu>
+
+	* sh.c (noncall_uses_reg): New function.
+	(machine_dependent_reorg): Add support for TARGET_RELAX.
+	(final_prescan_insn): Likewise.
+	* sh.h (ASM_SPEC, LINK_SPEC): Pass on -mrelax.
+	(RELAX_BIT, TARGET_RELAX): New macros.
+	(TARGET_SWITCHES): Add -mrelax.
+
+	* sh/sh.c (insn-attr.h): Include.
+	(pragma_nosave_low_regs): New global variable.
+	(calc_live_regs): If SH3 and pragma_nosave_low_regs, then don't
+	save registers r0 through r7 for interrupt functions.
+	(function_epilogue): Clear pragma_nosave_low_regs.
+	(handle_pragma): Set pragma_nosave_low_regs if see pragma for it.
+
+	* sh/sh.h (FUNCTION_PROFILER): Use trap #33 instead of trap #5.
+	Put additional .align before trapa instruction.
+
+Thu Nov 30 14:45:13 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* sparc.md (seqdi_special_trunc, snedi_special_trunc,
+	seqsi_special_extend, snesi_special_extend): Delete uses of SUBREG.
+	Make compare modes match modes of operands.
+	(snesi_zero_extend, snedi_zero_trunc_sp32, snedi_zero_trunc_sp64,
+	seqsi_zero_extend, seqdi_zero_trunc_sp32, seqdi_zero_trunc_sp64):
+	New patterns.
+
+Thu Nov 30 12:27:22 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* genmultilib: Take a 4th argument that says are the exceptions to
+	the multilibs, so illegal combinations can be eliminated.
+
+	* Makefile.in (multilib.h): Pass $(MULILIB_EXCEPTIONS) as the 4th
+	argument to genmultilib.
+
+	* configure (powerpc*): Remove little endian and eabiaix versions
+	of the t-* files.  Accept powerpc{,le}-*-sysv in addition to
+	*-sysv4.
+	(powerpc{,le}-*-eabisim): Use standard t-eabigas instead of
+	t-eabisim.
+	(powerpcle-*-{winnt3,pe}): Add support for Windows NT on PowerPC.
+	* rs6000/t-{eabiaix,eabisim,eabilegas,ppclegas}: Delete.
+
+	* rs6000/{t-winnt,win-nt.h}: New files for PowerPC Windows NT.
+
+	* ginclude/ppc-asm.h: New file to provide common macros for the
+	various PowerPC calling sequences.
+	* rs6000/eabi.asm: Use ppc-asm.h.
+
+	* rs6000/aix3newas.h (CPP_SPEC): Add support for -mcpu=603e, 602,
+	and 620.
+	* rs6000/{aix41,powerpc,rs6000,eabi{aix,le}}.h (CPP_SPEC): Ditto.
+	* rs6000/sysv4{,le}.h (CPP_SPEC): Ditto.
+
+	* rs6000/aix3newas.h (LINK_SPEC): If cross compiling, don't use
+	absolute paths.
+	* rs6000/{aix41,aixppc,rs6000}.h (LINK_SPEC): Ditto.
+
+	* rs6000/eabi.h (INVOKE__main): Don't define any more.
+	(ASM_OUTPUT_INT): Move to sysv4.h.
+	({STARTFILE,LIB}_SPEC): If -msim or -mmvme add the appropriate
+	libraries.
+
+	* rs6000/{eabiaix,eabile,sysv4{,le}}.h (CPP_SPEC): Add support for
+	-mcall-{aixdesc,nt} directives.
+	(MULTILIB_DEFAULTS): Define.
+
+	* rs6000/eabi{,le}sim.h (TARGET_DEFAULT, CPP_SPEC): No longer
+	define, simulator supports floating point.
+	({STARTFILE,LIB}_SPEC): If -mvme, use mvme libraries, not
+	simulator libraries.
+
+	* rs6000/{mach,netware}.h (TARGET_AIX): Define as 0.
+
+	* rs6000/netware.h (RS6000_OUTPUT_BASENAME): Don't redefine
+	anymore.
+	(STRIP_NAME_ENCODING): Undef.
+
+	* rs6000/rs6000.c (rs6000_save_toc_p, rs6000_abi): New globals.
+	(rs6000_override_options): Add 602, 603e, and 620 support.
+	(count_register_operand): New function to return true if operand
+	is the count register.
+	(easy_fp_constant): All constants are easy if -msoft-float.
+	(volatile_mem_operand): New function to return true if operand is
+	in volatile memory.
+	({fp_,}reg_or_mem_operand): Call volatile_mem_operand.
+	(input_operand): Allow support for Windows NT loading SYMBOL_REFs
+	and LABEL_REFs from the TOC.
+	(function_arg_boundary): On Windows NT, any argument >= 8 bytes
+	must be double word aligned.
+	(function_arg{_advance,}): Call function_arg_boundary to determine
+	if we need to align to an odd register for large arguments.
+	Changes to accomidate new method of determining which ABI we're
+	adhering to.
+	(expand_block_move_mem): Copy RTX_UNCHANGING_P, and if
+	MEM_UNALIGNED_P is defined, copy that too.
+	(expand_block_move): Copy dest/src to registers using
+	copy_addr_to_reg.
+	(print_operand): Changes to accomidate Windows NT.
+	(first_reg_to_save): Ditto.
+	(rs6000_stack_info): Ditto.
+	(debug_stack_info): Ditto.
+	(output_{prolog,epilog,toc,function_profiler}): Ditto.
+	(rs6000_stack_info): Save main's arguments around __eabi call.
+	(svr4_traceback): Delete, current V.4 ABI no longer wants
+	tracebacks in this format.
+	(output_prolog): Call __eabi here, saving and restoring main's
+	args if needed.  Save the toc pointer if needed.
+	(get_issue_rate): New function to return # of instructions a
+	machine can issue at once.
+	(rs6000_sync_trampoline): Emit instructions to synchronize the
+	PowerPC caches after a trampoline.
+	(rs6000_trampoline_{template,size}): New functions to provide
+	common trampoline support for all ABI's.
+	(rs6000_initialize_trampoline): Ditto.
+
+	* rs6000/rs6000.h (TARGET_{WINDOWS_NT,AIX,MACOS}): Define.
+	(processor_type): Add 602.
+	(PROCESSOR_COMMON): Assume the current processor is a 604, not a
+	601.
+	(SUBTARGET_OPTIONS): Define if not defined.
+	(TARGET_OPTIONS): Include SUBTARGET_OPTIONS.
+	(COUNT_REGISTER_REGNUM): Define as 66.
+	(EXTRA_CONTRAINT): Add 'S' and 'T' for Windows NT.
+	(rs6000_abi): Add ABI_AIX_NODESC, ABI_NT.
+	(DEFAULT_ABI): Define if not defined.
+	(rs6000_stack): Add fields for Windows NT support.
+	(RS6000_SAVE_TOC): Add for Windows NT support.
+	(FUNCTION_ARG_BOUNDARY): Call function_arg_boundary.
+	(trampoline macros): Call trampoline functions in rs6000.c.
+	(RETURN_ADDRESS_OFFSET): Add Windows NT support.
+	(toc_section): Skip leading '*'.
+	(PREDICATE_CODES): Add volatile_mem_operand,
+	count_register_operand.
+	(MACHINE_issue_rate): Define.
+	(function decls): Add new function decls from rs6000.c.
+
+	* rs6000/rs6000.md (cpu attribute): Add 602.
+	(function units): Update to match reality better.
+	(calls through pointer): Rework to support Windows NT.
+	(movsi): Add Windows NT support.
+	(movstrsi): Remove match_operand predicates, since
+	expand_block_move does the checking.
+	(sync_isync): Delete.
+	(icbi, dcbst, sync, isync): New insns to generate the named
+	instruction for making trampolines on eabi/V.4 properly flush the
+	caches.
+	(decrement_and_branch_on_count): Rename from
+	decrement_and_branchsi.  Add update of count in insn pattern.
+
+	* rs6000/sysv4.h (TARGET_SWITCHES): Drop -mtraceback.  Keep
+	-mno-traceback but don't do anything with it.  Add
+	-mcalls-{nt,aixdesc}.  Add -m{,no-}relocatable-lib.  Add -msim,
+	-mmvme, and -memb.
+	(TARGET_TOC): Update for use with -mcalls-{nt,aixdesc}.
+	(SUBTARGET_OVERRIDE_OPTIONS): Update for new switches.
+	(RS6000_OUTPUT_BASENAME): Delete.
+	(toc_section): Add support for -mcall-{nt,aixdesc}.
+	(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Ditto.
+	(ASM_DECLARE_FUNCTION_NAME): Use STRIP_NAME_ENCODING instead of
+	RS6000_OUTPUT_BASENAME.  For -mcall-{nt,aixdesc} emit the proper
+	function descriptor.
+	(ASM_SPEC): Pass appropriate -mxxx switches to the assembler based
+	on the -mcpu=xxx options.
+	(ASM_OUTPUT_INT): Move here from eabi.h.
+	(ENCODE_SECTION_INFO): If -mcall-{nt,aixdesc} add approriate magic
+	so function name has two or one leading periods.
+	(ASM_OUTPUT_SOURCE_LINE): Delete, use version in svr4.h.
+	(trampoline macros): Call trampoline functions in rs6000.c.
+
+	* t-{eabi,ppc}{,gas} (EXTRA_HEADERS): Add ginclude/ppc-asm.h.
+	(LIB2FUNCS_EXTRA): Depend on eabi.S, not eabi.s.
+	(eabi.S): Rename from eabi.asm.
+
+	* t-{eabi,ppc}gas (MULTILIB_*): Add -mcall-aixdesc libraries, but
+	don't build either little endian or -mrelocatable versions of
+	those libraries.
+
+Tue Nov 28 00:10:27 1995  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.md (divsi3): Reorder so common mode does not negate
+	power-of-2 shift optimization.
+
+Wed Nov 29 22:06:11 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+ 	* configure (sparc-*-solaris2*): Add gcrt1.o to extra_parts.
+ 	* sparc/sol2.h (STARTFILE_SPEC): Link with gcrt1.o with -pg.
+ 	* sparc/sol2-g1.asm: New file, startup code for profiled
+  	executables.
+ 	* sparc/t-sol2: Add make rule for gcrt1.o.
+ 	* sparc/gmon-sol2.c (_mcleanup): Add support for PROFDIR
+ 	environment variable.
+
+Wed Nov 29 21:41:13 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* mips/abi64.h (CPP_SPEC): If -msingle-float and not
+	-msoft-float, pass -D__mips_single_float.  Likewise for -m4650 and
+	not -msoft-float.
+	* mips/dec-bsd.h (CPP_SPEC): Likewise.
+	* mips/dec-osf1.h (CPP_SPEC): Likewise.
+	* mips/elf64.h (CPP_SPEC): Likewise.
+	* mips/iris3.h (CPP_SPEC): Likewise.
+	* mips/iris5.h (CPP_SPEC): Likewise.
+	* mips/mips.h (CPP_SPEC): Likewise.
+	* mips/netbsd.h (CPP_SPEC): Likewise.
+	* mips/osfrose.h (CPP_SPEC): Likewise.
+	* mips/t-ecoff (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
+	MULTILIB_MATCHES): Add -msingle-float support.
+
+Wed Nov 29 17:57:48 1995  Doug Evans  <dje@cygnus.com>
+
+	* toplev.c (main): Invoke OPTIMIZATION_OPTIONS after target_flags
+	has been initialized so sets of target_flags aren't clobbered.
+
+	* cccp.c (do_include): Recognize c:\foo as absolute path name in DOS.
+
+	* svr4.h (MD_EXEC_PREFIX): Don't use if cross compiling.
+	(MD_STARTFILE_PREFIX): Likewise.
+	(LINK_SPEC): Don't use absolute path names if cross compiling.
+	* svr3.h (LIB_SPEC): Likewise.
+
+	* gcc.c (do_spec_1): Fix typos in version calculation.
+
+Wed Nov 29 14:06:13 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* sh.md (ashrsi3_d): Use %0 not %1 in output pattern.
+
+	* svr4.h (MAX_OFILE_ALIGNMENT): Define.
+
+	* mips/iris5.h (WORD_SWITCH_TAKES_ARG): Define.
+	(LINK_SPEC): Add rpath.
+	* mips/iris6.h (LINK_SPEC): Likewise.
+
+	* stupid.c (stupid_mark_regs): For hard registers, use regno+j
+	instead of just regno in MARK_LIVE_AFTER and SET_HARD_REG_BIT calls.
+
+	* c-common.c (combine_strings): Add support for WCHAR_TYPE as short.
+
+Wed Nov 29 13:59:58 1995  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+	* c-decl.c (duplicate_decls): Add new paramter different_binding_level.
+	Lots of changes to use new new parameter.
+	(pushdecl): Delete variable declared_global.  New variable
+	different_binding_level and code to set it.  Move extern/static
+	warning before duplicate_decls call.  Don't let global typedefs
+	conflict with nested extern declarations.  Move oldglobal test
+	inside code for setting IDENTIFIER_LIMBO_VALUE.
+	(lookup_name_current_level_global): Delete.
+	* c-tree.h (merge_attributes): New declaration.
+	* c-typeck.c (merge_attributes): New function.  Move code from
+	common_type to here.
+	(common_type): Call merge_attributes instead of having inline code.
+	* integrate.c (integrate_decl_tree): Delete variable newd.
+	Always set DECL_ABSTRACT_ORIGIN before calling pushdecl.
+
+Tue Nov 28 21:57:04 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* mips.c (mips_function_value): Add check for i > 0 when deciding
+	if structure should be return in FP registers.
+
+Tue Nov 28 12:47:52 1995  Jeffrey A. Law  <law@cygnus.com>
+
+	* pa.md (define split for (plus (reg) (large_constant)): Try
+	another way to handle this with only 2 insns.  From Tege.
+
+Mon Nov 27 02:05:18 1995  Jeffrey A. Law  <law@cygnus.com>
+
+	* lib1funcs.asm, pa-pro.h, t-pro.h, xm-papro.h: New PA
+	target files.
+	* configure (hppa*-*-pro*): Use new target files.
+
+	* toplev.c (rest_of_compilation): Always call jump_optimize
+	at least once.
+
+	* pa.h (ASM_OUTPUT_EXTERNAL): Don't let assemble_name clobber
+	the value of TREE_SYMBOL_REFERENCED.
+
+	* pa-ghpux9.h (LINK_SPEC): Pass "-z" to the linker to enable
+	trap on null pointer dereference for programs built on hpux9.
+	* pa-hpux9.h, pa1-ghpux9.h, pa1-hpux9.h: Likewise.
+
+	* pa.c (output_function_prologue): No longer need to keep
+	track of the total number code bytes when TARGET_GAS &&
+	not TARGET_PORTABLE_RUNTIME.
+	* pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use .NSUBSPA when
+	not TARGET_PORTABLE_RUNTIME.
+	(ASM_OUTPUT_FUNCTION_PREFIX): Define.  Prefix functions with
+	.NSUBSPA when TARGET_GAS and not TARGET_PORTABLE_RUNTIME.
+
+	* pa.md (symbolic high patterns): Use 'H' to print the symbolic
+	address so that the constant part gets rounded.
+	* pa.c (print_operand): Handle 'H' operand for high part of a
+	symbolic address with a rounded constant.
+	(output_global_address): New argument "rounded_constant".  All
+	callers changed appropriately.
+
+	* x-pa-hpux (FIXPROTO_DEFINES): Add -D_HPUX_SOURCE.
+
+	* pa.h (CPP_SPEC): Only pass -D_HPUX_SOURCE and -D_HIUX_SOURCE if
+	-ansi is not present.
+	(CPP_PREDEFINES): Remove -D_HPUX_SOURCE and/or -D_HIUX_SOURCE.
+	* pa-ghiux.h (CPP_PREDEFINES): Likewise.
+	* pa-gux7.h (CPP_PREDEFINES): Likewise.
+	* pa-hiux.h (CPP_PREDEFINES): Likewise.
+	* pa-hpux.h (CPP_PREDEFINES): Likewise.
+	* pa-hpux7.h (CPP_PREDEFINES): Likewise.
+	* pa1-ghiux.h (CPP_PREDEFINES): Likewise.
+	* pa1-hiux.h (CPP_PREDEFINES): Likewise.
+
+	* pa-hpux.h (LINK_SPEC): If -mlinker-opt, then pass -O to the
+	linker.
+	* pa-ghpux.h, pa-hpux9.h, pa-ghpux9.h: Likewise.
+	* pa1-ghpux9.h, pa1-hpux9.h: Likewise.
+	* pa.h (LINK_SPEC): Likewise.
+	(TARGET_SWITCHES): Add -mlinker-opt.
+
+	* pa.md (all peepholes): Disable if TARGET_SOFT_FLOAT.
+
+	* pa.c (pa_reorg): If TARGET_GAS, then emit insns to mark
+	the beginning and end of the branch table.
+	* pa.md (begin_brtab): New insn.  Just a marker so GCC knows
+	where to put the .begin_brtab pseudo-op.
+	(end_brtab): Similarly.
+
+	* pa.h (EXTRA_SECTIONS): Add in_ctors and in_dtors if
+	CTORS_SECTION_FUNCTION is defined.  Else define dummy
+	versions of CTORS_SECTION_FUNCTION and DTORS_SECTION_FUNCTION.
+	(EXTRA_SECTION_FUNCTIONS): Add CTORS_SECTION_FUNCTION and
+	DTORS_SECTION_FUNCTION.
+
+	* pa.md: Add peepholes to improve spill code generated
+	by reload when we run out of FP registers.
+
+	* xm-pa.h: Remove spurious double-quote.
+
+	* pa.md (call expanders): For indirect calls, load %r22 with the
+	function's address.
+	(indirect call patterns): No need to copy the call address into
+	%r22 anymore.
+
+	* pa.c (output_cbranch): Fix buglet in length handling of
+	backwards branches with unfilled delay slots.
+	(output_bb, output_bvb, output_dbra, output_movb): Likewise.
+
+	* pa.md: Fix off-by-one error in length computations for all
+	conditional branch patterns.
+
+	* pa.h (output_bvb): Declare.
+	* pa.c (output_bvb): New function to output branch on variable
+	bit insns.
+	* pa.md (branch-on-variable-bit): New patterns.
+
+	* pa.h (TARGET_MILLICODE_LONG_CALLS): Delete swtich and all
+	references.
+	(output_millicode_call): Declare new function
+	* pa.md (millicode calls): Update length computation to handle
+	variable length millicode calls.
+	(call pattners): Likewise.
+	(indirect call patterns): Update length compuations and output
+	templates to handle variable length millicode calls.
+	(plabel_dereference): Likewise.
+	* pa.c (override_options): Give warnings when incompatable
+	options are used.
+	(output_mul_insn): Call output_millicode_call instead of
+	output_call, eliminate last argument to output_millicode_call.
+	(output_div_insn): Likewise.
+	(output_mod_insn): Likewise.
+	(output_call): Rewrite long call code to handle variable length
+	millicode calls.  Eliminate support for calling mul, div and mod
+	millicode routines.
+	(output_millicode_call): New function for calling mul, div and mod
+	millicode routines.
+
+	* pa.md (abssi2): New pattern.
+
+	* pa.c (secondary_reload_class): Loads from reg+d addresses into
+	FP registers don't need secondary reloads.
+	* pa.h: Delete soem #if 0 code.  Update some comments.
+	(EXTRA_CONSTRAINT, case 'Q'): Only accept valid memory addresses.
+
+	* pa.h (RTX_COSTS): Tege's rewrite.
+
+	* pa.c (hppa_legitimize_address): Generate unscaled indexed
+	addressing for (plus (symbol_ref) (reg)).
+	(emit_move_sequence): Set REGNO_POINTER_FLAG appropriately
+	to encourage unscaled indexing modes.
+	(basereg_operand): New function for unscaled index address support.
+	* pa.md (unscaled indexing patterns): New patterns for unscaled
+	index address support.
+
+	* pa.h (MOVE_RATIO): Define.
+	* pa.md (movstrsi expander): Refine tests for when to use the
+	library routine instead of an inlined loop copy.  Provide an
+	additional scratch register for use in the inlined loop copy.
+	(movstrsi_internal): Name the pattern for ease of use.  Add
+	additional scratch register.
+	* pa.c (output_block_move): Greatly simplify.  Use 2X unrolled
+	copy loops to improve performance.
+	(compute_movstrsi_length): Corresponding changes.
+
+	* pa.c (print_operand): Handle 'y' case for reversed FP
+	comparisons.  Delete some #if 0 code.  Fix various comment typos.
+	* pa.md (fcmp patterns): Try and reverse the comparison to avoid
+	useless add,tr insns.
+
+Sun Nov 26 14:47:42 1995  Richard Kenner  <kenner@mole.gnu.ai.mit.edu>
+
+	* Version 2.7.2 released.
+
+	* function.c (fixup_var_refs_1): Make pseudo for DEST
+	in PROMOTED_MODE unless in a SUBREG.
+
+	* cse.c (insert): Don't put a REG into qty_const.
+
+	* msdos/top.sed: Change version to 2.7.2.
+	* winnt/config-nt.sed: Likewise.
+
+Sun Nov 26 14:41:49 1995  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* Makefile.in (stamp-objlist): Change .o to $objext.
+
+	* alpha/win-nt.h (CPP_PREDEFINES): Set __unaligned and __stdcall
+	to null.
+	(ASM_SPEC): Add a translation for -g to -Zi.
+	* winnt/ld.c (main): Don't pass -g to link.
+	* winnt/oldnames.c: Reformat and add some new functions for gnat1.
+	* winnt/win-nt.h (LINK_SPEC): Pass -g to ld.exe.
+	Increase default stack size.
+	* configure ({alpha-dec,i386-ibm}-winnt3.5): Add oldnames.o
+	to extra_objs.
+	* libgcc2.c (trampoline): Add getpagesize and mprotect for WINNT.
+
+Sun Nov 26 14:25:26 1995  Uwe Seimet  (seimet@chemie.uni-kl.de)
+
+	* atari.h (FUNCTION_VALUE): Deleted; incorrect.
+
+Sun Nov 26 14:23:03 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* fixincludes (curses.h): Allow space or tab after bool keyword,
+	instead of tab or tab.
+
+Sun Nov 26 14:14:11 1995  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
+
+	* 1750a.md (pattern for HImode PSHM): Corrected.
+	(trunchiqi2, zero_extendqihi2, extendhftqf2): Corrected.
+	(pattern for movhi of CONST_INT to REG): Corrected.
+	(divmodqi pattern for DISN): Corrected.
+	(all shift patterns): Corrected.
+
+	* 1750a.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Corrected.
+ 	(ASM_OUTPUT_[datatype]): Corrected datalbl[].size computation
+	for output of arrays.
+
+Sun Nov 26 14:08:57 1995  Dave Love  <d.love@dl.ac.uk>
+
+	* mips/iris5.h (NO_IMPLICIT_EXTERN_C): Define this again so
+	that unistd.h doesn't get badly `fixed' for C++.  libg++ will now
+	build with this definition.
+
+Sun Nov 26 14:02:43 1995  Robert E. Brown  (brown@grettir.bibliotech.com)
+
+	* configure: Better workaround for Nextstep bug.
+
+Sun Nov 26 13:55:07 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
+
+	* rs6000.md (load_multiple matcher): Fix typo in opcode.
+
+Sun Nov 26 13:51:08 1995  Lee Iverson  <leei@Canada.AI.SRI.COM>
+
+	* final.c (final_start_function): Move call to sdbout_begin_function
+	back to final_scan_insn on MIPS systems so parameter descriptions are
+	recognized.
+
+Sun Nov 26 13:43:06 1995  DJ Delorie  (dj@delorie.com)
+
+	* msdos/top.sed: Don't insert "go32".
+
+Sun Nov 26 12:08:23 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* combine.c (nonzero_bits, case REG):  Put POINTERS_EXTEND_UNSIGNED
+	code before stack pointer code.  Return nonzero at end of stack
+	pointer code.
+
+	* sparc.h (PRINT_OPERAND_ADDRESS): Handle CONST inside PLUS.
+
+	* Makefile.in (cppalloc.o): Add a rule to build it.
+
+	* alpha.c (alpha_emit_set_const): Don't output SImode sequences
+	that rely on invisible overflow.  Sign extend new when SImode.
+	Don't recur if new == c.  Don't allow shift outside mode.  Make
+	logical right shift be unsigned.
+
+Sun Nov 26 11:37:50 1995  Arne H. Juul  (arnej@idt.unit.no)
+
+	* Makefile.in (compare*): Add "|| true" to avoid spurious
+	failure messages from some versions of make.
+
+Sun Nov 26 11:20:09 1995  Dmitry K. Butskoy  (buc@stu.spb.su)
+
+	* expr.c (truthvalue_conversion): Add declaration.
+
+Sun Nov 12 18:09:35 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Version 2.7.1 released.
+
+	* function.c (put_reg_into_stack): New arg volatile_p.
+	(put_var_into_stack): Call with new arg.
+
+Sat Nov 11 08:25:34 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* reload.c (output.h): Include it.
+	* Makefile.in (reload.o): Add dependence on output.h.
+
+Thu Nov  9 11:24:20 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* mips.h (HARD_REGNO_NREGS): If FP_REG_P, always use UNITS_PER_FPREG
+	to calculate number of words needed.
+
+Thu Nov  9 11:04:50 1995  Oliver Kellogg  (Oliver.Kellogg@space.otn.dasa.de)
+
+	* 1750a.md (cmphf): Addd Base Reg with Offset address mode (LB,STB,..)
+	(movqi,movhi,movhf,addqi3,addhf3,subqi3,subhf3,mulqihi3): Likewise.
+	(mulhf3,divhf3,andqi3,iorqi3): Likewise.
+	(define_peephole): Remove the Base mode peepholes. Replace the
+	special addqi define_insn for "LIM Ra,sym,Rb" by a define_peephole.
+	(ashlqi3): Took out futile 0th alternative.
+	(lshrqi3, lshrhi3, ashrqi3, ahsrhi3): Correct case of non-constant
+	shift count.
+
+	* 1750a.h (REG_ALLOC_ORDER): Define.
+	(REGNO_OK_FOR_BASE_P): Include stack pointer in test against
+	reg_renumber[REGNO].
+	(ASM_OUTPUT_DESTRUCTOR): Remove bogus assembler comment.
+
+Thu Nov  9 11:01:33 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case ARRAY_REF): Properly convert types
+	of index, size, and multiplication.
+
+Wed Nov  8 09:00:22 1995  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* arm.md (mov*cc_{,soft_}insn): Use match_operator to test the
+	comparison and check that the condition code register is used.
+
+Wed Nov  8 08:49:35 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/sysv4.h (ASM_OUTPUT_{CONSTRUCTOR,DESTRUCTOR}): Undef before
+	including svr4.h.
+
+Tue Nov  7 10:58:12 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
+
+	* m68k.md (subxf3): Properly name pattern.
+
+Tue Nov  7 10:53:09 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* libgcc2.c (__{C,D}TOR_LIST): For AIX, initialize these arrays to
+	0,0, just like NeXT to avoid a warning message from the AIX 4.1
+	linker.
+
+Tue Nov  7 09:58:34 1995  John F. Carr <jfc@mit.edu>
+
+	* cppexp.c (cpp_lex): Correctly parse character constants.
+
+Tue Nov  7 09:52:15 1995  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* rs6000.h (ASM_OUTPUT_{DES,CONS}TRUCTOR): Define.
+
+Mon Nov  6 10:27:15 1995  Doug Evans  <dje@cygnus.com>
+
+	* combine.c (force_to_mode): Fix typo.
+
+Sun Nov  5 18:37:02 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
+
+	* m68k.md (cmpxf): Don't call force_const_mem, it looses for PIC;
+	get predicates right instead.  Get rid of separate DEFINE_EXPAND.
+	(addxf3, subxf3, mulxf3, divxf3): Likewise.
+	(All XFmode patterns): Delete `F' and `G' constraints.
+	(absxf2, negxf2): Delete spurious condition on TARGET_FPA.
+
+Sun Nov  5 11:05:44 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* fixincludes (malloc.h):  Fix return type of {m,re}alloc.
+
+Sun Nov  5 11:02:26 1995  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+        * cse.c (invalidate): For a pseudo register, do a loop to
+	invalidate all table entries, irrespective of mode.
+
+Sun Nov  5 10:57:43 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* combine.c (force_to_mode): Put in last change properly.
+
+Sun Nov  5 10:53:49 1995  Jeffrey A Law  (law@cygnus.com)
+
+	* pa.h (CONDITIONAL_REGISTER_USAGE): Make sure FP regs
+	get disabled regardless of PA1.0 vs PA1.1 code generation
+	when TARGET_SOFT_FLOAT or TARGET_DISABLE_FPREGS is on.
+
+Sun Nov  5 10:49:43 1995  Doug Evans  <dje@lisa.cygnus.com>
+
+	* i960.c (emit_move_sequence): Add a scratch register to
+	multi-reg stores.
+	(i960_output_move_{double,quad}): New functions.
+	(i960_print_operand): Handle new operand types E, F.
+	* i960.md (movdi matchers): Rewrite.
+	(store_unaligned_di_reg): New pattern.
+	(movti matchers): Rewrite.
+	(store_unaligned_ti_reg): New pattern.
+
+Sun Nov  5 10:45:24 1995  Ian Lance Taylor  (ian@cygnus.com)
+
+	* mips.h (MULTILIB_DEFAULTS): Define.
+	* mips/elf64.h, mips/iris6.h (MULTILIB_DEFAULTS): Define.
+
+Sun Nov  5 10:41:48 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* reload.c (push_reload): Delete abort for RELOAD_OTHER case added
+	in last change.
+	* reload1.c (emit_reload_insns): For RELOAD_OTHER output reloads,
+	output the reload insns in descending order of reloads.
+
+	* sh.md (mulsidi3-1, mulsidi3, umulsidi3-1, umulsidi3): Enable.
+	(smulsi3_highpart-1, smulsi3_highpart): New patterns.
+	(umulsi3_highpart-1, umulsi3_highpart): Likewise.
+	(movdi-1): Add r/x constraint.
+	* t-sh (MULTILIB_OPTIONS): Add m2.
+	(MULTILIB_DIRNAMES): Add m2.
+	(MULTILIB_MATCHES): Define.
+
+	* sparc.h (RTX_COSTS, case MULT): Check for TARGET_SPARCLITE.
+
+	* abi64.h, elf64.h (CPP_SPEC): Add -EB and -EL support.
+
+Sat Nov  4 10:36:26 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* sh.md (casesi_worker): Change constraint from = to +.
+
+	* svr4.h (ASM_IDENTIFY_GCC_AFTER_SOURCE): Delete.
+	(ASM_IDENTIFY_GCC): Output stab here.
+
+Sat Nov  4 10:32:37 1995  John Carr  <jfc@mit.edu>
+
+	* cpplib.c (finclude): Set current input pointer when input
+	is not a regular file.
+
+	* cppmain.c: Define progname, required by cpplib.
+
+Sun Oct 29 07:48:36 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* xcoffout.h (DBX_FINISH_SYMBOL): Deal with names created via
+	the __asm__ construct that start with a leading '*'.
+	* xcoffout.c (xcoff_declare_function): Likewise.
+
+Sun Oct 29 07:45:41 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* stupid.c (stupid_mark_refs): Handle SUBREG of pseudo-reg in a
+	SET_DEST same as we handle a pseudo-reg in a SET_DEST.
+
+Sun Oct 29 07:43:15 1995  Pat Rankin  <rankin@eql.caltech.edu>
+
+	* libgcc2.c (L_eh: __unwind_function): Implement for VAX.
+	* vax.h (RETURN_ADDRESS_OFFSET, RETURN_ADDR_RTX): Define.
+
+Sun Oct 29 12:39:08 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>a
+
+	* i386/sol2.h (CPP_PREDEFINES): Add -D__SVR4.
+
+Sun Oct 29 07:14:36 1995  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+	* reload.c (find_equiv_reg): Check for nonsaving setjmp.
+
+Fri Oct 27 15:15:56 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* Makefile.in (out_object_file): Depend on TREE_H.
+
+Fri Oct 27 06:42:36 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (call_operand): Only allow reg 27 on NT too.
+	* alpha.md (call_value_nt, call_nt): Force non-SYMBOL_REF
+	into reg 27, just like for OSF.
+
+	* rs6000.c (struct asm_option): Changed from struct option.
+	(expand_block_move_mem): Remove erroneously-added line.
+
+	* expr.c (clear_storage): SIZE is now rtx, not int.
+	(store_constructor): Call clear_storage with rtx.
+	(get_inner_reference): Convert index to precision of
+	sizetype, not POINTER_SIZE.
+	(expand_expr, case ARRAY_REF): Likewise.
+	* expr.h (clear_storage): Second arg is rtx, not int.
+
+Fri Oct 27 05:45:58 1995  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+	* combine.c (force_to_mode, case ASHIFTRT): Properly handle
+	mask wider than HOST_WIDE_INT.
+
+        * c-decl.c (pushdecl): Don't test TREE_PUBLIC when deciding whether
+	to register a duplicate decl in the current block.
+
+Thu Oct 26 21:55:39 1995  Jason Merrill  <jason@sethra.cygnus.com>
+
+	* calls.c (expand_call): Don't trust the callee to copy a
+ 	TREE_ADDRESSABLE type.
+	* function.c (assign_parms): Likewise.
+
+Thu Oct 26 19:25:05 1995  Mike Stump  <mrs@cygnus.com>
+
+	* libgcc2.c (__unwind_function): Provide a default definition for
+	implementations that don't yet have a function unwinder.
+
+Thu Oct 26 18:08:19 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (handle_directive): Don't treat newline as white
+	space when coalescing white space around a backslash-newline.
+
+Thu Oct 26 17:57:34 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* mips-tdump.c (enum st): Define st_Struct, st_Union, and st_Enum.
+	(st_to_string): Handle them.
+	(type_to_string): Add fdp argument; pass it to emit_aggregate.
+	(print_symbol): Add fdp argument; pass it to type_to_string.
+	Handle st_Struct, st_Union, and st_Enum.
+	(emit_aggregate): Add fdp argument.  Handle opaque types.  Map
+	through RFD entries.
+	(print_file_desc): Pass FDR to print_symbol.
+	(main): Pass null FDR to type_to_string.
+
+Thu Oct 26 08:07:10 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* configure (powerpc-ibm-aix[456789]*): Use rs6000/t-newas,
+	not rs6000/t-rs6000.
+	(rs6000-ibm-aix3.2.[456789]*): Likewise.
+	(rs6000-ibm-aix[456789]*): Likewise.
+
+	* rs6000/t-newas: Copy from t-rs6000.
+	* t-rs6000: Don't build -mcpu=common multilib variants of libgcc.a.
+
+	* rs6000.md (load_multiple insn): If address register is among regs,
+	don't load it with a lwsi instruction, which is undefined on PowerPC.
+
+Thu Oct 26 08:01:32 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* dwarfout.c (output_compile_unit_die): Handle language_string
+	of "GNU F77".
+
+	* reload.c (find_reloads_address): When check for out of range constant
+	plus register, accept any hard register instead of just fp, ap, sp.
+
+	* combine.c (distribute_notes): For Oct 19 change, add additional
+	check to verify that place has a valid INSN_CUID.
+
+	* sparc/t-vxsparc (LIBGCC1_TEST): Define.
+
+	* sh.md (negdi2): Use TARGET_LITTLE_ENDIAN.
+
+	* combine.c (force_to_mode, case ASHIFTRT): Verify mode bitsize is
+	within HOST_BITS_PER_WIDE_INT before shifting by it.
+
+	* final.c (final_scan_insn): When recur for instruction in delay slot,
+	add loop around recursive call in case the instruction gets split.
+
+Thu Oct 26 07:28:45 1995  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+	* genrecog.c (write_tree_1): Avoid emitting '-2147483648'.
+
+	* jump.c (duplicate_loop_exit_test): Return 0 if found
+	a NOTE_INSN_LOOP_CONT.
+
+Tue Oct 24 15:30:14 1995  Jeffrey A Law  <law@cygnus.com>
+
+	* calls.c (expand_call): Make sure valreg is at least
+	a full word.
+
+Sun Oct 22 19:35:41 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* sh.h (INIT_SECTION_ASM_OP): Delete.
+	(HAVE_ATEXIT): Define.
+
+Sun Oct 22 07:46:04 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* libgcc2.c (__fixuns[xds]fsi): #undef MIN and MAX before #include
+	of limits.h.
+
+	* pa.c (pa_adjust_cost): Use pa_cpu, not pa_cpu_attr.
+
+Sun Oct 22 07:38:58 1995  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+        * alpha.h (CONST_OK_FOR_LETTER_P): Use 'U' for unsigned constants.
+        * alpha.c (alpha_emit_set_const): Likewise.
+        * mips.c (gen_int_relational): Likewise.
+
+Sun Oct 22 07:14:35 1995  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* i386.c (i386_return_pops_args): Don't need a FUNDECL to
+	check for type attributes in FUNTYPE.
+
+Sat Oct 21 18:17:42 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* sh.md (define_delay): Don't accept any instruction for an annulled
+	slot, only accept those for which in_delay_slot is yes.
+	* sh.c (find_barrier): When hi_const returns true, increment count_si
+	by two if found_si is true.
+	Always use get_attr_length to compute length of instructions.
+	If count_hi or count_si out of range at end, need two PREV_INSN calls
+	not one.
+	When create new label, set LABEL_NUSES to 1.
+	(reg_unused_after): Ifdef out code for handling labels.
+	(prepare_scc_operands): New local variable mode.  Set it from
+	sh_compare_op0 or sh_compare_op1.  Use it instead of SImode in
+	force_reg calls.
+
+	* optabs.c (expand_float): Emit missing barrier after unconditional
+	jump.
+
+Sat Oct 21 14:16:46 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
+
+	* alpha.md (cmpdf): Make conditional on TARGET_FP.
+
+Fri Oct 20 19:11:12 1995  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+	* combine.c (distribute_notes): Delete instructions without
+	side effect that set a subreg of an unused register.
+
+	* m68k.h (PREFERRED_RELOAD_CLASS): Check for !G constants
+	for DATA_OR_FP_REGS also.
+
+Fri Oct 20 18:57:10 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* genmultilib: Output negations of unused alternatives, even if
+	one of the alternatives is selected.
+
+Fri Oct 20 18:48:50 1995  Jeff Law  (law@hurl.cygnus.com)
+
+	* integrate.c (output_inline_function): Turn on flag_no_inline
+	to avoid function integration once we begin writing deferred
+	output functions.
+
+Fri Oct 20 18:46:33 1995  Michael Meissner  <meissner@wogglebug.tiac.net>
+
+	* rs6000.c (float_conv_temp): Delete global variable.
+	(stack_temps): New static array to hold stack temps.
+	(offsettable_mem_operand): Delete function.
+	(offsettable_addr_operand, rs6000_stack_temp): New functions.
+	(output_epilog): Zero stack_temps.
+
+	* rs6000.h (offsettable_addr_operand): Declare instead of
+	offsettable_mem_operand.
+	(PREDICATE_CODES): Use offsettable_addr_operand.
+	(float_conv_temp): Delete variable.
+
+	* rs6000.md (move_to_float insns): Change move_to_float so
+	that it doesn't have a clobber of the memory address, and instead
+	passes the stack temp's memory address as one of the unspec args.
+	(fix_truncdfsi2): Use rs6000_stack_temp to allocate the temp.
+	(multiply, shift insns): Fix all cases of multiply and shift insns so
+	that the right mnemonics are used for -mcpu=common with both
+	-m{old,new}-mnemonics.
+
+Fri Oct 20 17:58:19 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* expr.c (safe_from_p, case RTL_EXPR): Return 0 if RTL_EXPR_SEQUENCE
+	exists.  Delete code to return 0 if exp_rtl is zero.
+
+	* function.c (init_function_start): Don't call init_insn_lengths here.
+	* toplev.c (rest_of_compilation): Call it here.
+
+Thu Oct 19 19:19:06 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-common.c (check_format_info): Make test for null pointer
+	more general.
+
+Thu Oct 19 18:56:16 1995  Satoshi Adachi  (adachi@wisdom.aa.ap.titech.ac.jp)
+
+	* fixincludes (stdlib.h): Be more general in edit to change
+	declaration of {c,m,re}alloc.
+
+Thu Oct 19 18:48:53 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
+
+	* libgcc2.c (__udiv_w_sdiv): If we don't have sdiv_qrnnd, define
+	dummy variant of __udiv_w_sdiv.
+
+Thu Oct 19 18:45:21 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* alpha.h (ASM_SPEC): If GNU as is the default, then pass -g to
+	the assembler if -malpha-as.  If GNU as is not the default, then pass
+	-g to the assembler is not -mgas.
+
+	* combine.c (distribute_notes): When search for new place to put
+	REG_DEAD note, call distribute_links if this new place is between
+	i2 and i3, and i2 uses the register.
+
+Thu Oct 19 18:41:36 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.md (float{,uns}sidf2): Rewrite to break the conversion
+	process into several general insns.
+	(move_to_float): New insns to move 2 integer regs into a float register
+	through memory, taking endianess into account.  Make sure that the
+	floating temporary is a valid address.  Use one temporary for all
+	floats converted.
+	(fix_truncdfsi2): Take endianess into account.
+
+	* rs6000.c ({low_32_bit,offsettable_mem}_operand): The function
+	low_32_bit_operand is now unused, delete it.  New function
+	offsettable_mem_operand to determine if a memory address is
+	offsettable.
+	* rs6000.h ({low_32_bit,offsettable_mem}_operand): Ditto.
+	(PREDICATE_CODES): Ditto.
+
+	* rs6000.{c,h} (float_conv_temp): New global.
+	* rs6000.c (output_epilog): Zero out float_conv_temp.
+
+	* Makefile.in (libgcc{1,2}.a): Allow LIB{1,2}FUNCS_EXTRA files to
+	end in .S as well as .c and .asm.
+
+Wed Oct 18 17:56:45 1995  Jose Alonso  (sidinf@fpsp.fapesp.br)
+
+	* c-typeck.c (parser_build_binary_op): Warn about x^y==z, etc.
+
+Mon Oct  9 12:38:06 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* protoize.c (reverse_def_dec_list): Silence compiler warnings.
+
+Mon Oct  9 12:35:54 1995  Andrew Cagney  <cagney@highland.com.au>
+
+	* ginclude/va-ppc.h (va_arg): Deal with long longs that would be
+	passed in the 7th register, and are passed in the stack instead.
+
+Fri Oct  6 13:47:10 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* alpha.h (ASM_SPEC): Add -g.
+
+Fri Oct  6 13:42:50 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* alpha.h (alpha_{arg,auto}_offset): Make extern.
+
+Fri Oct  6 13:24:43 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.h (RETURN_ADDRESS_OFFSET): Correct previous change.
+
+Fri Oct  6 13:14:43 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* rtlanal.c (reg_set_last): Fix call to reg_set_between_p.
+
+Tue Oct  3 12:31:38 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stor-layout.c (layout_type, case ARRAY_TYPE): Strip MAX_EXPR
+	from upper bound when computing length if it just protects against
+	negative length.
+
+	* expr.c (emit_move_insn_1): When doing multi-word move, show
+	output is clobbered.
+
+Tue Oct  3 12:26:07 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* cse.c (set_nonvarying_address_components, case AND): Add *pend to
+	end.  Add constant to start instead of subtracting it.
+
+Tue Oct  3 12:23:28 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
+
+	* combine.c (simplify_rtx): In code that attempts to simplify
+ 	conditional expressions, if the result is an NE around another
+	comparison, return the original expression.
+
+	* longlong.h (mips umul_ppmm): Use `l' and `h' constraints;
+	remove mflo and mfhi instructions.
+
+Tue Oct  3 12:21:29 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* ginclude/va-ppc.h (va_start, stdarg case): Call
+	__builtin_next_arg, and ignore the result, so that the compiler
+	can report the proper error, if the second argument is not the
+	last argument.
+
+Tue Oct  3 12:02:51 1995  Kohtala Marko  <Marko.Kohtala@ntc.nokia.com>
+
+	* function.c (assign_stack_temp): Adjust full_size field of
+	temp_slot when splitting an unused slot.
+
+Tue Oct  3 11:51:59 1995  Mike Stump  <mrs@cygnus.com>
+
+	* expr.c (expand_builtin_return_addr): Break out functionality
+	from expand_builtin.
+	(expand_builtin): Call expand_builtin_return_addr.
+	* rs6000.h (RETURN_ADDR_RTX): Remove call to copy_to_reg.
+	Offset to return address is 4 when !TARGET_64BIT and v4_call_p,
+	8 otherwise.
+	* sparc.h (RETURN_ADDR_RTX): Remove call to copy_to_reg.
+	* alpha.h (RETURN_ADDR_RTX): New definition.
+
+Sun Oct  1 21:23:30 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.c (staticp, case INDIRECT_EXPR): Disable case.
+
+	* expr.c (expand_expr, case COMPONENT_REF): If getting component
+	of union of variable size, propagate TARGET.
+
+Fri Sep 29 07:48:09 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (store_expr): When storing promoted value, don't return
+	MEM if address contains target.
+
+Thu Sep 28 14:30:03 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (rescan): Expand `#if foo && #bar' without a bogus
+	complaint about preprocessor directives within macro args.
+	Expand `foo' in `foo#bar' without requiring a space before `#'.
+
+Thu Sep 28 14:24:26 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k.md (anonymous DImode shift patterns setting cc0): Turned
+	off due to reload problems.
+
+Thu Sep 28 14:05:22 1995  Niklas Hallqvist  (niklas@appli.se)
+
+	* Makefile.in (USER_H): Move up so can override.
+	(INSTALL_ASSERT_H): New definition.
+	(install-headers): Use it.
+	(stmp-int-hdrs): Handle USER_H being empty.
+	* config/x-netbsd (INSTALL_ASSERT_H): Define as empty.
+
+	* i386/netbsd.h (WCHAR_{TYPE,UNSIGNED,TYPE_SIZE}): Now int.
+	* m68k/netbsd.h, ns32k/netbsd.h, sparc/netbsd.h: Likewise.
+	* vax/netbsd.h: Likewise.
+	(SIZE_TYPE): Use unsigned int.
+
+	* m68k.c (output_scc_di): Swap operands when needed.
+	* m68k.h (LEGITIMATE_PIC_OPERAND): Allow SYMBOL_REF_FLAG symref.
+	* m68k.md: Make both assembler syntaxes do the same for PIC calls.
+
+Tue Sep 26 16:51:44 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* mips.c (override_options): Don't allow anything but integers to
+	go in the HI/LO registers.
+
+Tue Sep 26 16:36:18 1995  John F. Carr  <jfc@mit.edu>
+
+	* c-common.c (check_format_info): Don't warn about format type
+	mismatch if the argument is an ERROR_MARK.
+
+Mon Sep 25 17:50:50 1995  Craig Burley  (burley@gnu.ai.mit.edu)
+
+	* stor-layout.c (put_pending_sizes): New function.
+	* tree.h (put_pending_sizes): Add declaration.
+	* tree.c (save_expr): Return original for ERROR_MARK.
+
+Fri Sep 22 19:20:01 1995  Jeff Law  (law@hurl.cygnus.com)
+
+	* expr.c (expand_builtin, case BUILT_IN_MEMCPY): Strip off
+	all NOP exprs from the source and destination nodes, then
+	set MEM_IN_STRUCT_P.
+
+Fri Sep 22 18:50:31 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000/eabi.h (ASM_OUTPUT_INT): Test for whether the integer
+	being output is also a constant so &sym - &sym2 is not fixed up.
+
+Fri Sep 22 18:49:07 1995  Peter Flass  (FLASS@LBDRSCS.BITNET)
+
+	* i370.md (cmpsi): Add missing constraints to operand 1.
+
+Fri Sep 22 18:27:33 1995  Torbjorn Granlund  <tege@matematik.su.se>
+
+	* i386.h (CONST_OK_FOR_LETTER_P): Make `N' match range 0..255
+	for `outb' instruction.
+
+	* pyr.h (PRINT_OPERAND): Handle code `R' for REG.
+        * longlong.h (pyr umul_ppmm): Use it.
+
+Fri Sep 22 18:24:38 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-parse.in (enumlist): Propagate error_mark_node.
+
+	* c-aux-info.c (gen_type): Handle ERROR_MARK.
+
+	* alpha.md (movdi): Avoid memory sharing problem when in reload.
+
+Wed Sep 20 14:27:09 1995  Peter Flass <flass@lbdrscs.bitnet>
+
+        * mvs.h (FUNCTION_PROLOGUE): Maintain savearea forward chain
+	per MVS standards.
+
+Wed Sep 20 14:20:52 1995  Torbjorn Granlund  <tege@matematik.su.se>
+
+        * pyr.md (cmphi recognizer): Make condition match constraints.
+	(cmpqi recognizer): Likewise.
+
+Wed Sep 20 12:42:59 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* integrate.c (expand_inline_function): Do copy something setting
+	the result register if it is setting it to itself and has a REG_NOTE.
+
+	* integrate.c (set_decl_{origin_self,abstract_flags}): Treat
+	a DECL_INITIAL of error_mark_node the same as one of NULL_TREE.
+
+Tue Sep 19 19:30:18 1995  Dave Pitts  (dpitts@nyx.cs.du.edu)
+
+	* i370.md (cmphi, movhi, movstricthi, extendhisi2): Correct generation
+	of short integer (Halfword)
+	({add,sub,mul,and,ior,xor}hi3): Likewise.
+	* i370/mvs.h (MACROPROLOGUE): New macro.
+	(FUNCTION_{PRO,EPI}LOGUE): Added ability to use IBM supplied function
+	prologue macros.
+	(FUNCTION_PROLOGUE): Corrected function "in-line" prologue alignment
+	problems.
+	(ASM_DECLARE_FUNCTION_NAME): Changed alignment to FullWord.
+	(ASM_OUTPUT_{SHORT,ASCII}): Reworked.
+
+Tue Sep 19 19:22:15 1995  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* winnt/win-nt.h: Renamed from winnt/win-nt.h.
+	(LINK_SPEC): Add -noinhibit-exec.
+	* {alpha,i386}/win-nt.h: Renamed from {alpha,i386}/winnt.h.
+	Include winnt/win-nt.h, not winnt/winnt.h.
+	* winnt/oldnames.c: New file.
+	* winnt/headers.mak (fixinc-nt.obj): Fix typo.
+	* winnt/config-nt.bat: Change winnt.h to win-nt.h.
+	* i386/config-nt.sed: Likewise.
+	* configure ({alpha,i386}-*-winnt3*): Likewise.
+
+Mon Sep 18 14:00:45 1995  Oliver Kellogg  (Oliver.Kellogg@space.otn.dasa.de)
+
+	* 1750a.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
+	Added R2 and R0_1.
+	(REG_CLASS_FROM_LETTER): New letters 't' and 'z'.
+	(EXTRA_CONSTRAINT): New letter 'Q'.
+
+Sun Sep 17 12:39:22 1995  Jeff Law  (law@snake.cs.utah.edu)
+
+	* pa.h (ASM_DECLARE_FUNCTION_NAME): If a parameter's type
+	has TYPE_NEEDS_CONSTRUCTING on, then it's passed by invisible
+	reference.
+
+Sat Sep 16 17:42:33 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* loop.c (find_and_verify_loops): Fix error in last change.
+
+Sat Sep 16 08:38:22 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.h (GO_IF_LEGITIMATE_ADDRESS): Disallow SYMBOL_REF for
+	current function.
+
+	* cse.c (recorded_label_ref): New variable.
+	(insert): Set instead of cse_jumps_altered.
+	(cse_main): Initialize it and return 1 if nonzero at end.
+
+Fri Sep 15 18:26:49 1995  Torbjorn Granlund  (tege@matematik.su.se)
+
+	* fold-const (div_and_round_double): Change `carry', `quo_est',
+	and `scale' from plain int to `unsigned HOST_WIDE_INT'.
+
+Fri Sep 15 18:24:24 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (insert): Set cse_jumps_altered when inserting a LABEL_REF.
+
+Fri Sep 15 17:29:41 1995  Oliver Kellogg  (Oliver.Kellogg@space.otn.dasa.de)
+
+	* 1750a.c (b_mode_operand): New function.
+	(print_operand): Added code 'Q'.
+
+Fri Sep 15 17:27:23 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* loop.c (find_and_verify_loops): When moving exit blocks out of
+	the loop, verify that the target of P is within the current loop.
+
+	* reorg.c (fill_slots_from_thread): Update thread if it is split.
+
+Fri Sep 15 17:06:51 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.md (decrement_and_branchsi and related insns): Don't use
+	a "2" to select a register preference for operand 1 if operand 2
+	hasn't been seen yet.
+	Add appropriate clobbers in decrement_and_branchsi.
+	Add patterns where the pc/label_ref are interchanged.
+
+	* Makefile.in (gnucompare, stmp-multilib-sub): Remove extra . in
+	front of $(objext).
+
+	* rs6000.c (output_toc): Align DF constants if STRICT_ALIGNMENT.
+
+	* config/fp-bit.c (FLO_union_type): Add words field if double
+	precision to get at the separate words.
+  	(FLO_union_type, pack_d, unpack_d): Use FLOAT_BIT_ORDER_MISMATCH
+	to determine when the bitfields need to be reversed, and
+	FLOAT_WORD_ORDER_MISMATCH when the words need to be reversed.
+
+Fri Sep 15 16:41:43 1995  Jeff Law  (law@snake.cs.utah.edu)
+
+	* reorg.c (fill_simple_delay_slots): When filling insn's delay slot
+	with JUMP_INSN, don't assume it immediately follows insn on
+	unfilled slots obstack.
+
+	* Makefile.in (caller-save.o): Depend on insn-codes.h.
+
+Thu Sep 14 17:41:49 1995  Jim Meyering  (meyering@comco.com)
+
+	* protoize.c (do_cleaning): Don't blank out backslash-escaped
+	newlines in double quoted strings.
+
+Thu Sep 14 16:20:35 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (gen_lowpart): If gen_lowpart_common fails
+	for a REG, load it into a pseudo and try again.
+
+Thu Sep 14 14:15:16 1995  Stan Cox  (coxs@dg-rtp.dg.com)
+
+	* m88k.h (VERSION_INFO1): Removed BCS reference.
+	* m88k/dgux.h (ASM_SPEC, *_LEGEND):
+	Added -mno-legend option. -mstandard no longer implies that legend
+	legend information not be produced.
+	(LINK_SPEC): Removed -z text
+
+Tue Sep 12 19:05:39 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* cccp.c (is_system_include): Call skip_redundant_dir_prefix.
+
+Tue Sep 12 18:58:21 1995  John Carr  <jfc@mit.edu>
+
+	* sparc.md: Change `*return "string"' to "string" in patterns.
+
+Tue Sep 12 18:48:47 1995  Craig Burley  (burley@gnu.ai.mit.edu)
+
+	* function.c (put_var_into_stack): For CONCAT case, order of
+	placement depends on FRAME_GROWS_DOWNWARD, not STACK_GROWS_DOWNWARD.
+
+Tue Sep 12 18:34:10 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* va-sparc.h (v9 varargs va_start): Handle __builtin_va_alist
+	being stack argument.
+
+	* sparc.h (STATIC_CHAIN_REGNUM): Use %g5 for sparc64.
+	(TRAMPOLINE_TEMPLATE): Rewrite for sparc64.
+	(TRAMPOLINE_SIZE): Is 40 for sparc64.
+	* sparc.c (sparc64_initialize_trampoline): Rewrite.
+
+Tue Sep 12 18:30:22 1995  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* cp/Make-lang.in (cc1plus) : Removed unnecessary $(exeext).
+
+	* configure: Added code to handle gcc_extra_objs.
+	(alpha-winnt): Changed xmake_file to winnt/x-winnt.
+	Added extra_gcc_objs=spawnv.o; changed extra_programs to ld.exe.
+	(i386-winnt): Changed xmake_file to winnt/x-winnt.
+	Added extra_gcc_objs=spawnv.o; changed extra_programs to ld.exe.
+	* configure.bat: Changed to used common winnt/config-nt.bat.
+	* Makefile.in: Changed various .o's to .$(objext)'s
+	(specs): Removed unnecessary $(exeext).
+	(EXTRA_GCC_OBJS): New variable.
+	(clean): Removed $(LIB2FUNCS_EXTRA)
+	* objc/Makefile: Changed archive command for libobjc.a to use $?
+	for objects.
+
+	* alpha/x-winnt, i386/x-winnt: Deleted.
+	* alpha/config-nt.bat, i386/config-nt.bat: Deleted.
+	* alpha/config-nt.sed, i386/config-nt.sed: Moved architecture
+	independent commands to config/winnt/config-nt.sed.
+	* alpha/winnt.h: Added -D_M_ALPHA to CPP_PREDEFINES.
+	Changed LIB_SPEC to be compatible with Gnu ld for NT.
+	* i386/winnt.h: Added -D_cdecl=__attribute__((__cdecl__)).
+	Change LIB_SPEC to be compatible with Gnu ld for NT.
+	* winnt/config-nt.bat, winnt/config-nt.sed: New files.
+	* winnt/dirent.{c,h}, winnt/fixinc-nt.c, winnt/headers.mak: New files.
+	* winnt/ld.c: Changed precedence of libraries to look for
+	libfoo.lib before libfoo.a
+	Changed to work like Gnu ld for NT.
+	* winnt/libgcc.mak, winnt/mklibgcc.c: New files.
+	* winnt/spawnv.c: Changed spawn function entry points to __spawn*
+	instead of spawn*.
+	* winnt/x-winnt: New file.
+	* fixinc-nt.sed: New file.
+	* fixinc.winnt: Rewritten to use fixinc-nt.sed.
+
+	* gcc.c: Remove fix_argv kludge.
+
+Tue Sep 12 13:24:17 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.md (power subdi3 pattern): Fix pattern to have 5
+	alternatives, and correct 4th alternative to match reality.
+
+	* rs6000.md (adddi3, subdi3, negdi2): Add constraints so output reg
+	does not overlap one reg with one of the inputs.
+
+Tue Sep 12 13:09:48 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k.c (output_scc_di): Fixed for non-SGS_CMP_ORDER syntax.
+
+	* collect2.c (scan_libraries): Cast lsyms' alloca to LDSYM*.
+
+Tue Sep 12 13:04:12 1995  Niklas Hallqvist  (niklas@appli.se)
+
+	* stmt.c (expand_start_stmt_expr): Do stack adjust in right place.
+
+	* stdarg.h (__gnuc_va_list): Make char * for NetBSD.
+
+Tue Sep 12 12:44:46 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* ginclude/va-ppc.h (va_arg): Reorganize to avoid BIND_EXPRs of
+ 	aggregate or array type.
+
+Tue Sep 12 12:42:27 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* fixincludes: Fix HP/UX <sys/file.h> for g++ -pedantic-errors.
+
+	* fixincludes (curses.h): typedef bool need not take up entire line.
+
+Mon Sep 11 19:05:42 1995  Stan Cox  (coxs@dg-rtp.dg.com)
+
+	* c-typeck.c (digest_init): Don't recursively call digest_init
+	when in traditional mode if the type is invalid.
+
+Mon Sep 11 18:58:26 1995  Oliver Kellogg  (Oliver.Kellogg@space.otn.dasa.de)
+
+	* 1750a.md: Added DLB/DSTB peepholes for HFmode.
+	Corrected mnemonics for HImode DSTB peephole.
+
+Mon Sep 11 18:48:06 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* config/fp-bit.c (FLO_union_type): Remove bitfields to set sign,
+	exponent, and mantissa, and add value_raw field, which is an
+	integer of the appropriate type.  If _DEBUG_BITFLOAT is defined,
+	provide little and big endian bitfields.  If the macro
+	FLOAT_BIT_ORDER_MISMATCH is defined, use explicit bitfields.
+	(pack_d, unpack_d): Switch to use value_raw and explicit shifts
+	and masks so that we don't have to worry about whether the target
+	is big or little endian unless FLOAT_BIT_ORDER_MISMATCH is
+	defined.  If single precision floating point, rename to pack_f and
+	unpack_f, so there is no confusion in the debugger.
+
+	* rs6000.h (rs6000_abi): New enumeration to describe which
+	ABI we're conforming to.
+	(rs6000_stack): Use abi enum, not AIX vs. V.4 boolean.
+	(ASM_OUTPUT_OPTIONS): New macro to print output options in .s file.
+	(ASM_FILE_START): Use it.
+	(output_options,rs6000_float_const): Declare new functions.
+
+	* rs6000.c (output_option{,s}): New functions to write -f, -m,
+	and -W options to the asm file.
+	(rs6000_float_const): New function to generate floating point
+	constants portably used in signed,unsigned -> double conversions.
+	(rs6000_stack_info,debug_stack_info): Use ABI enumeration instead
+	of AIX vs. V.4 boolean.
+
+	* rs6000.md (float{,uns}sidf2): Call rs6000_float_const to
+	portably build the proper floating point constant for conversions.
+	(movdi): Properly handle movdi of CONST_{INT,DOUBLE} on little
+	endian systems.
+
+	* rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Define to be 0/1
+	depending on the target endianess.
+	(ASM_FILE_START): Define, to call output_options in addition to
+	output_file_directive.
+	(TRAMPOLINE_SIZE): Correct size to match code.
+
+	* rs6000/eabi{,le}sim.h (CPP_SPEC): Define the correct endian
+	macro for varargs/stdargs use.
+
+Mon Sep 11 18:41:58 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* c-decl.c (redeclaration_error_message): For TYPE_DECLs, return 0
+	if TYPE_MAIN_VARIANT of old type is same as new type.
+
+Mon Sep 11 17:39:35 1995  Rob Ryan (robr@cmu.edu)
+
+	* xcoffout.c (xcoff_inlining): New variable, used in place of
+	xcoff_current_include_file when determining whether to use
+	absolute line numbers.
+	(xcoffout_source_file): Switched to using xcoff_inlining to
+	determine when to emit .bi/.ei directives.
+
+Mon Sep 11 16:55:06 1995  Torbjorn Granlund  <tege@matematik.su.se>
+
+	* m68k.md (cmpdi): Change patterns to allocate scratch register at
+	RTL generation time.
+	(tstdi): Likewise.
+
+Sun Sep  3 09:03:50 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (size_binop): Don't pass 1 to NOTRUNC.
+
+Thu Aug 31 19:27:00 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* libgcc2.c: Include longlong.h.
+	[L_udivdi3 || L_divdi3 || L_umoddi3 || L_moddi3] (__udivmoddi4):
+	Define this `static inline' when defining these, so they all
+	remain leaf functions.
+
+Thu Aug 31 18:38:21 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* c-parse.in (ends_in_label): New %union member.
+	(stmts, stmt_or_label): Use new member to avoid lexical lookahead hack.
+	(lineno_stmt_or_labels): New rule.
+	(lineno_stmt_or_label, stmt_or_label): Yield nonzero if it ends
+	in a label.
+
+Thu Aug 31 08:31:40 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (canon_hash, CONST_DOUBLE): Hash integer and real
+	differently.
+	* varasm.c (struct rtx_const): Add new field DI to union.
+	(decode_rtx_const, case CONST_DOUBLE): Use to hash CONST_DOUBLE
+	representing an integer.
+
+	* va-alpha.h (__gnuc_va_list): Make __offset an int.
+	* alpha.c (alpha_builtin_saveregs): Properly compute address
+	of __offset both both OSF and WINNT.
+
+	* xm-alpha.h (sbrk): Don't define here.
+	* gmon.c (sbrk): Define here for __alpha.
+	* toplev.c (sbrk): Likewise.
+	* mips-tfile.c (malloc, calloc, realloc): Don't define for anybody.
+
+	* reload.c (push_reload): Add case for output reload of a SUBREG
+	of a hard reg when output mode is invalid for that mode.
+	In both that case and existing case for in, don't remove SUBREG.
+	* reload1.c (emit_reload_insns): Emit RELOAD_OTHER output reloads last.
+
+Tue Aug 29 19:16:06 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-common.c (decl_attribute, case A_PACKED): Check is_type first.
+	(decl_attribute, case A_T_UNION): Likewise.
+	Don't access TYPE_FIELDS if DECL is zero.
+	* c-decl.c (finish_struct): If transparent_union attribute
+	specified, validate it once we finish laying the union out.
+
+Mon Aug 28 05:58:03 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* arm.c (arm_gen_movstrqi): Remove unused variable const_sxteen.
+
+	* bi-lexer.c (buffer, inpoint): Remove unused variables.
+
+	* i370/mvs.h, i370/mvs370.c (mvs_label_emitted): Renamed
+	from mvs_label_emited.
+
+	* msdos/configur.bat: Fix misspelling of `maintainer-clean'.
+
+Sat Aug 26 06:57:17 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload.c (push_secondary_reload): If X is a paradoxical SUBREG,
+	get mode and thing to reload from inside.
+	* reload1.c (emit_reload_insns): Do nothing for SUBREG whose
+	operand is unused subsequently.
+	In secondary reload case, if paradoxical SUBREG for output, reload
+	thing inside SUBREG, just like gen_reload.
+
+Fri Aug 25 19:26:53 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* c-typeck.c (set_init_label): Don't die if an entire
+	brace-pair level is superfluous in the containing level.
+
+Fri Aug 25 19:22:46 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* configure (powerpc{,le}-eabisim): Add support for a new target
+	that works under the PSIM simulator.
+	* rs6000/eabisim.h, rs6000/eabilesim.h, rs6000/t-eabisim: New files.
+
+	* rs6000/eabi.h (STRICT_ALIGNMENT): If little endian, always set
+	strict alignment to 1.
+
+Fri Aug 25 19:22:23 1995  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.md ({add,sub,mulsi}di3): Support both endian possibilities.
+	(negdi2): Likewise.
+
+Fri Aug 25 19:10:41 1995  Oliver Kellogg  (Oliver.Kellogg@space.otn.dasa.de)
+
+	* 1750a.md: Added peephole definitions for Load/Store Base insns
+	and eliminating redundant load in an equivalent store/load sequence.
+
+Fri Aug 25 18:33:27 1995  Craig Burley  (burley@gnu.ai.mit.edu)
+
+	* toplev.c (report_error_function): Don't attempt to use input
+	file stack to identify nesting of #include's if file name oflocation
+	diagnosed is not same as input_filename.
+
+Fri Aug 25 07:31:47 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* integrate.c (output_inline_function): Switch to function obstack.
+
+Mon Aug 21 13:29:54 1995  J"orn Rennecke (amylaar@meolyon.hanse.de)
+
+	* i386.c (arithmetic_comparison_operator): New function.
+	(print_operand): Take into account that overflow flag is not
+	set the same as after a compare instruction.
+	* i386.md (decrement_and_branch_until_zero): Use
+	arithmetic_comparison_operator to decide if there is comparison
+	suitable to be expressed by condition code from an arithmetic op.
+
+Mon Aug 21 13:26:13 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k.md (adddi3, subdi3): "&" added to clobber's constraints.
+
+Mon Aug 21 12:11:14 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* t-sparclite (MULTILIB_*, LIBGCC, INSTALL_LIBGCC): Define.
+
+	* sh.md (movdi-1, movdf-1): Make conditional on reload_completed,
+	delete conditions checking for pseudo registers and Q addresses.
+	Add code to handle SUBREG.
+
+	* local-alloc.c (wipe_dead_reg): Make a register mentioned in a
+	REG_INC note die after the instruction.
+
+	* m68k.md: For all dbra pattern, change constraint from 'g' to 'd*g'.
+
+	* Makefile.in: (underscore.c): Rename rule to stamp-under, and
+	touch stamp-under at the end.  Add new rule for underscore.c that
+	depends on stamp-under.
+
+	* sh.c (reg_unused_after): For a SEQUENCE, make sure all insns are
+	safe before returning 1.
+
+	* sh.h (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN): Define.
+
+	* sh.c (output_stack_adjust): Add new argument reg.  Use it instead
+	of stack_pointer_rtx.
+	(sh_expand_prologue, sh_expand_epilogue): Pass new argument to
+	output_stack_adjust.
+
+Sat Aug 19 17:34:15 1995  Jim Wilson  <wilson@phydeaux.cygnus.com>
+
+	* sparc/gmon-sol2.c (_mcount): Define.
+	* sparc/sol2.h (STARTFILE_SPEC, ENDFILE_SPEC): Delete superfluous
+	-pg tests.
+	(LINK_SPEC): Add libp directories to -Y when -pg.
+
+	* unroll.c (calculate_giv_inc): Handle increment computed by ASHIFT.
+
+Sat Aug 19 17:28:56 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k.md (subdi3): Should not be commutative.
+	(one_cmpldi2): Fixed typo with register operand.
+
+Sat Aug 19 17:20:43 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.c (output_prolog): Fixup code to set stack pointer
+	if stack size > 32k.
+	* rs6000.md (sync_isync): Renamed from sync; added an isync insn
+	after the sync to properly deal with PowerPC's with split I/D caches.
+	* sysv4.h (INITIALIZE_TRAMPOLINE): Sync function now named sync_isync.
+
+Sat Aug 19 17:07:09 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* h8300.h (STATIC_CHAIN_REGNUM): Use r3.
+	(REGISTER_NAMES): Print r7 as sp.
+	(ADDITIONAL_REGISTER_NAMES): Recognize r7.
+	(ASM_OUTPUT_ALIGN): Alignment is power of 2.
+	* h8300.md (fancy_btst,fancy_btst1): Branch target must be
+	operand 0 for length attribute to work.
+
+Sat Aug 19 16:43:11 1995  Paul Franklin  <paul@cs.washington.edu>
+
+	* assert.h: Declare __eprintf with attribute noreturn.
+
+Sat Aug 19 16:40:12 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* stddef.h: Don't define wchar_t if __cplusplus is defined.
+
+Tue Aug 15 18:01:01 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (warning_with_line): Fix typo in declaration when
+	!HAVE_VPRINTF and defined (__STDC__).
+
+Tue Aug 15 17:57:54 1995  Stephen L Moshier <moshier@world.std.com>
+
+	* real.c (ediv, emul): Set sign bit of IEEE -0.0 result.
+
+Tue Aug 15 17:49:47 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (safe_from_p): Only safe if EXP is variable-size and X
+	is BLKmode.
+
+	* stmt.c (fixup_gotos): When some fixups done, reset to point
+	to next instead of zeroing TREE_VALUE, which may be shared.
+
+Mon Aug 14 09:15:45 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* m68k/m68kemb.h (STARTFILE_SPEC): Define as empty.
+
+Mon Aug 14 09:08:57 1995  Pat Rankin  <rankin@eql.caltech.edu>
+
+	* vax.c (vms_check_external): Update `pending_head' properly
+	when the first list element is removed.
+
+Mon Aug 14 09:01:32 1995  Jeffrey A. Law  <law@adder.cygnus.com>
+
+	* pa.md (call expanders): Emit a blockage insn after restoring
+	%r19 when generating PIC.
+
+Sun Aug 13 21:58:49 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* toplev.c (main): Change text of unsupported -g option warning.
+
+Sun Aug 13 21:47:57 1995  Andrew McCallum  <mccallum@graphite.cs.rochester.edu>
+
+	* objc/selector.c (sel_get_any_typed_uid): New function.
+	* objc/objc-api.h (sel_get_any_typed_uid): Declare new function.
+
+Sun Aug 13 21:43:17 1995  John Carr  <jfc@mit.edu>
+
+	* c-typeck.c (c_expand_asm_operands): Check for read-only output
+	operand where the variable is read-only but the type is not.
+
+Sun Aug 13 21:16:12 1995  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.c (direct_return): Epilogue required if CR saved.
+
+Sun Aug 13 19:09:25 1995  Jeff Law  (law@snake.cs.utah.edu)
+
+	* configure (hppa1.?-hp-hpux10): Recognize and treat just like hpux9.
+
+Sun Aug 13 19:07:23 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* i960.md (movdi matchers): Fix src/dest order in unaligned
+	reg->reg case.
+
+Sun Aug 13 18:49:01 1995  DJ Delorie  <dj@delorie.com>
+
+	* i386/xm-dos.h (HAVE_STRERROR): New definition.
+
+	* msdos/configur.bat: Add missing carriage return.
+
+Sun Aug 13 18:40:55 1995  Andrew Cagney  <cagney@highland.com.au>
+
+	* Makefile.in (USER_H): Add va-ppc.h.
+
+Sun Aug 13 18:36:17 1995  M. Warner Losh  <imp@village.org>
+
+	* stmt.c (expand_asm_operands): Type '0'..'4' operands may
+	allow regs, so move them to the default case.
+
+Sun Aug 13 18:32:35 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (warning_with_line): New function.
+	(trigraph_pcp): Use it, to avoid reporting line number.
+	(vwarning_with_line): Don't report line number if zero.
+
+Sun Aug 13 18:23:08 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* toplev.c (vmessage): Support four arguments.
+
+Sun Aug 13 18:19:51 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* ginclude/stdarg.h: Add ppc svr4 calling sequence support.
+	* ginclude/varargs.h: Likewise.
+	* ginclude/va-ppc.h: New file.
+
+Sun Aug 13 18:05:20 1995  Michael Gschwind  <mike@donoussa.vlsivie.tuwien.ac.at>
+
+	* configure (pdp-*-*): Add support for t-pdp11.
+	* t-pdp11: New file.
+	* Makefile.in (LIBGCC2_CFLAGS): Add TARGET_LIBGCC2_CFLAGS.
+
+Sun Aug 13 14:50:58 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* final.c (final_start_function): Always call sdbout_begin_function
+	and xcoffout_begin_function, even if no line number info.
+
+	* mips/abi64.h (SETUP_INCOMING_VARARGS): In if statement, only
+	subtract one for stdarg.  Don't subtract PRETEND_SIZE from
+	argument pointer when calculating stack address.
+	* mips.h (INITIAL_ELIMINATION_OFFSET): For 64 bit ABI, subtract
+	current_function_pretend_args_size when converting from argument
+	pointer.
+	* va-mips.h (va_start): For stdarg, delete separate define for
+	64 bit ABI.  For varargs, don't subtract 64, and only add -8 when
+	all argument registers are used.
+
+	* gcc.c (main): When concat gcc_exec_prefix and
+	standard_startfile_prefix, put machine_suffix in the middle.
+
+	* iris6.h (INIT_SECTION_ASM_OP): Don't define.
+	(LD_INIT_SWITCH, LD_FINI_SWITCH, HAS_INIT_SECTION): Don't undef.
+	(ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Ifdef out.
+	* configure (mips-sgi-irix6, mips-sgi-irix5cross64): Define
+	use_collect2 to yes.
+
+	* combine.c (move_deaths): When have a multi-reg hard register,
+	if don't find a note, then recur for each individual hard register.
+
+	* cse.c (set_nonvarying_address_components): Handle addresses
+	which are the sum of two constant pseudo regs.
+	(cse_rtx_addr_varies_p): Likewise.
+
+	* Makefile.in (gfloat.h): Add a - before the rm command.
+
+	* loop.c (find_and_verify_loops): Set dest_loop only if
+	JUMP_LABEL (insn) is non-zero.
+
+Mon Jul 31 14:31:53 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* fixincludes: Avoid clobbering VxWorks drv/netif/if_med.h file.
+
+Sat Jul 29 16:21:42 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* collect2.c: (XCOFF_SCAN_LIBS): Define if OBJECT_FORMAT_COFF and
+	XCOFF_DEBUGGING_FORMAT.
+	(SCAN_LIBRARIES): Also define if XCOFF_SCAN_LIBS.
+
+Sat Jul 29 16:19:42 1995  Stuart D. Gathman  <stuart@bmsi.com>
+
+	* collect2.c (scan_libraries): Implement for AIX.
+
+Sat Jul 29 09:59:33 1995  Michael Gschwind  <mike@lanai.vlsivie.tuwien.ac.at>
+
+	* configure: (pdp11-*-bsd) New target.
+	* 2bsd.h: New file.
+
+	* pdp11.c (output_move_double): Handle CONST_INT parameters properly.
+	* pdp11.h (RTX_COSTS): Fill in missing default values.
+	* pdp11.md (truncdfsf2, extendsfdf2, floatsidf2, fix_truncdfsi2):
+	Allow register parameters, required by gcc to generate correct code.
+	* xm-pdp11.h: Include tm.h.
+
+Sat Jul 29 09:55:17 1995  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* configure (m68k-*-linux*aout*, m68k-*-linux*): New targets.
+	* m68k/linux-aout.h, m68k/linux.h, m68k/t-linux, m68k/xm-linux.h: New.
+	* m68k.md [USE_GAS]: Output `jbsr' instead of `jsr' for normal
+	function calls and `bsr.l' instead of `bsr' for pic function calls.
+
+Sat Jul 29 09:44:13 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* sh.h (CAN_DEBUG_WITHOUT_FP): Comment out.
+
+	* reload.c (find_reloads_address_1, case PLUS): When handle SUBREG,
+	add SUBREG_WORD offset to SUBREG_REG register number.
+	(find_reloads_address_1, case SUBREG): If a pseudo register inside
+	a SUBREG is larger than the class, then reload the entire SUBREG.
+	* sh.h (SUBREG_OK_FOR_INDEX_P): New macro.
+	(INDEX_REGISTER_RTX_P): Use it.
+
+Sat Jul 29 09:33:19 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* mips/netbsd.h (CPP_SPEC): Fix typo.
+
+	* configure (a29k-*-vxworks*): Define extra_parts for crt{begin,end}.o.
+	* t-a29k, t-a29kbase, t-vx29k ({,CROSS_}LIBGCC1): Define as empty.
+
+Sat Jul 29 09:15:17 1995  Jeffrey A. Law  <law@rtl.cygnus.com>
+
+	* pa/lib2funcs.asm (gcc_plt_call): Rewrite to avoid the need
+	for being called by _sr4export.  Inline expand $$dyncall to
+ 	avoid the need for long-call and PIC support.
+
+Sat Jul 29 07:30:04 1995  Oliver Kellogg  (Oliver.Kellogg@space.otn.dasa.de)
+
+	* ms1750.inc (ucim.m, ucr.m, uc.m): New.
+	* 1750a.md (cmpqi): Account for unsigned comparisons.
+	(rotrqi3, rotrhi3): Reworked.
+	* 1750a.c (notice_update_cc): INCM and DECM set condition codes.
+	(unsigned_comparison_operator, next_cc_user_is_unsigned): New fcns.
+	* 1750a.h (FUNCTION_EPILOGUE): Local variables freed from SP, not FP.
+	(ASM_OUTPUT_BYTE): Make distinct from ASM_OUTPUT_CHAR.
+	(ASM_OUTPUT_CONSTRUCTOR): Add FILE arg to assemble_name.
+
+Fri Jul 28 09:40:07 1995  Jeffrey A. Law  <law@rtl.cygnus.com>
+
+        * pa.h (DO_GLOBAL_DTORS_BODY): Use an asm statement to keep optimizer
+	from deleting an assignment it believes dead.
+
+Fri Jul 28 08:47:51 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* unroll.c (unroll_loop): When preconditioning, output code to
+	execute loop once if initial value is greater than or equal to final
+	value.
+
+	* configure (lang_specs_files, lang_options_files): Add $srcdir to
+	file names when adding them to these variables.
+
+	* c-typeck.c (pointer_int_sum): Don't distribute if intop is unsigned
+	and not the same size as ptrop.
+
+	* function.c (assign_stack_temp): When split a slot, set base_offset
+	and full_size in the newly created slot.
+	(combine_temp_slots): Update full_size when slots are combined.
+
+	* sh.c (reg_unused_after): New function.
+	* sh.md (define_peephole): Add peepholes to use r0+rN addressing mode
+	for some address reloads.
+
+	* final.c (final_start_function): If SDB_DEBUG, call
+	sdbout_begin_function.  If XCOFF_DEBUG, call xcoffout_begin_function
+	instead of xcoffout_output_first_source_line.
+	(final_scan_insn): Don't call sdbout_begin_function or
+	xcoffout_begin_function.
+	* xcoffout.c (xcoffout_output_first_source_line): Delete.
+	(xcoffout_begin_function): Call dbxout_parms and
+	ASM_OUTPUT_SOURCE_LINE.
+
+	* va-mips.h: Change every occurance of #if __mips>=3 to
+	#ifdef __mips64.
+	* mips/abi64.h (CPP_SPEC): Output -D__mips64 when -mips3, or -mips4,
+	or -mgp64.  Output -U__mips64 when -mgp32.
+	* mips/dec-bsd.h, mips/elf64.h, mips/iris3.h: Likewise.
+	* mips/iris5.h, mips/mips.h, mips/netbsd.h, mips/osfrose.h: Likewise.
+
+	* i960.c (i960_function_epilogue): Don't clear g14 for functions with
+	an argument block.
+	(i960_output_reg_insn): Likewise.
+	(i960_output_call_insn): Clear g14 for functions wtih an argument
+	block.
+
+Fri Jul 28 08:43:52 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* i960.c (i960_arg_size_and_align): Correct alignment of XFmode
+	values in library calls.
+	* i960.md (movdi matchers): Support odd numbered regs.
+
+Fri Jul 28 08:37:25 1995  Michael Gschwind  <mike@lanai.vlsivie.tuwien.ac.at>
+
+	* pdp11.md (divhi3, modhi3, divmodhi4): Rewrite.
+
+Wed Jul 26 10:15:52 1995  Hallvard B Furuseth  (h.b.furuseth@usit.uio.no)
+
+	* collect2.c (end_file): Fix typo in error message text.
+
+Wed Jul 26 09:22:22 1995  Jeff Law  (law@snake.cs.utah.edu)
+
+	* xm-pa.h (USE_C_ALLOCA): Always define.
+	* xm-pahpux.h (USE_C_ALLOCA): Likewise.
+
+	* x-pa (CC): Remove useless definition.
+	* xm-pa.h (HAVE_STRERROR): Define.
+	(__BSD_NET2__): Define.
+
+Wed Jul 26 09:10:25 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* expr.c (preexpand_calls): Don't look past a CLEANUP_POINT_EXPR.
+
+Wed Jul 26 08:43:42 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* cse.c (cse_insn): When do special handling for (set REG0 REG1),
+	must delete REG_EQUAL note from insn if it mentions REG0.
+
+	* loop.c (find_and_verify_loops): When moving blocks of code, verify
+	that the just destination is not in an inner nested loop.
+	(mark_loop_jump): Don't mark label as loop exit if it jumps to
+	an inner nested loop.
+
+Wed Jul 26 08:40:31 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (do_include, read_name_map): Omit leading "./" and
+	trailing "/" when it makes sense.
+	(skip_redundant_dir_prefix): New function.
+
+Wed Jul 26 08:36:41 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* stmt.c (emit_nop): Do not emit a nop if there is a single
+	insn before a label or at the start of a function.
+
+Wed Jul 26 08:21:21 1995  Doug Evans  <dje@cygnus.com>
+
+	* Makefile.in (gfloat.h): Delete previous copy before updating.
+
+Wed Jul 26 08:18:29 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* Makefile.in (STAGESTUFF): Add stamp-crtS.
+	(crtbeginS.o, crtendS.o, stamp-crtS): New rules; just like
+	crtbegin.o et al, but compiled using -fPIC.
+	* configure (*-*-gnu*): Add crtbeginS.o and crtendS.o to $extra_parts.
+
+Wed Jul 26 08:11:52 1995  Michael Gschwind  <mike@java.vlsivie.tuwien.ac.at>
+
+	* pdp11.md: Fixed typos ('bhos' -> 'bhis').
+
+Wed Jul 26 08:05:41 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* hp320.h, m68k.h, m68kv4.h (LEGITIMATE_PIC_OPERAND_P): Reject
+	CONST_DOUBLE with MEM with invalid pic address.
+	* reload1.c (real.h): Include it.
+	* Makefile.in (reload1.o): Depends on real.h.
+
+Wed Jul 26 07:58:22 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* gcc.c (MULTILIB_DIRS): Provide default if not defined.
+	(multilib_defaults): New static variable.
+	(default_arg): New static function.
+	(set_multilib_dir): Ignore default arguments.
+	(print_multilib_info): Ignore entries which use default arguments.
+
+Tue Jul 25 10:06:09 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.md (allocate_stack): Don't copy the LR register to
+	the new stack end.
+	* rs6000.c (rs6000_stack_info): Correctly store the LR in
+	the caller's frame, not the current frame, for V.4 calls.
+	* rs6000/eabi.asm (_save*, _rest*): Provide all mandated V.4 save
+	and restore functions, except for the save*_g functions which
+	return the GOT address.
+
+Fri Jul 21 14:24:25 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/eabi.h (__eabi): Load up r13 to be the small data
+	pointer, unless -mrelocatable.
+
+	* rs6000/aix3newas.h (LINK_SPEC): Import machine independent
+	functions if -mcpu=common.
+	* rs6000/milli.exp: Import file referenced in aix3newas.h.
+
+	* rs6000/eabi.asm (__eabi): Support for fixing up user initialized
+	pointers when -mrelocatable is used.
+	* rs6000/eabi.h (ASM_OUTPUT_INT): Record any pointers initialized
+	by the user if -mrelocatable, to be fixed up by __eabi.
+	(CONST_SECTION_ASM_OP): If -mrelocatable, put read-only stuff in .data,
+	not .rodata, to allow user initialized pointers to be updated by __eabi.
+
+	* rs6000.h (TARGET_SWITCHES): Add -mdebug-{stack,arg}.
+	(TARGET_{ELF,NO_TOC,TOC}): Add defaults for non system V.
+	(rs6000_stack): New structure to describe stack layout.
+	(RS6000_{REG_SAVE,SAVE_AREA,VARARGS_*}): New macros used to
+	support both AIX and V.4 calling sequences.
+	(FP_ARG_*, GP_ARG_*): Ditto.
+	(FP_SAVE_INLINE): Ditto.
+	(STARTING_FRAME_OFFSET): Modify to support both AIX and V.4
+	calling sequences.
+	(FIRST_PARM_OFFSET): Ditto.
+	(REG_PARM_STACK_SPACE): Ditto.
+	(STACK_POINTER_OFFSET): Ditto.
+	(FUNCTION_ARG_REGNO_P): Ditto.
+	({,INIT_}CUMULATIVE_ARGS): Ditto.
+	(LEGITIMATE_LO_SUM_ADDRESS_P): Ditto.
+	(FUNCTION_ARG{,_ADVANCE,PARTIAL_NREGS,PASS_BY_REFERENCE}): Ditto.
+	(SETUP_INCOMING_VARARGS): Ditto.
+	(EXPAND_BUILTIN_SAVEREGS): Ditto.
+	(CAN_ELIMINATE): Ditto.
+	(INITIAL_ELIMINATION_OFFSET): Ditto.
+	(LEGITIMATE_CONSTANT_POOL_{BASE,ADDRESS}_P): Ditto.
+	(GO_IF_{LEGITIMATE_ADDRESS,MODE_DEPENDENT_ADDRESS}): Ditto.
+	(LEGITIMIZE_ADDRESS): Ditto.
+	(CONST_COSTS): Ditto.
+	(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Ditto.
+	(ASM_OUTPUT_REG_{PUSH,POP}): Use reg_names to print registers.
+	(function declarations): Add new rs6000.c function declarations,
+	and delete decls of deleted functions.
+	(SHIFT_COUNT_TRUNCATED): Parenthesize the expression.
+
+	* rs6000.c (init_cumulative_args): New function to support AIX
+	and V.4 calling sequences.
+	(function_arg{,_advance,partial_nregs,pass_by_reference}): Ditto.
+	(setup_incoming_varargs): Ditto.
+	(expand_builtin_saveregs): Ditto.
+	(rs6000_stack_info): Ditto.
+	(debug_stack_info): Ditto.
+	(direct_return): Changes to support AIX and V.4 calling sequences.
+	(first_reg_to_save): Ditto.
+	(svr4_traceback): Ditto.
+	(output_{prolog,epilog}): Ditto.
+	(print_operand): Use reg_names to print registers.  Add support
+	for V.4 HIGH/LO_SUM address modes.
+	(must_save_cr): Function deleted, in rewrite of AIX/V.4 calling
+	sequence support.
+	(rs6000_sa_size): Ditto.
+	(rs6000_pushes_stack): Ditto.
+	(output_toc): Add abort if no toc.
+
+	* rs6000.md (call insns): Add a new argument to flag a V.4
+	function needs to set bit 6 of the CR.
+	(elf_{low,high}): New V.4 functions to create addresses via HIGH
+	and LO_SUM patterns.
+	(movsi): Use elf_{low,high} if appropriate.
+	(mov{si,di}_update): Name these patterns for allocate_stack.
+	(allocate_stack): Support for V.4 stack layout.
+	(sync): New pattern for V.4 trampolines to issue the sync
+	instruction.
+
+	* rs6000/sysv4.h (TARGET_SWTICHES): Add -mcall-{aix,sysv}, and
+	-mprototype.  Remove separate flag bit for -mno-toc.
+	(SUBTARGET_OVERRIDE_OPTIONS): Don't test for -mno-toc.
+	(FP_ARG_*): Adjust for V.4 calling sequences.
+	(RS6000_*): Ditto.
+	(FP_SAVE_INLINE): Ditto.
+	(toc_section): Eliminate use of AIX style full TOC.
+	(TRAMPOLINE_{TEMPLATE,SIZE}): Redefine for V.4 support.
+	(INITIALIZE_TRAMPOLINE): Ditto.
+
+	* rs6000/eabi.h (CPP_SPEC): Define _CALL_SYSV or _CALL_AIX,
+	depending on whether -mcall-sysv or -mcall-aix was used.
+	* rs6000/eabile.h (CPP_SPEC): Ditto.
+	* rs6000/sysv4le.h (CPP_SPEC): Ditto.
+
+	* rs6000/t-eabigas (MULTILIB_{OPTIONS,DIRNAMES}): Delete no-toc
+	libraries, explicit big endian libraries.
+	* rs6000/t-ppcgas (MULTILIB_{OPTIONS,DIRNAMES}): Ditto.
+
+	* rs6000/t-eabiaix: New file for eabi, using -mcall-aix as the
+	default.
+	* rs6000/eabiaix.h: Ditto.
+
+	* rs6000/t-eabilegas: New file for eabi on little endian systems.
+	* rs6000/t-ppclegas: New file for V.4 on little endian systems.
+
+	* rs6000/t-rs6000 (MULTILIB_{OPTIONS,DIRNAMES}): Build libgcc.a
+	for -mcpu=common.
+
+	* configure (powerpc-*-eabiaix): New configuration for defaulting
+	to old-style AIX calling sequence.
+	(powerpcle*): Use new t-{eabi,ppc}legas files, to avoid building
+	explicit little endian multilib libraries.
+
+Fri Jul 21 13:23:06 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* toplev.c (main): Don't define sbrk #ifdef __alpha__.
+
+Tue Jul 18 19:23:44 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (do_include): Prefix -H output lines with spaces, not dots.
+	(output_dots): Remove.
+
+	* cccp.c (main): cplusplus_comments now defaults to 1.
+	But clear it if	-traditional or the new option -lang-c89 is given.
+	* gcc.c (default_compilers, cpp): Specify -lang-c89 if -ansi is given.
+	This turns off C++ comment recognition.
+
+Tue Jul 18 19:16:38 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* va-sparc.h (va_arg): Add support for 128 bit long double type.
+
+Tue Jul 18 19:11:18 1995  Jorn Rennecke  (amylaar@meolyon.hanse.de)
+
+	* c-common.c (decl_attributes, case A_ALIGNED): Handle is_type
+	case properly.
+
+Tue Jul 18 19:03:02 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold, case CONVERT_EXPR): Don't merge conversions
+	if outer is to handle a type with differing precision.
+
+Mon Jul 17 14:37:35 1995  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* vax/vms.h (HAVE_ATEXIT): Define.
+	(DO_GLOBAL_CTORS_BODY): Don't call atexit; let __do_global_ctors do it.
+	* vax/xm-vms.h (HAVE_VPRINTF): Define.
+
+Mon Jul 17 06:41:19 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-typeck.c ({unsigned,signed}_type): Handle intXX_type_node types.
+
+	* xm-alpha.h (sbrk): Add declaration.
+
+	* convert.c (convert_to_integer): If TYPE is a enumeral type or
+	if its precision is not the same as the size of its mode,
+	convert in two steps.
+
+	* m68k.md (tstdi, cmpdi): Use match_scratch, not match_operand.
+
+Fri Jul 14 19:23:42 1995  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* c-decl.c (field_decl_cmp): Rewritten to make sure that a null
+	name always sorts low against other names.
+	* c-typeck.c (lookup_field): Change name comparison to match what
+	field_decl_cmp does.
+
+Fri Jul 14 18:46:24 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.md (movsi): Convert a CONST_DOUBLE into a CONST_INT of
+	the low part.
+
+Fri Jul 14 18:30:52 1995  Doug Evans  <dje@cygnus.com>
+
+	* toplev.c (main): Reword dwarf/c++/-g warning.
+
+Fri Jul 14 18:19:34 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.h (NO_DEFER_POP): Remove last change.
+	* expr.c (stor_expr): Force stack adjust before NO_DEFER_POP.
+	(expand_expr, case COND_EXPR): Likewise.
+	* stmt.c (expand_start_stmt_expr): Likewise.
+
+Fri Jul 14 07:58:35 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* function.c (struct temp_slot): New fields base_offset, full_size.
+	(assign_stack_temp): For !FRAME_GROWS_DOWNWARD, set p->size to size.
+	Set new fields base_offset and full_size.
+	(combine_temp_slots): Use new fields base_offset and full_size instead
+	of slot and size.
+
+	* loop.c (loop_number_exit_count): New global variable.
+	(loop_optimize): Allocate space for it.
+	(find_and_verify_loops, mark_loop_jump): Set it.
+	(strength_reduce, check_dbra_loop): Use loop_number_exit_count
+	instead of loop_number_exit_labels.
+	* loop.h (loop_number_exit_count): Declare it.
+	* unroll.c (find_splittable_{regs,givs}, final_[bg]iv_value): Use
+	loop_number_exit_count instead of loop_number_exit_labels.
+	(reg_dead_after_loop): Check loop_number_exit_count, and fail
+	if the count doesn't match loop_number_exit_labels.
+
+	* cse.c (cse_insn): Ifdef out code that pre-truncates src_folded.
+
+	* sparc.md (sethi_di_sp64): Return null string at end.
+
+	* function.h (struct function): Add stdarg field.
+	* function.c (current_function_stdarg): New global variable.
+	(push_function_context_to): Save it.
+	(pop_function_context_from): Restore it.
+	(assign_parms): Set it.
+	(init_function_start): Clear it.
+	* output.h (current_function_stdarg): Declare it.
+	* i960.md: Modify all patterns which handle stores to memory to also
+	check current_function_varargs and current_function_stdarg.
+
+	* reorg.c (fill_simple_delay_slots): When trying to take instruction
+	from after the branch, don't continue past target label.  Local
+	variables passed_label and target_uses are no longer necessary.
+
+Thu Jul 13 19:30:04 1995  Jeff Law  (law@snake.cs.utah.edu)
+
+	* pa.c (output_bb): Fix error in long backwards branch with
+	nullified delay slot.
+
+Thu Jul 13 19:26:13 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* expmed.c (SHIFT_COUNT_TRUNCATED): Use #ifdef not #if.
+
+Mon Jul 10 20:16:44 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (rescan): Don't address outside of array when
+	preprocessing C++ comments.
+
+Mon Jul 10 20:05:46 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* rs6000.c (expand_block_move): Remove #if 0 conditionals
+	against using larger block moves.
+
+	* t-rs6000 (EXTRA_PARTS): Copy milli.exp to release dir.
+	(milli.exp): Copy to build dir from machine dependend dir.
+
+Mon Jul 10 20:03:29 1995  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* arm.md (matcher for (shiftable_op (cond-exp) (reg))): If
+	shiftable_op is minus, then subtract from zero when cond fails.
+
+Mon Jul 10 19:58:26 1995  John F. Carr <jfc@mit.edu>
+
+	* sparc.h (SELECT_SECTION): Use TREE_CODE_CLASS instead of directly
+	referencing tree_code_type.
+
+Mon Jul 10 19:54:31 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* protoize.c (reverse_def_dec_list): Delete const qualifiers from
+	local variables, and delete casts which were casting away const.
+
+Mon Jul 10 19:14:39 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-lang.c (finish_file): Add missing parm to start_function call.
+
+	* jump.c (jump_optimize): Pass outer_code arg to rtx_cost.
+
+	* varasm.c (assemble_name, bc_assemble_integer): Call
+	bc_emit_labelref with proper args.
+
+	* function.c (setjmp_args_warning): Remove bogus arg.
+
+Mon Jul 10 18:20:54 1995  Fergus Henderson  (fjh@cs.mu.oz.au)
+
+	* gcc.c (p{fatal,error}_with_name, perror_exec): Quote filename.
+
+Mon Jul 10 18:12:51 1995  Gran Uddeborg (uddeborg@carmen.se)
+
+	* i386/iscdbx.h (STARTFILE_SPEC): Handle -Xp.
+
+Wed Jul  5 02:42:17 1995  Per Bothner  (bothner@spiff.gnu.ai.mit.edu)
+
+	* cpphash.h (enum node_type):  Remove unneeded and non-standard
+	forward declaration.
+
+Sat Jul  1 20:15:39 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* mips/t-mips, mips/t-mips-gas (MULTILIB_*, LIBGCC, INSTALL_LIBGCC):
+	Delete.
+
+	* sparc/sol2.h (LINK_SPEC): Revert March 16 change.  Do not add -R
+	for each -L.
+
+	* collect2.c (libcompare): Verify that file name extensions are valid.
+	Put files with invalid extensions last in the sort.
+
+	* integrate.c (integrate_decl_tree): Set DECL_ABTRACT_ORIGIN before
+	pushdecl call for local variables.
+
+Sat Jul  1 08:13:38 1995  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* cpplib.c (output_line_command): If not emitting #line directives
+	delay returning until after adjust_position has been called.
+
+	* arm.md (mov{si,sf,df}cc): Call gen_compare_reg to generate
+	the condition code register.
+
+Sat Jul  1 06:55:09 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (decode_field_reference): New parm PAND_MASK.
+	(unextend): New parm MASK.
+	(fold_truthop): Pass new parms to decode_field_reference and unextend.
+
+	* va-alpha.h (__va_tsize): Use __extension__ to avoid warning
+	on use of `long long'.
+
+	* expr.h (NO_DEFER_POP): Do any pending stack adjusts.
+
+	* recog.c (register_operand): Disallow subreg of reg not allowed to
+	change size.
+
+Thu Jun 29 05:51:57 1995  Jeff Law  (law@snake.cs.utah.edu)
+
+	* pa.md (reload addsi3): New pattern to avoid reload lossage
+	with register eliminations.
+
+	* pa.c (output_cbranch): When checking for a jump to the given
+	insn's delay slot, handle the case where JUMP_LABEL for the
+	given insn does not point to the first label in a series of
+	labels.
+	(output_bb, output_dbra, output_movb): Likewise.
+
+Wed Jun 28 18:04:56 1995  Jeff Law  (law@snake.cs.utah.edu)
+
+	* pa.h (PIC_OFFEST_TABLE_REGNUM_SAVED): Define to %r4.
+	(CONDITIONAL_REGISTER_USAGE): Make it fixed when compiling
+	PIC code.
+	(INIT_EXPANDERS): Delete.
+	* pa.c (hppa_save_pic_table_rtx): Delete variable.
+	(hppa_expand_prologue): For PIC generation, copy the PIC
+	register into a fixed callee register at the end of the
+	prologue of non-leaf functions.
+	* pa.md (call expanders): Reload the PIC register from the
+	fixed callee saved register.  Don't try to save the PIC
+	register before the call.
+
+Wed Jun 28 18:01:14 1995  Stan Cox  (coxs@dg-rtp.dg.com)
+
+	* m88k/dguxbcs.h (ASM_SPEC): Removed -h flag.
+	* m88k/dgux.h (ASM_SPEC): Likewise.
+
+Wed Jun 28 17:01:58 1995  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.c (processor_target_table): Remove CPU name synonyms.
+	* rs6000.h (CPP_SPEC): Likewise.
+	* rs6000/sysv4.h (CPP_SPEC): Likewise.
+	(ASM_SPEC): Likewise.
+	* rs6000/sysv4le.h (CPP_SPEC): Likewise.
+	* rs6000/eabile.h (CPP_SPEC): Likewise.
+	* rs6000/powerpc.h (CPP_SPEC): Likewise.
+	(ASM_SPEC): Set assembler target according to compiler target.
+	* rs6000/aix3newas.h (CPP_SPEC): Likewise.
+	(ASM_SPEC): Likewise.
+	* rs6000/aix41.h (CPP_SPEC): Likewise.
+	(ASM_SPEC): Likewise.
+
+Wed Jun 28 16:25:53 1995  Gran Uddeborg  (uddeborg@carmen.se)
+
+	* i386/x-isc3 (INSTALL_HEADERS_DIR): Delete; done by configure.
+
+Wed Jun 28 16:10:47 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* xm-rs6000.h (alloca): Extern decl added for non-GNU compiler.
+
+Wed Jun 28 11:31:30 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cpplib.c (progname): Remove definition from here.
+
+	* final.c (final_scan_insn): Fix error in last change.
+
+	* rtlanal.c (reg_set_p_1): Now static; add extra parm.
+
+	* stmt.c: Delete redundant forward decls.
+	(expand_anon_union_decl): Correctly call expand_decl.
+
+	* toplev.c (strip_off_ending): Strip off any ending; don't
+	pretend we know what valid endings are.
+
+	* svr4.h (ASM_OUTPUT_SECTION_NAME): Don't crash if DECL is null.
+
+	* rs6000.md ({load,store}_multiple): Don't use indirect_operand
+	in define_insn; use explicit MEM of register_operand instead.
+
+Tue Jun 27 11:42:56 1995  Stephen L Moshier  <moshier@world.std.com>
+
+	* i386/i386.c (print_operand, case `J'): Use jns for GE and js for
+	LT.
+
+Tue Jun 27 07:58:55 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* expr.c (expand_expr, TARGET_EXPR): Only use original_target
+	if !ignore.
+
+Tue Jun 27 07:27:26 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold_truthop): Commute unextend and convert on
+	l_const and r_const.
+
+	* c-common.c (decl_attributes, case A_CONSTRUCTOR, A_DESTRUCTOR):
+	Set TREE_USED.
+
+	* final.c (final_scan_insn): Don't call alter_cond unless
+	condition is on cc0.
+
+	* stmt.c (expand_asm_operands): Handle input operands that may not
+	be in a register.
+
+Mon Jun 26 19:23:05 1995  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* arm/lib1funcs.asm (L_dvmd_tls): Renamed from L_divmodsi_tools.
+	* arm/t-semi (LIB1ASMFUNCS): Rename _dvmd_tls from _divmodsi_tools.
+
+Mon Jun 26 19:18:06 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* unroll.c (find_splittable_regs): When completely unrolling loop,
+	check for non-invariant initial biv values.
+
+Mon Jun 26 19:13:54 1995  Gran Uddeborg  <uddeborg@carmen.se>
+
+	* configure (i[345]86-*-isc*): Fix misspelled "rfile" to "ifile".
+
+Mon Jun 26 18:58:22 1995  Mike Stump  <mrs@cygnus.com>
+
+	* expr.c (expand_expr, case COND_EXPR): Protect the condition from
+	being evaluated more than once.
+	(do_jump, case TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR): Likewise.
+
+Mon Jun 26 18:52:36 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* fixincludes (string.h):  Fix return value for mem{ccpy,chr,cpy,set}
+	and str{len,spn,cspn} on sysV68.
+
+Mon Jun 26 06:54:50 1995  Michael Meissner  (meissner@cygnus.com)
+
+	* i386/osfrose.h (LONG_DOUBLE_TYPE_SIZE): Go back to making long
+	double == double.
+
+Thu Jun 22 19:14:41 1995  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* make-cc1.com (if DO_LINK): Skip c-parse.* processing when
+	only relinking.
+	(gas_message): Update to reflect current version, and give
+	a different message if/when no version of gas is found.xo
+
+Thu Jun 22 18:52:37 1995  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* arm/lib1funcs.asm (___modsi3): Correctly set SIGN register for
+	modulo involving negative numbers.
+
+Thu Jun 22 18:32:27 1995  Uwe Seimet  (seimet@chemie.uni-kl.de)
+
+        * xm-atari.h (HZ): Now 100 and don't define if already defined.
+
+Thu Jun 22 18:26:12 1995  Jeffrey A Law  (law@snake.cs.utah.edu)
+
+	* calls.c (expand_call): Correctly handle returning BLKmode
+	structures in registers when the size of the structure is not
+	a multiple of word_size.
+	* stmt.c (expand_return): Likewise.
+
+	* pa-gux7.h (LIB_SPEC): Undefine before redefining.
+	* pa-hpux.h (LIB_SPEC): Likewise.
+	* pa-hpux7.h (LIB_SPEC): Likewise.
+
+	* genmultilib: Work around hpux8 /bin/sh case bug.
+
+	* pa.h (LIB_SPEC): Define to avoid -lg.
+
+Thu Jun 22 18:19:09 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* expr.c (expand_expr, TARGET_EXPR): Use original_target.
+
+	* collect2.c (locatelib): Fix parsing of LD_LIBRARY_PATH.
+
+Thu Jun 22 18:15:54 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* configure: Create an empty Makefile.sed first, to work
+	around a Nextstep 3.3 bug.
+
+Thu Jun 22 18:03:44 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (STAGESTUFF): Add stamp-crt.
+	(crtbegin.o, crtend.o): Now depend on stamp-crt.
+	(stamp-crt): New rule, to actually build crt{begin,end}.o.
+
+	* collect2.c (main): Unlink export_file before we return.
+
+Thu Jun 22 14:25:56 1995  Michael Meissner  (meissner@cygnus.com)
+
+	* rs6000.h (STRIP_NAME_ENCODING): Store NAME and strlen(NAME) into
+	local variables; cast result of alloca to avoid compiler warnings.
+
+Tue Jun 20 18:25:29 1995  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* alpha/config-nt.sed, i386/config-nt.sed: Edit to add
+	a missing $(exeext) for CCCP.
+
+Tue Jun 20 18:18:00 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* protoize.c (default_include): Use name and two ints to be
+	compatible with definition of INCLUDE_DEFAULTS.
+
+Mon Jun 19 19:24:29 1995  Ted Lemon  <mellon@toccata.fugue.com>
+
+      * mips/netbsd.h (ASM_DECLARE_FUNCTION_NAME): Don't emit function label.
+
+Mon Jun 19 18:34:55 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* fixincludes: Don't define wchar_t under C++.
+
+Mon Jun 19 17:12:41 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (collect_expansion): Work around enum bug in vax
+	ultrix 4.3 pcc.
+	* tree.c (simple_cst_equal): Likewise.
+
+Mon Jun 19 16:53:00 1995  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* winnt/spawnv.c: New file.
+
+Mon Jun 19 16:30:29 1995  Glenn Brown  <glenn@mars.myri.com>
+
+ 	* caller-save.c (save_call_clobbered_regs): If AUTO_INC_DEC, mark
+	register indicated by REG_INC notes as live so they will be saved.
+
+Mon Jun 19 16:21:12 1995  Jeffrey A Law  (law@snake.cs.utah.edu)
+
+	* pa.h (PRINT_OPERAND_ADDRESS, case LOW_SUM): Fix logic bug
+	in last change.
+
+Mon Jun 19 14:11:49 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* integrate.c (integrate_decl_tree): Only set DECL_ABSTRACT_ORIGIN
+	if the decl returned by pushdecl is the one we started with.
+
+	* mips.h (current_function_name): Delete declaration.
+	(ASM_DECLARE_FUNCTION_NAME): Don't set current_function_name.
+	* gnu.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
+	* mips.c (current_function_decl): Delete declaration.
+	(function_prologue): New variable fnname.  Use it instead of
+	current_function_name.
+	(function_epilogue): Likewise.
+
+Mon Jun 19 13:13:15 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* alpha.h (ASM_OUTPUT_ASCII): Always reset line count when
+	starting new line.
+
+	* scan-decls.c (scan_decls): Fix typo when resetting PREV_ID_START.
+
+	* i386/config-nt.sed, alpha/config-nt.sed: Change version to 2.7.1.
+
+Mon Jun 19 13:06:14 1995  DJ Delorie  (dj@delorie.com)
+
+	* msdos/top.sed: Support new build variables.
+	* msdos/configur.bat: Make options.h and specs.h.
+	Change realclean to maintainer-clean.
+
+Fri Jun 16 06:54:03 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Version 2.7.0 Released.
+
+	* obstack.c: Always enable this code for now.
+
+	* alpha.c (alpha_builtin_saveregs): Use ptr_mode and conversions
+	when need so works for both OSF and NT.
+	* va-alpha.h (__va_tsize): Round to long long not long.
+
+Thu Jun 15 17:54:52 1995  Bdale Garbee  <bdale@gag.com>
+
+	* configure (a29k-*-coff): Synonym for a29k-*-udi.
+
+Thu Jun 15 17:51:21 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (assign_parms): Do all conversions in CONVERSION_INSNS.
+
+Thu Jun 15 17:36:49 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* reg-stack.c (record_reg_life): Call record_reg_life_pat with 0
+	for douse argument so that USE's created to mark variables within
+	blocks don't get marked as set.
+
+Thu Jun 15 06:28:15 1995  Dennis Glatting  (dennisg@CyberSAFE.COM)
+
+	* configure: Change one sed command to work around m68k-next bug.
+
+Wed Jun 14 22:14:39 1995  Jason Merrill  <jason@deneb.cygnus.com>
+
+	* collect2.c (main): Don't turn off auto_export because of -g.
+	(main): Ignore the argument to -o.
+
+	* alpha.h (LINK_SPEC): Don't pass -init __main anymore.
+	* alpha/osf12.h (LINK_SPEC): Ditto.
+	* mips/iris5.h (LINK_SPEC): Ditto.
+
+	* collect2.c (main): Place o_file after an initial .o (like crt0.o).
+	If we have LD_INIT_SWITCH, use init and fini functions for
+	executables, too.  Specify the unique function names.
+	(write_c_file_stat): Fix the case of destructors but no constructors.
+	Don't include the generic-named functions for executables.
+	(write_c_file): If we have LD_INIT_SWITCH, always use
+	write_c_file_stat.
+
+	* collect2.c (main): Also add _GLOBAL__D? to export list.
+
+	* ginclude/iso646.h: Do nothing if compiled as C++.
+
+Wed Jun 14 17:39:10 1995  Roland McGrath  (roland@gnu.ai.mit.edu)
+
+	* c-common.c (format_char_info, case 'm'): Set type to void.
+	(check_format_info): If type is void, ignore operand.
+
+Wed Jun 14 17:04:10 1995  Paul F. Kunz  (Paul_Kunz@SLAC.Stanford.EDU)
+
+	* expr.c (expand_builtin_apply_args): Put back original
+	register save and restore order.
+
+Wed Jun 14 16:56:22 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/eabi.h (INVOKE__main): Define, so __eabi is called after
+	main's arguments are saved.
+
+	* rs6000.c (output_prolog): Don't call __eabi here, let
+	compiler call it after the arguments to main are saved.
+	(output_{prolog,epilog}): Don't use functions under V.4 to save
+	and restore floating point registers.
+
+Wed Jun 14 16:52:12 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k/mot3300.h (PCC_BITFIELD_TYPE_MATTERS): Defined.
+
+Wed Jun 14 16:48:53 1995  Jerry Frain  (jerry@tivoli.com)
+
+	* Makefile.in (stage[1-4]): Correctly link `as', `ld', and `collect2'.
+
+Wed Jun 14 05:52:04 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* objc-act.c (hack_method_prototype): Set DECL_CONTEXT of parms.
+
+	* expmed.c (emit_store_flag): Always set LAST.
+
+	* c-decl.c (start_function): New parameter for attributes.
+	* c-tree.h (start_function): Likewise.
+	* c-lang.c (finish_file): Pass extra parm to start_function.
+	* objc-act.c (build_module_descriptor, really_start_method): Likewise.
+	* c-parse.in (fndef, nested_function, notype_nested_function):
+	Likewise.
+
+	* function.c (assign_parms): Use convert_to_mode instead of
+	gen_lowpart when converting incoming parm.
+
+Tue Jun 13 19:10:32 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* rs6000.md (decrement_and_branch): Finish last fix; update matching
+	constraint.
+
+Tue Jun 13 18:32:51 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
+
+	* fold-const.c (fold): When converting a COND_EXPR to an ABS_EXPR,
+	get the types right for ABS_EXPR to work.
+
+Mon Jun 12 17:09:55 1995  Michael Tiemann  (tiemann@axon.cygnus.com)
+
+	* reorg.c (fill_simple_delay_slots): Set MAYBE_NEVER according to
+	code of TRIAL_DELAY, not TRIAL.
+
+Mon Jun 12 15:02:37 1995  Doug Evans  <dje@cygnus.com>
+
+	* configure: Restore code to make ld symlink if ! use_collect2.
+
+	* gcc.c (link_command_spec): Undo patch of May 11.
+	-nostdlib implies -nostartfiles again.
+	* dsp16xx.h (CROSS_LINK_SPEC): Likewise.
+	* i386/freebsd.h (LINK_SPEC): Undo patch of May 24.
+	Don't pass "-e start" if nostdlib.
+	* i386/sun.h (LINK_SPEC): Likewise.
+	* m68k/sun2o4.h (LINK_SPEC): Likewise.
+	* m68k/sun3.h (LINK_SPEC): Likewise.
+	* m68k/vxm68k.h (LINK_SPEC): Likewise.
+	* mips/netbsd.h (LINK_SPEC): Likewise.
+	* config/netbsd.h (LINK_SPEC): Likewise.
+	* rs6000/mach.h (LINK_SPEC): Likewise.
+	* sparc.h (LINK_SPEC): Likewise.
+	* sparc/vxsparc.h (LINK_SPEC): Likewise.
+
+	* gcc.c (link_command_spec): New argument -nodefaultlibs.
+
+Sun Jun 11 20:47:53 1995  Stephen L Moshier  (moshier@world.std.com)
+
+	* Makefile.in (fix-header.o): Depends on xsys-protos.h.
+
+Sun Jun 11 15:07:58 1995  Tim Carver  (timc@ibeam.intel.com)
+
+	* reload1.c (emit_reload_insns): Don't call HARD_REGNO_NREGS
+	on psuedo when clearing reg_last_reload_reg.
+
+Sun Jun 11 14:07:05 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k.md ({add,sub}di{_mem,3}): Patterns merged.
+
+Sun Jun 11 13:43:26 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
+
+	* m68k.md (cmpdi matcher): Set cc_status before returning.
+
+	* config/xm-freebsd.h (DONT_DECLARE_SYS_SIGLIST): Define.
+
+Sun Jun 11 13:38:49 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* fixincludes (math.h):  Keep declaration of abs on HPUX.
+
+Sun Jun 11 12:31:42 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stor-layout.c (variable_size): Do nothing if SIZE is constant.
+
+	* stmt.c (expand_asm_operands): See if output operand permits
+	register.  If not, mark output addressable, call expand_operand
+	on it, and give error if not MEM.
+
+	* function.c (assign_parms): Handle promotions of both
+	passed and nominal modes separately and insert needed conversions.
+	(promoted_input_arg): Return 0 if nominal and passed modes differ.
+
+	* stmt.c (all_cases_count, case INTEGER_TYPE): Fix typo in checking
+	for integer bounds.
+
+Sat Jun 10 08:55:25 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* libgcc2.c (_floatdidf): Correctly set float sizes.
+
+	* c-decl.c (c_decode_option, case "-Wall"): Don't set extra_warnings.
+
+	* Makefile.in (cpplib.o, fix-header.o): Update dependencies.
+	(cpperror.o, cppexp.o, cpphash.o): New rules, to show .h dependencies.
+
+Fri Jun  9 18:06:10 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* cse.c (cse_basic_block): Fix test for whether block ends with a
+	barrier.  Return next insn, not 0, if block ends in a barrier.
+
+Fri Jun  9 17:58:29 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* fold-const.c (lshift_double): Replace `&' with `%' to fix typo.
+	([lr]shift_double): Truncate shift count only if SHIFT_COUNT_TRUNCATED.
+	Remove unnecessary `count >= prec' test.
+
+	* cexp.y (left_shift): Ignore integer overflow.
+
+	* cexp.y (skip_evaluation): New variable.
+	(&&, ||, ?:): Increment it in unevaluated subexpressions.
+	(/, %, integer_overflow): Suppress diagnostics if skip_evaluation != 0.
+	(yyerror): Clear skip_evaluation.
+
+Fri Jun  9 17:49:05 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
+
+	* m68k.md (tstdi): Rewrite.
+
+Fri Jun  9 17:28:55 1995  Per Bothner  <bothner@cygnus.com>
+
+	* scan-decls.c (scan_decls):  Handle declarations with
+	multiple comma-separated declarators.
+
+Thu Jun  8 19:16:12 1995  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* arm.md (mov[sd]f expands): Don't allow fp constants in pseudos
+	when TARGET_SOFT_FLOAT.
+
+Thu Jun  8 19:11:43 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* expmed.c (store_split_bit_field): When adjust arg in
+	BYTES_BIT_ENDIAN case, use number of bits in arg for MEM operands
+	and BITS_PER_WORD for other operands.
+	(extract_fixed_bit_field): Undo last change.
+
+	* unroll.c (verify_addresses): New function.
+	(find_splittable_givs): Use it instead of memory_address_p.
+
+Thu Jun  8 18:58:18 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
+
+	* expmed.c (expand_divmod): Always check result of emit_store_flag.
+
+Thu Jun  8 12:02:34 1995  David D Zuhn  (zoo@armadillo.com)
+
+	* cpplib.c (cpp_push_buffer): Include filename in error message.
+
+Thu Jun  8 11:53:45 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (assign_parms): Don't call promote_mode on arg
+	unless PROMOTE_FUNCTION_ARGS defined.
+
+	* rs6000.md (decrement_and_branch): Ensure label is operand 0.
+
+	* rs6000.md (aux_truncdfsf2): New pattern.
+	(movsf): Use it instead of invalid SUBREG and truncdfsf2.
+
+	* varasm.c (assemble_name): Disable warn_id_clash around
+	get_identifier call.
+
+Wed Jun  7 17:22:25 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* configure (gdb_needs_out_file_path): New variable.
+	(m68k-motorola-sysv): Set gdb_needs_out_file_path if not using gas.
+	(.gdbinit): If gdb_needs_out_file_path is set, add a 'dir' command
+	for $(out_file).
+
+Wed Jun  7 17:17:19 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
+
+	* fold-const.c (fold): When folding `<' type nodes, make true_value
+	and false_value have correct types.
+
+Wed Jun  7 05:06:42 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* collect2.c (COFF scan_prog_file): Use the AIX duplicate entry.
+
+Tue Jun  6 18:43:09 1995  Jeffrey A Law  (law@snake.cs.utah.edu)
+
+	* pa.h (FUNCTION_ARG_CALLEE_COPIES): Define.
+
+Tue Jun  6 18:21:18 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case PLACEHOLDER_EXPR): Consider two types
+	identical if their TYPE_MAIN_VARIANTs are the same.
+
+	* c-decl.c (start_decl): Set DECL_COMMON before calling
+	decl_attributes.
+
+	* a29k.c (print_operands): Cast args to bcopy to char *.
+
+	* c-decl.c (duplicate_decls): Don't clear DECL_CONTEXT of
+	new decl if it is a function.
+
+Tue Jun  6 17:57:44 1995  Eberhard Mattes  (mattes@azu.informatik.uni-stuttgart.de)
+
+	* gcc.c (do_spec_1, case 'g'): Handle %O as suffix if MKTEMP_EACH_FILE.
+
+Tue Jun  6 17:53:05 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.c (expand_block_move): Update source and destination pointers
+	inside the loop moving the bytes, not outside.
+
+Tue Jun  6 14:58:37 1995  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* m68k.h (CONDITIONAL_REGISTER_USAGE): Don't mark pic reg as fixed.
+	* m68k.c (finalize_pic): Emit USE insn at start and end of function.
+
+Tue Jun  6 13:46:57 1995  Jim Wilson  <wilson@mole.gnu.ai.mit.edu>
+
+	* sh.c (print_operand): Check for annulled branches.
+	(output_movedouble): Handle SUBREG addresses.
+	(output_branch): Handle annulled branches.
+	(sh_expand_prologue): Correct number of saved registers for
+	varargs functions.
+	* sh.h: Add some comments.
+	* sh.md: Add some comments.  Cleanup formatting.
+	(type attribute): Add pstore and call.
+	(return define_delay): Reorganize to make clearer.
+	(call/sfunc define_delay): Define.
+	(cbranch define_delay): Define to have annul-true delay slot.
+	(subsi3): Use arith_reg_operand for operand 2.
+	(shift patterns): Use const_int_operand instead of immediate_operand
+	for shift counts.
+	(push): Add pstore constraint case.
+	(movsi_i): Move t/z constraint pair to the front of the list.
+	(calli, call_valuei): Add "call" attribute.
+
+Mon Jun  5 19:23:13 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* sched.c (attach_deaths): In last change, use find_reg_note instead
+	of find_regno_note.
+
+Mon Jun  5 19:17:31 1995  Tom Quiggle  (quiggle@lovelace.engr.sgi.com)
+
+	* mips/iris5.h (MACHINE_TYPE): Say "IRIX 5.x", not "5.0".
+	(NO_DOLLAR_IN_LABEL): Undefine.
+	* mips.h (sdb_begin_function_line): New declaration.
+	(PUT_SDB_FUNCTION_END): New definition.
+
+Mon Jun  5 18:56:10 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.c (expand_block_move): Don't do block moves where we clobber
+	fixed numbers of regs, instead move just 1-8 bytes at a time.
+
+	* Makefile.in (STAGESTUFF): Copy files produced by -da and
+	-save-temps to the stage subdirectories.
+
+Mon Jun  5 08:18:46 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
+
+	* combine.c (reg_dead_at_p): When scanning backwards, stop at BARRIER.
+
+	* m68k.c (print_operand): Handle 'R' for registers.
+	* m68k.md (cmpdi): Rewrite to avoid bogus matching constraints.
+
+	* optabs.c (expand_binop): In last change, don't defererence TARGET
+	if it is 0.
+
+	* pa.md (movsicc): Use MATCH_DUP for operand 4 and 5.
+
+Mon Jun  5 08:14:56 1995  Jeffrey A Law  (law@cs.utah.edu)
+
+	* pa.c (hppa_encode_label): Allocate stuff on permanent_obstack
+	rather than via malloc.
+
+	* c-common.c (decl_attributes): Fix typo in size passed to alloca.
+
+Mon Jun  5 08:10:55 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.md: Use "some_operand" for patterns valid only during
+	reload and meant to handle adding more PLUS operators during
+	register elimination.
+
+Mon Jun  5 07:31:53 1995  Stephen L Moshier  (moshier@world.std.com)
+
+	* cse.c (simplify_unary_operation, case FLOAT, UNSIGNED_FLOAT):
+	Truncate to requested mode.
+
+Sat Jun  3 22:08:51 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* sched.c (attach_deaths): Don't add a REG_DEAD note if a REG_UNUSED
+	note is already present.
+
+Sat Jun  3 18:36:57 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* pa.h (hppa_builtin_saveregs): Add declaration.
+
+Sat Jun  3 18:11:26 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* Makefile.in (scan-decls.o):  Depends on cpplib.h.
+
+Fri Jun  2 19:23:47 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* optabs.c (expand_binop): Don't use non-REG TARGET in 2-word case.
+
+Thu Jun  1 19:30:30 1995  Tor Egge  (tegge@flipper.pvv.unit.no)
+
+	* m88k.h (RETURN_POPS_ARGS): New argument.
+	* m88k/dolphin.ld: Added start of comment.
+
+Thu Jun  1 19:12:28 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure (a29k-*-bsd*): Fix typo in last change.
+
+Thu Jun  1 18:51:53 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* expmed.c (extract_fixed_bit_field): For REG case, compute total_bits
+	from mode instead of assuming BITS_PER_WORD.
+
+Thu Jun  1 18:34:31 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.h (FIXED_R13): Default to 0.
+	({FIXED,CALL_USED}_REGISTERS): Use FIXED_R13 for register 13.
+	* sysv4.h (FIXED_R13): Define to be 1.
+
+Wed May 31 20:57:26 1995  Torbjorn Granlund  <tege@matematik.su.se>
+
+	* m68k.md ([su]mulsi3_highpart): Pass correct number of arguments to
+	const_uint32_operand.
+	* m68k.c (const_uint32_operand): Reject negative numbers.
+
+	* expmed.c (expand_mult_highpart): Use wide_op1 for all multiplies.
+	(expand_divmod): Undo Nov 12 change.  Instead, add special case
+	for division by MIN_INT in signed TRUNC_DIV_EXPR case.
+
+Wed May 31 20:44:21 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k.md (one_cmpldi2): New pattern.
+	({a,l}shrdi{3,_const}): Allow 63 as shift count.
+
+Wed May 31 14:56:31 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* varasm.c (assemble_start_function, assemble_variable):
+	Make sure first_global_object_name is in permanent obstack.
+
+	* reload1.c (alter_reg): Clean up setting of RTX_UNCHANGING_P
+	when making a MEM.
+
+	* reorg.c (struct resources): New field unch_memory.
+	(CLEAR_RESOURCES, mark_target_live_regs, dbr_schedule): Clear it.
+	(mark_{referenced,set}_resources, redundant_insn): Set it.
+	(fill_simple_delay_slots): Likewise.
+	(resource_conflicts_p): Test it.
+
+	* unroll.c (copy_loop_body): Fix typo in call to sets_cc0_p.
+
+	* integrate.c (output_inline_function): Don't call expand_function_end.
+
+	* calls.c (prepare_call_address): Only call use_reg on
+	static_chain_rtx if it is a REG.
+
+	* configure (a29k-*-bsd*): Use t-a29k.
+	* t-a29k: New file.
+	* a29k/t-a29kbare (LIBGCC1_TEST): New null definition.
+	* a29k/t-vx29k (LIBGCC1_TEST): Likewise.
+
+Wed May 31 14:17:42 1995  Jeffrey A Law  (law@snake.cs.utah.edu)
+
+	* configure (hppa*-*-bsd*): Do not run fixincludes.
+	(hppa*-*-osf*): Likewise.
+	(hppa*-*-lites*): Likewise.
+
+	* pa.h (PRINT_OPERAND_ADDRESS): Use "RR'" rather than "R'" for
+	symbolic addresses.
+	* pa.md (symbolic HIGH patterns): Likewise.
+	(symbolic LO_SUM pattern): Likewise.
+
+Wed May 31 14:11:53 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.md (all movstri recognizers): Eliminate updating the pointers.
+	* rs6000.c (expand_block_move): Don't pass argument of # bytes to
+	increment pointers by to movstrsi expanders.
+
+	* rs6000.c (rs6000_override_options): Fix typo with -mstring handling.
+
+	* rs6000.h (TARGET_SWITCHES): Set MASK_STRING_SET explicitly
+	if -mno-string, so that it can override the processor default.
+
+Wed May 31 07:31:53 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* c-common.c (truthvalue_conversion, BIT_AND_EXPR): Make sure that
+	the result has boolean_type_node.
+
+Tue May 30 19:03:21 1995  J.T. Conklin  <jtc@cygnus.com>
+
+	* stddef.h: Undefine _BSD_XXX_T_ if _GCC_XXX_T is defined on BSD
+	Net/2 derived systems.
+
+Tue May 30 08:17:37 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k.md (decrement_and_branch_until_zero): Operand 0 constraint
+	changed from "+g" to "+d*am".
+	(similar anonymous HImode pattern): Likewise.
+
+	* m68k.md (tstdi): Use tst/subx #0 instead of neg/negx.
+	Allow "a" and ">" for operand 0.
+
+Mon May 29 19:24:43 1995  Niklas Hallqvist  (niklas@appli.se)
+
+	* m68k.md (addsi_lshrsi_31): Use match_dup, not constraint "1",
+	for matching inputs.
+
+Mon May 29 12:39:58 1995  Allen Briggs <briggs@rrinc.com>
+
+	* i386/isc.h ({STARTFILE,LIB,CPP}_SPEC): Handle -Xp like -posix.
+	* i386/x-isc3 (X_CFLAGS): Add -Xp.
+
+Mon May 29 12:28:41 1995  J.T. Conklin  (jtc@cygnus.com)
+
+	* configure (sparc-*-netbsd): Add missing asterisk at end.
+
+Mon May 29 08:55:48 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (recog_for_combine): New parm PADDED_SCRATCHES; set it.
+	(try_combine): Accumulate number of scratches and update max_scratch.
+	(simplify_set): Add extra parm to recog_for_combine.
+
+	* romp.md (call): Put USE for r0 in CALL_INSN; call call_internal
+	to emit insn.
+	(call_internal): New name for anonymous call.
+	(call_value, call_value_internal): Likewise.
+
+	* winnt/xm-winnt.h: Protect most definitions with #ifndef.
+	* alpha/xm-winnt.h: Include alpha/xm-alpha.h, then winnt/xm-winnt.h.
+	(POSIX): Undefine.
+	* xm-alpha.h: Don't include alloca.h for winnt.
+
+Sun May 28 18:34:01 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure: Make sed commands more uniform.
+
+	* Makefile.in: Properly use $(srcdir) for files that have it
+	in their reference as a target of a rule.
+	(libgcc1.a): Add missing RANLIB_TEST use.
+
+	* stmt.c (expand_computed_goto): Call do_pending_stack_adjust.
+
+Sun May 28 18:08:41 1995  Torbjorn Granlund  <tege@mole.gnu.ai.mit.edu>
+
+	* m68k.md (divmodhi4, udivmodhi4): Use "dmsK" for operand 2.
+
+Fri May 26 17:01:22 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* fixincludes: Fix bogus recursive <stdlib.h> in NEWS-OS 4.0C.
+
+Fri May 26 08:02:14 1995  Michael Meissner  (meissner@cygnus.com)
+
+	* c-typeck.c (initializer_constant_valid_p): For the CONSTRUCTOR
+	case, if the type is a record, recurse, just like for unions.
+
+Thu May 25 07:56:14 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* fixincludes: Add `sel', `tahoe', `r3000', `r4000' to the
+	list of pre-ANSI symbols that need to be surrounded with __ __.
+	Allow white space between `#' and `if' when looking for lines to patch.
+
+	* objc/sarray.h (PRECOMPUTE_SELECTORS, struct soffset):
+	Use #ifdef __sparc__, not sparc.
+
+	* m68k.md (addsi_lshrsi_31, ashldi_const, ashrdi_const, lshrdi_const):
+	Replace `mov' with `move'.
+
+Thu May 25 07:35:37 1995  Allen Briggs  <briggs@rrinc.com>
+
+	* libgcc2.c (L_eh, i386): Remove in-line comments in assembly
+	code--the '#' character is not valid for the SYSV as.
+
+Thu May 25 07:28:54 1995  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* Makefile.in (BC_ALL): Restore it from May 22 change; vms uses it.
+	(STAGESTUFF): Use it.
+
+Thu May 25 07:11:56 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (alpha_emit_set_const): Don't call expand_binop for
+	other than add if SImode and can't create pseudos.
+
+Wed May 24 21:38:24 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* sched.c (reemit_notes): New function.
+	(schedule_block): Call reemit_notes twice.  Reorganize code for
+	handling SCHED_GROUP_P insns, so that reemit_notes works.
+
+	* sh/sh.c (shiftcosts, genshifty_op): Add SH3 support.
+	* sh/sh.md (ashlsi3, lshrsi3): Add SH3 support.
+	(ashlsi3_d, ashrsi3_d, lshrsi3_d): New patterns for SH3.
+	(ashrsi2_31): Remove r/!r constraint.
+
+Wed May 24 17:00:47 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* tree.c (type_list_equal): Call simple_cst_equal before checking
+        types.
+
+Wed May 24 16:49:49 1995  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* Makefile.in (libgcc2.a): Handle case of separate srcdir.
+
+Wed May 24 16:22:01 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* configure: Define $(MAKE) if `make' doesn't.
+
+Wed May 24 15:50:51 1995  Doug Evans  <dje@cygnus.com>
+
+	* dsp16xx.h (CROSS_LINK_SPEC): ENDFILE_SPEC moved to -nostartfiles.
+	* i386/freebsd.h (LINK_SPEC): Don't pass "-e start" if nostartfiles
+	rather than nostdlib.
+	* i386/sun.h (LINK_SPEC): Likewise.
+	* m68k/sun2o4.h (LINK_SPEC): Likewise.
+	* m68k/sun3.h (LINK_SPEC): Likewise.
+	* m68k/vxm68k.h (LINK_SPEC): Likewise.
+	* mips/netbsd.h (LINK_SPEC): Likewise.
+	* config/netbsd.h (LINK_SPEC): Likewise.
+	* rs6000/mach.h (LINK_SPEC): Likewise.
+	* sparc.h (LINK_SPEC): Likewise.
+	* sparc/vxsparc.h (LINK_SPEC): Likewise.
+
+	* m88k/m88k.h (FUNCTION_ARG_BOUNDARY): Use GET_MODE_BITSIZE.
+
+Wed May 24 15:44:04 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* fold-const.c (fold): Make sure that a folded TRUTH_NOT_EXPR
+        retains the same type.
+
+	* c-common.c (truthvalue_conversion): Also accept TRUTH_NOT_EXPR.
+
+Wed May 24 15:41:51 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cplus-dem.c (strstr, strncmp, strlen): Remove declarations.
+
+	* tree.c (type_list_equal, simple_cst_list_equal, index_type_equal):
+	Check for simple_cst_equal return value of -1.
+
+Wed May 24 10:05:24 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* libgcc1-test.c (start, _start): Provide declarations, so that
+	the GNU linker doesn't give a warning message about defaulting the
+	start address.
+
+	* rs6000/sysv4.h (STRIP_NAME_ENCODING): Redefine back to the
+	original defination, rather than the defination used in rs6000.h.
+	(ASM_OUTPUT_SOURCE_LINE): Use STRIP_NAME_ENCODING.
+	* rs6000.h (STRIP_NAME_ENCODING): Skip leading '*'.
+
+	* rs6000.h (MASK_STRING_SET, TARGET_STRING_SET): Add target
+	flags bit for whether -mstring was actually used.
+	(TARGET_SWITCHES): Add MASK_STRING to all power targets.  Set
+	MASK_STRING_SET for -mstring and -mno-string.
+	(TARGET_DEFAULT): Add MASK_STRING.
+
+	* rs6000.c (rs6000_override_options): Add MASK_STRING to
+	all power targets.  Make an explicit -mstring/-mno-string override
+	the -mcpu=processor default.
+
+	* rs6000/eabile.h (CPP_SPEC): Copy from sysvle.h to provide the
+	appropriate little endian defaults.
+
+	* rs6000/sysv4.h (ASM_OUTPUT_SOURCE_LINE): Use assemble_name to
+	output the canonical name.
+
+Wed May 24 01:21:15 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* rs6000.h (STRIP_NAME_ENCODING): Define.
+	(RS6000_OUTPUT_BASENAME): Use it.
+
+Tue May 23 19:54:21 1995  Doug Evans  <dje@cygnus.com>
+
+	* gcc.c (link_command_spec): Move ENDFILE_SPEC from -nostdlib
+	to -nostartfiles.
+
+Tue May 23 17:01:50 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* alpha.md (negsi2-2): Change output pattern to #.
+
+	* mips.c (embedded_pic_offset): Output RTL to initialize
+	embedded_pic_fnaddr_rtx.
+	(mips_finalize_pic): Delete.
+	* mips.h (mips_finalize_pic): Delete declaration.
+	(FINALIZE_PIC): Delete.
+	(INIT_EXPANDERS): Clear embedded_pic_fnaddr_rtx.
+	* mips.md (get_fnaddr): Add = to output contraint.
+
+	* sh.c (shift_amounts): Correct entry for shifts by 29.
+	* sh.md (sett): New pattern.
+	(movsi_i): Change source constraint for move to T reg to be 'z'.
+
+	* mips/ecoff.h (STARTFILE_SPEC): Define to null string.
+	* mips/elfl.h, mips/elfl64.h: Correct typo in comment.
+
+	* mips/elflorion.h, mips/elforion.h (MIPS_CPU_DEFAULT): Delete.
+	* mips.c (override_options): Delete #ifdef MIPS_CPU_DEFAULT code.
+	Add #ifdef MIPS_CPU_DEFAULT_STRING code before the first
+	mips_cpu_string test.
+
+Tue May 23 07:22:36 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* romp.c (hash_rtx): Avoid warning on int-to-pointer conversion.
+	(output_fpops): Cast args to bcopy to char *.
+
+	* cpplib.c (initialize_builtins): Add missing parm to timestamp call.
+
+	* Makefile.in (install-libobjc): Don't depend on libobjc.a.
+
+	* c-parse.in: Objc shift/reduce conflicts now 48.
+	(parm): Use setspecs/restore here.
+	(parmlist_or_identifiers): Not here.
+
+Mon May 22 19:30:30 1995  Doug Evans  <dje@cygnus.com>
+
+	* h8300.md (movsf_h8300h): Add missing post-inc case to constraints.
+
+Mon May 22 14:38:36 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.c (rs6000_override_options): Do SUBTARGET_OVERRIDE_OPTIONS
+	here.
+	* rs6000.h (OVERRIDE_OPTIONS): Not here.
+
+	* rs6000.c (expand_block_move): Handle moves without string
+	instructions by generating a series of loads and stores.
+	(output_prolog): Support -mno-toc on V.4 and eabi systems.
+
+	* rs6000/sysv4.h (TARGET_SWITCHES): Add -mtoc and -mno-toc.
+	(SUBTARGET_OVERRIDE_OPTIONS): Add some warnings for incompatible
+	switches.
+	(TOC_SECTION_FUNCTION): Make -mno-toc like -mrelocatable in that
+	we don't put the minimal toc pointer in the global toc section.
+	(LINK_SPEC): Use -oformat to set link output format, not -m.
+
+	* rs6000/t-eabigas (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Build
+	libgcc.a variants with -mno-toc support.
+	* rs6000/t-ppcgas (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Ditto.
+
+Mon May 22 07:10:52 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cplus-dem.c (mystrstr): Replacement for strstr.
+
+	* configure: Split up long sed command.
+	* Makefile.in (SYMLINK): Deleted; unused.
+	(oldobjext): Deleted; no longer used.
+	(FLAGS_TO_PASS): Include objext and exeext.
+	(STAGESTUFF, protoize.o, unprotoize.o): Use $(objext), not .o.
+	(test_protoize_simple, compare{,3}, gnucompare{,3}): Likewise.
+	(STAGESTUFF, specs, gcc-cross, collect2): Add missing $(exeext).
+	(libgcc1.null, libgcc[12].a, stage[1-4]): Likewise.
+	(xgcc, cc1, cc1obj, enquire): Use $@ instead of filename for -o value.
+	(collect2, mips-tfile, mips-tdump, gen*): Likewise.
+	(bi-arity, bi-opcode, bi-opname, cccp, cppmain): Likewise.
+	(protoize, unprotoize, gen-protos, fix-header): Likewise.
+	(crtbegin.o, crtend.o): Don't use -o; move output to proper
+	filename (using objext) instead.
+	(BI_ALL, BC_ALL, bytecode): Deleted; unused.
+	(bi-*.o, cexp.o, stamp-{proto,fixinc}): Remove unneeded $(srcdir).
+	(getopt{,1}.o, SYSCALLS.c.X): Likewise.
+	(install-driver): New target.
+	(install-normal): Depend on it.
+	(install-common): Don't depend on xgcc.
+	(maketest): Deleted; no longer used.
+	(stage[1-4]): Use name collect-ld, not real-ld.
+	(risky-stage[1-4]): Use stage[1-4] as dependencies; don't copy.
+	* alpha/config-nt.bat, i386/config-nt.bat: Make {,h,t}config.h
+	and tm.h by writing a single #include line.
+	Update way specs.h and options.h are written.
+	* alpha/config-nt.sed, i386/config-nt.sed: Set new variables
+	into Makefile.
+	Build winnt.obj.
+	Edit CCCP definition.
+	* alpha/x-winnt, i386/x-winnt (oldobjext): Deleted.
+	Add rules for .c.obj, .adb.obj, and .ads.obj.
+	(LIB2FUNCS_EXTRA, spawnv.o): New rules.
+	* i386/x-winnt (objext): Now .obj, not .o.
+
+	* gcc.c (HAVE_OBJECT_SUFFIX): New macro.
+	(process_command): Convert x.o to x.foo for OBJECT_SUFFIX of ".foo".
+	(do_spec_1): Avoid shadow variable "i" and always use for loop var.
+
+	* c-decl.c (finish_decl_top_level): Removed; no longer used.
+	* objc-act.c: Numerous formatting changes.
+	(NULLT): Deleted; all uses changed to NULL_TREE.
+	(get_{static,object}_reference, objc_add_static_instance):
+	Use push_obstacks instead of saving obstacks manually.
+	(build_{selector,class}_reference_decl): Likewise.
+	(build_objc_string_decl, build_protocol_reference): Likewise.
+	(comp_{method,proto}_with_proto): Likewise.
+	(create_builtin_decl, synth_module_prologue): Set DECL_ARTIFICIAL
+	for internal objects.
+	(build_{selector,class}_reference_decl, add_objc_decls): Likewise.
+	(generate_objc_symtab_decl, build_module_descriptor): Likewise.
+	(build_protocol_reference): Likewise.
+	(build_objc_string_decl, synch_forward_declarations): Likewise.
+	Delete call to end_temporary_allocation.
+	(generate_static_references, generate_strings): Likewise.
+	(build_selector_translation_table, generate_category): Likewise.
+	(generate_{ivars,protocol}_list, build_protocol_reference): Likewise.
+	(build_objc_string_object): If next_runtime, put everything in
+	permanent obstack.
+	(objc_add_static_instance): Use build_decl instead of start_decl
+	and finish_decl_top_level.
+	(build_{class_reference,objc_string}_decl): Clear DECL_CONTEXT.
+	(start_class): Exit with FATAL_EXIT_CODE, not 1.
+	(add_objc_decls): Don't set DECL_IN_SYSTEM_HEADER.
+
+	* tree.c (valid_machine_attribute): Handle attribute on
+	pointer-to-function types.
+
+Sun May 21 17:16:37 1995  J. T. Conklin <jtc@cygnus.com>
+
+	* mips/netbsd.h (HAVE_STRERROR): Remove.
+	* mips/xm-netbsd.h: New file.
+	* mips/t-mips-netbsd: Deleted.
+	* configure (mips-dec-netbsd): Use xm-netbsd.h and t-libc-ok.
+
+Sun May 21 17:16:37 1995  Arne H. Juul  (arnej@pvv.unit.no)
+
+	* mips/netbsd.h: Use __start as entry point. Ifdef some
+	paths on CROSS_COMPILE.
+
+Sun May 21 08:39:26 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-parse.in (datadef, fndef, ivar_decl, mydecls):
+	Restore declspec_stack since setspecs is used.
+	(parmlist_or_identifiers): Use setspecs before parsing parms
+	and restore after parsing parms.
+
+Sun May 21 01:04:52 1995  Jeffrey A. Law  <law@snake.cs.utah.edu>
+
+	* pa.c (hppa_encode_label): New variable "permanent" to
+	where/how memory is allocated for the new label.  All
+	callers changed.
+
+Sat May 20 16:53:30 1995  Mike Meissner  <meissner@cygnus.com>
+
+	* rs6000.md (insv, extz): Fail if the structure is QI or HI reg to
+	avoid paradoxical subreg's being created in RTL phase, which uses
+	SImode to load from memory if  structure is later moved to stack.
+
+Sat May 20 06:44:59 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k.md (udivmodhi4): Output "divu" instead of "divs".
+
+Sat May 20 06:11:32 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload.c (push_reload): Don't reload inside a SUBREG
+	when SUBREG_WORD is nonzero.
+
+	* c-decl.c (shadow_tag_warned): Don't warn about useless keyword
+	if in system header file.
+
+	* tree.c (simple_cst_equal): Don't look at language-specific
+	nodes since we don't know what's in them.
+
+	* cpperror.c: #include config.h before any other .h file.
+	* collect2.c: Likewise.
+
+	* i386/config-nt.bat: Add missing ^M on two lines.
+	Add case for Fortran; fix typo in Ada case.
+	* alpha/config-nt.bat: Add case for Fortran; fix typo in Ada case.
+
+	* m68k/t-next (LIBGCC1, CROSS_LIBGCC1): Make not, not "libgcc1.null".
+	(OTHER_FIXINCLUDES_DIRS, LIMITS_H_TEST): Delete from here.
+	* m68k/x-next (OTHER_FIXINCLUDES_DIR, LIMITS_H_TEST): Move to here.
+
+Fri May 19 19:30:20 1995  Stan Cox  (gcc@dg-rtp.dg.com)
+
+      * crtstuff.c: Added reference to INIT_SECTION_PREAMBLE for systems that
+      do something which must be undone prior to __do_global_ctors.
+
+Fri May 19 19:27:08 1995  Alan Modra  <alan@SPRI.Levels.UniSA.Edu.Au>
+
+	* i386/linux-aout.h (CPP_SPEC): Add defines for -fPIC.
+	* i386/linux-oldld.h (CPP_SPEC): Likewise.
+
+Fri May 19 17:46:28 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* collect2.c (strstr): Deleted.
+	* cplus-dem.c (strstr): Define ifndef POSIX.
+
+Fri May 19 11:16:51 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* cpplib.c (collect_expansion):  Don't escape '@' inside string.
+
+Fri May 19 06:59:21 1995  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* vmsconfig.com (process_objc_lib, configure_makefile): New routines.
+	(bc_all.list, ./vax.md, objc-objs.opt, objc-hdrs.list): New files
+	created at config time.
+	(bc_all.opt, ./md.): No longer created.
+	* make-cc1.com: Handle revised filenames from vmsconfig.com;
+	(DO_OBJCLIB): New variable, plus code to compile objc/*.{c,m}.
+
+Wed May 17 16:15:31 1995  Torbjorn Granlund  <tege@cygnus.com>
+
+	* i960.c (i960_output_ldconst): New code for XFmode.
+	Also, move SFmode code to immediately after DFmode code.
+	(S_MODES, D_MODES): Handle XFmode.
+	(XF_MODES): Was TF_MODES, handle XFmode instead of TFmode.
+	(hard_regno_mode_ok): Replace TFmode with XFmode.
+	(i960_output_long_double): New function.
+
+	* i960.h (DATA_ALIGNMENT): Define.
+	(ROUND_TYPE_ALIGN): Align XFmode scalars at 128 bit boundaries.
+	(ROUND_TYPE_SIZE): Round up the size of XFmode objects to 128 bits.
+	(CONST_DOUBLE_OK_FOR_LETTER_P): Use CONST0_RTX and CONST1_RTX
+	so that all FP modes are recognized.
+	(ASM_OUTPUT_LONG_DOUBLE): Define.
+
+	* i960.md: Change all TFmode patterns to have XFmode.
+	(movxf recognizer, frame version): Use movt, ldt, and stt.
+	(movxf recognizer, non-frame version): Delete.
+	(extenddfxf2): Delete * before f constraint.
+	(extendsfxf2): Likewise.
+
+Wed May 17 17:53:35 1995  Jim Wilson  <wilson@mole.gnu.ai.mit.edu>
+
+	* unroll.c (unroll_loop): Increment copy_start_luid if copy_start
+	is loop_start.
+
+Wed May 17 17:44:57 1995  Lee Iverson  <leei@Canada.AI.SRI.COM>
+
+	* fold-const.c (invert_truthvalue, case CLEANUP_POINT_EXPR): New case.
+
+Tue May 16 18:51:16 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/rs6000.h (TARGET_SWITCHES): Add -mstring to enable string
+	instructions, and -mno-string to disable them.
+	(MOVE_MAX): Don't test TARGET_MULTIPLE anymore.
+	(MAX_MOVE_MAX): Set to 8, not 16.
+	(expand_block_move): Add declaration.
+
+	* rs6000/rs6000.c (expand_block_move): New function to expand
+	block moves when -mstring is used.
+
+	* rs6000/rs6000.md (movti): Use TARGET_STRING, not TARGET_MULTIPLE.
+	(load_multiple, store_multiple): Ditto.
+	(string insns): Add 8, 6, 4, 2, and 1 register variants for using
+	the native string instructions if -mstring.
+
+	* rs6000/sysv4.h (CPP_SPEC): If little endian, define
+	_LITTLE_ENDIAN and set littleendian assertion.  If big endian,
+	define _BIG_ENDIAN and set bigendian assertion.
+	* rs6000/sysv4le.h (CPP_SPEC): Copy from sysv4.h, and change
+	default to little endian.
+
+	* rs6000/rs6000.c (override_options): Check for -mmultiple and
+	-mstring on little endian systems here.
+	* rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't do the check
+	here.
+
+Tue May 16 18:36:41 1995  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* alpha.c: Changed WINNT to _WIN32.
+	* alpha/config-nt.bat, i386/config-nt.bat: Added commands to
+	generate specs.h and options.h.
+	* i386/config-nt.sed: Changed link32 to link.
+	* winnt/ld.c (main): Removed call to free.
+	* configure.bat: Added line to echo usage on invalid input.
+	* gcc.c (fix_argv): Removed call to free.
+	* gcc.c, getpwd.c, protoize.c, sdbout.c: Changed WINNT to _WIN32.
+	* toplev.c: Likewise.
+
+Tue May 16 18:04:47 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* toplev.c (pfatal_with_name, fatal_io_error, vfatal):
+	Use FATAL_EXIT_CODE instead of magic number.
+	* cccp.c, cpplib.c, cpplib.h: Use FATAL_EXIT_CODE instead
+	of FAILURE_EXIT_CODE.
+	* fix-header.c, gen-protos.c: Likewise.
+	* cpperror.c, cppmain.c: Likewise.
+	Include config.h #ifndef EMACS.
+	* xm-alpha.h, xm-rs6000.h, xm-vms.h (FAILURE_EXIT_CODE): Remove.
+
+Tue May 16 17:46:57 1995  Adam Fedor  <fedor@colorado.edu>
+
+	* objc/archive.c (__objc_write_class): Write class version.
+	(__objc_write_selector, objc_{write,read}_selector): Handle null
+	selector.
+
+        * objc/sarray.h (struct sarray): Make capacity size_t.
+        * objc/sarray.c (sarray_realloc): Make array index variables size_t.
+
+Tue May 16 06:59:08 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* dsp16xx.c (print_operand_address): Fix misspellings in messages.
+	* i370/mvs.h (FUNCTION_PROFILER): Likewise.
+	* mips-tdump.c (type_to_string): Likewise.
+	* print-tree.c (print_node): Likewise.
+
+	* protoize.c (edit_fn_definition): Fix mispelled local `have_flotsam'.
+
+	* objc/sendmsg.c (__objc_init_install_dtable): Fix misspelling
+	in name of local label `already_initialized'.
+
+	* winnt/winnt.h (STDC_VALUE): Was misspelled.
+
+	* m68k/ccur-GAS.h (FUNCTION_BOUNDARY): Was misspelled.
+
+	* 1750a.h (DEFAULT_PCC_STRUCT_RETURN): Was misspelled.
+
+Mon May 15 23:41:25 1995  Jeffrey A. Law  <law@snake.cs.utah.edu>
+
+	* pa.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Make sure to encode section
+	info for all libcalls.
+
+Mon May 15 20:58:00 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* collect2.c (strstr): Define ifndef POSIX.
+
+	* defaults.h (SUPPORTS_WEAK): Provide default.
+	* aoutos.h, sparc/sunos4.h: Don't support weak symbols.
+	* netbsd.h, svr4.h, i386/freebsd.h, i386/osfrose.h,
+        m88k/m88k.h: Define ASM_WEAKEN_LABEL instead of WEAK_ASM_OP.
+	* c-pragma.h: Check ASM_WEAKEN_LABEL instead of WEAK_ASM_OP.
+        HANDLE_PRAGMA_WEAK is never defined in a tm.h file.
+	* c-decl.c (duplicate_decls): Propagate DECL_WEAK.
+	* tree.h (DECL_WEAK): New macro.
+	(tree_decl): Add weak_flag.
+	* varasm.c (assemble_start_function): Declare the symbol weak if
+	appropriate.
+	(assemble_variable): Ditto.
+	(assemble_alias): Ditto.  Mark the decl as written.
+	(declare_weak): Check for weak declaration after definition.
+	Set DECL_WEAK.
+	(weak_finish): Use ASM_WEAKEN_LABEL.
+	* libgcc2.c: The C++ free-store management functions are weak
+        aliases on targets that always support them.
+
+Mon May 15 19:01:43 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure (out_object_file): New variable; put value in Makefile.
+	* Makefile.in (out_object_file): Use in place of aux-output.o.
+
+	* fold-const.c (const_binop): Don't pass OVERFLOW to force_fit_type
+	if type is unsigned.
+
+Mon May 15 18:48:26 1995  Paul Eggert <eggert@twinsun.com>
+
+        * install.sh (transformbasename): Fix misspelling.
+
+	* tahoe.h (CHECK_FLOAT_VALUE): Fix misspelling of OVERFLOW parameter.
+
+	* i386.h (VALID_MACHINE_{DECL,TYPE_ATTRIBUTE): Fix typo.
+
+	* fx80.h (CHECK_FLOAT_VALUE): Fix misspelled use of parameter.
+
+	* a29k.c (spec_reg_operand): Fix misspelling of `default:'.
+
+Mon May 15 18:36:41 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k.md (b{eq,ne,ge,lt}0_di): Fixed for non-MOTOROLA syntax.
+	* m68k/xm-mot3300.h (alloca): Extern decl added for non-GNU compiler.
+
+Mon May 15 13:14:29 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* cppexp.c (cpp_reader):  Test for '#' (start of assertion) *after*
+	skipping hspace, not before.
+
+Mon May 15 08:13:54 1995  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* vmsconfig.com: Construct options.h and specs.h to #include
+	all "*/lang-{options|specs}.h" files found.
+
+Sun May 14 21:32:49 1995  Doug Evans  <dje@cygnus.com>
+
+	* alpha/alpha.md (movsicc, case NE): Don't generate unrecognizable
+	insn.
+	(movdicc, case NE): Likewise.
+
+Sun May 14 15:44:54 1995  Jim Wilson  <wilson@mole.gnu.ai.mit.edu>
+
+	* unroll.c (unroll_loop): Make local_regno have size
+	max_reg_before_loop.  Don't do local register optimization if
+	copy_end has no INSN_LUID.
+
+Sun May 14 10:38:23 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* objc-act.c (start_method_def): Mark _self as possibly unused.
+
+	* configure: Create specs.h and options.h from */lang-specs.h
+	and */lang-options.h.
+	Set lang_specs_files and lang_options_file variables in Makefile.
+	* Makefile.in (lang_{specs,options}_files): New variables.
+	(gcc.o): Depends on $(lang_specs_files).
+	(toplev.o): Depends on $(lang_options_file); merge two dep lists.
+	(distclean): Remove spes.h and options.
+	* gcc.c (default_compilers): Remove entries for Ada, C++, Chill,
+	and Fortran; #include specs.h instead.
+	* toplev.c (lang_options): Remove entries for Ada, C++, and Fortran;
+	include options.h instead.
+
+Sat May 13 23:11:21 1995  DJ Delorie  <dj@delorie.com>
+
+	* configure (i[345]86-go32-msdos, i[345]86-*-go32): New targets.
+
+Sat May 13 10:58:38 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* loop.c (record_giv): When computing replaceable, use
+	back_branch_in_range_p instead of looking for branches to named
+	labels.
+	* loop.h (back_branch_in_range_p): Declare.
+	* unroll.c (back_branch_in_range_p): No longer static.
+
+Sat May 13 06:47:11 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (simplify_shift_count, case LSHIFTRT): Don't merge
+	shifts of different modes if first is any right shift.
+
+Sat May 13 05:39:09 1995  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+	* configure (arm-semi-aout): New configuration.
+	* config.sub: Add support for semi-hosted ARM.
+	* arm/t-semi, arm/semi.h: New files.
+
+Fri May 12 21:51:22 1995  Doug Evans  <dje@cygnus.com>
+
+	* flow.c (find_basic_blocks): Only perform n_basic_blocks sanity
+	check on first pass, and on second pass ensure it has the correct
+	value.
+
+Fri May 12 19:23:11 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* c-typeck.c (build_binary_op): Warn when ~unsigned is compared
+	against unsigned, and type promotions result in an unexpected
+	answer.
+
+Fri May 12 19:10:21 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* configure (*-*-gnu*): Always use ELF; set tm_file=${cpu_type}/gnu.h.
+	* config/i386/gnu.h: Contents replaced with old i386/gnuelf.h.
+	* config/i386/gnuelf.h: File removed.
+
+Fri May 12 17:29:57 1995  Ken Raeburn  (raeburn@cygnus.com)
+
+	* m68k/lb1sf68.asm (__IMMEDIATE_PREFIX__): Default to #.
+	(IMM): New macro.
+	(all code): Use IMM macro instead of hardcoding # for immediate
+	operands.
+
+Fri May 12 16:52:10 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k.c (output_scc_di): New function.
+	(extend_operator) : Allow DImode target.
+	* m68k.h (HARD_REGNO_MODE_OK): Don't allow d7/a0 as DImode reg pair.
+	* m68k.md (tstdi, cmpdi, addsi_lshrsi_31, ashldi_extsi): New patterns.
+	(extendqidi2, extendhidi2, extendsidi2): Allow "general_operand"
+	instead of "register_operand" 0.
+	(adddid_sexthishl32, subdid_sexthishl32, subdi_dishl32): Likewise.
+	(adddi_dilshr32): Operand 0 constraint changed from "ro" to "do";
+	Code generation fixed.
+	(adddi_mem, subdi_mem): Fixed for "<" and ">" operand 0.
+	(adddi3, subdi3): Operand 2 constraint changed from "ao" to "*ao"
+	(ashldi_sexthi, ashrdi_const32): Allow only "register_operand"
+	instead of "general_operand" 0.
+	(ash[lr]di_const, ash[lr]di3): Allow also 8 and 16 as shift count.
+	(subreg1ashrdi_const32): Pattern deleted.
+	(subreghi1ashrdi_const32, subregsi1ashrdi_const32): New pattern.
+	(lshrsi_31): New implementation.
+	(scc0_di, scc_di, beq0_di, bne0_di, bge0_di, blt0_di): New patterns.
+
+Fri May 12 16:50:49 1995  Jeffrey A. Law  <law@mole.gnu.ai.mit.edu>
+
+	* pa.md (bb patterns): Fix bugs in length computation exposed by
+	recent branch shortening and genattrtab changes.
+
+Fri May 12 16:22:27 1995  Ken Raeburn  <raeburn@cygnus.com>
+
+	* cccp.c (enum node_type): Add T_IMMEDIATE_PREFIX_TYPE.
+	(special_symbol): Handle it; emit value of IMMEDIATE_PREFIX.
+	(IMMEDIATE_PREFIX): Default to empty string.
+	(initialize_builtins): Install __IMMEDIATE_PREFIX__ builtin,
+	parallel to __REGISTER_PREFIX__.
+
+Fri May 12 14:40:03 1995  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* cccp.c: #if VMS, don't define `stat' macro to be VMS_stat.
+	Compare enums explicitly to 0 to work around VAX C bug.
+	(do_include): Cast alloca's value.
+
+	* make-cc1.com (bc_loop): Process comma-separated list rather
+	than space-separated one; restore .h suffix stripped by vmsconfig;
+	(loop1): More robust handling of directory prefix on file names.
+	* vmsconfig.com (TPU makefile.in): Reorganize and reformat code.
+	Make generated .opt files have more consistent format (all comma
+	separated, excess whitespace eliminated);
+	(additional_compiler): New routine.
+	(process_makefile): Use it to handle cc1plus via cp/Make-lang.in.
+
+Fri May 12 13:35:07 1995  Doug Evans  <dje@cygnus.com>
+
+	* arm.h: Replace ARM_REG_PREFIX with REGISTER_PREFIX.
+	Replace ARM_COMMENT_CHAR with ASM_COMMENT_START.
+	(REGISTER_PREFIX): Define.
+	(USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Define.
+	(SECONDARY_OUTPUT_RELOAD_CLASS): Handle DFmodes only if
+	TARGET_HARD_FLOAT.
+	(PREDICATE_CODES): Add soft_df_operand.
+	* arm.c: Replace ARM_REG_PREFIX with REGISTER_PREFIX.
+	Replace ARM_COMMENT_CHAR with ASM_COMMENT_START.
+	(arm_asm_output_label): Use USER_LABEL_PREFIX.
+	(soft_df_operand): New function.
+	* arm.md (movsicc): New pattern.
+	(movsfcc, movdfcc, *movsicc_insn, *movsfcc_hard_insn): Likewise.
+	(*movsfcc_soft_insn, *movdfcc_insn): Likewise.
+	(*movdf_soft_insn): Rewrite.
+	(movsi matcher): Fix typo in type attribute.
+
+Fri May 12 10:25:40 1995  Michael Meissner  (meissner@cygnus.com)
+
+	* i386.h (TARGET_RTD): Use MASK_RTD, not MASK_REGPARM.
+	(TARGET_SWITCHES): Add -m{,no-}align-double switch.
+	(TARGET_OPTIONS): Add -mregparm= switch to set number of registers
+	to use for passing arguments.  Add -malign-loops= switch to set
+	the alignment for loops.  Add -malign-jumps= switch to set the
+	alignment for code that is jumped to.  Add -malign-functions=
+	switch to set the initial alignment of functions.
+	(TARGET_REGPARM): Delete, in favor of -mregparm=
+	(TARGET_SWITCHES): Delete -mregparm, add -mdebug-arg switches.
+	(RETURN_POPS_ARGS): Call i386_return_pops_args to do the real work.
+	(VALID_MACHINE_DECL_ATTRIBUTE): Define as function call.
+	(VALID_MACHINE_TYPE_ATTRIBUTE): Define as function call.
+	(COMP_TYPE_ATTRIBUTES): Define as function call.
+	(REGPARM_MAX): Maximum number of regs to use for passing arguments.
+	(CUMULATIVE_ARGS): Make this a structure, not an int.
+	(INIT_CUMULATIVE_ARGS, FUNCTION_ARG{,_ADVANCE}): Call function.
+	(FUNCTION_ARG_PARTIAL_NREGS): Likewise.
+	(MAX_CODE_ALIGN): Maximum value to align loops/jumps to.
+	(BIGGEST_ALIGNMENT): Return 64 if -malign-double, 32 otherwise.
+	(ASM_OUTPUT_ALIGN_CODE): Use value of -malign-jumps= switch.
+	(ASM_OUTPUT_LOOP_ALIGN): Use value of -malign-loops= switch.
+	(toplevel): Declare all new functions and external variables added
+	in i386.c.
+
+	* i386.c (i386_regparm_string, i386_regparm): New variables
+	for -mregparm= switch to set the number of registers to use for
+	passing arguments.
+	(i386_align_loops_string, i386_align_loops): New variables for
+	-malign-loops= switch to set alignment to use for loops.
+	(i386_align_jumps_string, i386_align_jumps): New variables for
+	-malign-jumps= switch to set alignment to use for labels that are
+	jumped to.
+	(override_options): Support new switches.
+	(i386_valid_decl_attribute_p): New function to validate decl
+	specific attributes.  Presently returns 0.
+	(i386_valid_type_attribute_p):  New function to validate type
+	specific attributes.  Recognize "stdcall", which says function
+	with fixed numbers of arguments is responsible for popping stack,
+	"cdecl", which says to use the normal C calling sequence, even if
+	-mrtd is used, and "regparm", which specifies the number of
+	registers to use for passing arguments.
+	(i386_comp_type_attributes): New function, to validate whether
+	attributes are compatible.
+	(i386_return_pops_args): New function, to return whether or not
+	the function pops its argument list or not, taking into account
+	-mrtd, and the stdcall/cdecl attributes.
+	(init_cumulative_args): Rewrite as a function, taking variable
+	argument functions, and regparm support into account.
+	(function_arg{,_advance,_partial_nreg}): Likewise.
+	(print_operand): Support %J, to print appropriate jump insn.
+
+	* i386.md (decrement_and_branch_until_zero): Define pattern,
+	so that loops that count down to zero, don't have an unneeded
+	compare after the decrement.  Add a general insn recognizer for
+	add to a value and compare against zero.
+
+	* i386/go32.h, i386/winnt.h (VALID_MACHINE_DECL_ATTRIBUTE):
+	Delete, code folded into the mainline.
+	(RETURN_POPS_ARGS): Likewise.
+
+	* i386/winnt.h (ENCODE_SECTION_INFO): The stdcall attribute is now
+	stored on the type field, rather than the decl.
+
+	* i386/gas.h (ASM_OUTPUT_ALIGN_CODE, ASM_OUTPUT_LOOP_ALIGN): Use
+	i386_align_{loops,jumps} variables to do alignment.
+	* i386/osfrose.h, i386/svr3dbx.h: Likewise.
+
+Fri May 12 12:48:19 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stor-layout.c (layout_type, case ARRAY_TYPE): Compute length using
+	MAX of length and zero if sizetype signed and neither bound constant.
+
+	* i386/gnuelf.h, i386/linux-oldld.h, i386/lynx-ng.h, i386/v3gas.h:
+	Use <...> in #include instead of "...".
+	* m68k/lynx-ng.h, sparc/lynx-ng.h: Likewise.
+
+	* c-parse.in (myparm): Handle attributes.
+	* objc-act.c (unused_list): New variable.
+	(build_tmp_function_decl): Call push_parm_decl with new format.
+	(start_class): Initialize unused_list.
+	(start_method_def): Call push_parm_decl with new format and
+	mark _cmp as possibly unused.
+
+	* combine.c (simplify_shift_const): Don't change SHIFT_MODE
+	for LSHIFTRT either.
+
+	* unroll.c (unroll_loop): Don't move reg if used in copy_end and
+	that is a JUMP_INSN.
+
+Fri May 12 12:31:37 1995  Doug Evans  <dje@cygnus.com>
+
+	* arm/lib1funcs.asm: New file.
+
+Fri May 12 11:52:03 1995  Kung Hsu  <kung@cygnus.com>
+
+	* configure (a29k-*-vxworks*): New target.
+	* config.sub (vxworks29k): New alias.
+	* a29k/t-vx29k: New file.
+	* a29k/vx29k.h: New file.
+
+Fri May 12 11:17:28 1995  Jim Wilson  <wilson@mole.gnu.ai.mit.edu>
+
+	* loop.c (check_dbra_loop): When reversing loop when
+	no_use_except_counting is false, there must be only one biv.
+
+Fri May 12 07:10:00 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* unroll.c (unroll_loop): Only use local_regno for pseudos.
+
+	* genattrtab.c (write_test_expr, case MATCH_DUP): Use operands[N]
+	instead of JUMP_LABEL (which may not be set).
+	(walk_attr_value, case MATCH_DUP): Set must_extract.
+
+	* c-parse.in: Adjust number of shift/reduce conflicts.
+	(parm): Support attributes.
+	* c-decl.c (push_parm_decl): Pass any attributes to decl_attributes.
+
+Fri May 12 00:36:26 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* cpplib.c (skip_quoted_string):  Removed - no longer needed.
+	(skip_if_group):  Use cpp_get_token instead of skip_quoted_string.
+
+	* cpplib.h (struct cpp_reader):  Remove start_line field.
+	Add multiline_string_line field.
+
+	* cpplib.c (cpp_error_with_line, cpp_warning_with_line,
+	cpp_pedwarn_with_line):  Take extra column number parameter.
+	(macroexpand, cpp_get_token):  Fix reporting of unterminated strings.
+	(line_for_error):  Removed - no longer needed.
+
+Fri May 12 02:21:34 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* mips/svr4-t.h (MD_STARTFILE_PREFIX, MD_EXEC_PREFIX,
+	STARTFILE_SPEC, LINK_SPEC): Define.
+	* configure (mips-tandem-sysv4): Use t-mips not t-svr4.
+
+Thu May 11 19:18:54 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* cpplib.c (line_for_error):  Make it work; add extra parameter.
+	(skip_quoted_string, cpp_get_token):  Update calls to line_for_error.
+	(macroexpand):  Remember initial line so we can report it if the
+	call is unterminated.  Also, simplify error logic slightly.
+	(do_include):  Cast alloca return value, to avoid pcc warning.
+
+	* cppexp.c (parse_number):  Cleanup some Cygnus crud for MPW.
+
+Thu May 11 21:35:23 1995  Torbjorn Granlund  <tege@cygnus.com>
+
+	From Moshier:
+	* i960.c (i960_output_ldconst): Let split_double handle DImode.
+	(i960_print_operand): Use REAL_VALUE_TO_DECIMAL for decimal strings.
+	(i960_output_double, i960_output_float):  Likewise; also change arg
+	VALUE from `double' to `REAL_VALUE_TYPE'.
+
+Thu May 11 21:09:25 1995  Per Bothner  (bothner@wombat.gnu.ai.mit.edu)
+
+	* cpperror.c (cpp_print_containing_files):  Remove some
+	Cygnus-local stuff.
+
+Thu May 11 21:06:47 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* gcc.c (link_command_spec): Make -nostdlib no longer imply
+	-nostartfiles.
+
+Thu May 11 18:48:57 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* c-common.c (convert_and_check): Don't diagnose overflow in constant
+	expression merely because conversion overflowed.
+
+Thu May 11 18:43:59 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-decl.c (grokdeclarator): Use PARM_FLAG to see if should
+	make PARM_DECL.
+	* c-parse.in (nested_function, notype_nested_function):
+	Allow old-style arg definitions (use xdecls).
+
+	* c-decl.c (finish_struct): Properly update DECL_PACKED.
+
+Thu May 11 15:24:15 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* fold-const.c (fold): Also fold CLEANUP_POINT_EXPRs into
+        TRUTH_*_EXPRs and into the first operand.
+	(operand_equal_for_comparison_p): Also make sure the second operand
+	is integral.
+
+Thu May 11 14:22:03 1995  Ted Lemon  <mellon@toccata.fugue.com>
+
+	* config/mips/netbsd.h: New file.
+	* config/mips/t-mips-netbsd: New file.
+	* config/mips/x-netbsd: New file.
+
+	* configure (mips-dec-netbsd*): Add entry.
+
+	* mips.h (LOCAL_LABEL_PREFIX, USER_LABEL_PREFIX): Define.
+	(PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END, ASM_OUTPUT_LABEL_REF,
+	ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL,
+	ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Use them.
+
+	* mips.c (mips_output_lineno): Use LOCAL_LABEL_PREFIX.
+
+Thu May 11 14:22:03 1995  Stan Cox  (gcc@dg-rtp.dg.com)
+
+	* dwarfout.c (output_decl): Don't output DIE for struct or union type
+	with no name or with ERROR_MARK for the fields.
+
+Thu May 11 06:36:34 1995  Michael Meissner  (meissner@cygnus.com)
+
+	* flow.c (mark_used_regs): If a SUBREG does not have a REG in the
+	SUBREG_REG position, recursively call mark_used_regs, instead of
+	segfaulting.
+
+Thu May 11 06:44:34 1995  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* expr.c (do_jump, case EQ_EXPR, NE_EXPR): Fix typo for complex.
+
+Wed May 10 12:34:46 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* configure: Add support for the little endian variant of the
+	PowerPC System V.4 and Eabi targets.  If the GNU assembler was not
+	specified, don't build libgcc.a variants on the PowerPC systems
+	that use -mrelocatable, -mlittle, and -mbig.
+
+	* genmultilib: For MULTILIB_MATCHES arguments, map question marks
+	into equal signs after spliting the left and right side of
+	equivalent options, to all support for options like: -mcpu=403.
+
+	* rs6000/rs6000.md (rs6000_immed_double_const): New function that
+	is like immed_double_const, except that it reverses the two words
+	in the constant if the target is little endian.
+
+	* rs6000/rs6000.md (floatsidf2): Use rs6000_immed_double_const,
+	not immed_double_const.
+	(floatunssidf2): Ditto.
+
+	* rs6000/rs6000.h: Add declarations for all functions in rs6000.c.
+
+	* rs6000/sysv4.h (TARGET_SWITCHES): Add -mlittle, -mlittle-endian,
+	-mbig, and -mbig-endian for bi-endian support.
+	(ASM_SPEC): Pass -mlittle/-mbig to the assembler if it was passed
+	to us.
+	(LINK_SPEC): If explicit little or big endian support was
+	requested, tell the GNU linker to use the appropriate target
+	format.
+
+	* rs6000/t-eabi (MULTILIB_*): Build libgcc.a variants for software
+	floating point.  Remove mrelocatable libgcc.a variant.
+
+	* rs6000/t-eabigas: New file, cloned from t-eabi.  Build
+	mrelocatable libgcc.a variant in addition to the other variants.
+
+	* rs6000/t-ppc: New file, for PowerPC System V.4 support without
+	the GNU assembler.
+
+	* rs6000/t-ppcgas: New file, for PowerPC System V.4 support with
+	the GNU assembler.
+
+	* rs6000/eabile.h: New file, little endian eabi config file.
+	* rs6000/sysv4le.h: New file, little endian V.4 config file.
+
+Wed May 10 14:22:28 1995  Doug Evans  <dje@cygnus.com>
+
+	* libgcc1-test.c (main_without__main): Renamed from `main'.
+	* Makefile.in (libgcc1-test): Tell the user to ignore warnings.
+
+	* configure: Support --enable-foo, --disable-foo.
+
+Wed May 10 10:34:00 1995  Lee Iverson  <leei@Canada.AI.SRI.COM>
+
+	* unroll.c: Add declarations of static functions.
+	(unroll_loop): Renumber regs local to loop for each unrolled iteration.
+
+Wed May 10 08:27:03 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (alpha_set_emit_const): Cleanups to work properly
+	when run on 32-bit host.
+
+	* configure: Instead of symlinking tm.h and {h,t,}config.h,
+	make them files that #include the proper file; pass to Makefile.
+	Pass out_file and md_file to Makefile instead of making symlinks.
+	* Makefile.in (out_file, md_file, tm_file, {build,host}_xm_file):
+	New symbols, to be overridden by configure.
+	(insn-*): Use $(md_file), not md.
+	(aux-output.o): Use $(out_file), not aux-output.c.
+	($(MD_FILE)): Rework to use new conventions.
+	(gen*.o, bi-*.o): Depend on $(build_xm_file), not hconfig.h.
+	(scan.o, fix-header.o, scan-decls.o): Likewise.
+	(distclean): Adjust files removed for new convention.
+
+Tue May  9 19:26:42 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* rs6000/rs6000.h (LIBGCC_SPEC): Do link with libgcc when -shared.
+
+	* Makefile.in (STAGESTUFF): Add underscore.c.
+	(underscore.c): Rename temporary files to begin with 'tmp-' so that
+	they will be removed by 'make mostlyclean'.
+
+Tue May  9 19:19:55 1995  Mike Stump  <mrs@cygnus.com>
+
+	* toplev.c (lang_options): Add new flag -ffor-scope.
+
+Tue May  9 19:11:47 1995  Lee Iverson  (leei@ai.sri.com)
+
+	* objc/init.c (objc_init_statics): Fix missing part of last change.
+
+Tue May  9 18:25:34 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* i386/gnu.h, i386/linux.h, i386/linux-aout.h, i386/lynx.h:
+	Use <...> in #include instead of "..." to avoid recursion.
+	* i386/netbsd.h, i386/xm-gnu.h, i386/xm-linux.h: Likewise.
+	* i386/xm-lynx.h, i386/xm-freebsd.h, i386/xm-netbsd.h: Likewise.
+	* m68k/lynx.h, m68k/netbsd.h, m68k/xm-lynx.h: Likewise.
+	* m68k/xm-netbsd.h, mips/gnu.h, ns32k/netbsd.h: Likewise.
+	* ns32k/xm-netbsd.h, rs6000/lynx.h, rs6000/xm-lynx.h: Likewise.
+	* sparc/lynx.h, sparc/netbsd.h, sparc/xm-lynx.h: Likewise.
+	* sparc/xm-netbsd.h, vax/netbsd.h, vax/xm-netbsd.h: Likewise.
+
+Tue May  9 15:52:05 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* config.sub: Recognize powerpcle as the little endian varient of
+	the PowerPC.  Recgonize ppc as a PowerPC variant, and ppcle as a
+	powerpcle variant.  Convert pentium into i586, not i486.  Add p5
+	alias for i586.  Map new x86 variants p6, k5, nexgen into i586
+	temporarily.
+
+Tue May  9 15:43:27 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* rs6000/rs6000.h (LINK_SPEC, LIB_SPEC): Don't mess with libg
+        if -shared.
+	* rs6000/aix41ppc.h (LINK_SPEC): Ditto.
+
+	* rs6000/powerpc.h: Don't emit .extern directives.
+
+Tue May  9 14:08:09 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* sh/lib1funcs.asm (__ashrsi3, __ashlsi3, __lshrsi3): Use .byte
+	instead of .word offsets in switch table.
+
+Tue May  9 11:44:47 1995  Jeremy Bettis  <jbettis@cse.unl.edu>
+
+	* objc/sendmsg.c (__objc_send_initialize): Call superclass if object
+	does not implement +initialize.
+
+Tue May  9 02:44:16 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* rs6000/xm-rs6000.h (COLLECT_EXPORT_LIST): Define if not
+        cross-compiling.
+	* rs6000/xm-mach.h: #undef COLLECT_EXPORT_LIST.
+	* rs6000/rs6000.h (COLLECT_SCAN_OBJECTS): Lose.
+
+	* collect2.c (collect_exit): Unlink export_file.
+	(prefix_from_string): Broken out from prefix_from_env.
+	(prefix_from_env): Call it.
+	(main): Under AIX, recognize -bE: and -bexport:, and don't
+	automatically export everything if we see one.  Otherwise, scan the
+	objects individually and add all their symbols to an export file to be
+	passed to the linker.
+	(write_export_file): New function.
+	(scan_prog_file): Ignore symbols starting with '.'
+
+	* c-common.c (declare_hidden_char_array): Mark decl artificial.
+
+Mon May  8 18:13:57 1995  Adam Fedor  <fedor@colorado.edu>
+
+	* objc/init.c (_objc_load_callback): Add declaration.
+	(__objc_exec_class): Call _objc_load_callback after every Class
+	or Category is added.
+	* objc/objc-api.h (_objc_load_callback): Add declaration.
+
+Mon May  8 17:56:28 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case INDIRECT_REF): Set RTX_UNCHANGING_P
+	if both TREE_READONLY and TREE_STATIC set.
+
+	* c-typeck.c (convert_for_assignment): Don't give errors about
+	adding const or volatile unless both sides point to functions.
+
+Mon May  8 11:48:23 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* configure: If ../ld/Makefile, symlink ../ld/ld.new to collect-ld,
+	not real-ld.  Don't test for $use_collect2 any more.
+
+Sun May  7 17:52:23 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* calls.c (expand_call): Improve -Winline warnings.
+
+Sun May  7 17:28:27 1995  DJ Delorie  (dj@delorie.com)
+
+	* configure.bat: Use "go32" instead of "msdos" for future expansion.
+
+	* i386/go32.h: Add support for win32's stdcall functions.
+
+	* configure.bat: Add ^M to end of each line.
+	* i386/config-nt.bat, alpha/config-nt.bat: Likewise.
+
+Sun May  7 02:12:26 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* tree.h (DECL_ARTIFICIAL): New macro.
+
+	* function.c (expand_function_end): Don't warn about unused
+        anonymous or artificial parms.
+
+Fri May  5 18:41:22 1995  Jim Meyering  (meyering@comco.com)
+
+	* configure: Fix typo in name of "maintainer-clean".
+
+Fri May  5 14:58:01 1995  Jeffrey A. Law  <law@snake.cs.utah.edu>
+
+ 	* pa.c (emit_move_sequence): Force problematical constants
+	into memory during the reload pass when generating PIC.
+
+Fri May  5 13:30:33 1995  Doug Evans  <dje@cygnus.com>
+
+	* objc/NXConstStr.m: NXConstantString.h renamed to NXConststr.h.
+
+Fri May  5 07:10:15 1995  Stephen L Moshier  (moshier@world.std.com)
+
+	* real.c (emdnorm, toe64, etoe64): Significand of Intel long double
+	denormals is shifted down one bit.
+
+Fri May  5 07:04:12 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-typeck.c (process_init_element): Don't clear_momentary if
+	constructor_stack is not empty.
+
+	* objc/Makefile (SHELL): Now /bin/sh.
+
+	* c-typeck.c (build_binary_op): Also warn about ordered
+	comparison of pointer with zero if -Wall.
+
+	* expr.c (do_jump, case EQ_EXPR, NE_EXPR): Properly compare complex.
+
+Thu May  4 18:01:25 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* objc/Makefile: NXConstantString renamed to NXConstStr.
+	* objc/NXConstStr.m: Renamed from objc/NXConstantString.m.
+	* objc/NXConstStr.h: Renamed from objc/NXConstantString.h.
+
+Thu May  4 17:38:21 1995  J.T. Conklin  <jtc@netbsd.org>
+
+	* configure (vax-*-netbsd*): New configuration.
+	* vax/netbsd.h, vax/xm-netbsd.h: New files.
+
+Thu May  4 16:39:05 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* collect2.c (main): Add check for 'collect-ld', just like
+        'real-ld', except that old versions won't be looking for it in the
+        path.  Don't look for 'real-ld' in the path anymore.  Sigh.
+
+	* collect2.c: #include demangle.h and obstack.h.
+	(obstack_chunk_alloc): Define.
+	(obstack_chunk_free): Define.
+	(generic): Don't define.  Don't use.
+	(main): Initialize obstacks and demangling.
+
+	* collect2.c (dump_file): Adjust space padding in output to
+        maintain tabulation with Solaris ld.  Don't demangle if the
+        environment variable COLLECT_NO_DEMANGLE is set.
+
+        * collect2.c (main): Redirect the output of the first link and
+        demangle it.  Don't collect static c/dtors unless USE_COLLECT2 is
+        defined.  Null-terminate the list of objects.
+	(dump_file): New function.
+	(file_exists): New function.
+	(collect_exit): Renamed from my_exit.  Dump and remove the temporary
+	ld output file.
+	(collect_execute): Break out from fork_execute.  Support redirection.
+	(fork_execute): Call it.
+	(fatal_perror, fatal, error): Make non-static.
+	(xcalloc, xmalloc): Don't use generic.
+	(xrealloc): Define.
+	(collect_wait): Break out for do_wait.  Just return the exit status.
+	(do_wait): Call it.
+
+	* collect2.c: Check SUNOS4_SHARED_LIBRARIES using #if, not #ifdef.
+
+	* Makefile.in (collect2): Now uses cplus-dem.o and underscore.o.
+	(collect2.o): Pass MAYBE_USE_COLLECT2 to compile.
+	(underscore.c): Rules for creation.
+
+	* cplus-dem.c, demangle.h: Copy from libiberty.
+
+Thu May  4 14:12:35 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* sdbout.c (plain_type): Pass additional argument to plain_type_1.
+	(plain_type_1): New parameter level.  Increment it when making
+	recursive calls.  Force the type to void_type_mode before starting
+	a 7th level of recursion.
+
+	* sh.c (general_movsrc_operand, general_movdst_operand): Delete
+	references to POST_DEC and PRE_INC.
+	* sh.h: Clean up whitespace, comments, etc.
+	(TARGET_SH, RTL_BIT, DT_BIT, C_BIT, R_BIT, TARGET_DUMP_RTL,
+	TARGET_DUMP_R, TARGET_CDUMP): Delete.
+	(TARGET_SWITCHES): Delete -mR, -mc, -mr options.
+	(CONST_DOUBLE_OK_FOR_LETTER_P): Delete 'G' contraint.
+	(FUNCTION_VALUE): Simplify.
+	(REG_OK_FOR_PRE_POST_P, IS_INDEX): Delete.
+	(BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P): Rewrite to allow
+	SUBREGs.
+	(GO_IF_LEGITIMATE_INDEX): Delete unused REGNO argument.
+	(GO_IF_LEGITIMATE_ADDRESS): Use BASE_REGISTER_RTX_P instead of
+	REG_OK_FOR_PRE_POST_P.  Don't accept PRE_INC or POST_DEC addresses.
+	(PREDICATE_CODES, PROMOTE_MODE): Define.
+
+Wed May  3 09:57:55 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/rs6000.md (non power abs insns): If not powerpc, use
+	sf/subfc instructions, not subf.
+
+Wed May  3 08:49:06 1995  Alan Modra  <alan@SPRI.Levels.UniSA.Edu.Au>
+
+	* protoize.c (gen_aux_info_file): Use strerror #ifdef HAVE_STRERROR.
+
+Wed May  3 01:06:01 1995  Jeffrey A. Law  <law@mole.gnu.ai.mit.edu>
+
+	* pa.c (output_call): Fix typo/thinko in last change.
+	(output_function_epilogue): Align the data section before
+	emitting deferred plabels.
+
+	From Torbjorn:
+	* pa.c (before functions): Declare deferred_plabels and
+	n_deferred_plabels.
+	(output_call): When generating pic, don't use LP and RP.  Use 32 bit
+	plabel instead.
+	(output_function_epilogue): Output plabels accumulated in output_call.
+
+Tue May  2 17:15:08 1995  Jeffrey A. Law  <law@mole.gnu.ai.mit.edu>
+
+	* pa.c (hppa_expand_epilogue): Fix thinko in last change.
+
+Tue May  2 16:54:35 1995  Doug Evans  <dje@cygnus.com>
+
+	* jump.c (jump_optimize, can_reach_end determination): A barrier can
+	follow the return insn.
+
+Tue May  2 12:39:55 1995  Mike Stump  <mrs@cygnus.com>
+
+	* fold-const.c (fold): Ensure that we don't alter the expression's
+	type when folding CLEANUP_POINT_EXPRs.
+
+Tue May  2 13:36:08 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* expmed.c (emit_store_flag): When creating store flag
+	instructions from simpler parts, such as XOR, ABS, etc. do not
+	reuse pseudo registers if expensive optimizations, instead create new
+	pseudos for each insn result.
+
+Tue May  2 01:25:29 1995  Jeffrey A. Law  <law@snake.cs.utah.edu>
+
+	* pa.c (hppa_expand_epilogue): Correctly handle restore of %rp
+	for functions with a stack size of exactly 8kbytes and no frame
+	pointer.
+
+Mon May  1 19:27:08 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* sdbout.c (sdbout_one_type): Don't switch to text section if
+	in function with section attribute.
+
+	* combine.c (combine_instrutions): Set subst_prev_insn to zero.
+	(try_combine, undo_all): Likewise.
+	(get_last_value): Return zero if subst_prev_insn set.
+
+	* sparc.h (INIT_TARGET_OPTABS): Move INIT_SUBTARGET_OPTABS to end.
+
+	* Makefile.in (install-dir): chmod a+rx all newly created directories.
+
+	* expr.c (expand_expr, case SAVE_EXPR): Handle the case where
+	mode is VOIDmode.
+
+Fri Apr 28 15:39:38 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* cpplib.h (cpp_buffer):  Note new escape combination "@ ".
+	* cpplib.c (macroexpand):  Delete "@ " if stringifying.
+	(cpp_skip_hspace):  Also skip "@ " if input buffer has_escapes.
+	(collect_expansion):   Cleanup white-space handling.
+	(create_definition):  Remove all leading spaces, not just first one.
+	(cpp_expand_to_buffer):  Set has_escapes on resulting input buffer.
+	(macroexpand):  Set output_escapes during whole function (and
+	specifically during calls of macarg).
+	(macroexpand):  Set "@ " before and after expansion result.
+	(push_macro_expansion):  Remove unneeded initial "@ ", not " ".
+	(cpp_get_token):  Remove unneeded "@ " (not " ") at end of expansion.
+	(cpp_get_token):  Handle "@ ".
+
+	* cpplib.c (read_name_map):  Add cpp_reader parameter.  Access
+	map_list from former (instead of having it be static).
+	(open_include_file):  Extra parameter (because of above changes).
+	(do_include, lookup_import):  Update calls of open_include_file.
+
+	* cpplib.c (do_include):  Fix memory leak.
+
+	* cpplib.c (delete_assertion):  Also delete tokenlist.
+	(do_unassert):  Don't delete tokenlist (handled by delete_assertion).
+	(cpp_cleanup):  New function.  Frees resources used by a cpp_reader.
+	* cpphash.c (cpp_hash_cleanup):  New function.
+	(delete_macro):  Enable commented-out code.
+	(file_cleanup):  Free actual buffer.
+
+	* cpplib.c (cpp_options):  Add map_list.
+
+	* cpplib.h (PARSE_GETC):  Removed.  Bogus and unused.
+	* cppmain.c (main):  Remove commented-out code that used PARSE_GETC.
+
+	* cpplib.c:  Don't #include <string.h>.  Causes clashes
+	on Nextstep (when index/rindex are macros).
+	(cpp_grow_buffer, int_parse_file):  Cast to U_CHAR*, rather than char*.
+
+Sun Apr 30 08:11:23 1995  Alan Modra  (alan@spri.levels.unisa.edu.au)
+
+	* stdarg.h, varargs.h (va_arg): Don't assume __va_rounded_size (char)
+	has the value of 4.
+
+Sun Apr 30 07:13:43 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* vax.h (NOTICE_UPDATE_CC): Correctly handle aob insns.
+
+	* expr.c (expand_expr, case CONSTRUCTOR): Don't set target to
+	zero if more then one word.
+	Pass size and alignment to move_by_pieces_ninsns in bytes, not bits.
+
+	* cse.c (cse_insn): Properly set IN_MEMORY for SET_DEST.
+
+	* tree.c (substitute_in_expr): Preserve TREE_READONLY.
+
+	* c-common.c (enum attrs): Add A_UNUSED.
+	(init_attributes): Initialize it.
+	(decl_attributes, case A_UNUSED): New case.
+
+Sat Apr 29 15:42:03 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (do_include): Re-fix minor memory leak by using
+	alloca instead of xmalloc and free.
+
+	* cccp.c (macarg): Except for reporting error, treat unterminated
+	macro call as if it were terminated, since `macroexpand' relies
+	on *argptr being filled in.
+
+Sat Apr 29 06:09:35 1995  Torbjorn Granlund  <tege@cygnus.com>
+
+	* pa.c (output_mul_insn): Simplify, it is never called with
+	UNSIGNEDP set.
+
+	* pa.md (divsi3, udivsi3, modsi3, umodsi3): Simplify.
+	(ashlsi3): Clean up indentation and commentary.
+
+Fri Apr 28 12:48:01 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* integrate.c (expand_inline_function): Don't emit any notes until
+        after we've expanded the actual parameters.
+
+Fri Apr 28 11:51:06 1995  Stan Cox  (gcc@dg-rtp.dg.com)
+
+        * m88k/dgux.h: (ENDFILE_SPEC, LIB_SPEC) Fix crtbegin and crtend
+        (SELECT_RTX_SECTION) Put relocatable pic constants in data section
+
+        * m88k/dguxbcs.h: (LIB_SPEC) Likewise
+
+        * m88k/m88k.c: (symbolic_operand) Put relocatable pic constants in data
+
+        * m88k/m88k.h: (FRAME_POINTER_REQUIRED) Add -momit-leaf-frame-pointer
+
+        * m88k/m88k.md: (umulsidi3) Doesn't work for 88110 with mod/div changes
+
+        * m88k/x-dgux: (GCC_FOR_TARGET) tdesc gets mixed up for crtbegin/crtend
+
+Fri Apr 28 06:36:47 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-typeck.c (pop_init_level, output_init_element): Pass
+	require_constant_* to digest_init.
+
+	* alpha.c (alpha_emit_set_const): Now returns rtx and take MODE arg.
+	Rework to use a new pseudo for intermediate values if high opt level.
+	Also use expand_{bin,un}op.
+	* alpha.h (alpha_emit_set_const): Add declaration.
+	* alpha.md (mov[sd]i and splits): Change call to alpha_emit_set_const.
+
+	* reg-stack.c (stack_result): Fix bug in last change.
+
+Fri Apr 28 01:08:43 1995  Doug Evans  <dje@cygnus.com>
+
+	* objc-act.c: Update calls to start_decl, finish_struct,
+	pass NULLs for attributes.
+
+Thu Apr 27 21:13:14 1995  Doug Evans  <dje@cygnus.com>
+
+	* sparc.md (tablejump): Only if ! TARGET_MEDANY.
+	(casesi): New pattern for TARGET_MEDANY case.
+
+	* c-common.c (decl_attributes): Always continue if attribute not found.
+	* c-typeck.c (common_type): Call lookup_attribute instead of
+	value_member.
+	* tree.c (attribute_hash_list): New function.
+	(build_type_attribute_variant): Call it.
+	(valid_machine_attribute): Handle attributes with arguments.
+	(is_attribute_p): New function.
+	(lookup_attribute): New function.
+	(attribute_in_list): Deleted.
+	(attribute_list_contained): Check TREE_PURPOSE and TREE_VALUE.
+	* tree.h (valid_machine_attribute): Add prototype.
+	(is_attribute_p, lookup_attribute): Likewise.
+	* i386/winnt.h (RETURN_POPS_ARGS): Call lookup_attribute.
+	(ENCODE_SECTION_INFO): Likewise.
+	(CPP_PREDEFINES): Use __stdcall__, __cdecl__.
+	(VALID_MACHINE_DECL_ATTRIBUTE): Call is_attribute_p.
+	`args' must be NULL.
+
+Thu Apr 27 21:10:41 1995  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.md (insv): New anonymous patterns to combine insert with
+	arbitrary ashift, ashiftrt, lshiftrt, or zero_extract.  (Based on
+	patch from John Brooks <jbrooks@ea.com>.)
+	(ashlsi3): Remove extraneous operand processing.
+
+Thu Apr 27 18:47:24 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* sh/ashlsi3.c, sh/ashrsi3.c, sh/lshrsi3.c: Delete.
+	* sh/lib1funcs.asm (ashiftrt_r4_*): Rewrite for efficiency.
+	(ashrsi3, lshrsi3, lshrsi3): Add.
+	* t-sh (LIB1ASMFUNCS): Add new functions.
+	(LIBGCC2_CFLAGS): Delete.
+	(LIB2FUNCS_EXTRA): Remove deleted files.
+	(ashlsi3.c, ashrsi3.c, lshrsi3.c): Remove rules for deleted files.
+
+	* stmt.c (expand_return): When returning BLKmode structure, use
+	operand_subword instead of doing arithmetic on the register number.
+	Also, for structures smaller than word_mode, copy it into a word_mode
+	temporary and then subreg it.
+
+	* sparc.md: Delete two define_peepholes which print `bad peephole'.
+
+Thu Apr 27 16:17:01 1995  Torbjorn Granlund  <tege@cygnus.com>
+
+	* toplev.c (rest_of_compilation): Call shorten_branches even when
+	!optimize.
+	* final.c (shorten_branches): For non-optimizing compiles, break
+	after first pass.
+
+Thu Apr 27 14:22:50 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* i386/linux-oldld.h: New file, that is cloned from linux-aout.h,
+	except that it does not pass -m i386linux to the linker.  This is
+	to support the original Linux ld that is on most distributions.
+
+	* configure (i[345]86-*-linux*oldld*): Use i386/linux-oldld.h as
+	the target file.
+
+Thu Apr 27 08:56:50 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.c (valid_machine_attribute): Update last change.
+
+Thu Apr 27 08:06:33 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* fix-header.c, cpplib.c: Don't include <sys/stat.h> twice.
+	* cpplib.c (cpp_grow_buffer, init_parse_file): Cast {xmalloc,xrealloc}
+	for token_buffer to U_CHAR* instead of char*.
+
+	* m68k/x-mot3300: New file.
+	* configure (m68k-motorola-sysv*): Use x-mot3300 instead of x-alloca.
+
+Thu Apr 27 07:04:09 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (do_include): Fix minor memory leak.
+
+	* cccp.c (struct argdata): Remove unused `comments' member.
+	(macarg): Don't set `comments' member.
+
+	* cccp.c (collect_expansion): Assume leading white space
+	already removed.
+	Don't allocate unnecessary space for expansion.
+
+	* cccp.c (deps_output): Don't generate overly long output lines.
+	Do not invoke self recursively with spacer == 0; this simplifies
+	the code a bit.
+
+Wed Apr 26 19:20:02 1995  Andrew McCallum  <mccallum@leopard.cs.rochester.edu>
+
+	* objc/Object.h: Changed Class * to Class in order to match NEXTSTEP
+	and OpenStep runtime.
+	* objc/Object.m, objc/Object.h, objc/archive.c, objc/class.c: Likewise.
+	* objc/encoding.c, objc/init.c, objc/objc-api.h, objc/objc.h: Likewise.
+	* objc/objects.c, objc/runtime.h, objc/selector.c: Likewise.
+	* objc/sendmsg.c, objc/typedstream.h: Likewise.
+
+Wed Apr 26 19:18:52 1995  Pieter Schoenmakers  <tiggr@es.ele.tue.nl>
+
+	* objc/objc-api.h (objc_static_instances): New struct to record
+	static instances of a certain class.
+	(objc_module): New tag STATICS to point to the table of
+	objc_statics_instances.
+
+	* objc/init.c (OBJC_VERSION): Version 7.
+	(objc_init_statics): New function.
+	(__objc_exec_class): Invoke objc_init_statics if needed.
+
+	* objc/NXConstantString.m, objc/NXConstantString.h: New files.
+	* objc/Makefile (OBJC_O): Added bare-bones implementation of
+	NXConstantString.
+
+	* objc-act.c (OBJC_VERSION): Version 7.
+	(build_objc_string_object): Build a full declaration if not using
+	the next runtime.
+	(objc_add_static_instance): New function.
+	(init_module_descriptor): Add reference to static instances table.
+	(build_module_descriptor): Add field for static instances table.
+	(get_objc_string_decl): New function.
+	(generate_static_references): New function.
+	(finish_objc): Call generate_static_references if needed.
+
+	* c-tree.h (finish_decl_top_level): New declaration.
+	* c-decl.c (finish_decl_top_level): New function.
+
+Wed Apr 26 18:04:32 1995  Dirk Steinberg  (Dirk.Steinberg@gmd.de)
+
+	* stddef.h: Treat _MACHINE_ANSI_H_ like _ANSI_H_.
+
+Wed Apr 26 14:09:59 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* sparc.h (NEGTF2_LIBCALL): Define.
+	(INIT_TARGET_OPTABS): Add support for all TFmode *_LIBCALL macros.
+	* optabs.c (init_optabs): Delete all uses of undocumented TImode and
+	TFmode *_LIBCALL macros.
+
+	* combine.c (simplify_rtx, case TRUNCATE): Add.  Use force_to_mode.
+	(force_to_mode, case AND): Allow some simplifications when GET_MODE (x)
+	has more bits than HOST_BITS_PER_WIDE_INT.
+	* mips/mips.md (truncdiqi2+[456]): Add patterns to simplify ZERO_EXTEND
+	of a TRUNCATE.
+
+Wed Apr 26 13:01:22 1995  Doug Evans  <dje@cygnus.com>
+
+	* sparc.md (memop define_splits): Rewrite to not use memop.
+	Preserve MEM_IN_STRUCT_P, MEM_VOLATILE_P, RTX_UNCHANGING_P bits.
+	* sparc.c (memop): Deleted.
+	(splittable_symbolic_memory_operand): New function.
+	(splittable_immediate_memory_operand): New function.
+
+Wed Apr 26 12:54:26 1995  Jeffrey A. Law  <law@snake.cs.utah.edu>
+
+	* configure: Add hppa1.1-hp-lites support.
+
+Wed Apr 26 08:04:46 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* sh.md (ashrsi2_31): Don't use dead_or_set_p after reload.
+	* pyr.md: Remove bad peepholes that improperly use dead_or_set_p.
+
+	* function.c (expand_function_end): Warn about unused parms
+	if both -Wunused and -W.
+
+	* tree.h (TYPE_PARSE_INFO): Delete unused field.
+	(TYPE_PACKED): Add new macro.
+	(struct tree_type): Delete unused field `parse_info'.
+	Add new field `packed_flag'.
+	* c-tree.h (finish_enum, finish_struct): Add ATTRIBUTES argument.
+	* c-common.c (init_attributes): Don't require decl for A_PACKED.
+	(decl_attributes, case A_PACKED): Set TYPE_PACKED for type.
+	* c-parse.in: Update number of shift/reduce conflicts.
+	(structsp): Pass attribute arg to finish_struct.
+	Support attributes on enums and pass to finish_enum.
+	* c-decl.c (finish_struct): Add ATTRIBUTES argument, call
+	decl_attributes and set DECL_PACKED from TYPE_PACKED.
+	(finish_enum): Add ATTRIBUTES argument, call decl_attributes,
+	and make enum narrow if TYPE_PACKED.
+	* print-tree.c (print_node): Print TYPE_PACKED.
+
+	* c-decl.c (init_decl_processing): Don't give builtin__constant_p an
+	argument type.
+	* expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): A pointer to a
+	string constant is a constant.
+
+	* c-typeck.c (output_init_element): Constructor is not simple if
+	a bitfield is being assigned a non-integer.
+
+	* c-typeck.c (push_init_level): Update constructor_depth when we
+	push spelling level.
+
+Tue Apr 25 19:50:06 1995  Jeffrey A. Law  <law@snake.cs.utah.edu>
+
+	* pa.c (emit_move_sequence): Handle function label arithmetic for
+	PIC code generation too.
+
+Tue Apr 25 18:52:43 1995  Stephen R. van den Berg  (berg@pool.informatik.rwth-aachen.de)
+
+	* reg-stack.c (current_function_returns_real): Deleted (unused).
+	(FP_mode_reg): Trimmed to a smaller size, less overhead.
+	(FP_MODE_REG): New macro over which FP_mode_reg will be accessed.
+	(mark_regs_pat, straighten_stack): New functions.
+	(reg_to_stack): Amend initialisation of FP_mode_reg.
+	Mark FP registers mentioned in USE insns before NOTE_INSN_FUNCTION_BEG.
+	(get_true_reg): Eliminate FP subreg accesses in favour of the
+	actual FP register in use.
+	(record_reg_life_pat): Make it work on SUBREGs as well.  Make use of
+	the new mark_regs_pat function.  Handle USE insns if called unnested.
+	(record_reg_life): Don't check for QImode again, we know that it
+	is there.  Process CALL_INSNs like all other insns, they might `use'
+	some FP argument registers if register passing.
+	(stack_result_p): Changed in stack_result and returning an rtx.
+	(stack_reg_life_analysis): Take a new stackentry state argument.
+	Use stack_result and the rtx to mark using mark_regs_pat.  This ensures
+	that types that need multiple FP registers are handled correctly.
+	Delete the no_live_regs shortcut to save space.
+	Use stackentry state to determine filled registers.
+	(replace_reg): Accept COMPLEX_FLOAT as well.
+	(move_for_stack_reg): Optimise away some pointer dereferencing.
+	(subst_stack_regs): Make sure the stack is in the right order
+	and of the right size for register passing.
+	(goto_block_pat): Make sure the stack is in the right order
+	to return possible multi-register values from the function.
+	(convert_regs): Fix comment about CALL_INSN, it's no longer valid.
+	Make sure the stack is of the right size and in the right order
+	to return possible multi-register values from the function.
+
+	* function.c (assign_parms): If STACK_REGS is defined, generate USE
+	insns before the function body, thus showing which registers are filled
+	with parameters.
+	* expr.c (expand_builtin_apply_args): Likewise.
+	Reverse order of saving registers, more compact code for i387.
+	(expand_builtin_apply): Likewise.
+	* emit-rtl.c (gen_highpart): Add comment about broken implementation.
+	* i386.md (untyped_call): Make it return a complex double.
+
+        * c-parse.in (attrib): Permit null-length argument list to attributes.
+
+	* tree.c (valid_machine_attribute): Use new function attribute_in_list,
+	makes sure type_attribute_variants are reused even when attributes have
+	parameters.
+	Assign any new type to TREE_TYPE (decl).
+	(attribute_in_list): New function.
+	(attribute_list_contained): Use it.
+	* tree.h (attribute_in_list): New declaration.
+
+Tue Apr 25 18:25:53 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* expr.c (struct move_by_pieces): Add to_struct and from_struct fields.
+	(move_by_pieces): Set to_struct and from_struct fields.
+	(move_by_pieces_1): Set MEM_IN_STRUCT_P of to1 and from1.
+	(expand_builtin, case BUILT_IN_MEMCPY): New variable type.
+	Set MEM_IN_STRUCT_P of src_mem and dest_mem.
+
+	* Makefile.in (clean): Delete libgcc1-asm.a.
+
+	* m68k/vxm68k.h (CPP_SPEC): Define.
+
+	* c-decl.c (pushdecl): Don't test DECL_EXTERNAL when deciding whether
+	to register a duplicate decl in the current block.
+
+	* cross64.h (INIT_ENVIRONMENT): Define as string not putenv call.
+	* gcc.c (main): Pass INIT_ENVIRONMENT to putenv.
+
+	* stmt.c (expand_return): When returning BLKmode structure in
+	registers, copy it to a psuedo-reg instead of to hard registers.
+
+Tue Apr 25 15:14:58 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.h (LEGITIMIZE_ADDRESS): Don't create a DF address using two
+	regs if -msoft-float or -mcpu=403.
+
+Tue Apr 25 15:45:44 1995  Richard Henderson  (richard@atheist.tamu.edu)
+
+	* m68k.md (divhi3, udivhi3, modhi3, umodhi3): Deleted
+	these insns plus some surrounding trash.
+ 	(divmodhi4, udivmodhi4): Added these insns.
+
+Tue Apr 25 10:12:40 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (alpha_builtin_saveregs): Refine last change to work
+	for both stdarg and varargs.
+
+	* tree.c (chain_member_purpose): Make similar to chain_member_value.
+
+	* Makefile.in, configure: Change "realclean" to "maintainer-clean".
+
+	* protoize.c: Removed __NetBSD__ from conditional.
+	Declare strerror if HAVE_STRERROR is defined; otherwise
+	declare sys_errlist and sys_nerr.
+	(my_strerror): New function.
+	(errno): Don't define if already defined as a macro.
+
+	* alpha.c (current_file_function_operand): Return false if profiling.
+
+	* expr.c (convert_move): Don't access a hard reg in an invalid
+	mode when doing a truncation.
+
+	* alpha.c (add_operand): Test for exactly the constants allowed by
+	the constraints.
+	* alpha.h (CONST_OK_FOR_LETTER_P, case 'L'): Reject 0x80000000.
+
+	* c-parse.in (initdcl, notype_initdcl): Pass attributes to
+	start_decl; delete call to decl_attributes.
+	* c-tree.h (start_decl): Two new tree parameters.
+	* c-decl.c (start_decl): New args for attributes; call decl_attributes.
+
+	* c-decl.c (duplicate_decls): Don't look at TYPE_ACTUAL_ARG_TYPES
+	if it is not set.
+
+	* xm-1750a.h: New file.
+
+	* alpha.c (alpha_builtin_saveregs): Add to incoming args addr
+	if less than 6 named args, not less than or equal to.
+
+Mon Apr 24 15:25:19 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* mips-tfile.c (fatal, error): Make first arg const to avoid warning.
+
+	* stmt.c (expand_end_bindings): Write a BARRIER after call
+	to abort in nonlocal handler.
+
+	* stmt.c (expand_decl_init): Call preserve_temp_slots to keep
+	around any temp whose address was taken.
+
+Fri Apr 21 16:26:15 1995  Torbjorn Granlund  <tege@adder.cygnus.com>
+
+	* pa.md (call_internal_reg): Fix typos in length calculation.
+	(call_value_internal_reg): Likewise.
+
+Fri Apr 21 13:17:15 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* config/gnu.h (STANDARD_INCLUDE_DIR): New macro.
+	* config/mips/gnu.h (STANDARD_INCLUDE_DIR): Macro moved there.
+
+Fri Apr 21 08:23:58 1995  Tom Quiggle  (quiggle@lovelace.engr.sgi.com)
+
+	* toplev.c (lang_options): Add -I for GNAT.
+	* gcc.c (default_compilers): Pass -I to gnat1.
+
+Fri Apr 21 07:58:06 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.c (integer_all_onesp): Test to size of mode, not TYPE_PRECISION.
+
+	* toplev.c (main): Turn on -fforce-mem for -O2.
+
+	* fold-const.c ([lr]rotate_double): Replace; old versions were bogus.
+	(fold, shift and rotate): Don't call tree_int_cst_sgn on non-integer.
+	(fold, case LROTATE_EXPR): If constant count, convert to RROTATE_EXPR.
+	(fold, case RROTATE_EXPR): Sometimes commute logical op with rotate.
+	Delete pair of counteracting shifts.
+
+	* combine.c (simplify_logical, case AND): If still an AND, get
+	new values for op0 and op1.
+
+Thu Apr 20 17:52:10 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* sh.c: Completely rewritten.
+	* sh.h (FAST_BIT, CONSTLEN_2_BIT, CONSTLEN_3_BIT, CONSTLEN_0_BIT,
+	TARGET_FASTCODE, TARGET_CLEN3, TARGET_CLEN0, TARGET_OPTIONS): Delete.
+	(TARGET_SWITCHES): Delete -mclen3 and -mclen0 options.
+	(TARGET_DEFAULT): Is zero.
+	(OVERRIDE_OPTIONS): Delete code to set max_count_si and max_count_hi.
+	(SPECIAL_REG): New macro.
+	(HARD_REGNO_MODE_OK): Allow any mode in any general register.
+	(GO_IF_LEGITIMATE_ADDRESS): Delete constant + reg address case.
+	(MOVE_RATIO): Define to 2 when TARGET_SMALLCODE.
+	(max_si, max_hi, max_count_si, max_count_hi): Delete.
+	* sh.md: Delete spurious constraints from all define_expands.
+	(rotlsi3_1): Set T reg instead of clobbering it.
+	(ashrsi3): Use expand_ashiftrt instead of gen_shifty_op.
+	(movsi_i, movhi_i, movsf_i): Add conditions to reject patterns
+	needing a reload.
+	(movdi-2, movdf_k): Correct conditions to reject patterns needing
+	a reload.
+	([inverse_]branch_{true,false}): Pass operands to output_branch.
+	(jump): Delete unnecessary braces.
+	(call, call_value): Don't use expand_acall.  Force operand0 into
+	a register.
+
+Thu Apr 20 12:57:16 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* function.c (assign_parms): Use TREE_ADDRESSABLE rather than
+        TYPE_NEEDS_CONSTRUCTING to decide whether a parameter needs to be
+        passed by invisible reference.
+
+	* calls.c (expand_call): Ditto.  Abort if we try to pre-evaluate a
+        parameter of TREE_ADDRESSABLE type.
+
+Wed Apr 19 17:50:24 1995  Torbjorn Granlund  <tege@cygnus.com>
+
+	* pa.h (TARGET_SWITCHES): Fix typo.
+
+Tue Apr 18 18:06:03 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* expr.c (store_constructor):  Use BYTES_BIG_ENDIAN rather
+	than BITS_BIG_ENDIAN to layout bits within bitstring.
+	* tree.c (get_set_constructor_bytes):  Likewise.
+
+Tue Apr 18 17:22:46 1995  Per Bothner  (bothner@wombat.gnu.ai.mit.edu)
+
+	* config/m68k/{x-hp320,x-hp320g} (FIXPROTO_DEFINES):
+	Define _HPUX_SOURCE so putenv and other functions get seen.
+
+Tue Apr 18 03:57:35 1995  Michael Meissner  (meissner@cygnus.com)
+
+	* varasm.c (weak_decls): Make this a unique structure, instead of
+	a tree structure.
+	(handle_pragma_weak): Don't redeclare asm_out_file.  Use new weak
+	structure to copy name and value to.  Protect name and value by
+	copying them to the permanent obstack.
+	(declare_weak): Call handle_pragma_weak, instead of duplicating
+	the code.
+	(finish_weak): Rewrite to use new weak symbols list structure.
+
+	* c-pragma.h: New file to define the c-pragma.c interfaces.
+	* c-pragma.c: Include it.
+	* varasm.c: Include it.
+	* c-lex.c: Include it.
+	* cp/lex.c: Include it.
+
+	* varasm.c (handle_pragma_weak): No longer pass output file
+	stream, since weak pragmas are delayed until the end of the
+	compilation.
+	* c-pragma.c (handle_pragma_token): Call handle_pragma_weak
+	without file stream argument.
+
+	* Makefile.in (varasm.o, c-lex.o, c-pragma.o): Add dependencies on
+	c-pragma.h.
+
+	* config/rs6000.md (movdf): If -msoft-float, do not generate
+	memory to memory references, like is already done for the
+	-mhard-float case.  Remove an extra test for -mhard-float inside
+	of -mhard-float code.
+
+Tue Apr 18 06:19:50 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (size_int): Arg is unsigned HOST_WIDE_INT.
+	* tree.h (size_int): Likewise.
+
+Mon Apr 17 23:36:57 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* rs6000/aix41.h: Restore March 11th changes, plus
+        (ASM_OUTPUT_EXTERNAL): Do add [DS] or [RW], just don't emit
+        anything.
+	* rs6000/aix3newas.h (ASM_OUTPUT_EXTERNAL): Ditto.
+
+Mon Apr 17 15:58:52 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* config/mips/x-iris (FIXPROTO_DEFINES):  Add -D_LANGUAGE_C_PLUS_PLUS.
+	* config/mips/x-iris6:  Likewise.
+
+	* cpplib.c:  Rename  make_definition to cpp_define.
+	* cpplib.h (cpp_define):  New declaration.
+
+	* cpplib.c (special_symbol):  For T_SPECLINE, calculate __LINE__
+	in enclosing file buffer, not current buffer (if macro expanding).
+	(cpp_get_token):  Fix thinko (in code for chopping unneeded space).
+
+Mon Apr 17 11:36:07 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* abi64.h (CPP_SPECS): Define and use _ABI64 instead of
+	_MIPS_SIM_ABI64.
+	(SETUP_INCOMING_VARARGS): Set MEM_IN_STRUCT_P if big endian target.
+	* iris6.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Define.
+
+	* combine.c (get_last_value): Ignore BARRIER when scanning backwards.
+	(move_deaths): New variables before_dead and after_dead.  Set them
+	to instructions that have valid INSN_CUID values and use in test.
+
+	* combine.c (subst_prev_insn): New variable.
+	(try_combine): Set it.
+	(get_last_value): Use it.
+
+	* reload.c (find_reloads): Recompute reg_equiv_address from
+	reg_equiv_memory_loc before using it.
+	(find_reloads_toplev, make_memloc): Likewise.
+
+	* expr.c (expand_builtin, case BUILT_IN_MEMCPY): Call force_operand
+	on dest_rtx before returning it.
+
+	* function.c (instantiate_decls): Use temporary allocation if
+	DECL_DEFER_OUTPUT is set.
+
+Sat Apr 15 23:19:03 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* aoutos.h (ASM_OUTPUT_DEF): Define instead of SET_ASM_OP.
+	* sparc/sunos4.h (ASM_OUTPUT_DEF): Ditto.
+
+	* varasm.c (weak_finish): Don't handle aliases.
+	(declare_weak): Ditto.
+	(assemble_alias): Handle aliases.
+
+	* c-common.c (enum attrs): Add A_ALIAS.
+	(init_attributes): Ditto.
+	(decl_attributes): Ditto.
+
+Sat Apr 15 13:26:34 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* calls.c (expand_call): Call preserve_temp_slots on temps
+	made for BLKmode args returned in registers.
+
+	* pa.c (override_options): Fix typo.
+
+Sat Apr 15 12:11:46 1995  Brendan Kehoe  <brendan@cygnus.com>
+
+	* alpha/alpha.c (output_epilog): Initialize fp_offset to 0, and
+	make sure it's non-zero before we try to use it to restore the
+	frame pointer.
+
+Fri Apr 14 19:45:05 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* ginclude/va-{clipper,pa,pyr,sparc,spur}.h (va_arg): Reorganize
+        to avoid BIND_EXPRs and COND_EXPRs of aggregate type.
+
+Fri Apr 14 19:31:14 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* config/svr4.h (ASM_OUTPUT_SECTION_NAME): Make the section
+ 	read-only executable "ax" if DECL is a FUNCTION_DECL; read-only
+ 	"a" (previously the case always) if DECL is TREE_READONLY;
+ 	otherwise writable "aw".
+
+Fri Apr 14 18:49:11 1995  Linus Torvalds  <Linus.Torvalds@cs.Helsinki.FI>
+
+	* alpha.md (probe_stack): Probe with write, not read.
+	(allocate_stack): Update and correct stack probe code.
+	* alpha.c (output_prolog): Changed stack probe at function entry.
+
+Fri Apr 14 18:42:34 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* jump.c (delete_insn): When deleting after label, delete
+	a BARRIER as well.
+
+Fri Apr 14 14:40:48 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* toplev.c (compile_file): Call weak_finish.
+
+	* c-common.c (enum attrs): Add A_WEAK.
+	(init_attributes): Ditto.
+	(decl_attributes): Support __attribute__ ((weak)) by
+        calling declare_weak.
+
+	* sparc/sunos4.h (HANDLE_PRAGMA_WEAK, WEAK_ASM_OP, SET_ASM_OP):
+        Define to support weak symbols with -fgnu-linker.
+	* aoutos.h: Ditto.
+
+	* varasm.c (handle_pragma_weak): Add declared weak symbols to
+        weak_decls rather than emitting them immediately.
+	(declare_weak): Add the indicated declaration to weak_decls.
+	(weak_finish): Emit .weak directives for any weak symbols.
+
+	* libgcc2.c: The C++ free-store management functions are weak.
+
+Fri Apr 14 13:00:29 1995  Michael Meissner  (meissner@cygnus.com)
+
+	* rs6000/rs6000.c (output_prolog): For eabi systems, emit main's
+	call to __eabi before setting up the minimal TOC used with the
+	-mrelocatable support.
+
+	* rs6000/eabi.h (INVOKE__main): Don't define any more,
+	output_prolog will emit the call.
+
+Fri Apr 14 09:09:03 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (call_operand): Any reg is valid for NT.
+	(output_prologue): Never need GP for Windows/NT.
+	Set SYMBOL_REF_FLAG in current function decl.
+
+Thu Apr 13 20:19:30 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* alpha/xm-alpha.h (HAVE_VPRINTF): Define.
+	(HAVE_PUTENV): Define.
+	(POSIX): Define.
+
+Thu Apr 13 19:57:44 1995  Doug Evans  <dje@cygnus.com>
+
+	* emit-rtl.c (gen_sequence): If the insn has a non-null
+	CALL_INSN_FUNCTION_USAGE field, output it as a sequence so the
+	latter isn't discarded.
+
+	* c-parse.in: Update expected conflict count.
+
+Thu Apr 13 08:10:20 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure.bat: Arg 2 is which machine (i386 or alpha).
+	* configure (alpha-*-winnt3*): New configuration.
+	* alpha.c: Don't #include stamp.h for WINNT.
+	(input_operand, case CONST): Allow ptr_mode and DImode.
+	* alpha.h (WINDOWS_NT): Provide default definition.
+	(ASM_OUTPUT_INT): Use output_addr_const.
+	(ASM_OUTPUT_ADDR_DIFF_ELT): Use .long for NT.
+	* alpha.md (calll, tablejump, movsi): New variants for NT.
+	* alpha/winnt.h, alpha/xm-winnt.h, alpha/x-winnt: New files.
+	* alpha/config-nt.bat, alpha/config-nt.sed: New files.
+	* i386/config-nt.bat: Add Ada fragments to Makefile.
+	* i386/config-nt.sed: Adjust for deletion of config.run in Makefile.in
+	Change version to 2.6.3.
+	Add some missing tabs.
+	* winnt/winnt.h (TARGET_MEM_FUNCTIONS): Define.
+	(LINK_SPEC): Delete "align:0x1000".
+	* winnt/xm-winnt.h (OBJECT_SUFFIX): Define.
+	* ginclude/stdarg.h, ginclude/varargs.h: Clean up code that
+	defines *DEFINED* symbols.
+
+	* configure (a29k-*-sym1*): Same as a29k-*-bsd*.
+	* a29k.h (ASM_OUTPUT_SECTION_NAME): New macro.
+
+Wed Apr 12 14:36:03 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* dbxout.c (dbxout_type_fields): Correct arguments to CHARS macro
+	in flag_minimal_debug case.
+	(dbxout_symbol_name): Use DECL_ASSEMBLER_NAME unconditionally.
+	* sdbout.c (sdbout_record_type_name): Correct indentation.
+	(sdbout_symbol): Use DECL_ASSEMBLER_NAME unconditionally.
+	(sdbout_one_type): Likewise.
+
+Tue Apr 11 13:24:13 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* fix-header.c (main):  Fix loop over required_functions_list.
+	(fatal):  Also print inc_filename.
+
+	* cpplib.c (cpp_push_buffer):  Added missing initializatuon of buf.
+	(cpp_file_buffer):  Compare against CPP_NULL_BUFFER, not NULL.
+	(finclude):  No longer call cpp_push_buffer - let callers do it.
+	(do_include):  Add call to cpp_push_buffer.
+	(push_parse_file):  Call cpp_push_buffer early, so initial
+	defines can use file and line from a valid cpp_buffer.
+	(nreverse_pending):  New function.
+	(push_parse_file):  Use nreverse_pending.
+	(push_parse_file):  For -include files, just push them in reverse
+	order - we don't need to scan them now.
+	(cpp_error_from_errno, cpp_perror_with_name):  Don't emit extra '\n'.
+
+Tue Apr 11 13:36:44 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* configure (mips-dec-mach3): Add.
+
+	* sh.c (shiftby_operand): Delete.
+	* sh.h (TARGET_SWITCHES): -m3 and -m3l also set SH2_BIT.
+	(OVERRIDE_OPTIONS): Don't add CPU_SH2 to CPU_SH3 when TARGET_SH3.
+	* sh.md (ashlsi3): Use nonmemory_operand as a predicate instead of
+	shiftby_operand.  Don't use shiftby_operand in the output statement.
+	(lshrsi3): Likewise.
+
+	* c-decl.c (poplevel): Do output inline function if
+	DECL_ABSTRACT_ORIGIN points to itself.
+
+	* varasm.c (output_constant): Cast assemble_string argument to char *.
+
+Mon Apr 10 14:29:28 1995  Torbjorn Granlund  <tege@adder.cygnus.com>
+
+	* recog.c (constrain_operands, case 'E'): Make this work like
+	constraint character `F' when REAL_ARITHMETIC is defined.
+	* regclass.c (record_reg_classes, case 'E'): Likewise.
+	* reload.c (find_reloads, case 'E'): Likewise.
+
+Mon Apr 10 14:30:31 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/aix3newas.h, rs6000/aix41.h: Eliminate March 11th changes
+	to undefine ASM_OUTPUT_EXTERNAL{,_LIBCALL}, since this causes the
+	compiler not to bootstrap.
+
+Mon Apr 10 07:17:39 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cppalloc.c: #include config.h.
+	* cppexp.c: Add declarations of xmalloc and xrealloc.
+	(cpp_parse_expr): Cast args to bcopy to char *.
+	* cpphash.c: Add declaration of xmalloc.
+	* cpplib.c (init_parse_options, cpp_reader): Cast args to bcopy,
+	bcmp, and bzero to char *.
+	(add_import, push_parse_file, init_parse_file): Likewise.
+
+	* c-common.c (enum attrs): New attribute, A_NOCOMMON.
+	(init_attribute): Initialize it.
+	(decl_attributes): Implement it.
+	* varasm.c (make_decl_rtl): Allow section attribute if -fno-common
+	or variable is not to be placed in common for some other reason.
+
+	* combine.c (simplify_set): Don't move a SUBREG to dest if it
+	is changing the size of a hard reg in CLASS_CANNOT_CHANGE_SIZE.
+
+	* reload.c (find_equiv_reg): If goal is a pseudo that got memory,
+	a store into memory makes it invalid.
+	* reload1.c (reload_as_needed): Call forget_old_reloads_1 on
+	pattern before reg elimination.
+
+Mon Apr 10 00:26:14 1995  Jeffrey A. Law  <law@snake.cs.utah.edu>
+
+	* pa.c (pa_reorg): Bump label use count for each entry in an
+	exploded ADDR_VEC.
+
+Sun Apr  9 09:22:51 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* i386.md (adddi3, subdi3): Need scratch reg whenever operand 0 in
+	mem and operands 1 not '0'.
+	(subdi3): Don't treat two non-equal MEMs as non-aliasing.
+
+Sat Apr  8 22:53:38 1995  Jeffrey A. Law  <law@snake.cs.utah.edu>
+
+	* pa.c (pa_reorg): Fix typo.
+
+Sat Apr  8 19:36:36 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/rs6000.h (SELECT_SECTION): TREE_CODE_CLASS must be called
+	with a tree code, not a tree value.
+
+Sat Apr  8 12:41:01 1995  Mike Stump  <mrs@cygnus.com>
+
+	* cpphash.c: Don't use const on compilers that don't support it.
+
+Sat Apr  8 16:32:22 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_increment): Handle case where INCREMENTED
+	has a non-trivial conversion.
+
+Fri Apr  7 19:33:21 1995  Phil Nelson  (phil@cs.wwu.edu)
+
+	* ns32k.h (TRAMPOLINE_TEMPLATE, TRANSFER_FROM_TRAMPOLINE):
+	Fix assembler syntax errors.
+
+Fri Apr  7 19:27:23 1995  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* cccp.c (VMS_fstat, VMS_stat):  New functions.
+
+Fri Apr  7 19:25:21 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (collect_expansion): If traditional, set stringify
+	member to SHARP_TOKEN regardless of the value of
+	stringify_sharp_token_type.
+
+Fri Apr  7 07:48:35 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_unary_operation): #ifdef POINTERS_EXTEND_UNSIGNED,
+	handle sign- or zero-extending addresses.
+
+	* optabs.c (init{,_integral,_floating,_complex}_libfuncs):
+	Change SUFFIX to "char" to avoid confusion with prototype.
+
+	* explow.c (convert_memory_address): No longer static.
+	New arg, TO_MODE.
+	Do something special for SYMBOL_REF, LABEL_REF, and CONST.
+	(memory_address): Add extra arg to call to convert_memory_address.
+	* rtl.h (convert_memory_address): Add extra arg.
+	* expr.c (expand_expr, case ADDR_EXPR): Always call
+	convert_memory_address when converting; add extra arg.
+	* stmt.c (expand_computed_goto): Convert from ptr_mode to Pmode.
+
+	* gcc.c (OBJECT_SUFFIX): Default now ".o", not "o".
+	(all specs): Remove "." before %O; use %O in a few missing cases.
+	* i386/os2.h (OBJECT_SUFFIX): Delete from here.
+	* i386/xm-os2.h (OBJECT_SUFFIX): Move to here; now has period.
+
+	* Makefile.in (STAGESTUFF): Use $(exeext) for executables.
+
+Fri Apr  7 03:32:29 1995  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+
+	* config.sub: Accept -lites* as op sys.
+
+Thu Apr  6 23:08:50 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* cpplib.c (bcopy, bzero, bcmp):  Remove #undefs.
+	* cppalloc.c (xcalloc):  Re-implement using calloc,
+	rather than malloc+bzero.
+	* cpplib.c (SELF_DIR_DUMMY):  New macro.
+	(do_include):  Don't pass searchptr to finclude if it is dsp,
+	since that is on the stack, and would cause a dangling pointer.
+	If handling #include_next, recognize SELF_DIR_DUMMY.
+
+Fri Apr  7 00:54:24 1995  Jeffrey A. Law  <law@snake.cs.utah.edu>
+
+	* pa.h (MACHINE_DEPENDENT_REORG): Define.
+	* pa.md (switch_jump): New pattern for jumps which implement
+	a switch table.
+	* pa.c (pa_reorg): New function to explode jump tables.
+	(pa_adjust_insn_length): Account for jumps in switch tables with
+	unfilled delay slots.
+
+Thu Apr  6 14:31:10 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* c-typeck.c (build_binary_op): Don't call common_type for
+        uncommon pointer types.
+
+Wed Apr  5 13:53:17 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	Re-write fixproto/fix-header/etc to use cpplib:
+	* fix-header.c:  Comment out support for adding missing extern "C"
+	using #ifdef ADD_MISSING_EXTERN_C instead of #if 0.
+	* fixproto:  Removed case of required functions.   Instead use ...
+	* fix-header.c (std_include_table):  ... new required-functions table.
+	(cpp_file_line_for_message, cpp_print_containing_files, cpp_message):
+	New stub functions, to intercept cpplib error message.
+	* fixproto:  Don't call $CPP, since fix-header now incorporates cpplib.
+	* gen-protos.c (fatal, hashf):  New functions.
+	(main):  Use hashf, instead of hash.
+	* scan-decls.c (scan_decls, skip_to_closing_brace):  Re-write to
+	take a cpp_reader* as argument, not a FILE*.
+	* scan.h (hash):  Make parameter const.
+	* scan.c (hash):  Removed.
+	* scan.c (memory_full, xmalloc, xrealloc):  Removed.
+	Use functions from cppalloc.c instead.
+	* Makefile.in (gen-prtos, fix-header, stmp-fixproto):  Update.
+
+Wed Apr  5 13:24:14 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* cpplib.c (cpp_get_token): If traditional, return after comment,
+	instead of reading more, so end-of-line can be peeked at.
+	* cpperror.c (cpp_file_line_for_message, cpp_message):  New
+	functions, that do the actual printing of error messages.
+	(cpp_print_file_and_line, cpp_error, cpp_warning, cpp_pedwarn,
+	cpp_error_with_line, cpp_warning_with_line, cpp_pedwarn_with_line,
+	cpp_pedwarn_with_file_and_line, cpp_error_from_errno, my_strerror,
+	cpp_perror_with_name):  Re-write to use cpp_file_line_for_message
+	and cpp_message, and move to cpplib.c.
+
+Tue Apr  4 23:35:49 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* config/gnu.h (GNU_CPP_PREDEFINES): Remove -D__HURD__.
+
+Tue Apr  4 17:15:54 1995  Jeffrey A. Law  <law@mole.gnu.ai.mit.edu>
+
+	* pa.h (DO_GLOBAL_DTORS_BODY): Fix pointer -> integer assignment
+	problem.
+
+	* reorg.c (fill_simple_delay_slots): Don't use a JUMP_INSN
+	a the target of another JUMP_INSN to fill a delay slot.
+
+Mon Apr  3 19:03:48 1995  Torbjorn Granlund  <tege@adder.cygnus.com>
+
+	* cse.c (simplify_unary_operation): Sign-extend constants when
+	they have the most significant bit set for the target.
+
+	* m68k.md (umulsi3_highpart): Test for CONST_INT and CONST_DOUBLE,
+	not CONSTANT_P.
+	(smulsi3_highpart): Likewise.
+	* m68k.c (const_uint32_operand): New function.
+	(const_sint32_operand): New function.
+	* m68k.md (const_umulsi3_highpart): Use const_uint32_operand instead
+	of immediate_operand for op3.  Delete mode.
+	(const_smulsi3_highpart): Analogous change.
+
+Mon Apr  3 19:03:48 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* cse.c (simplify_binary_operation): Sign-extend constants when
+	they have the most significant bit set for the target.
+
+	* combine.c (force_to_mode, case PLUS): Sign extend masks that are
+	negative in OP_MODE.
+	(simplify_and_const_int): Sign-extend constants when they have the
+	most significant bit set for the target.
+	(merge_outer_ops): Likewise.
+	(simplify_shift_const): Likewise.
+
+Mon Apr  3 18:23:48 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* toplev.c (lang_options): Add -f{no-,}repo.
+
+Mon Apr  3 18:13:15 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (nonzero_bits, case REG): Check POINTERS_EXTEND_UNSIGNED.
+	(num_sign_bit_copies, case REG): Likewise.
+	* explow.c (convert_memory_address): New function.
+	(memory_address): Call if it needed.
+	(promote_mode, case POINTER_TYPE): Use Pmode and pointer extension.
+	(allocate_dynamic_stack_space): Convert size from ptr_mode.
+	* expr.c (clear_storage, expand_assignment, store_{expr,constructor}):
+	Use ptr_mode instead of Pmode in some places.
+	(expand_expr, expand_builtin): Likewise.
+	(push_block, store_expr): Convert size to Pmode.
+	(expand_expr, case ADDR_EXPR): Convert from Pmode to ptr_mode.
+
+Mon Apr  3 18:00:52 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* explow.c (allocate_dynamic_stack_space): Correct typo in last
+	change.
+
+	* sh.c (gen_shifty_op, case ASHIFTRT): Return 0 if shift count is not
+	a constant.
+
+Mon Apr  3 12:17:10 1995  Michael Meissner  (meissner@cygnus.com)
+
+	* expmed.c (extract_bit_field): When converting a SUBREG into a
+	REG, if the system is big endian, adjust the bit offset
+	appropriately.
+
+Mon Apr  3 00:08:45 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* config/i386/linux.h: Include "config/linux.h" instead of
+ 	"linux.h", to avoid recursion.
+
+Sun Apr  2 23:50:27 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* config/i386/gnuelf.h: Include i386/linux.h instead of
+ 	i386/linuxelf.h.
+
+Sun Apr  2 17:35:10 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* cse.c (simplify_relational_operation): Don't simplify A-B for
+	compare of A and B when the compare is unsigned.
+
+Sun Apr  2 08:23:38 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* fixincludes (stdio.h): BSDI 2.0 changed the spelling of _VA_LIST_
+	to _BSD_VA_LIST_.
+
+Sun Apr  2 07:57:28 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* i386/xm-bsd386.h: New file.
+	* configure (i[345]86-*-bsd*): Add xm_file.
+
+	* gcc.c (default_compilers): Pass -W and -w to gnat1.
+
+	* winnt/winnt.h (STDC_VALUE): Add #undef.
+	* i386/winnt.h (LIB_SPEC): Likewise.
+
+Sun Apr  2 07:55:25 1995  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* i386/winnt.h (RETURN_POPS_ARGS, ENCODE_SECTION_INFO): Call
+	chain_member_purpose, not chain_member_value.
+	(ASM_FILE_START, LIB_SPEC): Move to here.
+	* winnt/winnt.h (ASM_FILE_START, LIB_SPEC): Delete from here.
+	* tree.c (chain_member_purpose): New function.
+
+Sat Apr  1 12:19:14 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* c-typeck.c (build_binary_op): New variable build_type controls
+	type given to expression when created.  Set to integer_type_node for
+	comparison ops instead of result_type so result_type still holds type
+	in which comparison is done.  When checking for comparison between
+	signed and unsigned, use result_type rather than (possibly shortened)
+	type of op0.  Don't warn about equality comparison of signed operand
+	to unsigned constant that fits in signed type.
+
+Sat Apr  1 09:47:02 1995  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* i386/winnt.h (CPP_PREDEFINES): Add definitions for __stdcall
+	and __cdecl.
+	* winnt/winnt.h (LIB_SPEC): Add OLDNAMES.LIB.
+	* winnt/xm-winnt.h: Remove unneeded #define's for non-ANSI functions.
+	* fixinc.winnt: Remove unneeded fixes relating to __stdcall.
+
+	* objc/Makefile (SHELL): New definition.
+
+Sat Apr  1 08:25:26 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): When emitting a BARRIER, don't put it after
+	a deleted insn.
+
+	* reload.c (push_reload): Initialize secondary_{in,out}_icode.
+
+	* gcc.c (print_multilib_info): Don't use LAST_PATH if not set.
+
+Sat Apr  1 08:15:59 1995  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* vax.md (extv, extzv): Don't use immediate value for operand 1.
+
+Sat Apr  1 07:48:29 1995  Yury Shevchuk  (sizif@botik.yaroslavl.su)
+
+	* stmt.c (expand_asm_operands): Properly ignore invalid reg in clobber.
+
+Sat Apr  1 07:02:24 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c: General code cleanup.
+	Add prototypes for static functions.
+	Remove unnecessary casts to (char *); add casts to (U_CHAR *).
+	Add parentheses suggested by `gcc -Wparentheses'.
+	Rename local variables as suggested by `gcc -Wshadow'.
+	<fcntl.h>, <stdlib.h>, <string.h>, <unistd.h>: New includes.
+	<sys/time.h>, <sys/resource.h>: Include only if defined(RLIMIT_STACK).
+	<time.h>: Include, unless <sys/time.h> already does.
+	(HAVE_FCNTL_H, HAVE_STDLIB_H, HAVE_SYS_TIME_H): New symbols.
+	(HAVE_UNISTD_H, STDC_HEADERS, TIME_WITH_SYS_TIME): Likewise.
+	(__attribute__, PROTO, VA_START, PRINTF_ALIST, PRINTF_DCL): New macros.
+	(PRINTF_PROTO{,_1,_2,_3}, DO_PROTO): Likewise.
+	(bcopy, bzero, bcmp): If #defined by configuration file, use that.
+	If STDC_HEADERS is defined, use standard C functions.
+	If BSTRING is defined, or USG and VMS are not defined, use
+	the C library.  Otherwise, use my_bcopy, my_bzero, my_bcmp.
+	(localtime): Remove no-longer-necessary explicit declaration.
+	(getenv, index, rindex): Don't declare explicitly if the
+	appropriate system header should declare it.
+	(fdopen): Remove no-longer-used declaration.
+	(vprintf): Define a subsitute macro if !defined(HAVE_VPRINTF).
+	(main): Replace `fdopen (dup (fileno (stdout)), "w"))'
+	with `stdout'.
+	(get_lintcmd, rescan, create_definition): Use bcmp instead of strncmp
+	when both operands are known to be free of null bytes.
+	(check_macro_name, compare_defs, collect_expansion): Likewise.
+	(do_assert, compare_token_lists, assertion_lookup, do_line): Likewise.
+	(skip_if_group, lookup): Likewise.
+	(rescan): Remove unused label `startagain'.
+	Abort instead of printing nonsense if the stack is corrupted
+	when there was an unterminated successful conditional.
+	(pcfinclude): Include explicit double-cast through GENERICPTR
+	to identify particularly egregious type puns.
+	(create_definition, do_define, check_macro_name): Use %.*s
+	printf format to avoid painful copying-and-casting.
+	(do_once): Return void, not (unused) int.
+	(do_ident, do_pragma, do_sccs): Accept extra arguments so that
+	all directive-handler's types match.
+	(do_sccs): Define only if SCCS_DIRECTIVE is defined.
+	(skip_if_group, dump_single_macro): Add `default: break;' to
+	keep -Wswitch happy.
+	(error, warning, error_with_line, vwarning_with_line, pedwarn): Use
+	stdarg/vararg/vfprintf instead of passing bogus char * args around.
+	(pedwarn_with_line, pedwarn_with_file_and_line, fatal):  Likewise.
+	(verror, vwarning, verror_with_line, vwarning_with_line): New fcns.
+	(dump_single_macro): Abort if ap points to garbage.
+	(make_definition, make_undef, make_assertion): Parameter now char *.
+	(xmalloc, xrealloc, xcalloc, savestring, index0): Make sizes size_t
+	instead of unsigned; make pointer parameters GENERICPTR, not char *.
+	(xcalloc): Use bzero to clear memory instead of using own loop.
+
+Fri Mar 31 08:33:07 1995  Ken Raeburn  (raeburn@wombat.gnu.ai.mit.edu)
+
+	* longlong.h (umul_ppmm mc68000): Use %# instead of #.
+
+Fri Mar 31 06:37:54 1995  Michael Meissner  (meissner@cygnus.com)
+
+	* stor-layout.c (layout_decl): Implment -fpack-struct.
+	(layout_record): Ditto.
+
+	* flags.h (flag_pack_struct): New flag variable.
+
+	* toplev.c (flag_pack_struct): New flag variable.
+	(f_options): Add -fpack-struct support.
+
+	* Makefile.in (stor-layout.o): Add flags.h dependency.
+
+Fri Mar 31 08:40:16 1995  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* configure (i[345]86-*-winnt3*): Add tmake_file.
+	* i386/x-winnt (winnt.o): Deleted.
+	* i386/t-winnt: New file.
+
+Fri Mar 31 07:26:37 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* m68k/netbsd.h, m68k/hp3bsd44.h: Remove #include of machine/ansi.h.
+
+	* configure (a29k-*-bsd): Set tmake_file to t-libc-ok.
+
+	* stmt.c (expand_asm_operands): Properly handle output that can't
+	be directly written into.
+
+	* c-parse.in (structsp): Correct error in last change.
+	* c-common.c (init_attributes): A_FORMAT is only for decls.
+
+Thu Mar 30 18:27:34 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* libgcc2.c: Remove explicit 0-initializations of static variables.
+
+Thu Mar 30 18:22:39 1995  Fergus Henderson  <fjh@cs.mu.oz.au>
+
+	* c-typeck.c (internal_build_compound_expr): Warn if LHS of comma
+	expression has no side effects, or computes value which is not used.
+	* stmt.c (make warn_if_unused_value): No longer static.
+	* tree.h (warn_if_unused_value): Add declaration.
+
+Thu Mar 30 18:15:11 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* combine.c (get_last_value): Revert back to use prev_nonnote_insn
+	instead of prev_real_insn.  Modify test that ignores USE insns.
+
+	* rs6000.h (SELECT_SECTION): Apply constant DECL_INITIAL test
+	only to DECLs.
+
+	* explow.c (allocate_dynamic_stack_space): Test STACK_BOUNDARY against
+	BIGGEST_ALIGNMENT at run time instead of at compile time.
+	Give MUST_ALIGN macro a value, and test this value in if statements.
+
+Thu Mar 30 08:59:56 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-parse.in: Now have 27 shift/reduce conflicts.
+	(attribute_list): Just make chain of all attributes.
+	(attrib): Consistently put name as PURPOSE, args, if any, as VALUE.
+	(structsp): Allow attributes on any struct or union.
+	* c-common.c (enum attrs): New enum class.
+	(attrtab, attrtab_idx): New variables.
+	(add_attribute, init_attributes): New functions.
+	(decl_attributes): Major rewrite.
+	* tree.c (valid_machine_attribute): Now receive name and args.
+
+Thu Mar 30 07:20:14 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* protoize.c: Use the phrase `preprocessing directive' consistently.
+	* cccp.c (handle_directive, do_line, skip_if_group): Likewise.
+	(output_line_directive): Renamed from output_line_command.
+	(no_line_directives): Renamed from no_line_commands.
+
+	* cccp.c (rescan): Don't recognize preprocessing directives
+	within macro args.  Warn if one is found.
+
+Thu Mar 30 06:20:36 1995  H.J. Lu   (hjl@nynexst.com)
+
+	* configure (i[345]86-*-linux*): Set xmake_file=x-linux,
+	tm_file=i386/linux.h, and don't set extra_parts.
+	(i[345]86-*-linux*aout*): New configuration.
+	(i[345]86-*-linuxelf): Deleted.
+	* config/linux{,-aout}.h, config/x-linux, config/xm-linux.h: New files.
+	* config/i386/linux-aout.h: New file.
+	* config/i386/linux.h: Extensive modifications to use ELF format
+	as default.
+	(LIB_SPEC): Don't use libc_p.a for -p. don't use libg.a
+	unless for -ggdb.
+	(LINUX_DEFAULT_ELF): Defined.
+	* config/i386/linuxelf.h,config/i386/x-linux: Files deleted.
+	* config/i386/xm-linux.h: Just include xm-i386.h and xm-linux.h.
+
+Wed Mar 29 19:09:36 1995  Mike Stump  <mrs@cygnus.com>
+
+	* libgcc2.c (__throw_type_match): Update to use new calling convention.
+
+Wed Mar 29 14:53:23 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* gcc.c (process_command): Delete code modifying gcc_exec_prefix.
+	(main): Put it here after last use of gcc_exec_prefix.  For cross
+	compiler, set startfile_prefixes if gcc_exec_prefix is set and
+	standard_startfile_prefix is a relative path.
+
+	* combine.c (make_compound_operation, AND case): Undo July 7, 1994
+	change.
+
+	* mips/mips.md (call_internal1, call_value_internal1): Move %* from
+	start of assembler output to immediately before the jal.
+
+	* mips/mips.c (function_prologue): Put SDB_DEBUGGING_INFO ifdef around
+	code for SDB_DEBUG support.
+	(mips_select_rtx_section, mips_select_section): Change rdata_section
+	to READONLY_DATA_SECTION and sdata_section to SMALL_DATA_SECTION.
+	* mips/mips.h (SMALL_DATA_SECTION): Define.
+
+	* reorg.c (mark_referenced_resources): Make setjmp use all registers.
+
+	* flow.c (mark_used_regs, case SUBREG): Only fall through to REG case
+	if operand is a REG.
+
+	* i960/i960.h (TARGET_SWITCHES): Make -mold-align set
+	TARGET_FLAG_STRICT_ALIGN.
+	(STRICT_ALIGNMENT): Test TARGET_STRICT_ALIGN.
+
+	* sh/sh.c (andcosts): Modify costs to match the hardware, and add
+	explanatory comments.
+
+	* sparc/sol2.h (CPP_PREDEFINES): Add -D__SVR4.
+
+Wed Mar 29 14:30:30 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/rs6000.md (movsf): When moving to/from integer registers,
+	don't move floating point to memory if it is being simulated with
+	-msoft-float.
+
+Wed Mar 29 06:47:36 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-parse.in (initdcl): Only call decl_attributes once.
+	* c-common.c (decl_attributes): Clean up test for __mode__.
+
+Tue Mar 28 08:34:37 1995  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* i386.md (adddi3): Don't treat two non-equal MEMs as non-aliasing.
+
+Tue Mar 28 08:20:49 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* a29k.h (CONSTANT_ADDRESS_P): Provide consistent definition.
+
+Tue Mar 28 07:26:41 1995  Paul Eggert <eggert@twinsun.com>
+
+	* cccp.c (do_xifdef, do_endif): Remove unnecessary pointer comparisons.
+
+Mon Mar 27 20:45:15 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* calls.c (expand_call, store_one_arg): Don't set KEEP in calls
+	to assign_stack_temp.
+	* function.c (preserve_temp_slots): Clear ADDR_TAKEN on item
+	that we are preserving.
+
+Mon Mar 27 14:39:35 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* mips/mips.h (FIRST_PSEUDO_REGISTER): Increment.
+	(FIXED_REGISTERS, CALL_USED_REGISTERS): Add new register.
+	(MD_REG_LAST): Increment.
+	(ST_REG_FIRST, ST_REG_LAST): Increment.
+	(HILO_REGNUM): Define.
+	(enum reg_class): Add HILO_REG.
+	(REG_CLASS_NAMES): Add "HILO_REG".
+	(REG_CLASS_CONTENTS): Add HILO_REG initializer, and adjust ST_REGS
+	and ALL_REGS initializers.
+	(SECONDARY_RELOAD_CLASS): Remove.
+	(SECONDARY_INPUT_RELOAD_CLASS): Define.
+	(SECONDARY_OUTPUT_RELOAD_CLASS): Define.
+	(REGISTER_MOVE_COST): Treat HILO_REG as MD_REGS.
+	(REGISTER_NAMES): Add initialization line.
+	(DEBUG_REGISTER_NAMES): Add "accum".
+	* mips/mips.md: For each instruction which sets HI or LO, clobber
+	HILO_REGNUM with (clobber (match_scratch:MODE N "=a")).  Change
+	each explicit reference to register 66 to register 67.
+	(mulsidi3): Change to define_expand.
+	(mulsidi3_internal): New name of old mulsidi3.
+	(mulsidi3_64bit): New insn.
+	(umulsidi3): Change to define_expand.
+	(umulsidi3_internal): New name of old umulsidi3.
+	(umulsidi3_64bit): New insn.
+	(madddi_64bit, umaddi_64bit): New insns.
+	(movdi_internal2): Add case for setting HILO_REG to zero.
+	(reload_indi, reload_outdi): New define_expands.
+	(movsi_internal1, movsi_internal2): Add cases for setting MD_REGS
+	to zero, and for setting a general reg to HILO_REG.
+	(reload_outsi): New define_expand.
+	* mips/mips.c (mips_reg_names): Add "accum".
+	(mips_sw_reg_names): Likewise.
+	(mips_regno_to_class): Map HILO_REGNUM to HILO_REG.
+	(mips_move_1word): Handle moving HILO_REGNUM to a general
+	register.  Make sure that the normal MD_REG cases aren't used for
+	HILO_REGNUM.  Handle moving zero to a MD_REG.
+	(mips_move_2words): Make sure that the normal MD_REG cases aren't
+	used for HILO_REGNUM.  Handle moving zero to a MD_REG.
+	(override_options): Set mips_char_to_class for 'a' and 'b'.
+	(mips_secondary_reload_class): Add in_p argument.  Handle
+	HILO_REGNUM.
+
+Mon Mar 27 07:16:05 1995  Warner Losh  <imp@village.org>
+
+	* gcc.c: Removed __NetBSD__ from conditional.
+	Declare strerror if HAVE_STRERROR is defined; otherwise
+	declare sys_errlist and sys_nerr.
+	(my_strerror): New function.
+
+Fri Mar 24 18:08:14 1995  Jason Merrill  <jason@python.cygnus.com>
+
+	* i386/linux.h (LIB_SPEC): Don't try to link with libraries we
+	know only exist in archive form unless -static.
+
+Fri Mar 24 16:12:16 1995  Doug Evans  <dje@cygnus.com>
+
+	* Makefile.in (multilib.h): Depend on Makefile, not config.status.
+
+Fri Mar 24 15:01:17 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/rs6000.h (TARGET_MULTIPLE_SET): New target_flags bit that
+	indicates -mmultiple or -mno-multiple was explicitly passed by the
+	user, and not set as part of the cpu defaults.
+	(TARGET_SWITCHES): Set TARGET_MULTIPLE_SET bit for both -mmultiple
+	and -mno-multiple.
+
+	* rs6000/rs6000.c (rs6000_override_options): If -mmultiple or
+	-mno-multiple was explicitly used, don't override the setting with
+	the processor default.
+
+Wed Mar 22 21:42:13 1995  Doug Evans  <dje@cygnus.com>
+
+	* i960/i960.c (i960_function_arg_advance): Ensure all regs marked
+	as used if stack is also used (for va_start).
+	(i960_setup_incoming_varargs): Rewrite to be similar to Intel's
+	version, but don't allocate reg block unless necessary.
+	* ginclude/va-i960.h (varargs va_start): Save g14 explicitly.
+	Account for arguments preceding va_alist.
+
+Wed Mar 22 13:24:55 1995  Torbjorn Granlund  <tege@adder.cygnus.com>
+
+	* pa.c (singlemove_string): Handle SFmode constants again.  Simplify.
+	(zdepi_cint_p): Make some variables HOST_WIDE_INT.
+	(lhs_lshift_cint_operand): Likewise.
+	(output_and): Likewise.
+	(output_ior): Likewise.
+
+Wed Mar 22 12:40:09 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* sh.md (udivsi3): Don't clobber register 6.
+	(udivsi3, divsi3, mulsi3_call): Use a pseudo-reg with regclass 'z'
+	for output rather than hard register 0.
+	(block_move_real): Don't clobber registers 4 and 5.
+
+	* mips.c (mips_select_section): Apply constant DEC_INITIAL tests
+	only to VAR_DECLs.
+
+Wed Mar 22 03:53:17 1995  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+
+	* config.sub (rm400, rm600): New machine names.
+	(sinix5.*, sinix): New os aliases.
+	(mips-siemens): Default os to sysv4.
+
+Mon Mar 20 21:56:47 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	Merged Paul Eggert's patch to cccp.c of Wed Mar  8 18:21:51 1995:
+	* cpplib.c (do_include): Fix type typo: pcfbuflimit is char *, not int.
+
+	Merged Doug Evans' patch to cccp.c of Mon Feb 27 17:06:47 1995:
+	* cpplib.c (do_include): Check for redundant file before opening in
+	relative path case.  Don't call fstat unnecessarily.
+
+	Merged J.T. Conklin's patch to cccp.c of Wed Feb 22 20:29:31 1995:
+	* cpperror.c:  Removed __NetBSD__ from conditional.
+
+	Merged Kenner's patch to cccp.c & cexp.y of Tue Sep 20 17:49:47 1994:
+	* cppexp.c (struct operation):  Make value by HOST_WIDE_INT.
+	(cpp_parse_expr):  Change return type to HOST_WIDE_INT.
+	* cpplib (eval_if_expr):  Likewise.
+	(do_if, do_elif):  Update appropriately.
+	* cpplib.h (cpp_parse_expr):  Removed, to avoid defining HOST_WIDE_INT.
+
+	Merged Paul Eggert's patch to cccp.c of Mon Aug  8 19:42:09 1994:
+	* cpplib.c (create_definition): Warn about `#define a@', since a
+	diagnostic is now required (see ISO TC1's addition to subclause 6.8).
+	Also warn about `#define is-empty(x) (!x)'.
+
+Tue Mar 21 00:10:50 1995  Jeffrey A. Law  <law@mole.gnu.ai.mit.edu>
+
+	* x-pa (CC): Add "-Dbsd4_4".
+
+Mon Mar 20 18:40:31 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* toplev.c (print_error_function):  New function hook.
+	(default_print_error_function):  New function.  Default value
+	of print_error_function.  Code moved here from report_error_function.
+	(report_error_function):  Use print_error_function hook.
+
+Mon Mar 20 20:27:43 1995  Doug Evans  <dje@cygnus.com>
+
+	* cccp.c (do_xifdef): Handle c++ comments.
+	(do_endif): Likewise.
+
+Mon Mar 20 15:31:45 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* configure (i386 configurations): Prepend i386/ to t-crt*.
+
+Mon Mar 20 07:58:04 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stmt.c (fixup_gotos): Add missing call from last change.
+
+	* objc/misc.c: Put Alpha-specific decls before #include of runtime.h.
+
+	* alpha.h (EXTRA_SECTIONS): Write zeros first time in .rdata.
+
+Sat Mar 18 16:37:24 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* flow.c (mark_used_regs, case SUBREG): Set reg_changes_size even
+	for integer modes.
+	(mark_used_regs): Set reg_changes_size for RHS, if necessary.
+	* combine.c (gen_lowpart_for_combine): Set reg_changes_size, if needed.
+	* reload.c (push_reload): Reload a SUBREG if paradoxical and
+	class is CLASS_CANNOT_CHANGE_SIZE.
+	* reload1.c (gen_reload): Handle paradoxical SUBREGs.
+	* alpha.h (SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS): Need GENERAL_REGS
+	for paradoxical SUBREG and FLOAT_REGS.
+	(SECONDARY_NEEDED_MODE): Use actual mode for 4 bytes or wider.
+	* alpha.md (movsi): Allow FP regs and add case for store of FP reg.
+	Remove cvtlq from MEM to FP reg case.
+
+	* rtl.h (emit_insns_after): Add declaration.
+	* stmt.c (fixup_gotos): Do a cleanup for a block when it is exited
+	even if label if not defined yet.
+
+	* function.c (pop_function_context): Fix error in last change;
+	reference old value of current_function_decl before we modify it.
+
+Fri Mar 17 21:57:44 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* toplev.c (rest_of_compilation): Handle -Wreturn-type properly
+	for inlines we aren't compiling yet.
+
+Fri Mar 17 21:26:48 1995  Mike Stump  <mrs@cygnus.com>
+
+	* libgcc2.c (__register_exceptions): Handle empty tables.
+
+Fri Mar 17 11:48:31 1995  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* i386/winnt.c (winnt_function_prologue): Deleted.
+	(gen_stdcall_suffix): New function.
+
+Thu Mar 16 17:36:52 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* svr4.h (LINK_SPEC): If the user did not specify -h name, use the
+	output file name, if any.
+	* sparc/sol2.h (LINK_SPEC): Ditto.  Also, if the user did not
+	specify -R path, add an -R for each -L.
+
+	Move SunOS 4-specific assembler switches into the appropriate place.
+	* m68k/sun[23].h (ASM_SPEC): Add %{R} %{j} %{J} %{h} %{d2}
+	%{keep-local-as-symbols:-L}.
+	* i386/sun.h (ASM_SPEC): Add %{R} %{keep-local-as-symbols:-L}.
+	* sparc/sparc.h (ASM_SPEC): Ditto.
+	* gcc.c (default_compilers): Remove %{R} %{j} %{J} %{h} %{d2}
+	%{keep-local-as-symbols:-L} from assembler rules.
+
+Thu Mar 16 16:58:09 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/eabi-ctors.c: New file, handle C++ static constructors
+	and destructors without requiring anything else from a libc.
+
+	* rs6000/t-eabi (LIB2FUNCS_EXTRA): Build eabi-ctors.c.
+
+	* rs6000/eabi.asm: Do not load up register 2 if there is no .got
+	section.  Jump to the __do_global_ctors function at the end of
+	processing to call C++ static constructors, and it will return to
+	__eabi's caller.  Use normal volatile registers, instead of saving
+	and restoring registers 30 and 31.
+
+	* rs6000/eabi.h (STARTFILE_SPEC): Define as null.
+	(LIB_SPEC): Ditto.
+	(ENDFILE_SPEC): Ditto.
+	(LIBGCC_SPEC): Always look for libgcc.a.
+
+Thu Mar 16 17:05:14 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* stmt.c (warn_if_unused_value, case SAVE_EXPR): New case.
+	(warn_if_unused_value, case NOP_EXPR): OK if CALL_EXPR inside.
+
+	* c-common.c (decl_attributes): Allow alignment for TYPE_DECLs.
+
+	* Makefile.in (xsys-protos.h): Fix typo in -U operand.
+
+Thu Mar 16 13:49:10 1995  Per Bothner  <bothner@rtl.cygnus.com>
+
+	* cpplib.c, cpplib.h:  New files - a C PreProcessor library.
+	* cpphash.c, cpphash.h, cppalloc.c, cpperror.c, cppexp.c:
+	New files - utility features used by cpplib.
+	* cppmain.c:  New file - cpp replacement main program for cpplib.
+	* Makefile.in:  New rules to build cppmain.
+
+Thu Mar 16 16:11:05 1995  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* i386/winnt.h (FUNCTION_PROLOGUE, HAVE_probe, gen_probe): Deleted.
+	(ENCODE_SECTION_INFO, VALID_MACHINE_DECL_ATTRIBUTE): New macro.
+
+Thu Mar 16 15:58:24 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (apply_distributive_law, case SUBREG): Fix typo when
+	checking for paradoxical SUBREG.
+
+Wed Mar 15 18:45:08 1995  Doug Evans  <dje@cygnus.com>
+
+	* libgcc1-test.c: Renamed from cross-test.c.
+	* Makefile.in (LIBGCC1_TEST): Renamed from CROSS_TEST.
+	(all.cross): Delete $(ENQUIRE) dependency.
+	(libgcc1-test): Renamed from cross-test.
+	Delete unnecessary gcc-cross and $(LIBGCC) dependencies.
+	Link with -nostartfiles -nostdlib
+	`$(GCC_FOR_TARGET) --print-libgcc-file-name`.
+	(libgcc1-test.o): Renamed from cross-test.o.
+	Change gcc-cross dependency to xgcc since the latter is used.
+
+Wed Mar 15 13:49:21 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* tree.c (save_tree_status): Now takes a tree 'context' instead of
+	a boolean 'toplevel' as an argument.  If 'context' is not
+	current_function_decl, create a new obstack for the new function.
+	Also save inline_obstacks.
+	(restore_tree_status): No longer takes a second argument.  Also
+	restore inline_obstacks.
+	(temporary_allocation): Clear inline_obstacks.
+	(permanent_allocation): Free up the obstacks in inline_obstacks.
+
+	* function.h (struct function): New fields contains_functions and
+	inline_obstacks.
+
+	* function.c (push_function_context_to): Now takes a tree
+	'context' instead of a boolean 'toplevel' as an argument.
+	Also save current_function_contains_functions.
+	(push_function_context): Pass current_function_decl to it.
+	(pop_function_context_from): Takes 'context' instead of 'toplevel'.
+	Set current_function_contains_functions properly.
+	(pop_function_context): Pass current_function_decl to it.
+
+Wed Mar 15 14:53:09 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/rs6000.md (abssi2): Turn into a define_expand.  If
+	TARGET_POWER, do old code that uses the abs instruction.  If not,
+	do abs in three instructions, using a temporary register, which
+	enables generating more reasonable code for sne.  Add a recognizer
+	for negative of the absolute value.  Add define_splits for the
+	PowerPC.
+	(sne insn): Add a recognizer for sne on the PowerPc to use two
+	instructions, compared to the four generated using the absolute
+	value insn.
+
+Tue Mar 14 18:38:40 1995  J.T. Conklin  <jtc@cygnus.com>
+
+	* m68k.md ({add,sub,mul,div}[sdx]f3): Add new patterns for recognizing
+	SImode, HImode, and QImode operands.
+
+Mon Mar 13 18:59:36 EST 1995  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.h (CPP_SPEC): Add PPC403.
+	(processor_type): Add PPC403.
+	(RTX_COSTS): Add PPC403.
+	* powerpc.h (CPP_SPEC): Add PPC403.
+	* sysv4.h (CPP_SPEC): Add PPC403.
+	* rs6000.c (processor_target_table): Add PPC403.
+	* rs6000.md (define_attr cpu and function units): Add PPC403.
+
+Mon Mar 13 14:40:23 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/rs6000.md (call, call_value insns): Do not put a nop
+	after a bl instruction on System V.4 and eABI.
+
+	* rs6000/sysv.4 (SUBTARGET_SWITCHES): Add support for
+	-mno-traceback to suppress the V.4 traceback word.
+	(ASM_DECLARE_FUNCTION_NAME): Don't put out a traceback work if
+	-mno-traceback.
+
+Mon Mar 13 13:36:37 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* t-svr4, i386/t-{crtpic,sol2}, m88k/t-svr4, sparc/t-sol2:
+	Use -fPIC, rather than -fpic, for building crtstuff.
+
+Sat Mar 11 17:27:08 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* configure: Use aix3newas.h for AIX 3.2.4 and 5.
+	* rs6000/aix41.h: Undefine ASM_OUTPUT_EXTERNAL{,_LIBCALL}.
+	* rs6000/aix3newas.h: New file.  Define ASM_SPEC to -u, and
+	undefine ASM_OUTPUT_EXTERNAL{,_LIBCALL}.
+
+Sat Mar 11 06:42:50 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* dbxout.c (dbxout_symbol): Properly handle decl whose DECL_NAME
+	points to a TYPE_DECL with a zero TYPE_NAME.
+
+Fri Mar 10 18:18:33 1995  Torbjorn Granlund  <tege@cygnus.com>
+
+	* pa.h (PROMOTE_MODE): Define.
+
+Fri Mar 10 14:37:58 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* sdbout.c (sdbout_record_type_name): If TYPE_NAME is
+	a TYPE_DECL, get name from DECL_NAME.
+
+Fri Mar 10 14:09:26 1995  Doug Evans  <dje@cygnus.com>
+
+	* arm/riscix.h (SUBTARGET_SWITCHES): Renamed from
+	ARM_EXTRA_TARGET_SWITCHES.
+	* arm/riscix1-1.h (SUBTARGET_SWITCHES): Likewise.
+	* arm.h (SUBTARGET_SWITCHES): Likewise.
+	(TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
+	(TARGET_SWITCHES): Add -msoft-float, -mhard-float.
+	(BYTES_BIG_ENDIAN): Delete #ifndef/#endif.
+	(CONDITIONAL_REGISTER_USAGE): If -msoft-float, disable fp regs.
+	(FUNCTION_VALUE): R16 is return reg only if !-msoft-float.
+	(LIBCALL_VALUE): Likewise.
+	* arm.md (all fp patterns): Conditionalize on TARGET_HARD_FLOAT.
+	(*movsf_soft_insn, *movdf_soft_insn): New patterns.
+
+Fri Mar 10 13:53:46 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* reorg.c (steal_delay_list_from_target): Exit at the top if the
+	branch in SEQ is not a single set.
+
+	* sh.md (movdi define_split, movdf define_split): Correct indentation
+	and formatting.  Make the condition fail if an operand is a MEM
+	with an auto-inc address.
+
+	* varasm.c (copy_constant): Copy operand of ADDR_EXPR if it is a
+	constant.
+
+	* mips/abi64.h (SETUP_INCOMING_VARARGS): Correct arguments to
+	move_block_from_reg call.
+
+	* expr.c (expand_assignment): When offset is zero, make new MEM
+	before setting MEM_VOLATILE_P.
+
+	* reload.c (find_reloads, case 'o'): Accept a fully reloaded
+	auto-increment address.
+
+	* combine.c (max_uid_cuid): New static variable.
+	(INSN_CUID): Call abort if INSN is out of range.
+	(combine_instructions): Set max_uid_cuid.  Set uid_cuid directly
+	instead of through INSN_CUID.
+	(get_last_value): Use prev_real_insn instead of prev_nonnote_insn.
+	Ignore USE insns generated by combine.
+
+Fri Mar 10 13:47:08 1995  Rod Barman  <rodb@cs.ubc.ca>
+
+	* m68k/fpgnulib.c (__fixdfsi): Catch values < 0.5 in magnitude.
+
+Fri Mar 10 12:02:33 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* fixincludes: Fix `typedef struct term;' on hppa1.1-hp-hpux9.
+
+Fri Mar 10 05:50:11 1995  Oliver Kellogg  (Oliver.Kellogg@RST13.DASA.DBMAIL.d400.de)
+
+	* 1750a.c (sectname): Reverse Init and Normal.
+	(print_operand_address, case PLUS): Add case for LABEL_REF.
+	(print_operand_address, case LABEL_REF): Split fom SYMBOL_REF.
+	(print_operand_address, case CODE_LABEL): New case.
+	(ASM_FILE_END): Delete.
+	* 1750a.h (FUNCTION_EPILOGUE): Restore stack before freeing local vars.
+	(DEFAULT_SIGNED_CHAR): Now 1.
+	(DATA_SECTION_ASM_OP): Use pseudo-op for read-only data (later copied).
+	(JUMP_TABLES_IN_TEXT_SECTION): Define.
+	(ASM_OUTPUT_ASCII): Split into multiple lines if long.
+	(ASM_OUTPUT_{CHAR,SHORT,INT,LONG_INT}): Split up.
+	(ASM_OUTPUT_COMMON): Call check_section.
+
+Thu Mar  9 12:46:53 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000.md (movsf): Do not call truncdfsf2 for non PowerPC
+	when expanding a store to memory and -msoft-float was used.
+
+Thu Mar  9 08:51:35 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-decl.c (start_function): Handle new parameter ATTRIBUTES.
+	* c-tree.h (start_function): Add new parameter.
+	* c-lang.c (finish_file): Pass new parm to start_function.
+	* objc-act.c (build_module_descriptor, really_start_method): Likewise.
+	* c-parse.in (fndef, nested_function): Pass prefix_attributes
+	to start_function.
+	(setspecs): Save prefix_attributes in declspec_stack.
+	(decl rules): Restore prefix_attributes along with current_declspecs.
+	(setattrs): Concatenate prefix_attributes to previous value.
+	* c-common.c (decl_attributes): Handle prefix and suffix attributes
+	the same way.
+
+	* print-tree.c (print_node): Fix typo in printing large INTEGER_CST.
+
+	* varasm.c (assemble_variable): Consistently use DECL_SIZE for
+	everything.
+
+	* c-typeck.c (convert_for_assignment): Fix typo in testing for
+	pointer to function type.
+
+	* varasm.c (record_constant_1): Handle NON_LVALUE_EXPR.
+	Rewrite to use switch instead of if/then/elseif/else.
+
+Wed Mar  8 18:21:51 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (do_include): Fix type typo: pcfbuflimit is char *, not int.
+
+Wed Mar  8 17:30:29 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (force_fit_type): Always propagate OVERFLOW.
+
+	* rtl.def (INLINE_HEADER): Add new "e" field.
+	* rtl.h (FORCED_LABELS): New field; other fields adjusted.
+	(gen_inline_header_rtx): New parm FORCED_LABELS.
+	* emit-rtl.c (gen_inline_header): Add new parm FORCED_LABELS.
+	* integrate.c (initialize_for_inline, output_inline_function):
+	Handle FORCED_LABELS.
+
+Wed Mar  8 13:47:20 1995  Jason Merrill  (jason@cygnus.com)
+
+	* alpha.h (WORD_SWITCH_TAKES_ARG): Add -rpath.
+	(LINK_SPEC): Pass through -taso and -rpath.
+	* alpha/osf12.h (LINK_SPEC): Ditto.
+
+Wed Mar  8 09:59:56 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/eabi.asm: Rewrite so that the initialized pointers go
+	into the .got2 section, which allows eabi.asm to be assembled with
+	the -mrelocatable option.  Move the data picked up from the bl
+	instruction to before the traceback tag.
+
+	* rs6000/sysv4.h (CPP_SPEC): Define _RELOCATABLE if -mrelocatable
+	switch is used.
+
+	* libgcc2.c (__new_handler): Don't initialize the pointer variable
+	with the address of __default_new_handler, which may not work in
+	some shared library mechanisms.
+	(__builtin_new): If __new_handler is NULL, call the function
+	__default_new_handler.
+
+Tue Mar  7 17:34:59 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* i960.h (PROCESS_PRAGMA): Define.
+	(ROUND_TYPE_ALIGN): Pass maximum of COMPUTED and SPECIFIED to
+	i960_round_align.
+	(ROUND_TYPE_SIZE): Delete.
+	* i960.c (process_pragma): Uncomment, and rewrite for gcc 2.
+	(i960_round_size): Delete.
+	(i960_round_align): Don't adjust suggested alignment downward.
+	Restrict alignment to value set by #pragma align.
+
+Tue Mar  7 12:14:46 1995  Doug Evans  <dje@cygnus.com>
+
+	* configure (sparc64-*-elf): Add crtbegin.o, crtend.o to extra_parts.
+	* sparc/sp64-elf.h (TARGET_VERSION): Define.
+	(CPP_PREDEFINES): Delete sun, sparc, unix.  Delete OS assertions.
+	(ASM_SPEC): Define.
+	(LINK_SPEC): Delete solaris stuff, this is an embedded target.
+	(STARTFILE_SPEC, ENDFILE_SPEC): Define.
+
+Mon Mar  6 17:54:01 1995  Doug Evans  <dje@cygnus.com>
+
+	* Makefile.in (install-common): Fix typo in installation of cpp.
+	Likewise with gcc-cross.
+
+Mon Mar  6 02:29:05 1995  Jeffrey A. Law  <law@mole.gnu.ai.mit.edu>
+
+	* pa.md (movsicc): New expander.
+
+Fri Mar  3 13:34:20 1995  Michael Meissner  (meissner@cygnus.com)
+
+	* rs6000/sysv4.h (ASM_SPEC): If -mrelocatable was passed to
+	compiler, pass it on to the assembler.
+
+Fri Mar  3 12:11:28 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* fixincludes: Add fixes for VxWorks header files.
+	* ginclude/stddef.h: If VxWorks typedef macros are defined, invoke
+	them as appropriate.
+
+Fri Mar  3 05:48:54 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (dump_single_macro): Fix typo: % wasn't properly
+	doubled in printf formats.
+
+Thu Mar  2 19:44:02 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* expr.c (expand_expr, CLEANUP_POINT_EXPR): Force the operand out
+	of memory before running cleanups.
+
+Thu Mar  2 19:15:24 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (rescan): Prevent accidental token-pasting to
+	get !=, *=, /=, ==, or ^=.
+
+Thu Mar  2 15:37:13 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* c-typeck.c (build_binary_op): Avoid spurious warning
+	comparing enumerator to unsigned variable.
+
+Thu Mar  2 18:18:38 1995  J.T. Conklin  <jtc@netbsd.org>
+
+	* m68k.md (sqrtsf2,sqrtdf2): Use fp precision specifiers.
+
+Thu Mar  2 18:09:01 1995  Stephen L Moshier  (moshier@world.std.com)
+
+	* c-lex.c (yylex, case !NOT_FLOAT): Remove previous change.
+
+Thu Mar  2 15:26:50 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (bootstrap*): Pass new STAGE_PREFIX to recursive makes.
+
+Wed Mar  1 14:52:16 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* i960/i960-coff.h (ASM_FILE_START): Define.
+	(CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define.
+	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Define.
+	(CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Define.
+	(INT_ASM_OP): Define.
+	(ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define.
+	* i960/vx960-coff.h (CPP_PREDEFINES): Define.
+	(CPP_SPEC): Define.
+	(CC1_SPEC): Default to -mca.
+
+Wed Mar  1 11:10:54 1995  Michael Meissner  (meissner@cygnus.com)
+
+	* rs6000/rs6000.c (output_prologue): Do not emit the word that
+	gives the PC relative location to the local GOT table for the
+	-mrelocatable option here.
+	* rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Emit it here.
+
+	* t-eabi (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Build -msoft-float
+	and -mrelocatable versions of the library.
+
+	* rs6000/powerpc.h (CPP_PREDEFINES): Define the cpu and machine as
+	powerpc, not rs6000.
+
+	* libgcc2.c (_unwind_function): Clone for powerpc, using the
+	PowerPC mnemonics.
+
+	* rs6000/rs6000.md (uminsi3, umaxsi3): Silence warnings that
+	-2147483648 is too large to fit in a signed integer on 32-bit
+	hosts.
+
+Wed Mar  1 06:48:31 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* fold-const.c (decode_field_reference): Don't check TREE_CODE
+	of EXP; let get_inner_reference decide if have reference.
+	Allow no bit reference if have AND_MASK.
+	(all_ones_mask_p): Use tree_int_cst_equal, not operand_equal_p.
+	(unextend): New function.
+	(fold_truthop): For constant cases, use new function, rework
+	conversion, and warn if comparison can never be true.
+
+	* expr.c (store_expr): Do conversion in two steps for promoted lhs.
+
+See ChangeLog.9 for earlier changes.
diff --git a/gcc/ChangeLog.2 b/gcc/ChangeLog.2
new file mode 100644
index 0000000..a5e092c
--- /dev/null
+++ b/gcc/ChangeLog.2
@@ -0,0 +1,7229 @@
+Thu Jan 31 00:33:33 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* loop.c (scan_loop): Check each libcall for regs it uses
+	but does not mention in the equivalent value.
+	To move the libcall, we must have at most one such reg
+	and it must be moved as well.
+	(libcall_other_reg): New subroutine.
+	* rtlanal.c (record_excess_regs): New function.
+
+	* tree.c (gcc_obstack_init): New function.
+	(init_obstacks, save_tree_context): Use that.
+	(OBSTACK_CHUNK_SIZE): New parameter.
+	* xm-next.h: New file.
+	* configure (m68k/next): Use that file.
+
+	* flags.h (flag_no_common): Declare new flag to treat external defs
+	as ANSI specifies (i.e. not as common).
+	* toplev.c (flag_no_common, f_options): Support -fno-common.
+	* varasm.c (assemble_variable): Don't output a common if
+	flag_no_common is set.	Treat as if initialized to 0.
+
+	* gcc.c (default_compilers): Define __ASSEMBLER__ for .S file.
+
+	* tm-aix386.h (ASM_OUTPUT_LOCAL): Ok to use bss, since no shared libs.
+	(LINK_SPEC): Pass through all -K and -T options.
+	* xm-aix386.h (TRUE, FALSE): Undef if already def, to avoid warning.
+
+	* tm-m68k.h (TARGET_68040, TARGET_68040_ONLY): New machine flags.
+	(TARGET_SWITCHES): Alternatives to set them.
+	* tm-next.h (TARGET_DEFAULT): Changed to 0407 for 68040.
+
+	* out-m68k.h (standard_68881_constant_p):  Always return 0
+	for TARGET_68040 since fmovecr is no longer implemented in hardware.
+
+	* m68k.md (ftruncdf2, ftruncsf2): Don't emit fintrz for
+	TARGET_68040, since it is no longer implemented in hardware.
+	(muldf3): Don't use fscale on 68040, since not implemented in hardware.
+
+	* toplev.c (optimize): Now stores specified optimization level.
+	(main): Keep the largest optimization level specified.
+	Handle any integer.
+
+	* c-decl.c (pushdecl): Don't make an extern global for -traditional
+	if it uses any local types.
+
+	* tm-sun386i.h (PCC_BITFFIELD_TYPE_MATTERS): Use 1 as value.
+
+Wed Jan 30 12:41:15 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* fixincludes (sys/systypes.h): Edit this to handle _SIZE_T, etc.
+
+	* function.c (put_var_into_stack): Allocate var ref chain link
+	while in the proper function's obstack.
+
+	* fold-const.c (const_binop): Don't crash for real/0 if have infinity.
+
+	* flow.c (mark_set_1): Don't make log link for hard reg in asm insn.
+
+Wed Jan 30 07:45:33 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* sched.c (schedule_block): Indicate what insns constitute each
+	basic block.
+
+Tue Jan 29 12:35:42 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* Makefile.in (gnulib1.*, gnulib2.*): Declare them phony targets.
+
+	* print-tree.c (print_node): Print message if TREE_PERMANENT is wrong.
+	* tree.c (object_permanent_p): New function.
+
+	* print-tree.c (print_node): Remove DECL_LANG_FLAG_10.
+
+Tue Jan 29 10:07:48 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (minus/xor/and, neg/ne/compare/and): Delete these.  This
+	should be done by combine.
+	(compare operator): Eliminate except when a SET_SRC.
+	* tm-m88k.h (OPTIMIZATION_OPTIONS): -fomit-frame-pointer is a
+	default optimization.
+
+Mon Jan 28 12:52:11 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* tree.h (DECL_VIRTUAL_P): Renamed from TREE_VIRTUAL.
+	(struct tree_common): Eliminate virtual_flag.
+	(struct tree_decl): Add virtual_flag.
+
+	* Makefile.in (enquire.o): Pass -DNO_STDDEF.
+
+	* m68k.md (tablejump): Now have a define_expand that does
+	different things depending on CASE_VECTOR_PC_RELATIVE,
+	and a separate define_insn for each case.
+
+	* function.h (outer_function_chain): Declare the variable.
+
+	* tree.c (debug_obstack): Fix typos.
+	* tree.h (struct tree_common): Fix typo.
+
+	* Makefile.in (GNULIB1_TARGET, GNULIB2_TARGET): Variables deleted.
+	(gnulib): Depend on gnulib1.target and gnulib2.target explicitly.
+
+	* dbxout.c (dbxout_type): Use DECL_VIRTUAL_P, not TREE_VIRTUAL.
+
+	* cplus-tree.h (TREE_PRIVATE, TREE_PROTECTED): #if 0.
+
+	* cexp.y (keywords): Cast names for parens to U_CHAR *.
+
+	* gcc.c (process_command): Fix typo setting switches[n_switches].arg.
+
+	* loop.c (loop_reg_used_before_p): Check insns before INSN, not after.
+
+	* objc-actions.c (objc_finish): Renamed from lang_finish.
+	* objc-parse.y (program): Call objc_finish at the end.
+
+	* Changes from Matthew Self (mself@next.com):
+
+	* objc-parse.y:	 Since objc-parse.y was so out of date with
+	respect to c-parse.y, I started over with c-parse.y and
+	reintegrated the Objective-C modifications.  Now that
+	Objective-C is working I hope that objc-parse.y will be kept
+	more up to date....  I did not re-integrate the lexer since I
+	don't have gperf working.  I simply cut and pasted what
+	Stallman had in objc-parse.y.  Someone with access to gperf
+	should re-generate this stuff.
+
+	* objc-actions.c (comp_method_with_proto,
+	comp_proto_with_proto):	 Stallman's change to use the
+	functions end_temporary_allocation and
+	resume_temporary_allocation is incorrect, since it always
+	leaves allocation temporary, whether it was before or not. 
+
+	Perhaps the push and pop functions would do the trick....
+
+	* objc-actions.c (get_arg_type_list):  Use new function
+	groktypename_in_parm_context.
+
+	* objc-actions.c (_OBJC_SELECTOR_REFERENCES_decl,
+	_OBJC_SELECTOR_REFERENCES_id):	Removed.
+
+	* objc-actions.c (synth_module_prologue):  Eliminated code to
+	forward declare the selector references array.
+
+	* objc-actions.c (init_objc_symtab):  Eliminated code to
+	initialize "refs" field in objc_symtab structure (which is
+	now vestigial).
+
+	* objc-actions.c (build_selector_translation_table): Rewrote.
+
+	* objc-actions.c (build_selector_reference):  New routine.
+
+	* objc-actions.c (build_message_expr, build_selector_expr):
+	Use new routine.
+
+	* config/tm-next.h (GO_IF_INDEXABLE_BASE):  Don't use pc
+	relative addressing for LABEL_REF's.  Since branch tables are
+	in the const section, we treat LABEL_REF's like SYMBOL_REF's
+	here.  Otherwise invalid addresses were being generated.
+
+	* config/tm-next.h (CASE_VECTOR_PC_RELATIVE, CASE_VECTOR_MODE):
+	Use absolute branch tables rather than relative ones.
+
+	* config/tm-next.h (ASM_OUTPUT_MAIN_SOURCE_FILE_END):  Output
+	an N_SO symbol with no name to mark the end of the module.
+	This is needed to support scattered loading on the NeXT.
+
+	* config/out-next.c (handle_pragma):  Call to xrealloc had wrong args.
+
+	* configure: Entry for NeXT must set out_file to out-next.c.
+
+	* config/out-next.c:  Typo: "flags" -> "flags.h"
+
+	* config/tm-next.h (LIB_SPEC):	Brought up-to-date.  There
+	are probably more changes needed here.
+
+	* c-decl.c (pushdecl_top_level):  New function.	 This was
+	copied from an older version of g++.
+
+	* c-decl.c (init_decl_processing): Make alloca first arg sizetype.
+
+	* c-decl.c (groktypename_in_parm_context): New function.
+
+Mon Jan 28 07:07:01 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (loop_reg_used_before_p): Don't use INSN_LUID since INSN
+	might have been made by loop.c for an outer loop.
+
+	* loop.c (move_movables, strength_reduce): Replace register references
+	in REG_NOTES as well as PATTERN.
+
+	* loop.c (strength_reduce): Call maybe_eliminate_biv twice, not 
+	three times.
+	(maybe_eliminate_biv): Don't abort if elimination fails even though
+	we thought it wouldn't.	 This can happen if certain insn patterns 
+	aren't valid.
+	(maybe_eliminate_biv_1): Ensure that we do not change the insn at
+	all if all the required changes can't be done.
+
+Sun Jan 27 21:26:29 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* Makefile.in: Rename config-dir back to config.
+
+Sat Jan 26 17:48:22 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* objc-parse.y (program): Call objc_finish.
+	* objc-actions.c (objc_finish): Renamed from lang_finish.
+
+	* objc-actions.c, objc-parse.y: New version from NeXT.
+
+Sat Jan 26 17:37:48 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case COND_EXPR): Disable special-case of
+	A ? B : C when B and C are simple.  This is now done better by jump.
+
+Sat Jan 26 13:16:58 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* tree.h (TREE_PRIVATE, TREE_PROTECTED, TREE_VIRTUAL): New macros.
+	(struct tree_common): New flag fields.
+	* dbxout.c (dbxout_type): Get rid of conditional; can always use these.
+
+	* cccp.c (lookup_import): Do return -2 if file found.
+	(main): Handle `.m' suffix like `.S'.
+
+	* configure (m68k/next): Use out-next.c.
+
+	* WORD_SWITCH_TAKES_ARG and SWITCH_TAKES_ARG now give # of args.
+	* gcc.c (struct switchstr): New field `args' replaces `part2'.
+	(process_command): Record all the args a switch has.
+	(give_switch): Pass all the strings in `args'.
+
+	* tree.h (struct tree_common): Normally make `code' an enum tree_code.
+
+	* m68k.md (tablejump): New pattern.
+	(casesi, etc.): Deleted.
+
+	* tree.c (debug_obstack): New function.
+
+	* toplev.c (compile_file): Call dbxout_finish near the end.
+	* dbxout.c (dbxout_finish): New function.
+
+	* print-tree.c (print_node): Always print ERROR_MARK node briefly. 
+
+	* objc-actions.h (METHOD_ENCODING, CLASS_CATEGORY_LIST): New macros.
+
+	* gcc.c (execute): Make fatal signal message clearer.
+	(default_compilers): For .m file, define __OBJC__,
+	and pass -lang-objc and -gen-decls to cc1.
+
+	* dwarfout.c: Include output.h.
+	(current_function_decl, asm_out_file): Explicit extern decls deleted.
+	(abort, fatal): Explicit extern decls deleted.
+	(NO_RETURN): Definition deleted.
+	(named_labels): Don't declare it.
+	(output_symbol): Don't use it.
+	(MAXPATHLEN): Don't define this.  Don't include sys/param.h.
+	(output_source_file_die): Avoid limit on file name size.
+	(output_symbols_for_stmt): Deleted.
+	(output_symbols_for_block): Adapt to using BLOCK, not LET_STMT.
+
+	* configure: Renamed from `config'.
+	* config: Directory renamed back from config-dir.
+
+Sat Jan 26 1990	 Ron Guilmette (rfg at ncd.com)
+
+	* README.DWARF: updated to reflect changes to dwarfout.c, the
+	inclusion of dwarf.h (and its changes) and the fact that the
+	DWARF support is no longer directly tied to the DG versions of
+	GCC.
+
+	* dwarfout.c: included a patch (provided by Ray Essick) to allow
+	dwarfout.c to properly get a value for MAXPATHLEN even on (old)
+	System V.3 systems.
+
+	* dwarfout.c: added support for long long types (as suggested by
+	Ray Essick).
+
+	* dwarfout.c: added support for the AT_comp_dir attribute.  Also,
+	as part of this change, the name of the compilation directory is
+	no longer placed into in the .sources section.
+
+	* dwarfout.c: added support for the AT_addr_ranges attribute.
+
+	* dwarfout.c: added support for the AT_prototyped attribute.
+
+	* dwarfout.c: added support for the AT_src_info attribute. Also,
+	as part of this change, there is no longer a "special" entry
+	at the start of the .srcinfo section for each compilation unit,
+	and the contents of the "special" final entry in the .srcinfo
+	section have changed (to { -1, -1 }).
+
+	* dwarfout.c: modified to allow additional GNU DWARF extensions
+	to be generated whenever the corresponding extended attribute
+	codes are defined (presumably within a modified dwarf.h file).
+
+	* dwarfout.c: use the section names .srcinfo and .sources rather
+	than .finfo and .files.	 The additional specificity is warranted
+	because the DWARF information may someday include information
+	about object files as well as source files.
+
+	* dwarfout.c: fixed a bug where a type attribute was being generated
+	for functions and function types even when the return type was
+	void.  "Standard" dwarf says that if the return type for a function
+	or function type is void then no type attribute should be generated
+	for the corresponding DIE.
+
+Sat Jan 26 04:22:08 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-lex.c (interface_strcmp): Handle String.String.Map.cc and
+	friends.
+
+	* cplus-typeck.c (build_unary_op): Merge change to generate better
+	code from simple cast expression.
+
+Fri Jan 25 10:06:28 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl.c (pushtag): Don't call `pushdecl' if the type's name
+	is anonymous, lest we recurse ad infinitum.
+
+Thu Jan 24 23:56:55 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* optabs.c (expand_binop, expand_unop): Word at a time only for ints.
+
+Thu Jan 24 09:40:37 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* sdbout.c (sdbout_symbol): Apply changes in dbxout.c to deal with
+	SUBREG.	 Don't emit a symbolic definition for variables that can't
+	be represented.
+
+Thu Jan 24 21:18:15 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* config: Conditional for setting $os was backward.
+	Also mention name of make-var file if one exists.
+
+	* out-i386.c: Delete a large piece of accidental insertion.
+
+	* dwarfout.c: Don't include c-tree.h or cplus-tree.h.
+	(INT_TYPE_SIZE, etc.): Define them if not overridden.
+	(fundamental_type_code): Distinguish types by TYPE_PRECISION.
+	But also check for the built-in C type names.
+
+Thu Jan 24 15:23:17 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* gcc.c (default_compilers): Pass all args starting with "O" to 
+	cc1 so that -O2 is passed along.
+
+Thu Jan 24 13:10:27 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* stmt.c (expand_expr_stmt): Don't warn for any casts to void.
+
+	* config: Fix typos setting shell vars.
+	Rename config to config-dir.
+	Insert missing \ in case for delta.
+
+Wed Jan 23 16:31:27 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (emit_jump_insn_{before,after}): Allow PATTERN to be
+	a SEQUENCE.
+
+	* loop.c (check_dbra_loop): Use emit_jump_insn_before when writing 
+	out compare and jump sequence, not emit_insn_before, to ensure that
+	if we only write one insn  that it is a JUMP_INSN.
+
+	* toplev.c (flag_rerun_cse_after_loop): New: -frerun-cse-after-loop.
+	(rest_of_compilation): Rerun cse after loop if desired.
+	(main): Add support for -O2.
+	Prescan args for -O and -O2 to set default values for many -f options.
+	Add call to new macro OPTIMIZATION_OPTIONS.
+	Save status of -version until all args have been processed; then
+	write out the info.
+	(print_single_switch): New function.
+	(print_switch_values): Renamed from print_target_switch_defaults.
+	Now prints out currently enabled -f, -m, and -W switches.  Calls
+	print_single_switch to write out switch and handle long lines.
+
+	* rtl.def (SUBREG): Change rtx class from 'o' to 'x'.
+
+	* cse.c (find_comparison_args): Ignore hash table entry if not valid.
+
+Wed Jan 23 00:12:24 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* config: File renamed from config.gcc.
+	Allow abbreviations for +-options.
+	Allow config HOST TARGET.
+	Support +gas and +nfp as separate options.
+	Rename all the machine alternatives to general scheme:
+	cpu/company-system.  Allow abbreviations for cpu/company pairs.
+	* config-dir: Dir renamed from config.
+
+	* Makefile.in (install-dir): Create bindir here.
+
+	* cccp.c (main): Delete duplicat p++ left in last change.
+
+	* Makefile.in (GNULIB1, GNULIB1_TARGET): Renamed from GNULIB*.
+	(gnulib1.portable, gnulib1.target): Renamed from gnulib.*.
+	They now make a file named gnulib1, from gnulib1.c.
+	(LIB1FUNCS, LIB1FUNCS_EXTRA): Renamed from LIBFUNCS*.
+	(for-bootstrap, rest.encap): Depend on gnulib, not GNULIB2_TARGET.
+	(stamp-gnulib2): This file is no longer used.
+	(gnulib2.portable): Old stamp-gnulib2 rule renamed to this.
+	Now create a file named gnulib2, from gnulib2.c alone.
+	(gnulib): New target, combines gnulib1 and gnulib2 into gnulib.
+	(mostlyclean): Delete additional temporary files.
+	No need to avoid deleting stamp-gnulib2.
+	(clean): Delete gnulib1 and gnulib2, but not stamp-gnulib2.
+	(realclean): No need to delete gnulib here.
+	(install-gnulib): Changed dependencies.
+	* gnulib1.c: File gnulib.c renamed.
+
+	* Makefile.in (install-dir): Create bindir here.
+
+	* cccp.c (main): Delete duplicat p++ left in last change.
+
+Sun Jan 20 14:00:16 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-class.c (finish_struct): Conditionalize EMPTY_FIELD_BOUNDARY
+	on whether or not it is defined.  Similarly for	PCC_BIT_FIELD_MATTERS. 
+
+Wed Jan 16 18:56:30 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cse.c (fold_rtx): When folding dispatch table, stay inside bounds.
+
+Wed Jan 16 08:11:48 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads_toplev): Fix typo in recent change.
+
+	* reload1.c (eliminate_regs): If we have a non-paradoxical
+	(subreg (pseudo)) and the pseudo has an equivalent memory
+	location, replace the SUBREG because find_reloads may do it.
+
+Tue Jan 15 01:41:28 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* loop.c (scan_loop): Condition for movability was wrong.
+	A reg that isn't necessarily set may be unsafe
+	even if used only inside the loop.
+	However, a reg used only in the same basic block after the set is safe.
+	So is a reg that isn't a user-level variable.
+
+	* loop.c (loop_optimize): Reverse order of scanning loops.
+
+	* loop.c (scan_loop): After skipping the insns of a libcall sequence,
+	ignore notes when searching back to find the last insn of the seq.
+
+	* cccp.c (main): Use envvar GCC_EXEC_PATH to specify translation
+	of prefixe in default include dirs.
+
+	* cccp.c (main): Do path_includes after explicit options.
+
+	* combine.c (try_distrib): Don't push + thru negative count shifts.
+
+Mon Jan 14 09:40:28 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* cplus-lex.c (yylex): Even in `extern "C"', the keywords are the
+	same.
+
+	* cplus-lex.c (input_from_saved_text): New function.  Set string
+	source for FILE pointer.
+	(yylex, do_pending_inlines): Call it.
+
+	* cplus-parse.y (stmts, stmt): Type is now `tree'.  Some actions
+	fixed to return it.
+
+	* cplus-lex.c (reinit_parse_for_block): New function, with most of
+	the guts of reinit_parse_for_method.  Magic argument IS_TEMPLATE
+	chooses a set of error messages.
+	(reinit_parse_for_method): Call it.
+	cplus-template.c (reinit_parse_for_template): New function, also
+	calls reinit_parse_for_block.
+
+Mon Jan 14 07:20:36 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (skip_consec_insns, move_movables, strength_reduce): Don't
+	call find_reg_note on a NOTE.
+
+Sun Jan 13 15:45:23 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cccp.c: Separate namespace for assertions.  Don't expand macros
+	inside assertions in #if.  Allow arbitrary token sequences.
+	(rescan): Special handling after `#' if assertions_flag.
+	(expand_to_temp_buffer): New arg sets assertions_flag. Callers changed.
+	(eval_if_expression): Pass 1 for that arg.
+	(skip_paren_group): New function.
+	(assertion_hashtab, ASSERTION_HASHSIZE, ASSERTION_HASHNODE): New.
+	(assertion_install, assertion_lookup, delete_assertion): New functions.
+	(T_ASSERTION): Deleted.
+	(tokenlist_list): Renamed from arglist_list.
+	(read_token_list): Renamed from read_keyword_list.  Much changed.
+	Copy the strings into the heap.
+	(free_token_list): Renamed from free_keyword_list.  Free the strings.
+	(do_assert, do_unassert): Considerably changed.
+	(check_assertion): Somewhat changed.
+	(check_macro_name): Extra arg contributes to error message.
+	* cexp.y (yylex): Parse everything as a name if keyword_parsing.
+	(rule for assertions): Set, then clear, keyword_parsing.
+	(keywords): Allow empty sequence.  Allow nested parens.
+
+Sat Jan 12 12:18:00 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-typeck.c (build_unary_op): Make better code for simple casts.
+
+	* reload.c (find_reloads): Computing reload_when_needed, don't neglect
+	operands that don't have output reloads.
+
+	* cse.c (refers_to_mem_p): At check_addr, handle PLUS inside CONST.
+
+Sat Jan 12 06:30:56 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (steal_delay_list_from_*): Add missing argument to calls to
+	insn_sets_resource_p.
+	(fill_eager_delay_slots, relax_delay_slots): Add missing argument
+	to calls to mostly_true_jump.
+	(relax_delay_slots): Correctly handle case where we can't invert jump.
+
+	* reload.c (find_reloads_toplev): If we have a SUBREG of a
+	pseudo that resides in memory and the address is not offsettable,
+	substitute for the pseudo now so we can generate a reload for the
+	address.
+
+Fri Jan 11 14:39:09 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* tm-next.h (LIB_SPEC, STARTFILE_SPEC): Don't support -p.
+
+Thu Jan 10 12:26:49 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* tm-sun2.h (CC1_SPEC): Define to ignore -sun2 and -target.
+	(WORD_SWITCH_TAKES_ARG): Define to recognize -target.
+	(LIB_SPEC): Define; handle -a.
+	* tm-sun2os4.h: New file.
+	* tm-m68k.h (TARGET_SWITCHES): Handle -msky and -mnosky.
+	(TARGET_SKY): New macro.
+
+	* tm-next.h (LIB_SPEC): Use -lsys_s, not -lc.
+
+	* c-parse.y (yylex): Fix typo.
+
+	* genoutput.c (output_prologue): Make insn-output.c use insn-codes.h.
+	* Makefile.in (insn-output.o): Depend on insn-codes.h.
+
+	* Makefile.in (install-headers): Save $(libsubdir) before cd.
+
+	* Makefile.in (gnulib): Depend on config.status.
+
+	* gnulib2.c (__umulsidi3): Use #else around inline function.
+	Use __-style names for all machines.
+
+Wed Jan	 9 17:06:18 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* out-sparc.c (various places): Change \; to \n\t in printf
+	strings.
+
+	* sparc.md: Change PIC initialization pattern to recognize pattern
+	that doesn't involve a clobber.
+	* out-sparc.c: Rest of change is here, where PIC initialization is
+	emitted.
+
+	* cse.c (simplify_unary_operation, simplify_binary_operation):
+	Correctly adjust VAL for bits outside MODE.
+
+Wed Jan	 9 15:45:26 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* flow.c (libcall_dead_p): Handle a CALL in a PARALLEL.
+
+Tue Jan	 8 13:35:50 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expmed.c (emit_store_flag): Correct UNSIGNEDP value passed to
+	convert_to_mode and expand_unop.
+
+Mon Jan	 7 11:56:31 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* gplus.gperf: New keywords for templates and other extensions.
+
+	* cplus-lex.c: Incorprate new gperf code.
+
+	* cplus-class.c (resolve_scope_to_name): New function.
+	(build_scoped_method_call): Call `resolve_scope_to_name' instead of
+	handling by itself.
+	* cplus-decl.c (pushdecl_class_level): Give forward declaration.
+	(lookup_nested_type): New function.
+	(pushtag,lookup_tag,xref_tag): Handle nested classes.
+	(finish_function): Add comment about obscure argument passing
+	convention for static method calls (at the call site).	Also, don't
+	call operator delete with NULL pointer.	 Call it with
+	`current_class_decl' instead.
+	(globalize_nested_type): New function.	Used when we learn that a
+	type which initially appeared to be nested should be defined in the
+	global scope instead.
+	(grokdeclarator): Call `globalize_nested_type' when grokking an
+	as-yet undefined class type.
+	* cplus-dem.c: Updated to handle qualified (i.e. nested) types.
+	This means handling the new letter `Q' in mangled names.
+	* cplus-init.c (build_member_call): Handle nested classes using
+	`resolve_scope_to_name' instead of handling itself.
+	* cplus-lex.c (typename_scope_in_progress): New static variable to
+	allow the lexer to figure out what are nested class typenames,
+	scoped member references, etc., without getting the parser too
+	involved.
+	(yylex): Recognize SCOPED_TYPENAME and TYPENAME_SCOPE tokens.
+	Also, recognize '<' and '>' separately from ARITHCOMPARE so we can
+	implement templates.
+	No longer recognizes (X::*) or (X::&) as single tokens.
+	* cplus-method.c (build_overload_nested_name): New function to build
+	internal names for nested typenames.
+	* cplus-parse.y: Handle parameterized type syntax (more or less).
+	(dummy_decl): Gone!
+	Nested types are now handled.
+	* cplus-tree.h (DECL_UNDEFINED_FRIENDS): Moved out of DECL_CONTEXT
+	slot of TYPE_DECLs.  DECL_CONTEXT of typename is now the enclosing
+	type for nested types.
+	(DECL_NESTED_TYPENAME): An identifier pointer that makes the name of
+	the type unique for the compilation.
+	(IDENTIFIER_*): When initializing, call `perm_calloc', not
+	permalloc, since non-zero values actually mean something,
+	and we don't guarantee to initialize everything in one go.
+	* tree.c (perm_calloc): New function.
+	* cplus-typeck.c (default_conversion): Don't defaultly convert a
+	naked METHOD_REF such that it becomes a virtual function table
+	index.	Only let this happen if user requests it with `&'.
+
+	* Makefile.in: Handle new source file cplus-template.c.
+
+Mon Jan	 7 15:03:53 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-typeck.c (process_init_constructor): Error if values
+	provided for an array of empty elements.
+
+	* out-i386.c (fp_top_dead_p1): Follow jump only if optimizing.
+	(fp_call_internal): Discard result if unused.  Use fp_top_dead_p1.
+
+	* cse.c (cse_insn): In special case for (set REG0 REG1),
+	change any REG_EQUIV notes to REG_EQUAL.
+
+	* tm-sun386i.h (PCC_BITFIELD_TYPE_MATTERS): Define it.
+
+	* tm-att386.h (ASM_OUTPUT_LOCAL): Change back to data section.
+
+	* genrecog.c (write_tree_1): Typo in printf string.
+
+	* flow.c (libcall_dead_p): New arguments NOTE and INSN.
+	Now test that the hard return reg in the call is dead.
+	Callers changed.
+
+Mon Jan	 7 12:27:07 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* recog.c (cancel_changes): Cancel changes in opposite order we made
+	them.
+
+	* integrate.c (subst_constants): Only commute operands if op0 is const.
+
+	* rtl.def (INLINE_HEADER): Add new integer field.
+	* rtl.h (POPS_ARGS): New macro for place to save
+	current_function_pops_args.
+	(FUNCTION_FLAG_POPS_ARGS): Deleted; no longer a single bit.
+	* emit-rtl.c (gen_inline_header_rtx): Add new arg for "pops args".
+	* integrate.c (initialize_for_inline, output_inline_function):
+	Correctly save and restore current_function_pops_args.
+
+Sun Jan	 6 14:10:44 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtl.h (ASM_OPERANDS_INPUT_LENGTH): New macro.
+	* reload1.c (eliminate_regs): Use ASM_OPERANDS_... macros.
+	* recog.c (asm_noperands, decode_asm_operands): Likewise.
+
+	* rtl.def (IF_THEN_ELSE): Set class to '3'.
+
+	* cse.c (simplify_{unary,binary,ternary}_operation): New functions,
+	from fold_rtx.
+	(fold_rtx): Call these function to do the bulk of the work.
+	Use GET_RTX_CLASS to find commutative and comparison operations.
+	Swap folded_arg[01] when commuting operands.
+	* rtl.h: Define new functions.
+	* integrate.c (try_constants): Replace constant folding code with
+	calls to new functions above.
+	In commutative operations, put constants last.
+	
+	* genemit.c (struct clobber_pat): New data structure.
+	(gen_insn): If pattern ends with a group of CLOBBERs of hard
+	registers, store this information in a struct clobber_pat.
+	(output_add_clobbers): New function.
+	(main): Call it to write code to add CLOBBERs.
+	* genrecog.c (struct decision): Add new field num_clobbers_to_add.
+	(make_insn_sequence): If pattern ends with a group of CLOBBERs,
+	set up to recognize it without the CLOBBERs but to indicate the
+	number of CLOBBERs omitted.
+	(add_to_sequence): Initialize num_clobbers_to_add.
+	Remove unnecessary conditionalization on STORE_FLAG_VALUE.
+	(break_out_subroutines, write_subroutine, write_tree): Remove
+	RETURN_PREFIX parameter; TYPE is sufficient.
+	(write_subroutine): Add extra parameter for recog_* functions.
+	(write_tree_1): Pass TYPE instead of string for return.
+	Write out code to return number of CLOBBERs needed.
+	(write_tree): Add new parameter to recog_*.
+	(main): Add new parameter to recog.
+	Don't pass return string to break_out_subroutines and write_tree.
+	* recog.c (recog_memoized): Pass extra (0) parameter to recog.
+	* combine.c (recog_for_combine): New function.
+	(try_combine, simplify_and_cc0, try_distrib): Use it instead of recog.
+	(reg_dead_at_p, reg_dead_at_p_1): New functions.
+
+	* flow.c (mark_set_1): Count in reg_n_sets when a part of a register
+	is modified.
+	Update SIGNIFICANT correctly when subreg_p and multiple hard regs.
+	Compute reg_n_sets for hard registers.
+
+Sun Jan	 6 13:41:49 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* function.c (locate_and_pad_parm): Do REG_PARM_STACK_SPACE just once.
+
+	* Changes by wilson@cygnus.com.
+	* calls.c (expand_call): Test value of REG_PARM_STACK_SPACE instead
+	of assuming that it will always be greater than zero.
+	* function.c (assign_parms): Same as above.  Also, correct
+	calculation of STACK_BYTES.
+
+	* reload1.c (reload_reg_free_p): Old input reload blocks input_addr.
+
+Sat Jan	 5 18:32:15 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* Makefile.in (mostlyclean): New name for old `clean'.
+	(clean): Deletes gnulib also.
+	(cleanconfig): Need not delete gnulib here.
+
+	* reload.c (push_reload): Don't use dying reg unless operand fits.
+
+	* c-parse.y (yylex): Hex and octal constants now traditionally signed.
+
+Sat Jan	 5 18:03:50 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* regclass.c (regclass): reg_n_sets is one per set.  It does not
+	take into account loop_depth.  So don't adjust by loop_depth here.
+
+Fri Jan	 4 13:18:07 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* function.c (put_var_into_stack): Don't mung virtual reg.
+	(fix_lexical_addr): Accept the virtual arg pointer.
+	* function.h (struct var_refs_queue): New structure.
+	(struct function): Use that for the pending var refs queue.
+
+	* print-tree.c (print_node): Nicer format for rtl of decls.
+
+	* c-decl.c (push_c_function_context, pop_c_function_context):
+	No need to deal with current_function_decl.
+
+	* c-parse.y (nested_function): Delete spurious nonterminal.
+
+Fri Jan	 4 12:13:14 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-class.c (modify_vtable_entries): In case we are modifying
+	the main vtable, start with the vtable that comes from the immediate
+	baseclass, not the most base class.  This is needed because later
+	fixups (for non-first and virtual baseclasses) do not fix up this
+	case.
+
+Fri Jan	 4 06:55:00 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* optabs.c (expand_binop): Fix typo in testing for SImode operation.
+	Generalize to apply in more cases by calling emit_store_flag rather
+	than doing the gen_sltu explicitly.
+
+	* expmed.c (store_bit_field, extract_bit_field): When insv/extv
+	don't allow MEM and we need to load the field into a register, don't
+	use the mode of OP0 if it is wider than the mode to be used for
+	insv/extv operating on a register.
+
+	* expmed.c (emit_stor_flag): Try to convert some comparisons with
+	1 and -1 to comparisons with zero.
+	Explicitly test sign bit of STORE_FLAG_VALUE rather than testing it
+	for being less than zero.
+
+	* cse.c (find_comparison_args): Don't compute STORE_FLAG_VALUE < 0;
+	instead, test the relevant sign bit.
+	Use GET_RTX_CLASS instead of comparison_code_p.
+	* loop.c (get_condition): Likewise.
+
+	* recog.c (validate_change): Eliminate duplicate code by always
+	saving the change.  If in_group == 0, call apply_change_group.
+	(apply_change_group): If recog_memoized fails, see if we have a
+	CLOBBER at the end.  Use validate_change to replace the pattern
+	with one without the CLOBBER if so; later we will verify that change.
+
+	* tree.c (stabilize_reference_1): Now static; also, define as forward
+	reference at start of file.
+
+	* rtl.def: Add new field in DEF_RTL_EXPR macro to give the "class"
+	of the rtx operation.
+	* rtl.h: DEF_RTL_EXPR has one additional arg.
+	(rtx_class, GET_RTX_CLASS): New var and macro.
+	* rtl.c: DEF_RTL_EXPR has one additional arg.
+	(rtx_class): Initialize table.
+
+	* reload.c (push_reload): If an input operand contains a dead
+	register used nowhere else in the insn, try to use it as a reload reg.
+	* reload1.c (reload_as_needed): If cancelling optional reload,
+	clear reload_reg_rtx.
+	(choose_reload_regs): If we can find reload value lying around,
+	use that register unless choice made by find_reloads would also save
+	an insn (the new choice added above won't).
+
+	* genoutput.c: Update comments on things written.  Change order to
+	agree with the order written.
+	(output_epilogue): Remove extraneous tests.
+
+Thu Jan	 3 13:32:54 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* rtl.c (read_rtx): Cast NULL vector.
+
+	* By Jim Wilson.
+	* tree.c (stabilize_reference): Modified to call stabilize_reference_1
+	instead of save_expr.
+	(stabilize_reference_1): New function.	For arithmetic operator trees,
+	recurse on the subtrees.  Otherwise, put a SAVE_EXPR around the
+	tree if it has side-effects.  
+
+Thu Jan	 3 12:37:56 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (choose_reload_regs): Only set reload_when_needed to
+	RELOAD_FOR_OUTPUT or RELOAD_FOR_INPUT when it used to be RELOAD_OTHER.
+
+Wed Jan	 2 18:28:23 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* emit-rtl.c (init_emit_once): Fix typo setting constm1_rtx.
+
+Wed Jan	 2 07:53:04 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* sparc.md (fix_truncdfsi2 recognizer): xoperands must have 3
+	elements because `output_fp_move_double' can write to operands[2].
+
+Wed Jan	 2 17:16:20 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* calls.c (emit_call_1): If we have call_pop, use it if we have
+	no stack arguments.
+
+	* out-vax.c (relational_op): Deleted, redundant.
+	* vax.md (branch): Use comparison_operator (in recog.c) instead of
+	relational_op.
+	* tm-vax.h (PRINT_OPERAND_PUNCT_VALID_P): "C" is not punctuation.
+
+	* reload1.c (reload_as_needed, forget_old_reloads_1): Don't clear
+	reg_has_output_reload and reg_is_output_reload for each insn, just
+	ones that need reload.	Instead, interpret each entry as zero if
+	n_reloads == 0.
+
+Wed Jan	 2 15:52:13 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* optabs.c (expand_binop): Fix typos.
+
+	* toplev.c (rest_of_compilation): Clear cse_not_expected after loop.
+	* rtl.h (cse_not_expected): Declare here.
+	* expr.h: Not here.
+
+Tue Jan	 1 21:55:11 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* emit-rtl.c (constm1_rtx): New standard constant.
+	(gen_rtx): Use it when appropriate.
+	(init_emit_once): Initialize it.
+
+	* out-vax.c (split_quadword_operands): New function.
+	(relational_op): Likewise.
+	* vax.md (extendsidi2, adddi3, subdi3): New patterns.
+	(movdi): Use clrq when appropriate.
+	(movaq recognizer): New pattern.
+
+	* recog.h (OUT_FCN): New macro.
+	* genoutput.c: Include recog.h in output file.	No
+	longer define "const", since that happens in recog.h.
+
+	* tm-vax.h (PRINT_OPERAND): Add 'C' to print a reversed condition.
+	* out-vax.c (rev_cond_name): Return its name.
+	* vax.md (unnamed patterns): Combine several reversed branch patterns
+	into one, using match_operator with relational_op and "%C".
+
+	* optabs.c (expand_binop): Handle multi-word addition and subtraction.
+
+	* Makefile.in (install-gnulib): Use RANLIB_TEST.  Use libg_dir.
+	(libg_dir): New customization variable.
+
+	* assert.h (__assert): Use standard GNU format for error messages.
+
+Tue Jan	 1 21:25:00 1991  Richard Kenner  (kenner at vlsi1)
+
+	* reload1.c (eliminate_regs, case PLUS): Always move constant to the
+	outside of a PLUS expression.
+
+Tue Jan	 1 11:45:22 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* ecoff-cmp: Specify `c' in option to tail.
+
+	* stor-layout.c (layout_record, layout_union, layout_type):
+	Use ROUND_TYPE_ALIGN and ROUND_TYPE_SIZE to compute
+	alignment and size of records, unions and arrays.
+	* ROUND_TYPE_ALIGN: New.  Args are type, spec'd align, other min align.
+	* ROUND_TYPE_SIZE: New.	 Args are type, size of contents, align.
+
+	* reload1.c (emit_reload_insns) [PRESERVE_DEATH_INFO_REGNO_P]:
+	Scan output and output-address reloads together.
+	Check for matching hard reg.
+
+	* config.gcc: Set proper shell vars in big dispatch.  Not `machine'.
+	(i386-isc): New alternative.
+
+Tue Jan	 1 08:29:49 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (update_block): Turn bb_tick update back on; it is needed,
+	after all.
+
+Mon Dec 31 18:12:07 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genattrtab.c (write_test_expr, case EQ_ATTR): Use correct expression
+	number for attribute value.
+
+	* cse.c (cse_insn): Use single_set when looking for an insn that sets
+	cc0 followed by one that no longer does.
+
+	* recog.c (find_single_use): If the next insn after one that sets
+	cc0 is not an INSN or JUMP_INSN, return 0; don't blow up on a NOTE.
+
+	* emit-rtl.c (emit_insn_before, emit_insn_after, emit_insn): Return
+	something sensible if a SEQUENCE of length zero was passed.
+	We no longer make a SEQUENCE with XVEC == 0, so don't test for it.
+
+	* reload1.c (emit_reload_insns): Handle gen_move_insn returning
+	no insns (occurs on RT for dummy registers).
+	
+	* rtl.h (reg_cc0_rtx, find_cc): No longer needed.
+	* emit-rtl.c: Likewise.
+	* conditions.h: Entire file is #ifdef HAVE_cc0.
+	* final.c (CC_STATUS_INIT): Make a null default #ifndef HAVE_cc0.
+	(cc_status): No longer exists #ifndef HAVE_cc0.
+	(final_scan_insn): Do CC processing only #ifdef HAVE_cc0.
+	(alter_cond): Only exists #ifdef HAVE_cc0.
+	* genemit.c (gen_exp): No longer have CC0_REGNUM or reg_cc0_rtx.
+	* genoutput.c (main): Include insn-config.h before conditions.h.
+	* reorg.c: Likewise.
+	* jump.c (rtx_equal_for_thread_p): Remove reference to CC0_REGNUM;
+	we'll have to do this optimization some other way later.
+	* tm-a29k.h (NOTICE_UPDATE_CC): Deleted.
+
+Mon Dec 31 14:44:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* reload.h (enum_reload_when_needed):
+	New alternatives RELOAD_FOR_OUTPUT, RELOAD_FOR_INPUT.
+	* reload1.c (choose_reload_regs): Use those when appropriate.
+	(mark_reload_reg_in_use): Record this usage specially.
+	(reload_reg_free_p, reload_reg_free_before_p): Handle this usage.
+	(reload_reg_reaches_end_p): Likewise.
+	(emit_reload_insns): Treat RELOAD_FOR_INPUT like RELOAD_OTHER.
+
+	* i386.md (push for SFmode): Operand of fst was missing.
+
+Mon Dec 31 08:50:17 1990  Craig Burley	(burley at pogo.ai.mit.edu)
+
+	* stor-layout.c (layout_type): For ARRAY_TYPE case, don't try
+	and compute a size if there is no TYPE_MAX_VALUE for the index.
+	* tree.c, tree.h (build_index_2_type): New function, like
+	build_index_type except it accepts the low value as an arg instead
+	of assuming 0.
+
+Mon Dec 31 08:09:10 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-typeck.c (c_expand_return): Handle case when we try
+	to return a void value (such as a void function call) in a
+	function returning void, and there are cleanups to run.
+
+Sun Dec 30 21:08:32 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* tm-a29k.h (TARGET_VERSION): Can't use target_flags since we can
+	be called from gcc.c.
+
+	* tm-rs6000.h (REG_ALLOC_ORDER): Put r12 after r13; it might be 
+	holding a DImode value and so might be very expensive (we won't
+	worry about TImode).
+
+	* rs6000.md (subtract patterns): Fix incorrect operand number in %I.
+	(movti): Disallow indexed memory operands.
+
+	* out-rs6000.c (print_operand, case 'm'): Fix typo.
+	(includes_rshift_p): Correctly compute mask.
+
+	* out-a29k.c (output_operand): Add missing parentheses.
+	(print_operand): Replace if/then/else structure with switch statement.
+
+	* a29k.md (beq, bne): Try to use NE test whenever possible; it
+	will produce better code if we have bit-tests.
+
+Sun Dec 30 12:02:03 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* tm-sparc.h (PRINT_OPERAND): Put 'R' case before REG so that it
+	takes when 'R' is passed in as CODE.  Also, handle 'B' letter.
+
+	* sparc.md: (pattern for converting DFmode to SImode): Second
+	argument to `output_asm_insn' should be `operands', not zero.
+	(tablejump): The jump insn is "jmp", not "jump".
+	(gen_fixtruncdfsi2): operands[2] should get the pseudo, not
+	operands[3] (which is nonexistent).
+	(call): Fix typo which had %o7 being emitted as %o.
+	(various patterns): Fixed places where match_operand had the wrong
+	operand number.
+
+Sat Dec 29 17:27:00 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* sparc.md: cc_status no longer handles condition code updates.
+	Instead, condition codes are explicitly set and used via
+	hard register 0.  Special attributes specific to condition codes
+	(such as whether conditional branches should test the integer or
+	floating-point condition codes, or that the condition codes cannot
+	be tested for a condition which would test the overflow bit) are
+	handled by encoding the attribute in the mode for the condition
+	code register.
+	(type attributes): type "unary" insns have one input operand (1)
+	and one output operand (0)
+	type "binary" insns have two input operands (1,2) and one output (0)
+	type "compare" insns have one or two input operands (0,1) and no output
+	type "move" and type "arith" have been deleted.
+	(prescan attribute): Deleted.  Machine description now puts
+	floating-point zero in registers when needed.
+	(use_cc attribute): Deleted.
+	(fpcc define_delay): No longer depend on "use_cc" attribute.
+	Also, fpcc delay characteristics hold for "fpcc" type insns.
+	(cc attribute): Deleted.
+	(cmpxx patterns): Now written as `define_expand's so we can stow
+	away operands.	When the pattern that will use the results of the
+	conditional test is emitted, it can use these operands to figure
+	out the right way to emit the compare.
+	(bcc patterns): Rewritten to emit comparison (based on stowed-away
+	info) before emitting branch.
+	(scc patterns): Handle all the cases with branch-free code.
+	Added new pattern to recognize (x + (i == 0)).
+	(movsi pattern recognizer): Split into two patterns so that e.g.
+	"(set:SI (mem:SI ...) (const_int 5))" is never considered valid.
+	Instead this has to be a two-insn sequence.
+	(mov{hq}i pattern recognizers): Ditto.
+	(movstrsi): Force operands[2] out of memory if it was in memory.
+	({zero,sign}_extendXY): Now written as `define_expand's instead of
+	`define_insn's for more accurate machine modeling.
+	Added new pattern to optimize bit-field compares.
+	(floatsisf2 patterns): Delete redundant setting of "in_call_delay"
+	attribute.
+	(fix_trunc{sf,df}si2 pattern): Use clobberable register in which
+	the conversion can take place.	Used to use %f30,%f31.
+	({add,sub}di3 pattern): Put explicit clobber of (reg 0) in the
+	pattern.
+	(negdi2 pattern): Ditto.
+	Added new patterns to handle merging of addition/subtraction with
+	condition code testing (with (reg:CC_NOOV 0)).
+	({and,ior,xor}cbsi3 pattern): Obsolete.	 Deleted.
+	Added patterns to represent setting of condition codes in addition
+	to performing logical operations.
+	({neg,abs}df2 pattern): Use `R' print letter to overcome the need
+	to use a C action instead of a simple template.
+	(ash{l,r}{hi,qi}3): Define patterns for shifts on sub-SImode
+	operands.
+	(jump pattern): Use `*' print code to obviate the need for a C
+	action when a template can do.
+	(tablejump pattern): Ditto, with `^' code as well.
+	Deleted `define_split's that were used to handle mem-mem moves in
+	the case of PIC generation.  Since all move insns are emitted and
+	maintained as SPARC-valid insns, these should no longer be needed.
+	(various patterns): (HI ...) is spelled (HI:SI ...).  Also, use
+	`gen_lowpart' instead of building subregs directly.
+	New `define_split's were added to split scc insns into simpler
+	components which have single-insn templates.
+	Fixed a return peephole when returning a SFmode value (it was
+	missing the "ret"!).
+	Lots of complicated peepholes that brought cc testing and
+	arithmetic operations together were deleted.  This is because the
+	combiner should now handle all these cases.
+
+	* out-sparc.c (sparc_compare_op{0,1}): New global variables.
+	Used to hold the operand(s) to compare insns in lieu of emitting a
+	compare.
+	(reg_or_cc0_operand): Deleted.
+	(normal_comp_operator): New function.
+	(cc_arithop): Now returns 0 for PLUS and MINUS.
+	(cc_arithopn): Now returns 0 for XOR.
+	(gen_compare_reg): New function.
+	(sparc_address_cost): Simplified because it turns out it doesn't
+	matter what is returned for illegitimate addresses.
+	(hard_regno_mode_ok): Updated to use these new #defines.
+	(C_MODES): New #define, for condition code modes.
+	(S_MODES): Ditto, for single-word (and smaller) quantities.
+	(D_MODES): Ditto, for double-word (and smaller) quantities.
+	(T_MODES): Ditto, for tetra-word (and smaller) quantities.
+	(SF_MODES): Ditto, for SFmode quantities.
+	(DF_MODES): Ditto, for SF_MODE, DFmode, SCmode, etc.
+	(TF_MODES): Ditto, for DF_MODE, TFmode, DCmode, etc.
+	(output_floatsi{df,sf}2): Greatly simplified.
+	(output_pic_sequence,output_pic_sequence_2,fp_zero_hook,
+	output_tail_call): Turned off.
+
+	* tm-sparc.h (ASM_SPEC): Pass `-k' to assembler if compiling PIC.
+	(WORDS_BIG_ENDIAN): Define as 1, not 0.
+	(FIXED_REGISTERS): %f30 and %f31 are now allocatable.
+	(REG_CC0_RTX, CC0_REGNUM): Deleted.
+	(EXTRA_CC_MODES): New modes CC_NOOVmode and CCFPmode.  The former
+	is for when the overflow bit it not to be tested; the latter is
+	for when the condition is sitting in the floating point unit.
+	(SELECT_CC_MODE): New macro.
+	(FINAL_PRESCAN_INSN): Deleted.
+	(CC_* macros): Deleted.
+	(PRINT_OPERAND_PUNCT_VALID_P): New valid chars are '#' (for
+	whether to print a noop or not), '*' (for whether to print a ",a"
+	or not), and '^' (for whether to emit code for PIC branch or not).
+	(PRINT_OPERAND{,_ADDRESS}): Replace calls to fprintf by calls to
+	fputs where that is convenient.
+
+	* expr.h, cplus-dbxout.c: #ifdef BYTES_BIG_ENDIAN should be #if.
+
+	* reload.c (struct replacement): Add new field subreg_loc.
+	(push_reload): If reloading SUBREG_REG of a paradoxical SUBREG,
+	store the location of the SUBREG in subreg_loc in REPLACEMENTS.
+	(push_replacement): Initialize subreg_loc.
+	(subst_reloads): Don't produce nested SUBREGs; use subreg_loc.
+
+	* regclass.c (regclass): Handle (set X (op CONST Y)) properly when
+	the modes of operands 0 and 1 are different.
+
+Sat Dec 29 16:37:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cccp.c (macroexpand): Test traditional when computing expansion size.
+
+	* toplev.c (compile_file):
+	If profiling, leave some space after `gcc_compiled.'.
+	* tm-m88k.h, tm-sparc.h, tm-sun386i.h (ASM_IDENTIFY_GCC): Deleted.
+
+	* reload1.c (emit_reload_insns): Set reg_reloaded_contents, etc, here.
+	(choose_reload_regs): Not here--except for reg_has_output_reload.
+
+	* c-parse.y (nested_function, notype_nested_function):
+	Use compstmt for body, not compstmt_or_error.
+
+	* Makefile.in (install-headers): Use basename on 
+	* stupid.c (stupid_mark_refs): Really do mark clobbered hardreg
+	live before the insn.
+
+Fri Dec 28 05:44:10 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (subreg_lowpart_p): Use correct modes in
+	WORDS_BIG_ENDIAN case.
+
+	* reload.c (combine_reloads): Don't try to reference
+	insn_operand_constraint for an ASM insn.
+	Fix typo in testing for modified operand.
+
+Thu Dec 27 19:02:54 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): Ensure we invalidate SET_DEST if SET_SRC is a CALL.
+
+	* cse.c (fold_rtx): Save mode of original first operand in case this
+	is becoming (sign_extend (const_int)).
+
+Thu Dec 27 16:15:56 1990  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md, out-m88k.c (CCmode): Use it.
+	(emit_bcnd): Avoid loosing when bcnd is changed into sxx.
+	(hi16/lo16): Don't use these to form 16-bit immediate values.
+	Introduce and use %X/%x.
+	(length attribute): Make better use of defaults.
+
+	* tm-v88r32.h (LIB_SPEC): Goes here rather than in xm-v88r32.h.
+	* xm-*88*.h: Clean these up.  Most differences go away by relying
+	on the 88open standards.
+
+Thu Dec 27 12:48:26 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* expmed.c (store_bit_field, extract_bit_field):
+	Change #ifdef to #if, testing BYTES_BIG_ENDIAN.
+
+Thu Dec 27 07:36:45 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (find_end_label): Ignore USE and CLOBBERs when looking for
+	label at end of function.
+
+Wed Dec 26 22:35:59 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (sequence_element_free_list, sequence_result): New vars.
+	(restore_emit_status, init_emit): Initialize them.
+	(emit_insn_before, emit_insn_after, emit_insn): Save SEQUENCE in
+	sequence_result.
+	Make these three routines more alike in structure.
+	(start_sequence, end_sequence, push_to_sequence): Cache INSN_LIST pairs
+	in sequence_element_free_list rather than making new ones.
+	(start_sequence): No longer return unused rtx; only one caller
+	needed to be changed (in function.c, see below).
+	(end_sequence): No longer has argument.
+	(gen_sequence): Try obtaining a pre-built SEQUENCE from
+	sequence_result; no longer special-case length 0 vectors.
+	* function.c (fixup_memory_subreg): start_sequence no longer
+	returns an rtx and end_sequence no longer has an argument.
+	* rtl.h (start_sequence): Now void.
+	(push_to_sequence, end_sequence): Define.
+
+Wed Dec 26 13:19:40 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* gnulib.c: No longer #undef perform_* if not __GNUC__.
+	(perform_*): Define each if not already def.
+
+Tue Dec 25 17:31:17 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (get_condition): Rework scan that looks for sets of things
+	being compared to allow intervening insns; check to ensure that
+	they don't set something that we need.	Return 0 if the best we can
+	do is find something whose mode is in class MODE_CC.
+
+	* calls.c (emit_call_1): RETURN_POPS_ARGS now gets the length of
+	arguments on the stack and returns the number of bytes popped by the
+	called function.
+	* output.h (current_function_pops_args): Change description.
+	* function.c (current_function_pops_args): Likewise.
+	(assign_parms): Initialize current_function_pops_args here.
+	(init_function_start): Not here.
+	* tm-*.h (RETURN_POPS_ARGS): Reflect new meaning.
+	(FUNCTION_EPILOGUE): Use new meaning of current_function_pops_args.
+	* out-i386.c (function_epilogue): Likewise.
+
+Tue Dec 25 15:52:06 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* gnulib.c (all functions): Support a hook for redefining contents.
+	These hooks are called perform_addsi3, and so on.
+	They are used only if compiling with GCC.
+
+	* rtlanal.c (single_set): Moved from loop.c.
+
+	* cse.c (fold_rtx): For a MEM, fold address when looking for constant.
+	(cse_insn): When fetch a constant label from a dispatch,
+	substitute into following tablejump.
+	(find_best_addr): Clear do_not_record before hashing.
+	* jump.c (mark_jump_label): Don't record table-labels on non-jumps.
+
+	* m68k.md (casesi_2 recognizer): Use register_operand as predicate.
+
+Mon Dec 24 17:54:42 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cse.c (fold_rtx): Handle ADDR_DIFF_VEC like ADDR_VEC,
+	when the index in it is constant.
+
+	* c-decl.c (start_function): Handle new option -Wmissing_prototypes.
+	(c_decode_option): Likewise.
+
+Mon Dec 24 07:21:06 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtl.h (reload_completed, reload_in_progress): Now defined here.
+	* output.h (reload_completed): No longer defined here.
+	* emit-rtl.c, optabs.c, recog.c, sched.c, toplev.c, out-a29k.c:
+	Don't define reload_in_progress or reload_completed.
+	* a29k.md, romp.md, rs6000.md: Likewise.
+
+	* machmode.def: Terminate GET_MODE_WIDER_MODE chains with VOIDmode,
+	not zero.
+	(CCmode): New mode.
+	* machmode.h (enum machine_mode): Includes modes in EXTRA_CC_MODES,
+	if defined.
+	(enum mode_class): New class MODE_CC; delete MODE_FUNCTION.
+	* rtl.c (mode_name): Define to be known size; add names for extra
+	CC modes, if present.
+	(mode_class, mode_size, mode_unit_size, mode_wider_mode): Define
+	to be known size.
+	(init_rtl): Initialize extra CC modes.
+
+Sat Dec 22 19:33:54 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* tm-i386v.h (MAXPATHLEN): Define if not already defined.
+	* tm-i386vgas.h: New file.
+
+	* out-i386.c (print_operand_address): Handle scaled indexing.
+
+Sat Dec 22 11:15:03 1990  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md, out-m88k.c, tm-m88k.h (swapped cmpsi): Don't rely on
+	NOTICE_UPDATE_CC doing the job.	 Instead, compliment the swapped
+	compare.  Also, make COMPARE SImode.
+	(and/cmpsi/sxx/neg): Add patterns to do this in one instruction.
+	Change sign_extend/sxx to neg/sxx for other cases.
+	(iorsi3/xorsi3): Use alternatives and explicit patterns.
+	(casesi): Make the constant the second operand to cmpsi.
+	(output_and): Must compliment value to use the clr instruction.
+	(output_reg_adjust): Simplify the interface and use TEMP_REGNUM.
+	(TARGET_SWITCHES): Eliminate needless no-* options.
+
+Fri Dec 21 05:46:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* recog.c (find_single_use{,_1}): New functions.
+	* rtl.h (find_single_use): Declare it.
+
+Thu Dec 20 21:27:36 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* optabs.c (init_optabs): Add __ to names of floating compare fcns.
+
+Thu Dec 20 18:21:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_builtin, case BUILTIN_FFS): Get mode for arg from
+	tree, not rtx, in case arg was CONST_INT.
+
+Thu Dec 20 17:31:46 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-decl.c (init_decl_processing): Don't define `ffs'.
+
+Wed Dec 19 16:59:38 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* gcc.c (main): Handle if SIGPIPE not defined.
+
+	* cccp.c (xmalloc, xrealloc, xcalloc): Don't declare malloc or realloc.
+
+Wed Dec 19 06:50:17 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (gen_lowpart_for_combine): Avoid making a nested SUBREG
+	when we are being passed a paradoxical SUBREG of MEM.
+
+	* cse.c (new_basic_block): Compilations spend about 5% of their time
+	in this function so replace loop initializing qty_{first,last}_reg
+	with copy from a larger consec_ints.  Only loop over extra entries.
+	(cse_main): Allocate consec_ints to be default size of max_qty large.
+
+	* reorg.c (get_branch_condition): Fix typos when reversing condition.
+	(condition_dominates_p): Fix typo in comparison.
+	(redundant_insn_p): This function was taking about 4% of the
+	compilation time.  Rework so it doesn't split, only looks at resource
+	usage if it finds a matching insn (since it usually won't), and
+	improve code that looks at resources.  Now takes about 0.5% of
+	compilation time.
+	(fill_simple_delay_slots): Always call mark_target_live_regs with an
+	active insn; currently being called with a CODE_LABEL.
+
+Tue Dec 18 14:08:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* out-sparc.c: Fix uninitiated comment.
+
+	* final.c (end_final): Call strip_off_ending to remove the file
+	name suffix.
+	(final_start_function): Execute SDB_DEBUGGING_INFO code only if
+	generating SDB symbol info.
+
+	* Makefile.in (cccp.o): Depend on gcc.
+
+	* tm-sparc.h, xm-sparc.h: Make this machine big-endian.
+
+	* expr.c (expand_builtin): Pass correct arguments to gen_cmpstrsi4.
+
+	* recog.c (nonmemory_operand): Reject reg whose class is NO_REGS.
+
+	* c-decl.c (finish_struct, grokdeclarator):
+	Strip NON_LVALUE_EXPR more than once.
+
+	* combine.c (combine_instructions): Check that a jump insn uses CC0
+	before trying to combine it with an insn that sets CC0.
+
+	* cplus-decl.c, cplus-search.c, gcc.c, objc-actions.c, rtl.c, stmt.c,
+	symout.c, toplev.c: Use xmalloc instead of malloc.
+
+	* cccp.c (do_include): Check for truncation of precompiled file name.
+
+Mon Dec 17 16:53:46 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-typeck.c (build_binary_op_nodefault, build_conditional_expr):
+	Fix indentation.
+	* reload1.c (choose_reload_regs): Fix indentation.
+	(gen_input_reload): Fix typo in comment.
+
+	* reload.c (find_reloads): Call abort when the last operand is
+	marked commutative, to make it easier to find this error.
+
+	* rtlanal.c (refers_to_regno_p): Don't crash if X is 0.
+
+Mon Dec 17 15:29:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (combine_regs): No need to see if suggested hard reg
+	is suitable; if it isn't, it won't end up being used.  Existing tests
+	were too conservative.
+
+	* jump.c (delete_jump): When searching for the SET of the condition
+	codes for a jump insn, give up if we hit a SEQUENCE.
+
+Mon Dec 17 02:14:06 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-typeck.c (c_size_in_bytes): New function.
+	(pointer_int_sum, pointer_diff): Use that.
+	(pointer_diff): Handle warn_pointer_arith.
+
+Sun Dec 16 22:27:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-decl.c (start_decl): Ignore with error any init for a parm.
+	(finish_decl): Likewise.
+
+Sun Dec 16 01:02:57 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* jump.c (rtx_equal_for_thread_p): Treat the special CC register as
+	equivalent for the two threads we are looking at.
+
+	* combine.c (try_combine): Fix typo in loop over I1 with PARALLEL
+	body.  Also, don't test HARD_REGNO_MODE_OK for hard registers we are
+	thinking about combining.  This screws up using registers to
+	represent the condition codes, and probably doesn't save anything in
+	the general case.
+
+	* expmed.c (expand_and): Comment says that result is always stored
+	in target, so the code now does this.
+
+Sat Dec 15 18:09:46 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* loop.c (get_condition): Try a little harder to find the setter of
+	the register used in a conditional test.  On the SPARC it is vital
+	to either find the setter of the register used for the condition
+	codes or for this function to return 0.	 Also, have test for
+	non-NULL, matching `set' govern both normal and reversed cases of
+	comparisons.
+
+	* jump.c (jump_optimize): When moving USE insns from before jumps to
+	after BARRIERs, put the label for the redirected jump after the
+	BARRIER instead of just before the PREV_INSN of the original target.
+	This gets around problems when there are NOTEs between the BARRIER
+	and the original target.
+  
+Sat Dec 15 10:16:29 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* sparc.md (cmpdf,cmpsf): No longer a define expand.  Now depends
+	on fp zero being loaded into a register.
+	(tstsi,tstdf,tstsf): Deleted.
+	(seq,sne): Fail if we are not testing operands of integer mode.
+	(movsi): Split recognizers into two parts.  The first handles
+	[reg,mem,zero] <=> [reg,mem]; the second handles [reg,const] =>
+	[reg].
+	(adddf,subdf,negdf): Simplify output routines using 'R' as an
+	output letter.
+	(tail_call): Turn this off.  It is never used, and it depends on
+	routines which are about to become broken.
+	(various places): Add USE_CC attribute where appropriate.
+	(various places): Change (use (reg:SI 0)) to (clobber (reg:SI 0))
+	and delete CC_CLOBBER attribute from the pattern.
+	* out-sparc.c (move_operand): No longer recognize certain
+	immediates as a `move_operand'.
+	(move_reg_or_immed_operand): New recognizer for immediates no
+	longer recognized by `move_operand'.
+	(output_pic_sequence*): Turned off.
+	(sparc_address_cost): Simplified, since the value returned is not
+	used if the address is not legitimate.
+	(emit_move_sequence): Use `gen_lowpart' instead of building
+	SUBREGs explicitly.
+	(make_f30_contain_zero): Deleted.
+	(output_tail_call): Turned off.
+	* tm-sparc.h (PRINT_OPERAND): Recognize 'R' code letter, which
+	means print the name of REGNO (X)+1.  No longer recognizes the 'G'
+	letter.
+	(PRINT_OPERAND,PRINT_OPERAND_ADDRESS): Replace various calls to
+	fprintf with calls to fputs or fputc.
+	(FINAL_PRESCAN_INSN): No longer defined.
+
+Sat Dec 15 14:37:51 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* recog.c (offsettable_address_p): Check validity in narrower modes.
+
+Sat Dec 15 11:21:55 1990  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* syms.h sdbout.c (T_VOID): Ensure that T_VOID is provided a
+	default meaning if <syms.h> is used.
+
+Fri Dec 14 14:39:10 1990  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (increment and test peephole): Updated so it would apply
+	with the new method for doing cmpsi/bxx.
+	* m88k.md (function units): Replace decode with alu and update
+	accordingly.
+	* out-m88k.c (emit_test): Add a mode parameter.
+	* tm-m88k.h (GO_IF_LEGITIMATE_ADDRESS): Constrain how the arg
+	pointer can be used.
+
+Fri Dec 14 06:48:07 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (convert_move): Add missing argument to some recursive calls.
+
+	* jump.c (invert_jump): Pass new label to recursive call.
+
+	* expr.h (setcc_gen_code): Replaces setcc_gen_fctn; stores insn_code.
+	(expand_and, emit_store_flag, label_rtx): Add definitions.
+	(get_condition, compare_from_rtx): Likewise.
+	* rtl.h	 (STORE_FLAG_VALUE): Provide a default value of 1.
+	(reg_set_last): Add definition.
+	(const_true_rtx): New variable.
+	* cse.c: Remove defaulting of STORE_FLAG_VALUE from here.
+	(const_true_rtx): Remove static version; now global.
+	* emit-rtl.c (const_true_rtx): Define here.
+	(gen_rtx): Return const_true_rtx for CONST_INT of STORE_FLAG_VALUE.
+	(init_emit_once): Initialize const_true_rtx.
+	* expmed.c (emit_store_flag): Rewritten.  Is passed the operands
+	to compare in addition to the compare operation and emits both the
+	comparison and the store-flag insn.
+	Handles special-case of testing for A < 0 and A >= 0.
+	If result is constant, just return it.
+	Accepts an argument saying how to normalize the result and does
+	appropriate normalization.
+	Give preference to using the sign bit rather than the low-order bit.
+	Allow sxx insns to fail.
+	If don't have seq or sne insns, can sometimes do with abs.
+	* expr.c (expand_expr, case COND_EXPR): For X ? A + 1 : A, only
+	do store_flag if it is cheap.
+	(do_jump): True comparisons return STORE_FLAG_VALUE, not 1.
+	(compare_constants): Correctly handle unsigned comparisons.
+	Return STORE_FLAG_VALUE, not 1, for true comparison.
+	(compare_from_rtx): New name for compare1.
+	Accept size and alignment, for BLKmode.
+	No longer statuc.
+	(compare, compare_from_rtx): No need to pass forward and reverse codes;
+	can trivially derive the reverse code from the forward one.
+	All callers changed.
+	If one operand is constant, make it the second one.
+	(compare): Let compare1 do most of the work.
+	(do_store_flag): Rewritten, now lets emit_store_flag do most of
+	the work.
+	Handles the special-case of comparing a single bit with zero.,
+	Add additional argument ONLY_CHEAP; if non-zero, fail if it looks like
+	this will be an expensive operation; all callers changed.
+	If it looks like it will be possible to do a store-flag operation,
+	call emit_store_flag; if it can't do it, emit as assignments and a
+	jump.  If it doesn't look possible to do a store-flag operation, return
+	zero before expanding anything.
+	* final.c: (final_scan_insn): Don't check STORE_FLAG_VALUE; if the
+	insn doesn't exist, we won't try to change it.
+	* genemit.c (gen_exp): Use const_true_rtx when appropriate.
+	* genrecog.c (add_to_sequence): Likewise.
+	(try_merge_1): Two nodes aren't identical if they are to test
+	different modes or if they have different values of EXACT.
+	* integrate.c: Don't supply a default value for STORE_FLAG_VALUE here.
+	* jump.c: Now includes expr.h (for emit_store_flag and get_condition).
+	(jump_optimize): Split optimization that made store-flag insn
+	into three separate optimizations, the first two of which are useful
+	even in the absence of store-flag operations.
+	(can_reverse_comparison): Set and use of cc0 must be immediately
+	adjacent.
+	(mark_jump_label): Abort if LABEL_REF codesn't contain a CODE_LABEL.
+	Consider two labels adjacent after reload if separated by just USE or
+	CLOBBER insns.
+	* loop.c: Now includes real.h.
+	(get_condition_for_loop): New function.	 All callers of get_condition
+	in this file now call this function.
+	(strength_reduce): no_labels_between_p now skips FROM.
+	(get_condition): No longer static.
+	Refine cases when we can't reverse a comparison operation.
+	* optabs.c (init_optabs): Initialize and define setcc_gen_code
+	instead of setcc_gen_fctn.
+	* rtlanal.c (no_labels_between_p): Skip FROM, like as ..._between_...
+	functions do.
+	(no_labels_between): Deleted.
+	(reg_set_last, reg_set_last_1): New functions.
+	* Makefile.in (jump.o): Now include expr.h.
+	(loop.o): Now includes real.h.
+
+	* c-tree.h (int_ftype_cptr_cptr_sizet, ptr_ftype_ptr_cptr_sizet):
+	New names.
+
+	* alliant.md, i386.md, m68k.md, m88k.md, ns32k.md, sparc.md: Add mode
+	to comparison operators (EQ, NE, etc.) to agree with the mode of the
+	destination.
+	* out-m88k.c (emit_test): Likewise.
+
+Fri Dec 14 00:12:46 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-decl.c (finish_struct): Strip NON_LVALUE_EXPR from field width.
+
+Thu Dec 13 13:10:47 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cplus-init.c (expand_vec_init): Add missing arg to
+	expand_exit_loop_if_false.
+
+	* config.gcc (tron): Alias for gmicro.
+
+	* c-decl.c (int_ftype_cptr_cptr_sizet): Variable renamed.
+	(ptr_ftype_ptr_cptr_sizet): Likewise.
+
+	* gcc.c (default_compilers): Handle .C.
+
+	* Makefile.in (enquire.o): Add -I. so can find stddef.h.
+	(install-cross): Install cc1obj like the others.
+
+	* Makefile.in (gnulib.target): Renamed from gnulib.
+	(gnulib): Renamed from tmpgnulib.  Rename that file in this rule.
+	Also delete stamp-gnulib2 here.
+	(gnulib.portable, gnulib.convert): Input now is named gnulib.
+	(GNULIB_TARGET, GNULIB2_TARGET): Define these vars (already in use).
+	(gnulib2.target): Renamed from gnulib2.
+	(gnulib2): New rule, alias for gnulib2.target.
+
+	* local-alloc.c (local_alloc): Cast an enum used as index.
+	* optabs.c (emit_indirect_jump): Likewise.
+	* reload1.c (choose_reload_regs): Likewise.
+
+Thu Dec 13 12:38:31 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expmed.c (store_bit_field): Verify that operand 1 of movstrict
+	satisfies its predicate.
+
+Wed Dec 12 17:26:21 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* gvarargs.h: Avoid duplicate inclusion using _VARARGS_H.
+
+Wed Dec 12 14:11:30 1990  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* tm-m88k.h, out-m88k.c, m88k.md: Eliminated the fixed condition
+	code register.	As a temporary measure, NOTICE_UPDATE_CC is used
+	to track swapped cmpsi cases.
+
+	* m88k.md (shift patterns): Deal with TARGET_*_LARGE_SHIFT
+	uniformly with define_expand.  Make gen_lshlsi3 generate ASHIFT
+	and eliminate the optimization patterns using ASHIFT.  Eliminate
+	other optimization patterns that will be handled by combine.
+
+Tue Dec 11 22:13:48 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* expr.c (convert_move): With slt, handle dest that's invalid.
+
+	* stmt.c, tree.h (stmt_nesting):
+	Typedef deleted; use `struct nesting *'.
+	* stmt.c (expand_start_cond): If exitable, make an exit label.
+
+Tue Dec 11 21:28:56 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (subst, case SUBREG): Update TO for earlier
+	changes so we can always detect (subreg (mem ...)).
+
+Tue Dec 11 10:56:53 1990  Craig Burley	(burley at pogo.ai.mit.edu)
+
+	* stmt.c (expand_start_loop{,_continue_elsewhere}): Return pointer
+	to nesting structure (new type stmt_nesting).
+	(expand_exit_loop{,_if_false},expand_continue_loop): Accept pointer
+	to nesting structure, substitute loop_stack if 0 (same behavior as
+	before when there was no argument), so F90 CYCLE and EXIT statements
+	(like C's continue and break stmts) can refer to other than the
+	innermost loop.
+	(expand_start_cond): Uses new names for if-related labels that
+	reflect addition of "elseif" call, and sets endif_label to whatever
+	exit_label gets set to (so we don't generate two identical labels
+	for languages from which if is exitable via expand_exit_something).
+	(expand_start_elseif): New function, used by Fortran.
+	(expand_start_else): Moved above _end_cond so these four functions
+	appear in the order they get called; uses new names, and fills in
+	only endif_label if needed, not exit_label.
+	(expand_end_cond): Handles end of any if, not just if-without-else.
+	Generates both labels for next else/elseif pending (there was none)
+	and the endif itself, if they exist (and there will always be at least
+	one).
+	(expand_end_else): Gone, call expand_end_cond instead.
+	* c-parse.y, cplus-parse.y, objc-parse.y: Pass new 0 argument to
+	expand_..._loop_... to indicate the innermost loop; call
+	expand_end_cond instead of expand_end_else.
+	* tree.h: Typedef for stmt_nesting returned by expand_start_loop...
+	and change their return types accordingly.
+
+Mon Dec 10 06:59:14 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (check_asm_operands): Delete from here.
+	* recog.c (check_asm_operands): Move to here; no longer static.
+	(validate_change): Don't assume change is valid is asm_noperands >= 0.
+	If recog_memoized returns < 0, accept change if asm_noperands >= 0
+	and check_asm_operands returns non-zero.
+	(apply_change_group): Likewise.
+	(validate_replace_rtx_1): Swap operands on commutative operation
+	if first is constant.
+	Use plus_constant to simplify a PLUS with CONST_INT as second operand.
+
+	* reload.c (find_equiv_reg): We must have a stable SP if GOAL is
+	a MEM that uses SP.
+
+	* combine.c (try_combine): Don't do anything if I2 or I1
+	has an ASM_OPERANDS and CLOBBERS; we'll need those clobbers
+	and it is too messy to try to get things set up correctly.
+
+Sun Dec	 9 22:07:41 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cccp.c (collect_expansion): Don't check for /* */ concat here.
+	(macroexpand): Always use raw arg if traditional.
+
+	* c-parse.y (unary): Mark address of label as constant.
+
+Sun Dec	 9 14:45:34 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-class.c (propagate_basetype_offsets): Take effect on ASSOC
+	before recursive calling.
+	(finish_struct): Call `layout_decl' with zero for KNOWN_ALIGN
+	when laying out TYPE_DECL.
+	* cplus-tree.c (assoc_value): Change recursion condition to compare
+	ASSOC_VALUE (assoc) against TYPE_MAIN_VARIANT (type) instead of just
+	against type.
+
+Sat Dec	 8 10:40:00 1990  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (attributes): Reorganize and include a block diagram.
+	Make better use of defaults.
+	* m88k.md (peephole), out-m88k.c, tm-m88k.h (short_branch): Add
+	the sparc peepholes for changing bsr/br into bsr.n/addu or
+	bsr.n/subu.  Install the length attribute for this.  Requires the
+	use of `def' to accomodate broken assemblers in the bsr.n/addu
+	case.
+
+Fri Dec	 7 06:12:43 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (find_end_label): Increment usage count of label we return
+	so we know it won't go away.
+	(dbr_schedule): Decrement count of end label and delete it if dead.
+
+Wed Dec	 5 17:36:23 1990  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md: Add instruction attributes for scheduling and delay
+	slot information.
+	* m88k.md (addsi pattern): Adding large constants does arise.
+	(udivsi pattern): Wrong predicate.
+	* tm-m88k.h, out-m88k.c (NOTICE_UPDATE_CC): Do so using
+	attributes.
+
+	* make-m88k, make-m88kdgux: Say how to create m88k-trace.asm.
+
+Wed Dec	 5 13:52:16 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* optabs.c (expand_binop): Support insn_before == 0.
+
+	* function.c (optimize_bit_field): Fix wrong arg to validate_change.
+
+	* Makefile (includes): Export LIB.
+
+Wed Dec	 5 13:31:57 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): Don't discard CLOBBERs from an insn
+	with ASM_OPERANDS.
+
+Tue Dec	 4 16:12:21 1990  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* tm-m88k.h, out-m88k.c, m88k.md: More cleanups: introduce
+	POWER_OF_2 for tests (x && (x & (x-1) == 0); rename predicate
+	functions *_p instead of *_operand; cleanup addsi3 insns; simplify
+	udivsi3 insns; simplify memory shift insns; make LOW_SUM and HIGH
+	SImode instead of VOIDmode; add a predicate to the increment and
+	test peephole insn; deal with setting SFmode to zero; delete bogus
+	pattern for divide-by-power-of-2.
+	* make-m88k, make-m88kdgux: dg88k-trace.asm is now m88k-trace.asm.
+	Move movstr-m88k.sh to config/m88k-movstr.sh.
+
+Mon Dec	 3 19:08:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* Makefile.in (gnulib2.ready): New target.
+	(stamp-gnulib2): Depend on that.
+	Avoids recompiling gnulib2 each time cc1 changes.
+
+Mon Dec	 3 16:17:56 1990  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* tm-m88kdgux.h, xm-m88kdgux.h (SEPARATE_AUX_OUTPUT): Should be in
+	xm-m88kdgux.h.
+	* tm-m88k.h, out-m88k.c, m88k.md: Eliminated the fixed literal
+	synthesis register.  Reworked the addressing method to be like the
+	sparc (uses HIGH and LO_SUM).  Numerous cleanups.  These changes
+	are based on work done by Steve Chamberlain (steve@cygnus).
+	* tm-m88k.h, out-m88k.c (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER):
+	Implemented.
+
+Mon Dec	 3 15:19:04 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cccp.c (special_symbol): Use time_t as type of t.
+
+	* m88k-movstr.sh, m88k-trace.asm, va-m88k.h: New files.
+
+	* gcc.c: Don't define R_OK, etc. if already defined.
+
+	* out-sparc.c (finalize_pic, emit_move_sequence, output_arc_profiler):
+	Finish change to emit HIGH and LO_SUM as Pmode instead of VOIDmode.
+
+Sun Dec	 2 22:13:53 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* config.gcc (tower): New alternative.
+	(mips-news): Adapt for version 2.
+
+	* tm-tower.h, tm-tower-as.h, xm-tower.h: New files.
+
+Sun Dec	 2 17:47:28 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (eliminate_regs, case ASM_OPERANDS): Fix typo in testing
+	for changed vector.
+
+	* out-rs6000.c (output_epilogue): Fix typo restoring general registers.
+	(print_operand): Add new option %H.
+	* rs6000.md: Add (clobber (reg:SI 64)) to many patterns even though
+	they don't clobber MQ to allow combining to work well.	This will be
+	removed once combine knows how to add clobbers when required.
+	Change patterns to reflect new canonicalization rules.
+	Where we have (and (xshift)), add patterns for (zero_extend (xshift)).
+	(andsi3, xorsi3): Fix bug in case where two insns are needed.
+	(moveti): Don't call change_address when in reload.
+	(sign_extend): Add patterns for sign extend preceeded or followed by
+	one of the shifts it will do.  Use %H to output the merged shift.
+
+	* out-romp.c (print_operand): Allow exact_log2 result to be zero.
+	* romp.md: Likewise.
+	* tm-romp.h (CONST_OK_FOR_LETTER): Likewise.
+
+	* a29k.md (type attribute): Add types for floating-point insns.
+	(in_delay_slot attribute): Update to allow for new types.
+	(function_unit definitions): Add definitions for floating-point units.
+	(andcb*3): Delete obsolete names.
+	(convert insn): Use register_operand instead of gen_reg_operand for
+	floating-point operand.
+	(cpeq, feq, deq, etc): New patterns.
+	(floating-point arithmetic): Add support for 29050 insns and
+	accumulators; indicate function unit usage.
+	(ior/and patterns): Put NOT as second operand.
+	(orn insn): New, for 29050.
+	(load patterns): If using match_operator, make it the highest operand
+	number.
+	(loadm insns): Add workaround for rev A1 bug on 29050.
+	(negsf2, negdf2): Don't use XOR to negate on 29050.
+	(movsf, movdf): Add support for accumulators on 29050.
+	(movsi, movhi, movqi): No need to support special->special copies.
+	Support consthz insn on 29050.
+	(compare, scc, and branch insns): Rework to not use cc0.  Use a pseudo
+	register instead.  Compare doesn't generate any code, but merely
+	saves the operands.  scc and branch then emit the appropriate compare
+	and jump (if branch) insns.
+	(tstsi): Delete pattern; not used when no cc0.
+	(peepholes): Remove peepholes to convert jumps to scc insns; now
+	done in jump.c.
+	* out-a29k.c (a29k_compare_*): New variables.
+	(long_const_operand): Anything with low-order 16 bits zero is not a
+	long constant on the 29050.
+	(accum_reg_operand): New function.
+	(gen_reg_operand): Returns false for accumulator registers.
+	(output_operand): Allow accumulators.
+	(ne_comparison_p, fp_comparison_p, return_peep_operand): Deleted.
+	(fp_comparison_operator, branch_operator): New functions.
+	(output_compare): Deleted.
+	(print_operand): Change meaning of %b and %B.
+	Add new code %J.
+	* tm-a29k.h (TARGET_VERSION): Say if compiling for 29050.
+	(TARGET_FLAGS): Add -29000 to turn off support for 29050; this is
+	still the default.
+	(various register macros): Add support for the floating-point
+	accumulators on the 29050.
+	(CONST_OK_FOR_LETTER): Use 'O' for a constant that can be set using
+	conthz on the 29050; keep old definition for 29000.
+	(STORE_FLAG_VALUE): Now 0x80000000.
+	(ASM_FILE_START): Write ".cputype 29050" when compiling for 29050.
+
+	* combine.c (subst): Put NOT, NEG, MULT, PLUS, and MINUS as the
+	first operand of commutative operations.  Note that NOT used to be
+	put as the second operand but it has always been assumed that 
+	MULT would be the first operand in address expressions, so we have
+	to change the previous canonicalization.  This is possible now that we
+	have eliminated the andcbm3 operations.
+	* i860.md (andnot): Remove obsolete andcbsi3 name and place NOT
+	as first operand.
+	* m68k.md (fpm*): Delete patterns with MULT as second operand and
+	use "@" construct when possible.
+	* m88k.md (and.c, ior.c): Remove obsolete andcbsi3 and iorcbsi3 names.
+	Delete patterns with NOT as second operand.
+	(xor.c): Rewrite in new canonical form.
+	* mips.md (nor): Rewrite in new canonical form.
+	* pyr.md (bicw): Remove pattern with NOT as first operand, removing
+	obsolete name andcbsi3 in the process.
+	* sparc.md: Remove patterns with NOT as first operand.
+	Remove obsolete names andcbsi3, iorcb3, and xorcbsi3.
+	Rewrite xnor into new canonicalized form.
+	Add mode to HIGH and LO_SUM operations.
+	* vax.md (bic*): Remove obsolete andcbm3 names.
+	Put NOT as first operand when both generating and recognizing RTL.
+	(jlbc): Rewrite with NOT as first operand.
+
+Sun Dec	 2 17:08:16 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m68k.md (recognizer for casesi_2): Handle ASM_RETURN_CASE_JUMP.
+
+	* stddef.h (ptrdiff_t): Prevent definition, as with size_t.
+
+Sat Dec	 1 16:31:30 1990  Ron Guilmette	 (rfg at ncd.com)
+
+	* dwarfout.c (lookup_filename, dwarfout_finalize): changed from
+	maintaining a linked list of filename entries to maintaining an
+	(expandable) array of filename entries instead.	 Also, changed
+	code so that *all* filename strings are output (to the .files
+	section of the asm file) in one swell foop just as the asm file is
+	being finalized rather than writing out new filenames one-by-one
+	as they arise (as previously). This circumvents a problem caused
+	by rfg's naive assumption that assemblers kept a stack of prior
+	section names (of depth > 1) which could be successively popped
+	via multiple `previous' directives.  For some assemblers, the
+	depth of the stack is only 1 and they can get confused if you do
+	two (or more) `previous' directives in a row.  Anyway, it is no
+	longer either necessary or useful to do that, so who cares.
+
+	* dwarfout.c: added code to output newlines to the asm file just
+	prior to each and every change of section (for better readability
+	of the asm files).
+
+	* dwarfout.c: changed code so that if DWARF_DESCRIBE_USED_EXTERNS
+	is defined, it forces DWARF_LOCATION_ATTRIBUTES to also be defined.
+
+	* dwarfout.c: changed code so that if DWARF_LOCATION_ATTRIBUTES
+	is defined, it forces DWARF_DESCRIBE_FILES to be defined (to `1').
+
+	* dwarfout.c: changed code so that if DWARF_DESCRIBE_FILES is not
+	already defined (in the user's tm.h file) it will automatically be
+	defined (by default) to `1'.  Also changed all instances of
+	`#ifdef DWARF_DESCRIBE_FILES' to `#if DWARF_DESCRIBE_FILES'.
+	The user must now intentionally *disable* this feature (by
+	defining DWARF_DESCRIBE_FILES to `0' in his tm.h file) if he
+	wishes to have the additional information about files suppressed.
+
+	* dwarfout.c: changed comments relating to optional defines for
+	extended GNU DWARF features to include more information and to
+	add some additional clarity.
+
+Sat Dec	 1 16:00:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (subst): Call reverse_condition instead of
+	reverse_comparison.
+	We are allowed to reverse floating-point EQ and NE comparisons.
+
+	* combine.c (subst): Call simplify_and_const_int for all AND
+	and ZERO_EXTEND cases and all cases where we make one of them.
+	Remove all other code in AND and ZERO_EXTEND cases.
+	(simplify_and_const_int): Rewritten to follow a consistent model
+	of tracking what AND's need to be done and which bits are not
+	significant.  Consistently try a ZERO_EXTEND for all cases where
+	the result is an AND with a mode-wide mask.  Move all remaining
+	cases from AND any ZERO_EXTEND cases from subst.
+
+Sat Dec	 1 09:13:17 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-tree.h (lang_type): Remove any_assigns_this,
+	none_assigns_this from type_flags.
+	* cplus-decl2.c (get_temp_name): If the initializer is a
+	pointer to zero, cache it in EMPTY_TABLE.
+	(finish_builtin_type): New function, to factor common code
+	arising from building internal structures.
+	* cplus-decl.c (init_decl_processing): Call it.
+
+Fri Nov 30 10:39:04 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl.c (finish_function): Use CLASSTYPE_ASM_WRITTEN instead
+	of TREE_USED to indicate that we need debugging info for
+	TTYPE.
+	Note that nobody ever sets EXTENDED_DBX_DEBUG.	For now,
+	change to test DBX_DEBUG.  For later, change everything to
+	key off of EXTENDED_DBX_DEBUG.	
+	Also, set `warn_return_type' to one always, since this warning
+	is too valuable to lose.
+	* cplus-tree.c (lang_output_debug_info): Don't test TREE_USED.	That
+	field is already used by other routines, and we have all we need now
+	in CLASSTYPE_ASM_WRITTEN.
+	* cplus-dbxout.c (dbxout_type_method_1): Handle const,
+	volatile, and const/volatile member functions.
+
+Fri Nov 30 04:51:46 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (reg_last_set_value): New variable.
+	(combine_instructions): Allocate and initialize it.
+	(record_dead_and_set_regs): Set reg_last_value to source
+	of assignment; clear it for a CLOBBER or partial assignment.
+	(subst): Use reg_last_set_value instead of interpreting the
+	insn in reg_last_set as if it was a single SET.
+
+	* combine.c (gen_lowpart_for_combine): Call gen_lowpart for CONST_INT.
+	When making a new MEM, copy MEM_VOLATILE_P and MEM_IN_STRUCT_P.
+	If cannot recognize the argument, just form a SUBREG; usually,
+	it won't be recognized, but sometimes will allow further
+	simplifications.
+
+	* regclass.c (reg_scan): Save size of uid map; reallocate if
+	we have more registers than we allocated.
+	Leave some extra room in map.
+
+	* stmt.c (emit_case_nodes): Supply missing argument to emit_cmp_insn.
+
+	* fold-const.c (decode_field_reference): Add missing arg declaration.
+
+	* expmed.c (store_bit_field): Add missing last argument to
+	recursive call.
+
+	* cse.c (cse_insn): Remove extra arg passed to rtx_equal_p.
+
+	* Makefile.in (proto): Make protoize.1 and unprotoize.1.
+	(protoize.1, unprotoize.1): New targets.
+	(install_man): Install protoize.1 and unprotoize.1./
+	* proto-unproto.1: New file.
+
+	* loop.c (scan_loop): Properly set SET_SRC in movables entry for
+	MOVE_INSN == 1 and CONSEC > 0 case.
+	(force_movables): Don't look at SET_SRC when CONSEC > 0.
+
+	* expr.c (expand_expr, case ARRAY_REF): Ensure TYPE_POINTER_TO
+	gets initialized after we build a variant type.
+
+Fri Nov 30 00:35:06 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m68k.md (ashr of 16 to 24 bits): Use extl, not extw.
+
+Thu Nov 29 21:41:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* tm-vax.h (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): New macros.
+
+	* gcc.c (add_prefix): Add new element, don't replace old first elt.
+
+	* dwarfout.c (dwarfout_finalize): Go to DEBUG_SECTION first thing.
+
+Thu Nov 29 17:50:43 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu)
+
+	* stmt.c (expand_end_loop): Stop looking for branch to the loop
+	exit when we hit a NOTE_INSN_BLOCK_{BEG,END}.
+	* jump.c (duplicate_loop_exit_test): Likewise.
+	Also, only copy line-number notes.
+
+	* integrate.c (expand_inline_function): Call expand_expr for the
+	arguments before allocating maps that are based on register numbers.
+
+	* loop.c (loop_reg_used_before_p): Accept new argument, SET, to
+	indicate which part of INSN is setting the relevant register.
+	(scan_loop): Pass new arg to loop_reg_used_before_p.
+
+	* function.c (optimize_bit_field): Don't assume ZERO_EXTRACT can
+	be replaced by MEM; use validate_change to check.
+
+	* reload.c (find_reloads_toplev): Add missing arg to recursive call.
+
+	* calls.c (expand_call): Correct two cases of missing mode to gen_rtx.
+
+Thu Nov 29 02:42:35 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* version.c: Bump version number to 1.90.04.
+
+	* toplev.c (rest_of_compilation): If FLAG_PIC is nonzero, emit any
+	special PIC code once we start really compiling a function (i.e., we
+	are not in an inline function).	 Inline functions cannot
+	meaningfully hold PIC code because there is no notion of position
+	independence in code that isn't really being written down.
+
+	* Makefile.in: Don't build cplus-cadillac.o by default.	 Build
+	cplus-edsel.o instead.	Until Lucid frees their programming
+	environment, their Cadillac will always be an Edsel to GNUsers.
+
+	* stmt.c (fixup_gotos): Change loop to run in two passes so that
+	cleanups don't experience a race condition.
+	(expand_cleanups): Replace Nov 5 word-around with consistency check.
+	The same cleanups should never be run twice.
+
+	* cplus-decl.c (lang_{init,finish}): Move these functions...
+	cplus-lex.c: ...to here.  Also, make change to lang_init analogous
+	to Nov 27 change for C compiler.
+
+	* cplus-decl.c (pushdecl): Don't warn about static/extern conflicts
+	if X is a TYPE_DECL.
+	(build_enumerator): Certain CONST_INT nodes cannot be coopted to be
+	the constant for enumerator.  Mark them as non-shareable and don't
+	coopt them.
+
+	* cplus-decl.c (lang_{init,finish}): Declare these to be void
+	functions to match new tree.h.
+
+Wed Nov 28 18:48:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (eliminate_regs): Convert (subreg (mem)) to (mem) when
+	not a paradoxical SUBREG.
+
+Wed Nov 28 17:15:43 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* emit-rtl.c (gen_label_rtx): Clear LABEL_NAME via gen_rtx.
+
+Tue Nov 27 21:54:15 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* varasm.c (assemble_external): Never write a .extern for a static
+	name.
+
+	* recog.c (validate_replace_rtx_1): Handle making a SUBREG of a MEM
+	by trying a new MEM.
+
+Tue Nov 27 11:54:28 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-lang.c, objc-action.c: Include input.h.
+	(lang_init): Call check_newline here.
+	* toplev.c (compile_file): Not here.
+	Call lang_init after setting input_filename.
+
+	* tree.h: Declare numerous functions that the front end must provide.
+
+	* rtl.h (LABEL_REFS): Use operand 5, same as LABEL_NUSES.
+
+	* toplev.c (warn_return_type, W_options): Handle -Wreturn-type here.
+	* c-decl.c: Not here.
+	* flags.h: Declare it here, not in c-tree.h.
+
+	* gcc.c (pexecute): Wait and retry if fork fails.
+
+	* expr.c (do_jump): Pass all args to get_inner_reference.
+	(expand_assignment): Fix typo in arg to get_inner_reference.
+
+	* tm-hp9k320.h (STANDARD_STARTFILE_PREFIX): Don't alter if already set.
+
+Mon Nov 26 18:28:51 1990  Michael I Bushnell  (mib at churchy.ai.mit.edu)
+
+	* cccp.c (handle_directive): Do backslash-newlines inside of
+	strings.
+
+Mon Nov 26 15:39:29 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cccp.c (main): Handle -w.
+	(warning): Do nothing if -w.
+	* gcc.c (compilers): Pass -w to cpp.
+
+	* c-decl.c (grokdeclarator): Don't discard arg types
+	for prototype even if traditional.
+
+Sun Nov 25 20:52:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* protoize.c: Undef CHAR_BIT, etc, before including limits.h.
+
+	* reload1.c (old_asm_operands_vec, new_asm_operands_vec): 
+	Type should point to a vector.
+	(Eliminate_regs): For asm_operands, copy the vector properly.
+
+Sun Nov 25 20:35:12 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu)
+
+	* jump.c (jump_optimize): Fix typo in stack push combining code.
+
+	* reload1.c (eliminate_regs): Ensure we share operands 3 and 4
+	of ASM_OPERANDS operations if they were originally shared.
+	Copy all rtx flags when making a new MEM.
+	(eliminate_regs_in_insn): Initialize for ASM_OPERANDS sharing check.
+
+Sun Nov 25 16:37:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* Makefile.in (stamp-gnulib2): Don't depend on gnulib2-indirect.
+
+	* gcc.c (do_spec_1): Handle %W{...}.
+	(default_compilers): Use %W{...} when passing -o option.
+
+Sat Nov 24 16:39:56 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cplus-lex.c (init_lex, do_pending_inlines, reinit_lang_specific):
+	Add conditionals for __GNU_LIBRARY__.
+
+Thu Nov 22 13:48:06 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (optimize_bit_field_compare): Pass additional
+	arg to get_inner_reference; it gets set if something was volatile.
+	(decode_field_reference): New arg PVOLATILEP; passed to
+	get_inner_reference.
+	(merge_component_references): Add pointer to place to store if
+	something is volatile to calls to decode_field_reference; don't
+	do anything if it gets set (this may be very conservative).
+
+	* stmt.c (expand_end_loop): Skip initial CODE_LABEL at start of
+	loop when looking for qualified conditional exit.
+
+	* reload.c (push_reload): If (subreg:M1 (reg:M2 ....)) and we
+	have trouble access the register in M1, reload the reg, not subreg.
+	Fix typo in testing for memory.
+	(reload): Force reload of the operand in the above cases.
+
+Wed Nov 21 17:39:42 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (strength_reduce, combine_givs): Don't penalize
+	non-replaceable givs unless they are user variables; temporaries
+	are probably dead even though we can't prove it.
+
+	* integrate.c (save_constants): Don't get confused by looking
+	inside CONST_DOUBLE_MEM.
+	Call recursively on what get_pool_constant returned, in case it
+	was itself the address of a pool constant.
+	(copy_for_inline, copy_rtx_and_substitute, restore_constants):
+	Remake CONST_DOUBLE so it gets chained in correctly and we don't use
+	obsolete CONST_DOUBLE_MEM values.  Call recusively on operand we are
+	about to pass to force_const_mem; it might have been a case of a
+	constant value being an address of another constant.
+
+	* loop.c (find_mem_givs): Don't make a DEST_ADDR giv with mult_val == 1
+	and add_val == 0.
+	(maybe_eliminate_biv_1): Turn off elimination in (compare biv1 biv2)
+	cases; they have problems.
+
+Wed Nov 21 16:06:14 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* dwarfout.c (location_attribute): Offset for bitfields is special.
+
+	* expr.c (get_inner_reference): New arg pvolatilep.
+	(expand_expr, expand_assignment): Use to set MEM_VOLATILE_P.
+
+Wed Nov 21 10:34:25 1990  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* stor-layout.c (layout_decl): Record whether a FIELD_DECL is a
+	bit-field and if so its original type.
+	* tree.h (DECL_BIT_FIELD_TYPE): New.
+	* dbxout.c (dbxout_type): Use DECL_BIT_FIELD_TYPE.
+	* dwarfout.c (output_member_die, bit_offset_attribute,
+	bit_size_attribute, member_declared_type): Use DECL_BIT_FIELD_TYPE.
+	* sdbout.c (sdbout_one_type): Use DECL_BIT_FIELD_TYPE.
+
+	* sdbout.c (DEBUGGER_ARG_OFFSET, DEBUGGER_AUTO_OFFSET): New
+	interfaces to compute the location of arguments and automatic
+	variables.
+	* dbxout.c (DEBUGGER_ARG_OFFSET, DEBUGGER_AUTO_OFFSET): Likewise.
+
+	* dbxout.c (dbxout_parms): Describe a parameter passed in
+	registers but living on the stack as N_PSYM rather than N_LSYM.
+	These are typically arg_pointer based locations.
+
+	* out-m88k.c (m88k_debugger_offset): New function.
+	* tm-m88k.h (DEBUGGER_ARG_OFFSET, DEBUGGER_AUTO_OFFSET): Replaces
+	SDB_AUTO_NORMALIZE_OFFSET.
+	* tm-m88k.h (STACK_BOUNDARY): Update to 16 byte aligned stacks.
+
+Tue Nov 20 23:48:57 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* dwarfout.c (dwarfout_init): Set stack depth to 1 at start.
+	(output_padded_null_die): New function.
+	(dwarfout_finalize): Use that to ensure length divisible by 4.
+
+	* ns32k.md (addsi3): Don't use `addr' for very large displacements.
+
+Tue Nov 20 05:48:42 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (can_reverse_comparison_p): It is safe to reverse an EQ
+	or NE comparison, even if IEEE floating-point.
+
+	* integrate.h (struct inline_remap): const_*_map now maps registers
+	in calling function, not called function.
+	Add fields to save values recorded from SETs.
+	* integrate.c: Now includes insn-config.h and real.h.
+	(expand_inline_function): New meaning for const_*_map.
+	Don't fill in constant equivalences here; now done in try_constants.
+	Show CALL_INSNs potentialy clobber all hard registers since we
+	now record equivalences for hard registers.
+	(try_constants): No longer need original RTL; all callers changed.
+	Call note_stores to kill any known equivalences for registers changed.
+	Record equivalences for PC, CC0, and registers set by this insn.
+	(subst_constants): No longer need original RTL; all callers changed.
+	Reflect new meaning of const_*_map.
+	Perform more extensive constant folding, basically a subset of
+	fold_rtx in cse.c; specifically, fold the result of comparison
+	operations and IF_THEN_ELSE operations.
+	Record the constant equivalences of SETs, if any.
+	(try_fold_condition, const_equiv, fold_out_const_cc0): Deleted.
+	* Makefile.in (integrate.o): Now includes insn-config.h and real.h.
+
+Sat Nov 17 07:48:45 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (local_alloc): Don't allocate a reg that wants a
+	class that has only one register; let global-alloc do it so that it
+	can be given a GENERAL_REG if reload needs a spill reg of that class.
+
+	* regclass.c (regclass, reg_class_record): Count savings in loops as
+	being greater the same way we adjust reg_n_refs for loops in flow.c.
+
+	* expmed.c (store_bit_field, extract_bit_field): Remove change of
+	Oct 16; it causes problems with long long bit fields.
+
+	* rtlanal.c (reg_overlap_mentioned_p): If called with a constant,
+	return zero.  If called with a MEM, return 1 iff the second arg
+	contains a MEM. 
+	* reload.c (push_reload): Call reg_overlap_mentioned_p only if OUT
+	is a MEM and then pass it the address of OUT.
+
+	* cse.c (cse_insn): Refine when SRC_EQV, SRC, and DEST are added
+	to the hash table.  SRC_EQV is not added to the hash table if it
+	is volatile or equal to DEST and similarly for SRC.  DEST is not
+	added to the hash table unless either SRC_EQV or SRC is.
+
+Thu Nov 15 23:43:20 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-typeck.c (convert_for_assignment): Change warning message.
+
+Thu Nov 15 18:44:49 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* stmt.c (expand_end_loop): Generalize code to look for more
+	than one branch to the exit and include unconditional branches
+	to the exit; move the whole range to the end of the loop.
+	* jump.c (duplicate_loop_exit_test): New function.
+	(jump_optimize): Call it.
+	Don't allocate jump_chain until we have finished deleting dead code.
+	Leave some more room in jump_chain.
+	(simplejump_p): Reject if not JUMP_INSN.
+	(delete_insn): If simplejump_p, remove from jump chain.
+	* loop.c (loop_skip_over): Deleted.
+	(scan_loop): No longer call it.
+	* cse.c (predecide_loop_entry): Deleted.
+	(cse_basic_block): No longer call it.
+
+Thu Nov 15 18:00:20 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* math-68881.h (HUGE_VAL): Add extra braces for Sun.
+
+	* stor-layout.c (layout_type): Don't let array have less
+	alignment than its mode calls for.
+
+Thu Nov 15 13:05:30 1990  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* sdbout.c (sdbout_parms, sdbout_reg_parms): Reimplemented based
+	on dbxout_parms and dbxout_reg_parms.
+
+Wed Nov 14 08:48:43 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (emit_...): All of these now return the last insn
+	emitted; previously some of them returned void.
+	(emit_barrier_before): New function, similar to others.
+	* rtl.h: All emit_... functions now return an rtx; reorder so
+	declarations are in the same order as definitions in emit-rtl.c.
+
+	* reorg.c (steal_delay_list_from_{target,fallthrough}): Add missing
+	test when checking candidate insn for resource conflicts.
+
+Wed Nov 14 07:08:19 1990  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* c-parse.y (pushlevel, compstmt): Place a line note at the first
+	token beginning a block and at the close brace ending a block.
+	These are the conventional locations for SDB and DWARF debugging
+	information.
+
+Tue Nov 13 18:16:47 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* function.c (assign_stack_local): If alignment not specified
+	and not BLKmode, use at least word alignment.
+	(assign_outer_stack_local): Likewise.
+
+	* sparc.md: Turn off patterns that specify no_ov or CC_NO_OVERFLOW.
+
+	* dwarfout.c (file_attribute): Fix arg to ASM_OUTPUT_DWARF_ATTRIBUTE.
+	(AT_line, AT_file): New definitions.
+
+	* out-i860.c (output_block_move): Move .Lm%3 down one insn.
+
+	* c-decl.c (grokdeclarator): -funsigned-bit-field doesn't affect enums.
+
+Tue Nov 13 09:28:27 1990  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* gcc.c (default_compilers): Report an error if -C is used without
+	-E.  Pass -H to cpp.
+
+	* sdbout.c (plain_type, plain_type1): save and output the
+	rightmost array dimensions.
+
+	* syms.h (enum sdb_type): Add T_VOID, equal in value to T_ARG.
+	* sdbout.c (plain_type_1): Use T_VOID for VOID_TYPE and define it
+	to be T_INT if not present in <syms.h>.
+
+	* sdbout.c (sdbout_toplevel_data): Use abort rather than fatal.
+
+Mon Nov 12 08:49:33 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* expr.c (compare): Fix use of GET_MODE_CLASS so we don't abort if
+	MODE is VOIDmode.
+	* optabs.c (init_optab): Call `xmalloc' instead of `malloc'.
+
+	* out-sparc.c (hard_regno_mode_ok): Change initialization of array
+	to match behavior of Nov 11 change for complex modes.
+
+	* jump.c (delete_labelref_insn): Chase all LOG_LINKS of insn to try
+	to delete references to LABEL.	This is needed for machines like
+	SPARC which use multiple insns to get the value of LABEL into a
+	register.
+
+Mon Nov 12 16:07:27 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* machmode.def (SCmode, ...): Class is MODE_COMPLEX_FLOAT.
+
+Sun Nov 11 00:27:34 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* tm-i860.h (HARD_REGNO_MODE_OK): Handle values more than 2 regs long.
+	* tm-m68k.h (HARD_REGNO_MODE_OK): Likewise, for d7/a0 boundary.
+	* tm-spur.h (HARD_REGNO_MODE_OK): Likewise, for 31/32 boundary.
+	* tm-*.h (HARD_REGNO_NREGS): Use GET_MODE_NUNITS to handle
+	complex values in fp registers on machines where one reg holds a DF.
+
+	* sdbout.c (sdbout_one_type): Do nothing for incomplete type.
+
+	* c-decl.c (duplicate_decls): Warning only when redefining built-in fn.
+
+	* c-decl.c (init_decl_processing): Use sizetype, not unsigned long,
+	in prototypes for memcpy and memcmp.
+
+	* c-parse.y (component_decl): Don't read the semicolon here.
+
+	* toplev.c (compile_file): Reverse top-level decls before output.
+
+Sat Nov 10 22:27:47 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* stor-layout.c (layout_type): Use MODE_COMPLEX_{INT,FLOAT}.
+
+Sat Nov 10 20:34:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c: Provide a default definition of REGISTER_MOVE_COST.
+
+Sat Nov 10 01:43:09 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-init.c (emit_base_init): Don't use CLASSTYPE_ASSOC as a list
+	of only immediate basetypes anymore.  Use `get_base_distance' to
+	check whether a type is an immediate basetype or not.
+
+	* stmt.c (expand_return): Don't emit a USE if VAL is a
+	pseudo-register.
+
+	* integrate.c (function_cannot_inline_p): Call to strcmp for
+	"__builtin_va_alist" must use IDENTIFIER_POINTER not
+	DECL_NAME.
+
+	* genattrtab.c (check_attr_test): Use XSTR macro instead of
+	XEXP macro in places where strings are used.
+
+	* tree.c (type_hash_lookup): Have to check TYPE_DOMAIN for non-zero
+	before comparing the equality of the possible lists.
+
+	* cplus-typeck.c (build_c_cast): Check TREE_TYPE before checking
+	that the TREE_TYPE is an OFFSET_TYPE.
+
+	* cplus-typeck.c (c_expand_return): Use DECL_RESULT of
+	current_function_decl instead of `result' since `result' might be
+	set to zero.
+
+	* cplus-decl.c (xref_tag): Fixed typo in setting
+	TYPE_USES_COMPLEX_INHERITANCE.
+
+	* cplus-tree.c (assoc_value): Changed interface to take COPYING
+	parameter.
+	* cplus-{class,init,search,tree}.c  All callers changed.
+
+	* cplus-typeck.c (build_c_cast): Resolve OFFSET_REFs if the type we
+	are converting to is not an OFFSET_TYPE.
+
+Thu Nov	 8 15:26:27 1990  Craig Burley	(burley at pogo.ai.mit.edu)
+
+	* tm-*.h: Try to change HARD_REGNO_NREGS, HARD_REGNO_OK, and other
+	macro defs to handle new complex type stuff.  Mostly guesswork; needs
+	checking by people who really know each machine.
+	* machmode.def (SCmode, DCmode, XCmode, TCmode): New complex modes.
+	* machmode.h (GET_MODE_ALIGNMENT): New macro from stor-layout.c.
+	* tree.c (build_complex_type): New function.
+	* stor-layout.c (layout_type): Handle COMPLEX_TYPE.
+	* expr.c (compare1, compare, move_block_to_reg, emit_push_insn):
+	Change uses of GET_MODE_CLASS.
+	* optabs.c (expand_binop, expand_twoval_binop, expand_unop):
+	(emit_cmp_insn): Likewise.
+
+Thu Nov	 8 06:19:57 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (no_conflict_p): Initialize *WHERE_DEAD; previously
+	uninitialized.
+
+Thu Nov	 8 01:08:45 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-parse.y (yylex): Size of wide STRING_CST counted terminator wrong.
+
+Wed Nov	 7 14:55:38 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* gnulib2.c (L_trampoline): Put it inside a dummy function.
+
+	* enquire.c: Renamed from hard-params.c; new vers from steven@cwi.nl.
+	Modified to undef CHAR_BIT, etc. if defined in stdio.h.
+	* Makefile.in (enquire): Targets renamed.
+	(enquire.o): Define NO_MEM.
+
+Wed Nov	 7 14:18:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (invert_jump): If it is going to fail (i.e., redirect_jump
+	fails), don't invert the jump.
+
+	* expr.c (expand_expr, case COND_EXPR): Don't accept a hard register
+	as a target if we are going to store into it before testing the
+	condition because that evaluation may involve a subroutine call
+	which might clobber it.
+
+	* jump.c (delete_jump): reg_set_p should be called with PATTERN (insn).
+	(thread_jumps): Add omitted last argument to rtx_equal_for_thread_p.
+
+	* reload.c (find_reloads): Only skip insns which set one hard register
+	to another if the cost of doing so is low;  if not, there may not be
+	a single insn to do the copy and we may need a reload register.
+
+Wed Nov	 7 00:01:18 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-parse.y (component_decl_list): Allow missing semi at end.
+
+	* loop.c (move_movables): When moving and deleting library call,
+	don't be confused if an insn is deleted.
+
+Tue Nov	 6 20:49:57 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* tm-m68k.h (TRANSFER_TO_TRAMPOLINE): Fix asm syntax.
+ 
+	* xm-iris.h (alloca): Delete redundant definition.
+	* tm-iris.h (CPP_SPEC): Define variant symbols starting with _.
+	Define __EXTENSIONS__.
+
+	* config.gcc (editing .gdbinit): Search current dir, not just srcdir.
+
+Tue Nov	 6 22:24:09 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case COND_EXPR): Generate efficient code for
+	A ? A : FOO and similar.
+
+	* combine.c (subst): If we have, e.g., (lt CONST FOO), convert it
+	to (gt FOO CONST).
+
+	* recog.c (comparison_operand): Use comparison_code_p.
+
+	* genconfig.c (walk_insn_part):	 Add operand to indicate if PART is
+	going to be used to recognize an insn (as opposed to emitting rtl).
+	If not, ignore CC0.
+	(gen_insn, gen_expand, gen_split, gen_peephole): Add new operand to
+	walk_insn_part calls.
+
+	* cse.c (find_comparison_args): Correctly compute rtx_code of
+	comparison; if we find another comparison code inside, use it.
+	* loop.c (get_condition): Likewise.
+
+	* expr.c (expand_builtin): For ffs, don't pass VOIDmode to expand_unop.
+
+Mon Nov	 5 12:55:00 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* final.c (output_addr_const): Don't print parens for CONST.
+
+	* reload1.c (choose_reload_regs): Handle case where find_equiv_reg
+	returns a SUBREG.  Also, use variable `regno' uniformly throughout
+	code that finds equivalent register.
+
+	* gnulib2.c (__floatdisf, __fixunssfsi): New functions.
+	(__fixsfdi, __fixunssfdi): New functions.
+	* gnulib.c (__floatsisf, __fixsfsi): New functions.
+
+Mon Nov	 5 06:37:02 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold, case EQ_EXPR and NE_EXPR): Convert, e.g.,
+	(A & 2) == 2 to (A & 2) != 0.  This eliminates the need for these
+	patterns in MD files.
+	Detect more general cases of comparing something with itself.
+
+Mon Nov	 5 00:09:55 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* stmt.c (expand_cleanups): Don't run any cleanup twice.
+
+Sun Nov	 4 23:49:22 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (convert_move): Use emit_no_conflict_block when converting
+	SImode to DImode.
+	If have slt insn, emit a compare insn; we must not have a use of
+	cc0 without a set; normally, the compare will be deleted as
+	redundant in final.c.
+	Use shift rather than clear/test/negate for high-order word when
+	doing sign extension.
+
+	* optabs.c (emit_no_conflict_block): Don't put REG_NO_CONFLICT
+	notes on the trailing copy insn; nobody looks there.
+
+	* combine.c (try_combine): Don't combine a reg-reg copy if the
+	destination is used in a REG_NO_CONFLICT note.
+
+	* reload.c (find_equiv_reg): Use true_regnum to support SUBREGs
+	as well as REGs.
+
+Sun Nov	 4 12:55:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* i386.md (extend*): Take out last change.
+	Unix assembler rejects movsx...
+
+	* expr.c (expand_expr): Special case for ignored volatile
+	failed to return.
+
+Sat Nov	 3 14:42:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (do_jump, case PLUS_EXPR): Turn off this case; it was a
+	pessimization.
+
+Fri Nov	 2 01:51:31 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* stmt.c (expand_return): Don't emit a USE if VAL is a
+	pseudo-register.
+
+Fri Nov	 2 15:30:48 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* gnulib2.c (__builtin_saveregs): Add version for i860.
+
+	* out-i860.c (output_block_move): Rearrange the copy loop.
+	Now uses two labels and a more complicated lead-in.
+
+Fri Nov	 2 14:17:24 1990  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (extendsidi2):  New define_expand.
+
+	* out-m88k.c:  Converted various constructs to use conventinal
+	formatting.
+
+	* m88k.md (ext pattern): Must have parens.
+	* m88k.md (mul/div patterns): Added better documentation.  Removed
+	unfounded restriction on immediate values.
+	* m88k.md (increment and test peephole): Don't use %L.
+
+	* out-m88k.c (m88k_layout_frame): Must allocate space for the
+	addressing base register (-mpic).
+	* out-m88k.c (output_tdesc): Use version 2 tdesc with PIC.
+
+	* tm-m88k.h, tm-m88kdgux.h,: Don't predefine memcpy and others.
+	* tm-m88k.h: Fixes for dwarf.
+	* tm-m88ksvr4.h: Dwarf changes.
+	* xm-m88k.h xm-m88kdgux.h xm-v88r32.h: Update comments.
+
+Fri Nov	 2 12:30:15 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (comparison_dominates_p): Return 1 if codes are the same.
+	(thread_jumps): Use get_label_after.
+
+	* a29k.md (movdi): Handle CONST_INT as well as CONST_DOUBLE.
+	(comparisons): Fix typo in define_split for floating-point NE.
+
+	* reorg.c (fill_slots_from_thread): Don't mark as annulled if no
+	delay list.
+
+	* loop.c: Allow use of any register to store comparison results.
+	(loop_skip_over): Don't treat comparison specially; copy all insns
+	preceeding the jump.
+	(check_for_endtest, other_reg_use_p): Deleted.
+	(can_eliminate_biv_p, eliminate_biv): Deleted; code merged and
+	placed into new maybe_eliminate_p_1.
+	(may_eliminate_biv, may_eliminate_biv_1): New functions; recursively
+	look at all rtx to see if every occurrence of a biv can be
+	eliminated.
+	(check_eliminate_biv): Deleted; callers changed to call
+	may_eliminate_biv.
+	(get_condition): Rework to look into previous insns to find insns
+	that set the first operand of comparison insns.
+
+Thu Nov	 1 22:07:42 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (fold_rtx, case COMPARE): Only convert compare to test if
+	HAVE_cc0 is defined.
+	* combine.c (subst): Copy COMPARE case from fold_rtx.  
+	Simplify things like (ne (eq FOO BAR) (const_int 0)).
+
+Thu Nov	 1 18:06:56 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* math-68881.h (HUGE_VAL): Alternate definition for Suns.
+
+	* config.gcc (sun3, etc.): Assume os4 as default for Sun 3 and Sun 4.
+
+	* tm-i386v.h (STARTFILE_SPEC, LIB_SPEC): Handle -posix.
+	(CPP_SPEC): New macro.
+	(LIB_SPEC): Handle -shlib.
+
+	* c-decl.c (init_decl_processing): Make last arg to memcpy and memcmp
+	an unsigned long, to be like size_t.
+
+	* Makefile.in (hard-params): Depend on gnulib2, not gnulib.
+
+Wed Oct 31 22:12:33 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* config.gcc (ultrix):	New alternative.
+
+	* i386.md (extend*): Change opcode to movsx.  Was movs.
+
+Wed Oct 31 09:41:27 1990  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md: Deleted an old pattern for subtracting 0.
+	* m88k.md: Deleted patterns for aligned bit-field insns.
+	* m88k.md: Changed define_expand to define_insn for mulsi3 and
+	umulsi3.
+	* m88k.md: Converted various constructs to use conventional
+	formatting.
+	* m88k.md (mak patterns):  Fixed transcription errors.
+
+Wed Oct 31 00:05:54 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-decl.c (init_decl_processing): Predefine the ordinary names
+	of alloca, abs, memcpy, etc.
+
+	* c-decl.c (duplicate_decls): Allow redefining built-in as static,
+	but optionally warn.
+
+Tue Oct 30 14:39:17 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-decl.c (finish_function): Use DEFAULT_MAIN_RETURN in `main'.
+	* tm-vms.h (DEFAULT_MAIN_RETURN): Define this.
+
+	* c-parse.y (yylex): Base is not 8 for just `0'.
+
+	* cccp.c (do_define): Invert test of compare_defs.
+
+	* cccp.c (make_definition): Convert newline to newline-newline.
+
+	* Makefile.in (hard-params): Depend on gnulib.
+
+	* m88k.md (divsi3): Delete declarations of gen_... functions.
+
+Tue Oct 30 14:26:20 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c: Rework handling of comparisons to generalize better to
+	machines that use registers to hold condition code information.
+	(prev_insn_cc0*): Just store last rtx assigned to cc0 in prev_insn_cc0.
+	(find_comparison_args): New function.
+	(fold_rtx): Folded value of cc0 is the value previously stored into it.
+	Rework handling of comparisons:	 use find_comparison_args to see what
+	is being compared.  If they are constants, compute the result of the
+	comparison.  If not, see if the two operands are equivalent (only for
+	non FP or non-IEEE FP).	 Then see if we have already seen a comparison
+	involving these operands that lets us give a value to this comparison.
+	True comparisons return STORE_FLAG_VALUE, not 1.
+	(fold_cc0): Deleted.
+	(predecide_loop_entry): Call cse_insn on a copy of each insn at the
+	loop test to propagate the values of items at the start of the loop.
+	Then use fold_rtx to see if we know the result of the jump.
+	(record_jump_equiv): Use new function find_comparison_args.
+	(cse_insn): Just record value of CC0 if set; don't call fold_cc0.
+	Don't modify PREV_INSN (insn) if INSN is a copy.
+	(cse_main): Initialize const_true_rtx to rtx for STORE_FLAG_VALUE.
+
+	* jump.c (comparison_code_p, comparison_dominates_p): New functions.
+	(thread_jumps): Use comparison_dominates_p.
+	Remove debugging code.
+	* reorg.c (condition_dominates_p): Use new function
+	comparison_dominates_p.
+
+	* emit-rtl.c (next_cc0_user): Don't get confused by being call with a
+	copy of an insn; use INSN_UID to check for an insn in a delay slot.
+
+	* rtl.c (reg_note_name): Add name for new REG_LABEL note.
+
+	* emit-rtl.c (make_insn_raw): No longer have JUMP_LABEL for INSN.
+
+Tue Oct 30 09:26:15 1990  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* Update what strings in files edited so far.
+	* tm-m88k.h, tm-m88kdgux.h, tm-m88ksv4r.h: Introduce VERSION_STRING
+	and VERSION_INFO to more appropriately identify the compiler.
+
+	* tm-m88k.h (ASM_OUTPUT_OPCODE): Stop processing the opcode if `%'
+	is encountered.
+	* out-m88k.c (print_operand): Add a tab to %L output.  Delete
+	unused cases.
+
+	* m88k.md:  Rework the movstrsi pattern and provide call_block_move
+	and call_block_move_loop to support expand_block_move.
+	* out-m88k.c:  Rework the block move functions.
+	* make-m88k, make-m88kdgux:  Eliminate movstr.h.
+
+	* m88k.md, out-m88k.c: Eliminate assembler comments.
+
+	* m88k.md (ashlsi3 ashrsi3 lshlsi3 lshrsi3): Eliminate warnings
+	about out of range shifts.
+
+	* tm-m88k.h, out-m88k.c: Rename CONDITION_CODE_REGNUM CC0_REGNUM.
+
+Mon Oct 29 18:06:54 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* final.c (final_end_function): Handle dwarf output.
+	(final_scan_insn): Likewise.
+	(output_source_line): Likewise, using ASM_OUTPUT_DWARF_LINE.
+	* toplev.c (rest_of_decl_compilation): Likewise.
+	(rest_of_compilation, main): Likewise.
+	* varasm.c (assemble_variable): Likewise.
+	* flags.h (enum debugger): Define DWARF_DEBUG.
+
+	* cccp.c (do_define): Rewrite criterion for warning.
+	Don't warn if -D redefining symbol with constant numeric value.
+
+	* toplev.c (output_file_directive): New function.
+	* sdbout.c (sdbout_filename): Deleted.
+	* tm-3b1.h, tm-att386.h, tm-encore.h, tm-m88k.h,
+	tm-mot3300.h, tm-tahoe.h, tm-vaxv.h (ASM_FILE_START): Use that.
+
+	* c-decl.c (named_labels): No longer static.
+	(pushlevel): Clear named_labels.
+	(poplevel): Don't clear it here.
+
+Mon Oct 29 13:32:57 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* Makefile.in: Update dependencies for various files, mostly cplus-*
+	files.
+
+	* rtl.def: Remove Sep 26 that added JUMP_LABELs to INSN and
+	CALL_INSN.
+	* rtl.h: Add REG_LABEL register note.  For INSN and CALL_INSN, the
+	presence of this register note has the same meaning that a non-NULL
+	JUMP_LABEL would have with the Sep 26 change.
+	* jump.c (jump_optimize): Revert to clearing JUMP_LABEL field of
+	JUMP_INSNs only.
+	(mark_jump_label): If INSN is an INSN or a CALL_INSN, add a
+	REG_LABEL note if a LABEL appears (and no such note already exists).
+	??? Once recorded, this information appears never to be used.
+
+	* jump.c (delete_jump): The deletion of INSN must take place when
+	INSN is a simple jump.	Also, don't try to optimize if we come
+	across an insn with the reorg-generated pattern (USE (INSN ...)).
+
+	* cplus-lex.c, cplus-dbxout.c: Remove vestigial support for dumping
+	and undumping the compiler.
+
+	* Merge cplus diffs from Kenner.
+	* cplus-cvt.c (convert_to_integer): Fold the COND_EXPR we construct.
+	* cplus-typeck.c (build_conditional_expr): Ditto in three places.
+	* cplus-lex.c (yylex,do_pending_inlines): Add conditionals for
+	_IBMR2.	 This hair will disappear when pcccp support is merged, but
+	needed for now.
+	* cplus-tree.h: Conditionalize use of non-int bitfield types on
+	ONLY_INT_FIELDS.  Also, remove duplication declarations of
+	get_temp_name, get_temp_aggr, and get_temp_regvar; add declaration
+	of build_decl_list.
+
+Mon Oct 29 11:45:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* fixincludes: Fix missing semi in rusers.h.
+
+Mon Oct 29 07:07:47 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* flow.c (mark_used_regs): When converting "...*p...; q = p + size"
+	to "q = p, ...*q..., q = q + size", show that Q is needed after INSN.
+
+	* romp.md (negdi): Directly generate assembly code rather than
+	converting this into a MINUS.
+
+	* fold-const.c (fold, case COND_EXPR): Add missing condition in test
+	for (A ? 0 : A).
+
+Sun Oct 28 15:01:19 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* flow.c (find_basic_blocks): An indirect jump can go
+	to any label whose address is used as data.
+
+	* m68k.md (zero-extend QI): Use gen_rtx, not change_address.
+
+	* Makefile.in (USER_H): List va-*.h explicitly.
+	(toplev.o): Depend on RTL_H.
+	(stamp-*): Depend on move-if-change.
+	(install-headers): Depend on various header files.
+	(install-man): Depend on gcc.1.
+	(gcc.o): Depend on gvarargs.h and obstack.h.
+
+	* Makefile.in: Make sure every `if' has an `else'.
+
+	* c-typeck.c (build_binary_op_nodefault): Prevent warning for
+	variable shift count.
+
+	* i860.md (movsf): Handle moving from CONST_DOUBLE to reg or mem.
+
+Sun Oct 28 09:39:14 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* jump.c (delete_jump): The deletion of INSN must take place when
+	INSN is a simple jump.	Also, don't try to optimize if we come
+	across an insn with the reorg-generated pattern (USE (INSN ...)).
+
+	* sparc.md, tm-sparc.h, out-sparc.c: Significantly rewritten to take
+	advantage of new 2.0 optimization capabilities.
+	* old-sparc.md, tm-old-sparc.h, out-old-sparc.c: These are copies of
+	the above files before the rewrite.  They may be interesting for
+	measuring performance of old vs. new machine description idioms.
+
+Sun Oct 28 00:22:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (scan_loop): Don't think that a branch to an end-test of
+	a containing look is actually the branch to the end-test of the
+	outer loop.
+
+	* reload.c (indirect_ok): Deleted.
+	(find_reloads): Accept new arg IND_LEVELS instead of old IND_OK;
+	pass this to find_reloads_address and find_reloads_toplev.
+	(find_reloads_toplev): Accept IND_LEVELS and pass to
+	find_reloads_address.
+	(find_reloads_address): Accept IND_LEVELS and pass it on to 
+	find_reloads_address_1.
+	When calling ourself recursively for a MEM as an address, show
+	one indirect level has been used.
+	(find_reloads_address_1): Accept IND_LEVELS and pass it to ourselves
+	in recursive calls and to find_reloads_address.
+	* reload1.c (spill_indirect_levels): New var; used to be
+	spill_indirect_ok.
+	(reload): Compute number of levels of indirection and set it into
+	spill_indirect_levels.
+	(reload, reload_as_needed): Pass spill_indirect_levels not
+	spill_indirect_ok.
+
+	* reload.c (find_reloads): Make similar change to "V" as "O".
+
+	* reload1.c (eliminate_regs): For binary operations, don't call
+	recursively on second arg if null (for EXPR_LIST).
+	(eliminate_regs_in_insn): Perform register elmination in the
+	REG_NOTES of an insn when we are doing it for the last time.
+
+	* vax.md (call_value_pop): Use correct operand number for number
+	of bytes popped.
+
+	* tm-romp.h (EXTRA_CONSTRAINT): Ensure we ignore reg_renumber if
+	register allocation hasn't been done yet.
+
+	* function.c (init_function_start): Initialize reg_renumber to zero;
+	it is checked in rtx_renumbered_equal_p.
+
+	* loop.c (loop_optimize): Ensure we assign a new LUID to all
+	special notes, including NOTE_INSN_FUNCTION_BEG (0).
+
+Sat Oct 27 12:22:46 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* out-a29k.c (print_operand, output_prolog): Don't try to fill delay
+	slots with parts of epilogue or prologue unless -O -fdelayed-branch.
+
+	* tm-rs6000.h (STRUCTURE_SIZE_BOUNDARY): Should be 8.
+
+	* reorg.c (mark_target_live_regs): Ignore REG_DEAD notes for pseudos;
+	they must not have gotten hard registers.
+
+Fri Oct 26 11:30:28 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* gcc.c (main): Set machine_suffix before reading specs file.
+
+	* c-typeck.c (build_binary_op_nodefault): Warn for bad shift counts.
+
+	* stor-layout.c (layout_record):
+	BITFIELD_NBYTES_LIMITED affects bitfields only.
+
+	* loop.c (note_addr_stored): Don't assume PLUS in address is aggregate.
+
+Fri Oct 26 00:46:09 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-tree.h: Declare `build_type_conversion' once instead of
+	three times.
+
+	* loop.c (loop_skip_over): Handle machines without cc0.
+	(labels_in_range_p): Fixed typo where this function returned 0 when
+	it meant to return 1.
+	(check_for_endtest): New function.  Returns non-zero when
+	argument is a simple conditional test insn (suitable for being the
+	endtest of a loop).
+	(strength_reduce): Use `check_for_endtest' to identify the endtest.
+	Also fixed some typos in comments.
+	(can_eliminate_biv): Use `check_for_endtest' here, too.
+	(get_condition): Generalized to handle machines without cc0.  Now
+	THIS_CC_RTX is the value of the cc rtx.
+
+	* integrate.c (expand_inline_function): Conditionalize away
+	cc0-specific code with HAVE_cc0.
+	(try_constants): Add appropriate declaration for ORIG.
+	(try_fold_condition): Generalized to work for non-cc0 condition
+	values.
+
+	* cplus-type2.c (digest_init): Add missing declaration of FIELD.
+	* rtl.h: Add missing declaration of plus_constant_for_output.
+	* jump.c (can_reverse_comparison): Fixed typo.
+	(delete_jump): Made to work without cc0_rtx.
+
+Fri Oct 26 00:01:27 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c: Conditionalize references to CC0_RTX on HAVE_cc0.
+
+	* reload.c (find_reloads): For the `o' constraint, if IND_OK is
+	true, use offsettable_memref_p instead of the nonstrict version.
+
+	* jump.c (delete_jump): If HAVE_cc0 is not defined, it is not safe to
+	delete previous insn that sets a condition code register, because it
+	might not be dead.  Rework to look at all registers dying in this insn
+	and delete the first previous insn that sets any such register if that
+	is all it does.
+
+	* jump.c (jump_optimize): Remove extraneous call to next_active_insn
+	in optimization of "if (...) x = 1; else ...; if (x) ...".
+
+	* cse.c (predecide_loop_entry): Don't set cc_value to null and then
+	stick it in the rtl.
+
+	* rtlanal.c (find_next_ref): Deleted from here.
+	* explow.c: Include hard-reg-set.h for find_next_ref.
+	(find_next_ref): Moved to here.
+	* Makefile.in (explow.o): Includes hard-reg-set.h.
+
+Thu Oct 25 21:37:15 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* va-mips.h (va_list): Put __ in member names.
+	(va_dcl): Rename _va_alist to __va1_alist.
+	* va-i860.h (__va_struct): Put __ in member names.
+	* gvarargs.h, va-*.h: (__va_ellipsis): New macro.
+	(va_dcl): Use that.
+
+	* c-typeck.c (convert_for_assignment): For functions, reverse the
+	usual criterion for warning about const vs non-const.  Volatile also.
+
+	* m88k.md, tm-m88k.h, out-m88k.c: Rewrites by wood@dg-rtp.dg.com.
+	* tm-m88kdgux.h, tm-v88r32.h, tm-m88ksvr4.h: New files.
+	* xm-m88kdgux.h, xm-v88r32.h, xm-m88ksvr4.h: New files.
+	* make-m88k, make-m88kdgux: New files.
+	* config.gcc (m88k-dgux, m88k-v88r32, m88k-svr4): New alternatives.
+
+	* gvarargs.h, gstdarg.h: Include alternate file for m88k.
+
+	* expr.c (expand_expr): For ARRAY_REF, preserve const and volatile.
+
+	* expr.c (expand_builtin): Handle strcmp and memcmp with function calls
+	if can't be open coded.
+
+	* function.c (expand_function_end): Round trampoline addr to init.
+	(round_trampoline_addr): Fix braino in alignment.
+
+Thu Oct 25 14:54:18 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c: Now includes insn-config.h.
+	(jump_optimize): inequality_comparisons_p takes only one operand again.
+	(can_reverse_comparison_p): Handle case where a register is used
+	for the condition code; if we can't easily find the COMPARE that
+	was used to set the register, say we can't reverse the comparison.
+	* Makefile.in (jump.o): Now includes insn-config.h.
+
+	* jump.c (jump_optimize): Put back change removed on Oct 21st;
+	emit_store_flag has now been updated.
+
+	* rtlanal.c (inequality_comparisons_p): Reject any ordered
+	comparison; we need not just reject when comparing against
+	cc0_rtx.
+	* recog.c (next_insn{,s}_test_no_inequality): inequality_comparisons_p
+	again has only one operand.
+	* genattrtab.c (cc0_rtx): No longer needed; remove change of Oct 21.
+
+	* genconfig.c (have_cc0_flag): New variable.
+	(walk_insn_part): Set it when we see CC0.
+	(main): Write #define HAVE_cc0 when it is set.
+	* flow.c: Now includes insn-config.h.
+	* Makefile.in (flow.o): Likewise.
+
+	* combine.c (subst): If X and FROM are the same register number,
+	but in different modes, force the combine not to be done.
+	Add missing initialization of undobuf.storage.
+
+Thu Oct 25 11:34:35 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* sched.c (new_sometimes_live): Protect this function in case it is
+	called with (OFFSET,BIT) that evaluates to >= MAX_REGNO.
+
+	* jump.c (sets_cc0_p): Conditionalized to abort if called when
+	machine does not support cc0.
+
+	* rtlanal.c (reg_set_p): Now non-static.
+	* rtlanal.c (rtx_varies_p): Handle LO_SUM more accurately.
+	* rtlanal.c (find_next_ref): New function.  Returns the insn that
+	next references REG after INSN, or 0 if REG is clobbered before next
+	referenced or it cannot easily find a reference to REG.
+
+	* recog.c (next_insn_tests_no_inequality): Conditionalized on
+	HAVE_cc0.
+
+	* rtlanal.c (inequality_comparisons_p): Takes new argument
+	THIS_CC0_RTX which is the rtl for the condition code value we are
+	concerned about testing.  All callers changed.
+
+	* flow.c (propagate_block,mark_used_regs): Conditionalize
+	specialized cc0 handling only if HAVE_cc0 is defined.
+
+	* genemit.c (gen_exp): In REG case, If CC0_REGNUM is defined,
+	save space by using REG_CC0_RTX instead of allocating a new
+	(REG, mode, CC0_REGNUM) rtx if the mode is SImode.
+
+	* final.c (output_addr_const): Handle PC for P.I.C. code generation.
+	Also, put parens around CONST expressions so that precedence can be
+	maintained.
+	* final.c (final_scan_insn): Don't look for redunant compares
+	except when HAVE_cc0 is defined.
+	Also, use `find_cc' to locate the rtx functioning as the
+	condition code register in order to perform appropriate calls
+	to `alter_cond'.
+
+	* expr.c (expand_expr): Supply missing arg in calls to `store_expr'.
+
+	* expmed.c (emit_store_flag): New argument COMPARISON is the
+	comparison operation whose result we store.
+
+	* recog.c (offsettable_address_p,adj_offsettable_operand): Use
+	`plus_constant_for_output' instead of `plus_constant' since we
+	are testing conditions which rely on being able to add small
+	offsets to e.g. LO_SUM operands.
+	* explow.c (plus_constant): No special handling for LO_SUM.  It is
+	not valid to add a constant to a term with LO_SUM, since the
+	constant may need to be added to the high bits that form the sum,
+	and those high bits are not readily available.
+	* explow.c (plus_constant_for_output): Same as `plus_constant'
+	except that we do allow adding constants to LO_SUM terms.  This
+	function works only in special cases such as for
+	`adj_offsettable_operand' and `offsettable_address_p'.
+
+	* emit-rtl.c: Declare reg_cc0_rtx which is like cc0_rtx, but
+	is a register instead of a special form.  reg_cc0_rtx should
+	be used when representing the condition code register on a
+	machine where condition codes are only set if explicitly set.
+	For machines which allow arbitrary registers to be used as
+	condition code registers (such as the MIPS and 88k), normal
+	pseudo registers should be used instead.
+	* emit-rtl.c (next_cc0_user,prev_cc0_setter): Conditionalized
+	on HAVE_cc0.
+	* emit-rtl.c (find_cc): New function.  Given INSN, returns
+	the rtx of what functions as the condition code register for
+	INSN.  On machines which use cc0_rtx, this is always cc0_rtx.
+	On machines which have a dedicated register for cc0, this is
+	that register.	On machines which allocate pseudos for holding
+	condition codes, this is the pseudo found in a REG_CC0 note.
+	Otherwise, this function returns 0.
+	* emit-rtl.c (init_emit_once): Allocate `reg_cc0_rtx' if
+	CC0_REGNUM is defined.
+
+	* cse.c (make_regs_equiv): Don't consider making a reg
+	equivalent to another reg whose class is NO_REGS.
+	* cse.c (canon_reg): Don't canonicalize a register to
+	one whose class is NO_REGS.
+	* cse.c (fold_rtx): Conditionalize code for handling cc0_rtx
+	with HAVE_cc0.
+	* cse.c (predecide_loop_entry): Generalize code to use either
+	a register or cc0_rtx.
+	* cse.c (cse_insn): Conditionalize code for handling cc0_rtx
+	with HAVE_cc0.
+
+	* combine.c (combine_instructions,try_combine,subst):
+	Conditionalize code handling cc0_rtx with HAVE_cc0.
+	* combine.c (simplify_set_cc0_and): Abort if HAVE_cc0 is not
+	defined.
+	* combine.c (try_distrib): Add break at end of switch cases.  It is
+	dangerous to leave the last cases of a switch statement to fall
+	through since new cases added after will get fallen into.
+
+	* recog.c (validate_change): Always succeed for an asm insn,
+	since recog always fails to recognize asm insns.  This is
+	needed for virtual register instantiation in asm insns.
+
+	* cse.c (cse_main): When following jumps, notice whether a
+	particular basic block causes CSE_JUMPS_ALTERED to become set.	When
+	this happens, repeat the scan.
+	* cse.c (refers_to_mem_p): Changed parameter name REG to BASE,
+	which is more accurate.	 Also, taught it how to cope with
+	LO_SUM rtl constructs.
+
+Wed Oct 24 15:36:12 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* calls.c (store_one_arg): Accept additional arg, FNDECL.
+	Don't save argument area if it is within the REG_PARM_STACK_SPACE
+	area, but mark the area in use.
+	(expand_call): If ACCUMULATE_OUTGOING_ARGS and REG_PARM_STACK_SPACE,
+	treat the stack area for the registers as be clobbered by the called
+	routine (e.g., if it was compiled without -O) and save and restore
+	it if it was previously used for arguments in a similar manner to
+	the remainder of the argument area (done by store_one_arg).
+
+	* calls.c (expand_call): Support new description macro,
+	STACK_PARMS_IN_REG_PARM_AREA.
+	* function.c (assign_parms): Likewise.
+
+Wed Oct 24 12:47:21 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-typeck.c (build_array_ref): Use main variant for value type.
+
+	* genoutput.c (output_prologue): Let SEPARATE_AUX_OUTPUT
+	cause aux-output.c not to be included.
+	Makefile.in (aux-output2.c): Copy aux-output.c and then compile it.
+
+	* reload.c (subst_reg_equivs): Treat HIGH like other constants.
+
+	* reload.c (push_reload): When testing hard reg for validity,
+	test subsequent regs only against class, not for HARD_REGNO_MODE_OK.
+
+Tue Oct 23 22:49:33 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cccp.c (collect_expansion): Skip ## at start after the error.
+
+	* gcc.c (default_compilers): Handle - as suffix.
+	(main): Make that a special case; it matches only exactly `-'.
+
+Tue Oct 23 22:40:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* romp.md (store{s,h,q}i pattern): Allow "b" for clobbered pseudo
+	in addition to "d" in first alternative.
+
+	* reload1.c (eliminate_regs): IF_THEN_ELSE isn't a unary operation.
+
+Tue Oct 23 20:35:13 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m68k.md (zero-extend QI): When pushing, store value at 1(sp).
+
+Mon Oct 22 12:27:08 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cccp.c (rescan): In the loop that handles numbers, discard \newline.
+	Also make `..' terminate a preprocessing number.
+
+	* Makefile.in (tmpgnulib, stamp-gnulib2): Do `set -e'.
+
+	* gcc.c (default_compilers): Give __GNUC__ value 2.
+	Don't define it for .S files.
+
+Mon Oct 22 07:33:42 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* optabs.c (emit_indirect_jump): New function; now checks predicate
+	of indirect_jump.
+	* stmt.c (expand_computed_goto, expand_goto): Use new function instead
+	of directly emitting indirect jump.
+
+	* flow.c (mark_set_1): Make LOG_LINKS for hard registers.
+	* combine.c (subst): Make new macro COMBINE_RTX_EQUAL_P which
+	considers things equal if they are the identical RTX or the same
+	register with the same mode; use to see if something changed and
+	if we have a match.
+
+	* cccp.c (S_ISREG): Use argument instead of global.
+	(main): Correct sense of S_ISREG usage.
+	(check_precompiled): Use S_ISREG.
+
+	* flow.c (mark_used_regs): Don't allow reg_next_use to point to
+	a NOTE; either point it to replacement insn or invalidate it.
+
+Mon Oct 22 00:13:12 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-parse.y (xdecls): No warning unless -pedantic.
+
+Sun Oct 21 17:49:24 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genattrtab.c (cc0_rtx): Define, referenced in rtlanal.c.
+
+	* jump.c (jump_optimize): Remove code that depends on changes to
+	emit_store_flag that haven't been made yet.
+
+	* expmed.c (extract_bit_field): Correctly check for bitfield
+	completely filling a mode.
+
+	* out-romp.c (output_epilogue): Correctly write number of words of
+	arguments into trace table.
+
+	* calls.c (store_one_arg): Fix error in change of Oct 19th.
+
+	* reorg.c (mark_target_live_regs): Revert back to old behavior
+	of scanning all insns, even those in delay slots.
+	(fill_simple_delay_slots): Need only call update_block if we move
+	an insn across a label.
+
+	* Makefile.in (LIBFUNCS): Use consistent naming convention for
+	comparison routines; gnulib.c was always correct.
+
+	* function.c (assign_parms): Don't overwrite DECL_INCOMING_RTL when
+	we are called for the second time.
+
+	* integrate.c (initialize_for_inline): Don't make a new return label
+	here; the maximum label number has already been computed.
+	(save_for_inline_copying, save_for_inline_no_copy): Do it here instead.
+
+	* reload.c (find_reloads_address): For indirect address where the
+	underlying address is also invalid, ensure that we substitute into
+	the MEM that we will use.
+
+Sun Oct 21 14:12:47 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* reload.c (find_equiv_regs): Reject reg that overlaps goal.
+
+	* expmed.c (extract_bit_field): For big fields, make sure
+	value really goes in the target.
+
+	* expr.c (expand_builtin): Delete __builtin_varargs.
+	(EXPAND_BUILTIN_SAVEREGS): New macro says how to do __builtin_saveregs.
+
+	* calls.c (expand_call): No "can't inline" warning if -fno-inline.
+
+	* stddef.h: Add missing #endif.
+
+Sat Oct 20 14:33:14 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* function.c (round_trampoline_addr): New function.
+	(trampoline_address): Use that.
+
+Fri Oct 19 15:13:31 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* calls.c (store_one_arg): Don't mark stack area used until after
+	we have written into it; if we do it before, the restore might
+	clobber a function result being put into that stack area.
+
+	* objc-actions.c (print_lang_statistics): Add empty function.
+
+	* recog.c (inequality_comparisons_p): Deleted from here.
+	* rtlanal.c (inequality_comparisons_p): Moved to here; not static.
+
+	* a29k.md (extendhisi2): Fix typo in define_split.
+
+	* Makefile.in (integrate.o): Includes integrate.h.
+	(reorg.o): Includes insn-flags.h.
+
+Fri Oct 19 14:49:26 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* sdbout.c (sdbout_symbol): If a variable belongs to an inline
+	function, the decl's rtl may not be rewritten by alter_reg.  So if
+	we have a variable allocated to a pseudo, just get the hard register
+	number from `reg_renumber'.  ?? But I thought that COFF was so
+	losing that it was decided one could not represent debug info for
+	inline functions in COFF.
+
+Fri Oct 19 13:21:25 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* fold-const.c (split_tree): Use NEGATE_EXPR to negate *conp.
+
+Fri Oct 19 00:15:21 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* version.c: Bumped to 1.90.03.
+
+	* tree.c: Added facility for gathering statistics on the number of
+	tree nodes allocated and the size in bytes they occupy.	 The
+	statistics are by tree_node_kind, which is almost like using the
+	tree code letter, but has more resolution for dealing with different
+	kinds of `x' nodes.  The facility is enabled by compiling the
+	compiler with -DGATHER_STATISTICS and using the -fstats flag.
+
+	* expr.c (do_tablejump): Emit a BARRIER after the jump that performs
+	the tablejump.
+
+	* cplus-typeck.c (c_expand_return): Rewritten so that the function
+	value return register is not used except as a target of the function
+	return value.
+
+	* cplus-tree.c (build_cplus_new): New argument WITH_CLEANUP_P
+	controls whether this functino should build its result with a
+	cleanup or not.	 All callers changed.
+
+	* cplus-lex.c: File updated to latest changes to c-parse.y's lexical
+	analyzer.
+
+	* cplus-except.c (cplus_expand_raise): New parameter FOR_RERAISE
+	is used to control whether to output extra gotos or not.  When
+	nonzero, the compiler can avoid writing out the extra gotos that are
+	otherwise needed to avoid warning messages.
+
+	* cplus-decl2.c (flag_short_double): Add support for this option.
+
+	* cplus-decl.c (finish_function): Always cause returns to jump to
+	the return label.  This allows -Wreturn to give meaningful error
+	messages.
+
+	* jump.c (invert_exp): Make this non-static.
+	(jump_optimize): Reorganization and simplification of main inner
+	loop.  Comments added explaining what the optimizers are looking
+	for.  New optimization added that optimizes for consecutive testing
+	of an inequality test followed by an equality test (or vice-versa).
+	Changes made to accommodate reorg.c on Sparc.  Code for
+	cross-jumping return statements was previously dead in this
+	function; as a result of the reorganization, it is now live.
+	(find_cross_jump): Added temporary variable PREV1 to hold return
+	value of `prev_nonnote_insn' instead of calling the function 3 times
+	in a row.  Also changed so that USE or CLOBBERS are not cross-jumped
+	unless some real insns are also cross-jumped.  This helps reorg.
+	(redirect_jump): Fixed a return that returned no value so that it
+	returns 1.
+	(rtx_renumbered_equal_p): Test that reg_renumber is nonzero before
+	using it.  We may want to call this function earlier than by the
+	time that array has been initialized.
+
+	* integrate.c (save_for_inline_{copying,nocopy}): New functions to
+	replace `save_for_inline'.  save_for_inline_copying saves the rtl
+	for inline functions by copying the rtl to the
+	maybepermanent_obstack.	 It is called when the rtl of the current
+	function is going to be compiled immediately.
+	save_for_inline_nocopy takes advantage of the fact that inline
+	function rtl is already allocated to the maybepermanent_obstack, and
+	need therefore not be copied if it's not going to be modified by the
+	compiler (such as by `rest_of_compilation').
+	({initialize_for,finish}_inline): New helper routines for
+	save_for_inline_... functions.
+	(note_modified_parmregs): Function called by `mark_stores' to note
+	whether parameters are assigned to in the body of an inline
+	function.
+	New interface, integrate.h, provides declarations for functions used
+	by other routines that might want to copy chunks of rtl.
+	({save,try}_constants): Now global (for integrate.h).
+	(mark_stores): Ditto.
+	(try_fold_condition): Ditto.
+
+	* dbxout.c (dbxout_symbol): If a variable belongs to an inline
+	function, the decl's rtl may not be rewritten by alter_reg.  So if
+	we have a variable allocated to a pseudo, just get the hard register
+	number from `reg_renumber'.
+
+	* varasm.c (output_const_pool): No longer static.
+	(assemble_variable): Do output debugging information for global
+	register variables.  GDB does the right thing for global register
+	variables.
+
+	* toplev.c: New flag `warn_inline' for warning when a function
+	declared inline was not in fact inlined.  Also, new flag
+	`flag_no_inline' which disables function inlining, but retains
+	other properties of inline functions (such as lazy compilation
+	and write-only-if-needed).
+	* toplev.c (compile_file): Changed logic for inline function
+	handling to work with `warn_inline' and `flag_no_inline'.
+	Also modified to call `save_for_inline_nocopy' when insns are to be
+	saved but not immediately compiled.
+
+	* function.c (instantiate_decls): If instantiating a function
+	which was saved for inline expansion, preserve the rtl created
+	by the instantiation as well.
+
+	* flags.h (flag_no_inline): New flag; if nonzero, then no
+	calls are inlined, regardless of their declaration.  We still
+	save the insns for these functions in DECL_SAVED_INSNS so that
+	the functions need not be written if they are never called.
+
+	* calls.c (expand_call): If `flag_no_inline' is set, don't
+	inline the call, regardless of whether it was declared inline
+	or not.
+
+Thu Oct 18 13:10:26 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* rtl.def (CODE_LABEL): Add new string field.
+	* rtl.h (LABEL_NAME): Define macro for access.
+	* emit-rtl.c (gen_label_rtx): Initialize it to 0.
+	* stmt.c (expand_label): Store proper name of label.
+	* final.c (final_scan_insn): Call sdbout_label.
+
+	* tree.h (built_in_function): Add BUILT_IN_VARARGS.
+	* c-decl.c (init_decl_processing): Declare __builtin_varargs.
+	* expr.c (expand_builtin): Generate code for it.
+	Uses new macro EXPAND_BUILTIN_VARARGS.
+
+	* sdbout.c (SDB_IS_FAKE): Macro deleted.
+	(MAKE_LINE_SAFE): New macro.
+	(sdbout_begin_block, sdbout_end_block, sdbout_end_function): Use it.
+	(sdbout_one_type): Delete spurious second arg in all callers.
+	(sdbout_types, sdbout_end_function):
+	Use sdbout_dequeue_anonymous_types.
+	(sdbout_label): New function.
+
+	* expr.h (FUNCTION_ARG_BOUNDARY): Default is now PARM_BOUNDARY.
+
+	* gvarargs.h, va-*.h (va_dcl):
+	Add ellipsis so current_function_varargs is set.
+
+	* jump.c (jump_optimize): Exit push-optimize loop at end of insns.
+
+Thu Oct 18 07:09:06 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c: Major reorganization.  Many special cases have been moved
+	into more general code and an overall restructuring has been done.
+	Numerous bugs have been fixed.	Highlights:
+	(dbr_schedule): First make list of all insns needing filling.  Then
+	iterate for two passes.	 In each pass, try two methods of filling
+	delay slots, then do some canonicalizations, which may create more
+	insns to fill.
+	(fill_simple_delay_slots): Now uses list of insns that need filling,
+	rather than making such a list.
+	Enhance code that finds insns when code paths merge to allow multiple
+	uses of the label as long as all uses are in the skipped code.
+	(struct resource): Notice volatile memrefs.
+	(stop_search_p): Allow option to continue when label is reached.
+	(find_end_label, make_return_insns): New functions; when we have a
+	filled branch that is really a RETURN, first convert it to a jump
+	to a return label and then later see if the insns in the delay slots
+	are also valid for a RETURN.
+	(mostly_true_jump): Test for branch to loop beginning rather than
+	branch at end of loop.	Also, conditional return insns predict false.
+	(own_thread_p): New function to replace fall_through_to_p.
+	(try_merge_delay_insns): Only support merging insns already in an
+	insns delay list.
+	(get_branch_condition, condition_dominates_p): New functions.
+	(steal_delay_list_from_{target,fallthrough}): New functions to
+	replace steal_delay_list.
+	(redundant_insn_p): New function.
+	(update_block, mark_target_live_regs, dbr_schedule): When moving
+	an insn not at the front of the basic block to a delay slot,
+	leave a "ghost" USE so that we can track things livened and killed.
+	(fill_slots_from_thread): Eliminate use of static vars for number
+	of slots to fill and already filled.
+	Try to modify an insn that follows a register-register copy to use
+	the original register; this may create a delay-slot opportunity.
+	(try_hoist_target{,_1}): Deleted.
+	(relax_delay_slots): Rewritten to just perform canonicalizations
+	previously done elsewhere.  No actual delay slot filling is done
+	here.  Any new delay slots created will hopefully be filled in the
+	next pass around the loop in dbr_schedule.
+
+	* expr.c (emit_push_insn): Don't try to compute a SUBREG of a
+	hard register in a non-integer mode when pushing a "partial" arg.
+
+	* recog.c (validate_change, apply_change_group): After reload, ensure
+	that operands meet the constraints by calling constrain_operands.
+	(validate_replace_rtx_1): Consider two rtx equal if they refer to
+	the same register.
+
+	* jump.c (jump_optimize): Extend change of Oct 16th to handle
+	the other usage of find_equiv_reg; remove invalid death notes there.
+
+	* rs6000.md, tm-rs6000.h, out-rs6000.c, xm-rs6000.h, make-rs6000:
+	New files.
+
+	* out-a29k.c (extract_subword): Use gen_{high,low}part from
+	an FP CONST_DOUBLE if host and target float formats are the same
+	or REAL_IS_NOT_DOUBLE.
+
+	* out-romp.c (output_fpop, output_fpops): Provide fr0 as a scratch
+	register unless it is used in the insn.
+
+	* romp.md: In combined set CC0 and move, optimize case where move
+	is nop.
+	(DF moves): Fix typo in generation of `get' insn.
+	Don't split if input is CONST_DOUBLE because we can't easily
+	generate the proper constants.
+	(call patterns): Copy data area address via a pseudo to allow
+	better CSE'ing.
+
+	* tm-romp.h (RTX_COSTS): Memory is expensive, except for a reference
+	to our own data area, which is very cheap.
+	(ADDRESS_COST): References to the constant pool are as cheap as
+	register + offset, since that's what it will be.
+
+	* emit-rtl.c (gen_{low,high}part): Can often extract word from FP
+	CONST_DOUBLE when host and target floating formats agree.
+	(add_insn_after): No longer static.
+
+	* reload1.c (reg_equiv_memory_loc): Renamed from reg_equiv_stack_slot
+	and now static.
+	(reload): If have equivalence with constant that is not a legitimate
+	constant operand, force it into memory and handle this as an
+	equivalence to memory.
+	* reload.h (reg_equiv_stack_loc): Deleted.
+
+Wed Oct 17 20:50:58 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* gcc.c, cccp.c (main): Use TARGET_VERSION if -v.
+
+	* expmed.c (extract_bit_field): Typo in last change.
+
+	* Makefile.in (tmpgnulib): Support assembler files named *.asm.
+
+	* gcc.c (do_spec_1): Null-terminate error message.
+
+	* sdbout.c (sdbout_symbol): Handle subreg as DECL_RTL.
+	This happens for vars from the parms of inline functions.
+	* dbxout.c (dbxout_symbol): Likewise.
+
+	* genattr.c (fancy_abort): New function, as in gen*.c.
+
+Wed Oct 17 14:53:48 1990  Michael I. Bushnell  (mib at geech.ai.mit.edu)
+
+	* pcp.h: New file.
+
+	* cccp.c: Support use of precompiled files
+	Include "pcp.h".
+	(no_precomp, stringlist, stringlist_tailp): New variables. 
+	(union hashval): New field `keydef'.
+	(enum nodetype): New alternative `T_PCSTRING'.
+	(main): Support -noprecomp.
+	Use write_output to write output.
+	(rescan): Call pcstring_used for T_PCSTRING symbols.
+	(do_include): New local variables pcftry, pcfname, pcf, pcfbuf, 
+	pcfbuflimit, and pcfnum.
+	Check for possible use of precompiled files.
+	(check_precompiled): New function.
+	(check_preconditions): New function.
+	(pcfinclude): New function.
+	(pcstring_used): New function.
+	(write_output): New function.
+	(create_definition): New function.
+	(do_define): Moved most of the work into create_definition.
+	(dump_single_macro): New function.
+	(dump_all_macros): Moved most of the work into dump_single_macro.
+	(dump_defn_1): New argument OF.
+	(dump_arg_n): New argument OF.
+
+	* cccp.c: Support generation of precompiled files
+	(pcp_outfile, pcp_inside_if): New variables.
+	(struct definition): New field `predefined'.
+	(main): Support -pcp.
+	(rescan): Don't expand macros outside #if during -pcp.
+	(special_symbol): Error for most special symbols during #if in -pcp.
+	Output precondition for T_CONST and T_SPEC_DEFINED symbols.
+	(eval_if_expression): Set and clear pcp_inside_if.
+	(do_ifxdef): Output preconditions.
+
+Tue Oct 16 13:22:05 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* stor-layout.c (layout_record): For PCC_BITFIELD_TYPE_MATTERS,
+	make it true that zero-length field affects alignment of next field.
+
+	* rtlanal.c (get_integer_term, get_related_value): Moved from cse.c.
+
+	* jump.c (jump_optimize): When reusing value via find_equiv_reg,
+	delete obsolete death note.
+
+	* expmed.c (extract_bit_field, store_bit_field):
+	Handle fields wider than a word.
+	Restrict special case for word-sized field to aligned words.
+
+	* expmed.c (extract_bit_field, store_bit_field): Don't let
+	BESTMODE be bigger than the insn can handle.
+
+	* Makefile.in (tmpgnulib): Fix typos handling LIBFUNCS_EXTRA.
+
+	* cccp.c (handle_directive): Turn on code to handle # LINENUM,
+	and move initializations past the label `old_linenum'.
+
+	* c-decl.c (grokdeclarator): If traditional, make bitfields unsigned.
+	(finish_struct): Don't do that here.
+
+	* fixincludes (CTRL): Don't put quotes around a quote.
+
+	* stddef.h (size_t): Also inhibit if _SIZE_T_.
+
+Mon Oct 15 13:15:30 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-decl.c (grokdeclarator): Make flag_signed_bitfields work
+	for int and for typedefs.
+
+Sun Oct 14 21:28:32 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* flow.c (life_analysis): No hard regs for any pseudos live at setjmp.
+
+	* c-decl.c (duplicate_decls): Don't suppress warning for fn defn
+	after implicit declaration, if fn has already been defined.
+
+Fri Oct 12 15:54:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-parse.y (xdecls): Allow ellipsis after parm decls.
+	Call c_mark_varargs.
+	* c-decl.c (start_function): Clear c_function_varargs.
+	(c_mark_varargs): New function.	 Set it.
+	(store_parm_decls): Maybe call mark_varargs.
+	* function.c (init_function_start): Clear current_function_varargs.
+	(mark_varargs): New function.  Set it.
+
+Thu Oct 11 13:15:36 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* genattrtab.c (fancy_abort): New function, as in gen*.c.
+
+	* expr.c (saveregs_value): New variable.
+	(init_expr, save_expr_status, restore_expr_status):
+	Init, save, restore the variable.
+	(expand_builtin): Don't call __builtin_saveregs twice in one function.
+
+	* va-*.h: Rename all structure fields to start with __.
+	* va-pyr.h: Rename variables also.
+	(va_start): Delete the unmatched {.
+	(va_end): Now a nop.
+
+Wed Oct 10 22:03:20 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* va-sparc.h (__va_ctl): Rename fields to start with __.
+
+Tue Oct	 9 12:55:48 1990  Michael Meissner  (meissner at osf.org)
+
+	* Allow configuration to specify size of a wide character.
+	(WCHAR_TYPE_SIZE): New parameter.
+	(WCHAR_UNSIGNED): New parameter, says whether type is signed.
+
+	* c-decl.c (WCHAR_TYPE_SIZE): Define if not defined.
+	(WCHAR_UNSIGNED): Likewise.
+	(wchar_type_node, signed_wchar_type_node, unsigned_wchar_type_node):
+	(wchar_array_type_node): New variables.
+	(init_decl_processing): Init them.
+	* c-tree.h: Make them extern.
+
+	* c-common.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Define them.
+	(combine_strings): Handle them.
+	* c-parse.y (init_lex, yylex): Likewise.
+
+	* c-typeck.h (digest_init): Use wchar_type_node and
+	signed_wchar_type_node to get the base type of wide strings, rather
+	than using int and unsigned.
+
+Tue Oct	 9 14:16:37 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* expmed.c (extract_bit_field): Typo; section for extv used extzv.
+
+	* c-typeck.c (digest_init): Error if union has no name field.
+	(process_init_constructor): For union, use first named field.
+
+	* flow.c (propagate_block): Include NOTE at end of block in scan.
+
+	* fixincludes: Fix missing semicolon in rstat.h.
+
+	* cccp.c (main): Record the option names used for assertions.
+	Call make_assertion properly.
+
+Tue Oct	 9 06:18:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (fold_rtx): Call find_best_addr before seeing if we know
+	what is located at that address.
+	Don't try to return the contents of an ADDR_DIFF_VEC table; we have
+	no simple way of representing it.
+	(cse_insn): Detect SRC == DEST even when DEST is not the canonicalized
+	form of the value represented by SRC.
+
+	* loop.c (scan_loop): Don't set THRESHOLD until LOOP_HAS_CALL
+	has been set.
+	(struct induction): Add field MEM_MODE.
+	(find_mem_givs, combine_givs_p): Record mode used to access memory
+	when making DEST_ADDR giv and use it to test validity of
+	derived address.
+
+	* jump.c (delete_jump): No longer static.
+	(invert_jump): Allow changing RETURNs to branches and vice versa.
+	Now returns success/failure indication like redirect_jump.
+	* rtl.h (delete_jump): Define.
+
+	* calls.c (store_one_arg): Don't expand a `partial' arg into
+	arg->stack and don't set arg->value to arg->stack_slot for
+	such args.
+	Clean up by breaking out common code.
+
+Mon Oct	 8 15:09:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* loop.c (can_eliminate_biv_p): Insist that mult_val be positive.
+
+	* Makefile.in (insn-*): Remove semicolon from these rules.
+	(INSTALL_PROGRAM, INSTALL_FILE): New variables.
+	(install-*): Use those variables.
+	(mandir): Default based on manext.
+
+Mon Oct	 8 10:57:14 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* stmt.c (expand_catch_default): Return 1 if EXCEPT_STACK is
+	nonzero.
+
+	* c-decl.c (finish_enum): Argument to floor_log2 in
+	calculation of negprecision was not negated.
+
+Mon Oct	 8 06:50:15 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtl.h (INSN_ANNULLED_BRANCH_P, INSN_FROM_TARGET_P): New fields.
+
+Sun Oct	 7 23:33:24 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* tm-i386v.h (STARTFILE_SPEC): Handle -p here.
+	(LIB_SPEC): Not here.
+
+Thu Oct	 4 05:06:02 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* gcc.c (default_compilers): Define __OPTIMIZE__ for %{O*}, not just
+	%{O}. This permits the use of -O2, -O3, etc., with predictable
+	results.
+
+	* expr.c (expand_expr): Do not build new cleanups for
+	TARGET_EXPRs.  Their cleanups are now handled entirely by the
+	language-specific code that causes them to be generated.
+
+	* function.c ({push,pop}_temp_slots): Do not change
+	temp_slot_level if within a sequence.  GNU C++ must be able to
+	emit a sequence it is building anywhere at the level the sequence
+	was initiated.	If the level is changed when building a sequence,
+	temporaries could be unwittingly shared.
+
+	* cplus-tree.def: change print strings for NEW_EXPR and
+	CPLUS_CATCH_DECL.
+
+	* cplus-dem.c (do_type): Support `long long' types.
+
+	* cplus-decl.c (finish_file): No longer try to emit _init,_fini
+	records for GNU C++.  This was supposed to help the SunOS dynamic
+	linker link C++ code, but it turned out not to work.
+
+	* cplus-decl.c ({start,finish}_function): Don't emit an extra
+	binding contour if not in a constructor or destructor.	It is not
+	needed, and saves writing out unneeded debugging info.
+
+	* cplus-class.c (build_method_call): Conditionalize handling of
+	wrappers and operator->(); these are now only compiled if ESKIT is
+	#defined.
+
+	* cplus-decl.c (define_label): Updated to treat labels in the same
+	new fashion that c-decl.c treats them.
+
+	* cplus-*.c: C++ front-end files now support a generic
+	class-browser interface.  It is up to some adventurous hacker to
+	implement the class browser.
+
+	* cplus-*.c: C++ front-end files no longer #include rtl.h.
+
+Sun Sep 30 15:53:02 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cccp.c (make_assertion): New function.
+	(main): Handle -A by calling make_assertion.
+	-A- gets rid of predefined macros and those specified earlier.
+
+	* print-tree.c (print_node_brief): Declare i for printing REAL_CST.
+
+	* recog.c (immediate_operand, nonmemory_operand): Don't accept
+	integer constants if caller wants a floating mode.
+
+Sat Sep 29 18:40:08 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* reload1.c (emit_reload_insns): Handle preserving death info
+	with find_equiv_reg.
+
+	* reload.c (find_equiv_reg): Handle INSN_CLOBBERS_REGNO_P.
+
+	* fixincludes: For link pointing outside /usr/include,
+	use $x rather than $dest.
+
+	* optabs.c (expand_float, expand_fix): Use dconst1, not 1.0.
+
+Sat Sep 29 06:38:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (try_split): Use emit_insn_after and delete_insn to
+	ensure that the correct insn chain is maintained in the presence of
+	SEQUENCEs; be careful if the insn being split has a following BARRIER.
+	* jump.c (delete_insn): Correctly update insn chain when deleting
+	insn following or preceeding a SEQUENCE.
+
+Fri Sep 28 16:07:42 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-parse.y (yylex): Use REAL_VALUE_TRUNCATE for `f' suffix.
+
+	* fold-const.c (const_binop): Don't initialize REAL_VALUE_TYPE decls.
+
+Thu Sep 27 14:06:37 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* expr.c (expand_expr): Set MEM_VOLATILE_P from TREE_THIS_VOLATILE.
+
+Wed Sep 26 00:21:23 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* tm-mips-news.h: New file.
+
+	* out-i860.c (output_size_for_block_move): Don't decrement.
+	(output_block_move): Decrement initial storing address instead.
+
+	* c-parse.y (yylex): Always try unsigned int if `u' is written.
+
+	* c-typeck.c (build_unary_op): Don't let &* make an lvalue.
+
+	* c-parse.y (initlist): Use [N] rather than case N: for array index.
+
+	* tm-seq386.h (LINK_SPEC): Define it.
+
+	* c-parse.y (yylex): Don't try signed int for nondecimal constant
+	if -traditional.  Improve messages for -Wtraditional.
+
+	* stor-layout.c (layout_record): Avoid using DECL_SIZE_UNIT.
+
+	* jump.c (jump_optimize): Scan all insns for label refs.
+	(mark_jump_label): Quickly ignore uninteresting rtl types.
+	* rtl.def (INSN, CALL_INSN): Add a slot for JUMP_LABEL.
+
+	* jump.c (jump_optimize): Try combining stack adjusts with pushes.
+
+Mon Sep 24 07:31:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* stmt.c (expand_computed_goto): Emit barrier after jump.
+
+	* expr.c (case LABEL_DECL): Return a MEM, so we can take its
+	address; correctly form LABEL_REF.
+
+Sun Sep 23 22:54:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (struct movable): Delete field SET_EQUAL; new field MOVE_INSN.
+	(scan_loop): Only use REG_EQUAL note under very restricted
+	cirsumstances.	Set MOVE_INSN field in movables when appropriate.
+	(combine_movables): Simplify matching test now that we only have one
+	source field.
+	(move_movables): Handle MOVE_INSN movables by emitting a new move
+	insn in front of the loop.
+	Correct typo in checking for CALL_INSN.
+	Don't try to make a REG_EQUAL note.
+	(count_loop_regs_set): Remove extraneous assignment to MAY_NOT_MOVE.
+
+Sun Sep 23 14:59:21 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cccp.c (S_ISREG): Define it unless overridden.
+	(main, finclude): Use that.
+
+	* reload1.c (reload): If insn after a function call uses the
+	function value, and that reg is spilled, and the insn might
+	use it for reloading, add an extra need.
+	(reload_as_need): Detect such insns for new arg to choose_reload_regs.
+	(choose_reload_regs): In that case, don't choose function value reg.
+
+	* tm-convex1.h, tm-convex2.h (CPP_SPEC): Define __NO_INLINE_MATH.
+
+Sun Sep 23 07:52:32 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* version.c (version_string): Bumped to 1.90.02.
+
+	* final.c (leaf_function): Variable now non-static.
+	* final.c (only_leaf_regs_used): Function now non-static.
+	* final.c (leaf_function_p): Move initialization of
+	`leaf_function' from here...
+	* toplev.c (compile_file): ...to here.	We want to know the
+	value of `leaf_function' when we perform code reorginization.
+	* final.c (leaf_function_p): If profiling arcs, we cannot have
+	a leaf function.  Also, we have to look at insns in
+	`epilogue_delay_list' to know that all our constraints are
+	satisfied.
+	* final.c (only_leaf_regs_used): Have to look in
+	`epilogue_delay_list' to know that all our constraints are
+	satisfied.
+
+	* toplev.c (warning_with_file_and_line,warning): Declare third
+	argument V3 for warnings that require 3 `%' expressions in S.
+	* toplev.c (strip_off_ending): New helper function that removes
+	a GCC-recognized filename extension.  Call this function in
+	GCC instead of expanding it inline in C code everywhere.
+
+	* sched.c (schedule_block): The last basic block does not have
+	no live registers.  Also, check that we don't copy from an
+	entry in `basic_block_live_at_start' that does not exist.
+	* sched.c (update_reg_first_use): When splitting insns, the
+	insn that is in REG_FIRST_USE might become a NOTE, and a new
+	insn become the insn that should be considered the first use.
+	`update_first_use' keeps REG_FIRST_USE up to date.
+	* sched.c (update_links): Call note_stores with
+	`update_first_use' when an insn splits.
+
+Sun Sep 23 00:05:49 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-decl.c (grokdeclarator): Put var array bound in save_expr.
+
+Sat Sep 22 14:01:00 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* tree.c (build_index_type): Don't hash variable-bound type.
+
+	* c-decl.c (start_decl): Error here if var-size object initialized.
+	(grokdeclarator, finish_struct): Record types & decls
+	with array sizes not written as constants.
+	* c-tree.h (C_TYPE_VARIABLE_SIZE, C_DECL_VARIABLE_SIZE): New macros.
+
+	* tm-aix386.h (LIB_SPEC): Different library name for -p.  Always -lc.
+	(LINK_SPEC): Don't pass -lg or -g.
+	(CPP_PREDEFINES): Define _I386 and _AIX.  Don't define unix.
+	(SDB_DEBUGGING_INFO): Define it.
+	(DBX_DEBUGGING_INFO): Undefine it.
+	(ASM_FILE_START): Output .noopt if not optimizing.
+	(PCC_BITFIELD_TYPE_MATTERS): Define it.
+	(FUNCTION_PROFILER): Add definition.
+
+Fri Sep 21 16:26:51 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* function.c (current_function_epilogue_list): Define this here.
+	* reorg.c: Not here.
+
+Fri Sep 21 13:11:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* varasm.c (assemble_external_libcall): Frob SYMBOL_REF_USED here.
+
+Thu Sep 20 15:29:44 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* expr.h (struct optab): Field libfunc, an rtx, replaces lib_call.
+	* rtl.h (SYMBOL_REF_USED): New macro.
+	* optabs.c (init_optabs): Initialize that field properly.
+	Also initialize new variables *_libfunc.
+	(various functions): Use those vars; use libfunc field.
+	* expr.c (convert_move, emit_block_move, clear_storage): Use the vars.
+	(emit_push_insn, expand_assignment): Likewise.
+
+Thu Sep 20 13:51:18 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* out-a29k.c (current_function_epilogue_delay_slot): Renamed from
+	epilogue_delay_slot.
+
+	* romp.md (movdi): Fix missing short/long qualifier on memory ref.
+	(SFmode/DFmode move patterns): Add explicit alternatives for
+	storing and loading general registers from memory; also add
+	DEFINE_SPLITs for these cases for DFmode.
+	(negsf2,negdf2): Don't use XOR if an operand is a hard FP register.
+
+	* tm-romp.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Use correct
+	register numbers for FP registers.
+
+	* output.h (current_function_epilogue_delay_list): New var.
+	* function.c: Include output.h and initialize new var above.
+	* Makefile.in (function.o): Now includes output.h.
+	* reorg.c (epilogue_delay_list): Renamed to
+	current_function_epilogue_delay_list.
+
+	* final.c (final_scan_insn): Don't delete no-op insn if in delay slot
+	or if we have already pre-scanned.
+
+	* genconfig.c (max_insns_per_split): Rename from
+	max_insns_per_split_flag and default to 1 instead of 0.
+
+	* genattrtab.c (n_comma_elts): Return zero for null string.
+
+	* sdbout.c (MIN,MAX): Add to here; required by recent changes.
+
+	* expr.c (safe_from_p): A MEM rtx is not safe from an INDIRECT_REF.
+
+	* c-parse.y (ridpointers): Move definition in front of first use.
+
+	* reorg.c (mark_referenced_resources): Allow for CODE_LABELs between a
+	CALL_INSN and USE insns preceeding it.
+	(mark_set_resources): Likewise, for following CLOBBERs.
+
+Wed Sep 19 17:45:49 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* assert.h (printf): Don't define; should be in stdio.h.
+
+	* rtl.h (PUT_REG_NOTE_KIND): New macro.
+	* sched.c (attach_deaths): Use it.
+
+	* reorg.c (mark_referenced_resources): If we put insns to load
+	parameters into the delay slot of a CALL, ignore the USE insns
+	for those parameters.
+
+	* function.c (fixup_var_refs_1): Don't call fixup_memory_subreg unless
+	its would-be operand is a SUBREG.
+
+Wed Sep 19 00:26:59 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* print-tree.c (print_node): Indent before printing RTL.
+
+	* Makefile.in (protoize.o, unprotoize.o): Look for SYSCALLS.c.X
+	in libsubdir.
+
+Tue Sep 18 21:55:01 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (fold_rtx): For MEM with constant address, split the
+	address into possible base and offset; ensure constant pool
+	value is same mode as our reference unless we are getting a
+	word of a DImode CONST_INT.
+	Treat SYMBOL_REF and LABEL_REF as constants.
+	If we are getting a word at a constant offset from a jump table,
+	replace with the contents of that jump table entry.
+	(cse_insn): When folding jump to variable location (e.g., tablejump),
+	LABEL_REF is the cheapest of all, since the branch would be simple.
+	Special-case changing variable branch to normal unconditional
+	because the RTL may be different (e.g., the variable branch may
+	include a USE).
+
+Tue Sep 18 18:33:19 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* toplev.c (count_error): Handle warnings_are_errors.
+	(W_options): Handle -Werror.
+
+Mon Sep 17 00:02:12 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-decl.c (lookup_label): Use void as type of label.
+	* stmt.c (label_rtx): No longer static.
+	* expr.c (expand_expr): Handle LABEL_DECL.
+
+Sun Sep 16 16:27:29 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* expr.c (expand_builtin): Error for __builtin_nextarg
+	if function definition doesn't have `...'.
+
+	* expmed.c (store_bit_field): Adjust BITPOS to UNIT all at once.
+	for insv, use mode of operand 3 instead of SImode.  Define MAXMODE.
+	Adjust XBITPOS along with mode of XOP0.
+	(extract_bit_field): Adjust XBITPOS along with mode of XOP0.
+	for extv and extzv, use mode of operand 3 thoroughly instead of SImode.
+
+	* sdbout.c (CHAR_TYPE_SIZE,...): Default definitions of these macros.
+	(plain_type_1): Use those macros to distinguish int and floating types.
+
+	* toplev.c (rest_of_decl_compilation): Output TYPE_DECL here for sdb
+	only if top_level.
+
+	* c-parse.y (unary): Don't forget to look up the label.
+
+	* c-typeck.c (build_conditional_expr): Don't skip arg promotion.
+
+Sun Sep 16 14:54:03 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): If we don't recognize the combined insn,
+	try it without any CLOBBERs.
+
+	* final.c (final_scan_insn): Prevent CC tracking from thinking
+	that the CC was set by an insn in the delay slot of a CALL_INSN.
+
+	* expmed.c (init_expmed, expand_divmod): Allow machine to have
+	low cost specified for divides by powers of two if it can do it by
+	a method that if cheaper than the normal shift/branch/adjust mechanism.
+
+	* cse.c (fold_rtx): When putting constant last, ensure that the
+	resulting insn is valid.
+
+	* objc-actions (finish_objc): Remove dup defn of gen_declaration_file.
+
+	* objc-parse.y (ridpointers, token_buffer): Define before use.
+
+	* reload1.c (scan_paradoxical_subregs): Declare correctly.
+
+	* tm-romp.h (ENCODE_SEGMENT_INFO): Use INTEGRATED bit to mark
+	SYMBOL_REFs that are addresses of functions (really their data blocks).
+	(LEGITIMATE_CONSTANT_P): Data block addresses of functions are not
+	valid operands.
+	* out-romp.c (symbolic_operand): Likewise.
+	* romp.md (call*): emit_move_insn will now do force_const_mem
+	so it needn't be done explicitly.
+
+	* out-romp.c (output_fpop): Work around yet another RT fp bug;
+	cannot merge output and first operand for SFmode if general reg.
+
+	* romp.md: Add new pattern to match combination of copy and test.
+	Use nilo instruction to set CC.
+
+Fri Sep 14 07:07:01 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* c-tree.h: Define all *_type_node trees defined in c-decl.c, in the
+	same order as defined there.
+
+Fri Sep 14 08:39:17 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-typeck.c (build_c_cast): Convert READONLY_DECLs to make up
+	for the fact that we do not call `default_conversion' anymore.
+
+	* function.c (instantiate_virtual_regs): If the function is inline,
+	we don't need to worry about making valid rtl, but we do need to
+	worry about instantiating all virtual registers.  Otherwise we must
+	make the rtl valid, and we have other opportunities to eliminate the
+	virtual registers during the compilation.
+
+Thu Sep 13 16:00:05 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* reload.c (MATCHES): Check for different rtx's with same reg number.
+
+	* fixincludes: Discard `.' from value of `files'.
+
+	* c-parse.y (unary_expr): Use unary && to get address of label.
+	(stmt): Handle `goto *EXPRESSION;'.
+	* stmt.c (expand_computed_goto): New function.
+
+	* gstdarg.h: New name for stdarg.h.
+	* Makefile (install-headers): Rename gstdarg.h while installing it.
+
+	* sdbout.c (PUT_SDB_LAST_DIM): Get rid of SDB_DELIM.
+	(plain_type): Output accumulated array dims and size.
+	(plain_type_1): Eliminate arg NOSIZE.  Save up dims and size.
+	Call self rather than plain_type for pointers and functions.
+	(sdbout_array_type, sdbout_array_depth): Functions deleted.
+
+Thu Sep 13 16:12:15 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-class.c (build_method_call): Fix typo in deciding whether to
+	do hairy or trivial pointer conversions on `this'.
+
+	* cplus-tree.c (layout_vbasetypes): Don't double-count space taken
+	up by virtual baseclasses.
+
+Wed Sep 12 18:14:19 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* tm-m68k.h: Use asm_fprintf widely.
+	(REG_PREFIX, IMMEDIATE_PREFIX, LOCAL_LABEL_PREFIX, USER_LABEL_PREFIX):
+	New macros.
+
+	* final.c (asm_fprintf): New function.
+
+Wed Sep 12 06:07:50 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-dbxout.c (dbxout_type): Output basetype size and offset info
+	in bits, not bytes.
+
+	* cplus-decl.c (finish_{decl,function}): Set CLASSTYPE_ASM_WRITTEN
+	bit of types used by non-extern VAR_DECLs.  Set it also for types of
+	PARM_DECLs and return types of functions defined in the file being
+	compiled.
+
+Tue Sep 11 13:21:40 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* sdbout.c (plain_type_1): New argument NOSIZE.	 Inhibits size output.
+	(sdbout_array_type): Call plain_type_1 directly; set NOSIZE.
+
+	* sdbout.c (sdbout_array_type): New argument DEPTH.
+	Don't output more than SDB_MAX_DIM dimensions.
+	(sdbout_array_depth): New function.
+	(plain_type_1): Start DEPTH by calling sdbout_array_depth.
+
+	* gnulib2.c (_bb_init_func): Library member now named _bb.
+
+	* tree.h: Add comments.
+
+Mon Sep 10 17:20:06 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* Makefile.in (install): Fix typo.
+
+	* cccp.c (macarg1): With -traditional, backslash quotes chars.
+
+Mon Sep 10 16:37:01 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): Don't swap THEN and ELSE parts during jumps
+	runs after reload.
+
+Mon Sep 10 13:07:39 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cccp.c (collect_expansion): Don't actually substitutee into a
+	string if ANSI; just consider warning.
+
+	* gnulib2.c (div_qrrnd for i386): Fix typo.  Rename some args.
+
+	* sdbout.c (sdbout_array_type): New argument DEPTH.
+	Don't output more than SDB_MAX_DIM dimensions.
+	(plain_type_1): Start DEPTH at 1.
+
+Sun Sep	 9 22:02:24 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* out-a29k.c (gen_reg_operand): Exclude SUBREG of a special
+	register.
+
+	* cse.c: (fold_rtx): Get equivalent for register before seeing if
+	memory reference is to constant pool.
+	(cse_ins): Only call force_const_mem if we actually try to use
+	the constant (i.e., we haven't found anything cheaper).
+
+Sun Sep	 9 21:49:18 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* ..._BIG_ENDIAN: Now expect definition to be 0 or 1.
+	All refs and defs changed.
+
+	* tm-mips.h (CPP_SPEC): Error for -EL (for -EB, if DECSTATION).
+
+	* sdbout.c (sdbout_one_type): Set TREE_ASM_BEING_WRITTEN before
+	recursion, and TREE_ASM_WRITTEN after.
+
+Sat Sep	 8 16:47:27 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* hard-params.c (main): Don't try to malloc all memory.
+
+Sat Sep	 8 16:38:53 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload): Set reg_equiv_constant if the equivalence
+	is any constant, not just a legitimate constant operand.
+
+	* final.c (get_attr_length, shorten_branches, final_scan_insn):
+	If JUMP_TABLES_IN_TEXT_SECTION is defined, don't put jump tables
+	in readonly data section, even if it exists.
+
+Sat Sep	 8 14:07:05 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* Makefile.in (bootstrap*): Pass null ALLOCA definition to recursive
+	makes when compiling with GCC since it never needs alloca.c.
+
+	* c-typeck.c (build_binary_op_nodefault): Warn for signed < unsigned.
+	Controlled by -W.
+
+	* tm-i386v4.h: New file.
+
+Fri Sep	 7 13:10:24 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cccp.c (STDC_VALUE): New macro, defaulting to 1.
+	(intialize_builtins): Use that.
+
+	* m68k.md (movqi): `st' does not set cc's.
+
+Fri Sep	 7 07:49:23 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genemit.c (gen_expand): Fix test for no C code.
+	If no C code, no MATCH_DUPs, and only one insn to write, handle
+	like DEFINE_INSN and return that insn rather than making a sequence.
+
+	* emit-rtl.c (add_insn_after): If previous or next insn is a
+	SEQUENCE, update the NEXT_INSN in the last insn in the SEQUENCE or
+	PREV_INSN of the first, as appropriate.
+	(emit_insn_before, emit_jump_insn_before, emit_note_before):
+	Call add_insn_after.
+
+	* stmt.c (check_for_full_enumeration_handling): If a switch whose index
+	is an enumerated type contains labels for every enumeration value,
+	make the label for the last value the default label since such a
+	switch can never fall through.
+
+	* genattr.c (fatal): Declare first arg correctly.
+
+	* combine.c (try_combine): No longer check REG_FUNCTION_VALUE_P;
+	its value shouldn't matter once RTL generation is complete.
+	(subst): If NOT is present as an operand in commutative operation,
+	put it last to reduce the number of required patterns.
+
+	* out-romp.c (output_fpops): Align to word boundary before writing
+	any floating-point blocks.
+
+	* function.c (instantiate_virtual_regs_1): Fix typo in previous change.
+	When a MEM must be copied, use copy_rtx; the PLUS may also be shared.
+
+Thu Sep	 6 15:19:42 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* gcc.c (do_spec_1): Don't add __ to -D if __ already present.
+
+	* c-typeck.c (convert_for_assignment):
+	Better warning for FCN * vs. void *
+	Specific warning for char * vs. unsigned char *.
+
+Thu Sep	 6 14:52:08 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (find_basic_block): Return -1, not 0, if we can't find
+	the basic block.
+	(mark_target_live_regs): Clear PENDING_DEAD_REGS unconditionally.
+	(relax_delay_slots): Don't call optimize_skip for unconditional jump.
+	Only try to remove jump if it is a simple conditional or
+	unconditional jump (but not a tablejump or similar such).
+
+	* cse.c (invalidate, refers_to_mem_p, cse_rtx_addr_varies_p):
+	Consider (plus (reg) (const_int)) to be a fixed address if REG
+	is constant; old code just handled REG.
+
+	* genrecog.c (enum routine_type): Use to distinguish two types of
+	routines that we write: recog and split_insns.
+	(make_split_sequence): Write out extern for gen_split_ function.
+	(break_out_subroutines, write_subroutine, write_tree, main):
+	Use new enum routine_type instead of passing "split" or "recog".
+	(write_subroutine): Write correct type for splitting functions and
+	return 0, not -1.
+	(main): Write includes before declarations of gen_split_ functions
+	since "rtx" is needed for them.
+	* rtl.h (try_split, split_insns): Added definitions.
+
+Wed Sep	 5 16:20:07 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* Makefile.in (includes): Use proper directory.
+
+Tue Sep	 4 13:59:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-decl.c (store_parm_decls): Let extra_warnings control
+	warnings about parms not declared.
+
+	* flow.c (life_analysis): Move code to detect stack-adjust insns.
+	It was unreachable.
+
+	* gnulib.c, gnulib2.c (abort): #undef in case config.h defines it.
+
+Mon Sep	 3 17:50:16 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* calls.c (expand_call): If SETUP_INCOMIMG_VARARGS is defined, pass
+	unnamed args in registers.
+	* function.c (assign_parms): Call SETUP_INCOMING_VARARGS for
+	stdargs as well as varargs; ensure we only call it once.
+
+	* function.c (instantiate_virtual_regs_1): Don't assume all memory
+	addresses are valid for all insns.
+
+Sun Sep	 2 22:17:40 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* expr.c (emit_library_call): Push all stack args, then load regs.
+
+	* c-decl.c (c_build_type_variant): For an ARRAY_TYPE,
+	put the qualifier into the array as well as the element.
+	(grokdeclarator): When a field or variable is supposed to be
+	a const or volatile array, make the array elements const or
+	volatile, but also make the field or variable so.
+
+	* c-decl.c (grokdeclarator): Turn off the warning for const or volatile
+	function type when making an array.  It was useless.
+
+Fri Aug 31 16:26:40 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-common.c (truthvalue_conversion): Let the
+	language-specific code decide how to convert EXPR
+	if it is not one of the special forms we recognize.
+
+Fri Aug 31 15:08:19 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* gcc.c (execute): Use I instead of undefined var J if DEBUG defined.
+
+Fri Aug 31 14:37:36 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* sdbout.c (sdbout_begin_block): Delete excess arg to sdbout_block.
+
+Thu Aug 30 21:31:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expmed.c (extract_bit_field): Fix typos in computations of UNIT.
+
+Wed Aug 29 12:33:33 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* sdbout.c (sdbout_reg_parms): Don't advance parm twice.
+
+Tue Aug 28 22:49:41 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cccp.c (delete_newlines): New function.
+	(macroexpand): Remove newlines from args used more than once.
+
+Tue Aug 28 22:16:50 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (sched.o): Add to list of files to compile.
+
+	* c-parse.y (position_after_white_space): Declare with correct type.
+
+	* fold-const.c (optimize_bit_field_compare): Fix typo.
+
+	* reorg.c (split_insns): No longer need extern for this here.
+
+	* toplev.c (sched_dump_file): Define.
+	(compile_file): Initialize and print sched_time and sched2_time.
+
+	* local-alloc.c (block_alloc): Fix typo in allocation of insn_map.
+
+	* cse.c (cse_insn): Try related value in case where CONST is seen
+	first and SYMBOL_REF later.
+
+Tue Aug 28 16:26:50 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cccp.c (main): Don't modify or validate arg of -D here.
+	(make_definition): Do it all here.
+
+	* function.c (assign_parms): Reenable `register' for parms.
+
+Tue Aug 28 07:12:19 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* tm-a29k.h (CONST_COSTS): All CONST_INTs are cost zero; adjust
+	SYMBOL_REF and CONST_DOUBLE costs to reflect their actual cost.
+
+	* expr.c (expand_expr): Don't suppress EXPAND_SUM here if not Pmode.
+	(expand_expr, case *_DECL): Return constant address if
+	EXPAND_SUM or EXPAND_INTO_STACK in addition to EXPAND_CONST_ADDRESS;
+	all of these cases will later call memory_address.
+	(expand_expr, case COMPONENT_REF): Always make recursive call with
+	EXPAND_SUM.
+	(expand_expr, case PLUS_EXPR): Try to form constant if X + CONST and
+	mode is Pmode without EXPAND_SUM; if not EXPAND_SUM, use force_operand.
+	Check for MODE != Pmode with EXPAND_SUM here.
+	(expand_expr, case MINUS_EXPR): Always process X - CONST_INT as
+	X + (-CONST_INT)).
+
+Sun Aug 26 23:10:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-decl.c (c_decode_option): Handle -funsigned-bitfields. 
+	(grokdeclarator): Do the real work.
+	(grokfield): Pass either FIELD or BITFIELD to grokdeclarator.
+
+	* tm-att386.h (asm_output_common): Use SIZE, not ROUNDED.
+
+Sat Aug 25 17:17:27 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-parse.y (unary_expr): Turn off handling of &...
+	* c-decl.c (store_parm_decls): Turn off extra dummy parameter.
+
+	* tm-att386.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): New macros.
+	(BSS_SECTION_ASM_OP): New macro.
+	(ASM_OUTPUT_LOCAL): Call bss_section, don't just print .bss.
+
+	* combine.c (subst): Handle shift within mem, as multiplication.
+
+Sat Aug 25 11:43:09 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* final.c (alter_cond): Handle CC_INVERTED.
+
+	* conditions.h (CC_INVERTED): New flag indicating that the condition
+	tested leaves the falgs set opposite to the condition tested.  This
+	is unsafe for IEEE floating point operations, but useful for integer
+	operations which can combine with condition-code setting operations.
+
+	* c-parse.y (position_after_white_space): New function.	 Skips
+	all of the whitespace at the current location in the input
+	file, taking NEXTCHAR into account.  Changed all callers of
+	`skip_white_space' in grammar to use this function instead.
+
+	* genrecog.c (main): Generate code which is more easily optimized by
+	GCC's cse.  In particular, start each recognizer with the address of
+	`recog_operands' in a register.
+
+	* reload.c (combine_reloads): Can only combine reloads if the
+	register we find can hold the entire output reload (i.e., SFmode
+	register may not be suitable for combining with DFmode register).
+
+	* optabs.c (have_sub2_insn): Fixed typo.
+	* combine.c (combine_instructions): Fixed typo in comment.
+
+	* function.c (expand_function_end): Emit a barrier after a RETURN
+	jump.
+
+	* Added diffs for new instruction scheduling code.
+	* emit-rtl.c (try_split): Moved here from reorg.c and made
+	public.	 Both instruction scheduling and delayed branch
+	filling now use the same code to split insns.
+	* flags.h: Add new flags FLAG_SCHEDULE_INSNS for instruction
+	scheduling before register allocation and
+	FLAG_SCHEDULE_INSNS_AFTER_RELOAD for insn scheduling after
+	register allocation.
+	* recog.c (constrain_operands): Recognize pseudo registers as
+	registers for the purpose of insn constraint matching before
+	register allocation.  Otherwise, the insn scheduler assumes
+	the operands will be memory, which is usually wrong (and
+	causes it to build bad schedules).
+	* sched.c (order_calls): New function.	For two CALL_INSNS in
+	the rtl chain, we set up a constraint that the second
+	CALL_INSN may not be scheduled to run before the first.
+	(sched_analyze_*): Three kinds of dependencies (true, anti,
+	and output) constrain the order in which insns can be
+	rearranged and still preserve their execution semantics.
+	We now handle dependencies for pseudo and hard register usage
+	and for memory usage in these functions.
+	(launch_links): The ordering of which newly ready insns to
+	execute is now preserved according to their `priority' in the
+	insn chain, and no longer on their order in the dependency
+	list from which they were launched.
+	(schedule_block): Removed support for trying to schedule insns
+	taking branch delays into account.  Reorg.c should be hacked
+	to understand which insns to pull into delay slots and which
+	insns to leave alone.
+	(schedule_block): (Re-)compute all register life information here.
+	No longer dependent on flow to keep `basic_block_live_at_end'
+	allocated.
+	(schedule_insns): Recompute LABEL->BASIC BLOCK mapping, so we
+	can compute register life information.
+	* rtl.c (add_dependence): New function to add and remove insn
+	dependencies.  If an insn (I2) must execute after another
+	(I1), we add an INSN_LIST containing I1 to I2's	LOG_LINKS.
+	If such an INSN_LIST is already in I2's LOG_LINKS, we don't
+	add a second.
+	(remove_dependence): Similar, but removes dependencies.	 May
+	not actually be needed.
+	* toplev.c (compile_file,rest_of_compilation): Added code for
+	dumping info about insn scheduling.
+
+Fri Aug 24 17:24:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* Implement `aligned (INTEGER)' attribute for real.
+	* c-parse.y (attrib): Really record info for `aligned' attribute.
+	Don't warn for any integer alignment.
+	(attribute_list): Make a list.
+	(initdcl, notype_initdcl, component_declarator): Handle that info.
+	* c-common.c (decl_attributes): New function.
+
+Fri Aug 24 07:12:05 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genattrtab.c (insn-config.h): This is really needed after all.
+	* Makefile.in (genattrab.o): Show dependency on insn-config.h.
+
+	* local-alloc.c (block_alloc): Don't update qty_birth for a
+	register whose quantity is <= 0.
+
+	* fold-const.c (decode_field_reference): Actually obtain unsigned
+	type where one is wanted.
+	(merge_component_references): Correctly test for mutually exclusive
+	conditions.
+
+Thu Aug 23 14:56:44 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-typeck.c (digest_initializer): No pedantic warning for string
+	and array of unsigned char.
+
+	* tree.c (get_identifier): Do id_clash_len stuff if length equals that.
+
+Thu Aug 23 10:30:10 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-tree.h (CLASSTYPE_CID): Key off of TYPE_MAIN_VARIANT.
+
+Thu Aug 23 06:44:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* out-romp.c (romp_pushes_stack): Don't count
+	current_function_pretend_args_size in size of stack.
+
+Wed Aug 22 18:00:07 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* tm-a29k.h, tm-a29kunix.h, xm-a29k.h, a29k.md, out-a29k.c: New files.
+
+	* config.gcc (a29k-unix): New target.
+
+	* calls.c (expand_call): Allow FUNCTION_ARG to return an EXPR_LIST
+	specifying multiple registers to load.
+	(store_one_arg): Likewise; also delete handling of fully-in-register
+	case, which hasn't been handled here for a while.
+	* expr.c (emit_library_call): Our subset of calling sequence for
+	library routines does not include multiple registers for an arg.
+
+Tue Aug 21 17:44:49 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* make-cc1.com: Compile and link version.c.
+
+	* Makefile.in (install-gnulib): Create libg.a if none already.
+
+	* expr.c (convert_move): Handle expand_unop retval not same as target.
+
+	* reload.c (find_reloads): For register letters, don't win if BLK.
+
+	* sdbout.c (sdbout_toplevel_data): Fix error message.
+
+	* protoize.c (open): Prototype deleted.
+
+	* flow.c (mark_set_1, mark_used_regs): Update reg_first_use.
+	(allocate_for_life_analysis): Allocate and clear it.
+	* local-alloc.c (block_alloc): Calculate INSN_MAP.
+	Get first use of each reg from reg_first_use.
+
+	* tm-vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Distinguish C from C++.
+	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Add a const data section.
+	(ASM_OUTPUT_EXTERNAL): Use that section.
+	(SELECT_SECTION): Go to that section when appropriate.
+
+Tue Aug 21 18:26:47 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (fill_simple_delay_slots): Mark anything referenced by an
+	insn that will be placed in a delay slot in the epilogue as being
+	needed at the end of the function.
+
+	* cse.c (constant_pool_entries_found): New static var.
+	(cse_main): Initialize it.
+	(use_related_value): Correctly look for registers in hash table.
+	(fold_rtx): Fold constant pool entries to their constants and
+	set constant_pool_entries_found.
+	(cse_insn):  If we weren't able to place a constant in an insn
+	and we have previously seen constant pool entries used, set up
+	to try the constant pool entry also.
+
+Mon Aug 20 12:14:27 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* function.c (assign_parms): Set LAST_NAMED for parm before dummy.
+	See August 9 change in c-parse.y.
+
+	* gcc.c (process_command): Split -oFOO into two arguments.
+
+	* stmt.c (expand_asm_operands): Handle COMPONENT_REF and
+	ARRAY_REF directly as output operands.	Avoids crash if BLKmode.
+
+	* c-parse.y, cplus-parse.y, objc-parse.y: Include stdio before input.h.
+	* input.h: Declare finput.
+
+	* expr.c (emit_push_insn): Don't adjust for EXTRA separately
+	if will have to adjust the stack anyway.
+
+	* m68k.md (*sh*si3): On 68000, optimize case of >= 16 bits.
+
+	* varasm.c (decode_rtx_const): Don't dereference a PLUS
+	subexpression of a CONST twice.
+
+Sun Aug 19 21:51:51 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* toplev.c (finput): Define here.
+	* *-parse.y (lineno, finput): Duplicate definitions deleted.
+
+	* global-alloc.c (find_reg): Test best_reg against 0,
+	not first_pseudo_register.
+
+Sun Aug 19 17:48:22 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* explow.c (plus_constant): If adding to constant pool constant,
+	return a new one.
+
+	* genattrtab.c: Need not include insn-config.h.
+
+Sun Aug 19 17:23:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* tm-hp9k320bsd.h (CPP_SPEC): Def __HAVE_68881__ like __HAVE_FPU__.
+
+	* Makefile.in (USE_ALLOCA): Test was backwards.
+	(USE_HOST_ALLOCA): Likewise.
+
+Sun Aug 19 09:58:16 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* stmt.c: Fixes from 2.0 for fixup_goto incorporated here.
+
+	* cplus-decl2.c (write_vtable_entries): Don't test TREE_EXTERNAL
+	of DECL_CONTEXT (FN).  TREE_EXTERNAL is not meaningful for types.
+
+Fri Aug 17 22:14:09 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* optabs.c (emit_cmp_insn): Don't abort after floating lib cmp.
+
+Thu Aug 16 23:16:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* varasm.c (assemble_variable, assemble_static_space): Don't
+	call data section if -fshared-data.  If this section is needed,
+	it should be entered from elsewhere, and this is believe to be
+	done in all known cases.
+	(output_constant_pool): Add support for ASM_OUTPUT_SPECIAL_POOL_ENTRY
+	which writes certain constant pool entries specially; used for TOC
+	on RS/6000.
+	(assemble_external_libcall): New function.
+	* expr.c (emit_library_call): Call it.
+
+	* reorg.c (mark_target_live_regs): Don't follow around infinite loops.
+
+	* varasm.c (struct rtx_cont): Don't use enums in bit fields if
+	ONLY_INT_FIELDS is defined.
+
+	* cse.c (remove): Rename to remove_from_table to avoid conflict
+	with `remove' defined in stdio.h.
+
+Thu Aug 16 22:44:35 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* stmt.c: fixup_gotos must ignore blocks started after the goto.
+	(block_start_count): New variable, and slot in some structures.
+	(expand_function_start): Initialize it.
+	(expand_start_bindings): Increment it and store in struct nesting.
+	(expand_goto): Store it in struct goto_fixup.
+	(fixup_gotos): Compare fixup's count with block's count.
+	(save_stmt_status, restore_stmt_status): Handle block_start_count.
+	* function.h (struct function): Make slot to save it.
+
+Thu Aug 16 18:02:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* obtabs.c (expand_fix, expand_float): Support direct conversion
+	between SFmode and fixed modes by library call.
+
+Wed Aug 15 18:36:28 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cccp.c (main): Allow -M to work on .s files by checking for .s
+	and .S suffixes when writing dependencies.
+
+	* reorg.c (optimize_skip, fill_eager_delay_slots, try_host_target):
+	Don't need to call can_reverse_comparison_p because invert_jump is
+	safe for floating-point; only reverse_condition isn't.
+
+Wed Aug 15 15:50:36 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* dbxout.c (dbxout_type): Skip past const and volatile qualifiers
+	that might appear in method names.
+
+Wed Aug 15 15:44:17 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-parse.y (hash, is_reserved_word): Use __inline.
+
+	* cccp.c (main): Support -dN and -dD.  Support -lint.
+	(dump_macros): Two new alternatives.
+	(handle_directive): Output macro definitions if -dN or -dD.
+	(rescan): Check comments if -lint.
+	(get_lintcmd): New subroutine.
+
+	* c-decl.c (c_decode_option): Handle -fshort-double.
+	(init_decl_processing): Create double_type_node accordingly.
+
+	* c-decl.c (c_decode_option): Handle -Wno...
+
+Tue Aug 14 23:10:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* explow.c (break_out_memory_refs): Don't break out reference if
+	constant but not legitimate constant for a machine insn.
+	(memory_address): Only put legitimate constants, rather than all
+	constants, into registers if they are used as an address.
+
+Tue Aug 14 14:34:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* reorg.c (steal_delay_list): Can't put something in a
+	non-annulled delay slot that can trap.
+
+	* tm-i860.h (GO_IF_LEGITIMATE_ADDRESS): Typo testing offset alignment.
+
+	* cccp.c (do_assert, do_unassert, check_assertion): New functions.
+	(compare_keyword_lists, read_keyword_list, free_keyword_list):
+	New functions.
+	* cexp.y (yylex): Allow `#' as token.
+	Return name and length of symbol.
+	(keywords): New nonterminal.
+	(expr): Recognize # to test an assertion.
+	(U_CHAR, struct arglist): Data types copied from cccp.c.
+	(%union): New alternatives `keywords' and `name'.
+
+Mon Aug 13 22:26:19 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* tm-romp.h (SLOW_BYTE_ACCESS): Set to 0.
+
+	* expmed.c (store_bit_field, extract_bit_field): Use get_best_mode
+	to select mode to use for accessing memory when bitfield insns don't
+	accept memory.
+
+	* c-common.c (rewrite_for_merged_ref, make_merged_ref): Deleted.
+	(merge_component_comparisons): Delete from here.
+	* c-tree.h (merge_component_comparisons): No longer global.
+	* c-convert.c (build_binary_op_nodefault): Don't try to merge component
+	references here; now done in fold.
+	* cplus-typeck.c (build_binary_op_nodefault): Likewise.
+	* Makefile.in (fold-const.o): Now includes flags.h.
+	* fold-const.c: Likewise.
+	(STRIP_NOPS): New macro.
+	(decode_field_reference, all_ones_mask): New functions.
+	(merge_component_references): Put rewritten version here.
+	This fixes bugs in the way that comparisons with non-equal
+	constants (!p->a && p->b) are handled and in endianness checking.
+	Also accepts more general comparisons, and, in particular, its
+	own output so more than a pair of operations can be merged.
+	(fold): Call it for TRUTH_{AND*,OR*}_EXPR.
+
+	* tree.def (BIT_FIELD_REF): New tree code.
+	* expr.c (get_inner_reference): Support BIT_FIELD_REF.
+	If bitfield is a complete mode-sized unit, return that mode; if it
+	is a subset of bits within a mode-sized unit, return VOIDmode.
+	(expand_assignment): Check for BIT_FIELD_REF.
+	Use mode returned from get_inner_reference to see if bit field.
+	(store_constructor): Likewise.
+	(store_field): Don't pass arg BIT_FIELD; use MODE == VOIDmode
+	instead.  All callers changed.
+	(expand_expr, case BIT_FIELD_REF): New case.  Handled same as
+	COMPONENT_REF.
+	Use mode returned from get_inner_reference rather than DECL_BIT_FIELD.
+	(expand_increment): Must stabilize BIT_FIELD_REF.
+	(do_jump, case NOP_EXPR): Check for inner BIT_FIELD_REF and ARRAY_REF.
+	(do_jump, case COMPONENT_REF): Generalize to handle BIT_FIELD_REF
+	and some ARRAY_REFs also.
+	* fold-const.c (operand_equal_p): Handle BIT_FIELD_REF.
+	* tree.c (staticp): Rework to use switch instead of if-then-else.
+	Add support for BIT_FIELD_REF.
+	(stabilize_reference, simple_cst_equal): Support BIT_FIELD_REF.
+
+	* c-common.c (truthvalue_conversion): Rework to use switch rather
+	than if-then-else.
+	Generate either TRUTH_{OR*|AND*}_EXPR or comparison operations as
+	much as possible.
+	Handle REAL_CST, ADDR_EXPR, ABS_EXPR, FLOAT_EXPR, FFS_EXPR,
+	LROTATE_EXPR, RROTATE_EXPR, BIT_XOR_EXPR, and MINUS_EXPR.
+	Call fold for COND_EXPRs that we make.
+	* c-convert.c (build_unary_op): invert_truthvalue can't return 0,
+	so don't check for it.
+	(invert_truthvalue): Delete from here.
+	(convert_to_integer, build_conditional_expr): Try to fold COND_EXPR.
+	* c-plus-cvt.c (convert_to_integer): Likewise.
+	* cplus-typeck.c (build_conditional_expr): Likewise.
+	(build_unary_op): invert_truthvalue can't return 0.
+	(invert_truthvalue): Delete from here.
+	* fold-const.c (invert_truthvalue): Move to here.
+	Don't invert floating-point test.
+	Look inside conversions.
+	Use recursive call to negate inside logical operations rather than
+	building a TRUTH_NOT_EXPR.
+	Allow only certain TREE_CODEs as operands; abort for the rest.
+	(fold_convert): Accept second argument that is item being
+	converted to ensure that NOPs have been stripped.
+	(operand_equal_p): Return 0 if either operand has side effects.
+	If both integer or real constants, check the values.
+	Do a more thorough test to see if two items are identical;
+	specifically, compare the operands of simple TREE_CODEs.
+	(omit_one_operand, distribute_bit_expr): New functions.
+	(make_bit_field_ref, optimize_bit_field_compare): Likewise.
+	(fold): Remove LOSES; now done explicitly or by calling
+	omit_one_operand.  Some previous uses weren't needed.
+	Try to fold any COND_EXPRs and some COMPOUND_EXPRs we make.
+	Remove pair of NEGATE_EXPRs and BIT_NOT_EXPRs.
+	Convert "- (a - b)" to "b - a" for non-floating-point.
+	ABS_EXPR applied to ABS_EXPR or NEGATE_EXPR is ABS_EXPR of inner arg.
+	Convert "a + (-b)" to "a - b" and "a - (-b)" to "a + b".
+	If adding ANDs with constants that have no bits, in common, try
+	bitwise-or, since we may then be able to distribute the operation,
+	e.g., (a & 7) + (a & 0x70) -> a & 0x77.
+	Add missing last arg to operand_equal_p call.
+	Call distribute_bit_expr for BIT_AND_EXPR and BIT_IOR_EXPR.
+	Exclusive-or with all ones is bit negation.
+	If second arg of BIT_AND_TC_EXPR is constant, convert to BIT_AND_EXPR.
+	Handle TRUTH_NOT_EXPR by calling invert_truthvalue.
+	Call optimize_bit_field_compare for comparisons of bitfields.
+	Handle "a ? 1 : 0" and "a ? 0 : 1" as test or negated test.
+	Simplify "a & 4 ? a & 4 : 0" and "a ? a : 0" to remove conditonal.
+	* stor-layout.c (get_best_mode): New function.
+	* machmode.h: Define it.
+	* tree.c (integer_pow2p): New function.
+	* tree.h: Declare new functions and functions no longer static.
+
+Mon Aug 13 17:45:13 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* config.gcc (sun3-mach): New alternative.
+	* tm-sun3mach.h: New file.
+
+	* m68k.md (bfextu patterns): Set CC_NOT_NEGATIVE.
+
+Mon Aug 13 10:14:37 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl2.c (flag_minimal_debug): Now is default is
+	-fflag-minimal-debug.
+
+	* cplus-tree.c (virtual_member): Return the assoc of a non-virtual
+	basetype that comes from a virtual baseclass.  Changed callers
+	which used to call `value_member' to call virtual_member instead.
+
+Mon Aug 13 06:54:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* optabs.c (expand_twoval_binop): Fix typo.
+
+	* cse.c (lookup_as_function): Don't assume CODE is a unary
+	operation.  It might be a binary op or REG.
+
+Sun Aug 12 21:42:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case COND_EXPR): Don't abort if first arg of
+	COND_EXPR isn't a comparison; just suppress the do_store_flag call.
+
+Sun Aug 12 14:26:45 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.h (enum built_in_function): Delete comma after last name.
+	* c-parse.h (enum rid): Likewise.
+	* expr.h (enum optab_methods): Likewise.
+	* stab.h: Add dummy enum name at end.
+
+	* config.gcc (genix): Set tm_file.
+	* tm-genix.h (ASM_OUTPUT_DOUBLE): New overriding definition.
+
+	* tree.h (struct tree_type, struct tree_decl): Handle ONLY_INT_FIELDS.
+	* rtl.h (struct rtx_def): Likewise.  That macro goes in xm-*.h.
+
+Sat Aug 11 16:56:19 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cplus-decl.c (finish_function): Check value of HAVE_return before
+	calling gen_return.
+
+	* reorg.c (optimize_skip): Don't reject skip when we jump around an
+	insn and merge at the return point.
+
+Fri Aug 10 17:00:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* dbxout.c (dbxout_parms, dbxout_reg_parms): Ignore nameless parms.
+	* sdbout.c (sdbout_parms, sdbout_reg_parms): Ignore nameless parms.
+
+Fri Aug 10 14:14:08 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* recog.c (indirect_operand): Modes need not agree if MODE == VOIDmode;
+	remove test from here since it is in memory_operand, which this calls.
+
+Thu Aug	 9 15:19:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (store_parm_decls): If function has variable number of args,
+	put a dummy decl at end of parmlist.
+	* c-parse.y (unary_expr): Handle &... with address of dummy decl.
+
+	* tm-*.h (LEGITIMIZE_ADDRESS): Go to WIN instead of returning.
+
+	* cccp.c (handle_directive): Add code to support `# DIGIT'
+	but disable it for the time being.
+
+	* tm-hp9k320.h (CPP_SPEC): Define _HPUX_SOURCE if not ANSI.
+	(CPP_PREDEFINES): Don't define it here.
+	Do define alternatives with __ prepended.
+
+Wed Aug	 8 14:00:26 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* out-romp.c: Don't include hard-reg-set; already in insn-output.c.
+	 
+	* explow.c: insn-flags.h is needed to see if "probe" insn exists.
+	* Makefile.in (explow.o): Likewise.
+
+Wed Aug	 8 13:35:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (check_macro_name): Warn if name is `defined'.
+
+	* tm-sun386i.h (ASM_IDENTIFY_GCC): If profiling, put a NOP after
+	gcc_compiled.
+
+Tue Aug	 7 23:51:38 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* toplev.c (main): Handle -W options like -f options.
+	This supports -Wnounused, and such like.
+	(warn_uninitialized): New variable, controls those warnings.
+	Set it for -Wuninitialized, and for -W.
+
+Tue Aug	 7 13:24:58 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genextract.c (walk_rtx): Fix typo in MATCH_PARALLEL case.
+
+	* explow.c (allocate_dynamic_stack_space): Pass size of allocated stack
+	to gen_probe.
+
+Tue Aug	 7 12:19:46 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* pyr.md (extendsfdf2, truncsfdf2, float*, fix*): Use `&'.
+
+Tue Aug	 7 07:13:54 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (find_cross_jump): Include a USE or CLOBBER in cross jump
+	but don't count it against minimum size.
+	Never return when cross-jump hasn't actually been done.
+
+Mon Aug	 6 18:50:12 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* varasm.c: Include regs.h.
+	(decode_reg_name): Remove extern for reg_names; it is in regs.h.
+	* Makefile.in (varasm.o): Depends on regs.h.
+
+Mon Aug	 6 12:46:07 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (grokdeclarator): Don't warn if initialized fcn is extern.
+	(start_decl): Don't warn at all for initialized extern.
+
+	* final.c (final_start_function): Handle PROFILE_BEFORE_PROLOGUE.
+	(profile_function): New subroutine.
+
+	* tm-i386sco.h: New file.
+	* config.gcc (i386-sco): New alternative.
+
+	* gcc.c (ENDFILE_SPEC): New macro.
+	(do_spec_1): Handle %E.
+	(link_spec): Use %E.
+
+	* xm-i386.h (alloca): Define without arg.
+
+	* Makefile.in (stage*): Use RANLIB_TEST.
+	(LIMITS_H): New variable.
+	(USER_H): Use that.
+	* make-i386sco: New file.
+
+Sun Aug	 5 13:11:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtl.h: Delete all machine mode defns; include machmode.h instead.
+	* tree.h: Likewise.
+	* machmode.h: New file.
+	* stor-layout.c: No longer include rtl.h.
+	* Makefile.in: (RTL_H, TREE_H): Add machmode.h.
+	(stor-layout.o): No longer depends on RTL_H.
+
+	* c-common.c  (binary_op_error, shorten_compare): Should no longer
+	have been static when moved here.
+
+Sun Aug	 5 12:57:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stor-layout.c (layout_record, layout_union): Test value of 
+	PCC_BITFIELD_TYPE_MATTERS for being nonzero, if it is defined.
+	* tm-*.h: Define with value 1.
+	* tm-vax.h (PCC_BITFIELD_TYPE_MATTERS): Depends on -mvaxc-alignment.
+
+	* proto.h: New file.
+	* Makefile.in (USER_H): Add that file.
+
+Sun Aug	 5 00:04:08 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl2.c (grokfield): It is no longer legal to specify
+	the initializer for a static const member in the class
+	declaration.  Dealing with default initializers is basically
+	impossible.
+
+	* cplus-init.c (build_delete): Don't wrap `addr' in a SAVE_EXPR
+	until it is in fact an address.	 This allows us to call
+	destructors on the return values of function calls.
+
+	* cplus-typeck.c (commontype): Fixed bug in OFFSET_TYPE case which
+	led to infinite recursion (since we did not reduce the types
+	before we recursed).
+
+	* cplus-lex.c (check_newline): Make `#pragma implementation' more
+	forgiving.
+
+	* cplus-init.c (expand_aggr_init): Changed Jan 20th change so that
+	we test whether TYPE has a constructor defined, and we do not test
+	at all whether INIT was from a GNU constructor expression or not.
+
+	* cplus-typeck.c (build_modify_expr_1): Don't return
+	`error_mark_node' unless there really was an error.  If there is
+	no work to do, return `integer_zero_node'.
+
+	* cplus-class.c (propagate_basetype_offsets): Count the space
+	between baseclasses, not just the space they occupy.
+
+	* cplus-typeck.c (commontype): Don't drop the exceptions that are
+	raised by functions and methods.
+
+	* cplus-cvt.c (convert_to_real): Fix if/else level problem in
+	case where EXPR is of aggregate type.
+
+	* cplus-decl.c (finish_decl): Emit a line-number note to give
+	users a chance to set a breakpoint before the initialization of an
+	object takes place.
+
+	* cplus-class.c (build_method_call): If the function we get is not
+	directly from the object we have, call `convert_pointer_to' if the
+	object uses multiple inheritance or virtual baseclasses.
+
+	* cplus-typeck.c (build_binary_op_nodefault): Don't call
+	`convert_to_pointer' with an argument that might be
+	the integer zero.
+
+	* cplus-method.c (hack_identifier): Look for DECL_REFERENCE_SLOT
+	in RESULT_DECLs as well.
+
+	* cplus-init.c (build_vec_delete): Don't forget to deallocate the
+	container if requested.	 Really use AUTO_DELETE and
+	AUTO_DELETE_VEC with the same interpretation as `build_delete'
+	gives to its AUTO_DELETE parameter.
+
+Sat Aug	 4 22:08:44 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (find_cross_jump): Use prev_nonnone_insn.
+	Don't cross-jump into the middle of a USE-CALL_INSN-CLOBBER
+	block; doing so can confuse reorg.c.
+
+	* optabs.c (expand_binop, expand_binop, expand_twoval_binop):
+	If predicate doesn't match, ensure that operand is in a pseudo
+	register.  Current code assumes that any register will suffice,
+	but an insn may want to reject certain hard registers.
+	(expand_unop, emit_unop_insn, emit_cmp_insn): Likewise.
+
+Sat Aug	 4 15:29:09 1990  Michael Tiemann  (rms at sugar-bombs.ai.mit.edu)
+
+	* function.c (assign_parms): For parms passed by reference,
+	make the memory object's mode agree with the parm's original
+	type mode.
+	* calls.c (expand_call): Fixed braino in building argument
+	reference when FUNCTION_ARG_PASS_BY_REFERENCE is defined.
+
+	* varasm.c (assemble_variable): Hack our way around the problem
+	that static class members look like initialized variables for the
+	purposes of establishing FIRST_GLOBAL_OBJECT_NAME.
+
+	* cplus-lex.c (reinit_parse_for_method): Give error message for
+	common mistake of forgetting the function body.
+
+	* cplus-typeck.c (build_component_ref): Make better error message
+	when field is not found.
+
+	* cplus-class.c (finish_struct): TYPE_GETS_*_INIT_REF comes from
+	members as well.
+
+	* cplus-typeck.c (c_expand_return): Give warning about returning
+	non-lvalues that come from functional casts.
+
+	* cplus-search.c (get_base_distance): Changed to follow leftmost
+	path only when PARENT == TYPE_MAIN_VARIANT (PARENT).
+
+	* cplus-class.c (modify_vtable_entries): Call get_base_distance
+	with 0 path_ptr, since we do not appear to use the path computed.
+
+Fri Aug	 3 07:37:30 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* final.c (leaf_function_p): Delete line advertently retained
+	after change of July 29.
+
+	* reorg.c (optimize_skip, try_hoist_target): Don't invert jump
+	unless can_reverse_comparison_p says it is OK.	Use invert_jump
+	to do it.
+	(fill_simple_delay_slots): Another way flow of control can merge is
+	for two insns to jump to the same place; try to get insns from there.
+	(mostly_true_jump): Return 2 for a jump very likely to be true (the
+	branch back to the start of a loop).
+	(fill_slots_from_thread): Accept new arg LIKELY.  If true, see if can
+	put increment in delay slot and undo it after the end of the loop.
+	(fill_eager_delay_slots): Pass new arg to fill_slots_from_thread.
+	If previous insn is conditional jump that also didn't get a delay
+	slot, see if swapping targets helps.
+
+Fri Aug	 3 00:18:35 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (MAKE_POS): Avoid constant of uncertain signedness.
+
+	* gnulib2.c (__bb_init_func): Add dummy function to prevent warning.
+
+Thu Aug	 2 17:44:59 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* output.h (current_function_return_rtx): Add new variable.
+	* function.h (return_rtx): Likewise.
+	* function.c (push_function_context, pop_function_context): Save
+	and restore current_function_return_rtx.
+	(assign_parms, expand_function_start): Set current_function_return_rtx
+	to what is put in DECL_RTL (DECL_RESULT (current_function_decl)).
+	* reorg.c: No longer uses tree.h.
+	(dbr_schedule): Get result RTL from current_function_return_rtx instead
+	of reading it from current_function_decl.
+	* Makefile.in (reorg.o): No longer depends on TREE_H.
+
+	* cse.c (remove_invalid_refs): Only invalidate an entry if it 
+	references the actual register, not merely something sharing its
+	quantity.
+	(cse_insn): Don't abort if SRC and SRC_EQUIV map to different
+	hash classes.  Merge them instead.
+
+	* romp.md (mulsi3): Emit call to lmul$$ as a regular insn
+	rather than a CALL_INSN.
+	(divsi3, modsi3, udivsi3, umodsi3, call_libfcn): Deleted.
+	(divmodsi4, udivmodsi4): New patterns to call ldiv$$ and uldiv$$
+	as a normal insn to allow CSE'ing of MOD with DIV.
+
+Wed Aug	 1 21:56:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y (yylex): Don't warn about non-decimal unsigned by default
+	if `u' was specified.  Add similar warning for long and long long.
+
+Tue Jul 31 23:31:46 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-encore.h (FUNCTION_PROFILER): Override, putting `.' in label.
+
+	* xm-vms.h (const): Delete the definition.
+
+Mon Jul 30 18:33:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (convert_for_assignment): Normally no warning
+	between char * and unsigned char *, etc.
+	(convert_arguments): Include arg number in incomplete type warning.
+
+Mon Jul 30 07:38:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (invert_jump): Don't do anything with labels if NLABEL 
+	equals JUMP_LABEL.
+	(redirect_jump): Don't try to reference LABEL_NUSES if olabel is
+	zero (meaning this is a return insn).
+	(redirect_exp): Handle case of converting return to jump to
+	label.
+
+	* dbxout.c (dbxout_parms): Allow parameter at zero offset from
+	AP to be represented as (MEM (REG ...)).
+	* sdbout.c (sdbout_parms): Likewise.
+
+Sun Jul 29 22:51:00 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* optabs.c (expand_twoval_binop_convert): Deleted.
+	(expand_twoval_binop): Rework to be handle predicates, modes, and
+	failures in a manner consistent with expand_binop.
+	Move code from expand_twoval_binop_convert inline and rework to
+	no longer hard-wire SImode and to handle failure.
+
+	* config.gcc: Finish change of July 24th to have make_var_file depend
+	on host machine.
+
+	* jump.c: Now includes insn-flags.h.
+	(jump_optimize): Try to put a RETURN at the end of the function if
+	control flows through to it.
+	JUMP_LABEL can now be zero for a RETURN or conditional RETURN.
+	Try to convert jump to end of function into (possibly conditional)
+	RETURN.
+	Use next_active_insn instead of next_real_insn; these do the same
+	thing prior to reload, after which USE and CLOBBERs don't matter.
+	redirect_jump may now fail so don't set CHANGED if it does.
+	Delete optimization of jump to RETURN; now subsumed by follow_jumps.
+	Reset INSN_CODE if changing conditional jump to unconditional.
+	(cond_jump_p): Conditional RETURN is conditional jump.
+	(follow_jumps): Change argument name to AFTER_RELOAD.
+	If not after reload, do not chain across a USE or CLOBBER.
+	Recognize RETURN insns.
+	(tension_vector_labels): Likewise.
+	(redirect_jump, redirect_exp): If NLABEL is zero, turn JUMP into a
+	(possibly conditional) RETURN; use validate_change to see if such an
+	insn exists. 
+	Now returns non-zero if succeeds, 0 otherwise.
+	Unconditional RETURN looks like (RETURN), not (SET (PC) (RETURN)).
+	(thread_jumps): Ignore any type of RETURN insn.
+	* Makefile.in (jump.o): Depends on insn-flags.h.
+	* loop.c (strength_reduce): Don't confuse conditional return with
+	jump to top of loop when LOOP_TOP == 0.
+	* final.c (leaf_function_p): No longer static; no longer takes an arg.
+	(final_start_function): Don't pass START to leaf_function_p.
+	* romp.md (return pattern): Convert to a named pattern.
+
+Sun Jul 29 16:05:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-vms.h (ASM_OUTPUT_EXTERNAL): Check TREE_READONLY.
+
+	* xm-vms.h (alloca): Use built-in alloca.
+
+Sun Jul 29 06:47:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (fill_slots_from_thread): Restore inadvertantly deleted
+	lines.
+
+Fri Jul 27 19:53:18 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (reorg.o): Depends on tree.h, basic-block.h, regs.h,
+	and output.h
+
+Fri Jul 27 16:30:03 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c (assemble_variable): Handle ASM_OUTPUT_SHARED_COMMON
+	and ASM_OUTPUT_SHARED_LOCAL.
+
+	* tm-encore.h (SHARED_SECTION_ASM_OP): New macro.
+	(ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_LOCAL): New.
+	All this waiting for papers from pabuhr@watmsg.waterloo.edu.
+
+Fri Jul 27 16:10:02 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* make-romp (CC): Set up to allow use of hc.
+
+Fri Jul 27 15:07:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* combine.c (subst): Handle (ASHIFT 1 x) in (EQ (AND ... y) 0)
+	only if little-endian.
+
+Thu Jul 26 23:19:15 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expmed.c (expand_shift): Consistently call protect_from_queue
+	before doing anything else.
+	Always put operand1 of extzv into a register because it is SImode
+	and we assume that this means a register.
+
+Thu Jul 26 14:18:11 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* varasm.c (assemble_variable): Delete dead code.
+	DATA_ALIGNMENT takes tree and current alignment and gives new
+	alignment for a non-automatic variable of that type.
+	Also apply CONSTANT_ALIGNMENT to the initial value; it now takes
+	the constant and old alignment and gives the new alignment.
+	Adjust DECL_ALIGN to the resulting alignment.
+	Use floor_log2 consistently instead of duplicating its function.
+	(get_or_assign_label): Use CONSTANT_ALIGNMENT instead of DATA_ALIGNMENT
+	and pass type instead of decl.
+	* expr.c (get_pointer_alignment): Rework to: distinguish reliably
+	between expressions giving the address and those giving the item being
+	addressed; use the alignment from the type of the object being
+	pointer to; return 0 if the type is not a pointer; and other 
+	miscellaneous changes.
+	(string_constant): Skip CONVERT_EXPR and NON_LVALUE_EXPR as well
+	as NOP_EXPR.
+	(expand_builtin): Allow get_pointer_alignment to fail, in which case
+	we call the actual function.
+	* stmt.c (expand_decl): Set actual alignment obtained into DECL_ALIGN
+	since it may be better aligned than required and get_pointer_alignment
+	can take advantage of this.
+	* tm-gmicro.h, tm-pyr.h, tm.romp-h: Add or replace definitions of
+	CONSTANT_ALIGNMENT to word-align string constants and
+	DATA_ALIGNMENT to word-align character arrarys for builtin memory
+	functions.
+
+	* fold-const.c (rshift_double): Reset carry after each shift of
+	one bit.
+
+	* vax.md (ashrsi3): If right shift by constant, emit as ASHIFTRT.
+	(ashrsi3_const): New pattern  to match it.
+	(casel): Delete patterns no longer needed.
+	* cse.c (cse_insn): Remove unneeded part of change of July 23.
+	(fold_rtx): Convert shift with negative constant count to shift in
+	the opposite direction.
+	* combine.c (subst): Likewise.
+
+	* emit-rtl.c (init_emit_once): Initialize arg_pointer_rtx before
+	struct pointer and static chain values in case they want to use it.
+
+Thu Jul 26 12:31:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* final.c (final_scan_insn): Align label table to boundary appropriate
+	for items of its size.
+	(get_attr_length, shorten_branches): Allow for label table alignment.
+
+Wed Jul 25 15:06:44 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fixincludes: Handle uses of _IO* followed by spaces.
+	Change redirections for cd when testing that directory exists.
+
+	By Tiemann:
+
+	* emit-rtl.c (next_cc0_user): Handle insns in which cc0
+	is set and used in the same insn.
+
+	* final.c (leaf_function_p): Look inside INSNs which contain
+	a delayed-call sequence.
+	(final_start_function): Test `only_leaf_regs_used' before
+	`leaf_function_p', since that is likely to be faster.
+	(final_scan_insns): Normally we don't have NOTICE_UPDATE_CC
+	take action when processing the path of an annulled branch,
+	since that path does not affect the cc's of the fall-through
+	insns at all.  However, we cannot always ignore the effect of
+	the cc's when processing a delayed annulled branch: when the
+	delayed annulled branch follows a label and carries a
+	REG_CC_STATUS note, that note must be processed.
+
+	* genattr.c (main): Generate #defines for annulled branches
+	which are consistent with documentation.
+
+	* reorg.c: Finish recent rework by modifying code specific to
+	machines that have annulling branches.
+
+	* c-common.c (merge_component_comparisons): Previous logic did
+	not handle cases of (A == 1) && (B == 1), (A != 0) && (B != 0),
+	and (A != 1) || (B != 1).  Fixed by expanding the logic out
+	longhand and letting the compiler do the proper cross-jumping.
+
+	* tm-vms.h (ASM_OUTPUT_EXTERNAL): Use assemble_name.
+
+	* expr.c (expand_expr): For BIND_EXPR, do the init for all vars.
+
+	* stupid.c: Include flags.h.
+	* genrecog.c (main): Make insn-recog.c include flags.h.
+
+Sun Jul 22 12:04:43 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-except.c (cplus_expand_end_except): If the user gives a
+	default handler, the exception is considered caught in that
+	handler.
+	* cplus-parse.y (except_stmts): Rest of fix went here, in DEFAULT
+	case.
+
+	* cplus-decl.c (finish_decl): Don't emit cleanups twice.
+
+	* cplus-class.c (finish_struct_bits): Don't call
+	`fixup_vbase_offsets'.
+	* cplus-tree.c (fixup_vbase_offsets): #if 0 this function.
+
+	* cplus-cvt.c (build_default_binary_type_conversion): Handle
+	arguments which are REFERENCE_TYPE.
+
+	* cplus-method.c (prepare_inline): Set DECL_CONTEXT of this
+	function's parameters.
+
+	* cplus-decl.c (grokfndecl): When adding a new virtual function
+	entry, RAISES may change a second time.
+
+Thu Jul	 5 10:44:39 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl2.c (grokfield): Static consts need not be initialized
+	in the class definition.
+
+Mon Jul	 2 06:12:49 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-init.c (resolve_offset_ref): If BASETYPE is not a base
+	type for the current class, give error and return.
+
+Sun Jul	 1 00:18:47 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl.c (finish_function): Throw away more code if we have
+	an inline function from the interface.
+
+	* cplus-class.c (add_virtual_function): Set DECL_VINDEX from the
+	virtual function which comes from the vtable shared by
+	CURRENT_CLASS_TYPE, if possibe.
+
+	* cplus-typeck.c (build_binary_op): Call `default_conversion'
+	after doing type instantiation.
+
+	* cplus-init.c (build_new): New 2.0 interpretation: `new int (10)'
+	means allocate an int, and initialize it with 10.
+
+	* cplus-init.c (emit_base_init): Completion of fix for virtual
+	function table initialization.	@@ BTW, this may now cause extra
+	virtual function table initializations.	 They will all be correct,
+	but they may also be redundant.	 GCC's optimizer doesn't know how
+	to remove even the simplest such redundancy.
+
+Sat Jun 30 13:54:30 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-class.c (finish_base_struct): Store BASETYPE in the
+	VFIELDS chain (in its TREE_TYPE).
+
+Fri Jun 29 09:26:17 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-class.c (build_vtable,prepare_fresh_vtable): Stash the
+	type that caused this vtable to be defined in DECL_CONTEXT
+	* cplus-search.c (bfs_unmark_finished_struct): Work around
+	DECL_CONTEXT conflict for vtables.  @@ NOT A SOLUTION.
+
+	* cplus-lex.c: Extend meaning of `#pragma implementation'
+	to allow files to `implement' types from general headers.
+
+Tue Jul 24 22:18:23 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c: Major rework.  Changes includes:
+	(mark_target_live_regs): Scan code to compute which registers are
+	live at particular insns.  Uses tables created by flow, REG_DEAD
+	notes, and registers set before they are used.
+	(emit_delay_sequence): Always write SEQUENCE as INSN.  Many routines
+	changed to reflect this.
+	(fill_simple_delay_slots): Loop for merge point when target of jump
+	comes back to fallthrough code.	 Try to get insns from there.
+	(fill_eager_delay_slots): Fallthrough and target case merged into new
+	function fill_slots_from_thread.
+
+	* tm-romp.h, romp.md, out-romp.c, xm-romp.h, make-romp: New files to
+	support the ROMP microprocessor, used in the IBM PC RT.
+
+	* recog.c (comparison_operator): New function.
+
+	* jump.c (jump_optimize): If putting constant into register, see
+	if it is already present in the register.
+
+Tue Jul 24 15:35:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (build_binary_op_nodefault): Allow compare of any
+	pointer with const void *, etc.
+
+Tue Jul 24 17:10:59 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (get_inner_reference): New function.
+	(expand_assignment): Use it to find out about our target.
+	(expand_expr, case COMPONENT_REF): Likewise.
+	(expand_expr, case COND_EXPR): If can do store-flag, convert
+	X ? A+1 : A to A + (X!=0); fold-const made the former from the latter.
+	Only create label when we know we will need it.
+	Simplify unnessarily complex call to safe_from_p.
+	(expand_expr): Make new variable UNSIGNEDP and use it instead
+	of TREE_UNSIGNED (type).  Also, consistently use existing
+	variable TYPE instead of TREE_TYPE (exp) and similarly for MODE.
+
+Tue Jul 24 13:50:33 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (collect_expansion): Error if ## at beg or end.
+
+	* c-decl.c (grokdeclarator): Error for long, etc. with nonarith type.
+	Error for signed or unsigned with floating type.
+	Error for initialized parm.
+
+	* config.gcc: Make make_var_file depend on host machine, not target.
+
+Tue Jul 24 13:40:35 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* varasm.c (decode_reg_name): Make TABLE static for non-GCC compilers.
+
+	* c-typeck.c (type_for_size, type_for_mode): Delete from here.
+	(binary_op_error, shorten_compare, truthvalue_conversion): Likewise.
+	* cplus-typeck.c: Delete second copy from here.
+	* c-common: Move above functions to here.
+
+Tue Jul 24 12:20:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (path_include): Fix typo in var name.
+
+Mon Jul 23 17:46:57 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* config.gcc: Remove redundant assignment to tm_file for 88000.
+	Fix typo when assigning to make_var_file.
+
+	* function.c (optimize_bit_field): Fix typo in change_address call.
+
+Mon Jul 23 16:59:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* varasm.c (decode_reg_name): Ignore % at beginning of name.
+	Support extra names defined by ADDITIONAL_REGISTER_NAMES.
+	* tm-i386.h (ADDITIONAL_REGISTER_NAMES): Define it.
+
+	* dbxout.c (dbxout_init): Handle new macros
+	ASM_OUTPUT_MAIN_SOURCE_FILENAME and ASM_OUTPUT_MAIN_SOURCE_DIRECTORY.
+	* sdbout.c (sdbout_filename): Handle ASM_OUTPUT_MAIN_SOURCE_FILENAME.
+
+Mon Jul 23 16:50:32 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* tm-vax.h (NOTICE_UPDATE_CC): CALL clobbers CC if inside PARALLEL too.
+
+	* vax.md (call_value_pop): Fix typo in argument number.
+
+	* cse.c (cse_insn): Shift's aren't associative if in different
+	directions, even if same rtx_code.
+	Try to fold result of associating the operation in case it is now
+	trivial.
+
+	* jump.c (mark_modified_reg): New function.
+	(thread_jumps): Look at insns between target of first jump and the
+	second jump.  Mark any registers that they modify and record if they
+	modify memory.
+	Don't go past a CODE_LABEL.
+	If we pass an unconditional jump, follow it.
+	Use prev_nonnote_insn instead of explicit loop.
+	(rtx_equal_for_thread_p): Consult recorded information to see if
+	memory of registers were modified prior to second jump.
+	* Makefile.in (jump.o): Now needs hard-reg-set.h.
+
+Sat Jul 21 13:58:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (O_RDONLY): Define it if not defined.
+
+	* c-decl.c (finish_decl): No error for nonstatic incomplete array.
+
+Sat Jul 21 08:24:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* alliant.md (call patterns): Function address must be memory operand.
+	* convex.md, m68k.md, mips.md, ns32k.md, tahoe.md, vax.md: Likewise.
+
+Thu Jul 19 16:06:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (path_include): New function.
+	(main): Call that to handle CPATH envvar.
+
+	* varasm.c (assemble_variable): Error if size exceeds 2**32-1.
+
+	* emit-rtl.c (init_emit_once): Pass write_symbols to this function
+	(init_emit): Not this one.  All callers changed.
+
+Tue Jul 17 21:24:08 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (update_equiv_regs): Don't replace a register with
+	an equivalence if the insn making the equivalence has a source
+	different from the equivalent value.
+
+Tue Jul 17 16:47:42 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (emit_block_move): Allow movstr* to fail.
+
+Tue Jul 17 15:19:18 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (change_address): Don't call memory_address if reload
+	is in progress, not just after it has completed.
+
+Mon Jul 16 00:34:27 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (can_reverse_comparison_p): New function.
+	(jump_optimize): In if (x) ... else x = 0; reverse comparison
+	if second operand of IF_THEN_ELSE is PC; use new function to
+	validate the reversal.
+	(jump_back_p): Use new function to see if safe to reverse comparison.
+
+Sun Jul 15 17:03:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* jump.c (jump_optimize): Bug in last change; reject uncond jump
+	where conditional is expected.
+
+	* flow.c (mark_used_regs): Handle autoincrement for *p
+	followed by q = p+size (neither one dead).
+
+Sat Jul 14 22:37:45 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* combine.c (subst): Remove (zero_extend (subreg)) around lshiftrt.
+	Remove (and...) from second arg of shift.
+	Remove (and...) from around shift.
+
+Sat Jul 14 21:35:50 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (update_equiv_regs): New function.
+	(local_alloc): Call it.
+	(block_alloc): Don't handle REG_EQUIV notes here; now done in
+	update_equiv_reg.
+	
+	* calls.c: Include insn-flags.h.
+	* Makefile.in (calls.o): Likewise.
+
+Sat Jul 14 13:28:28 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (duplicate_decls): Don't set DECL_FRAME_SIZE for builtins.
+
+	* vax.md (SImode bit-field patterns): Use nonmemory_operand.
+
+	* jump.c (jump_optimize):
+	For if (...) x = 1; else x = 0; x must be integer.
+
+	* gcc.c (default_compilers): Pass -P to cpp.
+
+Thu Jul 12 23:38:14 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stor-layout.c (layout_record): Handle BITFIELD_NBYTES_LIMITED.
+
+	* sparc.md (call recognizers): Don't allow address arithmetic.
+
+Thu Jul 12 21:47:45 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (change_address): If reload has completed, don't call
+	memory_address.	 Instead, abort if address is not valid.
+
+Thu Jul 12 20:41:32 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* calls.c (emit_call_1): Handle vax, without call and call_value.
+
+Thu Jul 12 20:39:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (merge_equiv_classes): New function, from record_jump_equiv.
+	(record_jump_equiv): Use new function.
+	(gen_lowpart_if_possible): New function, based on gen_lowpart.
+	(cse_insn): In some cases of (set (subreg (FOO) 0) (BAR)), note
+	that (subreg BAR) is an equivalent of FOO.
+	* integrate.c (expand_inline_function): Likewise.
+
+	* combine.c (subst): Check for constant in merge of shift into
+	ZERO_EXTRACT.
+	(gen_lowpart_for_combine): Look for SIGN_EXTEND or ZERO_EXTEND:
+
+	* emit-rtl.c (gen_lowpart, gen_highpart): If passed a hard register,
+	return a new rtx for it in the proper mode, rather than a SUBREG.
+
+Wed Jul 11 17:05:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): If already have a REG_WAS_0 note, don't make
+	another one.
+	Rework some loops on SETs to eliminate duplicate code and clean up
+	a bit.
+
+	* rtlanal.c (refers_to_regno_p, reg_overlap_mentioned): Allow these
+	to work on pseudos as well as hard registers.
+
+	* optabs.c (emit_no_conflict_block): Use reg_overlap_mentioned
+	to see if register is mentioned in insn.
+
+Wed Jul 11 16:56:01 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* jump.c (jump_optimize): Don't optimize jumps to store-flags
+	if after register allocation.  And don't do it if memref is used.
+
+Wed Jul 11 16:12:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c ({next,prev}_nonnote_insn, prev_label, prev_cc0_setter):
+	New functions.
+	({next,prev}_{real,active}_insn, next_label): Rework to allow
+	argument of zero; return zero in that case.
+	(next_active_insn, prev_active_insn): If reload is not yet complete,
+	do the same thing as next_real_insn and prev_real_insn.
+	(next_cc0_user): Fix some bugs and typos.
+
+	* rtlanal.c (reg_mentioned_p): Allow searches for labels to work.
+
+Wed Jul 11 12:25:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (duplicate_decls): In prev fix, use TREE_PUBLIC both times.
+
+Tue Jul 10 22:54:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* rtl.def (trap): New code.
+
+Tue Jul 10 17:48:26 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* tree.c (integer_zerop, integer_onep, integer_all_onesp): Look inside
+	a NON_LVALUE_EXPR.
+	(real_zerop, real_onep, simple_cst_equal): Likewise.
+
+Tue Jul 10 17:05:50 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y, objc-parse.y, cplus-lex.c (yylex):
+	Terminate token_buf after integer.
+
+Mon Jul	 9 15:22:22 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* c-decl.c (duplicate_decls): Correct test for extern followed by
+	static function declaration.
+
+Mon Jul	 9 14:13:06 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (grokdeclarator): Move warning and error
+	about initializer with extern to the same place.  Do one or the other.
+
+	* rltanal.c (reg_mentioned_p): Don't look inside a CONST_DOUBLE.
+
+Sun Jul	 8 14:12:21 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* toplev.c (pedwarn, pedwarn_with_file_and_line, pedwarn_with_decl):
+	New functions.
+	(flag_pedantic_errors): New variable controls them.
+	* c-decl.c, c-parse.y, c-typeck.c: Use new functions for many warnings.
+	* varasm.c: Likewise.
+	* gcc.c (default_compilers): Pass -pedantic* to cc1, cpp, etc.
+	* cccp.c (pedwarn): New function.  Many calls to `warning' changed.
+
+	* c-common.c (c_expand_expr_stmt): New function.
+	Error about incomplete type moved here.
+	* expr.c (expand_expr): Error deleted from here.
+	* c-parse.y: Use c_expand_expr_stmt where suitable.
+
+	* flow.c (propagate_block): Set following_insn_dead on insn after test.
+	(mark_used_regs): Test that var; don't call insn_dead_p here.
+
+Fri Jul	 6 13:05:01 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (build_indirect_ref):
+	No error if result is incomplete array.
+
+	* expmed.c (store_bit_field, extract_bit_field): New arg TOTAL_SIZE.
+	Don't extract a bigger unit from memory than this.
+	* expr.c: Callers changed.
+	(store_field): New arg TOTAL_SIZE; callers changed.
+
+	* out-ns32k.c (print_operand_address): Changes from Ian Dall.
+	* xm-ns32k.h: Use built in alloca.
+	* ns32k.md (ashlsi3): Don't forget to return a value.
+	(movsf): Output floating constants only if GAS_SYNTAX.
+	(call, call_value): Support JSR_ALWAYS.
+	Change handling of bsr if GAS_SYNTAX.
+	(bit test patterns): Use g constraint for op1 and rm for op0.
+
+Thu Jul	 5 21:53:10 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (build_c_cast): Don't do implicit arithmetic conversions.
+	* fold-const.c (fold): Don't combine two conversions if one is
+	signed and the other is unsigned.
+	* integrate.c (copy_parm_decls): Finish making last change.
+
+Thu Jul	 5 18:26:03 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (safe_from_p): If EXP is readonly memory, any memory location
+	is safe from it.
+
+Thu Jul	 5 15:05:19 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gnulib2.c (__fixunsdfsi): Change > to >=.
+
+	* c-decl.c (start_struct, start_enum): Set C_TYPE_BEING_DEFINED.
+	(grokdeclarator): Don't warn of array if elt type being defined.
+
+	* c-typeck.c (build_conditional_expr): Handle ((void *) 0).
+	Allow 0 versus function pointer.
+
+Thu Jul	 5 08:05:09 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): If machine has post-increment, don't associate
+	PLUS operations if they are both adding the same constant that is
+	a power of two.	 Similarly for post-decrement.
+
+Wed Jul	 4 19:04:20 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* flow.c (mark_used_regs): Don't scan a comparison if the following
+	insn that uses the cc's is dead.
+
+	* flow.c (propagate_block): If cc-using insn is dead, so is previous.
+
+	* expmed.c (emit_store_flag): New function.
+
+Wed Jul	 4 18:45:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* c-typeck.c (common_type, comptypes, default_conversion):
+	Use TYPE_READONLY in type to indicate const type; use TREE_READONLY
+	in decl to indicate object will never change.
+	(build_unary_op, readonly_warning, build_modify_expr): Likewise.
+	(c_expand_asm_operands): Likewise.
+	* cplus-class.c (finish_struct_bits): Likewise.
+	* cplus-cvt.c (build_type_conversion): Likewise.
+	* cplus-type2.c (readonly_warning_or_error): Likewise.
+	* cplus-typeck.c (default_conversion, build_unary_op): Likewise
+	(build_modify_expr, c_expand_asm_operands): Likewise.
+
+	* cplus-cvt.c (popclass): When making INDIRECT_REF, don't set
+	TREE_READONLY from TYPE_READONLY.
+
+Wed Jul	 4 15:16:37 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* jump.c (jump_optimize): Fix bugs in last change.
+
+Wed Jul	 4 07:52:53 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case COMPONENT_REF): Delete extraneous test
+	for structure-value stack slot, which no longer exists.
+
+	* reload1.c (bad_spill_regs): Should be static.
+
+	* combine.c (subst, gen_lowpart_for_combine): Propagate
+	RTX_UNCHANGING_P when making a new MEM.
+	* c-typeck.c, cplus-typeck.c (build_indirect_ref): ANSI says that
+	de-reference of pointer-to-const is not readonly so don't set
+	RTX_UNCHANGING_P.
+	* explow.c (validize_mem): Use change_address so flags get copied
+	to new MEM.
+	* expr.c (convert_move, block_block_{to,from}_reg, emit_move_insn):
+	Likewise.
+	(do_tablejump): Set RTX_UNCHANGING_P in MEM accessing address table.
+	* function.c (optimize_bit_field, instantiate_virtual_regs_1):
+	Preserve flags when making new MEM.
+	* loop.c (invariant_p): Memory references to an invariant address
+	are invariant if RTX_UNCHANGING_P is set.
+	* recog.c (adj_offsettable_operand): Propagate RTX_UNCHANGING_P
+	when making new MEM.
+	* reload.c (find_reloads_toplev): Likewise.
+	* reload1.c (alter_reg): Stack slot is readonly if pseudo was.
+	(eliminate_regs): Propagate RTX_UNCHANING_P in new MEM.
+	* varasm.c (force_const_double_mem): Set RTX_UNCHANGING_P in new MEM.
+
+Tue Jul	 3 21:50:58 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expmed.c (expand_and): New function.
+
+	* stmt.c (expand_expr_stmt): 
+	If value is volatile, fetch it and then ignore it.
+
+	* expr.c (expand_expr): Error if variable type is incomplete.
+
+	* c-decl.c (grokdeclarator): Don't warn of incomplete array in typedef.
+
+Tue Jul	 3 18:03:24 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold): Convert "(1 << foo) & bar" to "(bar >> foo) & 1"
+	In "(a & 1) != 0", can convert to simply "a & 1".
+	* combine.c (subst): Convert branch on sign bit to signed comparison
+	with zero (possibly adding a SUBREG).
+	Convert ZERO_EXTRACT of the low-order bit of a right shift into a
+	ZERO_EXTRACT of the proper bit.
+
+Mon Jul	 2 12:07:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* jump.c (jump_optimize): Convert conditionals for storing one
+	value into a store-flags insn.
+
+	* vax.md (call_pop, call_value_pop): New names for call patterns.
+	Include the popping explicitly in the rtl. 
+
+	* jump.c (jump_optimize): Delete case for condjump followed
+	by unconditional to same label; was special case of another case.
+	Switch back to next_active_insn or prev_active_insn in a few cases.
+
+	* function.c (init_function_start): Initialize
+	frame_pointer_needed to zero.
+
+	* i386.md (tstsf): Clobber reg 0 in SImode.
+
+Sun Jul	 1 14:31:14 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* jump.c: Use next_real_insn instead of next_active_insn.
+	Likewise for prev_active_insn.	USE insns make a difference!
+
+	* function.c (assign_stack_temp): Use largest alignment if BLKmode.
+
+	* stddef.h: Check __SIZE_T also.
+
+	* toplev.c: Include types.h first.
+
+	* i386.md (trunc*2): Don't allow moving symbolic constant to memory.
+	Use wider move only for symbolic constant.
+
+	* tm-convex.h (LINK_SPEC): Posix link flags.
+	* tm-convex.h (STARTFILE_SPEC): Posix start files.
+	* tm-convex[12].h (CPP_SPEC): Posix defines.
+	* tm-convex[12].h (LIB_SPEC): Posix libraries.
+	* tm-conv[12]os7.h: New files.
+	* config.gcc: use tm-conv*os7 if /usr/include/stdlib.h isn't there.
+
+	* xm-convex.h (S_IFMT, S_IFREG): make visible if hidden for posix.
+	* xm-convex.h (_PROTO): define to keep 8.0 includes from screwing up.
+
+	* tm-convex.h (ASM_OUTPUT_{FLOAT,DOUBLE}, PRINT_OPERAND):
+	  use %e instead of %#g, which is broken or non-posix.
+
+	* tm-convex.h (current_section_is_text): make extern.
+	* out-convex.c (current_section_is_text): define here.
+	* tm-convex.h (OVERRIDE_OPTIONS), out-convex.c (override_options):
+	  useless; remove.
+	* tm-convex.h (CPP_PREDEFINES): remove parsec, long gone from
+	  system includes.
+
+Sat Jun 30 14:01:52 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (pending_xref_error): Fix typo in arg order.
+
+	* cccp.c (do_include): Mention non-ex system headers for -M.
+	Guess the directory.
+	(check_macro_name): Should not be static.
+
+	* rtl.def (inline_header): Add a vector at the end.
+	* rtl.h (ORIGINAL_ARG_VECTOR): New macro.
+	(RTVEC_ELT): New macro.
+	* emit-rtl.c (gen_inline_header_rtx): New argument for that vector.
+	* integrate.c (save_for_inline): Copy arg rtls if nec, then make
+	an arg vector to put in the header.
+	(expand_inline_function): Look in that vector for the rtl.
+	(copy_parm_decls): Likewise.
+
+	* c-decl.c (duplicate_decls): Warn if function declared external
+	and later static.
+
+Fri Jun 29 13:29:24 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cccp.c (handle_directive): Supply missing *.
+
+Thu Jun 28 21:39:43 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m68k.md (muldf3 for 68881): Generate fscale if appropriate.
+	* out-m68k.c (floating_exact_log2): New function.
+
+Wed Jun 27 17:19:36 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (finish_struct): New handling of zero-width bit fields.
+	Store appropriate data in them like other bit fields.
+	Don't delete them until after layout.
+	Don't mess with alignment of following field; set its own.
+	If PCC_BITFIELD_TYPE_MATTERS, get alignment from type.
+	* stor-layout.c (layout_record): For zero-width field, if
+	PCC_BITFIELD_TYPE_MATTERS, alignment does not affect that of structure.
+	(layout_decl): Don't abort for zero-width if no name.
+
+	* function.c (expand_function_start):
+	Output ...FUNCTION_BEG note here, after assign_parms.
+	(init_function_start): Not here.
+
+	* sdbout.c (sdbout_record_type_name): Conditionalize for 
+	SDB_ALLOW_FORWARD_REFERENCES.  Don't use typedef names, just tags.
+	(sdbout_begin_block): Likewise.
+	(plain_type_1): Likewise.  Also move code to output structure size.
+	(sdbout_symbol): Output the type if not yet output.
+	Don't output top-level initialized variables yet.
+	Avoid crash if variable never got any rtl.
+	Add conditional for SDB_AUTO_NORMALIZE_OFFSET.
+	(sdbout_toplevel_data, sdbout_queue_anonymous_type): 
+	(sdbout_dequeue_anonymous_type): New functions.
+	(sdbout_tags): Reverse the list first.
+	Output enums before other things.
+	(sdbout_reg_parm): Fake a name if necessary.  Use C_REGPARM.
+	* toplev.c (compile_file): Call sdbout_toplevel_data.
+
+	* c-typeck.c (convert_for_assignment): Disable warnings for pointers
+	to const and volatile functions.
+
+	* expr.c (expand_expr): Mark variable as used.
+
+Tue Jun 26 17:05:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-sparc.h (LINK_SPEC): Delete spurious `-'.
+
+	* tm-sun3.h (ASM_OUTPUT_FLOAT_OPERAND): Handle minus zero.
+	(ASM_OUTPUT_DOUBLE_OPERAND): Likewise.
+
+	* stor-layout.c (layout_type): Check TYPE_NO_FORCE_BLK in union fields.
+
+Tue Jun 26 01:48:57 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* tree.c (dump_tree_statistics): Dummy function.  To be filled in
+	later when we decide what tree statistics should be measured.
+	(build): Now ok to take arguments of length 1.	`build1' cannot be
+	used to allocate 's' tree nodes whcih might have length 1.
+
+	* All GNU C++ files updated to 1.37.2 (alpha 2).  NOTE: cplus-decl.c
+	needs to be fixed to not us RTL.  I'm leaving this file in its
+	current state so that the GNU C++ compiler at least compiles.
+
+	* All SPARC files: modified to use registers %f30 and %f31 as
+	temporaries for holding floating-point zero.  Used to use %f0 and
+	%f1, which made it impossible to compare function return values with
+	zero.
+
+Mon Jun 25 16:54:13 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* function.c (init_function_start): New args give file/line for first note.
+	* c-decl.c (store_parm_decls): Pass them.
+	* integrate.c (output_inline_function): Pass dummies for them.
+	* final.c (final_start_function): For sdb, don't output a line number, 
+	just set last_linenum.
+
+	* c-parse.y (hash, is_reserved_word): New keyword __label__.
+
+	* stddef.h: Check _T_SIZE as well as _SIZE_T.
+
+Sun Jun 24 16:09:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (expand_expr): Do preserve_temp_slots for TARGET_EXPR.
+
+Sat Jun 23 09:52:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genpeep.c (gen_peephole): Ignore USE and CLOBBER insn as well as
+	NOTE when matching peephole.
+
+Fri Jun 22 17:40:56 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (process_init_constructor): Set up TREE_PURPOSE
+	in record constructor elements.
+
+	* cexp.y (exp1): If pedantic, warn about commas.
+	(tokentab2): Add entries for ++ and --.
+	(yylex): Error if those are used.
+
+	* c-decl.c (lookup_tag): For wrong kind of type, just set flag.
+	(shadow_tag): Clear the flag.
+	(pending_xref_error): Print the error message here if flag set.
+	* c-parse.y (setspecs): Call that.
+
+	* calls.c (emit_call_1): Use call_pop and call_value_pop insns
+	to record when the called function pops its args.
+
+Fri Jun 22 16:43:12 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (wipe_dead_reg): Remove REG_DEAD note for unset reg.
+
+	* tm-sparc.h: Replace FIX_FRAME_POINTER_ADDRESS with
+	INITIAL_FRAME_POINTER_OFFSET.
+
+	* tm-vax.h (RTX_COSTS): Show shifts are relatively expensive.
+
+Fri Jun 22 15:05:24 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Makefile.in (GEN): New variable.
+	(P): New variable.
+	(cc1, cc1plus, cc1obj): Use $(P).
+
+	* cccp.c (check_macro_name): New subroutine taken from do_define.
+	(do_define, do_undef): Use this.
+	(do_undef): Warn if junk follows name.
+	(handle_directive): Always ignore empty directive.
+	Warn if \f or \v in directive.	Error for malformed directive name.
+
+	* tree.h (BUILT_IN_NEXT_ARG): Define it.
+	* c-decl.c (init_decl_processing): Declare __builtin_next_arg.
+	* expr.h (current_function_arg_offset_rtx): Declare it.
+	* function.c (assign_parms): Set that variable at end.
+	* expr.c (expand_builtin): Implement __builtin_next_arg.
+	* stdarg.h (va_start): Use __builtin_next_arg.
+
+	* c-decl.c (grokdeclarator): Check for TRADITIONAL_RETURN_FLOAT.
+
+Fri Jun 22 07:07:53 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* final.c (final_scan_insn): Put label for jump table in same section
+	(read-only data) as jump table.
+
+	* loop.c: Allow tm.h to define ..._BENEFIT and COPY_PENALTY.
+
+Wed Jun 20 13:03:53 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-apollo68.h (FUNCTION_ARG_PADDING): Never pad.
+	(STACK_BOUNDARY): Make it 32.
+	(CPP_SPEC): Add spaces.	 Define _APOLLO_SOURCE if not -ansi.
+
+	* c-common.c (check_case_value): New function.
+	* c-parse.y (stmt, when parsing case): Use that.
+	Add new rule for case range.
+
+	* reload1.c (reload_inheritance_insn): New variable.
+	(reg_reloaded_insn): New variable.
+	(choose_reload_regs): Update those variables.
+	(emit_reload_insns): Use them to remove deaths from insns
+	that used input reloads.
+	(reload_as_needed): Clear reg_reloaded_insn when necessary.
+
+	* m68k.md (ashlsi3, lshlsi3): Use add to self to shift one bit.
+
+	* dbxout.c (STAB_CODE_TYPE): New macro defined as type for stab codes.
+	Use in place of enum __stab_debug_code.
+
+Tue Jun 19 22:56:40 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (expand_increment): For preincrement, don't load value twice:
+	use TEMP as input to addition.
+
+Tue Jun 19 06:53:13 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* explow.c (adjust_stack, anti_adjust_stack): Use expand_binop instead
+	of gen_{add,sub}2_insn since the latter will abort if the constant is
+	out of range for the machine.
+
+Tue Jun 19 00:35:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* local-alloc.c (post_mark_life): Don't decrement DEATH
+	if it equals BIRTH.  Don't ever increment DEATH.
+
+	* varasm.c (output_constructor): Discard non_lvalue_expr, not nop_expr.
+	Handle missing values.	Use field in the tree_list, if any.
+	(output_addressed_constants): Don't die if value is missing.
+	* c-typeck.c (process_init_constructor): Handle index and field specs.
+	* c-parse.y (initlist): Parse them.
+
+Mon Jun 18 15:58:48 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c, cplus-decl.c (duplicate_decls):
+	Types don't "match" if one is error.
+
+	* c-parse.y (label_decl): Use new keyword __label__, not colon.
+
+	* c-parse.gperf (__label__): New keyword.
+
+	* mips.md (probe): Make a single insn, just a memref.
+
+Mon Jun 18 14:27:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (loop_optimize): Set max_luid to last luid + 1, as documented.
+
+	* local-alloc.c (qty_clobber): New variable.
+	(local_alloc): Allocate and initialize it.
+	(reg_is_set): Set qty_clobber for a clobber of a pseudo used only
+	in this insn.
+	(find_free_reg): Pass qty_clobber to post_mark_life.
+	(post_mark_life): If CLOBBER if non-zero, register isn't live after
+	its death insn.
+
+	* integrate.c (expand_inline_function): Don't call try_constants on
+	an insn that sets CC0 until we have processed the next insn.  Then
+	call it on both.  This is because the recognizer for these insns
+	may want to look at the user of CC0.
+
+Mon Jun 18 13:25:59 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* mips.md (ashlqi3, ashlhi3, one_cmplqi2, one_cmplhi2): Deleted.
+	(ashlsi3, ashrsi3, lshrsi3, neg*, one_cmplsi2): Simplified.
+	Don't output comments.	Use more specific predicates.
+
+	* mips.md (movsf, movdf): Use L, M codes to avoid #ifdef's.
+	Also simplify and don't output comments.
+	(anonymous patterns for those insns): Deleted.
+	(loading floating constant): New patterns added.
+	(move qi to si pattern): Deleted; ridiculous.
+	(movdi, movsi, movhi, movqi): No need to check for moving reg to self.
+
+	* mips.md (nop): Use .set noreorder to placate assembler.
+
+Sun Jun 17 20:01:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* gcc.c (set_spec): Don't use `name' for both old spec and name of
+	spec.  Use new var old_spec for the former use.
+	Don't use (char *) 0 for null spec; use a null string instead.
+
+	* jump.c (jump_optimize): Don't special-case deleting an ADDR_DIFF_VEC.
+	Merge code to detect trivial ADDR_VEC and ADDR_DIFF_VEC.
+	(mark_jump_label): Don't count the use of a vector table label in 
+	ADDR_DIFF_VEC.
+	(delete_insn): Can now handle ADDR_DIFF_VEC.
+	(delete_labelref_insn): New function.
+	(redirect_tablejump): Call new function to delete insn that references
+	the jump table.
+
+Sun Jun 17 01:19:26 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* genemit.c (gen_expand): Don't generate `operands' if size is 0.
+
+	* tm-i860.h (GO_IF_LEGITIMATE_ADDRESS): Displacement must be multiple
+	of the alignment of the operand.
+
+	* i860.md (signed bit field recognizers): Don't shift by >31 bits.
+
+	* out-i860.c (output_delayed_branch): Pass register properly to
+	load_opcode.
+
+	* mips.md (general/fp reg move patterns): Use codes L, M, D.
+	(movdi): Likewise.  And don't output useless comments.
+	Use the assembler temp reg for non-offsettable address.
+	(movsi, movhi, movqi): Output nothing for move from reg to itself.
+	Output li to load a constant.  Use `move' instead of `add'.
+	Don't output useless comments.
+	(load-address pattern): Deleted; handled by addsi3 pattern.
+
+	* mips.md (addsi3, mulsi3): Make both input predicates arith_operand
+	since they are commutative.
+	(andsi3, iorsi3, xorsi3): Likewise.
+
+	* tm-mips.h (MOST_SIGNIFICANT_WORD, LEAST_SIGNIFICANT_WORD): New.
+
+	* tm-mips.h (PRINT_OPERAND): New codes D, L, M.
+	* mips.md (anddi3, iordi3, xordi3): Use earlyclobber to stop overlap.
+	Use new print code D.
+
+	* mips.md (andsi3, iorsi3, xorsi3): Make predicates more specific.
+	(andhi3, ..., andqi3, ...): Patterns deleted.
+	(patterns for nor): New anonymous patterns.
+	* out-mips.c (uns_arith_operand): New function.
+
+	* mips.md (trunc*, zero_extend*, extend*, fix_trunc*, float*):
+	Use more specific predicates.
+
+	* mips.md (addhi3, ..., addqi3, ...): Patterns deleted.
+	(addsi3, subsi3, mulsi3, divsi3): Make predicates more specific.
+	Delete useless comments from assembler code.
+	Use more generic op codes rather than special cases such as addiu.
+	(divmodsi4, udivmodsi4, udivsi3, modsi3, umodsi3): New patterns.
+	(abssf2, absdf2): New patterns.
+
+Sun Jun 17 06:56:10 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (COST, rtx_cost, make_regs_eqv): Indicate that hard registers
+	in fixed_regs are even cheaper than pseudos.
+
+	* function.c (instantiate_virtual_regs_1): If valid, replace PLUS
+	whose second operand would be zero with its first operand.
+
+Sun Jun 17 00:17:03 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sdbout.c (sdbout_symbol): Get right regno for var-length object.
+
+	* combine.c (simplify_set_cc0_and): Strip SUBREGs, but only if
+	they truncate.	Handle ASHIFTRT like LSHIFTRT.
+	(try_combine): Call simplify_set_cc0_and in all those cases.
+	(subst): Handle (zero_extract (subreg (lshift (reg )))).
+
+Sat Jun 16 23:11:52 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.c (get_narrower, get_unwidened): Bit field test was backwards.
+
+Sat Jun 16 19:07:16 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold): Fix typo in test for distributing binary
+	operator over conditional and compound expressions.
+
+	* genoutput.c: Remove vestiges of obsolete and never used
+	INSN_MACHINE_INFO.
+
+	* rtl.def (MATCH_PARALLEL): Add new RTL code.
+	* genconfig.c (walk_insn_part): Support MATCH_PARALLEL.
+	* genemit.c (max_operand_1): Likewise.
+	(gen_exp): Just write operand for MATCH_PARALLEL.
+	(gen_expand, gen_split): Support MATCH_PARALLEL.
+	* genrecog.c (walk_rtx): Add support for MATCH_PARALLEL.
+	* genoutput.c (scan_operands): Suppport MATCH_PARALLEL
+	like MATCH_OPERATOR.
+	* genpeep.c (match_rtx): Add code to support MATCH_PARALLEL.
+	Don't write unnecessary cast to `rtx'.
+	* genrecog.c (add_to_sequence): Simplify handling of mode.
+	Support MATCH_PARALLEL.
+
+	* expr.c (move_block_{to,from}_reg): Support load/store multiple.
+	* function.c (instantiate_virtual_regs_1): If can't substitute
+	new pseudo for virtual register, try doing the substitution
+	globally throughout the entire insn.  This lets load/store multiple
+	insns refer to virtual registers in their addresses.
+	
+	* genrecog.c (write_split_tree, write_split_subroutine): Deleted.
+	(break_out_subroutines, write_subroutine, write_tree):	Accept
+	parameters that indicate whether we are making gen_split or gen_recog.
+	(main): Pass new parameters to break_out_subroutines and write_tree.
+
+	* final.c (final_scan_insn): Process insns that set CC whenever a
+	REG_CC_STATUS note is found; not only JUMP_INSNs can use CC.
+	When scanning REG_CC_STATUS insns, set cc_prev_status from cc_status
+	each time.
+
+	* recog.c (validate_replace_rtx): New function that tries to 
+	replace all occurrences of an object within an insn and see if the
+	resulting insn is valid.
+
+Thu Jun 14 06:58:26 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* optabs.c (emit_no_conflict_block): Write REG_NO_CONFLICT notes all
+	all insns in the block that modify the output.	Write them on the
+	final insn even if we don't put a REG_EQUAL note there.
+
+	* stmt.c (expand_return): Only distribute return down a conditional
+	expression if tail recursion is possible in a branch.
+
+	* expr.c (expand_expr): Remove obsolete reference to when we had
+	a shared structure-value slot.
+
+	* jump.c (get_label_before, get_label_after, follow_jumps): No longer
+	static.
+	* rtl.h: Define them.
+
+Mon Jun 11 17:35:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (INSN_LUID): Check for INSN_UID above the area that we
+	know about.
+	(loop_optimize): Cannot use INSN_LUID as lhs.
+	(scan_loop): If first jump is to label made by loop, we can't
+	tell if it is in range or not, so reject loop.
+	Reject loop if SCAN_START was an insn previously made by loop since
+	we won't know its luid.
+	Only call loop_reg_used_before if argument has known luid.
+	Mark partial invariant as global if its insn was made by loop.
+	(ignore_some_movables): Don't assume all invariants have luids.
+	(strength_reduce): Use no_labels_between_p instead of
+	labels_in_range_p.
+	Don't look at luid of insns for which one doesn't exist.
+	(valid_initial_value_p): Reject initializations in insns whose
+	luid we don't know.
+
+	* loop.c (product_cheap_p): Put all our rtl into a separate obstack
+	and free memory from it.  If we use current_obstack, we may free
+	memory allocated by gen_reg_rtx, which must be preserved.
+
+	* c-common.c (rewrite_for_merged_ref): A non-zero one-bit signed field
+	is -1, not 1.
+	* c-typeck.c, cplus-typeck.c (build_binary_op_nodefault): If can't
+	merge comparisons, don't use result of rewrite_for_merged_ref;
+	comparisons with zero are more efficient.
+
+	* protoize.c (main): Don't declare as extern.
+
+	* c-aux-info.c (gen_aux_info_record): Don't declare extern.
+
+	* genemit (gen_split): Rework to fix numerous bugs and typos.
+
+	* function.c (assign_parms): Avoid generating (PLUS foo (const_int 0)).
+
+Wed Jun	 6 20:03:31 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* gencodes.c (main): Count a code number for DEFINE_SPLIT.
+
+	* rtlanal.c (note_store): Pass SUBREG of a hard register to function.
+	(reg_overlap_mentioned_p): Handle receiving SUBREG of hard register.
+	* integrate.c (mark_stores): Likewise.
+	* local-alloc.c (reg_is_set, reg_is_born): Likewise.
+	* reload1.c (mark_not_eliminable): Likewise.
+
+	* loop.c (move_movables): Don't blow up if moving last real insn
+	in function.
+
+Wed Jun	 6 19:44:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gcc.c (default_compilers): Pass -traditional before -f*.
+	Delete -gg option.
+
+Sun Jun	 3 22:44:12 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (grokdeclarator): Warn about extern with initializer.
+
+Sun Jun	 3 22:32:19 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genrecog.c (main): Don't call write_tree with null if no insns
+	were in file.
+
+Sat Jun	 2 21:49:24 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, cases ABS_EXPR, MAX_EXPR, MIN_EXPR): Use target
+	unless zero or safe_from_p rejects it.
+	(expand_expr, conditional cases): Likewise.
+
+Sat Jun	 2 14:46:18 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (grokdeclarator): Handle const and volatile with parm
+	specified as function type.
+
+Fri Jun	 1 16:13:39 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtl.def (DEFINE_FUNCTION_UNIT): Change specifications so
+	it now is one per operation type, rather than one per
+	function unit.
+	* genattr.c (write_units): Write out new function names and
+	function unit table structure.
+	* genattrtab.c (struct function_unit_op): New structure.
+	(struct function_unit): Updated for new definition of
+	DEFINE_FUNCTION_UNIT.
+	(SIMPLIFY_TEST_EXP): New macro to reduce number of function calls
+	to simplify_test_exp.  Replace all call to the function with
+	uses of the macro.
+	(check_attr_test, make_alternative_compare): Show that EQ_ATTR with
+	attribute of "alternative", MATCH_OPERAND, and comparison cases can't
+	be simplified.
+	(expand_units, gen_unit, write_function_unit_info): Support new
+	meaning of DEFINE_FUNCTION_UNIT.
+	(simplify_test_expr): Rework AND and IOR cases to reduce rescans.
+	Once an expression has been simplified, set RTX_UNCHANGING_P so
+	we won't try simplifying it again.  Don't do this if INSN_CODE == -2.
+	(write_attr_set): Don't make a recursive call if we know that
+	the test we are writing will always be false.  Also clean up a bit.
+	(main): true_rtx and false_rtx don't need to be simplified.
+	Write gen_attr_... routines before special routines.
+
+Fri Jun	 1 14:17:48 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-sparc.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE):
+	Round frame size to multiple of STACK_BOUNDARY.
+
+Fri Jun	 1 09:38:51 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* optabs.c (emit_no_conflict_block): Place REG_NO_CONFLICT notes on
+	insn that contains REG_EQUAL note instead of insn doing computation.
+
+	* cplus-decl2.c, cplus-lex.c: Rename gettime to get_run_time.
+	Likewise for my_gettime to my_get_run_time.
+
+	* Makefile.in (varasm.o, calls.o, explow.o, integrate.o, loop.o):
+	These do not depend on insn-codes.h.
+	* function.c: Explicitly include insn-codes.h to make it clear that it
+	is needed for the values of the CODE_FOR_... macros.
+
+Thu May 31 12:59:28 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gnulib2.c (__trampoline): New function.
+	* Makefile.in (LIB2FUNCS): Compile it.
+	* tm-m68k.h (TRAMPOLINE_ALIGN): Define it.
+	* function.c (trampoline_address): Handle extra alignment.
+	* tm-m68k.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): 
+	Redefine to transfer via __trampoline.
+	(TRANSFER_FROM_TRAMPOLINE): Define it, for gnulib2.c.
+
+	* fold-const.c (fold): Preserve sign on constant when other terms
+	cancel (after call to split_tree).
+
+Thu May 31 12:39:51 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (preexpand_calls): Ignore BLOCK to avoid infinite recursion.
+
+	* function.c (assign_parms): Fix typo getting mode of result.
+
+	* cse.c (cse_basic_block): Don't go past TO if it is target of
+	followed jump.
+
+Wed May 30 21:31:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-parse.y (fndef, nested_function, notype_nested_function):
+	Use YYERROR1 instead of YYERROR. 
+	(YYERROR1): New macro.
+	* cplus-parse.y, objc-parse.y: Likewise.
+
+Tue May 29 21:53:19 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* optabs.c (expand_float): Don't use hard reg as intermediate.
+
+	* c-parse.y, objc-parse.y (yylex): Fix typo checking for ERANGE.
+	* cplus-lex.c (yylex): Copy current code for ERANGE from c-parse.y.
+
+	* toplev.c (get_run_time): Renamed from gettime.
+
+Mon May 28 15:47:48 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (emit_push_insn): Don't push by pieces if alignment
+	forces use of small pushes that do problematical padding.
+
+	* tm-sparc.h (SELECT_SECTION): Use TREE_SIDE_EFFECTS.
+	(STACK_POINTER_OFFSET): Now 68; does not include REG_PARM_STACK_SPACE.
+	(REG_PARM_STACK_SPACE): Now takes arg and has value.
+	(ACCUMULATE_OUTGOING_ARGS): Define this.
+	(FUNCTION_PROLOGUE, FUNCTION_EPILOGUE, EXIT_IGNORE_STACK): Use
+	current_function_outgoing_args_size, not ..._pretend_...
+	(INITIALIZE_TRAMPOLINE): Use size_int.
+
+	* varasm.c (make_decl_rtl, make_function_rtl): Run ENCODE_SEGMENT_INFO
+	if it is defined.
+
+	* tree.def (BIND_EXPR): Add operand, which holds the BLOCK.
+	* expr.c (expand_expr): When BIND_EXPR is seen, flag the BLOCK.
+	* dbxout.c (dbxout_block): Test the flag in the BLOCK.
+	* sdbout.c (sdbout_block): Likewise.
+	* symout.c (symout_function): Likewise.
+	* c-parse.y (stmt expr rule): Corresponding change.
+
+Sun May 27 20:53:16 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* caller-save.c (save_call_clobbered_regs): Correctly mark registers
+	live for multi-word pseudos.
+
+Sat May 26 13:42:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sdbout.c (sdb_begin_function_line): Now -1 if not in use.
+	(sdbout_end_function): Set it to -1.
+
+	* tree.def: Rename EXIT_STMT to EXIT_EXPR and likewise for LOOP_STMT.
+	Also LET_STMT to BIND_EXPR, and GOTO_STMT, LABEL_STMT, RETURN_STMT
+	to ..._EXPR.
+	(struct tree_stmt, struct tree_if_stmt, struct tree_bind_stmt):
+	(struct tree_case_stmt): Types deleted.
+
+	* tree.c (make_node, copy_node): Treat 's' like 'e' for size of node.
+	In make_node, make BLOCK and BIND_EXPR savable.
+	* expr.c (expand_expr): Rename, and use TREE_OPERAND to get body.
+	* cplus-init.c (build_vec_delete): Likewise, and build appropriately.
+	* print-tree.c (print_node): No special handling for these and IF_STMT.
+	* stmt.c (warn_if_unused_value): Likewise.
+
+	* tree.def (BLOCK): New tree code for binding blocks.
+	* tree.h (BLOCK_VARS, BLOCK_TYPE_TAGS):
+	(BLOCK_SUBBLOCKS, BLOCK_SUPERCONTEXT): Renamed from STMT_...
+	(STMT_...): Except for those, all deleted.
+	(BLOCK_CONTROLLER): Points to corresponding BIND_EXPR, if any.
+	(BLOCK_CHAIN): New macro.
+	* tree.c (build_block): Renamed from build_let.
+	(decl_type_context, decl_function_context): Corresponding change.
+	* print-tree.c (print_node): Likewise.
+	* c-decl.c, cplus-decl.c (poplevel): Likewise.
+	* integrate.c (copy_decl_tree): Likewise.
+	* function.c (setjmp_protect, uninitialized_vars_warning):
+	(instantiate_decls_1): Likewise.
+	* c-parse.y, cplus-parse.y, objc-parse.y (stmt expr rule): Likewise.
+	* dbxout.c (dbxout_block): Expect only BLOCKs in this tree.
+	Ignore those with controllers that are not marked used.
+	* sdbout.c (sdbout_block): Likewise.
+	* symout.c (symout_function): Likewise.
+
+	* tree.def: Delete IF_STMT, COMPOUND_STMT, WITH_STMT.
+	* expr.c (expand_expr): Delete handling of IF_STMT.
+	* tree.c (build_if, build_loop, build_case, build_goto): Deleted.
+	(build_expr_stmt, build_asm_stmt, build_return, build_exit): Likewise.
+	(build_compound): Likewise.
+	* cplus-init.c (build_vec_delete): Use COND_EXPR instead of IF_STMT.
+
+Sat May 26 13:23:12 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* calls.c (struct arg_data): Add new fields slot_offset and stack_slot.
+	(expand_call): Compute both location of start of stack slot and	the
+	place in the stack slot where the first byte of the argument will be
+	placed.
+	Use stack_slot when loading a BLKmode object into registers.
+	When loading into registers, don't check reg_parm_seen, just look
+	at args[i].reg.
+	(expand_call, store_one_arg): Save and restore stack slot starting
+	from beginning of slot, not begining location where arg is stored.
+	(store_one_arg): After calling emit_push_insn, argument is really
+	at arg->stack_slot instead of arg->stack because if we want to
+	load it into registers, we include any padding.
+
+Sat May 26 01:37:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.h (struct tree_type): Rename sep=>minval, sep_unit=>precision.
+
+	* tree.c (init_obstacks, init_tree_codes): init_tree split in two.
+	* toplev.c (compike_file): Call them.
+
+Fri May 25 16:40:45 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stor-layout.c (layout_record): Nuke excess set of DECL_FIELD_BITPOS.
+	* varasm.c (output_constructor): Bitpos is zero for array (field == 0).
+
+Fri May 25 00:48:45 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* final.c (final_scan_insn): Restore inadvertent deletion in change
+	of May 24th.
+
+Fri May 25 00:13:12 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* print-tree.c (print_node): Print some missing fields for decls.
+	(print_node_brief): Always print value of integer or real constant.
+
+Thu May 24 21:28:36 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fold-const.c (real_zerop): Function deleted; was redundant.
+
+	* tree.h (DECL_OFFSET): Macro deleted.
+	(struct tree_decl): Field deleted.
+
+	* c-typeck.c (build_unary_op): For ADDR_EXPR of COMPONENT_REF,
+	use DECL_FIELD_BITPOS and handle non-constant values.
+	* stor-layout.c (layout_record, layout_union): Likewise.
+	* expr.c (expand_assignment, store_constructor, expand_expr): Likewise.
+	* dbxout.c (dbxout_type): Likewise.
+	* sdbout.c (sdbout_one_type): Likewise.
+	* c-common.c (merge_component_comparisons, make_merged_ref): Likewise.
+	* print-tree.c (print_node): Likewise.
+	* varasm.c (decode_addr_const, output_constructor): Likewise.
+	* objc-actions.c (build_ivar_list_initializer): Likewise.
+	* cplus-typeck.c (build_component_addr): Likewise.
+	And preserve TREE_CONSTANT flag.
+	(unary_complex_lvalue): Likewise.
+	
+	* tree.h (DECL_FUNCTION_CODE): Use the frame_size field, not `offset'.
+	Now meaningful only if function is built in.
+	(DECL_BUILT_IN): New flag macro.
+	* c-decl.c (builtin_function): Set the flag.
+	(pushdecl, duplicate_decls): Use and set it.
+	* c-typeck.c, cplus-typeck.c (build_function_call): Test it.
+	* cplus-decl.c (define_function): Set the flag.
+	(pushdecl, duplicate_decls): Use and set it.
+	* expr.c (expand_expr, preexpand_calls): Test it.
+
+	* tree.h (DECL_INCOMING_RTL): New macro.
+	* function.c (assign_parms): Set up that field.
+	* dbxout.c (dbxout_parms, dbxout_reg_parms): Don't try to use
+	DECL_OFFSET for a parm; it is not set.	Use DECL_INCOMING_RTL.
+	(PARM_PASSED_IN_MEMORY): New macro.
+	* sdbout.c (sdbout_parms, sdbout_reg_parms): Likewise.
+	(PARM_PASSED_IN_MEMORY): New macro.
+
+	* cccp.c (macarg): When popping frame, free via free_ptr, not buf.
+
+Thu May 24 18:04:06 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (next_cc0_user): New function.
+	* recog.c (next_insn_tests_no_inequality): Use next_cc0_user.
+	* rtl.h: Define next_cc0_user.
+
+	* cse.c (cse_insn): Make canon_reg calls in separate loop over the
+	SETs to avoid problems when MATCH_DUPs are present in an insn
+	pattern.
+	Don't canon CLOBBER in PARALLEL.  Instead, canon MEM of CLOBBER,
+	both within a PARALLEL and standalone.	Also, call note_mem_clobbered
+	only for MEM.
+
+Thu May 24 13:08:25 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* gnulib2.c (__negdi2): Make this inline for other functions.
+
+Thu May 24 07:15:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (no_labels_between_p, prev_real_insn, next_real_insn):
+	(prev_active_insn, next_active_insn, next_label): Delete from here.
+	* rtlanal.c (no_labels_between_p): Put here.
+	* emit-rtl.c (prev_real_insn, next_real_insn, prev_active_insn):
+	(next_active_insn, next_label): Add to here.
+
+	* c-common.c: Define NULL so NULL_TREE macro will work.
+
+	* cplus-typeck.c (common_parms): Use oballoc and obfree to
+	avoid external current_obstack.
+
+	* cse.c (fold_cc0, cse_insn): Use HASH macro instead of call to
+	canon_hash.
+	(cse_insn): When just recording jump insn, show it doesn't set CC0
+	and set it as previous insn.
+
+	* genoutput.c (gen_split): Fix typo in comment.
+
+	* reorg.c: No longer need define next_label and next_real_insn as
+	extern.
+
+	* toplev.c (rest_of_compilation): Use DELAY_SLOTS instead of
+	obsolete HAVE_DELAYED_BRANCH; include insn-attr.h.
+
+	* final.c (dbr_sequence_length): Now present #ifdef DELAYED_BRANCHES.
+	Eliminate references to obsolete DBR_INSN_SLOTS.
+	(get_attr_length): Support ADJUST_INSN_LENGTH.
+	(get_attr_length, shorten_branches): Handle a SEQUENCE built for an
+	insn with filled delay slots.
+	(final_scan_insn): Avoid unnecessary call to recog_memoized.
+	Use validate_change instead of assuming replacement of CC0 by
+	STORE_FLAG_VALUE or const0_rtx is valid.
+
+Wed May 23 16:32:32 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* out-m68k.c, out-alliant.c (output_btst):
+	Use next_insn_tests_no_inequality, not next_insns_test_...
+	* recog.c (next_insns_test_no_inequality): Function deleted.
+
+Wed May 23 13:26:57 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expmed.c (store_bit_field): Don't bother making a SUBREG when we
+	call ourself recursively; the recursive call will just strip it off.
+
+	* reorg.c: Include insn-attr.h before testing DELAY_SLOTS.
+	(emit_delay_sequence): Assign new INSN_UID to the SEQUENCE.
+	Chain insns through the sequence via NEXT_INSN and PREV_INSN.
+	* emit-rtl.c (next_insn, prev_insn): Go inside a SEQUENCE to
+	find the next or previous insn.
+	(make_insn_raw): No longer static.
+	* rtl.h: Define make_insn_raw, prev_active_insn, next_active_insn,
+	next_insn, and previous_insn.
+
+	* genattrtab.c (write_eligible_delay): Always use "*delay_type";
+	annuling only applies to candidate insn, not insn needing slot.
+
+	* tree.c (init_tree): tree_node_counter doesn't exist any more.
+	(make_node, copy_node, make_tree_vec, build1): No longer set TREE_UID.
+
+Wed May 23 00:48:57 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* genemit.c, genextract.c: Add support for MATCH_OP_DUP and
+	DEFINE_SPLIT.
+
+	* cplus-init.c (build_delete): TREE_SIDE_EFFECTS can be
+	nonzero when address to be deleted is a cast of something
+	with side-effects (like a call).
+	(build_vec_delete): Simplify code now that `make_node' does the
+	right thing for _STMT nodes.
+
+Tue May 22 22:59:43 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_end_basic_block): Don't crash if NEXT_INSN of
+	our branch target is zero.
+	Don't skip scanning first insn after destination label of branch.
+
+	* expr.c (emit_move_insn): Abort if modes differ.
+	(expand_expr, comparison cases): Use TMODE when convenient.
+	(expand_expr, case COND): When optimizing (C ? 1 : 0), ensure
+	we return a result of the correct mode.
+
+	* integrate.c (expand_inline_function): Can't call try_constants for
+	JUMP_INSN since we may have changed RETURN to jump.
+
+Tue May 22 22:40:22 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.h (struct tree_common): Delete field `uid'.
+	(TREE_UID): Macro deleted.
+
+	* c-decl.c (finish_decl): Discard any variable sizes in the decl.
+
+	* calls.c (expand_call): When making reg_notes for const function,
+	don't test is_const twice, and take account of order of pushing.
+
+Tue May 22 21:41:48 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (eliminate_regs): Ensure we process pseudo that is first
+	operand of PLUS.
+
+	* expmed.c (store_bit_field): When stripping a SUBREG, adjust the
+	bit position to correspond to the change in modes.
+
+	* cse.c (rtx_cost): Use COSTS_N_INSNS macro.
+
+	* cse.c (qty_comparison_*): New vars.
+	(new_basic_block): Initialize qty_comparison_code.
+	(fold_rtx): If we see a comparison, check if we have seen the
+	same comparison before.	 If so, we know the result.
+	(record_jump_equiv): Save the comparison being passed in the
+	qty_comparison_* variables for possible later use by fold_rtx.
+	(cse_insn): If the current insn doesn't reference cc0, but the
+	previous insn sets it, delete the previous insn; presumably we
+	used to test it.
+	(cse_basic_block): Allocate new qty_comparison_* vars.
+
+	* reload1.c (eliminate_regs): Second arg is now mode of enclosing
+	MEM, if any, rather than simply flag indicating inside MEM.
+	Use this mode to determine amount that, e.g., PRE_DEC adjusts by.
+
+	* reload1.c (reload): Set regs_ever_live for a register that couldn't
+	be eliminated.
+	* final.c (only_leaf_regs_used): Don't do it here.
+
+	* reorg.c: Eliminate obsolete macros *_REORG_FUNCTION.
+	Entire file is conditional on #ifdef DELAY_SLOTS.
+
+	* Makefile.in: Use reorg.c instead of dbranch.c.
+
+Tue May 22 20:40:30 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-decl.c (complete_array_type): Get string elt size in bytes.
+
+Tue May 22 00:42:07 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* toplev.c (rest_of_compilation): Turn off VERBOSE arg to thread_jumps.
+
+	* objc-parse.y, objc-actions.c: Replaces uses of build with build1
+	when being used for 1-operand nodes.
+
+Mon May 21 23:59:21 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* global-alloc.c (hard_reg_full_preferences): New variable.
+	(global_alloc): Allocate and initialize it.
+	(prune_preferences): Include in regs_someone_prefers all words
+	of multi-word items that have preferences.  Don't includes registers
+	we also prefer unless they are prefered by an allocno that needs
+	more registers.
+	(set_preference): Set hard_reg_full_preferences also.
+
+Mon May 21 21:36:29 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tree.c (make_node): All ..._STMT nodes have side effects, type void.
+
+Mon May 21 16:03:23 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* integrate.c (expand_inline_function): Set insns_at_start before
+	processing parameters since it might be needed during that processing. 
+	Set RTX_INTEGRATED_P in all insns emitted, including labels and
+	barriers.
+	Ensure COPY is set correctly when replacing RETURN and avoid
+	duplicate barriers by calling emit_jump_insn instead of emit_jump.
+	Call note_stores for JUMP_INSNs and CALL_INSNs in case they have
+	side-effects we care about.
+	(copy_rtx_and_substitute): Convert (use (subreg FOO)) to (use FOO).
+	(subst_constants): Don't crash if we see a SUBREG replaced by a
+	REG or vice versa; we have no work to do in that case.
+	Fix typo in case MULT.
+
+	* recog.c (constrain_operands): Call reg_fits_class_p with original
+	mode of OP, not mode of SUBREG_REG (op) when OP is SUBREG.
+
+Mon May 21 14:25:14 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expmed.c (extract_bit_field): Use class of TMODE for simple reg case.
+
+	* flags.h (flag_pic): Declare it.
+	* tree.h (mode_for_size): Declare it.
+	* c-tree.h (merge_component_comparisons): Declare it.
+
+Mon May 21 07:27:12 1990  Michael Tiemann  (tiemann at cygnus.com)
+
+	* jump.c (thread_jumps): New function to optimize the case where one
+	conditional jump jumps to another testing the same condition.  This
+	function usefully optimzies code both before common subexpression
+	elimination (where it "finds" common subexpressions that cse won't
+	find) and after loop optimization (where the loop optimizer
+	introduces new conditional jumps after rearranging loops).
+	(rtx_equal_for_thread_p): cheaply builds equivalences between
+	register so that jump threading can be effectively run before cse.
+
+	* emit-rtl.c (init_emit_once): Initialize PIC_OFFSET_TABLE_RTX if
+	PIC_OFFSET_TABLE_REGNUM is defined.
+
+	* tree.c (build,build1,build_nt): Set TREE_RAISES in addition to
+	TREE_SIDE_EFFECTS.
+	({temp,saveable,perm}_tree_cons): Call `tree_cons' with arguments
+	instead of calling `make_node' directly.  Eventually, `tree_cons'
+	could be faster than `make_node'.
+	(get_identifier): Use `bcmp' instead of `strcmp', since it's
+	faster.	 Also, test the first letter of each string before calling
+	the string comparison function.
+
+	* toplev.c: Add new flags FLAG_THREAD_JUMPS and FLAG_PIC.  The
+	former gives better common sub-expression elimination while the
+	latter tells the compiler to emit position-independent code.
+	(rest_of_compilation): Thread jumps if requested.
+
+	* stor-layout.c (layout_{record,union}): For loop bodies meant only
+	for FIELD_DECLs, make sure we have a FIELD_DECL before proceeding.
+
+	* stmt.c (expand_end_case): Use ADDR_DIFF_VEC if FLAG_PIC is
+	nonzero.
+	@@ NOTE: This would look a lot nicer if CASE_VECTOR_PC_RELATIVE were
+	an expression (like zero/nonzero) instead of soley a #define.
+	(fixup_cleanups): If cleanups emitted no code, don't call
+	`reorder_insns'.
+	(expand_decl_cleanup): Return 0 in case we are not in a block
+	(but instead at top-level).
+
+	* stack.h: New GNU C++ file.
+
+	* rtl.c (REG_NOTE_NAMES): Add REG_CC_STATUS and REG_TAIL_CALL.
+	* rtl.h: Ditto.	 Also make external declaration of
+	pic_offset_table_rtx.
+	* rtl.def: Add the following new RTL codes: DEFINE_SPLIT,
+	MATCH_OP_DUP, LO_SUM and HIGH.
+
+	* reorg.c: New file.  Performs instruction reorganizations
+	(primarily branch scheduling) after register allocation.
+
+	* local-alloc.c (local_alloc): If defined, execute
+	ORDER_REGS_FOR_LOCAL_ALLOC.
+
+	* genrecog.c (struct decision): Extended to handle DEFINE_SPLITs.
+	(write_tree): Split into three subroutines: `write_tree_1' which
+	does the main work, `write_tree' which does the original job, and
+	`write_split_tree' which builds the recognizer for insn splitting.
+	(add_to_sequence): Handle MATCH_OP_DUP.
+	(main): Bui.Build both insn->insn_code and insn->insn_list
+	recognizers.
+	Also, fixed comment at the top of the file.
+	* genpeep.c (main): Handle DEFINE_SPLIT.
+	(match_rtx): Handle MATCH_OP_DUP.
+	* genoutput.c (main): Handle DEFINE_SPLIT.
+	* genconfig.c (main): Handle DEFINE_SPLIT and MATCH_OP_DUP.
+	* genattrtab.c (main): Handle DEFINE_SPLIT.
+
+	* fold-const.c (various places): Use `build1' constructor instead of
+	`build' constructor whenever possible.
+
+	* final.c (final_scan_insn): If we know the status of the condition
+	codes at a particular JUMP_INSN (by dint of the fact that it has a
+	REG_CC_STATUS note), set CC_STATUS to reflect that value.
+	(only_leaf_regs_used): @@ For some reason the frame pointer register
+	is not marked live, even when it is.  If FRAME_POINTER_NEEDED is
+	nonzero, set REGS_EVER_LIVE[FRAME_POINTER_REGNUM] to 1.
+
+	* expr.c (emit_library_call): Round ARGS_SIZE.CONSTANT up, not down.
+	Use new macro MAX to accomplish this.
+	(safe_from_p): Don't check that EXP is nonzero.	 Instead, make
+	caller check (only in one place) that argument to `safe_from_p' is
+	non-zero.
+	(expand_expr): In COND_EXPR case, make sure that the predicate is
+	safe from the two conditions.  Lossage occured in a construct of the
+	form (c = c < 0 ? d : -d).
+
+	* explow.c (plus_constant): Handle LO_SUM rtl.
+
+	* c-typeck.c (build_binary_op_nodefault): If optimizing, try merging
+	component refs and/or comparisons into larger operations.
+
+	* c-common.c (rewrite_for_merged_ref): New function.  Canonicallizes
+	expressions to be recognizable as candidates for merged
+	COMPONENT_REF operations.
+	(make_merged_ref): Builds custom FIELD_DECLs for accessing multiple
+	bits in a byte simultaneously.
+	(merge_component_comparisons): Optimize COMPONENT_REFs in
+	expressions that look like (x.p == y.p && x.q == y.q) or
+	(x.p != y.p || x.q != y.q).  Also optimize (x.p == c1 && x.q == c2),
+	where C1 and C2 are known constants.
+
+	* c-lang.c (print_lang_statistics): Added new hook function.
+	Currently does nothing for C.
+
+	* c-convert.c: Use `build1' constructor instead of `build'
+	constructor whenever possible.
+
+	* cplus-typeck.c (build_binary_op_nodefault): Call this function for
+	better applicability of the merged component ref optimization. 
+	Also, add more recognized cases.
+
+	* cplus-type2.c (merge_component_comparisons): Code improved, and
+	moved to c-common.c.
+
+	* cplus-parse.y (operator_name): Recognize `operator,'.
+	(expr): On parsing ',', call `build_x_compound_expr' instead of
+	`build_compound_expr'.
+	(various places): Call `note_decl_list_got_semicolon' instead of
+	`note_decl_got_semicolon' where object in question is a list instead
+	of a type.
+	(component_declarator0): Set CURRENT_DECLSPECS from the bitfield
+	type.
+
+	* cplus-method.c (hack_wrapper): Rename parameter TYPE to CNAME,
+	since it is a type name we pass in, not a type.
+
+	* cplus-lex.c (opname_tab): Add `operator,'.
+	(note_decl_list_got_semicolon): Make notation that a list of
+	declarations should be considered as having "gotten a semicolon".
+	(extract_interface_info,interface_strcmp): Commented.
+
+	* cplus-init.c (build_delete): Rest of changes to reimplement new
+	destructor mechanism.
+	(build_vbase_delete): Fix bug whereby arrays of length 0 and 1 were
+	not being correctly handled.  Also, where elsements were not being
+	deleted.  Use new destrouct calling convention.
+	(various places): Change TYPE_HAS_CONSTRUCTOR to
+	TREE_HAS_CONSTRUCTOR where appropriate.
+
+	* cplus-expr.c (cplus_expand_expr): Use `emit_block_move' to copy
+	data from RETURN_TARGET to CALL_TARGET in case they do not line up
+	normally.
+
+	* cplus-decl2.c (finish_file): No need to call `build_vbase_delete'
+	on top-level objects anymore, since destructors now do the right
+	thing.
+
+	* cplus-decl.c (finish_function): Implement new destructor
+	mechanism: destroy virtual baseclass objects if (in$charge & 2) is
+	nonzero.  Deallocate if (in$charge & 1) is nonzero.
+
+	* cplus-cvt.c (build_up_reference): Use TREE_HAS_CONSTRUCTOR, not
+	TYPE_HAS_CONSTRUCTOR on non-TYPE tree nodes.
+	(build_up_reference): Only build up references between compatible
+	types.	I.e., don't build a char& to an int object.
+	(convert_to_aggr): Set the TREE_SIDE_EFFECTS bit if the result is a
+	CALL_EXPR.
+
+	* cplus-class.c (build_vbase_path): Recover from bad parse errors.
+	(build_method_call): Implement new ctor/dtor semantics to allow
+	differentiation between tearing an object down and deallocating it.
+	This also means that ctors and dtors can now aviod going through the
+	virtual function table mechanism as they construct/destruct their
+	objects.
+
+	* ALL GNU C++ files: Use new macro IDENTIFIER_TYPE_VALUE to lookup
+	type value of an identifier.  Also implement related macros
+	IDENTIFIER_HAS_TYPE_VALUE, and IDENTIFIER_TYPEDECL_VALUE.
+
+	* cplus-cadillac.c (cadillac_switch_source): Change Prototype
+	declaration to non-prototype declaration.
+	(readable_p): Ditto.
+
+Sun May 20 20:23:39 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (c_sizeof): For incomplete type, warn and return 0.
+	(c_sizeof): Similar.
+
+Sun May 20 17:20:48 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (gen_highpart): Support SUBREG like gen_lowpart.
+
+Sun May 20 16:59:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* c-typeck.c (build_c_cast): Warn about pointer-integer casts 
+	where size differs.
+
+	* stor-layout.c (layout_type): Multi-word field doesn't force BLKmode.
+
+	* expmed.c (extract_bit_field): Use mode_for_size for lsb-aligned
+	fields in regs.	 No longer knows explicit modes for this.
+
+Sun May 20 15:12:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* Makefile.in: (reload1.o): Now depends on output.h.
+
+	* calls.c (expand_call): No need to set frame_pointer_needed.
+
+	* emit-rtl.c (gen_rtx): If reference to sp, ap, or fp, use
+	appropriate already-made rtx (e.g., stack_pointer_rtx).
+
+	* expr.c (expand_builtin, case BUILT_IN_ALLOCA): No need to set
+	frame_pointer_needed.
+
+	* final.c (final_start_function): No longer round size of frame here.
+	(final_scan_insn): Call constrain_operands with new operand.
+
+	* flow.c (life_analysis): Change test on whether sp is live or
+	not to depend on FRAME_POINTER_REQUIRED and -fomit-frame-pointer.
+	(This code may not be relevant any more.)
+
+	* function.c (push_function_context, pop_function_context): No need
+	to save and restore frame_pointer_needed.
+	(assign_{outer_,}stack_local): No need to set frame_pointer_needed.
+	(assign_parms): Likewise.
+	(init_function_start): Don't initialize frame_pointer_needed here.
+
+	* function.h (frame_pointer_needed): Deleted.
+
+	* genattrtab.c (write_attr_case): Write call to constrain_operands
+	with new second argument (reload_completed).
+
+	* global-alloc.c (global_alloc): Don't left fp be allocated if we
+	already know we can't eliminate it.
+	(find_reg): Argument LOSERS is now a HARD_REG_SET instead of an	array.
+	Precompute HARD_REG_SETs before loop over registers to speed up
+	allocation.
+	(retry_global_alloc): Argument FORBIDDEN_REGS is now a HARD_REG_SET.
+	(check_frame_pointer_required): Deleted; no longer needed.
+
+	* integrate.c (save_for_inline, output_inline_function): No longer
+	need to save and restore frame_pointer_needed.
+
+	* local-alloc.c (block_alloc): No longer have to worry that having
+	a stack variable might cause a frame pointer to be needed when it
+	might otherwise not be.
+	(find_free_reg): Don't allocate into registers that may be eliminated
+	later even if they are not FIXED_REGS.
+
+	* output.h: Define reload_completed.
+
+	* recog.c (constrain_operands): Add new argument, STRICT.  If zero
+	and the constraints could not be matched, try again with a less
+	strict view (i.e., assume that reload will fix those things that
+	it can).  This allows attribute values to be obtained prior to
+	reload.
+	Don't call alter_subreg or assume it has been called.  Instead,
+	look inside SUBREGs.
+
+	* reload.c (find_reloads_address{,_1}): Handle an address that
+	is a MEM; it may have been produced by register elimination.
+	(find_reloads_address): sp can also be the base register for a
+	stack slot.
+	(form_sum): No longer static.
+
+	* reload1.c: Rewrite code that performs frame pointer elimination.  Do
+	it during reload to ensure that all addresses and operands remain
+	valid; also generalize to support more than one pair of eliminations.
+	(reg_equiv_stack_slot, bad_spill_regs): New vars.
+	(forbidden_regs): Now a HARD_REG_SET.
+	(struct elim_table): New structure to describe register eliminations.
+	(reload): Start scanning registers after virtual registers.
+	Initialize reg_equiv_stack_slot for each register.  Compute
+	reg_equiv_{mem,address} during register scan only if not eliminating
+	registers.
+	Compute initial default value of frame_pointer_needed.
+	Round frame size to BIGGEST_ALIGNMENT.
+	Create obstack for scratch rtl created by register elmination.
+	Initialize elimination table and spill registers that we know can't
+	be eliminated.
+	On each scan of the insns: Reset all elimination entries to initial
+	offsets, compute reg_equiv_{mem,address}, and see if any potentially
+	eliminable register changed status.
+	Try to eliminate registers from each insn unless we know that none
+	can be eliminated.
+	Don't complete groups for spill registers from registers that
+	shouldn't be used as spill registers.
+	Call reload_as_needed if register eliminations can be done, even if
+	no reloads are needed.
+	(new_spill_reg): Don't allow spilling an eliminable register.
+	Don't set forbidden_regs here.
+	Indicate something changed if a register that wasn't ever used before
+	was made a spill register.
+	(eliminate_frame_pointer, {alter,fix}_frame_pointer_address): Deleted.
+	(delete_dead_insn): New function.
+	(alter_reg): Call it.
+	Always set reg_equiv_stack_slot; if not eliminating registers, also
+	set reg_equiv_{mem,address}.
+	(eliminate_regs, eliminate_regs_in_insn): New functions.
+	(spill_hard_reg): Add new argument, CANT_ELIMINATE.
+	Set bit for register being spilled in forbidden_regs.
+	Use new argument instead of seeing if we are spilling fp.
+	No longer need to have frame pointer just because a reg needs a
+	stack slot.
+	(order_regs_for_reload): Set bad_spill_regs to contain those registers
+	that can't be used for spill registers.
+	Consider any eliminable register as bad to use as a spill register.
+	Rework initialization of potential_reload_regs.
+	(reload_as_needed): Handle register elimination in a similar manner
+	as function reload.
+	(gen_input_reload): When generating a reload for a PLUS, first try to
+	use a three-operand add insn.  If that fails, emit two two-operand
+	insns.
+
+	* rtl.h (FUNCTION_FLAGS_FRAME_POINTER_NEEDED): Deleted; all others
+	renumbered.
+
+	* stmt.c (expand_decl): No longer have to set frame_pointer_needed
+	for variable-sized decl.
+
+	* stupid.c (stupid_find_reg): Don't try to allocate an eliminable
+	register.
+
+	* tm-vax.h (INITIAL_FRAME_POINTER_OFFSET): Add definition.
+
+	* recog.c (next_insn_tests_no_inequality): If no next insn, return 0.
+
+	* print-tree.c (print_node): Set length for TREE_VEC.
+
+	* calls.c (store_one_arg): Set arg->value to location where argument
+	was placed (either register or stack).
+
+	* recog.c: Needs flags.h (for flag_pretend_float):
+	* Makefile.in (recog.o): Likewise.
+
+	* expr.c (convert_move): Add missing RETURN statements.
+
+Sat May 19 14:26:31 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case EXIT_STMT): Return rather than falling
+	out of switch statement (and into `binop').
+
+	* cse.c (cse_insn): Allow conditional branches to be turned into
+	noops when the condition is known false by not calling validate_change.
+
+	* cse.c (fold_rtx): Add LABEL_REF to list of fast RTL codes.
+
+Sat May 19 12:41:44 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-i386gas.h (ASM_OUTPUT_ALIGN): Use log as arg to .align.
+	(ASM_OUTPUT_ALIGN_CODE): Likewise.
+
+	* gcc.c (default_compilers): For .cc, pass -g* to cc1.
+
+Sat May 19 06:51:26 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* tree.c (push_obstacks, pop_obstacks): Put struct obstack_stack
+	in obstack instead of using xmalloc/free.
+	(init_tree): Initialize new obstack for {push,pop}_obstacks.
+
+	* tree.c (simple_cst_list_equal): No longer static.
+
+Fri May 18 19:38:01 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.h (MUST_PASS_IN_STACK): Refine test for case where padding
+	requirement prohibits passing in register.
+
+Fri May 18 18:14:18 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fixincludes: Fix CAT macro in memvar.h.
+
+Fri May 18 16:13:59 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (do_jump): Don't explicitly copy item being tested from
+	MEM to REG.  If needed, this will be done later.
+
+Thu May 17 14:33:50 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (bootstrap): Pass LANGUAGES to inner makes.
+
+Thu May 17 13:57:34 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fixincludes: Handle _CTRL like CTRL.
+
+Wed May 16 21:09:42 1990  Richard Kenner  (kenner at vlsi1.ultra.edu)
+
+	* fold-const (fold): Two conversions in a row are needed if from an
+	integer type to a pointer type of a different precision.
+
+Wed May 16 16:09:47 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* expr.c (expand_expr): Make sure a volatile value is referenced
+	even if value is ignored.
+
+	* c-typeck.c (truthvalue_conversion): Result COND_EXPR gets type int.
+	(invert_truthvalue): Simplify COND_EXPR.
+
+Tue May 15 00:25:03 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* stor-layout.c (layout_record): Do set TYPE_SIZE if size is var.
+
+	* reload.c (push_reload): If insn is an asm, verify that CLASS
+	is at least possible for the specified mode.
+
+	* c-decl.c (complete_array_type): Compensate for wide string constant.
+
+	* final.c (leaf_function_p): Reject everything if profiling.
+
+	* function.c (optimize_bit_field): Adjust OFFSET if
+	BITS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
+
+	* expmed.c (store_bit_field, extract_bit_field): Rework the code
+	to adjust XBITPOS for the size within which to count.
+	(extract_bit_field): When converting MEM to REG, don't make SUBREG
+	immediately; fall through and let this happen in the code that
+	handles original registers of the wrong mode.
+
+Mon May 14 16:01:13 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cexp.y (yylex): Ignore carriage return.
+	* cccp.c (initialize_char_syntax): Likewise.
+	(newline_fix, name_newline_fix): Likewise.
+
+	* c-common.c: New file.
+	(combine_strings): Moved here.	Fix errors for wide string length.
+	* c-parse.y, objc-parse.y, cplus-lex.c: Function deleted here.
+
+Sun May 13 08:08:41 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* integrate.c (subst_constants): Fix typo in case 'E'.
+
+Sat May 12 17:14:26 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* combine.c (subst): Don't change -(y-x) to x-y for IEEE floats.
+	Include real.h.
+
+	* cse.c (fold_rtx): Don't simplify float+0, float-0, float*0
+	if using IEEE floating point.
+	Don't simplify float-self even if not IEEE.
+	* fold-const.c (fold): Likewise.
+
+	* i386.md (trunc**): Use long move if source is constant.
+	* out-i386.c (PRINT_REG): Handle CODE == 'k'.
+
+	* fixincludes: Use rm -fr to delete before making link.
+
+	* optabs.c (init_optabs): Support MULDI3_LIBCALL, etc.
+
+Sat May 12 17:04:58 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (find_best_addr): Don't modify constant address MEMs; they
+	are shared.
+
+Sat May 12 15:17:37 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* ns32k.md (signed bitfield extract): Don't output assembler comment.
+
+Fri May 11 15:23:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* Makefile.in: Don't use $(libsubdir) as a target since it involves
+	shell `...` constructs.
+
+	* genattr.c (fatal, main): Remove relics of old program name.
+	* genattrtab.c: Likewise.
+
+	* expr.c (expand_expr, case COND_EXPR): Add missing argument to
+	operand_equal_p.
+
+	* reload.c (form_sum): Handle case where second operand is
+	(plus foo (const_int ...)).
+
+	* c-typeck.c (c_sizeof{,_nowarn}, c_alignof): Don't blow up for
+	ERROR_MARK.
+	* cplus-typeck.c (c_sizeof{,_nowarn}, c_alignof): Likewise.
+
+	* cplus-typeck.c (c_sizeof{,_nowarn}): Convert from bytes to chars,
+	since c defines sizeof (char) as 1.
+
+	* loop.c (mark_loop_jump): RETURN, SIGN_EXTEND, and ZERO_EXTEND can
+	also occur in JUMP_INSN's.
+
+	* reload.c (find_reloads, find_reloads_address): Correct errors where
+	an arg to find_reloads is "VOIDmode" instead of "0" and vice versa.
+	(find_reloads_address_1): Likewise.
+
+	* global-alloc.c (global_alloc): Avoid divide-by-zero for allocnos
+	where all regs have reg_live_length == -2.
+
+Fri May 11 14:45:06 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* tm-i860.h (ASM_OUTPUT_CASE_LABEL): Align to multiple of 4.
+
+Thu May 10 23:43:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* out-i860.c (single_insn_src_p, strict_single_insn_src_p):
+	Correct conditions for needing multiple instructions.
+	(output_delayed_branch): Likewise.
+
+See file ChangeLog.1.
+
+Local Variables:
+mode: indented-text
+left-margin: 8
+fill-column: 76
+version-control: never
+End:
diff --git a/gcc/ChangeLog.3 b/gcc/ChangeLog.3
new file mode 100644
index 0000000..346311a
--- /dev/null
+++ b/gcc/ChangeLog.3
@@ -0,0 +1,8063 @@
+Fri Jul 19 18:56:14 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (canon_reg): Allow for recursive call returning 0 (if we had
+	an EXPR_LIST).
+	* sched.c (init_aliases_analysis): Ignore REG_EQUAL note when its value
+	is an EXPR_LIST.
+	* unroll.c (loop_iterations): Likewise.
+
+	* rs6000.md (andsi3): Fix typo in and-with-cc pattern.
+
+Fri Jul 19 11:23:22 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* toplev.c (set_target_switch): For TARGET_OPTIONS, set the
+	variable to the variable part of the actual option.
+	* tm-m88k.h, out-m88k.c: Change the use of m88k_short_data.
+
+	* varasm.c (output_constant_def): Merge get_or_assign_label and
+	delete it.  Ensure that ENCODE_SEGMENT_INFO is evaluated before
+	SELECT_SECTION.
+
+Thu Jul 18 19:57:45 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* expr.h (MUST_PASS_IN_STACK_BAD_PADDING): Definitions were backwards.
+
+Thu Jul 18 17:52:46 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* unroll.c: Fix typos in comments.
+	(splittable_regs_updates): New static global variable.
+	Indicates the number of instructions that modify a split biv
+	remaining during the last iteration of a loop, so that the last one
+	can be handled specially.
+	(unroll_loop): Allocate and clear it.
+	(copy_loop_body): Use it to determine how to rewrite an insn
+	modifying a split iv.
+	(find_splittable_regs): When a splittable biv is identified, set it
+	equal to the number of insn modifying the biv.
+	(find_splittable_givs): When a splittable giv is identified, set
+	it to one if this giv is a reg.
+	
+	* unroll.c (copy_loop_body): Instead of trying to special case
+	insns that use start_label, use the label_map to map the start
+	label to the appropriate label for all insns except those that
+	must be inverted and redirected.  The former code did not handle
+	tablejumps that used the start_label correctly.
+
+	* integrate.c (copy_rtx_and_substitute): Don't legitimize an
+	address inside of an ADDRESS rtx.  This fails, because this need
+	not be a validate address, but it is always valid in the context
+	it appears in.
+
+Thu Jul 18 08:13:56 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* toplev.c (set_target_switch): Support TARGET_OPTIONS for command
+	options with values.
+
+	* varasm.c (output_constant_def): Set flags with
+	ENCODE_SEGMENT_INFO for strings and constructors.
+	* tm-mips.h (ENCODE_SEGMENT_INFO): Must be a VAR_DECL.
+
+	* out-m88k.c, tm-m88k.h, m88k.md: Implement a global pool approach
+	to short addressing.
+
+	* m88k.md (extendsfdf2, truncdfsf2): Use fsub rather than fadd.
+	This conforms to IEEE 754 in all rounding modes except round to
+	negative infinity whereas fadd conforms only in that mode.
+
+Thu Jul 18 01:01:37 1991  Eric Youngdale (youngdale at v6550c.nrl.navy.mil)
+
+	* make-cc1.com: Add command line to compile reg-stack.c, and add
+	reg-stack.obj to the list of files passed to the VMS linker.
+
+Thu Jul 18 00:11:00 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (enquire.o): Need not depend on gnulib.
+	(gnulib2): Renamed from gnulib2.portable.
+	Don't do ranlib.
+	(gnulib2.portable): Just refers to gnulib2.
+	(gnulib1.portable): Don't do ranlib.
+
+Wed Jul 17 11:19:09 1991  Michael Meissner  (meissner at geech.gnu.ai.mit.edu)
+
+	* Makefile.in (gcc): Do a -dumpspecs after building gcc so that -B./
+	will override any installed specs in /usr/local/lib.
+	(mostlyclean): Delete *.cpp files which are left if you use
+	-save-temps.
+
+Wed Jul 17 06:08:33 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): When putting I2 and/or I1 into NEWPAT,
+	check for a PARALLEL; if so, just put in the relevant SET instead
+	of making a PARALLEL containing a PARALLEL.
+
+Tue Jul 16 18:58:51 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (record_value_for_reg): Show we haven't seen the death
+	of a register once we have seen it modified.
+
+	* reload1.c (reload): If we decide to put a pseudo which used to have
+	a MEM equiv onto the stack, set SOMETHING_CHANGED and reprocess all
+	eliminations and pseudos without scanning the insns.
+
+Tue Jul 16 13:17:14 1991  Michael Meissner  (meissner at wookumz.gnu.ai.mit.edu)
+
+	* cplus-decl.c (sigsegv): Make signal handler void for full
+	prototyping systems.
+
+Tue Jul 16 12:25:18 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_symbol): Ignore types with no names of any kind.
+
+Tue Jul 16 07:12:52 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* stmt.c (pushcase, pushcase_range): Return label in *DUPLICATE,
+	not integer value.
+
+	* rtlanal.c (reg_referenced_p, reg_overlap_mentioned_p): Allow X to
+	be (cc0) or (pc).
+
+	* combine.c (subst, case SET): Delete code to remove "unnecessary"
+	SUBREG; code was incorrect and this is done (corrected below) in
+	simplify_comparison.
+	(simplify_comparison): Can only remove SUBREG for equality comparisons.
+
+	* expr.c (expand_expr, case COND_EXPR): If condition has side effects,
+	ensure we evaluate it before evaluating an arm of the COND_EXPR.
+
+Mon Jul 15 21:59:36 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* rtl.h (FUNCTION_FLAGS_RETURNS_STRUCT): Fix typo in value.
+
+Mon Jul 15 22:18:40 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cccp.c (main): Ignore CPATH if -nostdinc.
+
+Mon Jul 15 22:00:02 1991  Michael Meissner  (meissner at churchy.gnu.ai.mit.edu)
+
+	* reload.c (find_reloads): Fix typo (reg_sets_p instead of
+	reg_set_p).
+
+Mon Jul 15 21:49:09 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-parse.y (stmt): Emit the nop for the start of a loop
+	only after the line number.
+
+Mon Jul 15 16:50:51 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edn)
+
+	* rtlanal.c (reg_set_p): If we are passed an insn, only pass the
+	pattern to note_stores.
+
+	* local-alloc.c (validate_equiv_mem): A CALL_INSN invalidates all
+	memory.
+
+Sun Jul 14 06:34:47 1991  Richard Kenner  (kenner at vlsi1.ultra.hyu.edu)
+
+	* cse.c (last_jump_equiv_class): New variable.
+	(record_jump_equiv): Set it.
+	(cse_insn): Clear it.
+	(cse_around_loop): Invalidate all entries in last_jump_equiv_class.
+	(cse_set_around_loop): Ensure our replacement is cheaper.
+
+Sat Jul 13 17:15:30 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* cplus-decl.c (finish_enum): Fix typo in arguments for finish_decl.
+	* cplus-class.c (finish_struct): Likewise.
+
+Fri Jul 12 16:45:02 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_symbol): Don't crash when DECL_NAME is 0.
+
+Fri Jul 12 15:38:24 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (do_tablejump): Don't write BARRIER between jump and table
+	if they must remain adjacent.
+
+	* varasm.c (make_decl_rtl): Set REG_USERVAR_P when register name
+	is specified.
+	* integrate.c (subst_constants): Don't substitute for a user
+	variable assigned to a hard register.
+
+	* reload.c (find_reloads): Add new vars no_{input,output}_reloads to
+	indicate when the corresponding reload type is not permitted; reject
+	an alternative that would try such a reload.
+	* rs6000.md (decrement-and-branch): No longer need kludges to
+	avoid output reloads.
+	Use '0' instead of 'c' for input 1 in alternative 0.
+	Allow operand 0 to be in non-general register.
+	
+Fri Jul 12 10:54:39 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* c-decl.c (finish_struct, finish_enum): Fix typo in arguments for
+	finish_decl.
+
+	* i386.md (bit test patterns): Delete bit tests using implicitly
+	masked bit number operand: the hardware doesn't work like that.
+
+Fri Jul 12 09:50:43 1991  Michael Meissner  (meissner at spiff.gnu.ai.mit.edu)
+
+	* tm-hp9k2bsd.h (toplevel): Remove RCS HISTORY log.
+
+Thu Jul 11 00:46:48 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-parse.y (yylex): Do try signed int for ANSI nondecimal constants.
+
+	* c-typeck.c (record_format_info): The first time, use xmalloc.
+
+Wed Jul 10 18:54:26 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): Fix typo in "if (...) x = a; else x = b;"
+	case: had temp3 instead of temp4.
+
+	* cplus-lex.c (lineno, end_of_file): Move definition to before
+	first use.
+	(reinit_parse_for_block): Variable `c' must be int to ensure EOF fits.
+	* cplus-input.c (getch): Remove extraneous declaration of end_of_file.
+
+	* reload1.c: Include insn-flags.h.
+	(emit_reload_insns): Handle the case where we reload an entire
+	address; use "reload_load_address" pattern, if it exists.
+	Remove explicit SImode reference; should have been Pmode, but
+	IN can be used instead of rebuilding it.
+	* Makefile.in (reload1.o): Includes insn-flags.h.
+
+	* reload.c (find_reloads): If replacing an output REG with a MEM,
+	write a CLOBBER for the REG after the insn.
+	* reload1.c (eliminate_regs): Add new arg INSN; if nonzero, add a
+	CLOBBER when replacing a REG in SET_DEST with a MEM.
+	(reload, eliminate_regs_in_insn): Add new arg to eliminate_regs.
+	* dwarfout.c (output_bound_representation, location_attribute):
+	Likewise.
+	
+	* reload1.c (reload): If a reg_equiv_memory_loc isn't strictly valid
+	and isn't sufficiently simple, use a stack slot instead.
+	(alter_regs): Don't delete reg_equiv_init insns here.
+	(reload_as_needed): Do it here.
+
+	* stor-layout.c (get_best_mode): Correct test for alignment.
+
+	* loop.c (move_movables): Don't get confused by NOTE insns in gnulib
+	call sequence.
+
+Wed Jul 10 18:40:32 1991  Matthew Self  (mself at geech.gnu.ai.mit.edu)
+
+	* cccp.c (enum node_type):  Added T_WARNING.
+
+	* cccp.c (directive_table):  Added #warning.
+
+	* cccp.c (do_warning):  Print warning message and continue.
+
+Wed Jul 10 18:38:28 1991  Matthew Self  (mself at geech.gnu.ai.mit.edu)
+
+	* c-parse.y, objc-parse.y (attrib):  Pass "format" attribute
+	through.  Takes one identifier and two constants as args.
+	identifier must be either printf or scanf.
+
+	* c-common.c (decl_attributes):  Process "format" attributes.
+	Call new routine record_format_info().
+
+	* c-typeck.c (struct function_info):  Changed function_ident field;
+	store identifier node rather than char * to speed lookup.
+	Renamed arg_num field to format_num.  Replaced is_varargs field
+	with new first_arg_num field.
+
+	* c-typeck.c (check_format):  Modified to use new arg_num and
+	first_arg_num fields.
+
+	* c-typeck.c (record_format_info):  New routine.  Replaces static
+	table of functions to check.
+
+	* cplus-typeck.c (record_format_info):  New stub routine so c++
+	will link.  Someone should implement format checking for c++.
+
+	* c-typeck.c (init_format_info_table):  New routine to add
+	entries for ANSI functions to table.
+
+	* c-decl.c (init_decl_processing):  Call init_format_info_table().
+
+	* c-typeck.c (build_function_call):  Modified to use dynamic table
+	rather than static one.  Compare identifier nodes rather than
+	using strcmp().
+
+	* gcc.texinfo ():  Document "format" attribute.
+
+	* c-typeck.c (check_format):  Call warning() directly rather than
+	returning the warning string.  This way we can give multiple warnings
+	by continuing.  Several changes to make continuing safe.
+
+	* c-typeck.c (build_function_call):  Incorporated changed return
+	value of check_format().
+
+	* c-typeck.c (check_format):  Check for NULL format string.
+
+Wed Jul 10 16:40:54 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* sdbout.c (sdbout_tags): Delete this and use the TYPE_DECL
+	representation of tagged types.  Types are now output in their
+	original lexical order.
+	(sdbout_symbol): Return early (only using sdbout_one_type) when a
+	tagged type is encountered.
+	(sdbout_block, sdbout_symbol): Don't use sdbout_tags.
+	* toplev.c (compile_file): Don't use sdbout_tags.
+	* varasm.c (assemble_function): Don't use sdbout_tags.
+
+Wed Jul 10 15:13:33 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_tags): Function deleted.  Calls deleted too.
+	(dbxout_tagged_type): New function.
+	(dbxout_symbol): Call that.
+	* toplev.c (compile_file): Call to dbxout_tags deleted.
+
+	* c-parse.y (yylex): Simplify choice of type for integers.
+	When traditional, all integers are signed unless explicitly unsigned.
+
+Wed Jul 10 13:35:27 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* configure (m88k-svr4): Needs make-m88ksvr4.
+	* make-m88ksvr4: New file.
+
+Wed Jul 10 13:18:03 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-decl.c (duplicate_decls): Warn if `inline' is not consistent.
+
+	* cccp.c (hack_vms_include_specification): Fix typos.
+
+Tue Jul  9 22:21:22 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (find_and_verify_loops): RETURN insns aren't listed in
+	loop_number_exit_labels, so don't try to remove JUMP_LABEL of a
+	RETURN from that list.
+
+	* rtlanal.c (reg_referenced_between_p): New function.
+	* jump.c (jump_optimize): Use it instead of reg_used_between_p when
+	checking for "if (...) x = a; else x = b;" case.
+
+Tue Jul  9 13:03:53 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* expr.c (move_block_to_reg): Don't force_const_mem on non-constant.
+
+Tue Jul  9 09:13:32 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* c-decl.c (finish_struct): Record tagged types as a TYPE_DECL
+	with a NULL DECL_NAME.
+	(finish_enum): Ditto.
+	* cplus-decl.c (finish_enum): Ditto.
+	* cplus-class.c (finish_struct): Ditto.
+
+	* dbxout.c (dbxout_symbol): Ignore TYPE_DECLs for tagged types.
+	* cplus-dbxout.c (dbxout_symbol): Ditto.
+	* sdbout.c (sdbout_symbol): Ditto.
+
+	* toplev.c (compile_file): DECL_NAME may be null.
+
+	* dwarfout.c (output_symbol): Use output_dies_for_tagged_type for
+	TYPE_DECLs of tagged types.
+	(dwarfout_output_tagged_type): Deleted.
+	(output_dies_for_tagged_type): Mark TREE_ASM_WRITTEN early.
+
+Mon Jul  8 19:36:44 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* jump.c (jump_optimize): Check for extra labels when detecting
+	"if (...) x = a; else x = b;".  Include the insn for "x = a;" when
+	testing for data conflict.
+
+Mon Jul  8 19:34:14 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* integrate.c (copy_for_inline, case MEM): Must copy a MEM even if
+	it has a constant address if that address involves a LABEL_REF.
+
+	* rtlanal.c (reg_set_p): Only check for REG_INC notes and a CALL_INSN
+	if we are passed an insn.
+	* local-alloc.c (optimize_reg_copy): Remove tests now done in
+	reg_set_p.
+
+Mon Jul  8 16:38:49 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-parse.y (yylex): Pedantic warning here for `asm'.
+	No warning for `__asm__'.
+	(maybe_type_qual, maybeasm, extdef): No warning here.
+
+	* objc-actions.c: Rename OBJC_SELS_R_INTS to OBJC_INT_SELECTORS.
+	Rename OBJC_UNIQUE_SELS to OBJ_NONUNIQUE_SELECTORS, reversing sense.
+	Eliminate OBJC_SELS_R_STRUCT_PTRS.
+
+Mon Jul  8 06:37:00 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtlanal.c (reg_{used,set}_between_p): Allow FROM_INSN == TO_INSN;
+	return 0 in that case.
+
+	* jump.c (mark_jump_label): Fix typo in use of GET_RTX_LENGTH.
+
+	* reload.c (reload_strict_low): Change comment to say that this is
+	always zero; we don't use it any more.
+
+Sun Jul  7 22:14:13 1991  Michael Meissner  (meissner@churchy.gnu.ai.mit.edu)
+
+	* tm-mips.h (FRAME_POINTER_REQUIRED): Fix typo that required a frame
+	if alloca was not called, instead of the reverse.
+
+Sun Jul  7 17:14:17 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cccp.c (struct file_buf): New field system_header_p.
+	Everything that pushes on instack now initializes this field.
+	(finclude): New arg to set that field.  Callers changed.
+	(do_include): Pass that arg as 1 for <...>, else 0.
+
+	* cccp.c (do_include): Warn for first use of #import
+	except in system header files.
+	(handle_directive): Support #import if compiling for Next.
+
+	* cccp.c (do_pragma): For #pragma once, warn it is obsolete.
+
+Sun Jul  7 14:29:04 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* tm-att386.h (NO_DOLLAR_IN_LABEL): Define this here,
+	* tm-i386sco.h (NO_DOLLAR_IN_LABEL):    not here.
+
+Sun Jul  7 06:20:03 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtlanal.c (reg_set_p): Return 1 if REG is found in a REG_INC
+	note or if INSN is a CALL_INSN and REG is a hard reg.
+	(reg_set_last): Only return a register or constant; if returning a
+	register, ensure it isn't modified between the SET we found and INSN.
+
+	* jump.c (jump_optimize): If SMALL_REGISTER_CLASSES, don't make a
+	store-flag insn if any register involved is a hard reg.
+
+Sat Jul  6 14:51:15 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_assignment): Don't abort for volatile structure field
+	even if the structure is in a register.
+	NOTE: This leaves the problem of implementing whatever meaning
+	a volatile field should actually have.
+
+	* fold-const.c (div_and_round_double): Make lnum and lden unsigned.
+	Use the small-denominator algorithm only for denom < 2**24.
+	Fix backward conditionals in ?: operators in general case.
+	Change i + j to i - 1 + j when indexing num.
+
+Fri Jul  5 21:36:57 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* genpeep.c (match_rtx, case MATCH_OP_DUP): Output semicolon after
+	"goto" statement.
+
+Fri Jul  5 09:45:56 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.md (andsi3): Bias alternatives so we always prefer constants.
+	(define_splits of DImode, SFmode, and DFmode): Don't split
+	unless after reload.
+	(ashldi3, lshrdi3): Fix bugs in instruction order; use & in
+	output constraint so can't conflict with operand 2; use '0'
+	constraint to allow operands 0 and 1 to be the same register.
+
+	* regclass.c (reg_n_sets): Move definition before use.
+
+	* reorg.c (fill_simple_delay_slots): Candidate for delay slot cannot
+	set anything set between it and the delay insn.
+
+	* jump.c (jump_optimize): In "if (...) x = a; else x = b;", correctly
+	specify range to check if X is used or set.
+	Use rtx_equal_p to check for matching X.
+
+Thu Jul  4 15:55:45 1991  Tom Wood  (wood at geech.gnu.ai.mit.edu)
+
+	* cccp.c (default_include): Add /usr/mach/include for MACH systems.
+
+	* configure (m88k-luna): Needs make-m88kluna.
+	* make-m88kluna: New file.
+
+	* dwarf.h: New file derived from the UNIX International
+	Programming Languages Special Interest Group DWARF specification.
+	* dwarfout.c (includes): Include "dwarf.h".
+	(subscript_data_attribute): Use FMT_CODE to encode array subscripts.
+	(languagribute): LANG type no longer provided by dwarf.h.
+	(output_source_file_die): Determine proper language attribute.
+
+Thu Jul  4 12:14:16 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* cplus-xref.c: define rindex if USG
+
+Thu Jul  4 12:36:55 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gcc.c (process_command): Correctly split -L from its arg.
+	* SWITCHES_NEED_SPACES: New host machine option.
+	This really ought to be defined now for certain hosts,
+	but I don't know which ones they are.
+
+Wed Jul  3 23:31:00 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* tm-m68k.h (ASM_OUTPUT_FLOAT): Check CROSS_COMPILE (there was a typo).
+
+Wed Jul  3 22:05:55 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_binary_operation, case MINUS): Fix typo in op number.
+
+	* cse.c (cse_basic_block): Correctly handle the case where TO
+	was a label with zero uses at the end of the function.
+
+	* combine.c (significant_valid): New variable.
+	(combine_instructions): Turn significant_valid off until after
+	we finished computing reg_significant.
+	(significant_bits): Ignore reg_significant when significant_valid
+	is zero.
+
+	* rtlanal.c (reg_set_last): Go past CALL_INSN as long as we are not
+	looking for a hard register.
+
+Wed Jul  3 21:07:18 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* sched.c (schedule_block): When computing what registers are dead
+	at the end of the current block, correctly handle REG_DEAD notes
+	that refer to multi-word hard registers.
+
+	* loop.c (mark_loop_jump): When invalidating loops with multiple
+	entries, must invalidate every nested loop containing the target
+	of a loop entry jump, except for those that also contain the jump
+	itself.
+
+	* loop.c (record_giv): When computing whether a giv is
+	replaceable, check whether the biv update has a valid luid, and
+	mark it as not replaceable if not.
+
+	* combine.c (gen_rtx_combine): Call rtx_alloc instead of gen_rtx,
+	because it is much faster, especially on some RISC machines.
+
+	* fixincludes: Add optional argument which indicates where to put
+	the fixed include files.  Echo the directory name where the
+	include files will be put.
+
+	* cccp.c (struct default_include): Don't examine
+	STANDARD_INCLUDE_DIR or /usr/local/include when
+	NO_STANDARD_INCLUDE_DIR is defined.  This is useful when building
+	cross compilers. 
+	(main): Only send SIGPIPE signal if the SIGPIPE signal exists on
+	the host.
+	(rescan, handle_directive, skip_if_group, validate_else,
+	skip_to_end_of_comment, macarg1, discard_comments): Accept '//' as
+	a comment in Objective-C as well as C++.  The Objective C language
+	specifies that '//' starts a comment.
+
+	* .gdbinit (ptn): Define new macro to print out the name of a type
+	node.
+
+	* stab.def: Correct errors in table for values of DSLINE and
+	BSLINE.  Document the conflict between BROWS and BSLINE.  Document
+	the value of the BROWS field.
+
+Tue Jul  2 23:26:20 1991  Michael Meissner  (meissner at pogo.gnu.ai.mit.edu)
+
+	* mips-tfile.c (toplevel): Add a comment explaining the MIPS ECOFF
+	file format at the start of the file.
+
+Tue Jul  2 14:00:39 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_array_ref): Report error here if the "array"
+	is not an array or pointer.  Don't leave this for the PLUS_EXPR.
+
+	* cccp.c: Inlcude containing file names/lines in error messages.
+	(print_containing_files): New function.
+	(error*, warning): Call it.
+	(finclude): Increment input_file_stack_tick when file changes.
+
+	* cccp.c: Include descrip.h.
+
+Tue Jul  2 07:44:19 1991  Tom Wood  (wood at geech.gnu.ai.mit.edu)
+
+	* tm-m88k.h (ASM_OUTPUT_SOURCE_LINE): Define only for SDB.
+	* tm-m88kdgux.h (AS_BUG_*): Support these for now.
+
+	* c-decl.c (finish_struct): Invoke dwarfout_output_tagged_type
+	only when producing DWARF debugging info.
+	* cplus-class.c (finish_struct): Ditto.
+
+Mon Jul  1 23:03:34 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* toplev.c (compile_file): Close stack_reg_dump_file iff STACK_REGS.
+
+Mon Jul  1 15:17:57 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (set_significant): Ignore CLOBBERs.
+	(simplify_and_const_int, case SUBREG): Only ignore paradoxical SUBREGs
+	if BYTE_LOADS_ZERO_EXTEND.
+	(record_value_for_reg): Fix typo; had I for REGNO.
+
+Mon Jul  1 08:28:09 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* final.c (output_source_line): Output DWARF line numbers.
+
+	* dwarfout.c (dwarfout_output_tagged_type): New function.
+	* c-decl.c (finish_struct): Call it.
+	* cplus-class.c (finish_struct): Call it.
+
+	* dwarfout.c (includes): Need insn-config.h and reload.h.
+	(location_attribute): Use eliminate_regs for correct expression.
+	(output_bound_representation): Use SAVE_EXPR_RTL to get rtl and
+	then use eliminate_regs.
+
+	* reload1.c (reload): When finished, indicate reg_equiv_constant
+	and reg_equiv_memory_loc are no longer valid.
+	(eliminate_regs): Don't attempt use of reg_equiv_constant or
+	reg_equiv_memory_loc if they aren't valid.  No longer static.
+	* reload.h: Declare eliminate_regs.
+
+	* toplev.c (compile_file): Only call dwarfout_file_scope_symbol
+	for VAR_DECLs. 
+
+Sun Jun 30 15:49:39 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* expr.c (expand_builtin, case BUILT_IN_MEMCPY): If alignment test
+	fails, and function was really BUILT_IN_STRCPY, zero out length
+	parameter before expanding call.
+
+Sun Jun 30 18:27:14 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu)
+
+	* jump.c (jump_optimize): In "if (...) x = a; else x = b;", don't
+	move the "x = b;" if the test modifies X or if X is a hard register
+	and SMALL_REGISTER_CLASSES is defined.
+	Turn "if (...) x = 1; else {...} if (x) ..." code on when we have cc0.
+
+Sun Jun 30 13:49:03 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gnulib2.c (__builtin_saveregs):
+	For i860, make data structure fit in with va-i860.h.
+
+	* tree.c (gcc_obstack_init):
+	Support OBSTACK_CHUNK_ALLOC and OBSTACK_CHUNK_FREE.
+
+	* calls.c (prepare_call_address): 3rd arg now address of chain var.
+	(expand_call): Call changed.
+	* expr.c (emit_library_call): Call changed.
+
+	* function.c (fix_lexical_addr): In recursive call, pass slot address.
+
+	* Makefile.in (cse.o): Added deps.
+
+	* Makefile.in (GNULIB2_CFLAGS): Use -O2.
+
+	* gnulib1.c, gnulib2.c (abort): Undefine only if defined.
+
+	* genattr.c (main): Fix typo in comment end.
+
+Sat Jun 29 21:57:28 1991  Torbjorn Granlund  (tege at zevs.sics.se)
+
+	* longlong.h (__sparc8__ umul_ppmm): Insert 3 nop:s for wr delay.
+	* longlong.h (___IBMR2__): Define umul_ppmm, add_ssaaaa, sub_ddmmss..
+	* longlong.h (__sparc__): Don't call .umul; expand asm instead.
+	  Don't define __umulsidi3 (i.e. use default definition).
+
+Sat Jun 29 06:25:19 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* tm-vax.h (CPP_SPEC): New macro.
+	(LIB_SPEC): Handle -mg.
+
+	* cccp.c (install_builtins): Fix backward test of objc.
+
+	* fold-const.c (size_int): No need to test sign of NUMBER.
+
+	* gcc.c (process_command): Split -L from its arg.
+
+	* gcc.c (S_ISREG): Define if not defined.
+	(delete_temp_files): Use it.
+
+	* limits.h (UCHAR_MAX, CHAR_MAX, USHRT_MAX): Delete `U'.
+	(LONG_MAX, ULONG_MAX): Add `L'.
+
+Fri Jun 28 22:22:58 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile (realclean): Delete stage1, stage2, stage3.
+
+	* gcc.c (fatal) [HAVE_VFPRINTF]: Do print program name.
+
+Fri Jun 28 15:34:08 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* out-sparc.c (output_block_move): Correctly handle the case where
+	the size is not a CONST_INT, and has a value of 0.
+
+	* flags.h (flag_no_inline): Modify comment to match the one in
+	toplev.c.
+
+	* integrate.c (copy_rtx_and_substitute): When creating new rtx,
+	make sure all of the new bitfields are copied, e.g.
+	REG_LOOP_TEST_P, LABEL_OUTPUT_LOOP_P, etc.
+
+	* loop.c (loop_optimize): Call reg_scan after
+	find_and_verify_loops, because it may change register lifetimes.
+	(find_and_verify_loops): After moving a block of code outside the
+	loop, must readjust the loop_number_exit_label and
+	LABEL_OUTSIDE_LOOP_P data of the modified jump and the moved jump.
+	toplev.c (rest_of_compilation): Delete reg_scan call before
+	loop_optimize.
+
+Fri Jun 28 13:16:37 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-mips.h (toplevel): Add target_flags to externals declared.
+	(toplevel): Add dslots_number_nops, mips_load_reg{,2},
+	mips_fill_delay_slot external declarations for delay slot reorg.
+	(CC1PLUS_SPEC): By default, pass -fno-gnu-binutils to cc1plus.
+	(TARGET_FLAGS): Add -mwc8, -mwc16, -mwc32 to set size of wchar_t,
+	though the switches are not used right now.
+	(TARGET_FLAGS): Add -msoft-float code from rfg@ncd.com to compile
+	on systems w/o floating point.
+	(TARGET_FLAGS): -mdebugf suppresses filling load delay slots.
+	(HARD_REGNO_OK): Relax constraints, allow anything in GP
+	registers, anything in even FP registers, int's only in multiply
+	and divide registers, int/CC in the FPSW register.
+	(FRAME_POINTER_REQUIRED): Require frame if alloca is called for
+	now.
+	(REG_CLASS_FROM_LETTER): Index from an array (mips_char_to_class)
+	instead of having lots of ?:'s.  Also, allow 'd' to signify GP
+	registers.
+	(ENCODE_SEGMENT_INFO): Only record things being in small data/bss
+	if -mgpOPT (-O sets by default), -O, and -G xx where xx > 0.
+	(FINAL_PRESCAN_INSN): Rework to automatically not fill the
+	previous instruction's load delay slots with nop's if it is safe.
+	(ASM_OUTPUT_LABEL): If compiling collect, don't use assemble_name.
+	(ASM_GLOBALIZE_LABEL): If compiling collect, don't use
+	assemble_name.
+	(ASM_OUTPUT_LABELREF_AS_INT): Define this for collect.
+	(ASM_OUTPUT_INT): If collect, don't use output_addr_const.
+
+	* mips.md (all floating point): If -msoft-float, don't allow any
+	floating point builtin operations.
+	(all patterns): Use 'd' constraint to limit things to GP
+	registers, rather than 'r'.  This allows unions of
+	float/int/double to occupy any registers.
+	(*extend*): Call mips_move_1word to handle loads, which in turn
+	sees if we can omit the load nop.
+	(fix_trunc*): Redo, since register allocator can handle moving to
+	the appropriate register set.
+	(movdf_xfer*): Use explicit return's instead of falling through
+	and having the appropriate value in a register from the previous
+	call.
+	(movsf_xfer*): New patterns to accomidate unions of floats and
+	int's.
+	(movsi_unaligned): New define_expand to call either movsi_ulw or
+	movsi_usw.  Also, if not a memory operation, use movsi.
+	(movsi_ulw): Set up to omit load delay nop if we can.
+	(movsi_usw): Use memory_operand instead of simple_memory_operand.
+	Also, allow storing 0 to an unaligned location.
+	(various move patterns): mips_move_1word now takes a third
+	argument to specify whether a load should sign or zero extend.
+	(call_value): Use register_operand on return value.
+	(probe): Turn into define_expand, and set a register to the
+	contents of memory pointed to by the stack pointer with volatil
+	set.
+
+	* out-mips.c (toplevel): Add new global variables:
+	dslots_number_nops, mips_load_reg{,2}, mips_regno_to_class,
+	mips_char_to_class.
+	(simple_memory_operand): If not optimizing, no global memory
+	reference is assumed to be in the GP area.
+	(mips_fill_delay_slot): New function to tell FINAL_PRESCAN_INSN
+	the current insn is a load and may need a nop.
+	(mips_move_1word): Take a third argument to say whether load byte
+	and load half-word sign extend or zero extend.  Change all
+	callers.  If this is a load, call mips_fill_delay_slots to
+	schedule the nops.  Change all return's to setting a variable, and
+	falling through to the end.
+	(mips_move_2words):  If this is a load, call mips_fill_delay_slots
+	to schedule the nops.  Change all return's to setting a variable,
+	and falling through to the end.
+	(function_arg): if -msoft-float, floating point is passed in GP
+	registers.
+	(override_options): Initialize mips_char_to_class.
+	(print_operand): %( and %) no longer do .set nomacro.
+	(print_operand): %# prints #nop if gas or -mstats.
+	(print_operand): Check for too many %), %], and %>'s.
+	(compute_frame_size): Allocate space in stack to hold FP, just in
+	case we later need a FP and previously thought we could eliminate
+	it.
+	(save_restore): Take a string to indicate the 2word load/store to
+	use, but don't use it at present.  Change all callers.  Home
+	varargs registers with sd if we can.
+	(function_epilogue): Deal with one or more outstanding nop's from
+	FINAL_PRESCAN_INSN.
+	(function_epilogue): Revamp -mstats output format.
+	(function_epilogue): Zero new global variables.
+
+	* make-decrose (toplevel): Sort make variables.
+	(CLIB): Add -lld library.
+	(LANGUAGES): Add build of collect-osf and g++.
+	(ULTRIX_DIR): Change internal work directory location.
+	(cplus-lex.o): Don't optimize to avoid problem with 1.39 compiler.
+	(collect-osf): Add rules to build OSF/rose version of collect.
+
+	* make-mips (LANGUAGES): Add build of g++.
+
+	* tm-decrose.h (SIZE_TYPE): Specify to be long unsigned int.
+	(PTRDIFF_TYPE): Specify to be long int.
+	(WCHAR_TYPE): Specify to be long unsigned int.
+
+	* sdbout.c (plain_type_1): Add support for unknown tags if
+	SDB_ALLOW_UNKNOWN_REFERENCES is defined.  The MIPS ECOFF support
+	needs this, but standard COFF typically doesn't allow unknown
+	references.
+
+	* gcc.texinfo (Debugging Info): Document
+	SDB_ALLOW_UNKNOWN_REFERENCES and SDB_ALLOW_FORWARD_REFERENCES.
+
+	* collect-osf.c (whole file): New file to provide collect support
+	on OSF/rose.
+
+Fri Jun 28 09:20:18 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* configure (m88k-luna): New target.
+	* tm-m88kluna.h: New file for the Omron Luna/88k.
+	* xm-m88k.h: Don't use USG for the luna88k.
+
+	* tm-m88kdgux.h: DG/UX implements coff and elf.  Currently elf is
+	a strange variant of coff that's non-standard (it uses SDB
+	debugging info for example).  Soon, the DG/UX elf will support
+	DWARF.  These changes provide transitional support for all three.
+	(DWARF_DEBUGGING_INFO, SDB_DEBUGGING_INFO): Define both.
+	(VERSION_0300_SYNTAX): True when -msvr4 and -mversion-03.00.
+	* tm-m88ksvr4.h (ASM_FILE_END, ASM_OUTPUT_DWARF_LINE): Move these
+	to tm-m88k.h.  They are dwarf specific.
+	* tm-m88k.h (TARGET_SWITCHES): Add -mversion-03.00 and -mdwarf.
+	(OVERRIDE_OPTIONS): If using version 03.00 syntax, assume DWARF_DEBUG.
+
+	* tm-m88k.h (REG_ALLOC_ORDER): Adapt slightly for using r26-r29.
+
+	* out-m88k.c (m88k_debugger_offset): Don't complain if the base
+	register is optimized away.
+
+Thu Jun 27 21:43:36 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (memref_referenced_p, memref_used_between_p):
+	New functions.
+	(update_equiv_regs): Call memref_used_between_p.
+
+Thu Jun 27 19:59:36 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* print-tree.c (print_node): Changed the various "lang_#" strings to
+	indicate which of several possible fields are being examined; new
+	strings are "tree_#", "decl_#", "type_#".
+
+Thu Jun 27 15:05:43 1991  Michael Meissner  (meissner at churchy.gnu.ai.mit.edu)
+
+	* xm-mips.h (ONLY_INT_FIELDS): Define if not compiling with GCC
+	since the MIPS compiler treats enum bitfields as signed.
+
+Wed Jun 26 19:48:16 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* sched.c (memrefs_conflict_p): Explicitly handle case where both
+	X and Y are CONST.
+	(sched_analyze_2): Do create dependencies for insns with REG_EQUIV
+	notes.
+	(sched_note_set): Correctly handle the case where the destination
+	register is a multi-word hard register.
+	(attach_deaths): Don't add a REG_DEAD note to an insn with a
+	REG_UNUSED note that mentions the same register.  Correctly handle
+	the case where the destination register is a multi-word hard
+	register.
+	(schedule_block): Also call sched_note_set for CLOBBERs when
+	computing which registers are dead at the end of the basic block.
+	Also call sched_note_set for USEs when computing what registers
+	are still live after a just scheduled insn.
+	(regno_use_in): New function, subroutine of split_hard_reg_notes.
+	Searches an rtx for any reference to the given register, and
+	returns the register rtx used if any.
+	(split_hard_reg_notes): New function.  Handles the case where a
+	multi-word hard register with a REG_DEAD note gets split.  Creates
+	a new REG_DEAD note for each part of the original hard register
+	used by the split insns.
+	(new_insn_dead_notes): Don't add a REG_DEAD note to an insn with a
+	REG_UNUSED note which mentions the same register.
+	(update_links): Add call to new function split_hard_reg_notes.
+	Correctly handle the case when the dest of the original insn was a
+	multi-word register which was split in the split insns.  In this
+	case, the dest is no longer killed here, so must remove the
+	REG_DEAD on the last previous insn in this basic block which used
+	dest, if any such exists.
+
+	* unroll.c (reg_dead_after_loop): Check that a CODE_LABEL which is
+	the target of a JUMP_INSN has a non-zero PREV_INSN field before
+	trying to derefence it.  Fail if there is no previous insn.
+
+	* loop.c (scan_loop): Fix typo.
+	* local-alloc.c (optimize_reg_copy): Likewise.
+	* global-alloc (hard_reg_copy_preferences): Likewise.
+	* gcc.texinfo (REG_LOOP_TEST_P): Likewise.
+	* optabs.c (expand_float): Likewise.
+	* tm-vaxv.h (ASM_OUTPUT_ASCII): Likewise.
+
+	* out-sparc.c (output_move_double): Sign extend CONST_INTs that
+	feed DImode targets.
+	* tm-sparc.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept a LABEL_REF
+	as a legal address.  Also, delete obsolete parts of preceeding
+	comment.
+
+	* reload1.c (alter_reg): Only try to delete the reg_equiv_init
+	insn if it hasn't already been deleted by a previous call to
+	delete_dead_insn.
+
+	* toplev.c (main): Handle -gdbx in addition to -gsdb for
+	orthogonality.
+	* gcc.texinfo: Document -gdbx.
+
+Tue Jun 25 09:57:08 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (casesi): Don't emit a barrier; the dispatch code must
+	adjoin the table.
+	* tm-m88k.h (DONT_REDUCE_ADDR): Don't use this.
+	(CONDITIONAL_REGISTER_USAGE): The PIC register is also call-used.
+	* out-m88k.c (m88k_layout_frame): Save the PIC register.
+
+Tue Jun 25 07:40:43 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* function.c (expand_function_end): FNDECL should
+	be CURRENT_FUNCTION_DECL.
+
+	* combine.c (find_split_point): If we see an AND operation as the
+	first operand of some non-AND operation, use it as a split point.
+	(subst): Add counter to limit restarts, go to restart more often.
+	(subst, case AND): If we get (ior (and (X C1) C2)) and can't
+	restart more than once, rewrite with C1 as small as possible and exit.
+
+	* cse.c (cse_end_of_basic_block): Don't put branch in our path more
+	than once.
+	(cse_main): Clear PATH_SIZE when skipping a block.
+	(cse_basic_block): Use GET_RTX_CLASS.
+
+Tue Jun 25 07:39:29 1991  Matthew Self  (mself at next.com)
+
+	* varasm.c (const_hash, compare_constant_1, record_constant_1):
+	For ADDR_EXPR's, don't hash address of SYMBOL_REF.  Only use
+	offset and name of symbol.  This allows constructors which
+	contain pointers to identical string literals to be uniqued.
+
+	* loop.c (loop_optimize, init_loop):  Moved call to
+	gcc_obstack_init() from loop_optimize() to init_loop().
+
+	* reload1.c (reload, init_reload):  Moved call to
+	gcc_obstack_init() from reload() to new function init_reload().
+
+	* toplev.c (compile_file):  Call new function init_reload().
+
+Mon Jun 24 16:05:57 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* stmt.c (expand_end_stmt_expr): Fix typo in comment.
+
+	* reload1.c (modes_equiv_for_class_p): Only fail if registers in
+	CLASS that can hold ALLOCATE_MODE can't also hold OTHER_MODE.  Do
+	not fail for the reverse test.  ALLOCATE_MODE is always a larger
+	or same size mode as OTHER_MODE, and will be the mode that reload
+	uses when allocating spill registers.  Rewrite comments to explain
+	new behaviour.
+	(reload): Change call to modes_equiv_for_class_p to match new
+	semantics.
+
+	* combine.c (simplify_shift_const): When simplifying (ashiftrt
+	(ashift inner_const_int) const_int), was checking the wrong number of
+	high order bits of inner_const_int.  Also correct typos in comments.
+
+	* c-convert.c (convert_to_integer): Must also check ARG1 for
+	unsignedness, because ARG0 could be a constant when EXPR is a
+	MINUS_EXPR.
+
+	* combine.c (try_combine): When splitting, it is not safe to use
+	I2DEST if it is referenced by NEWPAT.
+
+	* combine.c (distribute_notes): After converting REG_DEAD notes to
+	REG_UNUSED notes, clear PLACE if it already has a REG_UNUSED note,
+	to prevent adding a duplicate REG_UNUSED note.
+
+	* gcc.texinfo (SIGNED_CHAR_SPEC): Document.
+
+Mon Jun 24 10:02:32 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_set_around_loop): Ensure the insn we find in front
+	of the loop does the set in the proper mode.
+
+	* optabs.c (expand_float): Always do conversions to FMODE in the
+	signedness of the input.
+
+	* reload.c (find_reloads, find_reloads_toplev): If reg_equiv_address
+	is not a constant address, copy it in case it is shared.
+
+	* reload1.c (eliminate_regs): Copy reg_equiv_memory_loc in case
+	it is shared and we make a reload inside it.
+
+	* stupid.c (stupid_mark_refs): Registers that aren't used must die
+	in the insn after their birth so they conflict with other outputs.
+
+	* vax.md: Replace patterns to convert (and (ashiftxx))
+	into (and (rotatexx)) with the patterns that are actually made
+	by combine.
+	We can allow offsettable addresses for operand 0 and it is not
+	early-clobber.
+
+	* out-rs6000.c (secondary_reload_class): Correctly interpret result of
+	true_regnum.
+
+	* out-rs6000.c (output_toc): Write FP constants in TOC.
+	* tm-r6000.h (TARGET_FP_IN_TOC): New flag.
+	(TARGET_SWITCHES): Add -mfp-in-toc and -mno-fp-in-toc.
+	(TARGET_DEFAULT): -mfp-in-toc is the default.
+	(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): FP constants may be put in the TOC.
+
+Mon Jun 24 00:52:44 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* out-i386.c (output_fix_trunc): If the dest operand mentions the
+	stack pointer, then we must adjust it to account for the temporary
+	space we allocate on the stack here.
+
+Sat Jun 22 07:24:33 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_set_around_loop): Fix typo in call to note_mem_written.
+
+	* emit-rtl.c (reorder_insns): Correctly handle case when AFTER is last
+	insn.
+
+	* expr.c (expand_expr, case COND_EXPR): Correctly handle X ? A : X + 1.
+	Previous change called invert_truthvalue which can modify EXP; we now
+	call it a second time to undo its action if do_store_flag fails.
+
+Sat Jun 22 02:37:59 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* cse.c (cse_set_around_loop): Don't try to initialize an
+	automatic structure.
+
+	* reg-stack.c (compare_for_stack_reg): If both operands to a
+	compare are the same stack reg, don't process death on the second.
+
+	* i386.md (all float patterns): Don't allow constants in the
+	operand predicates.
+	(all patterns using convert_387_op): Split patterns into one using
+	FLOAT and another using FLOAT_EXTEND.
+
+Fri Jun 21 20:37:03 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* sched.c (line_note, line_note_head): New vectors for use when
+	dealing with line-number notes.
+	(unlink_notes): Put line-number notes in LINE_NOTE for reuse.
+	(schedule_block): Just before reordering the insns, walk the insns
+	and record the line-number note in effect for each one.  When
+	reordering is complete, restore the line-number notes as needed.
+	(schedule_insns): When debugging information is present, allocate
+	and initialize line_note and line_note_head.  After scheduling,
+	walk the insns to delete redundant line-number notes.
+
+Fri Jun 21 19:54:29 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* old-sparc.c, out-old-sparc.c, tm-old-sparc.h: Delete obsolete
+	files.
+
+	* loop.c (loop_number_exit_labels): Expand comment.  Mention that
+	returns are not included because all bivs and givs are pseudos and
+	hence must be dead after a return.
+
+Fri Jun 21 07:10:56 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (subst, case PLUS, MINUS): Remove cases for things like
+	(x-y)+y; now done in simplify_binary_operation.
+	* cse.c (simplify_unary_operation): Handle (sign_extend (truncate ..))
+	as used in casesi patterns.
+	(simplify_binary_operation, case PLUS, MINUS): Don't do most
+	simplifications if IEEE floating-point.
+	Add cases for things like (x-y)+y.
+	(fold_rtx): Replace PC with LABEL_REF if we are immediately in
+	front of a jump table.
+	Move code to apply associative law to after we have folded the
+	operands.
+	(fold_rtx, case MEM): Fix errors in checking for index of jump
+	table being out of range.
+	For ADDR_DIFF_VEC, return a MINUS or (truncate (minus L1 L2)).
+	(fold_rtx, case PLUS): If we have (plus X (label_ref L)), see
+	if X is equivalent to (minus L1 L2).
+	(cse_insn): Put (minus L1 L2) in `src_const' so it gets in a
+	REG_EQUAL note and gets put in the hash table.
+	If we are branching to a jump table, we are really branching to
+	immediately after the jump table
+	Remove special-case kludge for ADDR_DIFF_VEC; now handled properly.
+
+	* vax.md (casesi): Make pattern agree with machine instruction;
+	specifically, index is multiplied by two and the comparison is LEU,
+	not LE.
+
+	* cse.c (equiv_constant): If X is a one-word SUBREG of a larger
+	quantity, use `lookup_as_function' to see if it is equivalent
+	to a CONST_INT.
+
+	* jump.c (squeeze_notes): No longer static.
+	* loop.c (find_and_verify_loops): Need to call squeeze_notes when
+	moving block of code (see last change).
+
+	* reload.c (find_reloads): When forcing constant to memory,
+	set recog_operand to the result of find_reloads_toplev.
+
+	* combine.c (subst, case PLUS): Add (c1 - a) + c2 -> (c1+c2) - a.
+	(subst, case MINUS): Use simplify_binary_operation rather than
+	making CONST_INT from subtraction of two INTVAL's to ensure it
+	gets truncated as appropriate for its mode.
+	Add (c1 - (c2 - a)) -> (c1-c2) + a.
+
+	* a29k.md (negdf2): Use operand_subword_force, not operand_subword.
+	(movsf): Use operand_subword, not gen_lowpart.
+
+	* out-rs6000.c (u_short_cint_operand): New function.
+	(print_operand): Support auto-decrement.
+
+	* tm-rs6000.h (OVERRIDE_OPTIONS): Force profiling off.
+	(PREFERRED_RELOAD_CLASS): Return NO_REGS for real CONST_DOUBLE.
+	(HAVE_PRE_DECREMENT): Define this.
+	(GO_IF_LEGITIMATE_ADDRESS, GO_IF_MODE_DEPENDENT_ADDRESS):
+	Support PRE_DEC.
+
+	* rs6000.md (zero_extendxx): Use rlinm, not andil so we avoid
+	clobbering cr0.
+	(arith-and-record patterns): Correct some bad operand numbers.
+	Put SImode output as operand 0 to improve register tying.
+	(andsi): Prefer rlinm over andil and andiu.
+	(load/store-with-update): Add patterns for these instructions.
+	(allocate_stack): New, replaces stack probe.
+	(add-and-compare): New patterns, with define_split.
+	(subtract-one-and-jump): Allow outputs anywhere; handle with
+	match_scratch and define_split.
+
+	* stmt.c (expand_end_stmt_expr): If `last_expr_value' is 0, set it
+	to const0_rtx.
+
+	* regclass.c (reg_n_sets): Move definition to before use.
+
+	* jump.c (find_cross_jump): Don't try to substitute REG_EQUAL
+	values unless they are constants.
+
+Fri Jun 21 02:37:59 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reload1.c (reload): Don't clear after_call for each insn.
+
+Sun Jun 16 17:28:43 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reload1.c (reload, reload_as_needed, choose_reload_regs): Enable
+	code to avoid return register when SMALL_REGISTER_CLASSES defined.
+
+	* final.c (final_scan_insn): Don't look for no-op moves if
+	processor has STACK_REGS.
+
+	* hard-reg-set.h (GO_IF_HARD_REG_EQUAL): New macro.
+
+	* jump.c (cross_jump_death_matters): New variable.
+	(find_cross_jump): If processor has STACK_REGS, compare death
+	notes if they matter.
+
+	* toplev.c (compile_file, rest_of_compilation): Support new
+	stack-regs conversion pass.
+	(main, compile_file, rest_of_compilation): Add support for -dk to
+	dump after stack-regs conversion.
+	* reg-stack.c: New file.  Implements stack-regs conversion pass.
+	* Makefile.in (reg-stack.o): New file.
+
+	* tm-i386.h (STACK_REGS): New macro.
+	(all register macros): Define all eight float point registers.
+	(HARD_REGNO_NREGS): Only one float reg is needed for any mode.
+	(HARD_REGNO_MODE_OK): Move code here from out-i386.c.
+	(FIRST_STACK_REG,LAST_STACK_REG): New macros.
+	(ARG_POINTER_REGNUM): Move to reg 16.
+	(FP_REGNO_P): Recognize all float regs.
+	(QI_REG_P): New macro.
+	(STACK_REG_P,NON_STACK_REG_P,STACK_TOP_P): New macros.
+	(PRESERVE_DEATH_INFO_REGNO_P): Delete.
+	(OVERLAPPING_REGNO_P): Delete.
+	(CONST_OK_FOR_LETTER_P): Recognize constant mask for byte or word.
+	Recognize constant 0..3 for `lea' shifts.
+	(CONST_DOUBLE_OK_FOR_LETTER_P):
+	(PREFERRED_RELOAD_CLASS): Don't put CONST_DOUBLE in float regs.
+	QImode must go in class Q_REGS.  Float regs can't hold MODE_INT.
+	(MOVE_RATIO): New macro.
+	(SHIFT_COUNT_TRUNCATED): Delete.  Bit opcodes don't truncate.
+	(RTX_COSTS): New macro.
+	(CONST_COSTS): Make constants cheaper.
+	(QI_HIGH_REGISTER_NAMES): Renamed from QI_REGISTER_NAMES_TOP.
+	(INSN_CLOBBERS_REGNO_P): Delete.
+	(FP_TOP,RETCOM,POP_ONE_POP,FP_CALL1,FP_CALL): Delete.
+
+	* out-i386.c (fp_pop_level): Delete.
+	(fp_call_internal, output_asm_insn_double_reg_op, via_memory,
+	fp_store_sf,fp_pop_sf,fp_store_df,fp_pop_df,fp_pop_int,
+	fp_push_sf,fp_push_df,output_movsf,output_movdf,output_movf,
+	top_dead_p,call_top_dead_p,fp_top_dead_p1,mentioned_fp_top): Delete.
+	(hard_regno_mode_ok): Moved to tm-i386.h.
+	(qi_high_reg_name): New variable.
+	(output_op_from_reg, output_to_reg): New function.
+	(singlemove_string,output_move_const_single): No longer static.
+	(singlemove_string): Use correct operand number	in `push' string.
+	(standard_80387_constant_p): Use recommended method to extract
+	float from CONST_DOUBLE.
+	(PRINT_REG): Add 'h' for "high" register names, 'y' for "st(0)".
+	(print_operand): Code 'z' prints no size suffix for stack regs.
+	Print DImode suffix as "ll", not just "l".
+	(output_fix_trunc): New argument `insn'.  Generalize to output to
+	MEM or REG.  Return "char *" like other output routines.
+	Generalize for SImode or DImode output.
+	(binary_387_op,convert_387_op,float_op,fix_op,shift_op): New
+	match_operator predicates.
+	(output_387_binary_op,output_float_compare): New functions.
+
+	* i386.md (all MODE_FLOAT patterns): Replace with new code to use
+	all FPU registers.
+	(all patterns): Use AS2 and AS1 macros where possible, for
+	eventual support of Intel syntax output.
+	(tstM): Don't initialize operands unless we need to.
+	(cmpM): Choose operange order in output for speed on i386.
+	(logical test patterns): The operands commute.  If possible,
+	SImode tests should use just QImode.
+	(movstrictM): New patterns.
+	(movqi): Don't allow a constant of unknown value into Q_REGS.
+	(`lea' pattern): Move after addsi3.
+	(addsi3): Do three operand adds with `lea'.
+	(divsi3,divhi3,udivsi3,udivhi3): Delete in favor of u?divmodM4.
+	(divqi3,udivqi3): Remove earlyclobber for operand 0.
+	(andM3): Define three operand ANDs for 255 and 65535 using zero
+	extend opcode.  Also directly do an AND in the second byte of a
+	register.
+	(iorM3,xorM3): Do byte ior instead of word where possible.
+	(xorqi3): Allow operands[2] from MEM.
+	(ashlsi3): Allow three-operand shift of 0..3 with `lea' opcode.
+	(lshlM3): Redundant, delete.
+	(shift & rotate patterns): Print %0 as destination operand.
+	(bit recognizers): New patterns to set, clear and compliment.
+	(call insns): Use "%P" code for targets to support Intel syntax.
+	(movstrsi): Express changes to the operands instead of just
+	clobbering them.  Don't accept non-constant move count, as our
+	code isn't as efficient as a library call.
+
+Thu Jun 20 13:51:02 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): If we fold a conditional or computed branch to an
+	unconditional branch, it is now not in the normal format for an
+	unconditional branch, and it only has one set, delete it and
+	re-emit it.
+	Whenever we make an unconditional branch, set `cse_skip_to_next_block'
+	and do nothing else.
+	(cse_basic_block): Increment LABEL_NUSES on TO if it is a label
+	so it won't go away while we are using it as a stopping point.
+	If we are done with this block (`cse_skip_to_next_block' nonzero),
+	pretend we just did the insn before TO.
+	Decrement LABEL_NUSES of TO if it is a label; if it became zero,
+	delete it and try to extend the basic block.
+
+	* reload.c (find_reloads): Fix typo in check for no alternatives
+	found.
+
+	* combine.c (reg_significant, significant_mode): New vars.
+	(combine_instructions): Allocate and initialize reg_significant.
+	(set_significant): New function.
+	(significant_bits, case REG): Use reg_significant, if non-zero
+	as the significant bits of a register.
+
+	* loop.c (n_times_set): Define -2 to mean that a register is
+	an candidate to be moved and is a constant.
+	(scan_loop): Set n_times_set to -1 or -2 as appropriate.
+	(regs_match_p): No need to check REG_FUNCTION_VALUE_P.
+	A register and a constant can be equal if the register is known	
+	equivalent to the constant.
+	(invariant_p): Check n_times_set < 0, not == -1.
+
+	* rtl.h (REG_LOOP_TEST_P): New macro.
+	* jump.c (duplicate_loop_exit_test): Mark registers used only in
+	loop exit test.
+	* cse.c (cse_around_loop, cse_check_loop_start, cse_set_around_loop):
+	New functions.
+	(cse_end_of_basic_block): Add new arg to say if we are being called
+	after loop.c has run; if we are being called after loop.c, we can
+	ignore NOTE_INSN_LOOP_ENDs.
+	(cse_main): Accept new AFTER_LOOP arg; pass to cse_end_of_basic_block.
+	If we are called before loop.c, see if we can cse around to the
+	start of a loop.  
+	* toplev.c (rest_of_compilation): Tell cse_main if it is being called
+	before or after loop.c.
+
+	* rtl.h (LABEL_OUTSIDE_LOOP_P): New macro.
+	* loop.h (uid_loop_num): Renamed from luid_loop_num and now
+	maps INSN_UID to loop number instead of INSN_LUID.
+	* loop.c (loop_optimize): Modifications for the above.
+	(find_and_verify_loop): Change luid_loop_num to uid_loop_num.
+	Look for blocks of code ending in an unconditional branch out
+	of the loop surrounded by a conditional branch and try to move
+	such a block out of the loop.
+	(mark_loop_jump): Change luid_loop_num to uid_loop_num.
+	Mark all LABEL_REFs that are outside the current loop, for
+	branch prediction.
+	(strength_reduce, check_dbra_loop): Change luid_loop_num to 
+	uid_loop_num.
+	* unroll.c (unroll_loop, find_splittable_{regs,givs}): Likewise.
+	(reg_dead_after_loop, final_{biv,giv}_value): Likewise.
+
+	* flow.c (reg_n_sets): Don't define this here.
+	* regclass.c (reg_n_sets): Define it here.
+	(reg_scan): Allocate and initialize reg_n_sets.
+	(reg_scan_mark_refs): Count sets of a register in reg_n_sets.
+
+	* sched.c (reg_known_value_size): New variable.
+	(canon_rtx): Don't look in reg_known_value outside its allocated space.
+	(init_alias_analysis): Initialize reg_known_value_size.
+
+	* loop.c ({unknown,fixed}_aggregate_altered): Deleted.
+	(loop_store_mems): Replaces loop_store_addrs and loop_store_widths.
+	(loop_optimize): Call init_alias_analysis.
+	(prescan_loop, note_addr_stored): Save all MEMs stored into, rather
+	than just those that appear fixed; save MEMs rather than addresses
+	and widths.
+	(invariant_p): Use true_dependence to see if a MEM is invariant;
+	compare it with all MEMs stored during the loop.
+
+	* sched.c (memrefs_conflict_p): If XSIZE or YSIZE is zero
+	the object conflict if they have the same base, irregardless
+	of the offsets.
+
+	* reorg.c (dbr_schedule): Reallocate unfilled_firstobj after
+	freeing memory from the obstack.
+
+	* reload.c (push_reload): Always reload object inside SUBREG if
+	STRICT_LOW_PART is present.
+	Always set RELOAD_STRICT_LOW to zero; maybe we should get rid of it.
+
+	* reload.c (make_memloc): Copy the address if it varies to avoid
+	potential sharing problems.
+
+	* global-alloc.c (hard_reg_copy_preferences): New var.
+	(global_alloc): Allocate and initialze it.
+	(prune_preferences): Prune it.
+	(find_reg): Try preferences in hards_reg_copy_preferences first,
+	then hard_reg_preferences.
+	(set_preference): Set bit in hard_reg_copy_references, if appropriate.
+
+	* emit-rtl.c (try_split): If we are splitting a JUMP_INSN, copy	
+	JUMP_LABEL from the old to new insn update the count of that label.
+
+	* cse.c (lookup): Always call exp_equiv_p unless we have a REG.
+
+	* cse.c (insert): If we are making a register equivalent to a
+	constant that was already equivalent to a constant, update
+	qty_const_insn.
+	(cse_insn): Don't do it here.
+	* cse.c (fold_rtx): Always call simplify_unary_operation.
+
+	* cse.c (record_jump_equiv): Don't get primary elements for OP0 and
+	OP1 since they might not be valid.
+
+	* loop.c (get_condition): Accept new arg, EARLIEST that is a pointer
+	to where we place the earliest insn used to form the condition.
+	Check for comparison with CC0 in main loop, not earlier.
+	Never return condition involving CC0.
+	(get_condition_for_loop): Call get_condition with new arg.
+	* jump.c (jump_optimize): When we make store-flag insn, put new
+	insns before earliest insn used to form condition and use new
+	psuedo as target, which we copy into VAR immediately after the insn
+	that currently sets VAR.
+	Turn off "if (...) x = 1; else {...} if (x) ..." code; it is not
+	correct and can't be easily fixed.
+	(get_label_{before_after}): Use {prev,next}_nonnote_insn.
+
+	* jump.c (jump_optimize): Don't interpret NOOP_MOVES as meaning
+	"after_reload"; check reload_completed instead.  Don't pass NOOP_MOVES
+	to functions that aren't actually trying to noop moves.
+	(follow_jumps, tension_vector_labels):  Don't accept AFTER_RELOAD arg;
+	check reload_completed instead.
+
+	* combine.c (try_combine): Don't check that we don't have a
+	single_set when trying to replace a SET_DEST in a PARALLEL in I2.
+	(simplify_and_const_int): Always do the AND in the mode passed.
+	(significant_bits, case DIV and UDIV): Nothing special known
+	about low-order bits here.
+	(simplify_shift_const, shift cases): Don't go into infinite loop if
+	we combine two shifts in the same direction.
+
+	* c-parse.y, cplus-parse.y, objc-parse.y (set_yydebug): Move to
+	end of file so we don't have a reference to yydebug after its
+	definition; also delete duplicate declaration.
+
+Thu Jun 20 09:08:21 1991  Tom Wood  (wood at geech.gnu.ai.mit.edu)
+
+	* local-alloc.c (block_alloc): Fixed typo in last edit.
+
+Wed Jun 19 17:05:52 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* reload.c (push_reload): Verify reload_in[i] exists before using
+	GET_CODE on it.
+
+	* m88k.md: USE insns must be immediately before CALL_INSNs to work
+	properly, otherwise sched.c and reorg.c will not associate them will
+	the CALL.
+
+	* unroll.c (calculate_giv_inc): Accept constant increments
+	represented as a LO_SUM.
+
+	* flow.c (mark_used_regs): Don't put a REG_DEAD note on insns that
+	already have a REG_UNUSED note.  This makes it consistent with
+	combine.c.
+	* combine.c (distribute_notes): If a REG_UNUSED reg is no longer
+	set by an insn, but is still used by the insn, then must convert
+	the REG_UNUSED note to a REG_DEAD note.
+
+	* gcc.c (SIGNED_CHAR_SPEC): Put ifndefs around it, so that it can
+	be overriden by a definition in the tm.h file.
+
+	* cse.c (cse_insn): Add missing third parameter to find_reg_note calls.
+
+	* tm-arm.h (INIT_CUMULATIVE_ARGS): Take LIBNAME as third argument.
+
+	* combine.c (can_combine_p): Remove extra argument in call to
+	find_reg_note.
+
+	* rtlanal.c (find_regno_note): Verify that the note contains a
+	REG before checking its REGNO.
+
+	* cse.c (canon_reg): Fix spacing/punctuation error.
+	* recog.c (constrain_operands): Likewise.
+	* tree.h: Likewise.
+	* varasm.c (Assemble function): Likewise.
+
+Wed Jun 19 13:14:22 1991  Tom Wood  (wood at geech.gnu.ai.mit.edu)
+
+	* local-alloc.c (block_alloc): When counting instructions, abort if
+	a loop is detected.  Improperly threaded insns are easy to produce
+	when working on the scheduler.
+
+Sat Jun 15 06:13:11 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (simplify_and_const_int, case ASHIFTRT): Avoid infinite
+	loop if simplify_shift_const doesn't do anything.
+
+Thu Jun 13 09:05:12 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (decrement_and_branch_until_zero): Add this insn.
+	
+Thu Jun 13 07:32:37 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* explow.c (plus_constant): Fix error in last change; CONST case
+	wasn't handled correctly.
+
+	* tm-m68k.h (CONST_CONSTS): Constants between -7 and -1 are cheap
+	because of subq.
+
+	* m68k.md (dbra): Operand 0 should have '+' constraint, not '='.
+
+	* expmed.c (store_fixed_bit_field): Clean up some confusion between
+	targets and results in expand_binop calls.
+
+	* local-alloc.c (optimize_reg_copy): Fix several typos relating to
+	status updating.
+	Correctly handle the case where DEST dies before SRC.
+	Fix some comments that had SRC and DEST backwards.
+
+	* combine.c (can_combine_p): Swap order of args of && to avoid
+	unnecessary calls to use_crosses_set_p.
+	(simplify_and_const_int, case SUBREG): Make code agree with comment.
+
+	* emit-rtl.c (operand_subword): Avoid compilation warning.
+
+	* expmed.c (store_fixed_bit_field): Don't use OP0 as SUBTARGET
+	if it is a MEM and -fforce_mem was specified.
+
+	* expmed.c (emit_store_flag): After scc insns, convert to wider
+	mode using unsigned conversion if STORE_FLAG_VALUE is positive.
+
+	* expmed.c (init_expmed): Use mode of size BITS_PER_WORD instead
+	of SImode.
+	(store_bit_field, extract_bit_field): Replace references to SImode
+	with MAXMODE.
+	(store_fixed_bit_field, extract_fixed_bit_field): Don't use explicit
+	modes; use get_best_mode instead.
+	(store_split_bit_field, extract_split_bit_field): Use operand_subword
+	and mode_for_size instead of making SUBREGs and using SImode.
+
+	* stor-layout.c (get_best_mode): Allow LARGEST_MODE to be VOIDmode,
+	in which case we can use any appropriate mode.
+
+Wed Jun 12 16:32:37 1991  Michael Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+
+	* cplus-decl.c (init_decl_processing): Compensate for tm-sparc.h
+	change to WCHAR_TYPE handling.
+
+Wed Jun 12 10:19:13 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+        * tm-sparc.h (WCHAR_TYPE): Must be "short unsigned int".
+
+	* combine.c (subst, make_extraction, simplify_shift_const): Don't
+	change mode of volatile MEM; replaces similar change of June 1st.
+	* function.c (fixup_var_refs_1, optimize_bit_field): Likewise.
+	* recog.c (validate_replace_rtx_1): Likewise.
+
+Tue Jun 11 22:09:28 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* expr.c (expand_expr, case COND_EXPR): Expressions of both the form
+	X ? A + 1 : A and X ? A : A + 1 were being done, but only the former
+	was being handled correctly.
+
+Tue Jun 11 12:13:53 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* recog.c (validate_replace_rtx_1): If putting a CONST_INT in a
+	ZERO_EXTEND or SIGN_EXTEND, try to simplify the operation or fail;
+	the semantics of the operation require a non-VOIDmode argument.
+
+	* cse.c (delete_dead_from_cse): Don't delete last insn in a libcall.
+
+	* explow.c (allocate_dynamic_stack_space): Don't clobber SIZE when
+	rounding it.
+
+	* fold-const.c (fold, case COND_EXPR): Ensure we always return an
+	expression in the correct type.
+
+	* expr.c (emit_push_insn): Don't need to put X in register if it
+	is constant; operand_subword_force can do so if needed.
+
+	* reload.c (find_reloads): Simplify nested `if' statements.
+	* recog.c (constrain_operands): Likewise.
+
+	* jump.c (mark_jump_label): Fix typo (extra paren) in last change.
+
+Tue Jun 11 10:03:08 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+
+	* collect2.c: New file.
+
+	* sched.c (memrefs_conflict_p): Finish removing ASHIFT case.
+
+	* emit-rtl.c (operand_subword): Change test of BITS_PER_WORD <
+	HOST_BITS_PER_WORD from compile-time to run-time.
+	* expr.c (emit_push_insn): Ditto.
+	* recog.c (constrain_operands): Ditto.
+	* reload.c (find_reloads): Ditto.
+
+	* jump.c (jump_optimize): Add `continue' after deleting INSN in case
+	where further attempts to optimize the insn are invalid.
+	(mark_jump_label): Don't crash if NEXT == 0.
+
+Tue Jun 11 09:14:05 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* out-m88k.c (legitimize_operand): New function to convert
+	CONST_DOUBLE to SFmode when possible.
+	* m88k.md (cmpdf, adddf3, subdf3, muldf3, divdf3): Use it.
+	* tm-m88k.h: Declare it.
+
+	* xm-m88k.h (OBSTACK_CHUNK_SIZE): For DG/UX at least, the default
+	value results in a perfect checkerboard.
+
+Tue Jun 11 07:23:45 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case FLOAT_EXPR, FIX_EXPR): Don't try to
+	do any partial conversions here; expand_fix and expand_float now
+	handle all modes.
+	* optabs.c (fixtab, fixtrunctab, floattab): Table now contains
+	all modes.
+	(can_fix_p, can_float_p): Use mode as index in tables.
+	(init_fixtab, init_floattab): Likewise.
+	Add support for QImode and HImode operations.
+	(expand_float): Rework to remove dependendence on specific modes.
+	Can only use REAL_VALUE_LDEXP in certain configurations.
+	(expand_fix): Likewise.
+	If can't do operation unsigned, or signed into wider mode, emit a
+	sequence that compares operand with 2**(N-1) and, if larger,
+	subtracts 2**(N-1), converts, and adds it back.	
+	Protect from queue and force not memory at start.
+	* m88k.md (fixuns_truncdfsi2, fixuns_truncsfsi2): Deleted; now done
+	in expand_fix in optabs.c.
+
+	* combine.c (expand_field_assignment): Convert SET_SRC to mode of
+	INNER.
+	(simplify_shift_const, case ASHIFTRT): Don't use undefined initial
+	value of MASK.
+
+	* explow.c: Include insn-config.h, recog.h, and insn-codes.h.
+	(allocate_dynamic_stack_space): Rework to be more precise in required
+	alignment.  Must maintain alignment of stack to STACK_BOUNDARY at
+	all times (it must not be momentarily misaligned) and must align
+	returned address to BIGGEST_ALIGNMENT. 
+	* Makefile.in (explow.o): Show new includes.
+
+Tue Jun 11 07:22:54 1991  Matthew Self  (mself at next.com)
+
+	* m68k.md:  Change incorrect reference to -m68040-fp to -m68040-only.
+	Fix several spelling errors.
+
+	* m68k.md (fix_trunc*f*i2):  New insn's to replace fintrz on the
+	'040.  These emit a sequence of insn's to change the rounding mode
+	to round-to-zero, perform the truncation, and restore the rounding
+	mode. 
+
+Mon Jun 10 09:57:31 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* c-lang.c (GNU_xref_{begin,end}): Add stub functions for xref info.
+
+	* cplus-decl.c (record_builtin_type): Add support for handling
+	builtin types' nicknames (e.g. "unsigned long" for "long unsigned
+	int").
+
+	* expmed.c (struct algorithm): Change array size from BITS_PER_WORD
+	to MAX_BITS_PER_WORD.
+	gcc.texinfo: Document MAX_BITS_PER_WORD.
+
+Mon Jun 10 07:45:17 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): When making an I1 from an I2 that is
+	a PARALLEL, give the new I1 the same INSN_UID as I2.
+
+	* recog.c (constrain_operands, case 'p'): Pass operand mode
+	(from match_operand) to strict_memory_address_p.
+
+	* m68k.md (andsi3): bclr does not set the condition codes in the
+	standard way.
+
+Sun Jun  9 11:16:24 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads): Swap preferred_class and pref_or_nothing
+	when we swap commutative operands.
+
+	* combine.c (subst, simplify_shift_const): Treat UDIV and MULT
+	with a second operand of a constant that is a power of two as the
+	appropriate shift if it feeds or is fed by a shift.
+
+	* expmed.c (expand_divmod): When searching for the best mode to
+	perform the computation, take into account the fact that we sometimes
+	do a shift, not a divide.
+
+	* expmed.c (emit_store_flag): Correctly handle "a = b < 0;" if A
+	is narrower than B.
+	Don't check for STORE_FLAG_VALUE equal to just the sign bit of
+	OP0 if the width of its mode is larger than HOST_BITS_PER_INT.
+	Use switch rather than if/elseif/elseif.
+
+	* combine.c (simplify_shift_const, shift cases): We were not forming
+	the mask correctly when VAROP is a LSHIFTRT and narrower than X;
+	simplify the mask formation by using significant_bits and
+	simplify_binary_operation.
+
+	* reload.c (make_memloc): Copy RTX_UNCHANGING_P from REG to MEM.
+	(find_reloads_address, find_reloads_address_1): Don't shortcut
+	reloading the address in reg_equiv_address; always call
+	find_reloads_address on it.
+
+	* recog.c (constrain_operands, case 'p'): Validate address if
+	testing strictly.
+
+	* out-alliant.c, out-m68k.md (output_move_double): Extraction of
+	parts of CONST_INT was backwards; these machines are words-big-endian.
+
+Sat Jun  8 12:19:26 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* sparc.md: Remove special-case shift insns which load and shift
+	memory-based operands.  Combine now does this for us.  Also change
+	abs patterns so that they consistently print the negation followed
+	by the mov on a single line.
+
+	* reload1.c (choose_reload_regs): Cast `enum reg_class' values to
+	`int' when using them as array indicies.
+
+	* gnulib2.c (LONG_TYPE_SIZE): Don't inherit the definition of
+	LONG_TYPE_SIZE from tm.h, since that may be target_flag-specific.
+	Instead synthesize the value from `sizeof (long)'.
+
+	* cplus-gc.c (build_m_desc): Figure out whether the i_desc should
+	constitute a defn of its type or not.  Analogous to May 26 change
+	for instance variables.
+
+Sat Jun  8 07:11:26 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (simplify_and_const_int): Detect and remove redundant
+	alignment operation.
+	(significant_bits, case REG): Realize that the stack pointer might
+	be aligned.
+	(significant_bits, case PLUS, MUNUS, MULT, DIV, UDIV): Track low-order
+	bits of zero as well as high-order zero bits (so we detect alignment
+	operations).
+	(record_value_for_reg): If updating a register, try to substitute its
+	old value into the expression for better tracking of values.
+
+	* a29k.md (fmac/dmac): Delete incorrect patterns.
+
+Thu Jun  6 19:08:29 1991  Sean Fagan  (sef at cygint.cygnus.com)
+
+	* final.c (output_source_line): Say we are on line number 1 if
+	sdb_begin_function_line is -1, not 0.
+
+Thu Jun  6 08:01:05 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* stor-layout.c (get_best_mode): Don't assume GET_MODE_SIZE (SImode)
+	is UNITS_PER_WORD; if SLOW_BYTE_ACCESS defined, try to return the
+	mode whose size is UNITS_PER_WORD.
+
+	* sparc.md (floatsisf2, floatsidf2): Add missing mode for
+	operand 1; use const_int_operand as predicate.
+
+	* cse.c (canon_reg): Add arg INSN; if replacing a pseudo with a hard
+	register or vice versa, use validate_change to ensure the insn
+	remains valid.
+	All callers changed; most pass zero since they validate replacement.
+	(cse_insn): Use validate_change on result of canon_reg when
+	required.
+
+	* c-common.c (combine_strings): Use WCHAR_BYTES instead of
+	UNIT_PER_WORD for the size of a wide char.
+
+	* emit-rtl.c (gen_lowpart_common): Always extract integral modes
+	from integer CONST_INTs and CONST_DOUBLEs.
+
+	* integrate.c (copy_for_inline, copy_rtx_and_substitute): Don't
+	try to extract a float from a fixed-mode CONST_DOUBLE.
+	(copy_for_inline, copy_rtx_and_substitute, restore_constants):
+	Declare target of REAL_VALUE_FROM_CONST_DOUBLE to be REAL_VALUE_TYPE.
+
+	* local-alloc.c (update_equiv_regs): Fix typo in testing
+	reg_basic_block.
+
+Wed Jun  5 09:15:09 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* Eliminate unneeded binding levels when overloading template class
+	names:
+	* cplus-pt.c (overload_template_name): Accept second argument
+	classlevel, indicating that new decl should be pushed into current
+	class binding level; otherwise, assume current level is okay to use.
+	Callers changed.
+	(undo_template_name_overload): New second argument classlevel
+	indicates where binding for variable was made.  Callers changed.
+
+	* cplus-parse.y (structsp): Call undo_template_name_overload in all
+	appropriate cases.
+
+	* Get interface/implementation flags set properly on methods in
+	class templates, and use it:
+	* cplus-lex.c (store_pending_inline): If inside a class, walk up
+	through nested classes to top level looking for template parameters.
+	For class methods, use current interface flag settings rather than
+	flags for class.
+	(extract_interface_info): No longer static.
+	(do_pending_inlines, process_next_inline): Call
+	extract_interface_info to get interface flags set properly after
+	changing file names.
+	* cplus-pt.c (instantiate_class_template): Ditto.
+	(end_template_instantiation): Ditto.
+	(do_pending_expansions): If interface/implementation flags of
+	containing class are set, use them.
+	* cplus-tree.h (interface_unknown): Added declaration.
+
+Wed Jun  5 07:36:44 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads_address): Unshare a MEM if its address is
+	the address of a constant pool location.
+
+	* optabs.c (expand_binop): Fix typos in multi-word addition; had
+	MODE for SUBMODE.
+
+	* reload1.c (alter_reg): Correctly delete insn that makes a REG
+	equivalent to a MEM in the case where the MEM is the SET_DEST.
+
+	* a29k.md (negdf2): Add missing alternative in operands 2.
+	(movdi): Change "i" constraint to "n".
+	Split for constant integer as input; split cannot fail.
+	Correct typo in DEFINE_SPLIT (DFmode for DImode).
+	* out-a29k.c (gen_reg_or_integer_constant_operand): New function.
+
+	* configure: Fix typo in reference to tm-sun3-nfp.h.
+
+Wed Jun  5 06:56:10 1991  Matthew Self  (mself at next.com)
+
+	* c-parse.y, objc-parse.y (attrib): Always pass aligned attribute
+	through.  Return $1 on failure rather than NULL_TREE for consistency.
+
+	* c-common.c (decl_attributes): Warn if requested alignment is not
+	a power of two.  Also warn if decl is not a VAR_DECL or a FIELD_DECL,
+	since specifying alignment makes no sense for a TYPE_DECL, and is
+	not implemented for a FUNCTION_DECL.
+
+	* c-parse.y, objc-parse.y (initdcl, notype_initdcl): Call
+	decl_attributes before finish_decl in order for alignment attribute
+	to take effect.
+	
+	* varasm.c (assemble_variable): Warn if DECL_ALIGN is greater than
+	MAX_OFILE_ALIGNMENT, if defined.  This allows errors to be
+	detected with formats like a.out which support a maximum alignment
+	of 4.
+
+	* c-parse.y, objc-parse.y (component_declarator): Call decl_attributes
+	with correct args.
+
+	* stor-layout.c (layout_record, layout_union): Do not clamp struct
+	alignment at BIGGEST_ALIGNMENT, since individual fields may have
+	requested greater alignment than this.  This check shouldn't have
+	done anything anyway.
+
+	* c-parse.y (unary_expr):  When alignof is applied to an expression,
+	call c_alignof_expr so that we can check DECL_ALIGN instead of calling
+	c_alignof (TYPE_ALIGN (TREE_TYPE (expr))).
+
+	* c-typeck.c (c_alignof_expr):  New function to compute alignof for
+	expr's.  Returns DECL_ALIGN for VAR_DECL's and FIELD_DECL's.  Also
+	return 1 after reporting error about applying alignof to bitfields.
+
+	* c-tree.h (c_alignof_expr): Add declaration.
+
+	* varasm.c (assemble_variable):  MAX_OFILE_ALIGNMENT defaults to
+	BIGGEST_ALIGNMENT if not defined in config.h.
+
+Wed Jun  5 06:55:12 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (mov*): Change the interface to emit_move_sequence.
+	* out-m88k.c (emit_move_sequence): Similar to the sparc version.
+
+	* tm-m88k.h (SIZE_TYPE): Specify as unsigned int.
+
+	* xm-m88k.h (HOST_BITS_PER_LONGLONG): Define.
+
+Wed Jun  5 01:45:07 1991  Sean Fagan  (sef at cygint.cygnus.com)
+
+	* sdbout.c (sdbout_symbol):  don't output definition information for
+	a nested function inside the parent function; this makes COFF
+	assemblers upset.
+
+Tue Jun  4 17:35:13 1991  Sean Fagan  (sef at cygint.cygnus.com)
+
+	* function.c (trampoline_address): make the RTL_EXPR node temporary,
+	not momentary, so that the trampoline_list doesn't become garbage.
+	Fix made by jim wilson (wilson@cygnus.com).
+
+Tue Jun  4 09:40:59 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (move_block_to_reg): Fix typo in last change.
+
+	* local-alloc.c (update_equiv_regs): Check for reg_n_refs == 2,
+	not loop_depth * 2.
+
+	* reorg.c (fill_simple_delay_slots): Clear INSN_DELETED_P on insns
+	placed in current_function_epilogue_delay_list.
+
+	* make-rs6000 (ALLOCA_FLAGS, ALLOCA_FINISH): Add override to
+	compensate for the fact that the RS/6000 C compiler has no -S.
+
+	* out-rs6000.c (easy_fp_constant): Use operand_subword.
+	(print_operand): Use INT_P and INT_LOWPART to allow accepting both
+	CONST_INT and CONST_DOUBLE for integers.
+
+	* rs6000.md (floatsidf2, floatunssidf2): Rework these to emit only
+	two insns, each of which has DImode or DFmode operands.  Then
+	split the funny DImode insn to generate it.
+	(fix_truncdfsi2, fixuns_truncdfsi2): Surround our call with
+	REG_LIBCALL/REG_RETVAL notes.
+	Use operand_subword.
+	(movsf, movdf): Correctly handle a pseudo passed during reload.
+	Use operand_subword.
+	Split moves involving "easy" FP constants.
+	(subtract-and-branch): Disable for now, to avoid output reload in jump.
+
+	* tm-rs6000.h (WCHAR_TYPE): Add definition.
+	(INT_REGNO_P): Fix typo; register 31 is a normal register.
+	(LEGITIMATE_CONSTANT_P): The only FP constants that are valid are
+	the "easy" ones.
+
+	* a29k.md (negdf2): Use XOR when not involving accumulator.
+	Add SCRATCH so we dont use gr122.
+	Handle case where input and output are same register.
+	(negsf2): Use SCRATCH.
+	(DImode operations): Use operand_subword, not gen_{low,high}_part.
+	(movsf, movdf, movdi): Always split if we can look inside CONST_DOUBLE.
+	Use operand_subword.
+	Don't split into separate words in DEFINE_EXPAND.
+	* out-a29k.c (in_operand): Account for fact that integer CONST_DOUBLE
+	is VOIDmode.
+	(extract_subword): Deleted.
+	(print_operand): Add macros INT_P and INT_LOWPART so we can accept
+	either CONST_INT or CONST_DOUBLE.
+
+	* romp.md (movdi, movdf, negsf2, negdf2): Use operand_subword and
+	operand_subword_force, instead of gen_{high,low}part.
+	Use force_const_mem instead of force_const_double_mem.
+
+	* m88k.md (movdi): Remove 'F' constraint; 'n' now includes integer
+	CONST_DOUBLE.
+	(anddi3, iordi3, xordi3): Likewise.
+	Use operand_subword to extract individual words.
+	* out-m88k.c (output_load_const_{float,double,dimode}):	Use
+	operand_subword.
+
+	* Makefile.in (emit-rtl.o): Now includes expr.h.
+	* calls.c (expand_call): Pass mode to move_block_to_reg.
+	* combine.c (subst, case SUBREG): Simplify SUBREG of hard register
+	and some SUBREGs of constants.
+	(gen_lowpart_for_combine): If object is desired mode, always return it.
+	Use gen_lowpart_common for most cases; just support MEM and
+	surrounding with a SUBREG here.
+	* cse.c (insert): CONSTANT_P includes CONST_DOUBLE.
+	(fold_rtx): Use MODE for GET_MODE (X).
+	(fold_rtx, case SUBREG): Handle simple cases of folding SUBREGs.
+	(fold_rtx, case MEM): Use operand_subword and gen_lowpart_if_possible
+	to get parts of constant instead of gen_lowpart and gen_highpart.
+	(gen_lowpart_if_possible): Use gen_lowpart_common for most cases.
+	* expr.c: Include expr.h.
+	(gen_lowpart_common): New function, from gen_lowpart.
+	(gen_lowpart): Use gen_lowpart_common for most cases; just handle MEM.
+	(gen_highpart): Deleted.
+	(subreg_lowpart_p): Test WORDS_BIG_ENDIAN in `if', not `#if'.
+	(operand_subword, operand_subword_force): New functions.
+	* explow.c (plus_constant): Handle adding CONST_INT to CONST_DOUBLE.
+	Rework to use switch statement.
+	Remove obsolete OLD_INDEXING code.
+	(plus_constant_for_output): Use plus_constant for most cases.
+	(break_out_memory_refs): Refine which constants get broken out.
+	* expmed.c (store_bit_field, extract_bit_field): Don't use
+	gen_highpart for multi-word fields; instead, loop and use
+	operand_subword.  We now support fields more than two words long.
+	(mask_rtx, lshift_value): Just pass high and low words to
+	immed_double_const; it will mask and choose CONST_INT vs. CONST_DOUBLE.
+	* expr.c (convert_move): Use operand_subword instead of gen_highpart.
+	Don't assume GET_MODE_SIZE (DImode) > UNITS_PER_WORD.
+	(move_block_to_reg): Add MODE arg.
+	Use operand_subword_force.
+	(move_block_from_reg): Use operand_subword.
+	(move_block_from_reg, move_block_to_reg, use_rgs):
+	Don't assume GET_MODE_SIZE (SImode) == UNITS_PER_WORD.
+	(emit_move_insn, emit_push_insn): Likewise.
+	Use operand_subword and operand_subword_force.
+	(expand_expr, case INTEGER_CST): Just call immed_double_const.
+	(expand_expr, cases FIX_TRUNC_EXPR, FLOAT_EXPR): Don't assume
+	GET_MODE_SIZE (SImode) == UNITS_PER_WORD.
+	(expand_builtin): Likewise.
+	(do_jump_by_parts_{greater,equality): Likewise.
+	Use operand_subword_force.
+	* expr.h (operand_subword): Remove declaration from here.
+	(validize_mem): Add missing declaration.
+	* final.c (final_scan_insn): If assembler code string is "#",
+	try to split insn.
+	Ignore insns with INSN_DELETED_P set.
+	(alter_subreg): Remove erroneous code for CONST_DOUBLE.
+	(output_addr_const): Integer CONST_DOUBLEs are now VOIDmode.
+	* fold-const.c (add_double): No longer static.
+	* integrate.c (copy_for_inline, copy_rtx_and_substitute):
+	Use validize_mem to validate force_const_mem's result.
+	(subst_constants, case SUBREG): Use operand_subword and
+	gen_lowpart_common instead of gen_lowpart and gen_highpart.
+	(restore_constants): Don't assume all CONST_DOUBLEs are floating.
+	Use validize_mem to validate force_const_mem's result.
+	* optabs.c (expand_binop,, expand_unop): Don't assume
+	GET_MODE_SIZE (SImode) == UNITS_PER_WORD.
+	Use operand_subword_force.
+	(operand_subword): Deleted from here.  New version in emit-rtl.c.
+	* recog.c (validate_replace_rtx_1): Check for any constant,
+	not just CONST_INT.
+	(constrain_operands, case 'm', 'o'): Any constant OK if strict < 0.
+	(constrain_operands, case 'E'): Must have host and target word sizes
+	the same.
+	(constrain_operands, case 's', 'n'): CONST_DOUBLE can be integer.
+	* reload.c (find_reloads, case 'm', 'o', 'E', 's', 'n'): Likewise.
+	Don't call force_const_double_mem; use force_const_mem instead.
+	(find_reloads_toplev): Likewise.
+	Use gen_lowpart_common to get low part of constant.
+	* rtl.h (gen_highpart, force_const_double_mem): Deleted.
+	(gen_lowpart_common, operand_subword, operand_subword_force):
+	New declarations.
+	* varasm.c (const_double_chain): Renamed from real_constant_chain.
+	(immed_double_const): For integer constants, perform any needed
+	masking and make either CONST_INT or CONST_DOUBLE.
+	(force_const_double_mem): Deleted; would need a mode arg added
+	which would make it almost identical to force_const_mem.
+	* out-vax.c (split_quadword_operands): Use operand_subword instead
+	of gen_lowpart and gen_highpart.
+
+	* function.c (find_replacement): New function.
+	(fixup_var_refs_insns): Pass pointer to listhead of (new)
+	fixup_replacement structures; if any entries were pseudos, copy from
+	memory to the pseudo.
+	(fixup_var_refs_1): New arg REPLACEMENTS; provide that arg in
+	recursive calls.
+	Use find_replacements to ensure we don't break any MATCH_DUPs.
+
+Tue Jun  4 05:07:53 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* stmt.c (pushcase, pushcase_range): Take new parameter DUPLICATE.
+	Use this to store existing LABEL_DECL if LABEL is a duplicate.
+	* c-parse.y, cplus-parse.y, objc-parse.y, stmt.c: All callers
+	changed.
+
+Mon Jun  3 17:19:40 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-expr.c (decl_in_memory_p): New function.
+	* cplus-typeck.c (mark_addressable): Test `decl_in_memory_p' instead
+	of testing memory_operand, since the DECL_RTL of a decl may be a
+	(MEM ...) by not a valid memory address.
+
+	* cplus-typeck.c (mark_addressable): When we decide that a static
+	const variable must go to memory, make sure that its rtl is
+	allocated from the correct obstack.
+
+	* cplus-decl.c (grokdeclarator): Replace undocumented BREAK_C_TAGS
+	#define control with comments explaining why or how it is correct
+	for GNU C++ to break C's notions of what a tag is.
+
+	* cplus-call.c (convert_harshness): Replace undocumented #if
+	AMBIGUOUS_WORKING control with a comment explaining the actions
+	where this control used to be.
+
+Mon Jun  3 15:07:47 1991  Sean Eric Fagan  (sef at kithrup)
+
+	* tm-i386.h (TRAMPOLINE_TEMPLATE):  Changed a 040 to 0xe0;
+	this is the proper code for a jmp [%eax] instruction.
+
+Mon Jun  3 08:07:42 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cccp.c (initialize_builtins): Install __SIZE__TYPE__,
+	__PTRDIFF_TYPE__, and __WCHAR__TYPE__ as builtins.
+
+Sun Jun  2 18:18:19 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* flow.c (mark_set_1): Don't set LAST_MEM_SET from a MEM that has any
+	side-effects (such as auto-inc), not just volatile MEMs.
+
+	* rtlanal.c (reg_referenced_p): New function.
+	* combine.c (try_combine): Correct test for added_sets_1 to account
+	for case where I1 and I2 both feed I3.
+	(distribute_notes): Don't interpret setting a reg as a use of the
+	reg; use new reg_referenced_p and simplify code.
+
+	* flow.c (propagate_block): Ensure that LOOP_DEPTH is correct at all
+	insns in a basic block, otherwise reg_n_refs will be set incorrectly.
+
+	* recog.c (validate_replace_rtx_1): Don't change mode of memory
+	reference that is mode-dependent.
+	Don't make a MEM with a larger mode than original.
+
+	* combine.c (try_combine): Disable code to check MODES_TIEABLE_P
+	added May 20th and 22nd; this should not be needed now that
+	LIMIT_RELOAD_CLASS has been added to reload.
+
+	* flow.c (mark_set_1): Allow for the fact that stack pushes don't have
+	REG_INC notes.
+	* local-alloc.c (optimize_reg_copy): Likewise.
+	Don't change lives of hard registers #ifdef SMALL_REGISTER_CLASSES.
+	A USE of a register must not be changed.
+	(validate_equiv_mem): Don't make an equivalence to volatile MEMs.
+
+	* reorg.c (mark_set_resources): #ifdef PUSH_ROUNDING, mark SP as always
+	set since the insn might have a (pre_dec sp).
+
+Sun Jun  2 16:03:31 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (libg_dir): Variable deleted.
+	(install-gnulib): Don't bother creating libg.a.
+
+	* cccp.c (size_type_string, etc.): Variables deleted.
+	(special_symbol): Use macros SIZE_TYPE, etc., directly.
+
+Sat Jun  1 12:54:05 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Let tm.h specify types for size_t, ptrdiff_t and wchar_t.
+	(SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): New params.
+	* cccp.c, c-decl.c: Provide default definitions of the new params.
+	* cccp.c (__SIZE_TYPE__, __PTRDIFF_TYPE__, __WCHAR_TYPE__): Builtins.
+	(special_symbol): Implement them based on new params.
+	* stddef.h (size_t, ptrdiff_t, wchar_t): Declare using those builtins.
+	* c-tree.h (ptrdiff_type_node): Declare variable.
+	* c-decl.c (init_decl_processing): Use *_TYPE params
+	to control setting of sizetype, wchar_type_node and ptrdiff_type_node.
+	* c-typeck.c (pointer_diff): Take result type from ptrdiff_type_node.
+
+	* configure (target1): Really change / to -.
+
+Sat Jun  1 02:49:04 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-lex.c (extract_interface_info): Now non-static.  Called
+	whenever INPUT_FILENAME changes.
+	* cplus-pt.c (instantiate_class_template): Call
+	`extract_interface_info' when switching files.
+	* cplus-input.c (getch): Ditto.
+
+	* combine.c (subst): Don't change the mode of memory access for
+	volatile memory.
+
+	* tm-sparc.h (CONST_COSTS): Fix typo in computing cost of
+	CONST_DOUBLE for DImode integers.
+
+Fri May 31 16:11:57 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* cplus-lex.c (process_next_inline): Set line number and filename if
+	more inline data is to be processed.
+	(store_pending_inline): Treat FUNCTION_TYPE like METHOD_TYPE.  Use
+	current_class_type instead of extracting it from method type; the
+	two should be the same, and the latter doesn't work for statics.
+
+	* cplus-decl.c (start_decl): When constructing templates, use
+	original name of function rather than "mangled" name.  Look for
+	FUNCTION_DECL, not FUNCTION_TYPE, when deciding how to push the
+	new decl.
+	(start_method): Default inlining does not apply to template
+	expansions.
+
+	* cplus-pt.c (pending_template_expansions): Moved declaration to
+	start of file.
+	(tsubst): For FUNCTION_DECL, use original name of source, not
+	mangled name.
+	(instantiate_template): Local variables now non-static.  Fill in
+	pending-inline field of new decl, rather than template-info, and
+	chain into either pending-inlines or pending-template-expansions.
+
+	* cplus-typeck.c (build_x_function_call): If a template is found,
+	treat it as an overloaded declaration.
+
+Fri May 31 14:20:45 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (all.cross): New target.
+	* configure: If cross-compiling, change `ALL' to use all.cross.
+
+Fri May 31 11:43:31 1991  Matthew Self  (mself at next.com)
+
+	* tm-next.h (EXTRA_SECTION_FUNCTIONS):
+	Add new constructor and destructor sections.
+	(MAX_OFILE_ALIGNMENT): Define as 2^15 for Mach-O.
+	(ASM_OUTPUT_ALIGN): Use .align, not .even.  Allow alignments > 2.
+	(CPP_PREDEFINES): Added -Dm68k since some code expects this.
+
+Fri May 31 05:41:51 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-class.c (pushclass): New argument value for MODIFY accepted.
+	* cplus-decl2.c (build_push_scope): Call `pushclass' with MODIFY == 3.
+
+	* cplus-decl.c (finish_function): Set TREE_PUBLIC and TREE_EXTERNAL
+	bits on functions according to #pragma interface/implementation,
+	regardless of whether or not the function's inline.  This fixes the
+	bug of needless code replication with -fno-inline.
+
+Thu May 30 17:39:53 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_expr):
+	Don't lose volatility of fields in COMPONENT_REF.
+
+Thu May 30 17:36:45 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (count_reg_usage, delete_dead_from_cse): New functions.
+	* toplev.c (rest_of_compilation): Call delete_dead_from_cse immediately
+	after the first cse pass.
+
+	* local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem):
+	New functions, to find cases where a REG is equivalent to a MEM.
+	(optimize_reg_copy): New function.
+	(update_equiv_regs): Call these new functions.
+	Look for a register used in only one basic block being stored into
+	memory.
+	Keep track of loop depth so we can find regs used only once, but
+	inside a loop.
+	* reload1.c (reload): Use single_set when looking for an insn
+	that initializes a register.
+	If making a REG equivalent to a MEM, the insn with SET_DEST being
+	the register isn't always the one making the equivalence, since the
+	equivalence might be occurring due to a store into MEM; in that
+	case set reg_equiv_init to the latter insn.
+
+Thu May 30 14:23:01 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* Pending expansions processed at end-of-file can be processed out
+	of order, so freeing the associated data from the obstacks is not
+	possible.
+	* cplus-tree.h (struct pending_inline): New field can_free
+	indicates whether to free the text after processing it.
+	* cplus-lex.c (do_pending_inline, process_next_inline): If
+	can_free flag is set, specify inline-text obstack, otherwise null
+	pointer.
+	(cons_up_default_function): Clear flag.
+	(reinit_parse_for_method): Set it.
+	(store_pending_inline): Clear it when changing obstacks.
+	(pending_template_obstack): Deleted.  References changed to use
+	permanent_obstack.
+
+	* cplus-lex.c (store_pending_inline): Set DECL_PENDING_INLINE_INFO
+	value after swapping obstacks, not before.
+
+Thu May 30 07:23:18 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* va-sparc.h: Has to be a char * to be compatible with Sun.
+	i.e., we have to pass a `va_list' to vsprintf.  Also, fixed
+	bug in passing vararg structs.
+
+Thu May 30 00:32:18 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* configure: Delete Makefile.tem before writing it.
+
+	* stor-layout.c (layout_record):
+	Ignore PCC_BITFIELD_TYPE_MATTERS for incomplete type.
+
+	* fixincludes (stdtypes.h): Handle wchar_t like the other types.
+
+	* function.c (assign_parms): Don't declare args_so_far register.
+
+Wed May 29 15:13:05 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* cplus-tree.def (TEMPLATE_PARM_IDX): Deleted.
+	(TEMPLATE_TYPE_PARM): New node type, looks like a type node.
+	(TEMPLATE_CONST_PARM): New node type, looks like a const node.
+
+	* cplus-tree.h (IDENTIFIER_TYPE_VALUE_PTR): Inlined under gcc.
+	(TYPE_IDENTIFIER_PTR): Ditto.
+	(DECL_NESTED_TYPENAME_PTR): Ditto.
+	(struct lang_type): New bitfield `use_template'.
+	(CLASSTYPE_USE_TEMPLATE): Accessor macro for above.
+	(struct lang_decl): New field `template_info'.
+	(DECL_TEMPLATE_INFO): Accessor macro for above.
+	(TEMPLATE_EXPANSION_NAME_P): Deleted.
+	(push_overloaded_decl_top_level): Added declaration.
+	(TEMPLATE_TYPE_TPARMLIST, TEMPLATE_TYPE_IDX,
+	TEMPLATE_TYPE_SET_INFO, TEMPLATE_CONST_TPARMLIST,
+	TEMPLATE_CONST_IDX, TEMPLATE_CONST_SET_INFO): New macros for
+	accessing fields of TEMPLATE_..._PARM nodes.
+	(struct pending_inline): New fields for names and values to bind
+	to them while processing.
+	(struct template_info): Definition moved here from cplus-pt.c.
+	(instantiate_template): Added declaration.
+	(instantiate_class_template): Ditto.
+	(processing_template_{decl,defn}): New variable declarations.
+
+	* print-tree.c (print_node): Provide missing argument to
+	print_node for `bitpos' field.  Display `virtual' flag, and (for
+	function and method types) `class' field; these are only used by
+	C++ that I'm aware of, but are defined in common code, so they
+	should be displayed here.
+
+	* cplus-parse.y (template_def): Separate set of derivations, for
+	class and function templates.  Template_def is a type of extdef;
+	extern_lang_string before template_def is not permitted.
+	(fn_tmpl_end): New nonterminal, anything that signals the end of
+	the portion of a template that we should parse.
+	(yyprint): Define only if YYDEBUG.  Handle TYPESPEC.
+	(datadef): Complain at class template override declaration if that
+	specialization has already been produced by expansion.  Template
+	definitions no longer belong here.
+	(tmpl.2): Always call instantiate_class_template; let it decide
+	whether or not to go through with it.
+	(template_instantiation): Put decl in global scope only if not
+	already there.
+	(typespec, scoped_typename): Scoped typename inside template type
+	should be a scoped_typename, not a typespec.  However, a
+	template_type should be allowed as a typespec.
+	(structsp): Don't undo template name overload here.  Deleted
+	derivation from template_type.
+	(named_class_head_sans_basetype): Don't overload template name.
+	(LC): Do it here.
+	(notype_declarator): For scoped_id derivations, don't call
+	build_push_scope if the scoped_id is a SCOPE_REF.
+	(scoped_id): Moved old typespec-from-template_type rule here.
+	Call resolve_scope_to_name only if template parms aren't involved.
+
+	* cplus-pt.c (struct template_info): Definition deleted.
+	(templates, current_template_info): Variables deleted.
+	(processing_template_{decl,defn}): New variables.
+	(push_template_decls, pop_template_decls): Accept parmlist and
+	arglist as separate arguments, instead of deriving both from the
+	template.  If class_level is non-zero, push and pop a level,
+	making it transparent to tags.  Removed some pointless checks from
+	pop_template_decls that are only needed in push_template_decls,
+	and some assertions from both.  Callers changed.
+	(uses_template_parms): Return non-zero iff argument refers to any
+	TEMPLATE_*_PARM nodes.
+	(tsubst): Walk tree, substituting for template parms, returning
+	new tree.
+	(type_unification): Rewritten a bit, to make it work.  New
+	argument nsubsts is pointer to place to record number of
+	substitutions made when matching.
+	(unify): Renamed from unify1.  Rewritten completely, to work.
+	Still may need extending for some tree node types.
+	(do_pending_expansions): At end-of-file, expand any templates not
+	yet expanded which were actually needed.  Needs work to accomodate
+	latest specs.
+	(process_template_parm): Simplified slightly.  Non-type parms
+	should be marked read-only; aggregate types are not allowed, since
+	equality checks don't work.
+	(end_template_parm_list): Moved to after process_template_parm.
+	Push a level, and push decls for TEMPLATE_*_PARMs.  Set
+	processing_template_decl flag.
+	(end_template_decl): For non-class templates, build a
+	TEMPLATE_DECL and store the regular decl in its result field.
+	Context and other values get copied over too.  Call poplevel to
+	get rid of the TEMPLATE_*_PARM decls, and call
+	dont_forget_overload to avoid losing the declaration later.  Clear
+	processing_template_decl flag.  Call get_pending_sizes, so later
+	function compilation doesn't try to evaluate sizes of templates.
+	(mangle_class_name_for_template): Convert type/non-type check from
+	switch to if test.  Added support for ENUMERAL_TYPE, REAL_TYPE,
+	and POINTER_TYPE parms.
+	(instantiate_class_template): Renamed from old
+	instantiate_template.  Don't expand if type size is set, or if
+	being-defined flag is set, or use-template flag is non-zero.  If
+	other-template parms are used in the parm list, construct a simple
+	RECORD_TYPE node and return it.  Catch case of template declared
+	but not defined before use.  Renamed argument from class to
+	classname.  Set processing_template_defn flag.
+	(instantiate_template): New routine; constructs new decl node
+	given TEMPLATE_DECL node and template arg vector.
+	(end_template_instantiation):  Set use-template field to 2 ("did
+	use template").  Clear processing_template_defn flag.
+	(reinit_parse_for_template): Get template-info ptr from decl node.
+	Store template parm vector in it.
+	(pending_template_expansions): List of templates that may need
+	expanding later for function or class data definitions.
+
+	* cplus-method.c (build_overload_value): Ensure tree code is
+	PARM_DECL.  Handle ENUMERAL_TYPE like INTEGER_TYPE.  For DImode
+	values, compare against integer_zero_node instead of constructing
+	another one.  Added support for POINTER_TYPEs.  If not
+	REAL_IS_NOT_DOUBLE, support real values as well.
+	(build_overload_name): Accept TEMPLATE_*_PARM nodes, but generate
+	a string that should cause some assembler errors.
+
+	* cplus-ptree.c (print_lang_decl): Retrieve template-info from its
+	new place.
+	(print_lang_type): For TEMPLATE_TYPE_PARM, print its (short) info
+	and return.  For RECORD_TYPE, print use-template and interface-*
+	fields.
+
+	* cplus-search.c (push_class_decls): Don't call
+	push_template_decls; the bindings of template parameter names
+	should be associated with the template body, not with the class.
+	Do overload the template name, however.
+	(pop_class_decls): Don't call pop_template_decls.
+
+	* cplus-call.c (build_method_call): Changed to recognize
+	constructor of template class.
+	(build_overload_call): Add in number of template substitutions as
+	extra cost of a candidate function.  For template decls, try
+	unification and instantiation before evaluating cost of result.
+	This too is incorrect in terms of the spec, but it's a starting
+	point for later work.
+
+	* cplus-class.c (finish_struct): If structure is named, undo
+	overload of its name as a template.
+	(pushclass): If prev_class_type was a template class, pop it; the
+	decls are handled wrong and should be re-entered.
+
+	* cplus-decl.c (poplevel): Assert that the current level is not
+	global.
+	(push_to_top_level): Include global scope when looking for old
+	values, because class bindings aren't listed in any other one
+	place.
+	(push_overloaded_decl_top_level): New function; like
+	push_overloaded_decl, but places decl in global binding level.
+	(dont_forget_overload): New function; removes decl from list of
+	overloads to be forgotten when scope is exited.
+	(start_decl): If template parms are used, construct a
+	TEMPLATE_DECL node referencing the current decl.  For function
+	templates, call push_overloaded_decl; for class template members,
+	chain them into the class template definition.
+	(grokdeclarator): Don't try determining size of a
+	TEMPLATE_CONST_PARM node.  For template class-data decls,
+	construct a phony VAR_DECL node and return it.
+
+	* cplus-decl2.c (grokfield): For static class data, use
+	build_overload_name result, instead of copying class name, since
+	the latter could be a human-readable template class name.  (If
+	NEW_OVERLOAD_SCHEME is not defined, do this only if the class has
+	a template-derived name.)
+
+	* cplus-lex.c (pending_template_obstack): New variable; obstack
+	for pending-template stuff to be saved to end-of-file.
+	(init_lex): Initialize it.
+	(default_def): New variable; used for default definition of copy
+	constructors and destructors.
+	(do_pending_inlines): Figure out whether text is in an obstack,
+	and which one, for calling feed_input.  Push template decls if
+	needed, as specified in pending_inline data.  Pass current
+	pending_inlines pointer back in PRE_PARSED_FUNCTION_DECL instead
+	of next.
+	(process_next_inline): Ditto.  Pop pending inline data if needed.
+	(store_pending_inline): New function.  Decides which obstack to
+	store a pending definition on, and which list to chain it into.
+	(reinit_parse_for_method): Call it.
+	(reinit_parse_for_block): If character passed in is '=', look for
+	a semicolon to end the block; don't require a {} block.  Don't pad
+	to 8 bytes on USG, since we aren't feeding input via stdio any
+	more.  Also, use newlines instead of # directives for advancing
+	line number only a few lines.
+	(cons_up_default_function): Punt padding for USG stdio, since we
+	aren't using it any more.  Use default_def for definition.  Call
+	store_pending_inline to save it away.
+	(identifier_type): For TEMPLATE_DECL, DECL_RESULT field non-null
+	indicates a non-type template, so don't return PTYPENAME.
+	(yylex): If end-of-file and input isn't redirected, call
+	do_pending_expansions and maybe start yylex over.  Don't check
+	TEMPLATE_EXPANSION_NAME_P; a proper name transformation system
+	will eliminate conflicts.  Try for SCOPED_TYPENAME with PTYPENAME
+	too.
+
+Wed May 29 11:48:34 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cccp.c (do_include): Check that ->control_macro is non-zero.
+
+	* gcc.c (process_command): Use `error' in last change.
+
+Wed May 29 11:10:12 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (movdi): Accept CONST_INT.
+	* out-m88k.c (output_load_const_dimode): Accept CONST_INT.
+	(output_call): Don't use #plt for jsr.
+
+Wed May 29 00:51:36 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-type2.c (build_functional_cast): Give error if functional
+	cast is missing argument.
+
+	* cplus-tree.h (interface_unknown): Add a declaration for this
+	variable.
+
+	* cplus-type2.c (store_init_value): Normally initialized PIC data
+	must be laid into the text segment and then copied into the data
+	segment.  But cecause of special things we do for ctors and dtors
+	(the only things that can reference such things), we can leave
+	vtables in initialized data space.
+
+	* cplus-decl.c (finish_decl): Use #pragma interface knowledge if
+	available for processing initialized variables of type const.
+
+Tue May 28 18:39:20 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* sched.c ({true,anti,output}_dependence): Correct MEM_IN_STRUCT_P
+	code; only avoid conflict if MEM_IN_STRUCT_P ref has varying address.
+
+	* protoize.c (stat): Remove declaration of stat; it is defined
+	differently (no const in arg 1) on some machines.
+
+	* combine.c (simplify_shift_const): Avoid infinite loops by quitting
+	when COUNT becomes zero; delete now-unnecessary tests on COUNT.
+
+	* flow.c (last_mem_set): New variable.
+	(propagate_block): Initialize it.
+	Show calls can change memory.
+	(insn_dead_p): Remove unneeded arg STRICT_LOW_OK; don't treat
+	STRICT_LOW_PART differently than ZERO_EXTRACT.
+	All callers changed.
+	If insn stores into the same, nonvolatile, MEM as recorded in
+	last_mem_set, it is dead.
+	(mark_set_1): If writing into register mentioned in last_mem_set or
+	writing into memory, clear last_mem_set.
+	Record last MEM written.
+	(find_auto_inc): New function, from mark_used_regs.
+	Add support for pre-increment and pre-decrement.
+	(mark_used_regs, case MEM): Clear last_mem_set.
+	Call find_auto_inc; move code to there.
+	(mark_used_regs, case SET): Don't call recursively on MEM if it is
+	SET_DEST, instead call find_auto_inc ourselves.
+
+Tue May 28 17:29:52 1991  Micheal Tiemann  (tiemann at wookumz.gnu.ai.mit.edu)
+
+	* gnulib1.c (__fixsfsi, __cmpsf2, __extendsfdf2): Add declarations
+	for intify.
+
+	* gcc.c (default_compilers): Accept `.cxx' as a C++ extension.
+
+Tue May 28 17:05:28 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (movstrsi): Pass original MEM expressions.
+	* out-m88k.c (expand_block_move, block_move_{sequence,no_loop,loop}):
+	Use original MEM expressions to set RTX_UNCHANGING_P, MEM_VOLATILE_P,
+	and MEM_IN_STRUCT_P.
+
+	* out-m88k.c (emit_bcnd): Use bxx when optimizing so jump_optimize
+	will work on more cases.  Change this back when jump_optimize uses
+	get_condition to find the values being compared.
+
+	* m88k.md: Don't use operand0 or operand1.
+
+Tue May 28 16:00:56 1991  Micheal Tiemann  (tiemann at wookumz.gnu.ai.mit.edu)
+
+	* emit-rtl.c (try_split): Make sure `after' exists before checking
+	to see if it is a BARRIER.
+
+Tue May 28 15:08:44 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gcc.c (process_command): Warn if -x follows last input file.
+
+	* cccp.c: Don't include file twice if a #ifndef would make it a no-op.
+	(struct file_name_list): New field, control_macro.
+	Initialize it where these structures are created.
+	(struct if_stack): Likewise.
+	(do_include): If file already known, check its control macro if any.
+	Don't include the file if the macro is now defined.
+	(do_xifdef): Detect case of successful #ifndef at start of file.
+	(condition_skip): Accept macro name as new arg.  Record in if_stack.
+	(do_endif): Detect being effectively at end of file.
+	(record_control_macro): New function.  Called from do_endif.
+
+	* calls.c (store_one_arg): Set used after calling push_rounding.
+
+	* sparc.md (floating move peepholes): Allow `r' for operand 2.
+
+	* arm.md, tm-arm.h, out-arm.c, xm-arm.h: New files.
+	* configure (arm): New alternative.
+
+Tue May 28 11:53:21 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-decstatn.h (CPP_PREDEFINES): Add Ultrix 4.2 support.
+
+	* tm-mips.h (cmp_type, branch_cmp, branch_type): Global variables
+	and type to record what type of comparison is being done.
+	(mips_print_operand_punct): New array to specify whether a
+	character is valid for print_operand as punctuation.
+	(set_nomacro, set_noat, set_noreorder): New variables to record
+	whether a .set nomacro, .set noat, or .set noreorder has been
+	done.
+	(dslots_{filled,total}_{load,jump}): New global variables to
+	remember how many delay slots exist and are filled for the -mstats
+	option.
+	(CC1_SPEC): Combine %{O:...} %{O*:...} cases.  For -G32, pass -G
+	32.  Add dummy pattern for -save-temps to avoid error message.
+	(DBX_DEBUGGING_INFO): Define this all the time.
+	(SDB_ALLOW_FORWARD_REFERENCES): Define this for MIPS ECOFF support.
+	(SDB_ALLOW_UNKNOWN_REFERENCES): Define this for MIPS ECOFF support.
+	(TARGET_SWITCHES): Add -mstats to print interesting statistics.
+	Add -mmemcpy to force memcpy to be called.  Add -mdebug[fghij].
+	Add -mno- version of switches.
+	(DATA_ALIGNMENT): Align all char/short arrays/unions/structures,
+	rather than just char arrays.
+	(BYTE_LOADS_ZERO_EXTEND): Define this.
+	(CONST_OK_FOR_LETTER_P): 'N' returns true if power of 2.
+	(EXTRA_CONSTRAINT): Redefine 'Q' to be 1 word memory references,
+	'R' to be multiword memory references.
+	(struct frame_info): Add initialized field.
+	(current_frame_info): New global structure to hold frame info.
+	(INITIAL_FRAME_POINTER_OFFSET): Use current_frame_info.
+	(INIT_CUMULATIVE_ARGS): Pass LIBNAME to init_cumulative_args.
+	(DELAY_SLOTS_FOR_EPILOGUE): Define this to fill j $r31 delay slot.
+	(ELIGIBLE_FOR_EPILOGUE_DELAY): Ditto.
+	(ENCODE_SEGMENT_INFO): Don't flag references to 0-sized arrays as
+	being in the small data segment.
+	(CONST_COSTS): Reword to be more accurate.
+	(RTX_COSTS): Define this.
+	(ADDRESS_COST): Define this.
+	(CLASS_CMP_OP, CLASS_EQUALITY_OP, CLASS_UNS_CMP_OP): New bits for
+	rtx_classify to classify various comparison operators.
+	(FINAL_PRESCAN_INSN): Define this to collect info for -mstats.
+	(NOTICE_UPDATE_CC): Only do CC_STATUS_INIT if the insn is a
+	comparison.
+	(EXTRA_CC_MODES): Define new modes CC_EQmode, CC_FPmode, CC_0mode.
+	(EXTRA_CC_NAMES): Define this.
+	(SELECT_CC_MODE): Define this.
+	(PRINT_OPERAND_PUNCT_VALID_P): Redefine this to index into
+	mips_print_operand_punct.
+	(DBR_OUTPUT_SEQEND): Reset .set reorder, .set macro as appropriate.
+
+	* out-mips.c (branch_cmp, branch_type): New Global variables
+	and type to record what type of comparison is being done.
+	(mips_print_operand_punct): New array to specify whether a
+	character is valid for print_operand as punctuation.
+	(set_nomacro, set_noat, set_noreorder): New variables to record
+	whether a .set nomacro, .set noat, or .set noreorder has been
+	done.
+	(dslots_{filled,total}_{load,jump}): New global variables to
+	remember how many delay slots exist and are filled for the -mstats
+	option.
+	(reg_or_0_operand): Rewrite to add support for CONST_DOUBLE.
+	(mips_const_double_ok): Allow normal FP constants (not Infinity,
+	Nan, etc) to be used as operands when using the MIPS assembler.
+	(simple_memory_operand): Combine GP memory references from
+	gp_memory_operand.  Delete gp_memory_operand.
+	(equality_op): Return true if EQ or NE.
+	(cmp_op): Return true if comparison operator.
+	(uns_cmp_op): Return true if unsigned comparison.
+	(mips_move_1word): New name for mips_move_instructions.  Also, loads
+	of HImode/QImode use unsigned loads, rather than signed loads, so
+	that BYTE_LOADS_ZERO_EXTEND can be defined.  Use %z to get name of
+	$0, instead of hardwiring it.  Explicitly use lui where appropriate.
+	(mips_move_2words): New name for mips_move_2words_instructions.  Use
+	%z to get name of $0, instead of hardwiring it.
+	(mips_address_cost): New function to define ADDRESS_COST macro.
+	(gen_conditional_branch): New function to generate all of the tests
+	and branches.
+	(block_move_sequence): New function to generate straight line code
+	for block moves.
+	(block_move_call): New function to set up a call to memcpy/bcopy as
+	appropriate for block moves.
+	(expand_block_move): New function which is called from the movstrsi
+	define_expand, to set up block moves.  At present, unless -mmemcpy
+	is used, moves of less than 32 bytes, get straight line code, all
+	others get a call.
+	(init_cumulative_args): Take libname as third argument.
+	(function_arg_partial_nregs): Fix bug, to not return a negative
+	number when passing small structs in registers.
+	(compare_collect, compare_restore): Remove these functions, since
+	they are no longer called.
+	(override_options): Initialize mips_rtx_classify for all of the
+	comparison operator bits.  Initialize mips_print_operand_punct to
+	return TRUE for each of the valid punctuation characters used in
+	print_operand.
+	(print_operand): %X now prints 32 bit ints in hex format.  %z now
+	prints $0 if the operand is the constant integer 0.  %(, %) now turn
+	on/off both .set noreorder/.set nomacro.  %<, %> turns on/off .set
+	nomacro.  %* turns on both .set noreorder and .set nomacro if
+	filling delay slots.  %! turns on .set nomacro if filling delay
+	slots.
+	(compute_frame_size, save_restore, function_prologue,
+	function_epilogue): Change the calling sequence of
+	compute_frame_size to save everything in a global structure, which
+	has an initialized field to indicate that compute_frame_size needs
+	to be called.
+	(function_prologue): INIT_CUMULATIVE_ARGS now takes 3 args.
+	(function_epilogue): If current_function_epilogue_delay_list is
+	non-null, use that to fill the final delay slot.  Also, make sure
+	the various asm .set's are reset properly.  Write interesting
+	statistics out to stderr if -mstats.
+	(mips_epilogue_delay_slots): New function to return # of delay slots
+	the epilogue needs.
+	(null_epilogue):  Return true if the function has a null epilogue,
+	which allows the optimizer to omit jumps to the final j $31 if no
+	stack was created.
+
+	* mips.md (type attribute): Redo how the type attributes work, and
+	change some names.
+	(mode attribute): New attribute to describe the insn's result mode.
+	(length attribute): New attribute to give insn length in words.
+	(dslot attribute): New attribute to return whether an insn needs a
+	delay slot.
+	(define_delay): Use dslot and length attributes to determine if a
+	delay slot is needed.
+	(define_function_unit): Define all of the function units now.
+	(all patterns): Provide new attribute definitions.
+	(all memory reference patterns): modify alternatives to use 'Q' for
+	1 word instructions, 'R' for multiword instructions.
+	(unnamed patterns): Provide names for all patterns, so that -dp will
+	pinpoint exactly which pattern is used.
+	(*divsi3, *divmodsi4, *modsi3): If optimizing and not -mdebugc, use
+	the *divmodsi4 patterns, so that the opimizer will only use 1 divide
+	if doing a = b / c; d = b % c;  This replaces the peepholes, which
+	previously were used for this.  If not optimizing, use the normal
+	div/mod patterns.
+	(zero_extendqihi2, extendqihi2): Allow zero/sign extending from
+	memory.
+	(fixuns_trunc{df,sf}si2): Use generator patterns to generate
+	appropriate branches.
+	(movsi_ulw, movsi_usw): New patterns to generate the appropriate
+	unaligned load/store for use in the block move expansion.
+	(mov*): Provide all possible combinations of moves.
+	(movstrsi): New pattern to generate block moves.
+	(negsi2): Change to a define_expand, which uses minus.
+	(one_cmpsli2): Change to a define_expand, which use the nor pattern.
+	(cmp*, b*): Redo comparison/branch completely to save things in
+	global variables, call the common C code to expand the branch, and
+	provide match_operators to do the actual branch.
+	(s*): Provide for the ability to set a register with an integer
+	comparison, without using a branch.
+
+	* make-decrose (AUX_OUTPUT2): Delete macro, since aux-output.c is
+	always compiled separately now.
+	(LANGUAGES): Suppress G++, Objc temporarily.
+	(cse.o): Rebuild cse if the config files change, to get new cost
+	functions, no longer rebuild calls/function since the FUNCTION_ARG
+	macros just call functions in out-mips.c.
+	(SRCS): Change $(AUX_OUTPUT2_SRC) to aux-output.c.
+
+	* make-mips (AUX_OUTPUT2): Delete macro, since aux-output.c is
+	always compiler separately now.
+	(CONFIG2_H): Add rules to rebuild selected modules when the
+	tm-mips.h file changes.
+	(mips-tfile): Rules to build mips-tfile.
+	(mips-tdump): Rules to build mips-tdump.
+	(LANGUAGES): Suppress G++, Objc temporarily, build mips-tfile.
+
+	* mips-tfile.c (whole file): New file to put the MIPS specific debug
+	information into the object file, after the assembler has been run.
+	This is needed because the MIPS assembler provides no method of
+	setting up the debug information for local variables.  This is
+	enabled by the make-mips Makefile modifier.
+
+	* mips-tdump.c (whole file): New file to dump the contents of the
+	MIPS ECOFF symbol table in a symbolic format.  This is not currently
+	built by default, but make-mips contains rules to build it.
+
+	* tm-decrose.h (MD_EXEC_PREFIX): Change to use the test prefix
+	/usr/ccs/gcc-2.00/gcc- instead of the release prefix /usr/ccs/gcc.
+	(WCHAR_TYPE_SIZE): Define as 16.
+	(WCHAR_UNSIGNED): Define as 1.
+	(DBX_DEBUGGING_INFO): Define moved to tm-mips.h.
+
+
+Tue May 28 06:26:44 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expmed.c (store_bit_field, extract_bit_field): If -fforce-mem
+	specified, copy OP0 into register (and back again, for store).
+
+	* sched.c (memrefs_conflict_p, {true,anti,output}_dependence): Add
+	missing parens.
+
+	* reload.c (find_reloads): Turn usage of reg_preferred_class back on
+	now that the code has been refined.
+
+Mon May 27 12:41:14 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_binary_op_nodefault): Set converted for shifts,
+	so op1 is not converted to the result type.
+	Clean up some warning messages.
+
+	* expr.c (expand_expr): Use temp stack slot for BLKmode SAVE_EXPR.
+
+	* Makefile.in (alloca.o): Use new vars ALLOCA_FLAGS and ALLOCA_FINISH.
+
+Mon May 27 05:42:20 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* sched.c ({read,true,anti,output}_dependence): Remove unused arg INSN.
+	All callers changed.
+
+	* combine.c (subst, case PLUS): Fix typo in (plus (plus X C) Y) case.
+	(subst, case MULT): Distribute MULT over PLUS to try to simplify it.
+
+Mon May 27 05:15:16 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* tm-sparc.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept a SYMBOL_REF
+	sum if FLAG_PIC is not 1.  This forces the -fPIC to take effect,
+	even when the optimizer knows how to stitch together HIGH and LO_SUM
+	combinations.
+	(PRINT_OPERAND): Move body to out-sparc.c.
+	* out-sparc.c (print_operand): New function, implementing actions of
+	old PRINT_OPERAND macro.  Comments written for all cases.
+	(reg_unused_after): Don't do anything special with JUMP_INSNs.  Only
+	do something special with CALL_INSN if REGNO is a call-used reg.
+
+	* cplus-type2.c (store_init_value): Back out 23 Feb change, which
+	was completely backward.
+
+	* dbxout.c, cplus-dbxout.c (dbxout_parms): Also test that TREE_TYPE
+	(PARMS) is not ERROR_MARK_NODE.
+
+	* cplus-init.c (build_up_reference): Check FLAGS parameter to see if
+	we can accept building a reference to a constructor-generated
+	temporary.
+	(various places): Change calls to `build_up_reference' that used to
+	use an explicit `1' to use LOOKUP_PROTECT instead.
+	(build_offset_ref): Use IDENTIFIER_TYPE_VALUE macro to the the type
+	associated with CNAME.
+
+	* cplus-class.c (build_vbase_path): Fix 11 May change by only
+	changing TREE_TYPE (EXPR) if NULL_EXPR.  We might build different
+	vbase paths for the same expr in multiple inheritance
+	initialization.
+
+	* Makefile.in: Change sed script so it matches '^# ' instead of just
+	'^#'.  This allows processing of md files with #if/#endif controls
+	in their C function bodies.
+
+	* cplus-tree.c (build_cplus_new): Set TREE_SIDE_EFFECTS on RVAL.
+
+	* stmt.c (warn_if_unused_value): Don't warn about EXIT_EXPRs.
+	(expand_decl_cleanup): Add missing type declarations for parameters.
+
+	* cplus-call.c, cplus-class.c, cplus-dbxout.c, cplus-edsel.c: Include
+	stdio.h after cplus-tree.h since the latter references printf.
+	* cplus-search.c, cplus-xref.c: Likewise.
+	* cplus-class.c (prev_class_type): Not static; defined in cplus-tree.h.
+	* cplus-decl.c (builtin_function, auto_function): Don't put & in
+	front of function name.
+	* cplus-typeck.c (comptypes,comp_target_types): Likewise.
+	* cplus-search.c (report_ambiguous_mi_virtuals): Likewise, for arrays.
+
+Sun May 26 22:47:35 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-decl.c (make_temporary_for_reference): New function.  Split
+	out code from `grok_reference_init' so we could call it in two
+	places: where it was called before, and when initializing a
+	reference through a constructor for a temporary.
+	(grokdeclarator): Give error message instead of aborting if user
+	gave method qualifiers for function decl.
+	(start_function): Switch to temporary obstack before computing
+	destructor and constructor labels, and before building the
+	function's RESULT_DECL.
+
+	* cplus-decl.c (store_parm_decls): Make a cleanup that controls the
+	action of the garbage collector.  This ensures that the call to
+	__gc_pop doesn't get skipped in the function issues a return stmt.
+	* cplus-gc.c (expand_gc_prologue_and_epilogue): Work with new
+	cleanup model.
+
+	* cplus-gc.c (build_i_desc): Figure out whether the i_desc should
+	constitute a defn of its type or not.
+
+	* cplus-typeck.c (c_expand_return): Look through TARGET_EXPR as well
+	as NEW_EXPR for returning addresses of local variables.
+
+	* reload.c (find_reloads): Intialized `goal_alternative_swapped'
+	where `swapped' is initialized to zero.
+
+Sun May 26 21:29:26 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* recog.c (const_double_operand): Fix typo.
+	* reload1.c (choose_reload_regs): Fix typo--swap #endif with }.
+
+	* loop.c (init_loop): Multiply copy_cost by 2.
+	(general_induction_var): Use rtx_cost directly.
+	(expr_benefit): Function deleted.
+
+	* m68k.md (andsi3): Generate bclr if appropriate.
+
+	* cccp.c (do_undef): Just a warning, if deleting something unusual.
+
+Sun May 26 18:51:33 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+
+	* expr.c (force_operand): When calling recursively, use
+	a temporary to force evaluation of calls.  The C language
+	allows `f (g (x), g (y))' to be evaluated in different orders
+	on different hosts, which could lead to different code
+	generation for different hosts.
+
+	* recog.c (const_double_operand): New function for recognizing
+	CONST_DOUBLE rtx's.
+
+	* expmed.c (expand_mult_add): Add new parameter TARGET which is a
+	suggestion of where to store the result; pass it to expand_expr.
+	* loop.c (emit_iv_add_mult): Pass REG to expand_mult_add call as
+	target for the result.
+
+	* gmicro.md, old-sparc.md, pyr.md: Delete obsolete UMULT patterns.
+
+	* expmed.c (expand_mult): Convert DImode constants to a CONST_INT
+	if possible, so that multiplies by these can be optimized by the
+	existing code.
+
+Sun May 26 00:59:42 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gcc.c (process_command): -save-temps is always valid.
+
+	* varasm.c (output_constructor): Don't crash if val == 0.
+
+	* cse.c (refers_to_mem_p): Handle constant addresses.
+
+	* cccp.c (main): Don't store thru last_include if null.
+
+Sat May 25 06:33:19 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads): Don't assume we have at least two operands
+	when we check for a simple copy.
+
+	* sched.c (update_reg_known_value): Deleted.
+	(init_alias_analysis): If have REG_EQUIV note, can always use NOTE's
+	value irrespective of number of sets.
+	Take known value from note, not SET_SRC.
+	(memrefs_conflict_p): Remove gotos.
+	ASHIFT can't occur in an address.
+	(true_dependence, anti_dependence, output_dependence): Take into
+	account the fact that a MEM_IN_STRUCT_P reference cannot conflict
+	with a non-MEM_IN_STRUCT_P reference at a fixed address.
+
+Fri May 24 11:34:39 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (cplus-tab.c): Put back -d option.
+
+Fri May 24 06:46:07 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtl.c (rtx_alloc): Ensure we keep the obstack aligned.
+
+Fri May 24 00:17:13 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* reload1.c (choose_reload_regs): Try with inheritance, then without.
+	#if 0 the code to avoid inheritance in certain cases.
+
+Fri May 24 00:13:40 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* out-i386.c (split_di): Check for CONST_DOUBLE before CONSTANT_P.
+
+	* tm-i386.h (LIMIT_RELOAD_CLASS): new macro.
+	(PREFERRED_RELOAD_CLASS): a CONST_DOUBLE can appear in narrower
+	classes than GENERAL_REGS.
+
+	* reload.c (push_reload): Limit reload class even if the SUBREG has
+	already been stripped.
+
+Thu May 23 11:08:21 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+
+	* sched.c (schedule_insns): Don't schedule a block if the only insn is
+	a CODE_LABEL.
+
+Thu May 23 07:54:57 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (choose_reload_regs): Process reload in first pass if
+	a subsequent reload requires fewer registers.
+	Change criteria for processing from being a strict superset to 
+	having an intersecting, non-equal class.
+	Ignore optional and turned-off reloads in loop to see what is forced
+	to be allocated in first pass.
+
+	* toplev.c (compile_file): Fix typo in length of string to allocate
+	for sched2 dump's name.
+
+	* jump.c (find_cross_jump): Don't crash if single_set returns 0.
+
+	* recog.c (general_operand): A SUBREG of a constant is never valid.
+
+	* local-alloc.c (qty_compare, qty_compare_1): Make priority function
+	the same as in global-alloc: quantities with shorter lives are
+	allocated first.  This can speed up some code by a factor of three.
+
+Wed May 22 17:40:49 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (emit_reload_insns): Fix some minor bugs in making
+	REG_DEAD notes and recording insn that does store; code sometimes
+	assumed that each call to gen_move_insn produced at most one insn.
+
+Wed May 22 16:51:53 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* reload.c (push_reload): Support LIMIT_RELOAD_CLASS.
+
+Wed May 22 14:14:51 1991  Micheal Tiemann  (tiemann at wookumz.gnu.ai.mit.edu)
+
+	* jump.c (jump_optimize): Update the three simplifications that
+	start with the "if (...) x = 1;" case.  Add comments explaining how
+	to make them more machine independent, and comments explaining how
+	they might fail in the future.  Ifdef out the second case, and add
+	code explaining why it does not work.
+
+	* rtl.h: Put definition of FUNCTION_FLAGS_USES_CONST_POOL here.
+	* integrate.c: Remove definition of it here.
+
+	* integrate.h: New fields in struct inline_remap, min_insnno and
+	max_insnno, which indicate the range of insns covered by insn_map.
+	* integrate.c (expand_inline_function): Set min_insnno and max_insnno.
+
+Wed May 22 12:31:53 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* tm-vaxv.h (ASM_OUTPUT_LOCAL): Use data_section.
+
+	* protoize.c (fancy_abort): Define it.
+	* objc-parse.y (yyprint, set_yydebug): New functions.
+
+	* tree.h (gettags, get_permanent_types, get_temporary_types):
+	Declare them.
+
+	* Makefile.in (protoize.o, unprotoize.o):
+	Use the standard flags and include dirs.  Don't use -Wall.
+	* protoize.c (abort): Declaration deleted.
+
+	* cccp.c (main): Ensure `next' field in directory list is initialized.
+
+Wed May 22 09:27:49 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* expmed.c (synth_mult): Return cost of -1 if shift is too
+	expensive.
+
+Wed May 22 07:53:52 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* out-sparc.c (output_move_double): More SImode->Pmode fixes.
+
+Wed May 22 02:43:02 1991  Micheal Tiemann  (tiemann at wookumz.gnu.ai.mit.edu)
+
+	* Makefile.in, emit-rtl.c, explow.c, final.c, global-alloc.c,
+	gnulib2.c, hard-reg-set.h, regclass.c, reload1.c, cccp.c: Fix typos
+	and indentation.
+
+Wed May 22 00:14:37 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* combine.c (try_combine): Add to last change; handle subreg
+	in src as well as in dest of i3.
+
+Tue May 21 22:32:08 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* m68k.md (dbra): Rewrite pattern so it reflects simplifications that
+	combine will make.
+
+Tue May 21 10:44:05 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+
+	* loop.c (strength_reduce): When a loop-vtop note is encountered,
+	reset `not_every_iteration'.
+
+Tue May 21 00:17:31 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-decl.c (init_decl_processing): Always use long type for size_t.
+
+	* varasm.c (assemble_variable): Use ASM_DECLARE_OBJECT_NAME.
+
+	* protoize.c: Include config.h.
+	(chmod, kill): Declarations deleted.
+	They aren't needed, and can conflict with system headers.
+	(wait): BSD declaration deleted.
+	(save_def_or_dec): Add missing fprintf arg.
+
+	* tm-next.h (EXTRA_FORMAT_FUNCTIONS): Fix typo.
+
+	* protoize.c: Use USG and VMS as most files do.
+	Don't expect BSD to be necessary defined outside this file.
+	Define getwd using getcwd, not vice-versa, to be like dbxout.c.
+	* cccp.c, SYSCALLS.c: Use USG and VMS as most files do.
+	Don't expect BSD to be necessary defined outside this file.
+
+Mon May 20 16:54:17 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* tm-i386.h, tm-att386.h, tm-bsd386.h, tm-sun386.h (ASM_BYTE_OP):
+	Renamed from ASM_BYTE.
+	* varasm.c (ASM_BYTE_OP): Likewise.
+
+	* c-decl.c, cplus-class.c (finish_struct): Typo:
+	Had PCC_BIT_FIELD_MATTERS which is now PCC_BITFIELD_TYPE_MATTERS.
+
+	* gcc.c (handle_braces): Don't deref input_suffix if null.
+
+Mon May 20 15:19:27 1991  Michael I Bushnell  (mib at geech.gnu.ai.mit.edu)
+
+	* cccp.c (pcfinclude): STRINGDEF struct is now longword aligned.
+
+Mon May 20 14:26:18 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* sparc.md: Remove all arithmetic, logical, and shift patterns for
+	sub-SImode operands.  Also fix some DImode patterns.
+
+	* out-sparc.c (emit_move_sequence): Simplified considerably.
+
+	* rtl.c (rtx_alloc): Inline-code an optimized obstack_alloc.
+
+	* cplus-lex.c (make_{pointer,reference}_declaration): Call
+	`build_parse_node' instead of `build1' so memory can be freed.
+
+	* cplus-parse.y: Remove unneeded epsilon rules to produce an average
+	15% reduction in the number of reductions performed.
+
+	* cplus-parse.y (RETURN_INIT): Use new interface to speed up
+	grammar.
+	* cplus-decl.c (store_return_init): Use new interface.
+
+Mon May 20 11:16:34 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+
+	* sched.c (schedule_block): A register which dies in a CALL_INSN
+	does not cross calls.  A single insn block must be scheduled, to
+	ensure that register lifetime info is corrected updated.
+
+Mon May 20 06:50:37 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): Don't combine when I1 and I2 both feed
+	into I3 and I1 uses the register set in I2.
+
+	* reload.c (find_reloads): Prefer pseudos over other things we may
+	reload.
+
+Mon May 20 02:02:15 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* combine.c (try_combine): Test MODES_TIEABLE_P when i3 src is subreg.
+
+	* m68k.md (trunc*): Don't set cc if use wider insn.
+
+Sun May 19 14:45:46 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* Makefile.in (clean): Delete stage1...stage4.
+	(realclean): Delete cexp.output.
+
+	* fixincludes: Handle BSD43__IO* and BSD43_CTRL like IO* and CTRL.
+
+Sun May 19 15:00:05 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* reload1.c (count_possible_groups): New function.
+	(reload): Call it twice.  This checks for possible groups
+	after maybe spilling some single regs.
+
+	* configure (magnum, m3230): Aliases for mips/mips.
+
+	* fixincludes (machine/cpu.h):
+	Create in proper dir.  Fix mips/cpu.h too.
+
+	* reload.c (find_reloads): Turn off usage of reg_preferred_class.
+
+Sun May 19 09:51:24 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* flow.c (mark_used_regs): Continue putting REG_DEAD notes on 
+	fixed registers.
+
+	* regclass.c (reg_class_record): Don't count classes in which objects
+	won't fit.
+
+	* reload.c (find_reloads): Pre-compute preferred classes for each
+	operand; if operand 1 is copied to operand 0, merge the classes.
+	REJECT is now only 1/3 as costly as LOSERS; ? adds 3 to REJECT so
+	that it's semantics don't change.
+
+	* expr.c (compare_from_rtx): Do EQ and NE comparisons unsigned since
+	they are usually cheaper and will cse with comparisons against zero
+	which are already unsigned.
+
+	* reload1.c (choose_reload_regs): Don't try to access reload_out
+	for disabled reload (reload_strict_low may not have been cleared).
+
+	* reload1.c (choose_reload_regs): Don't let optional reloads inherit
+	spill regs until all non-optional reloads have been allocated spill
+	regs.
+	We can use find_equiv_reg even if must_reuse, we just can't get a
+	spill reg that way.
+
+	* expr.c (do_tablejump): When using LABEL_REF in arithmetic, make it
+	in Pmode instead of VOIDmode.
+
+	* function.c (fixup_var_refs_1): Don't try to make paradoxical
+	memory SUBREGs; instead keep SUBREG_REG a pseudo and copy between
+	memory and the pseudo.
+	(fixup_memory_subreg): Abort if we try making paradoxical SUBREGs.
+
+	* reorg.c (redundant_insn_p): Insns we pass may reference resources
+	set by INSN; it is sufficient that they not set resources in INSN.
+
+Sun May 19 08:06:17 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* tm-sparc.h (STRUCT_VALUE): Change SImode to Pmode here, and in
+	other places.
+	(FIRST_PARM_OFFSET): Change 4 to UNITS_PER_WORD here, and in other
+	places.
+	(ROUND_ADVANCE): New macro to compute how far to advance the arg
+	pointer for a give parameter.
+	(FUNCTION_ARG): Use PARM_BOUNDARY instead of 32.
+	(EXTRA_CONSTRAINT): Don't depend on `reload_completed'.
+	* sparc.md (various places): Change many DImode predicates from
+	`general_operand' to `register_operand'.
+
+	* jump.c (find_cross_jump): Fixed 18 May change to use
+	`validate_change' to make sure we get valid, initialized values
+	regardless of which path we choose.
+
+Sat May 18 15:07:29 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cccp.c: Rename FATAL_EXIT_CODE to FAILURE_EXIT_CODE.
+
+	* gnulib1.c: Rename SFVALUE to FLOAT_VALUE_TYPE.
+	(union flt_or_value): New type.
+	(*): Use that instead of flt_or_int in most places.
+	Delete some variables `intify' that aren't needed.
+	* tm-i386.h: Rename SFVALUE to FLOAT_VALUE_TYPE.
+
+	* stor-layout.c (layout_record): BITFIELD_NBYTES_LIMITED now 1 or 0.
+
+	* rtl.h (struct rtx_def): Drop SHORT_ENUM_BUG; keep ONLY_INT_FIELDS.
+
+	* loop.c (add_cost, copy_cost):
+	Variables replace old macros *_BENEFIT and COPY_PENALTY.
+	(init_loop): New function to set the variables.
+	(expr_benefit): Use rtx_cost.
+	* toplev.c (compile_file): Call init_loop.
+	* cse.c (rtx_cost): Treat mult by 2**n as a shift by default.
+
+	* toplev.c (output_file_directive):
+	Typo in ASM_OUTPUT_MAIN_SOURCE_FILENAME.
+
+	* gnulib2.c [L_trampoline]: Rename function to __trampoline.
+	Always compile it even if empty.  Make it global.
+
+Sat May 18 14:11:37 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads): Remove unnecessary test when increasing
+	cost of alternative due to non-preferred register class.
+
+	* reload1.c (choose_reload_regs): Fix typo.
+
+	* tm-rs6000.h: Add hard registers for the 8 CR fields; add classes
+	CR0_REGS and CR_REGS.
+	Don't use CC0; add CCUNSmode and CCFPmode.
+	(FIXED_REGISTERS): r31 (fp) is no longer fixed.
+	(REG_CLASS_FROM_LETTER): Remove 'd' for GENERAL_REGS; 'r' already
+	means this.
+	(CONST_DOUBLE_OK_FOR_LETTER): If we can move a constant in two insns
+	for DF or one insn for SF, let it match 'G'.
+	(SECONDARY_RELOAD_CLASS): Define this new macro.
+	(FUNCTION_ARG): Fix typo in testing nargs_prototype.
+	(LEGITIMATE_CONSTANT_P): Always return 1.
+	(FIXUNS_TRUNC_LIKE_FIX_TRUNC): Do not define.
+	* rs6000.md: Don't use CC0; instead use a pseudo which will be assigned
+	to CR_REGS or CR0_REGS.  Make variants of arithmetic insns that
+	set only the condition code and that set both the condition code
+	and a normal result.
+	Delete "cc" attribute and add "type" attribute.
+	Define delays for cc-setting insns and for loads.
+	Replace `d' constraint with `r'.
+	Delete patterns for HImode and QImode arithmetic operations.
+	Handle putting "easy" DFmode or SFmode constant into a register.
+	Rework compare and branches; add scc insns.
+	Fix up decrement-and-branch insns, but they still won't be used yet.
+	(call insns): Use pseudo for "lr" in indirect calls.
+	(movdf, movsf): Explictly handle need to use memory to copy between
+	general and FP registers.
+	* out-rs6000.c (next_insn_tests_no_unsigned, unsigned_comparisons_p):
+	Deleted.
+	(update_cc): Likewise.
+	(gen_reg_operand): Tighen up a bit.
+	(cc_reg_operand, reg_or_u_short_operand, easy_fp_constant): New fns.
+	(fp_reg_or_mem_operand, mem_or_easy_const_operand): Likewise.
+	(call_operand): Accept pseudo register.
+	(branch_comparison_operator, scc_comparison_operator): New functions.
+	(secondary_reload_class, ccr_bit, must_save_cr): Likewise.
+	(print_operand, case 'w', 'u'): Support CONST_DOUBLE.
+	(print_operand, cases 'W', 'f', 'F', 'R', 't', 'T', 'C', 'D'):
+	New cases.
+	(print_operand, cases 'j' and 'J'): Now use for bit number in CCR.
+	(output_{pro,epi}logue): If we call function to save/restore fpr's,
+	we need to save/restore LR.
+	Save CR if we modify the call-saved fields.
+
+	* romp.md: Delete HImode and QImode arithmetic operations.
+	(swapxi): Delete; obsolete and never used.
+
+	* tm-a29k.h (TARGET_SWITCHES): Change -mnodw to -mndw.
+	Add -m{no-,}reuse-arg-regs.
+	(SECONDARY_RELOAD_CLASS): Provide a definition for this new macro.
+	* a29k.md: Delete all HImode and QImode arithmetic operations.
+	* out-a29k.c (secondary_reload_class): New function.
+	(incoming_reg): Look at TARGET_NO_REUSE_ARGS.
+
+	* reload1.c (eliminate_regs): Don't remove a PLUS unless inside	an
+	address since it would need to change INSN_CODE and can't do it here.
+
+	* reorg.c (uid_to_ruid, max_uid): New vars.
+	(mostly_true_jump): Refine prediction slightly.
+	Use uid_to_ruid map to accurately see if branches are backward.
+	(relax_delay_slots): Pass condition to mostly_true_jump.
+	(dbr_schedule): Allocate and build uid_to_ruid map.
+
+Sat May 18 12:54:45 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cse.c (insert): "Unchanging" pseudos count as constant.
+
+	* tree.c (make_node): Rewrite end as a switch.
+
+Sat May 18 03:51:06 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cse.c (FIXED_BASE_PLUS_P): Since this is used when called from
+	`expand_inline_function', also catch the case where the base
+	register is VIRTUAL_STACK_VARS_RTX.
+	(simplify_binary_operation): In EQ and NE case, convert a COMPARE
+	operand to something we can optimize.
+	(refers_to_mem_p): Handle the case when `base' is a LO_SUM.
+	* integrate.c (FIXED_BASE_PLUS_P): Define this to recognize offsets
+	from the various virtual registers.
+	(expand_inline_function): Expand exprs using EXPAND_SUM so as to get
+	stack frame addresses instead of pseudos.  This yields much better
+	cse (at little cost) for GNU C++.  Also, test FIXED_BASE_PLUS_P as
+	an alternative to CONSTANT_P to record a known register value.
+	* jump.c (find_cross_jump): If we are processing a cross jump and
+	the insns fail to match, try looking for a REG_EQUAL note that makes
+	them equivalent insns.  If found, keep going.  This is important for
+	merging cleanup codes when one cleanup path gets frame address in a
+	register when the other path gets the frame address explicitly.
+
+	* cplus-init.c (build_delete): Fixed residual use of 1-based
+	indexing to use 0-based indexing instead.
+
+	* cplus-decl2.c (grokclassfn): Fix raeburn's May 12 change so that
+	destructors still have the same name.
+
+	* cplus-decl.c (decls_match): Remove dependence on MERGED.
+
+	* cplus-class.c (build_vbase_path): Fixed bug in computing offsets
+	for exprs which are FIXED_TYPE_P.
+	(build_vfn_ref): Change initializer for REF from 0 to NULL_TREE.
+
+	* cplus-decl.c (maybe_build_cleanup): Add LOOKUP_NONVIRTUAL to flags
+	argument in call to `build_delete' if DECL does not use virtual
+	baseclasses.  If it does, we go through a function call to save
+	space, unless FLAG_EXPENSIVEO_OPTIMIZATIONS is nonzero.  ??Better
+	approach is to know, in expand_cleanups, to clear `flag_no_inline'
+	during the cleanup's expansion.
+
+	* cplus-*.c (various places): Add LOOKUP_DESTRUCTOR to all places
+	where we know we are calling a destructor for a non-null object.
+
+	* stmt.c (fixup_gotos): Run destructors on cleanups that come
+	from the block being exited, in addition to any inner blocks
+	for which LABEL is now defined.
+	(expand_return): Take care of destructors that occur in the
+	current binding level.
+	(fixup_cleanups): If we emitted no insns, don't change *BEFORE_JUMP.
+
+	* rtlanal.c: Define `target_flags' here...
+	* toplev.c: ...not here.  This enables us to link gen* programs
+	which might, through rtlanal.o, pull in references to `target_flags'
+	that are never used.
+
+	* function.c: Add declaration for `current_function_uses_const_pool'.
+	* expr.h: Add extern declaration for that variable.
+	* function.h (struct function): Add a slot named
+	`uses_const_pool' for `current_function_uses_const_pool'.
+	* function.c ({push,pop}_function_context): save and restore the
+	value of `current_function_uses_const_pool'.
+	* rtl.h (FUNCTION_FLAGS_USES_CONST_POOL): Defined to be 0200.
+	* integrate.c (initialize_for_inline):
+	FUNCTION_FLAGS_USES_CONST_POOL now contributes to the value of
+	`function_flags'.
+	(output_inline_function): Restore `current_function_uses_const_pool'
+	from `function_flags'.
+	(save_for_inline_copying): Only call `save_constants' if
+	`current_function_uses_const_pool' is nonzero.
+	(save_for_inline_nocopy): Ditto.
+	(save_constants): Tweaked to perform its treewalk faster.  Notably,
+	it no longer accepts ptrs to NULL rtl.  All callers changed.
+	* varasm.c (force_const_mem): Set `current_function_uses_const_pool'
+	if we create a constant pool reference.
+
+	* cplus-parse.y, c-parse.y: Add new function `set_yydebug'.  If
+	YYDEBUG is defined, sets `yydebug' to VALUE.  Otherwise, prints
+	warning that operation is invalid.
+	* toplev.c (main): Call `set_yydebug' instead of setting `yydebug'
+	directly.  This allows user to turn YYDEBUG off for faster parsing.
+
+	* cse.c (simplify_binary_operation): Eliminate abort when passed
+	DImode operands.
+
+Fri May 17 21:56:41 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* hard-reg-set.h (reg_class_superunion): New var.
+	* regclass.c (init_reg_sets): Compute reg_class_superunion.
+	(reg_classes_intersect_p): New function.
+
+	* reload.c (find_reloads): Alternative is discouraged if it puts
+	a pseudo in a register class it doesn't prefer.
+
+	* reload1.c (basic_block_needs): Now an array, per register class.
+	(reload): Compute separate basic_block_needs for each class.
+	(spill_hard_reg): If pseudo is only in one block, see if that block
+	needs a spill register of a class containing the hard reg; leave the
+	pseudo alone if not.
+
+	* reload1.c (reload_mode, reload_nregs): New vars.
+	(reload_reg_class_lower): Use them.
+	(allocate_reload_reg): New function.
+	(choose_reload_regs): Track size and class of any groups.  We
+	can inherit reloads if we are the size of the largest group or
+	if our class is disjoint from those needed for groups.
+	Try all inherits first before all spill register allocations
+	unless there is a later reload with a smaller class; call
+	allocate_reload_reg to do the actual allocation.
+	Use new vars above.
+	(emit_reload_insns): Delete output reload even if we weren't
+	storing to memory.
+
+	* reload.h (reload_secondary_reload, reload_secondary_p): New vars.
+	* reload.c (push_reload): If secondary reload register is needed,
+	make a secondary reload.
+	* reload1.c (reload): Reload with reload_secondary_p nonzero is in use.
+	(choose_reload_regs): Likewise.
+	(emit_reload_insns): Handle secondary reloads, when needed.
+
+	* reload1.c (reload): Add pass to remove death notes for things that
+	are no longer registers or don't die if we must preserve death notes.
+	(emit_reload_insns): Refine REG_DEAD notes to be more accurate; make
+	notes for secondary reloads.
+
+	* reload1.c (emit_reload_insns): Abort for output reloads for jumps;
+	we have to implement this at some point.
+
+Fri May 17 20:08:22 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* protoize.c: Handle ultrix like BSD.
+
+Fri May 17 15:56:41 1991  Richard Stallman  (rms at geech.gnu.ai.mit.edu)
+
+	* Pass library function name to INIT_CUMULATIVE_ARGS.
+	* calls.c (expand_call): Pass extra arg to INIT_CUMULATIVE_ARGS.
+	* expr.c (emit_library_call): Likewise.
+	* function.c (assign_parms): Likewise.
+	* tm-*.h (INIT_CUMULATIVE_ARGS): Accept the extra arg.
+	(INIT_CUMULATIVE_INCOMING_ARGS): Likewise, just for symmetry.
+
+Fri May 17 15:41:22 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* tm-i386v4.h (ASM_OUTPUT_COMMON): Don't attempt alignment on a
+	three byte boundary.
+
+Fri May 17 15:25:16 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* function.c (assign_stack_local, assign_outer_stack_local): Make
+	the alignment in bytes.
+
+Fri May 17 14:31:00 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-class.c (build_vbase_path): Only build a COND_EXPR if
+	NONNULL is zero.
+	(resolves_to_fixed_type_p): Check TREE_HAS_CONSTRUCTOR for
+	CALL_EXPRs and INDIRECT_REFs.
+
+	* cplus-call.c (build_method_call): Add call to `constructor_name'
+	if BASETYPE changes.
+	* cplus-init.c (build_new): Add LOOKUP_NONVIRTUAL to FLAGS argument
+	to `build_method_call'.  Constructors are never virtual.  Also, set
+	TREE_HAS_CONSTRUCTOR bit for return value from `build_method_call'.
+
+Thu May 16 21:36:10 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtl.h (CONSTANT_P): Now true for a CONST_DOUBLE.
+	* combine.c, cse.c, emit-rtl.c, expr.c, integrate.c, loop.c:
+	Update for new meaning of CONSTANT_P to include CONST_DOUBLE.
+	* optabs.c, recog.c, reload.c, reload1.c, rtl.h, rtlanal.c:
+	Likewise.
+	* romp.md, rs6000.md, out-alliant.c, out-convex.c: Likewise.
+	* out-gmicro.c, out-i386.c, out-i860.c, out-m68k.c: Likewise.
+	* out-sparc.c, out-spur.c, out-tahoe.c: Likewise.
+
+	* combine.c (SUBST, SUBST_INT): If INTO equals NEWVAL, don't
+	record the substitution.
+	(try_combine, subst, make_compound_operation, simplify_and_const_int):
+	No longer need check for changes before using SUBST macro.
+	(simplify_shift_count): Likewise.
+
+	* integrate.c (copy_rtx_and_substitute, case CONST): If what
+	was originally a constant becomes something that is not a constant
+	when passed through a recursive call, return it without the CONST.
+
+	* rtl.c (copy_most_rtx): New function.
+	* rtl.h (copy_most_rtx): Declare it.
+	* function.c (fixup_var_refs_1, case MEM): If a MEM contains VAR,
+	ensure the MEM isn't shared by copying it.
+
+	* expmed.c (expand_divmod): If doing MOD, produce divide result
+	into unique pseudo so that we might CSE the division.
+
+Thu May 16 12:01:42 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* reload.c (push_reload): Try find_dummy_reload before dead regs.
+
+	* function.c (assign_stack_local*): Use GET_MODE_ALIGNMENT.
+	Use CEIL_ROUND consistently.
+	Don't force word alignment even if STRICT_ALIGNMENT (experiment).
+
+Thu May 16 10:31:04 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+
+	* unroll.c (unroll_loop): Don't abort if start label does not
+	immediately follow LOOP_BEG note.  This can happen as a result of
+	jump threading.
+	* reorg.c (mostly_true_jump): Eliminate repeated test in second loop.
+
+	* sched.c (priority): Abort if find a NOTE in a groups of insns that
+	must be scheduled together.
+	(free_pending_lists): New function.  Moves every *_LIST rtx on the
+	pending lists to the free list.
+	(add_insn_mem_dependence): Get a *_LIST from the free list instead
+	of creating one if possible.
+	(sched_analyze_1): Don't move an insn across a call if it uses a
+	register that is not already live across calls. 
+	(sched_analyze_insn): Likewise.
+	(sched_analyze_1): When flusing the pending lists, put the *_LIST
+	rtx on the free list.
+	(sched_analyze): Likewise.
+	(schedule_block): Likewise.
+	(sched_analyze_2): For a cc0 setter/user pair, put a copy of all
+	dependencies on the first insn onto the second insn.
+	(sched_analyze_insn): Likewise for call sequences.
+	(sched_analyze_insn): Handle REG_INC notes just like SETs.
+	(sched_note_set): Handle hard registers same as psuedo regs.
+	(attach_deaths): Likewise.  Don't add REG_DEAD notes to the frame
+	pointer, arg pointer or stack pointer.
+	(schedule_block): Likewise.
+	(rank_for_schedule): Do not check whether each insn of a sequence
+	that must be scheduled together is ready.  They will only reach here
+	if they are all already ready.
+	(schedule_block): After reload, don't need to give special treatment
+	to insns at function start which set up the function parameters.
+	Don't treat tail specially if it is part of a group that must be
+	scheduled together.
+	When a group of instructions is scheduled together, run the lifetime
+	analysis code on every instruction in the group from last to first.
+	A call_insn kills all call_used and global regs except those
+	explicitly used by the call_insn.
+	(schedule_insn): Initialize new variables.  If USE_C_ALLOCA, free
+	alloced memory immediately after each schedule_block call, not once
+	at the end.
+
+	* rtl.c (add_dependence): When adding a dependence that points to an
+	insn that is part of a sequence that must be scheduled together,
+	make the dependence point to the last insn of the sequence instead.
+
+Wed May 15 13:08:32 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (simplify_and_const_int): If we have
+	(and (OP (lshiftrt X Y) Z) C), for OP of IOR, XOR, and NOT, commute
+	OP and LSHIFTRT to put AND and LSHIFTRT adjacent to try to form
+	ZERO_EXTRACT.
+
+	* combine.c (subst, gen_lowpart_for_combine, get_last_value_validate):
+	Use object's mode instead of VOIDmode when we make
+	(clobber (const_int 0)) in case someone uses the mode for significant
+	bits.
+	* rtlanal.c (side_effects_p): Reject non-VOIDmode CLOBBERs.
+
+	* rtlanal.c (reg_set_p_1): Remove test for `reg_set_reg' being MEM.
+	(reg_set_p): Abort if passed a MEM.
+
+	* toplev.c (strip_off_ending): Strip trailing ".f".
+
+Wed May 15 12:54:18 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-typeck.c (build_modify_expr_1): If the TREE_TYPE of the
+	recursive result is an ARRAY_TYPE, change it to void_type_node so
+	build_compound_expr doesn't lose when calling default_conversion.
+
+	* cplus-tree.h (lang_type): Remove AS_LIST field from lang_type.
+	Use TYPE_MAX_VALUE field of type instead.
+	(TREE_REFERENCE_EXPR): New macro.
+
+	* cplus-parse.y (LC): If we are not in temporary allocation, call
+	permanent_allocation.  This frees up any PARM_DECL nodes that were
+	allocated since we processed an inline function.  NOTE: we still
+	have to clean up these parms from inline functions that did not go
+	inline.
+
+	* cplus-decl.c (store_parm_decls): Since we no longer push an extra
+	binding level if ! PARMS_HAVE_CLEANUPS, test CLEANUP_LABEL to figure
+	out how far up the binding countours we must look.
+	(init_decl_processing): If FLAG_NO_INLINE is nonzero, set
+	FLAG_DEFAULT_INLINE to zero.
+
+	* cplus-class.c (finish_struct_bits): Copy TYPE_MIN_VALUE and
+	TYPE_MAX_VALUE.  These actually hold C++-related data that's moved
+	up from the lang_type data structure.
+
+	* cplus-*.c: Change REFERENCE_EXPR to CONVERT_EXPR.  Set
+	TREE_REFERENCE_EXPR bit to indicate a CONVERT_EXPR that's really the
+	address of a C++ reference expression.
+
+Wed May 15 12:30:26 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* tm-sparc.h (FIXED_REGISTERS): Register 0 is not fixed; it is used
+	for the condition code, not to represent the fixed %g0.
+
+Tue May 14 18:59:06 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+
+	* explow.c (find_next_ref): Start search at first insn after INSN.
+
+	* jump.c (jump_optimize): Update the three simplications that start
+	with the "if (...) x = 1; else {...} if (x) ..." case, so that when
+	HAVE_cc0 is not defined, they do not accept TST insns (which could
+	just be a register to register move).  They should only accept insns
+	with the COMPARE operator.
+
+Tue May 14 14:51:33 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* cse.c (simplify_binary_operation): Don't abort when comparing
+	two CONST_DOUBLE values.
+
+Tue May 14 11:35:47 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-common.c (decl_attributes): Fix typo in name of attribute.
+	It should be `aligned'.  Also don't crash on unknown attribute.
+
+	* expmed.c (init_expmed): Make a separate object to free back to.
+
+	* hard-reg-set.h (HOST_BITS_PER_LONG_LONG): Provide default definition.
+
+	* toplev.c (main): Implement -gdwarf.
+
+Tue May 14 06:32:48 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* flow.c (mark_used_regs): Don't make REG_DEAD notes for fixed regs.
+
+	* combine.c (subst): Convert (not (ashift C X)) to (or (rotate ..))
+	and similarly for (not (lshiftrt C X)).
+	(make_field_assignment): Make corresponding change in how we recognize
+	bitfield assignment of single bit to zero.
+
+	* combine.c (merge_outer_ops): New function.
+	(simplify_shift_const): Use merge_outer_ops to generalize and
+	simplify handling of outer_ops.
+	Try using distributive law followed by invert distributive law
+	to simplify combinations of logical operations and shifts.
+
+	* emit-rtl.c (gen_highpart): Correct conditional that says when we
+	can get the bits of a DFmode object; copy from gen_lowpart.
+
+	* cse.c (simplify_binary_operation, case MULT): Simplify zero case.
+	(simplify_binary_operation, case DIV): In 0/x, return zero in proper
+	mode.
+
+	* combine.c (simplify_comparison): Can only extend comparison
+	to wider mode if equality comparison or test of sign bit.
+
+Tue May 14 03:26:36 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-tree.h (lang_type): Change to use TREE_VEC to hold basetype
+	info.
+	(CLASSTYPE_N_BASECLASSES, CLASSTYPE_BASECLASS): Changed accordingly.
+	Baseclasses are now counted [0..n) instead of [1..n].
+	(CLASSTYPE_BASETYPECLASSES): Deleted.
+	* cplus-*.c (various places): Change code to work with new
+	representation for basetypes.
+
+	* toplev.c (main): Handle `-gdwarf' as a debug option.
+
+	* cse.c (insert): Treat pseudos marked RTX_UNCHANGING_P as being
+	const.
+
+Mon May 13 22:44:18 1991  Jim Wilson  (wilson at ok.cygnus.com)
+
+	* mips.md: In the div/mod peepholes, don't apply the peephole if the
+	first operation overwrites one of its two operands.
+
+Mon May 13 12:14:51 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* expmed.c (store_bit_field, extract_bit_field):
+	Set volatile_p while checking predicates.
+	* recog.h (volatile_p): Declare it.
+	* explow.c (force_not_mem): Do nothing with BLKmode.
+
+	* SYSCALLS.c (u_int): Don't define on DGUX--already defined.
+
+	* m68k.md (zero_extend*): Don't make the subreg in the template.
+	Make it explicitly, and handle subregs as operand 0.
+
+	* tm-convex.h (MODES_TIEABLE_P): Fix typos.
+
+	* loop.c (check_dbra_loop): To check for a loop with a `break', use
+	loop_number_exit_label, not the uid_luid of each label, since loop
+	unrolling may have created new labels with no uid_luid.
+
+	* expr.c (push_block): Fixed typo in last change.
+
+Mon May 13 12:07:25 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (subst): If we can't change comparison code, see if
+	we can instead surround our operation with an XOR.
+
+	* combine.c (make_compound_operation, simplify_and_const_int):
+	Ensure shift counts are non-negative and in range before using them
+	to perform shifts.
+	(simplify_comparison): Likewise.
+
+	* combine.c (try_combine): See if we have previously merged a
+	compare and arithmetic operation.  If so try to take it apart to
+	allow further combines (such as making a branch-and-decrement).
+
+	* combine.c (try_combine): Don't make VOIDmode register if our split
+	point is a constant.
+
+	* combine.c (subst): Use COMBINE_RTX_EQUAL_P to see if SET_DEST
+	is our register; two hard regs might have different rtx.
+
+	* combine.c (subst): Generalize associative law handling to
+	cases not involving constants.
+
+	* combine.c (expand_compound_operation): If we would return a
+	(clobber (const_int 0)), return what we were given.
+
+	* combine.c (simplify_shift_const): Clean up by removing fallthrough.
+
+Mon May 13 10:26:00 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (all calls to output_move_double): call return
+	value to avoid spurious compiler warnings.
+	Allow REG in all alternatives of operand 0 where possible.
+	Remove patterns to recognize increment/decrement.
+	(addsi3, addhi3, addqi3): Do this in here instead.
+	(floatdidf2): New pattern.
+	(adddi3, subdi3, negdi2): New patterns.
+	(umulsi3, umulhi3): Remove obsolete UMULT patterns.
+	(divM3, udivM3, divmodM4, udivmodM4): Use "r" constraint instead
+	of "x" or "abc".
+	(sqrtsf2, sqrtdf2): New patterns.
+	(ashldi3, ashrdi3, lshldi3, lshrdi3): New patterns
+	(All shift and rotate patterns): Don't use reg name explicitly in
+	output string: use %N operand reference.
+	(ashlM3, lshlM3): Use `add' instead of `shl'/`sal' if possible.
+	(insv): Fix output constraint.  Clarify source.  Disable for now -
+	makes worse code.
+	(SImode bit test, all Scond patterns): Allow MEM operands too.
+	(seq, sne): Handle CC_Z_IN_NOT_C.
+	(jump, indirect_jump, tablejump): Align code on word boundary
+	after unconditional jumps.
+	(`loop' patterns): Delete - will never be useful on i386.
+	(call_pop, call_value_pop): New patterns.
+	(return): New pattern: Do `return' if simple epilogue.  But only if
+	the real function epilogue isn't next.
+	(movstrsi): Do word moves, not just bytes, if count is unknown.
+	(ffsM2): New patterns.
+
+	* out-i386.c (FP_TOP, AT_SP, RET, RETCOM, POP_ONE_FP,
+	FP_CALL1, FP_CALL): Move to tm-i386.h for use by i386.md.
+	(output_movf, fp_call_internal, output_fix_trunc, split_di):
+	No longer static - called from i386.md.
+	(via_memory): Finish return value change.
+	(output_move_const_double): Delete unused function.
+	(simple_386_epilogue): New predicate.
+	(function_prologue): Allocate frame regardless of whether or not
+	there is a frame pointer.
+	Use output_asm_insn instead of fprintf to push registers.
+	(function_epilogue): Likewise.
+	If there is a frame pointer, don't necessarily fix %esp just to
+	pop a reg - use offset from frame pointer.
+	Fix -fomit-frame-pointer support.
+	Fix RETURN_POPS_ARGS case where args > 32K bytes.
+	(print_operand): A LABEL_REF gets an OFFSET_PREFIX too.
+	(print_operand_address): %esp can only be base reg, never index.
+	(split_di): New function.
+
+	* tm-i386.h: Remove references to obsolete tm-compaq.h file.
+	(TARGET_486): New flag.
+	(TARGET_SWITCHES): New options -m486, -mno486, -m386.
+	(SMALL_REGISTER_CLASSES): New macro.
+	(ASM_OUTPUT_LOOP_ALIGN): New macro.
+	(all reg macros, ARG_POINTER_REGNUM): Create argument pointer,
+	to be eliminated in favor of %esp or %ebp.
+	(HARD_REGNO_NREGS, REGNO_REG_CLASS): Use FP_REGNO_P.
+	(REGISTER_MOVE_COSTS): It is expensive to move between integer and
+	float registers.
+	(FP_REGNO_P): Detect only the FP regs.
+	(all class macros): Delete obsolete classes ABC_REGS & ABCI_REGS.
+	(REG_CLASS_FROM_LETTER): Add `S' for SIREG, remove `x' for ABCI_REGS.
+	(CONST_OK_FOR_LETTER_P): Add `J' for DImode shifts.
+	(FIRST_PARM_OFFSET): Offset now zero.
+	(ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET):
+	Use generalized scheme to eliminate frame and arg pointers.
+	(INITIAL_FRAME_POINTER_OFFSET): Delete.
+	(REG_OK_FOR_BASE_P): allow virtual arg pointer.
+	(FP_TOP, AT_SP, RET, RETCOM, POP_ONE_FP, FP_CALL1, FP_CALL):
+	Moved here from out-i386.c for use by i386.md.
+
+	* tm-compaq.h: Delete obsolete file.
+
+Sun May 12 18:38:41 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* cplus-decl.c (print_binding_level, print_binding_stack,
+	print_other_binding_stack): New debugging routines; dump one or
+	more binding levels to stderr.
+
+	* cplus-decl.c (push_to_top_level): New routine; saves copies of
+	all class and local bindings, and some other state, and clears the
+	real values, to effectively move to global scope.
+	(pop_from_top_level): Restore the saved state.
+
+	* cplus-decl.c (adjust_type_value): No longer static.  Abort if
+	current_binding_level is class binding level; need to investigate
+	that situation further.
+
+	* cplus-decl.c (finish_function): Check that the binding level being
+	popped really is a function-parameter binding level.
+
+	* cplus-tree.h (DESTRUCTOR_DECL_PREFIX): Replaces
+	DESTRUCTOR_DECL_FORMAT; used as a prefix before the class name.
+	* cplus-decl2.c (grokclassfn): Use it, and call build_overload_name
+	rather than just copying the class name.
+
+	* cplus-method.c (fndecl_as_string): Use TREE_TYPE rather than
+	indirecting through type name and the identifier's associated type,
+	since the latter may have changed.
+	(build_nested_name): New argument, text_end; callers changed.  Call
+	build_overload_identifier rather than copying class name.
+	(build_overload_value): Strip non-lvalue nodes for all arguments.
+	Fixed up the handling of negative DImode values.
+	(build_overload_identifier): New function.  Copy class name (with
+	length) if non-template, or build a name from template parameters.
+	(build_overload_name): Call build_overload_identifier for class
+	names.
+
+	* cplus-parse.y: Added comment about use of $$ for $1.
+	(template_type_name): Removed useless precedence specificiation.
+	(template_arg_list): Wrap TREE_LIST nodes around all arguments in
+	the list.
+	(template_arg): Call groktypename on type names.  For expressions,
+	specify "UNARY" precedence.
+	(PRE_PARSED_CLASS_DECL handling): Put a copy of the new class decl
+	into global scope, to avoid recursive expansion, since we start in a
+	non-global scope set up for the parameters.
+
+	* cplus-pt.c (coerce_template_parms): New function.  Converts
+	template arguments to appropriate types, returns a vector containing
+	results.
+	(mangle_class_name_for_template): Removed nparms argument.
+	Changed to deal with arglist as vector.  No longer call
+	groktypename.  Some initial code added for PARM_DECL (non-type)
+	parameters; work not completed.
+	(lookup_template_class): Call coerce_template_parms.  Removed some
+	unused code.
+	(push_template_decls, pop_template_decls): Fixed to deal with
+	arglist as vector.  More code for non-type parameters.
+	(instantiate_template): Push to top binding level before pushing any
+	declarations.
+	(end_template_instantiation): Pop from top level, then push the new
+	decl at top level.
+
+	* cplus-tree.h (struct lang_identifier): Renamed field "template" to
+	"class_template_info"; accessor macros changed.
+
+	* cplus-pt.c (struct template_info): Renamed from "template".
+	Removed unused fields.
+
+Sun May 12 17:38:46 1991  Jim Wilson  (wilson at cygnus.com)
+
+	* unroll.c (copy_loop_body): Fix typo: had `==' for `='.
+
+Sun May 12 17:05:07 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* genattrtab.c (gen_attr): Clear has_asm_insn field in new object.
+
+Sun May 12 04:21:52 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* hard-reg-set.h (HARD_CONST): New macro.  Converts integer
+	constants to appropriate type for use with HARD_REG_SET.
+	({SET,CLEAR,TEST}_HARD_REG_BIT): Use this macro where appropriate.
+	(GO_IF_HARD_REG_SUBSET): Ditto.
+	(HARD_REG_SET): Add new case if FIRST_PSEUDO_REGISTER <=
+	HOST_BITS_PER_LONGLONG.
+	* global-alloc.c: Pass HARD_CONST (0) instead of 0 to functions
+	which are looking for a HARD_REG_SET argument.
+	* reorg.c (resource_conflicts_p): Change comparison of HARD_REG_SET
+	value to compare against HARD_CONST.
+
+	* all xm-*.h files: Added HOST_BITS_PER_LONGLONG where
+	HOST_BITS_PER_LONG was defined.
+	* tm-sparc.h (REG_CLASS_CONTENTS): Fixed in case we're using long
+	long HARD_REG_SETs.
+
+	* toplev.c (main): support -gdwarf switch.
+
+	* longlong.h (umulsidi3): SPARC .umul routine returns the value in
+	WORD_LITTLE_ENDIAN form, so swap.  Other word-endian changes for
+	inline mul routines.
+
+	* gnulib2.c (__divdi3): If C is nonzero, negate whole division
+	instead of returning negation of quotient.
+
+Sat May 11 20:06:08 1991  Torbjorn Granlund  (tege at krishna.sics.se)
+
+	* expmed.c (outside of functions): New vars: lea_cost, lea_max_mul.
+	(init_expmed): Initialize lea_cost and lea_max_mul. 
+	(synth_mult): Use them.
+
+Sat May 11 20:11:41 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-class.c (build_vbase_path): Rewritten and simplified.
+	* cplus-cvt.c (build_up_reference): Try to get away without building
+	a NOP_EXPR around the return value of `build_component_addr'.
+	Ditto for return value from `convert_pointer_to'.
+
+	* cplus-decl.c (void_zero_node): New node.  Used in conditional
+	expressions where one arm must do nothing.
+	* various places: replace calls that built this node dynamically to
+	just use the global copy.
+	* cplus-tree.h (void_zero_node): Declare it globally.
+
+	(maybe_build_cleanup): Don't call `convert_force' on the return
+	value of `build_unary_op'.  We should have license to modify its
+	type without harm.
+	* cplus-gc.c (protect_value_from_gc): Same idea for VAR_DECL and
+	PARM_DECL nodes.
+
+	* toplev.c (f_options): Add choice for -fPIC.
+
+	* varasm.c (assemble_function): If it's a function name that's the
+	first global name, strip of a leading '*' if there is one.
+
+	* reload.c (find_reloads): Fix comment.
+
+	* stmt.c (expand_return): Call `any_pending_cleanups' with argument.
+
+	* expr.c (expand_expr): In TARGET_EXPR case, If TARGET is null and
+	DECL already has rtl, use that as the target.
+	(expand_expr): In BIND_EXPR try using expand_{start,end}_bindings to
+	catch cleanups...otherwise fixup_cleanups must be modified to deal
+	with cleanups not in any contours.
+
+Sat May 11 15:09:42 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* out-i386.c (via_memory): Return a memref to the stack.
+	(fp_call_internal): Change call to via_memory.
+
+	* expr.c (push_block): New arg BELOW specifies padding direction.
+	All callers changed.
+	(emit_push_insn): Pass an interesting value for BELOW.
+
+	* c-parse.y (typespec): Pass the TYPE_DECL for a typedef name.
+	* c-decl.c (grokdeclarator): Handle TYPE_DECL in declspecs.
+
+Thu May  9 15:17:44 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (zero_extend pattern): Compute correct constant.
+
+Thu May  9 07:44:20 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (subst): Remove WAS_REPLACED; always check the rtl
+	for specific cases of interest and don't use TO and FROM when
+	looking into the rtl.
+
+	* combine.c (subst, case MEM): Call make_compound_operation here
+	so any ASHIFTs will be MULTs for mode_dependant_address_p calls later.
+	(subst, case PLUS): Remove cases already done elsewhere.
+
+	* expmed.c (emit_store_flag): Don't let the delete_insns_since call
+	we do kill insns to do an auto-inc.
+
+	* flow.c (propagate_block): Don't treat global regs as clobbered
+	over a CALL_INSN even if call-clobbered. 
+
+	* stmt.c (expand_end_stmt_expr): Correctly handle the case where an
+	expression statement  is just an auto-inc of a var.
+
+	* sparc.md (fix_trunc[sd]fsi2): Finish change to use MATCH_SCRATCH
+	by eliminating DEFINE_EXPAND and making DEFINE_INSN a named pattern.
+
+Wed May  8 13:31:23 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cccp.c (rescan): Handle symbols before // as before /*.
+
+	* Makefile.in (objc-parse.o): Specify the command.
+
+	* c-parse.y (typespec): Fix previous change.
+
+	* reload1.c (choose_reload_regs): Use spillregs in round robin.
+
+Wed May  8 11:00:29 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-lex.c (tree_node_kinds): Renamed to `tree_node_counts'.
+
+Wed May  8 05:50:29 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* integrate.c (copy_rtx_and_substitute): Don't round frame size.
+
+	* loop.c: Must include insn-flags.h to get
+	HAVE_decrement_and_branch_until_zero.
+	* Makefile.in (loop.o): Likewise.
+
+	* expmed.c (expand_divmod): Use LOG instead of INTVAL (OP1)
+	once we start generating rtl.
+
+Wed May  8 05:38:06 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-decl.c (duplicate_decls): Don't crash on duplicate
+	TEMPLATE_DECLs.
+	(globalize_nested_type): Handle globalizing types when
+	CLASS_BINDING_LEVEL goes out of effect.
+	(init_decl_processing): Comment out decls for ABS, FABS and LABS.
+	They conflict with libg++ inlines.
+
+	* cplus-decl2.c (build_push_scope): Fix bug in last change.
+	(finish_file): Make the dummy decl that we tack on to the global
+	scope a TYPE_DECL instead of a VAR_DECL.  Fake global VAR_DECLs are
+	problematic on some machines (i.e. MIPS).
+
+	* cplus-init.c (init_vfields): Use TREE_TYPE (VFIELDS) to find the
+	type for which the VFIELD was last distinguished.  This picks up
+	cases where single inheritance overrides base class vtables and the
+	base class does not get a new vtable for the override.
+
+	* cplus-parse.y (named_class_head_sans_basetype): Handle a
+	`template_type_name' by itself.  This happens with e.g.
+	friend class Stack<T>.
+
+	* cplus-pt.c (mangle_class_name_for_template): Put ',' between
+	parameters.
+	(push_template_decls): Don't crash if ARGLIST is ERROR_MARK_NODE.
+
+	* cplus-class.c (finish_base_struct): Compute MAX_HAS_VIRTUAL by
+	looking at all the base classes relevant to VFIELDS.
+	(build_vbase_path): Initialize NONNULL to zero.
+
+Tue May  7 23:47:42 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* stmt.c (any_pending_cleanups): Don't fail if block_stack is empty.
+
+Tue May  7 22:46:16 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_binary_operation; case EQ, NE): Don't assume
+	the address of a symbol is non-zero.
+
+	* sched.c (schedule_insns): Ensure we free memory used by
+	schedule_block when using the C alloca.
+
+Tue May  7 14:13:57 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* reload1.c (mark_reload_reg_in_use): New arg MODE.  Mark all the regs.
+	(choose_reload_regs): Pass that arg; don't loop here.
+
+	* c-parse.y (typespec): Convert a TYPENAME to its meaning.
+
+	* fold-const.c (fold): Don't assume symbolic constant is nonzero.
+
+	* c-typeck.c (c_expand_asm_operands): Convert arrays, fcns to pointers.
+
+Mon May  6 23:29:21 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): Only make a REG_WAS_0 note if the previous
+	set was to the same register, not just the same quantity;
+	if previous REG_WAS_0 note, update back pointer.
+	If setting a register to a constant, update QTY_CONST and
+	QTY_CONST_INSN so it points to the last set.
+	In special case for (set REG0 REG1), ensure any REG_WAS_0 notes are
+	updated correctly.
+
+	* genrecog.c (make_insn_sequence): Don't clobber `i' when it is
+	still needed.
+
+	* out-vax.c (print_operand_address): Fix bug in last change in handling
+	(plus (reg) (reg)).
+
+Mon May  6 16:41:50 1991  Torbjorn Granlund  (tege at zevs.sics.se)
+
+	* expmed.c (synth_mult): Make it handle t == 0. Improve comments.
+	Use (max_cost <= add_cost) instead of (max_cost < add_cost) to
+	determine if we should fail early (to better prune the search).  
+	Remove loop with n from factor synthesis.  Remove -2 bias from m
+	loop (for clearity).  Add code to use load-effective-address
+	instructions.  Use bit-fiddling instead of loop to determine q in
+	the last synthesis case.
+
+Mon May  6 11:21:45 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (convert_for_assignment): Reword an error message.
+
+	* c-typeck.c (build_conditional_expr): Typo in last change.
+
+	* Makefile.in (enquire, enquire.o): Depend on gnulib.
+
+Sun May 5 17:28:22 1991    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* make-cc1.com: Update for GCC 2.0; build insn-attr.h, insn-attrtab.c.
+	Compile and add obj to linker list: c-aux-info.c, c-common.c, c-lang.c,
+	aux-output.c, calls.c, dwarfout.c, function.c, reorg.c, sched.c,
+	sdbout.c, unroll.c, insn-attrtab.c.  Remove references to symout.c.
+
+Sun May  5 15:32:01 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (rest.encap): Make gnulib before float.h.
+
+	* c-typeck.c (build_conditional_expr):
+	Don't assume symbolic constant is nonzero.
+
+	* reload1.c (choose_reload_regs): Ignore avoid_return_reg.
+	(reload_as_needed, reload): Don't bother setting avoid_return_reg.
+
+Sun May  5 14:30:14 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-class.c (prev_class_type): Declare this to be static.
+	(build_vbase_path): Test NONNULL to decide whether a COND_EXPR is
+	actually needed.
+	(finish_struct): Another sort of hard virtual function to deal with
+	is one which comes from the non-leftmost baseclass, and who's index
+	is different between that class and the main derived class.  Use new
+	variable DOING_HARD_VIRTUALS to control when we punt and when we
+	plow through.
+	(modify_vtable_entry): If we find at this point that we have a hard
+	virtual function, just put it on the list PENDING_HARD_VIRTUALS if
+	DOING_HARD_VIRTUALS is nonzero.
+	(fixed_type_p): Handle SAVE_EXPR, RTL_EXPR, PLUS_EXPR, MINUS_EXPR,
+	NOP_EXPR and CONVERT_EXPR.
+	(pushclass): Fixed comment.  Also change test for whether this is
+	the top-level class scope from an obscure one to an obvious one, and
+	add comment.
+	(pushclass,popclass): Now always allocate a binding level.  Later
+	we'll have to rewrite this to actually use it.
+
+	* cplus-gc.c (type_needs_gc_entry): Don't need a GC entry for
+	ERROR_MARK_NODE.
+
+	* cplus-init.c (build_new): Set TREE_CALLS_NEW on RTL_EXPR.  This
+	gives us a case that `fixed_type_p' can grok.
+
+	* cplus-lex.c (identifier_type): Make this __inline if compiling
+	with GNU C.
+	(tree_node_kinds): Renamed to `tree_node_counts'.
+
+	* cplus-parse.y (various places): Take advantage of default rule
+	`$$ = $1', and where possible, use $$ instead of $1.
+	Also, back out change for setting `looking_for_typename' to 1 at top
+	level.
+
+	* cplus-decl2.c (build_push_scope): If the user gives X::foo in X's
+	scope, don't return a SCOPE_REF.  Just return `foo' instead.
+
+	* cplus-decl.c (init_decl_processing): Don't define `alloca' as a
+	built-in function until libg++ header files agree with its built-in
+	type.
+	(finish_decl): Don't crash if TYPE is error_mark_node.
+
+	* fold-const.c (split_tree): When splitting the tree, don't call
+	convert if the TYPE_MODEs are the smae.  This screws up C++ where
+	conversion of one pointer type to another can cause the pointer's
+	value to change.
+
+	* tree.c (get_identifier): Speed up `get_identifier' by about a
+	factor of 2.  This becomes noticable with the long names used for
+	C++ overloading.
+	(tree_cons): Make this most frequent user of `make_node' perform its
+	actions inline.
+
+	* calls.c (expand_call): Eliminate many (most) calls to strcmp by
+	being smarter about when to call it.  Also, don't call `push_block'
+	in the trivial case when it's not needed.
+
+Sun May  5 08:51:14 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (convert_to_mode): Fix (for the second time) test for when
+	gen_lowpart should be called.
+
+	* cse.c (find_best_addr): Try to fold address.
+	(fold_rtx): Do associativity and (not (not ...)) checks here.
+	(cse_insn): Not here.
+
+	* combine.c (recog_for_combine): New parameter, PNOTES.
+	When we add a CLOBBER, put a REG_UNUSED note for it in *PNOTES.
+	(try_combine): Call recog_for_combine with new parameter.
+	Delete any now-invalid REG_UNUSED notes in OTHER_INSN and add any
+	required new ones.
+	Add REG_NOTES to I3 and I2 due to added CLOBBERs.
+	(remove_death): Call new function, remove_note.
+	(move_deaths): Don't get confused by a CLOBBER.
+	(distribute_notes): Don't make duplicate REG_UNUSED notes.
+	Don't put a REG_DEAD note on an insn when the register is
+	partially modified, but remains valid.
+
+	* rtlanal.c (remove_note): New function.
+
+	* combine.c (try_combine): When making a PARALLEL that does a compare
+	and arithmetic, don't simplify the COMPARE.
+
+	* combine.c (try_combine): Validate that I1DEST isn't being
+	modified invalidly.
+
+	* combine.c (simplify_comparison): In ZERO_EXTRACT case, add missing
+	test for equality comparison against zero; also invert comparison
+	condition.
+	If we can't do a comparison in a narrower mode, but we know that
+	some wider bits are zero, see if we can do it in a wider more.
+
+	* cse.c (simplify_binary_operation): Remove obsolete code to convert
+	negative shift counts to the opposite shift.
+	Don't fold invalid shifts since they may trap (e.g., on Vax).
+
+	* reload1.c (emit_reload_insns): Use rtx_equal_p to see if a result
+	is already in the desired register.
+
+	* combine.c (find_split_point): Add two more ways to split an insn.
+
+	* combine.c (gen_binary): Put a complex operand first in addition to
+	putting constants second, just like subst would do.
+
+	* combine.c (significant_bits): Correct computation of significant bits
+	for division operations.
+
+	* combine.c (apply_distributive_law): Reject complex SUBREGs.
+	SUBREG distributes over logical and addition operations.
+
+	* combine.c (subst; case AND, IOR, XOR): Add some boolean
+	arithmetic simplifications.
+
+	* expr.c (do_jump): ADDRESS_EXPR is not always zero, unfortunately.
+
+	* expr.c (do_store_flag): In case where we are testing a single bit,
+	don't convert to output mode until after we do the shift.
+	
+	* optabs.c (expand_binop, expand_unop, expand_fix): Compare
+	enum insn_code objects against CODE_FOR_nothing instead of 0.
+
+	* romp.md (bit_insv): Use CC0 in standard way; i.e., in NE.
+
+Sat May 4 20:41:12 1991    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* c-aux-info.c (gen_aux_info_record): Use getcwd on VMS a la USG.
+	* dbxout.c: Same here.
+	* xm-vms.h: Define unlink as remove
+	(GCC_INCLUDE_DIR): Provide a dummy definition.
+
+Sat May  4 16:46:48 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (can_combine_p, try_combine): Use SMALL_REGISTER_CLASSES
+	to indicate when it is valid to do combines involving hard registers.
+	* cse.c (canon_hash): #ifdef SMALL_REGISTER_CLASSES, don't record
+	hard registers unless they are fp, ap, sp or are fixed.
+	* loop.c (valid_initial_value_p): #ifdef SMALL_REGISTER_CLASSES, 
+	hard register aren't valid initial values.
+	* reload1.c (reload): Initialize FORBIDDEN_REGS depending on
+	whether we have small register classes or not.
+
+	* ns32k.md: Replace const_int with const_int_operand.
+	Remove HImode extractions.
+	Remove patterns assigning an AND to CC0.
+	(andcbxx3): Remove name and eliminate case with NOT as second operand.
+	(sbitx, cbitx): Remove patterns involving IOR and ASHIFT; add patterns
+	with ZERO_EXTRACT as destination.
+	(ibitx): Put ASHIFT as first operand in XOR.
+	(bitfield compare): Remove comparison of 1 bit field with 1; combine
+	converts this to comparison with zero.
+	(and-compare-branch): Fold PLUS or MINUS into constant, like combine
+	will do.
+	Remove patterns for reversed cases.
+	* out-ns32k.c (const_int): Deleted.
+	
+	* rtlanal.c (reg_used_between_p, reg_set_between_p): Use GET_RTX_CLASS.
+	(reg_set_p_1): If we are setting a MEM, don't think we are setting
+	registers used in its address.
+
+	* m68k.md (cmpsf, cmpdf, tstsf, tstdf for FPA): Use MATCH_SCRATCH.
+	* sparc.md (memory store patterns): Likewise.
+
+	* function.c (assign_parms): Function is varargs function if the
+	last parameter is `__builtin_va_alist_' instead of checking the first
+	parameter.  Normally, this is the same, but some functions in MACH
+	have named parameters before va_alist.
+
+	* combine.c (simplify_comparison): Remove abort on paradoxical SUBREGs
+	now that we know they can occur.
+
+	* reload.c (decompose): Handle SCRATCH; it can't conflict with
+	anything.
+	(find_reloads): All operands can set earlyclobber, not just REG & MEM.
+	Add support for "X" constraint.
+	SCRATCH does not match "g" constraint.
+
+Sat May  4 14:03:16 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* enquire.c (EPROP): Avoid a <= out if bad is set.
+
+	* SYSCALLS.c: Test bsd4_2 along with BSD.
+
+Fri May  3 14:26:51 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-decl.c (pushdecl): Stop looping on type if find error mark.
+
+	* loop.c (invariant_p): An address with a PLUS is not the same as
+	MEM_IN_STRUCT_P being set.
+
+	* tree.h (TREE_NO_UNUSED_WARNING): New macro.
+	* stmt.c (warn_if_unused_value): That flag suppresses warnings.
+	* c-typeck.c (build_unary_op): Set flag when converting postinc.
+
+Fri May  3 08:09:47 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* tm-m88k.h (GO_IF_LEGITIMATE_ADDRESS): Remove workarounds for
+	register elimination problems.
+
+Fri May  3 07:14:22 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* a29k.md: Fix typo in dmac pattern.
+	Make many define_splits that convert DFmode and DImode to one word
+	at a time to operate only after reload completes to improve reg alloc.
+	(movdf): Correct typo in mfacc.
+	(rotlsi3): Count is QImode, not SImode.
+
+	* tm-a29kunix.h (BIGGEST_ALIGNMENT): Change to 64.
+	
+	* tm-romp.h (OPTIMIZATION_OPTIONS): Enable insn scheduling.
+	(register definitions): No longer need dummy register and class;
+	register numbers for FP register change.
+	* romp.md: Use MATCH_SCRATCH instead of allocating pseudos
+	to the dummy register class or base register depending on alternative.
+	(FP insns): Add missing "=" to constraints in CLOBBERs.
+	(extendqisi2, extendqihi2): Now DEFINE_EXPAND.
+	(mc03 peephole): Can do if right shift >= 24 bits.
+	* out-romp.c (reg_15_operand): Remove special case for FP delay slot.
+	(romp_sa_size, output_fpop, output_loadsave_fpops, output_fpops):
+	Change floating-point register numbers.
+
+	* combine.c (simplify_shift_const, case for shifts): Verify that 
+	the host word size is wide enough.
+	Properly handle (ashift (subreg (ashiftrt ...) ...) ...).
+
+	* out-vax.c (print_operand_address, case PLUS): Handle all addresses
+	accepted by GO_IF_LEGITIMATE_ADDRESS.
+
+	* explow.c (plus_constant): force_const_mem does not necessarily
+	return a valid address.
+	* integrate.c (copy_rtx_and_substitute): Likewise.
+
+	* Makefile.in (local-alloc.o): Includes output.h.
+	* rtl.def (SCRATCH, MATCH_SCRATCH): New RTL codes.
+	* regs.h (max_scratch): Add definition.
+	* genconfig.c (walk_insn_part): Handle MATCH_SCRATCH.
+	* genextract.c (walk_rtx): Likewise.
+	* genemit.c (max_operand_1): Likewise.
+	(gen_exp): Emit a SCRATCH for for MATCH_SCRATCH.
+	(gen_insn): We can create (clobber (scratch)).
+	* genoutput.c (scan_operands): Handle MATCH_SCRATCH;
+	use switch instead of if's.
+	* genrecog.c (make_insn_sequence): We can created (clobber (scratch)).
+	(add_to_sequence): Handle MATCH_SCRATCH.
+	* flow.c (life_analysis): Initialize max_scratch.
+	(propagate_block): Update max_scratch with count from this block.
+	(mark_set_1): Make REG_UNUSED note for SCRATCH and count it.
+	* local-alloc.c: Include output.h.
+	(qty_scratch_rtx): New variable.
+	(alloc_qty): Rename INSN_NUMBER to BIRTH since that's what it is.
+	(alloc_qty_for_scratch): New function.
+	(local_alloc): Account for quantities needed for SCRATCH.
+	Allocate and initialize qty_scratch_rtx.
+	(block_alloc): Allocate quantities for SCRATCH operands.
+	(requires_inout_p): Add "X" constraint.
+	* recog.c (scratch_operand): New function.
+	(constrain_operands): SCRATCH matches a register constraint unless
+	strict.
+	Add "X" constraint.
+	* regclass.c (reg_class_record): Add "X" constraint.
+	* reload1.c (emit_reload_insns): Add SCRATCH to test for operand that
+	dies right away; update REG_UNUSED note for SCRATCH.
+	Never need reload insn for SCRATCH, even if no REG_UNUSED note.
+	* rtlanal.c (reg_mentioned_p, reg_overlap_mentioned_p, rtx_equal_p):
+	Support SCRATCH.
+	(volatile_refs_p, side_effects_p, may_trap_p): Likewise.
+	(inequality_comparisons_p, replace_regs): Likewise.
+
+	* flow.c (mark_set_1): Don't do anything special with partial
+	assignments; this is already handled by mark_used_regs and we now
+	want to make LOG_LINKS for these.
+
+	* combine.c: Includes expr.h.
+	(expand_field_assignment, make_extraction): New functions.
+	(get_pos_from_mask, make_field_assignment): Likewise.
+	(can_combine_p): Remove special case for SUBREG in SET_DEST; call
+	expand_field_assignment instead.
+	(try_combine): Remove code to handle STRICT_LOW_PART here.
+	Call expand_field_assignment on SETs in I3.
+	(find_split_point): Split up simple cases of bitfield assignments.
+	(subst, case ZERO_EXTRACT): Remove processing of ZERO_EXTRACT in a
+	SET_DEST from here.
+	(subst, case SET): Try to convert this into a field assignment by
+	calling make_field_assignment.
+	No need to call make_compound_operation for COMPAREs;
+	make_compound_operation now returns an rtx and is no longer passed
+	a pointer.
+	Remove tests for ZERO_EXTRACT in SET_DEST.
+	(make_compound_operation): Now returns rtx and is passed rtx, instead
+	of rtx *.
+	Call make_extraction.
+	(simplify_comparison): Call make_compound_operation here and remove any
+	outermost SUBREGs that aren't doing anything.
+
+	* Makefile.in (combine.o): Includes expr.h.
+
+	* expr.c (convert_to_mode): Correct which cases can use gen_lowpart.
+
+	* final.c (final_scan_insn): Don't set INSN_DELETED_P after writing
+	insn.
+
+	* genoutput.c (main): Don't include aux-output.c in insn-output.c.
+	Include stdio.h before output.h.
+	(output_epilogue): Write definitions for all the predicates
+	placed in `insn_operand_predicate'.
+	* output.h: No longer need to define operand-predicate functions.
+	* configure: (m88k/dg): Only difference between xm-m88k{,dgux}.h was
+	definition of SEPARATE_AUX_OUTPUT, so we don't need xm-m88kdgux.h.
+	* xm-m88kdgux.h: Deleted.
+	Fix typo setting `target' in Makefile.
+	* Makefile.in (AUX_OUTPUT2): Deleted.
+	(OBJS): Remove AUX_OUTPUT2 and add aux-output.o.
+	(aux-output2.o): Now aux-output.o.
+	(insn-output.o): No longer depends on aux-output.c.
+	* make-m88kdgux (AUX_OUTPUT2): No longer define.
+	* tm-m68k.h, tm-romp.h, tm-sparc.h: Define functions in out-*.c and
+	used by insn-output.c.
+	* tm-m88k.h: Remove conditionalization for SEPARATE_AUX_OUTPUT; now
+	always done.
+	No longer define predicate functions; done by genoutput.c.
+	* tm-mips.h: No longer define SEPARATE_AUX_OUTPUT.
+	* out-*.c: Add includes previously present in insn-output.c.
+	* out-sparc.c (output_fp_move_double): No longer static.
+	(output_sized_memop): No longer need to define asm_out_file here.
+	(output_function_epilogue): Correct type; function is void, not char *.
+
+Fri May  3 01:05:44 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+
+	* sdbout.c (sdbout_one_type): TYPE_FIELDs may contain other kinds of
+	_DECL nodes than just FIELD_DECL nodes (in GNU C++, at least).
+	Don't look through such nodes until further mods are made to handle
+	them better.
+
+Thu May  2 14:43:48 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-decl.c (finish_enum): Don't store enum type as type of value.
+
+	* c-parse.y (YYPRINT, yyprint): New macro and new function.
+
+	* expmed.c (expand_and): Handle both args constant.
+
+	* expr.c (store_field): Avoid refetching from bitfield if possible.
+
+	* math-68881.h (pow): Negate x if negative when taking log.
+
+	* expr.c (emit_move_insn): Fixed typo in `y1 = change_address' call.
+	Reenable the code to move objects word at a time.
+
+Thu May  2 12:29:16 1991  Eric Youngdale  (youngdale at v6550c.nrl.navy.mil)
+
+	* cccp.c (hack_vms_include_specification): Modified conversion of
+	unix filenames to VMS filenames, if no VMS device or directory is
+	present, and a unix style directory name is present, then use the
+	first unix directory name as the VMS device spec. This is only
+	used in '#include <...>' type includes, when the include file has
+	not been found in the standard locations.
+
+Thu May  2 10:06:47 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+
+	* cplus-decl.c (init_decl_processing): Call init_gc_processing if
+	-fgc is requested.
+	* cplus-init.c (build_new): Argument to build_compound_expr must be
+	a TREE_LIST all the way.  The last elt of the chain cannot be an
+	_EXPR.
+
+Thu May  2 07:33:50 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case CONVERT_EXPR): Pass bitsize to store_field
+	instead of size in bytes.
+
+Wed May  1 13:33:58 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+
+	* version.c: Bumped version number to 1.93.
+
+Wed May  1 12:26:36 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gcc.c (link_command_spec): Pass plain -m to ld.
+
+	* c-decl.c (finish_enum): Clean up re-laying out of type.
+
+Wed May  1 08:04:44 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* Makefile.in: Handle new cplus-*.c files.
+
+	* cplus-typeck.c (common_base_type): Make this function recursive.
+	(build_component_ref): Test whether or not a FIELD_DECL, not whether
+	or not a VAR_DECL||CONST_DECL||TYPE_DECL.
+
+	* cplus-parse.y: Fixed grammar so that template type decls could be
+	used.  Previously, support existed for template decls following
+	types, but not as types.
+	* cplus-pt.c ({push,pop}_template_decls): New functions.
+	(instantiate_template): Call `push_template_decls'.
+	(end_template_instantiation): Let `poplevel' restore old bindings.
+	No need to clear out extra stuff.
+	(pushclass, popclass): Call `{push,pop}_template_decls' if the class
+	we are pushing or popping has template arguments.  These arguments
+	go at class level.
+
+	* cplus-method.c (build_opfncall): Test TRY_SECOND before testing
+	possibly uninitialized XARG2.
+
+	* cplus-lex.c (init_lex): Initialize NODE_TABLE, OPNAME_TAB and
+	ASSIGNOP_TAB to hold zero.  Since these come from malloc'd memory,
+	we cannot trust them to be initialized on startup.
+
+	* cplus-init.c (expand_aggr_init_1): When initializing through a
+	TARGET_EXPR for objects of the same type (e.g., X a = X (10);)
+	use EXP's DECL_RTL as the DECL_RTL of the TARGET_EXPR.
+
+	* cplus-decl2.c (finish_file): Handle new flag `-fgnu-binutils'.
+	When zero, don't use GNU extensions to a.out format.  ???Should be
+	merged into varasm.c.
+
+	* cplus-class.c: Added support for `dossiers'.  This support is
+	implemented by extending the virtual function table and by giving
+	all C++ objects a virtual function table to hold it's dossier.
+	* cplus-decl.c (record_builtin_type): New function to construct
+	dossier information for built-in types.
+	(output_builtin_tdesc_entries): To keep repeated information under
+	control, we only output this information for the file that contains
+	`main'.
+	(init_decl_processing): Many dossier-related changes.	
+	(init_lex): Recognize new reserved words `headof' and `classof' if
+	-fgc.
+	* cplus-parse.y: Grammar now recognizes `headof' and `classof'
+	expressions.
+	* cplus-method.c: Added dossier constructors here.
+	* cplus-tree.h (CLASSTYPE_DOSSIER): New macro: `dossier' is a new
+	field in lang_type.
+	* cplus-typeck.c (convert_for_assignment): Handle
+	`class_star_type_node'.
+
+	* cplus-class.c: New variable current_class_depth.  Used to tell
+	what class nesting level the compiler is at.
+	* cplus-decl.c (grokdeclarator): Now supports references to decls
+	that come from nested types.  For example, int foo::bar (foo_tag);
+	where `foo_tag' is a tag that comes from foo.  Previously this was
+	supported only as int foo::bar (foo::foo_tag);
+	* cplus-decl2.c (build_push_scope): build a SCOPE_REF node while
+	pushing into the context for the scope.  When `grokdeclarator' sees
+	one of these nodes (distinuished by its TREE_COMPLEXITY being set to
+	the current_class_depth), it processes the decl and pops the scope.
+
+	* cplus-class.c (build_vbase_path): Trust objects that are
+	`fixed_type_p'.  Also, don't assume an object is non-null unless
+	flag says this is explicitly so.  InterViews creates and may
+	manipulate (via delete) lots of null objects.
+	(build_vfn_reference): Use IS_AGGR_TYPE test on type, not in
+	INSTANCE.
+	(resolves_to_fixed_type_p): New argument NONNULL is used in case we
+	know and object to be non-zero.  All callers changed.
+
+	* cplus-call.c: New file, from file cplus-class.c.  Contains code to
+	generate method calls.
+ 	* cplus-class.h: New file, contains common declarations for
+	cplus-class.c and cplus-call.c.
+
+	* cplus-class.c (finish_struct_bits): Don't leave last_conversions
+	uninitialized.
+
+Tue Apr 30 17:14:00 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_expr):
+	Preserve volatility when changing ARRAY_REF to use a pointer.
+
+	* vax.md (indirect_jump): Use parens around register, not @.
+
+	* fixincludes (machine/cpu.h): Delete superfluous `static'.
+
+	* tm-decstatn.h (CPP_PREDEFINES): Define __mips and __LANGUAGE_C.
+
+	* explow.c (allocate_dynamic_stack_space): Compensate if
+	STACK_POINTER_OFFSET throws off the alignment.
+
+	* loop.c (strength_reduce): Typos setting not_every_iteration.
+
+Tue Apr 30 16:10:32 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* vax.md (bicb): Fix typo that caused operand not to be negated.
+	(jlbs/jlbc): Operand[0] cannot be a constant.
+
+	* rtl.h: Put NOTE_INSN_... codes in order.
+	(find_regno_note): Add missing definition.
+
+	* reload.c (find_reloads_address): Handle an indexed stack slot that
+	is made out of range by frame pointer elimination.
+
+Tue Apr 30 14:09:28 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* toplev.c (compile_file): Output gcc2_compiled, not gcc_compiled.
+	* tm-tower-as.h (ASM_IDENTIFY_GCC): Likewise.
+
+Tue Apr 30 13:56:40 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* varasm.c (output_addressed_constants): Return and indication of
+	whether the variable requires link-time relocations.
+	(assemble_variable, get_or_assign_label): Use this value when
+	choosing the section.  Use the data section for variables and
+	constants that are otherwise read-only when -fpic is given and
+	when link-time relocations are required.
+	* tm-*.h (SELECT_SECTION): Accept a new second parameter RELOC.
+
+Tue Apr 30 10:24:36 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* rtl.h (NOTE_INSN_LOOP_VTOP), rtl.c (note_insn_name): Add a new
+	note indicating the virtual top of a loop.
+	* jump.c (duplicate_loop_exit_test): Mark the duplicated exit code
+	in the loop as the virtual top of the converted loop.
+	(squeeze_notes): Move loop-vtop notes as well.
+	* loop.c (scan_loop): When a loop-vtop note is encountered, reset
+	`maybe_never' and `call_passed'.
+	(strength_reduce): Similarly, reset `not_every_iteration'.
+
+Tue Apr 30 08:15:50 1991  Michael Meissner  (meissner at osf.org)
+
+	* expr.c (do_store_flag): Move the join label after setting the
+	target value to 0, rather than before, which generates code that
+	always stores 0 into the target if the machine does not have a
+	builtin scc operation.
+
+Tue Apr 30 06:26:36 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload): When making reg_equiv_mem and reg_equiv_address
+	from reg_equiv_memory_loc, clear the one we aren't setting; it might
+	have been previously set.
+
+	* final.c (final_scan_insn): Correctly handle when the first insn in a
+	SEQUENCE is a JUMP_INSN that forces restoration of a comparison
+	previously thought unnecessary.
+
+	* fold-const.c (fold, case PLUS_EXPR): If we have 2 * real_cst, 
+	fold into a new constant instead of making real_cst + real_cst.
+
+Mon Apr 29 23:09:17 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* cplus-decl.c (output_builtin_tdesc_entries): Corrected
+	declaration of permanent_obstack.
+	(init_decl_processing): Record declaration of int with name "int"
+	rather than null.
+	(finish_decl): Fix typo in comment.
+
+	* cplus-class.c (finish_struct): Made error message for union
+	member requiring constructor/destructor a little tidier.
+	(resolve_scope_to_name): Look at fields of current type as well as
+	tags, in case of local typedefs.
+	(build_method_call): Permit explicit call of destructor in class
+	that doesn't have one.  (That's what the ARM says....)
+
+	* cplus-decl.c (set_nested_typename): New function, extracted from
+	within pushtag.  Extended to deal with null classname.
+	(pushtag): Call it.
+	(pushdecl): For a TYPE_DECL, ensure that the nested typename gets
+	set.
+	(pushdecl_class_level): Ditto.
+	(constructor_name): Test various assertions.
+	(hack_incomplete_structures): If type is a class template, punt.
+
+	* cplus-input.c (getch): Renamed from get_character.  Callers
+	changed.
+	cplus-lex.c (old getch): Deleted.
+
+	* cplus-lex.c (save_pending_input, restore_pending_input): New
+	functions for saving and restoring lexer state.
+	(process_next_inline): Restore lexer state after each function.
+	cplus-pt.c (end_template_instantiation): Ditto.
+	cplus-input.c (struct input_source, getch, feed_input): Preserve
+	putback_char and lexer state.
+
+	* cplus-input.c (getch): Return magic cookie on end of saved input
+	for lexer to recognize.
+	cplus-lex.c (yylex): Turn it into END_OF_SAVED_INPUT.
+	(process_next_inline): Require it after inline function body.
+
+	* cplus-lex.c (do_pending_inlines): Don't save away current
+	file/line-no info; character input processing should do that.
+	(yyungetc): Turn conditional abort into assertion test.
+	(note_list_got_semicolon): Since variable "type" is available, use
+	it rather than recompute.
+	(identifier_type): Now static.
+	(yylex): Warn about conflicts with class template expansion names.
+
+	* cplus-parse.y (temporary_scope): New variable.
+	(object and scoped_id actions): Set it to current type.
+	(many other actions): Clear it.
+	(scoped_typename): Now derivable also from scoped_id and TYPENAME.
+	cplus-lex.c (yylex): If temporary_scope is set, use it to
+	determine type of current token being examined, instead of looking
+	always in the global scope.  (Can't properly do nested template
+	classes otherwise.)
+
+	* cplus-ptree.c (print_lang_decl): Print out template-info,
+	original-name, decl-main-variant, and pending-inline-info nodes if
+	not null.
+
+	* cplus-pt.c (mangle_class_name_for_template): For negative
+	numbers, use "m" prefix rather than printf's "-".
+	(overload_template_name): Test more assertions.  Use
+	SET_IDENTIFIER_TYPE_VALUE macro.
+	(lookup_template_class): Assert template decl node is non-null.
+	Push to permanent obstacks for new allocations.
+	(instantiate_template): Return new class type in a list.
+
+	* cplus-pt.c (undo_template_name_overload): Clear type local
+	definition of template name.
+	(end_template_instantiation): Call it.
+	cplus-parse.y (structsp actions): Ditto.
+	(named_class_head_sans_basetype): Don't call
+	overload_template_name here.
+	(named_class_head): Call xref_tag, to define a tag, before calling
+	it here.
+
+	* cplus-parse.y (tmpl.1, tmpl.2): Delete type declarations, since
+	they have no values.
+	(yyprint, YYPRINT): New function and macro to work with debugging
+	code added to bison.
+	(datadef -> template_header... actions): Assign yychar, rather
+	than calling yyungetc and yylex.  Require trailing semicolon.
+	(fn.def1 -> PRE_PARSED_FUNCTION_DECL action): Preserve all of
+	terminal value, instead of just TREE_PURPOSE.
+	(tmpl.1 action): Do instantiation only if '{' or ':' not found.
+	(template_instantiation): Call overload_template_name right away.
+	(primary -> .scope new '(' typename ')' '[' ...): Detect and warn
+	about this construct, which appears to be recognizeable, though
+	disallowed by the ARM.
+	(primary -> delete[]): Return error_mark_node.
+	(primary -> obj TYPESPEC::~TYPESPEC()): Catch, parse as valid.
+	Returned value not determined yet.
+	(typespec): No longer derived from PTYPENAME.
+	(LC): Added missing semicolon at end of rule.
+	(stmt): A PTYPENAME can also be used as a label name.
+
+Mon Apr 29 22:18:47 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* tm-att386.h (ASM_OUTPUT_LOCAL): Align static local variables.
+
+Mon Apr 29 15:20:35 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* fold-const.c (fold): Don't assume an address is nonzero.
+	* cse.c (fold_rtx): Likewise.
+
+	* stmt.c (warn_if_unused_value): No warning for cast of cast of modify.
+
+	* Makefile.in (USER_H): Remove float.h.
+
+Mon Apr 29 13:46:48 1991  Jim Wilson  (wilson at cygnus.com)
+
+	* loop.c (scan_loop): When see a REG_EQUAL note, check for both
+	the move_insn and the REG_RETVAL case, since they can occur together.
+	(move_movables): For the move_insn case, handle library calls just
+	like the older normal case code below, that is, skip to the end of a
+	library call when when see a REG_LIBCALL note, and delete an entire
+	library call if when see a REG_RETVAL note.
+
+Mon Apr 29 12:58:19 1991  Jim Wilson  (wilson at cygnus.com)
+
+	* sched.c: (schedule_block): Rewrite code that computes which
+	registers are live at the end of the block.  Compute this from
+	basic_block_live_at_start info of current block, instead of from
+	all reachable blocks.  Previous code failed if one of the
+	reachable blocks consisted of dead code.
+	(sched_note_set): Set bb_live_regs when DEATH is false.
+
+	* sched.c: Update copyright.  Correct various problems with
+	indentation and white space.
+	(canon_rtx): Delete obsolete code handling INSN_LIST rtx.  Add
+	code to recurse on the operands of a PLUS rtx.
+	(find_symbolic_term): New function.  Recursively search an rtx for
+	a SYMBOL_REF or a LABEL_REF and return pointer to one if found.
+	(memrefs_conflict_p): No longer needs to call canon_rtx on
+	operands of a plus.  Now handles case of two addresses with
+	different base addresses.
+	(schedule_block): Don't set INSN_DELETED_P bit of ignored notes.
+	Verify that REG_DEAD notes have a register value.
+	(sched_analyze_1): Ifdef out obsolete code which calculates cc0
+	dependencies.
+	(sched_analyze): Likewise.
+	(schedule_block): Likewise.
+	(launch_links): Delete obsolete code for handling SPARC	'orcc' insns.
+
+Mon Apr 29 12:09:32 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* configure: Allow spaces between options and their args.
+
+Mon Apr 29 06:35:09 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): Don't emit jump to next insn; this would
+	cause jump_optimize to loop.
+	(jump_optimize, duplicate_loop_end_test, do_cross_jump): Never put
+	insn in jump_chain if its INSN_UID is too large.
+	(redirect_tablejump): Likewise.
+
+Sun Apr 28 08:00:01 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl.c (init_decl_processing): Merge changes in builtin
+	function handling to match the way that c-decl.c now works.
+	Also add global variables to support that change.
+	(define_function): Ditto.
+
+	* cplus-decl2.c: Add flags for gc and xref.
+	* cplus-tree.h (DECL_GC_OFFEST): New macro for gc.
+	* cplus-tree.h: Rearrange CLASSTYPE_ASSOC and CLASSTYPE_BASETYPES so
+	that the former now uses TYPE_LANG_SPECIFIC storage, and the latter
+	uses TYPE_BASETYPES.
+	* cplus-tree.h: Change overload names of new and delete to `nw' and
+	`dl'.  Formerly, `new' was being seen as `ne', the encoding for `not
+	equal'.
+
+	* cplus-xref.c: New file.  Adds support for generating
+	cross-reference information such as a class browser or program
+	analyzer would use.
+
+	* cplus-gc.c: New file.  Add support for garbage collection.
+	* cplus-decl.c (finish_decl): Tie decls to their places in the
+	garbage collector.
+	* cplus-init.c (build_new): Added hooks for gc.
+	* cplus-typeck.c (convert_arguments): protect arguments from the
+	garbage collector if -fgc.
+	(build_modify_expr): More gc-related changes.
+
+Fri Apr 26 07:31:26 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* integrate.c (expand_inline_function): Add missing increment of I.
+
+Thu Apr 25 11:07:11 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (various patterns): Use nonimmediate_operand in place of
+	reg_or_nonsymb_mem_operand and constraint `m' in place of `Q'.
+	* tm-m88k.h (EXTRA_CONSTRAINT): Only needed for a call address.
+	* out-m88k.c: reg_or_nonsymb_mem_operand and symbolic_memory_p are
+	now unused.
+
+	* m88k.md (symbolic store patterns): These patterns are all
+	unnecessary and are deleted.
+	* out-m88k.c (emit_move_sequence): Eliminate the case that
+	generated a CLOBBER.  This was intended to use the symbolic store
+	patterns, but isn't needed.
+	(symbolic_memory_operand): Delete, no longer used.
+	(output_prologue): Don't check for suspicious register elimination
+	changes.
+	* tm-m88k.h (GO_IF_LEGITIMATE_ADDRESS): Treat the frame pointer
+	like the argument pointer as both may change to REG+SMALLINT.
+
+Tue Apr 23 15:08:03 1991  Jim Wilson  (wilson at cygnus.com)
+
+	* out-sparc.c (output_scc_insn): Clean up and expand comments.
+	Don't assume that JUMP_LABEL fields are always valid, they aren't
+	when compiling without optimization.
+
+Mon Apr 22 13:56:43 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-class.c (prepare_fresh_vtable): Thoroughly update virtual
+	function tables that come from baseclasses to contain the latest
+	overrides from derived classes.  This was done (in a different way)
+	for virtual baseclasses, but left undone for non-virtual
+	baseclasses.
+	(finish_struct_bits): Use assoc lists instead of class basetype list
+	to walk through the classes base classes.  This gives us more
+	relavant classes to check against.
+	* cplus-init.c (init_vfields): New function to recursively walk
+	objects and make sure their vfields are initialized.
+	* cplus-init.c (emit_base_init): Call `init_vfields' from top level.
+
+	* cplus-tree.h (TYPE_IDENTIFIER): New macro, gives the
+	IDENTIFIER_NODE for a given aggr TYPE.
+	* cplus-class.c (add_method): Use TYPE_IDENTIFIER.
+	* cplus-cvt.c (various places): Ditto.
+
+	* cplus-class.c (finish_struct): Add TYPE_DECLs to the list of a
+	class's members that come from the types implicitly declared tags.
+
+	* cplus-decl.c (grokdeclarator): If a function is declared `static
+	inline', don't give it global visibility, regardless of what #pragma
+	interface/implementation suggests.
+
+	* cplus-decl.c (finish_function): ??? Questionable change for PIC:
+	don't let constructors and destructors that manipulate vtables go
+	inline, since this somehow reduces page sharing.  Really???
+
+	* cplus-except.c (init_exception_processing): Use `pushdecl' to
+	install global info that this function sets up.  That way later
+	decls can override this info (such as with an inline function).
+
+	* cplus-init.c (build_vec_delete): Set TREE_SIDE_EFFECTS of
+	controller.  Otherwise the loop won't execute.
+
+	* cplus-method.c (prepare_inline): Rewritten and simplified.
+	(do_inline_method_hair): Ditto.
+
+	* cplus-tree.c (lang_output_debug_info): Only output nested type if
+	we would also output enclosing type.
+
+	* cplus-typekc.c (c_expand_return): Use pseudo for intermediate
+	return value if necessary.  GCC can't read the function return
+	registers in an inline functino when the return value is being
+	ignored.
+
+Mon Apr 22 14:36:01 1991  Jim Wilson  (wilson at cygnus.com)
+
+	* sched.c (init_alias_analysis): Handle REG_EQUIV notes just like
+	REG_EQUAL notes.
+
+	* sched.c (sched_analyze_2): Don't recurse on constant rtx's.
+	This is necessary so that the cc0_rtx in CONST_DOUBLEs won't be seen.
+	(sched_analyze): Call sched_analyze_insn for JUMP_INSNS	also, so
+	that cc0 users will get an automatic dependence on their previous
+	insn.
+	(launch_links): Ifdef out special treatment of insns which set the
+	condition codes.  This is obsolete, and was SPARC specific anyways.
+	(new_sometimes_live): Clarify code that aborts if regno is greater
+	than max_regno.
+	(schedule_block): If the last insn sets cc0, then it must always
+	be left	in place.
+	(new_insn_dead_notes): New function.  Determines whether a SET or
+	CLOBBER in an insn created by splitting needs a REG_DEAD or
+	REG_UNUSED note added.
+	(update_links): Ignore REG_EQUIV and REG_EQUAL notes on insns that
+	have more than one set.  Generalize flow analysis of the sets in
+	the new insns so that it can handle new insns which have multiple
+	sets or new clobbers.
+
+Mon Apr 22 08:15:50 1991  Michael Meissner  (meissner at osf.org)
+
+	* gcc.c (input_suffix): New global var; holds current file's suffix.
+	(handle_braces): Substitute X in %{.S:X} if the current file has
+	suffix .S.  Similarly, substitute X in %{!.S:X} if the current file
+	does not have suffix .S.
+	(validate_switches): Ignore .S part in %{.S:X} construct.
+
+Sat Apr 20 14:41:17 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+
+	* final.c (leaf_function_p): Define this in any event.
+
+Sat Apr 20 10:45:43 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (check_dbra_loop): Use GET_RTX_CLASS when appropriate.
+	Check for setting biv with single_set rather than only allowing a SET.
+	If a loop has a `break', we can't reverse it.
+
+	* cse.c (cse_insn): Fold inside operands of a CALL (mostly to find the
+	best address form to use).
+
+	* cse.c (simplify_unary_operation): Convert (neg (neg ..)) to NEG.
+	Similarly for NOT.
+	(simplify_binary_operation): Simplify things like (-a) + b.
+	Convert UDIV with divisor a constant power of two into LSHIFTRT.
+	Similarly for UMOD.
+	Only fold shifts of a zero by a value into zero if the value has
+	no side effects.
+	Remove code to handle negative shift counts.
+
+	* tm-a29k.h (OPTIMIZATION_OPTIONS): Allow insn scheduling to be
+	enabled, now that it works for the 29k.
+
+	* tm-rs6000.h (LINK_SPEC): Add "-bhalt:4" to LINK_SPEC (don't ask!).
+
+Fri Apr 19 13:18:52 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* explow.c (memory_address): Test `cse_not_expected' instead of
+	`optimize' so that we don't make new pseudos after flow is run.
+
+	* genflags.c (gen_insn): If extra condition is more than one line,
+	use \'s to make proper multi-line macro definition.
+
+Thu Apr 18 13:40:01 1991  Jim Wilson  (wilson at cygnus.com)
+
+	* loop.c (check_dbra_loop): Reenable no_use_except_for_counting code
+	which was mistakenly ifdefed out as buggy.  The actual bug was in
+	strength_reduce, and has already been fixed.
+
+Thu Apr 18 09:47:25 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (record_giv): Allow for the case where regno_last_uid
+	of DEST_REG has been moved or deleted.
+
+	* rtlanal.c (replace_regs): Add missing argument in recursive call.
+
+	* recog.c (nonmemory_operand): Only call general_operand for
+	a SUBREG if it is a MEM, just like register_operand.
+
+	* local-alloc.c (block_alloc): Handle case where the last insn of
+	a REG_NO_CONFLICT block requires some CLOBBERs, but is a single SET.
+
+	* out-romp.c, out-rs6000.c (next_insn_tests_no_unsigned): If a
+	REG_UNUSED note for (cc0) is present on INSN, return 1.
+
+	* jump.c (delete_jump): If the previous insn sets cc0 but we can't
+	delete it for some reason, add a REG_UNUSED note for cc0 in that insn.
+
+	* out-a29k.c: Rename input_operand to in_operand and output_operand
+	to out_operand to avoid conflict with output_operand in final.c.
+	* a29k.md: Likewise.
+	(call patterns): Don't put SYMBOL_REF in MEM for recursive call;
+	it might not be recursive if inlined; let cse do it later.
+	* tm-a29k.h (RTX_COST, ADDRESS_COST): All addresses have the same
+	cost, but MEM is expensive.
+
+Tue Apr 16 16:01:47 1991  Michael Meissner  (meissner at osf.org)
+
+	* configure: Add osfrose, osf, and mips/dec-osfrose.
+
+	* out-mips.c (toplevel): Include necessary include files so
+	out-mips.c can be compiled separately.
+	(g_switch_value): New variable to hold -G xx value.
+	(g_switch_set): New variable to indicate if -G xx used.
+	(current_function_file): New variable to hold last .file.
+	(file_in_function_warning): New variable to hold if we've warned the
+	user that ECOFF can't switch files within a function.
+	(mips_rtx_classify): New array to classify an insn.
+	(mips_reg_names): New array to hold the register names.
+	REGISTER_NAMES initializes all elements to point into here, and
+	override_options resets the names if -mrnames is used.
+	(mips_sw_reg_names): New array to hold the alternate register names.
+	(mips_regno_to_class): New array to map hard register number to
+	register class.
+	(uns_arith_operand): Rewrite so call to register_operand is done
+	last, not first.
+	(arith_operand): ditto.
+	(arith32_operand): ditto.
+	(large_int): New function to return true if int constant will take 2
+	instructions to load into a register.
+	(reg_or_0_operand): New function to return true if a register or
+	constant 0 is the operand for use in store patterns.
+	(md_register_operand): New function to return true if either the hi
+	or lo register is used.
+	(mips_const_double_ok): New function to return true if a
+	CONST_DOUBLE can be used as a constant in a RTL expression.  At
+	present, only DImode constants and 0.0 is allowed.
+	(simple_memory_operand): New function to return true if a memory
+	reference is a simple register + small offset.
+	(gp_memory_operand): New function to return true if a memory
+	reference uses the global pointer.
+	(mips_move_instructions): New function to handle all data movement
+	of one word or less.
+	(mips_move_2words_instructions): New function to handle all data
+	movement of two words.
+	(init_cumulative_args): Remove print_tree debug call.
+	(function_arg_partial_nregs): Fix bug in passing structures where
+	the wrong field was used.
+	(print_options): Enable this function, body was in #if 0.
+	(override_options): Spell function name with two r's.  Change how
+	the -G xx and -mGx options are handled.  If neither passed use the
+	appropriate default.  If -mgas make sure debug format is DBX, and if
+	not -mgas, use SDB debug format.  If -mrnames and -mgas, give an
+	error message, otherwise set up mips_reg_names.  Set up the
+	mips_rtx_classify array.
+	(print_options): New function instead of a long macro.  Add %C to
+	print part of the opcode for a branch condition, %N to print the
+	inverted branch condition, %( to do .set noreorder, %) to do .set
+	reorder, %[ to do .set noat, %] to do .set at, %& to do .set
+	noreorder if filling delay slots, and %# to print nop if delay slot
+	not filled.
+	(print_operand_address): New function instead of a long macro.
+	(compute_frame_size): New function to abstract all the frame related
+	information like frame size, saved registers, etc.
+	(save_restore): Common function between the prologue and epilogue to
+	save/restore the registers in the proper order.  Make $31 saved at
+	function pc +4.
+	(function_prologue): Call compute_frame_size and save_restore.  Make
+	sure the appropriate .file is done before any statement in the
+	prologue since the MIPS ECOFF requires this.
+	(function_epilogue): Call compute_frame_size and save_restore.
+
+	* tm-decstatn.h (CPP_PREDEFINES): Define the appropriate macros.
+	(*_SPEC): Move the DECstation related specs here from tm-mips.h.
+
+	* tm-decrose.h (new file): File to support OSF/1 with OSF/rose
+	object format.
+
+	* tm-mips-sysv.h (CPP_PREDEFINES): Define the appropriate macros.
+	(*_SPEC): Move the DECstation related specs here from tm-mips.h.
+
+	* tm-mips-bsd.h (CPP_PREDEFINES): Define the appropriate macros.
+	(*_SPEC): Move the DECstation related specs here from tm-mips.h.
+
+	* tm-mips-news.h (CPP_PREDEFINES): Define the appropriate macros.
+	(*_SPEC): Move the DECstation related specs here from tm-mips.h.
+
+	* tm-iris.h (CPP_PREDEFINES): Define the appropriate macros.
+	(*_SPEC): Move the DECstation related specs here from tm-mips.h.
+	(SET_FILE_NUMBER): Define, so that .file number is always 1.
+	(LABEL_AFTER_LOC): Define, so that a label appears after .loc.
+	(STACK_ARGS_ADJUST): Iris frames require 32 bytes at the top of the
+	call frame instead of the normal MIPS 16.
+
+	* mips.md (all): Add first cut at attributes to identify insn type.
+	(all): Where appropriate, use @ form for alternates, instead of
+	using C code.
+	(define_delay): Put arithmetic and one word stores in call, jump,
+	branch delay slots.
+	(define_function_unit): Add functional unit definitions for memory
+	and integer multiply/divide.
+	(anonymous add/subtract insn): Remove support for reg + large offset
+	that omitting the frame pointer caused in 1.xx to see if it is
+	needed anymore.
+	(mulsi3): Add clobbers for the hi/lo registers.  Add a define_split
+	and an anonymous define_insn to separate the mult instruction from
+	the mflo.
+	(divmodsi4): Add clobbers for the hi/lo registers.
+	(udivmodsi4): Add clobbers for the hi/lo registers.
+	(divsi3): Add clobbers for the hi/lo registers.  Restrict divides
+	and modulus to register / register.
+	(modsi3): ditto.
+	(udivsi3): ditto.
+	(ymodsi3): ditto.
+	(divide peepholes): Add two peepholes to catch divide followed by
+	modulus of the same values.
+	(anddi3): Remove pattern, use default behavior.
+	(iordi3): Remove pattern, use default behavior.
+	(xordi3): Remove pattern, use default behavior.
+	(truncsiqi2): Remove pattern, use default behavior.
+	(truncsihi2): Remove pattern, use default behavior.
+	(trunchiqi2): Remove pattern, use default behavior.
+	(truncdfsf2): Remove asm comment.
+	(extendhisi2): Add a define_split for shift case.
+	(extendqisi2): Add a define_split for shift case.
+	(extendqihi2): Add a define_split for shift case.
+	(movdi): Turn into a define_expand to guarantee that memory <->
+	memory moves go through a register.
+	(movsi): ditto.
+	(movhi): ditto.
+	(movqi): ditto.
+	(movsf): ditto.
+	(movdf): ditto.
+	(movdi_internal): new define_insn.  Add fp registers to the
+	alternatives.  Call mips_move_2words_instructions to do the actual
+	movement.  Require memory addresses to be offsetable.
+	(movdf_internal): ditto.
+	(movsi_internal): new define_insn.  Add storing 0 to memory
+	directly using $0.  Add transfer to/from multiply/divide registers,
+	and to the fp status register.  Call mips_move_instructions to do
+	the actual work.
+	(movhi_internal): ditto.
+	(movqi_internal): ditto.
+	(movsf_internal): ditto.
+	(jump): Add %& to turn on .set noreorder if filling delay slot.
+	(tablejump): Ditto.
+	(call): Ditto.
+	(call_value): Ditto.
+	(indirect_jump): New required pattern, add %& for delay slot.
+	(nop): Use %( %) to turn on/off .set noreorder.
+	(probe): Use %[ %] to turn on/off .set noat.
+
+	* tm-mips.h (abort): Define abort to be fancy_abort for now.
+	(toplevel): Move all extern's to the start of the file, rather than
+	scattered throughout.
+	(OPTIMIZATION_OPTIONS): New macro, -O sets -fomit-frame-pointer, and
+	-fdelayed-branch.  -O2 sets -fstrength-reduce, -fcse-follow-jumps,
+	-fexpensive-optimizations, -fthread-jumps, -frerun-cse-after-loop.
+	-O3 sets -finline-functions.
+	(*_SPEC): Move most of the target specific spec's to the appropriate
+	file, rather than defining them in tm-mips.h.  Defaults are for MIPS
+	RISC-OS with default system.
+	(CPP_SPEC): If preprocessing .S files, define LANGUAGE_ASSEMBLY
+	instead of LANGUAGE_C.
+	(MIPS_VERSION): Add meissner version number.
+	(MIPS_DEBUGGING_INFO): Define this for the future.
+	(TARGET_*): reorder which bit means what.  Add bits so we can tell
+	whether any of the -mG[012] options were used.  Redefine some debug
+	switches.
+	(BYTES_BIG_ENDIAN): Always define to 0/1 now.
+	(WORDS_BIG_ENDIAN): Always define to 0/1 now.
+	(MAX_PARM_BOUNDARY): Delete, since it's no longer used.
+	(BIGGEST_FIELD_ALIGNMENT): Define to be 64.
+	(CONSTANT_ALIGNMENT): New macro, make sure strings are aligned.
+	(DATA_ALIGNMENT): New macro, make sure byte arrays are aligned.
+	(FIRST_PSEUDO_REGISTER): Bump to 67, add hi, lo, fcr31.
+	(FIXED_REGISTERS): Add initializations for hi, lo, and fcr31.
+	(CALL_USED_REGISTERS): Add initializations for hi, lo, and fcr31.
+	(MD_REG_P): New macro to return if hi/lo register.
+	(ST_REG_P): New macro to return if fp control register.
+	(HARD_REGNO_NREGS): Return 4 for single precision complex.
+	(MODES_TIEABLE_P): Add complex float type support.
+	(FRAME_POINTER_REQUIRED): Make this always 0.
+	(NO_RECURSIVE_FUNCTION_CSE): New macro, define as 1.
+	(enum reg_class): Add class for the hi register, lo register, either
+	hi or lo registers, status registers.
+	(REG_CLASS_NAMES): Support new register classes.
+	(REG_CLASS_CONTENTS): ditto.
+	(REG_CLASS_FROM_LETTER): ditto.
+	(REGNO_REG_CLASS): Use an array to map register # -> class.
+	(CONST_OK_FOR_LETTER_P): Add `L' for constants which have bottom 16
+	bits all zero, and `M' which require two instructions to load.
+	(CONST_DOUBLE_OK_FOR_LETTER_P): Use `CONST_DOUBLE_HIGH' and
+	`CONST_DOUBLE_LOW'.
+	(EXTRA_CONSTRAINT): New macro, `Q' for gp memory references, and `R'
+	for reg + small offset references.
+	(struct mips_frame_info): New structure to hold all frame related
+	information, calculated by compute_frame_size.
+	(INITIAL_FRAME_POINTER_OFFSET): New macro, use compute_frame_size to
+	calculate where the frame should go.
+	(ACCUMULATE_OUTGOING_ARGS): New macro, define so stack pushes are
+	folded into the frame.
+	(REG_PARM_STACK_SPACE): Redefine to take an argument and return 16.
+	(OUTGOING_REG_PARM_STACK_SPACE): New macro, define to say we must
+	allocate stack space for arguments passed in registers.
+	(TARGET_FLOAT_FORMAT): New macro, define as IEEE_FLOAT_FORMAT.
+	(FUNCTION_ARG_BOUNDARY): New macro to determine argument padding
+	requirements.
+	(MIPS_STACK_ALIGN): New name for AL_ADJUST_ALIGN macro.
+	(FIX_FRAME_POINTER_ADDRESS): Delete, no longer used.
+	(FUNCTION_PROFILER): No longer have to switch between different
+	register names, override_options now sets up reg_names correctly.
+	(TRAMPOLINE_TEMPLATE): New macro, define as a dummy.
+	(TRAMPOLINE_SIZE): ditto.
+	(INITIALIZE_TRAMPOLINE): ditto.
+	(INDIRECTABLE_ADDRESS): Delete, fold into GO_IF_LEGITIMATE_ADDRESS.
+	(GO_IF_LEGITIMATE_ADDRESS): If -mdebuga, don't allow <label>(<reg>)
+	type addresses, which the machine really doesn't support, but you
+	currently get better code in some instances by pretending it does
+	support it.
+	(LEGITIMATE_CONSTANT_P): Call mips_const_double_ok if CONST_DOUBLE.
+	(ENCODE_SEGMENT_INFO): New macro, set SYMBOL_REF_FLAG (ie, volatil)
+	if refering to an item via the gp pointer.
+	(SLOW_BYTE_ACCESS): Define to 1, it is supposed to generate better
+	code on RISC machines.
+	(classify_op): New macro to classify an insn.
+	(additive_op): Use classify_op to figure out if PLUS or MINUS.
+	(divmod_op): New macro to identify DIV, MOD, UDIV, UMOD insns.
+	(unsigned_op): New macro to identify UDIV, UMOD insns.
+	(REGISTER_NAMES): All names are now pointers into mips_reg_names, so
+	that we don't have to continually test whether -mrnames is used or
+	not.  The override_options function sets this up appropriately.
+	(REGISTER_NUMCHAR): Deleted.
+	(REG_NAME): Deleted.
+	(ADDITIONAL_REGISTER_NAMES): Define both names for the gp registers,
+	so people can use either $r4 or a0 in asm statements.
+	(PRINT_OPERAND): Call print_operand function instead of expanding a
+	huge macro.  Add %C, %N, %(, %), %[, %], %&, %#.
+	(PRINT_OPERAND_PUNCT_VALID_P): Add `(', `)', `[', `]', `&', and `#'.
+	(PRINT_OPERAND_ADDRESS): Call print_operand_address function instead
+	of expanding a huge macro.
+	(DBX_OUTPUT_SEQEND): New macro, emit .set reorder after filling
+	delay slot(s).
+	(ASM_OUTPUT_SOURCE_FILENAME): Add check for doing .file of same file
+	-- this is needed for the prologue to do a .file before all prologue
+	instructions, rather than after the instructions which set up the
+	stack.  Also, warn about #line requests that cannot be honored in
+	MIPS ECOFF binaries.
+	(ASM_OUTPUT_CASE_END): Delete, since it was only used to go back to
+	the text section, and GCC does this now automatically.
+	(READONLY_DATA_SECTION): New macro, define to be rdata_section.
+	(SELECT_SECTION): Don't force volatile readonly items into .data.
+	(ASM_COMMENT_START): New macro, define to be '\t\t# ' for -dp.
+	(SEPARATE_AUX_OUTPUT): New macro, define this to separately compile
+	out-mips.c.
+
+Tue Apr 16 15:00:51 1991  Jim Wilson  (wilson at cygnus.com)
+
+	* unroll.c (final_giv_value): Use expand_binop instead of
+	gen_sub2_insn when emitting subtract insns, since expand_binop
+	will work for any operands.
+
+	* sched.c (schedule_insns): Don't split no-op moves; doing so
+	breaks the code that handles REG_NO_CONFLICT blocks.
+	(update_links): Delete the code that prints a warning for
+	REG_EQUAL notes where the original dest can't be found.  This no
+	longer occurs because of the above change.
+
+	* sched.c: Generalize memory aliasing code so that it will work on
+	non-RISC machines.  Instead of saving just the insn on the pending
+	lists, now saves both the insn and the mem rtx.  Old variables
+	pending_read and pending_write replaced with pending_read_insns,
+	pending_read_mems, pending_write_insns, and pending_write_mems.
+	(read_dependence, true_dependence, anti_dependence,
+	output_dependence): Now passed a MEM rtx instead of a PATtern.
+	(add_insn_mem_dependence): New function.  Adds an insn and a mem
+	to a pending list pair.
+	(sched_analyze_1, sched_analyze_2, sched_analyze): Modified to use
+	new pending list scheme.
+	(schedule_block): Likewise.
+	(schedule_insns): Likewise.
+
+Tue Apr 16 12:31:07 1991  Jeffrey A. Law  (law at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (install-man): Look for protoize.1 and unprotoize.1
+	in the current directory, not $(srcdir)
+	(install-headers): Use basename to strip off $(srcdir) from 
+	include files when installing and changing mode.
+
+Tue Apr 16 08:10:38 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.md (extendqixi2): Add CLOBBER to the first SET as well as
+	the second.
+	(load_multiple): Fix typo in operand number and add newline.
+
+	* reload.c (find_reloads_address_1): Pass actual location of a
+	MEM used in an address; also handle the case when the MEM was
+	copied.  Ensure we reload the copy, not the original address.
+
+	* reload1.c (eliminate_regs, case {INSN,EXPR}_LIST): Correctly handle
+	the cases when one or more operations is (nil).
+
+	* local-alloc.c (block_alloc): Check for REG_EQUAL on list insn
+	of REG_NO_CLOBBER sequence, not first.
+	(no_conflict_p): Set LAST and use INSN instead of P for loop start.
+
+Mon Apr 15 12:55:12 1991  Jim Wilson  (wilson at cygnus.com)
+
+	* loop.c (strength_reduce): Don't emit an insn after loop_end to
+	set the final value of a reversed biv.  There is already an insn
+	there setting the biv's proper final value.
+
+Sun Apr 14 18:32:05 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* gnulib1.c (various functions): Added declaration of INTIFY to
+	every function which has a FLOAT_ARG_TYPE argument or return value.
+
+Sun Apr 14 18:31:59 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-decl.c (store_parm_decls): Traditional float parm becomes double.
+
+Sat Apr 13 17:35:07 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* m68k.md (storing 32-bit field with movl): Allow any immediate arg 3.
+
+	* expmed.c (store_bit_field): For fields bigger than a word:
+	Avoid special use of SImode, and don't crash if VALUE is CONST_INT.
+
+Fri Apr 12 02:04:46 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* reload.c (find_reloads): Like prev change here, for optional reloads.
+
+	* tm-sparc.h (FUNCTION_BLOCK_PROFILER): Must set %o0 to the address
+	LPBX0 by adding in the low part of the address before calling
+	___bb_init_func.
+
+	* tm-next.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
+	New macros.  Place reference to constructor or destructor into
+	constructor or destructor section.
+
+	* tm-next.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS):  Add
+	new constructor and destructor sections.
+
+	* jump.c (squeeze_block_notes,squeeze_notes): Chage the name of
+	squeeze_block_notes to squeeze_notes.  Also handle LOOP_BEG, LOOP_CONT
+	and LOOP_END notes, since these must remain in their original order.
+
+	* cccp.c (skip_to_end_of_comment): Handle warn_comment.
+
+	* m68k.md (dbra patterns): Use `=' in constraint of op 0.
+
+	* gcc.c (process_command): Handle -save-temps.
+	(do_spec_1): Handle %g like %b if -save-temps.
+	(verbose_flag): Renamed from `vflag'.
+
+	* tm-sparc.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Don't define this.
+
+Fri Apr 12 00:57:48 1991  Jim Wilson  (wilson at cygnus.com)
+
+	* sched.c: Update all comments to reflect source changes.
+	Make old_live_regs a static global, instead of local to schedule_block.
+	Schedule_block is now void, since its return value was always 1.
+	Rename last_function_call_not_const to last_pending_memory flush.
+	This can not be a CALL_INSN or a INSN that writes memory.
+	New variable pending_lists_length so that the lists can be flushed
+	when they get too long.
+	Use GET_RTX_CLASS instead of multiple GET_CODE calls whenever it
+	makes sense.
+	(read_dependence): New Function.  Returns one if two reads are
+	dependent.  This can happen if both are volatile reads.
+	(true_dependence, anti_dependence, output_dependence): Two volatile
+	memory access are always dependent.
+	(order_calls): Function deleted.  It was very short, it was only called
+	once, and it no longer did what its name implied.  Its one call was
+	replaced with the body of the function.
+	(sched_analyze_1): Correctly handle stripping of SUBREGs, etc from
+	the set dest.
+	If the pending lists are longer than 32 when processing a memory
+	write, then make this write depend on all previous and all future
+	memory accesses so we can flush the pending list.  This is necessary
+	because the algorithms used are O(N*N).
+	(sched_analyze_2): For memory reads, check whether it is read
+	dependent on any previous memory read (this can happen if both reads
+	are volatile).
+	(sched_analyze_insn): Replace call to order_calls with the body of
+	that function.
+	(sched_analyze): Don't clear last_memory_pending_flush for a non-const
+	call, since any future call must still depend on all previous memory
+	accesses.
+	(sched_note_set): Correct handling of SUBREGs, etc.  For partial sets
+	of a register, must treat this exactly the same way as flow.c, i.e.
+	a partial set of a register does not kill the register.  Delete
+	ifdefed out code which is obsolete.
+	(attach_deaths): New argument SET_P, which indicates whether this is
+	a set (if true) or a use (if false) of the rtx X.  Correct handling
+	of REG_DEAD notes, to account for the new REG_UNUSED note.
+	(attach_deaths_insn): Pass new additional parameter to attach_deaths.
+	Always call attach_deaths for sets within a parallel.  Call
+	attach_deaths for clobbers.
+	(new_sometimes_live): Ifdef out code which should never be executed,
+	and replaced with call to abort.
+	(schedule_block): Now void.
+	When processing block to find dead_regs, don't unlink REG_UNUSED notes,
+	but must mark the indicated register as dead.
+	(update_links): Completely rewritten to make more general.  Now handles
+	all REG_NOTEs except REG_INC and REG_LABEL.  No longer makes simple
+	assumptions about the form of instructions.  New argument orig_insn,
+	which is the original unsplit insn.
+	(schedule_insns): Delete unused volatilep code.  Pass new parameter
+	to update_links.
+
+Thu Apr 11 15:34:44 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* out-m88k.c (pic_addressing_base_rtx): Use pic_offset_table_rtx
+	instead.  Otherwise, PIC fails miserably for inline functions.
+	(legitimize_address): Support -mbig-pic.
+	(print_operand): Add `g' for printing #got_rel (for -mbig-pic).
+	* tm-m88k.h (CONDITIONAL_REGISTER_USAGE): PIC_OFFSET_TABLE_REGNUM
+	is used and is fixed for PIC.
+	(GO_IF_LEGITIMATE_ADDRESS): Distinguish the -mbig-pic case.
+	* m88k.md (SImode hi16/lo16): Use %g for -mbig-pic.
+
+Wed Apr 10 21:53:32 1991  Jim Wilson  (wilson at cygnus.com)
+
+	* unroll.c: Change global variable declarations to static.
+	Four new global variables loop_iteration_var, loop_initial_value,
+	loop_increment, and loop_final_value, used for communication between
+	loop_iterations and precondition_loop_p.
+	(unroll_loop): Before deleteing the insns in the original loop body,
+	emit a label after the last insn to be deleted, to ensure that no
+	delete_insn call will delete past that point.
+	(precondition_loop_p): Use global loop_* variables setup by
+	loop_iterations, instead of trying to calculate their values again.
+	(copy_loop_body): Don't emit copies of the start_label.
+	(approx_final_value): COMPARISON argument now passed as the pair
+	COMPARISON_CODE and COMPARISON_VALUE.
+	(find_splittable_regs): When completely unrolling a loop, and the
+	initial value of a biv is a hard register or itself, then must
+	create a new register to hold its initial value for splitting.
+	(loop_iterations): Set the new global variables loop_*.
+	If the comparison value is an invariant register, then search the insns
+	before the loop to try to find a constant value for the register.
+
+Wed Apr 10 16:02:16 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* out-m88k.c (pic_addressing_base_rtx): A pseudo register coined
+	for each function as needed in legitimize_address.
+	(emit_move_sequence): Use legitimize_address instead of generating
+	HIGH/LO_SUM.
+	(legitimize_address): Rework, based on the sparc version, to
+	implement PIC.
+	(output_call): Use the #plt form when doing PIC.
+	(m88k_layout_frame): The addressing base register is no longer
+	fixed and r1 need not be saved for PIC.
+	(output_prologue): Output instructions to setup the addressing
+	base register if one is needed.
+	(print_operand_address): Support the PIC case.
+	* m88k.md (most patterns using hi16/lo16): Disable these for PIC.
+	* tm-m88k.h (CONDITIONAL_REGISTER_USAGE): No longer needed.
+	(ADDRESSING_BASE_REGNUM): Derived from pic_addressing_base_rtx.
+	(GO_IF_LEGITIMATE_ADDRESS): Accept the PIC case.
+	(LEGITIMIZE_ADDRESS): Use legitimize_address instead of HIGH/LO_SUM.
+
+	* make-m88k, make-m88kdgux: Use SysV INSTALL = cp and for DG/UX,
+	use the bison -l option to allow debugging in c-parse.tab.c.
+
+	* From kenner@vlsi1.ultra.nyu.edu.
+	* out-m88k.c: Include insn-config.h before conditions.h, which
+	requires it.
+	* xm-m88kdgux.h: Define SEPARATE_AUX_OUTPUT before including config.h.
+	* tm-m88k.h: Declare MD functions only if SEPARATE_AUX_OUTPUT.
+
+	* tm-m88k.h, tm-m88kdgux.h, tm-m88ksvr4.h: Rework TARGET_VERSION.
+
+Wed Apr 10 08:19:02 1991  Richard Stallman  (rms at apple-gunkies)
+
+	* caller-save.c (emit_mult_restore): Typo testing offset[regno] sign.
+
+	* fold-const.c (target_isinf): Test real value for infinitude.
+	* real.h (REAL_VALUE_ISINF): Use target_isinf.
+
+	* configure: Change / to -- in value of `target' in Makefile.
+
+Tue Apr  9 20:09:49 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* configure: Modify assignment to `target' in Makefile.
+	(AIX target): Use correct config files.
+	
+	* make-aix386: New file.
+
+Tue Apr  9 19:28:16 1991  Torbjorn Granlund  (tege at zevs.sics.se)
+
+	* longlong.h (header):
+	Modify definition of count_leading_zeros for input = 0.
+	* (68020): Test for __NeXT__ too.
+	* (68020 __umulsidi3, umul_ppmm, udiv_qrnnd):
+	Use constraints "dmi", not "g" (avoid address registers).
+	* (88000 add_ssaaa, sub_ddmmss): Use r modifier for output
+	templates, use J, not I, as constraint for the carry-in insns
+	* (at the end of the file): If UDIV_NEEDS_NORMALIZATION is not
+	defined, define it as 0.
+
+Tue Apr  9 19:14:34 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* function.c (optimize_bit_field): Fix typo.
+
+	* cccp.c (do_define): Don't crash when a builtin macro is
+	redefined.
+
+Tue Apr  9 15:11:42 1991  Richard Stallman  (rms at apple-gunkies)
+
+	* expr.c (move_by_pieces): Don't fail to compile if no movqi.
+
+	* emit-rtl.c (get_last_insn_anywhere): Use first nonempty seq.
+
+	* varasm.c (assemble_constructor): Fix typo.
+
+Fri Apr  5 22:15:57 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.md (extendqixi): Add CLOBBER to ASHIFTRT insn.
+
+	* combine.c (simplify_shift_const): Shift operand of PLUS using
+	correct mode.
+	Correctly simplify outer_const when done.
+
+	* reload.c (push_reload): Don't de-reference INLOC if it is 0.
+
+	* expr.c (convert_to_mode): Call protect_from_queue.
+
+Fri Apr  5 13:29:55 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* varasm.c (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
+	Accept two arguments.
+
+Fri Apr  5 08:45:18 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expmed.c (expand_divmod): Convert OP1 to COMPUTE_MODE when we
+	convert OP0.
+
+	* combine.c (subst): Use gen_binary.
+	(simplify_comparison): If we have a ZERO_EXTRACT from a constant
+	with only one bit set, convert into comparison of position with
+	location of bit in constant; this simplifies ((1 << x) & 1) == 0.
+
+	* combine.c (gen_lowpart_for_combine): Copy code for CONST_DOUBLE
+	from gen_lowpart instead of calling it; it will abort for certain
+	floating-point cases, while we will just surround the object with
+	a SUBREG.
+
+Thu Apr  4 22:31:36 1991  Jim Wilson  (wilson at cygnus.com)
+
+	* unroll.c (new file): Implements loop unrolling.  Completely
+	unrolls small constant bounded loops.  Unrolls other constant
+	bounded loops by an amount modulo the number of iterations so that
+	only one exit test is needed.  Preconditions loops whose iteration
+	count can be calculated at run time, so that only one exit test
+	is needed.  Can also unroll any other loop by having multiple
+	copies of the exit tests.  Tries to simplify addresses while
+	unrolling.
+
+	* tree.def: BLOCK trees have 4 fields, not 5.
+
+	* toplev.c: Add new flag -dt to dump RTL after the second cse pass.
+	Define two new flags, flag_unroll_loops and flag_unroll_all_loops,
+	and add code to support their use for loop unrolling.  Print the
+	exec time for the shorten-branch pass in the proper place, i.e.
+	after delayed branch reorganization.
+
+	* stmt.c (find_loop_tree_blocks): New function.  Creates a mapping
+	between BLOCK trees and loops.  This info is needed when doing both
+	loop unrolling and outputting debugger info.
+	(unroll_block_trees): New function.  Makes COPIES copies of the block
+	trees corresponding the loop indicated by LOOP_NUMBER, so that the
+	BLOCK notes inside the loop will still match the BLOCK trees for
+	the loop.
+
+	* rtl.h: Document the new named pattern
+	"decrement_and_branch_until_zero".  Add macros to access new
+	field of inline_header rtx, which holds a pointer to the function's
+	original DECL_INITIAL tree.
+
+	* rtl.def: New entry for inline_header to hold a pointer to the
+	function's original DECL_INITIAL tree.
+
+	* loop.h (new file): Move many declarations from loop.c to the new
+	file loop.h, and change some from static to extern, so that they
+	can be shared with unroll.c.  Also globalize names for variables
+	changed from static to extern.
+
+	* loop.c: Move many declarations from loop.c to the new	file loop.h,
+	and change some from static to extern, so that they can be shared
+	with unroll.c.  Add misc comments to better explain the code.
+	Change name of global arrays loop_start and loop_end to
+	loop_number_loop_starts and loop_number_loop_ends so that they won't
+	be confused with local loop_start and loop_end variables.
+	New variables loop_number_exit_labels, loop_number_first_block,
+	loop_number_last_block, loop_number_block_level, loop_n_iterations.
+	Old_max_reg renamed to max_reg_before_loop.  Max_uid renamed to
+	max_uid_for_loop.  Induct_var renamed to reg_iv_type.
+	Induct_struct renamed to reg_iv_info.  Class_struct renamed to
+	reg_biv_class.  Iv_list renamed to loop_iv_list.
+	Rename (struct induction) field always to always_computable.
+	Rename (struct induction) field family to next_iv.
+	New (struct induction) field not_replaceable.
+	(loop_opt): Add code to allocate some new arrays for unrolling
+	support.  Add call to find_loop_tree_blocks to create the BLOCK tree
+	to loop map needed when unrolling and outputting debugger info.
+	(scan_loop): Fix setting of maybe_never of label/jump.  The old code
+	always failed.
+	(prescan_loop): Delete obsolete code.
+	(find_and_verify_loops): Add code to initialize
+	loop_number_exit_labels.
+	(mark_loop_jump): Add code for keep chain of loop_number_exit_labels
+	for each loop.
+	(invariant_p): LABEL_REFs are not invariant when doing loop unrolling.
+	Remove static from definition, so that it can be called from unroll.c.
+	(strength_reduce): Change name of variable maybe_never to
+	not_every_iteration, to help emphasize that it is not the same
+	as the variable maybe_never in the code motion code.  Modify code
+	that computes its value so that it will be false more often, resulting
+	in better code.
+	(strength_reduce): Added code to call the new loop unrolling
+	functions, e.g. unroll_loop, loop_iterations, etc.
+	(strength_reduce): New code to handle biv's and giv's which must
+	be set to their final_value after the loop exits.
+	(strength_reduce): Reversed giv's and biv's must have their values
+	calculated differently.  Add new field reversed to struct induction,
+	and code to check and use its value.
+	(strength_reduce): Only check value of bl->nonneg for architectures
+	that have a decrement_and_branch_until_zero instruction.
+	(find_mem_givs): New argument loop_start.
+	(record_giv): New argument loop_start.
+	The always_computable field for DEST_ADDR givs is always set true.
+	New code to check for case of spaghetti code, in which case the
+	giv can never be considered replaceable.
+	(check_final_value): New function. For givs which are not otherwise
+	replaceable, try to calculate their final value, and then try
+	to use this to make them replaceable.
+	(update_giv_derive): Skip inner loop if giv is known to be underivable
+	at the beginning.  Must set cant_derive if we pass an insn that
+	modifies the giv's biv, and we can't calculate an adjustment.
+	(emit_iv_add_mult): Remove static definition so that it is callable
+	from unroll.c.
+	(check_dbra_loop): Reversed biv's must be marked as such, so that
+	they can be treated specially in the rest of loop.c.
+	(final_biv_value): Moved to unroll.c, alongside the new function
+	final_giv_value.  Extensively rewritten to work for most common
+	cases.
+	(update_reg_last_use): Verify that insns have a valid luid before
+	trying to use it.  Don't perform any action if no value luid.
+	(get_condition): Correct initial comment.
+	(get_condition_for_loop): Remove static definition so it is callable
+	from unroll.c.
+
+	* integrate.h: Replace `tree' use in definition with
+	`union tree_node *' so that tree.h does not have to be included when
+	this file is included.	
+
+	* integrate.c (initialize_for_inline): Pass additional argument,
+	the DECL_INITIAL (fndecl) tree, to gen_inline_header_rtx.  Update
+	and correct comment.
+	(save_for_inline_copying): Copy the decl tree, so that virtual reg
+	instantiation, and loop unrolling, won't affect the saved tree.
+	(copy_decl_tree): New argument, functionbody, which distinguished
+	between calls from save_for_inline_copying and calls from
+	expand_inline_function.
+	(copy_rtx_and_substitute): Return orig instead of aborting when
+	inline_target is zero so that loop unrolling can use this code.
+
+	* gcc.texinfo: Document the new optimization flags -funroll-loops
+	and -funroll-all-loops, the new dump option -dt, and the new named
+	pattern	"decrement_and_branch_until_zero".
+
+	* flags.h: Define two new flags, flag_unroll_loops and
+	flag_unroll_all_loops.
+
+	* emit-rtl.c (gen_inline_header_rtx): New argument
+	original_decl_initial.  Pass to gen_rtx call.
+
+	* alliant.md, m68k.md: Name the pattern that uses the REG_NONNEG
+	note to "decrement_and_branch_until_zero".
+
+	* Makefile.in: Add source file unroll.c and header file loop.h to
+	the cc1 dependencies.  Add *.cse2 to the list of files deleted by
+	`make clean'.
+
+Thu Apr  4 16:13:37 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* varasm.c (assemble_constructor, assemble_destructor): New functions.
+	They use ASM_OUTPUT_CONSTRUCTOR and ASM_OUTPUT_DESTRUCTOR.
+	* cplus-decl2.c (finish_file): Use them.
+
+	* reload.c (find_reloads): Pass location as outloc for output reload.
+
+	* objc-actions.c (objc_class_id, synth_module_prologue):
+	Initialize new variable to hold identifier for "objc_class".
+
+	* objc-actions.c (objc_comptypes): Allow assigning between types
+	id and Class without warning.
+
+	* c-typeck.c (warn_for_assignment): When there is a type mismatch
+	in the hidden arguments of a message expression, don't print the
+	argument number as 0 or -1.  Instead print the warning as would
+	be done	for an explicit call to objc_msgSend (this should never
+	happen, but just in case).
+
+	* emit-rtl.c (gen_lowpart): Reverse #if for CONST_DOUBLE case.
+
+Thu Apr  4 13:27:02 1991  Michael Meissner  (meissner at osf.org)
+
+	* hard-reg-set.h (SET_HARD_REG_BIT, CLEAR_HARD_REG_BIT,
+	TEST_HARD_REG_BIT): Use unsigned arithmetic to isolate the word and
+	bit number, which produces better optimized code.
+
+Thu Apr  4 07:34:17 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (relax_delay_slots): Avoid adjusting LABEL_NUSES if the
+	insn is a conditional return.
+
+	* reload1.c (reload): If we find that a replacement cannot be
+	done and that replacement now enables a secondary replacement,
+	this may disable a third replacement in some cases.
+	(eliminate_regs, case SET): Don't stop after we find the first
+	match when looking for modified registers.
+
+	* combine.c (previous_num_undos): New var.
+	(try_combine): Set it after each call to subst.
+	When substituting I1 into I2, somtimes make a copy of PATTERN (i2).
+	(gen_rtx_combine): Start at PREVIOUS_NUM_UNDOS.
+
+	* combine.c (can_combine_p): Start check for volatile references
+	after INSN, not at INSN.
+
+	* combine.c (try_combine): When we find a split point, ensure
+	that I2 is a register.  If it is of the wrong mode, change the
+	mode if we can, just like we do with CCmode registers.
+	(find_split_point): Don't split an extraction if it crosses the
+	boundary given by the field (i.e., a byte boundary if QImode).
+	Correct typo: Should generate LSHIFTRT, not LSHIFT.
+	(subst): Correctly test to see if we can change the mode of
+	a register for a MODE_CC comparison.
+	(distribute_notes): If a NOTE references a pseudo-register,
+	ensure it references the latest copy of that register.
+	When scanning for last use, don't stop at CALL_INSNs.
+
+	* combine.c (expand_compound_operation): Don't get confused about
+	(zero_extend (asm_operands ..)) because of the VOIDmode ASM_OPERANDS.
+	(simplify_and_const_int): Ensure we do computations in proper mode.
+	Simplify ZERO_EXTRACT and ZERO_EXTEND when we have a PLUS.
+	(significant_bits): Don't call get_last_value on a SUBREG, just REG.
+	Correct significant bits for comparison operations.
+	(simplify_shift_const): When VAROP is logical, use proper mode when
+	computing shifted constant.
+
+	* combine.c (gen_lowpart_for_combine): Call gen_lowpart if we have
+	a CONST_DOUBLE.
+
+	* genconfig.c (walk_insn_part, main): Write a definition
+	for HAVE_lo_sum if a LO_SUM is present in the machine description.
+
+	* combine.c (try_combine): If we have a PARALLEL of a SIGN_EXTEND
+	and a load of memory, split it into a load and SUBREG assignment.
+	(find_split_point): If we have LO_SUM for this machine,
+	split (mem (symbol_ref ..)) using HIGH and LO_SUM.
+	If we have operation with second operand constant, maybe we couldn't
+	fit the constant in the insn, so try to split there.
+	Move NOT to first operand so we'll try to split the other operand
+	first.
+	(subst): No reason to avoid making paradoxical SUBREGs and we miss
+	some optimizations if we don't.
+	Convert (lo_sum (high FOO) FOO) to FOO.
+	Convert (C1 + (x + C2) to (C1 - C2) - x.
+	Use distributive law in more places with logical operations.
+	(apply_distributive_law): Properly distribute IOR over XOR.
+	(simplify_shift_const): Simplify (ashift (plus ..) ...).
+	(simplify_comparison): Add code to remove extraneous AND
+	operations when comparing result of two comparisons on some machines.
+	Ignore bits not applicable in our mode.
+	Treat some SUBREGs as ZERO_EXTENDs.
+	Convert equality comparison of AND with sign bit into LT or GE
+	comparison.
+	
+	* combine.c (gen_binary, gen_unary): New functions.
+	(apply_distributive_law, simplify_shift_const): Use gen_binary.
+
+Wed Apr  3 16:15:17 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (gnulib): Insert only .o files in combined archive.
+	(gnulib1.portable): Use $(HPXT).
+	* make-hp9k320g: Define HPXT.
+
+	* From wilson@cygnus.com.
+	* sched.c (schedule_block): Delete previously unused variable last_q.
+	Correct handling of registers with multiple lifetimes within a single
+	block, always save lifetime info, and clear the appropriate bit in
+	old_live_regs.  Delete now unused variable sched_reg_n_sets.
+
+Wed Apr  3 07:43:35 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* tm-romp.h (CONST_COSTS): All CONST_INTs are cost 0.  Symbolic
+	values cost two insns.
+
+	* function.c (fixup_var_refs_1): Correctly perform position
+	computation for bit extracts; disallow mode-dependent addresses.
+	(optimize_bit_field): Likewise.
+	Remove explicit mention of HImode and QImode by calling mode_for_size.
+	No need to check for offsettable_address_p; we call change_address
+	and are not called after reload; don't call adj_offsettable_operand.
+	* recog.c (validate_replace_rtx_1): Correct endian computation
+	and don't change mode of a MEM with a mode-dependent address.
+
+	* expmed.c (expand_divmod): Try to figure out what mode will be used
+	and convert to that once at the beginning, rather than repeatedly,
+	since we may be writing jumps.
+
+	* vax.md ({zero,sign}_extract patterns): Field width is QImode, not
+	SImode.
+
+Tue Apr  2 08:42:23 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_ternary_operation): Add argument for previous
+	mode of operand 0.
+	Don't do anything for extractions if bits don't fit in OP0_MODE.
+	Use OP0_mode instead of mode of OP0 for endian correction.
+	(fold_rtx): Pass new operand to simpllify_ternary operation.
+	* integrate.c (subst_constants): Add extra arg to call to
+	simplify_ternary_operation and call for rtx class 'b'.
+	* combine.c (find_split_point): Don't split an extract when the
+	bits are outside the mode of operand 0.
+	(subst): Pass new parameter to simplify_ternary operation and call
+	for rtx class 'b'.
+	(subst, case ZERO_EXTRACT): Don't change the mode of a MEM
+	if it is a mode-dependent address.
+	Correctly do endian adjustments so they are correct for fields that
+	go outside a byte boundary.
+	(subst, case {ZERO,SIGN}_EXTRACT): Don't adjust MEM here for non-dest
+	objects; already done in make_compound_operation.
+	(make_compound_operation): Rework code that makes extracts and
+	extends to correcty compute positions, taking into account the fact
+	that field can cross byte boundaries.  Remove redundant adjustments.
+	Use mode_dependent_address_p to validate changing modes of MEM.
+	(simplify_shift_const): Check for mode-dependent address when
+	changing mode of a MEM.
+	(gen_lowpart_for_combine): Likewise.
+
+	* expmed.c (expand_shift): Code to use extzv for logical right shift
+	had numerous assumptions about specific modes and did not validate
+	operands properly.
+
+	* expr.c (expand_expr, case NOP_EXPR): If no target was specified,
+	use convert_to_mode instead of convert_move; this may return a SUBREG.
+
+	* expr.c (do_jump): Conversion isn't NOP if it narrows the object.
+	If testing A & CONST and the result fits in a smaller mode, try
+	the compare there.
+
+	* cse.c (simplify_binary_operation): If eliminating reference to
+	operand, verify	that it has no side effects.
+	Add cases for "a | (~a)" and "a & (~a)".
+
+	* recog.c (register_operand): Only call general_operand for
+	(subreg (mem ...) X), not all SUBREGs.
+
+	* jump.c (jump_optimize): Remove needless incrementing of LABEL_NUSES
+	which can cause a dead label not to go away.
+
+Mon Apr  1 19:08:40 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): Add missing call to insert_regs.
+
+Mon Apr  1 18:21:33 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* optabs.c (init_optabs): Change #if to #ifdef.
+
+	* loop.c (check_dbra_loop): Take out Feb 24 change.
+
+Sun Mar 31 22:43:39 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* final.c (insn_counter): New variable.
+	(final_scan_insn): Increment it.
+	(output_asm_insn): Use it for %=.
+
+Sun Mar 31 22:16:31 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* out-a29k.c (output_prolog): Correctly write stack size in tag word.
+
+	* out-a29k.c (srcb_operand): If QImode, any constant is OK since
+	we only care about 8 bits.
+	(print_operand): Add %Q for QImode srcb values.
+	* a29k.md (QImode patterns): srcb's that accept constants should have
+	'n' constraint, not 'I'; use %Q to output.
+
+	* reload1.c (gen_input_reload): Properly generate reload when we are
+	adding a pseudo and a hard register.
+
+	* cse.c (simplify_unary_operation): Don't use ffs.
+
+Sun Mar 31 20:59:52 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+
+	* gnulib1.c (perform_ash{l,r}si3): Fix typo that had these
+	performaces swapped.
+
+Sun Mar 31 13:35:50 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* rtl.h (FIND_REG_INC_NOTE): New macro.
+	* rtl.h (AUTO_INC_DEC): Define here.
+	* flow.c (AUTO_INC_DEC): Not here.
+	* combine.c (can_combine_p, try_combine): Use FIND_REG_INC_NOTE.
+	Make other scans for REG_INC notes conditional on AUTO_INC_DEC.
+	* final.c (final_scan_insn): Use FIND_REG_INC_NOTE.
+	* jump.c (delete_jump): Likewise.
+	* loop.c (get_condition): Likewise.
+	* reload.c (find_reloads_address_1, find_equiv_reg): Likewise.
+	* reload1.c (reload_as_needed): Likewise.
+	* reorg.c (delete_scheduled_jump, mark_set_resources): Likewise.
+	* global-alloc.c (global_conflicts): Likewise.
+
+	* dbxout.c (dbxout_type): For integers, reals, and arrays,
+	use actual type number of int or char, in case those are not 1 and 2.
+
+	* toplev.c (compile_file): Take out last change (regarding lang_init).
+
+	* emit-rtl.c (sequence_element_free_list): Change data type.
+	(get_last_insn_anywhyere, add_insn_after): Finish last change.
+
+	* expr.c (expand_builtin): Finish last change.
+
+Sat Mar 30 15:16:16 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* function.h (struct sequence_stack): New data type.
+	(sequence_stack): Declare variable.  Use new data type.
+	* emit-rtl.c (get_last_insn_anywhere, add_insn_after): Adapt to that.
+	(start_sequence, end_sequence, in_sequence): Likewise.
+	(start_sequence): Allocate stack links as permanent.
+	(init_emit_once): Init sequence_stack here.
+	(init_emit): Not here.
+	* function.c (push_temp_slots, pop_temp_slots):
+	(expand_function_end): Use in_sequence.
+	(fixup_var_refs): Use new data type.
+	(put_var_into_stack): Don't declare sequence_stack.
+
+	* function.c (expand_function_start):
+	Trace static chain properly past first link.
+
+	* ns32k.md (andcbhi3, andcbqi3): Constraint shouldn't say commutative.
+
+Sat Mar 30 02:06:20 1991 North-Keys (erlkonig at apple-gunkies.gnu.ai.mit.edu)
+
+	* c-decl.c (init_decl_processing): Fix typo `integer_tpe_node'.
+	* dbxout.c (dbxout-symbol): Added char * declaration for `name'.
+	* objc-actions.c (encode_array): Avoid returning a value.
+
+Fri Mar 29 15:59:22 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-decl.c (init_decl_processing): Define __builtin_constant_p.
+	* expr.c (expand_builtin): Implement it.
+	* tree.h (enum built_in_function): New alternative.
+
+	* toplev.c (compile_file): Move lang_init call after debugger init.
+
+	* gcc.c (default_compilers): Define __cplusplus for C++ code.
+
+	* c-decl.c (start_function): Use 0 for name of result decl.
+	(value_identifier): Variable deleted.
+
+	* dbxout.c (dbxout_type): Handle LANG_TYPE.
+	(dbxout_symbol): Handle RESULT_DECL.
+	Handle variables with constant values that are not output.
+	Use the mangled name when appropriate.
+	(dbxout_tags): Output equivalent typedef when appropriate.
+	(dbxout_function): Output the DECL_RESULT if it has a name.
+
+	* varasm.c (assemble_variable): Delete calls to set_current_gdbfile.
+
+Thu Mar 28 16:14:13 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gcc.c (main): Calculate basename_length to exclude last period.
+
+	* optabs.c (expand_binop, expand_unop):
+	When widening, don't keep CONST_INT beyond a single word.
+
+	* tm-vax.h (CHECK_FLOAT_VALUE): Change float max to ...444e+38.
+
+	* Makefile.in (gnulib1, gnulib2.portable):
+	Make test of $$? normally succeed, not normally fail.
+	(gnulib1): Don't use -e in second loop.  Test explicitly instead.
+
+	* dbxout.c (lastfile): New static variable.
+	(dbxout_init): Initialize lastfile.
+	* final.c (lastfile): Deleted.
+	(init_final): Don't set lastfile.
+
+	* final.c (set_current_gdbfile): Function deleted.
+	(output_source_line): Handling of GDB debugging info deleted.
+	(final_start_function, final_end_function): Likewise.
+
+Thu Mar 28 09:58:18 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+
+	* cplus-decl.h (decl_context): Add missing declaration for BITFIELD.
+
+	* tm-sparc.h (CC1_SPEC): Change to handle new interpretation of -O2.
+	(OPTIMIZATION_OPTIONS): Use this macro to control default expensive
+	optimizations.
+	(MODES_TIABLE_P): Use GET_MODE_CLASS to simplify this macro.
+	(FUNCTION_ARG,FUNCTION_ARG_PARTIAL_NREGS): Make sure TYPE is nonzero
+	before we use it.
+	(FUNCTION_BLOCK_PROFILER): Fix a bug in the asm code.
+	(EXTRA_CONSTRAINT): For 'S' constraint, if OP is a register, make
+	sure it's not a pseudo.  Also, change call to `memory_address_p' to
+	`strict _memory_address_p'.  Both of these are for the strict cases.
+	(SLOW_BYTE_ACCESS): Try going with this set 1.
+	* sparc.md: Take advantage of new combiner to handle signed bitfield
+	comparisons and signed sub-word comparisons.
+	Added peepholes for doing subword memory tests and operations.
+
+Thu Mar 28 09:43:30 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (start_sequence, gen_sequence): Ensure we allocate rtl
+	on saveable_obstack since we will be saving it and we may be called
+	from an optimizer that will reuse allocated memory in current_obstack.
+
+Wed Mar 27 18:46:27 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* toplev.c (main): Print version with -version, regardless of
+	-quiet.
+
+	* Makefile.in (gnulib, gnulib2.ready): Put `-' before `if'.
+
+	* make-hp9k320, make-hp9k320g (CC, OLDCC): Delete -lsetjmp.
+	Add -Wc,-Nw2000.
+
+	* dbxout.c (dbxout_source_file): New name for fn moved from final.c.
+	* final.c (output_source_file): Moved to dbxout.c.  Callers changed.
+	(output_source_line): Call dbxout_source_file.
+
+Wed Mar 27 11:09:13 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+
+	* version.c: Bumped to version 1.92.
+
+	* final.c (output_source_{file,line}): Fix bug in new handling of
+	"Ltext".
+
+	* cplus-cvt.c (build_up_reference): Handle BIND_EXPR.
+
+	* Makefile.in (cplus-lex.o): depend on cplus-input.c.
+	* cplus-input.c: New file.
+
+	* cplus-method.c (do_inline_function_hair): Call a different
+	`prepare_inline', and don't deal with pending_inlines here.
+	* cplus-lex.c (do_pending_inlines): Deal with pending_inlines
+	here...
+	(reinit_parse_for_method): ...and here.
+
+	* cplus-decl.c (grok_ctor_properties): Use TYPE_NAME_STRING where
+	appropriate.  Also, don't assume that CURRENT_CLASS_TYPE is what we
+	use for error message; use CTYPE instead.
+
+	* cplus-type2.c (digest_init): Strip NON_LVALUE_EXPRs.
+
+	* cplus-tree.c (__eprintf): Added this function from gnulib2 until
+	gnulib configuration is worked out.
+
+	* cplus-parse.y (member_init): Call do_member_init.  Previous code
+	was wrong (using a goto to factor common code) because the parse
+	stack was different in the two contexts.
+	* cplus-init.c (do_member_init): New function.
+
+	* cplus-typeck.c (build_compound_expr): Convert arrays to pointers.
+	(build_c_cast): Warn about possible alignment problems.
+
+Wed Mar 27 05:55:32 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads): Disallow a PLUS as an operand even if
+	"g" is in the constraint; this is only valid for "p".
+
+Tue Mar 26 06:46:48 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (block_alloc): Have insn numbers start at 1, not 2.
+
+	* rtlanal.c (replace_regs): Move to here; add new parameter.
+	* loop.c (replace_regs): Delete from here.
+	(move_movables, strength_reduce): Pass new parameter to replace_regs.
+	* jump.c (duplicate_loop_exit_test): Make new pseudos for pseudos
+	used only in loop exit test; this prevents unnecessay sharing
+	between code inside and outside of loop.
+	* toplev.c (rest_of_compilation): Call reg_scan before jump.
+
+	* combine.c (distribute_notes): If we are searching back for the last
+	use of a register I3 and I2 no longer use and the last use is a SET
+	of that register, place a REG_UNUSED note instead of a REG_DEAD note.
+	No longer need handle REG_DEAD note for output of I3; it will now be
+	a REG_UNUSED note.
+
+	* combine.c (try_combine): If I3SRC is a register and I2 is a
+	multi-output insn, see if we can replace one of the outputs with
+	I3DEST.  If so, move LOG_LINKS pointing at the other outputs to
+	now point to I3 instead of I2.
+
+	* rtlanal.c (single_set): Return 0 if not an insn.
+	Only ignore SET with unused output if it has no side effects.
+	(side_effects_p): New function.
+	* combine.c (can_combine_p): Only ignore SET with unused output if
+	it has no side effect.
+	Don't extend the life of a hard register.
+	(try_combine): Always give up if I1 or I2 used reg inc'd in I3.
+	(significant_bits): Return mode mask if mode wider than host int.
+	Don't get confused by (zero_extend (const_int ..)) and similar where
+	the inner mode is VOIDmode.
+	Arithmetic operations now always have same modes on operands as
+	on the result.
+
+	* jump.c (jump_optimize): Set this_is_{simple,cond}jump at the start
+	of loop, not in middle, and use consistently.
+	Use can_reverse_comparison_p in case where we make scc insn.
+	Don't use can_reverse_comparison_p when we call invert_jump.
+	Use indirect_jump instead of indirect_exp.
+	Check invert_jump's result before making any other changes; handle
+	failure.
+	Simplify code that looks for and deletes USE insns.
+	(jump_back_p): Call can_reverse_comparison_p only if we have to
+	reverse the comparison.
+	(can_reverse_comparison_p): Accept comparison expression and insn
+	it comes from.
+	Rework to be more general now that we have MODE_CC and tighten
+	up a bit.
+	(invert_jump): Allow invert_exp and redirect_jump to fail.
+	(invert_exp): Only invert jump, don't change target.
+	If can reverse comparison code, try it using validate_change.
+	If that doesn't work, swap the arms of the IF_THEN_ELSE.  If that
+	doesn't work, return 0.
+	(redirect_exp): Now static.
+	* expr.c (do_jump_for_compare): Call invert_jump to invert jump
+	to false label after emitting jump; if this fails, convert to
+	jump around unconditional jump to false label.
+	(do_store_flag): Set to 1 first, then branch, then set to 0.  This
+	avoids inverting branches.
+	* reorg.c (optimize_skip, relax_delay_slots): Always allow invert_jump
+	to fail.
+	* rtlanal.c (single_set): Return 0 if not INSN, CALL_INSN,
+	or JUMP_INSN.
+
+	* reload1.c (eliminate_regs): If any eliminable regs occur in a USE,
+	eliminate them.
+
+Tue Mar 26 00:09:18 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-decl.c (implicitly_declare): Always make implicit decl permanent.
+
+Mon Mar 25 16:38:14 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* genextract.c (walk_rtx): Record operand numbers that are seen.
+	(gen_insn): If there are gaps in operand numbers, make code to store
+	something for the operands not used in this pattern.
+	(main): Initialize data structures.
+
+	* c-typeck.c (initializer_constant_valid_p):
+	Always allow length-preserving conversions between integer types. 
+
+	* regclass.c (reg_class_record): Return right away if operand is 0.
+
+	* c-decl.c (duplicate_decls): Warn if declare fcn inline after calls.
+
+	* reload.c (combine_reloads):
+	Test reg_overlap_mentioned_p in both directions.
+
+Mon Mar 25 15:05:29 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* genoutput.c (output_epilogue): Choose a name for an unnamed
+	pattern as an offset from the closest named pattern.  Define
+	`insn_name_ptr' as a pointer to `insn_name' for use by print_rtx.
+	* final.c (output_asm_insn): Use the pattern name chosen by
+	genoutput and output the INSN_UID as well.
+	* rtl.c (insn_name_ptr): Provide an alternate definition to avoid
+	link errors when rtl.o is not linked with insn-output.o.
+	(print_rtx): When printing the INSN_CODE field of an insn, print
+	the name if it is available.
+
+Mon Mar 25 09:39:43 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* regs.h (reg_first_use): Deleted.
+	* rtl.h (REG_UNSET): Deleted.
+	(REG_UNUSED): New note.
+	* combine.c (combine_instructions): Delete loop fixing up
+	reg_first_use.
+	(can_combine_p): Ignore a branch of a PARALLEL if its output is
+	never used.
+	(move_deaths): Don't update reg_first_use.
+	(distribute_notes): Don't handle REG_UNSET; add code for REG_UNUSED.
+	* flow.c (reg_first_use): Deleted.
+	(life_analysis): Restore code that marks vars live at start of function
+	as globals.  These are registers that were never set.
+	(allocate_for_life_analysis): Don't allocate reg_first_use.
+	(propagate_block): Search for cc0-setting insn with prev_nonnote_insn.
+	(mark_set_1): Don't set reg_first_use.
+	If register is never used, make REG_UNUSED note, not REG_DEAD.
+	(mark_used_regs): Don't set reg_first_use.
+	* global-alloc.c (global-conflicts): Dead outputs are now denoted by
+	REG_UNUSED notes, not REG_DEAD.
+	* reload.c (find_dummy_reload): Delete test of REG_UNSET; add test
+	of REG_UNUSED.
+	(find_equiv_reg): Don't re-use an output marked as REG_UNUSED;
+	we want these notes to be accurate; this would rarely win anyway.
+	* reload1.c (emit_reload_insns): Test REG_UNUSED to see if an
+	output won't be used any more.
+	* reorg.c (mark_target_live_regs): Use REG_UNUSED notes to kill	
+	registers dead after an insn.
+	* rtl.c (reg_note_name): Delete REG_UNSET, add REG_UNUSED.
+	* rtlanal.c (single_set): Ignore a SET whose output has a REG_UNUSED
+	note.
+	* sched.c (update_first_use): Deleted.
+	(update_links): No need to call update_first_use.
+
+	* local-alloc.c: Major changes to use REG_UNUSED notes, make
+	handling of only-set registers more consistent, and allow
+	two consecutive CLOBBERs to share a register.  Also, avoid loops
+	over all register each basic block; eliminating these make local-alloc
+	three times faster!
+	Quantity numbers now start at zero.
+	(qty_first_reg, reg_next_in_qty): New variables.
+	(qty_clobber): No longer needed.
+	(reg_qty): -1 if register cannot be allocated by local-alloc.
+	Now undefined for hard registers.
+	(reg_offset): Now char *.
+	(call_seen): Deleted, never used.
+	(regs_live_at): Now two entries per insn.
+	(alloc_qty): Initialize chain of register in quantity.
+	(local_alloc): Remove all per-block loops over registers.
+	Only allocate qty_... vars for max_reg - FIRST_PSEUDO_REGISTER.
+	Initialize reg_qty once per function.
+	Don't initialize qty_... vars that are always set before use.
+	(block_alloc): Delete insn_map, max_uid, and call_used.
+	Insn numbers start at 1 and we have two entries in regs_live_at
+	for each insn.
+	Search for REG_NO_CONFLICT block when we see a CLOBBER insn; this
+	avoids having already seen sets to the output register.
+	Call wipe_dead_reg for anything in a REG_UNUSED note.
+	Delete references to reg_first_use.
+	Don't check for invalid birth and death here.
+	Don't call qsort if we have 0 or 1 quantities.
+	Find all registers for a quantity using reg_next_in_qty chain instead
+	of looping over all pseudos.
+	(combine_regs): Refine tests to agree with new conventions.  
+	Never tie pseudos if SREG already has a quantity assigned.
+	When updating size, use reg_next_in_qty instead of looping over
+	all registers.
+	(reg_is_set): Just call reg_is_born.  Where it is born depends on
+	whether we have a CLOBBER or not.  Birth location is now twice
+	the insn number.
+	(reg_is_born): Handle case when a hard reg is born before the
+	current insn.
+	Show we don't know the death location.
+	(wipe_dead_reg): Parameters are now just register and an in/out flag.
+	Death locations are now twice the insn number.
+	Support hard regs that die immediately after current insn.
+	Don't make REG_UNSET notes.
+	(find_free_reg): Validate BIRTH and DEATH here.
+	We no longer have qty_clobber.
+	(post_mark_life): Eliminate CLOBBER parameter.
+	(no_conflict_p): Now passed CLOBBER at start of block.  Return 0 if
+	can't find death note or if R1 is a hard register.
+
+	* m68k.md (divsi3, udivsi3): Remove patterns.  Using divmodsi4 and
+	udivmodsi4 produces better code.
+	(divmodsi4, udivmodsi4): If remainder isn't needed, use divsl/divul
+	instead of divsll/divull.
+
+	* integrate.c (expand_inline_function): Remove change of March 20th.
+	Instead, expand args in two passes.  First, expand all that go
+	into registers.  Then do those in memory with store_expr.
+
+	* integrate.c (initialize_for_inline): Put the original copy of the
+	address into ARG_VECTOR; the new one will be modified.
+
+	* reload.c (push_reload): Handle paradoxical SUBREGs on an output
+	as well as an input.
+
+	* flow.c (mark_label_ref): Don't blow up when X is 0.
+
+	* combine.c (make_compound_operation): Fix typos; result of 
+	exact_log2 is interesting if >=0.
+
+	* a29k.md (store_multiple): Allow gen_store_multiple{_no,}_bug to fail;
+	we fail if they do.
+
+	* reorg.c (emit_delay_sequence): Record that we deleted a BARRIER
+	and restore it precisely on those occaisions.
+
+Sun Mar 24 21:19:55 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gcc.c (xmalloc, xrealloc): Change error message.
+	* toplev.c (various): Change error messages.
+
+	* final.c (final_scan_insn): Handle ASM_OUTPUT_LOOP_ALIGN.
+
+	* calls.c (emit_call_1): Pass number of bytes to pop to call_pop.
+	* vax.md (call_pop, call_value_pop): Use that arg.
+
+Sat Mar 23 23:28:59 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (version): Run awk, not gcc, to get this value.
+
+Sat Mar 23 18:04:23 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_unary_operation): Add missing cases for ABS and FFS.
+
+	* alliant.md: Eliminate unneeded patterns: HImode zero_extract, 
+	(set (cc0 (subreg ...))), (set (cc0) (and ...)),
+	(and (zero_extend ...) ...), shift right of 24 and 16.
+	Use alternatives to select assembler template when possible.
+	Use const_int_operand instead of immediate_operand when
+	possible to avoid explicit test for CONST_INT.
+	Write add-and-branch patterns with PLUS removed, the way combine
+	produces them.
+
+	* rtlanal.c (refers_to_regno_p): If X is a SUBREG of a hard
+	register, treat it as if it were the appropriate register.
+	CLOBBER doesn't refer to anything.
+	
+	* final.c (final_scan_insn): Use prev_nonnote_insn, not PREV_INSN,
+	to find cc0-setting insn from cc0-using insn.
+
+	* global-alloc.c (find_reg): Don't look for other registers to
+	renumber unless we know that we are sharing registers.
+
+	* emit-rtl.c (end_sequence): Fix typo that prevented speedup of
+	Dec 26th from doing anything.
+
+	* toplev.c (do_abort): New function, just calls abort.
+	(main): Set lang_expand_expr to address of do_abort; abort might be
+	a macro that is more than just a function name.
+
+	* cse.c: (qty_... variables): Refined to be undefined for indices
+	less than MAX_REG.  Thus, we need not intialize them at the start
+	of a basic block and can instead inialize a quantity as we create it.
+	(reg_{next,prev}_eqv): These variables will now be defined only when
+	reg_qty[N] != N and hence need not be initialized every block either.
+	(new_basic_block): Need not initialize reg_rtx for new block; the
+	only time we can inherit values from previous blocks is for hard
+	regs and it doesn't matter in that case.
+
+	* c-parse.y (yylex): Avoid use of size_t; it may not be defined.
+	Cast alloca to (char *).
+
+	* out-romp.c (update_cc): cc_status.value[12] can also be a COMPARE,
+	so use reg_overlap_mentioned_p to see if an insn that modifies a
+	register invalidates cc0.
+
+	* reorg.c (link_cc0_insns): If next insn is a SEQUENCE, the insn
+	using cc0 is the first insn in the sequence.
+	(mark_target_live_regs): Don't assume that a REG_DEAD note always
+	refers to a register.
+
+Sat Mar 23 15:35:59 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* reload1.c (reload_reg_free_before_p):
+	An input reload is use before an output or output address reload.
+
+	* genoutput.c (validate_insn_alternatives): New function.
+	Loop over insn's alternatives to find out how many
+	alternatives the insn pattern is to support.  Verify that if
+	any alternatives are specified for a given operand that the
+	number of alternatives match the numer of alternatives for
+	this insn.
+	(gen_{insn,peephole,expand,split}): Call
+	`validate_insn_alternatives' after scanning the insn.  This
+	sets up the value N_ALTERNATIVES for the insn so that
+	`process_template' can check that the number of alternitves
+	given matches the number of asm choices for `@' constructs.
+
+Sat Mar 23 08:09:57 1991  Michael Meissner  (meissner at osf.org)
+
+	* dbxout.c (toplevel, dbxout_init): Instead of always using `Ltext'
+	as the label at the beginning of the text region, properly localize
+	it, so that machines which do not put leading underscores in front
+	of external names do not have a problem if the user uses `Ltext'.
+	(dbxout_init): Call text_section before putting out localized
+	`Ltext', in case ASM_FILE_START put us into a different section.
+
+Fri Mar 22 19:26:23 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* a29k.md (jumpfdec): Simplify pattern to match what combine will
+	produce; remove reversed pattern.
+	* out-a29k.c (gen_reg_operand): Speed up by not calling
+	register_operand; check register number ourself.
+
+	* out-romp.c (update_cc, case CC_COMPARE): Call CC_STATUS_INIT.
+	* romp.md: In pattern that sets cc0 and copies a register to another
+	register, allow the output to be in memory so that we don't get an
+	output reload, which will cause problems.
+
+	* varasm.c (assemble_variable): Ensure DECL_INITIAL is non-zero
+	before we reference it; it might be zero if -fno-common.
+
+Fri Mar 22 16:11:35 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* toplev.c (abort): Don't declare if defined as macro.
+
+Fri Mar 22 11:49:43 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (bxxu): Don't attempt to use bcnd.
+	(umulsi3, ashift/and): Remove these patterns.
+	(dummy): This must be a define_expand.
+	* out-m88k.c (m88k_handle_pragma_token): Handle #pragma weak.
+	* tm-m88k.h, tm-m88kdgux.h, tm-m88ksvr4.h, tm-v88r32.h: Various
+	changes to support SVR4, including support for #pragma weak.
+	(SLOW_BYTE_ACCESS): Better code if this is true.
+
+Thu Mar 21 09:15:47 1991  Tom Wood  (wood at gen-rtx)
+
+	* c-parse.y (MULTIBYTE_CHARS): New macro.
+	(init_lex): Change to the native locale.
+	(yylex): Process wide character literals and wide character string
+	literals using mbtowc and mbstowcs based on MULTIBYTE_CHARS.
+
+Thu Mar 21 15:46:45 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtlanal.c (dead_or_set_p): A register is dead if it is assigned
+	via a SUBREG that references the all the words in the register.
+
+	* tm-vax.h (CONST_OK_FOR_LETTER_P): Define `I' to be constant zero.
+	(CONST_DOUBLE_OK_FOR_LETTER_P): Define `G' to be floating zero.
+	(CONST_COSTS): +/- 1 should be very cheap due to decl/inc/aob/sob.
+	(PRINT_OPERAND): Add `P', `N', `H', and `B'.
+	* vax.md: Rework many patterns to avoid C code for output template;
+	use "@" construct whenever possible.
+	Use INSN_DELETED_P.
+	Remove extendsidi2; the supplied pattern does exactly what convert_move
+	will do when the pattern is not present.
+	Use constm1_rtx to check for constant of -1.
+	Add mulsidi3 and related add-multiply pattern for emul insn.
+	Use const_int_operand as predicate instead of checking for CONST_INT.
+	Remove unneeded (set (pc) (if_then_else (ne (and ...) ...) ...))
+	patterns.
+	Merge jlbs and jbs and similarly for jlbc and jbc.
+	Remove unneeded reverse branch patterns for above insns.
+	Rewrite patterns for add-and-branch insns to take into account
+	simplifications done by combine and remove reversed cases.
+	Convert peepholes for optimizing extzv followed or preceeded by andl
+	into patterns for a single insn.
+
+Thu Mar 21 15:46:21 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* toplev.c (abort): Declare it.
+
+Thu Mar 21 08:16:12 1991  Michael Meissner  (meissner at osf.org)
+
+	* va-mips.h (whole file): Replace with the 1.39 version of this
+	file, which was a total rewrite of the 1.37.1 version.  Add
+	primitive support for 2.00.
+
+Wed Mar 20 18:31:42 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (duplicate_loop_exit_test): Make copy of contents of
+	register note; if it was a REG_EQUAL note, it might have been an
+	arbitrary expression and sharing it can cause problems in cse.
+
+	* rtl.def (UMULT): Remove unsigned multiply code.
+	* combine.c (subst, significant_bits): Remove code UMULT and
+	support for indicating widening multiply with different modes
+	on the MULT operation vs. its operands.
+	* cse.c	(simplify_binary_operation): Remove support for widening
+	multiply.
+	(rtx_code, exp_equiv_p, simplify_binary_operation, cse_insn): Remove
+	code UMULT.
+	* function.c (instantiate_virtual_regs_1): Likewise.
+	* reload1.c (eliminate_regs): Likewise.
+	* local-alloc.c (block_alloc): Likewise; replace with GET_RTX_CLASS.
+	* loop.c (simplify_giv_expr, expr_benefit): Remove code UMULT
+	and support for widening multiply.
+	* optabs.c (init_optabs): Set code of widening multiply tables
+	to UNKNOWN.
+
+	* a29k.md (mulsidi2, umulsidi2): Rewrite using SIGN_EXTEND and
+	ZERO_EXTEND.  Also fix typo in SUBREG_WORD when splitting.
+	* tm-alliant.h, tm-m68k.h (NOTICE_UPDATE_CC): Remove code UMULT.
+	* alliant.md, m68.md (mulhisi3, umulhisi3): Rewrite using
+	SIGN_EXTEND and ZERO_EXTEND.
+	(divhisi3, udivhisi3, modhisi3, umodhisi3): Rewrite using TRUNCATE.
+	* alliant.md, ns32k.md (umulsi3, umulhi3, umulqi3): Remove unneeded
+	patterns that use UMULT.
+	* ns32k.md (umulsidi3): Rewrite using ZERO_EXTEND.
+
+	* tm-alliant.h (NOTICE_UPDATE_CC): MOD and (trunc (mod ...))
+	clobber CC.
+	* alliant.md (mod*, umod*): No longer need CC_STATUS_INIT.
+
+	* recog.c: Include insn-attr.h.
+	(general_operand): If we have insn scheduling, don't allow paradoxical
+	SUBREGs since they can prevent scheduling memory references; they
+	aren't helpful on RISCs anyway and can cause poor register allocation.
+	* Makefile.in (recog.o): Includes insn-attr.h.
+
+	* cse.c (COST): A register only in NO_REGS isn't a specially-cheap reg.
+	(simplify_unary_operation, case {ZERO,SIGN}_EXTEND): If OP_MODE was
+	given as VOIDmode, use MODE; allow mode size of HOST_BITS_PER_INT.
+	(cse_insn): Don't make SET_SRC equal SET_DEST if doing so will cause
+	two registers to be live containing the same value.
+	(cse_end_of_basic_block): Count SETs in CALL_INSNs and JUMP_INSNs.
+
+Wed Mar 20 15:40:48 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gcc.c (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): New macros.
+	(md_exec_prefix, md_startfile_prefix): New variables.
+	(process_command): Put those prefixes on the paths.
+
+	* toplev.c (main): Use abort, not fancy_abort.
+
+	* integrate.c (expand_inline_function): Use emit_block_move
+	to copy BLKmode parm value.  Save size and alignment for this.
+
+	* gnulib2.c (__builtin_saveregs)[MIPS]: Go to text section.
+
+	* final.c (final_scan_insn): Don't go to text after jump-tab label.
+
+Tue Mar 19 21:27:09 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* tm-a29k.h (SETUP_INCOMING_VARARGS): Always write registers to	
+	0(ap), no matter how many named args are present.
+
+	* combine.c (subst): In IF_THEN_ELSE, canonicalize to put the (pc)
+	in the second operand if we can reverse the comparison.
+	(significant_bits): Support TRUNCATE and SIGN_EXTEND.
+
+	* tm-romp.h (CC_UNSIGNED): New flag for cc_status.
+	* out-romp.c (update_cc, case CC_COMPARE): Record the operands of the
+	compare and mark whether the test will be signed or unsigned.
+	(restore_compare_p): New function.
+	* romp.md (conditional branch and return patterns): Use new
+	restore_compare_p to see if we need to tell final to reinclude
+	deleted compare insn.
+
+	* output.h (const_int_operand): Define.
+	* recog.c (const_int_operand): New function.
+	* out-a29k.c, out-romp.c, out-rs6000.c (const_int_operand): Remove from
+	these.
+
+	* tree.c (rtl_in_saveable_obstack): New function.
+	* varasm.c (immed_double_const, immed_real_const_1): Ensure that things
+	that get placed on the chain are always put into saveable_obstack.
+
+Tue Mar 19 17:21:30 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* stddef.h (wchar_t): New typedef.
+
+	* out-sparc.c (output_block_move): Handle NO_UNDERSCORES syntax.
+
+	* tm-pbd.h, xm-pbd.h: New files.
+
+	* toplev.c (report_error_function): Don't crash if between functions.
+
+Tue Mar 19 12:58:13 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* sched.c (memrefs_conflict_p): C was being used as offset for X,
+	not for Y.  Flipping + and - in offset uses cleared up this problem.
+	({true,anti,output}_dependence): Add declaration for INSN.
+	(order_calls): Interface changed; now returns void.  All callers
+	changed.
+	(sched_analyze_{1,2}): Make dependence between calls and
+	call-clobbered registers explicit.
+	(sched_analyze): Track last_function_call_not_const.
+	(sched_note_set): New parameter DEATH says whether X is marked for
+	death.  Also, look through SUBREGs and extractions.
+	(rank_for_schedule): Stabilize for qsort.
+	(attach_deaths): We should not end up with more REG_DEAD notes than
+	we started with, so abort if we run out early.
+	(attach_deaths_insn): Handle more complicated cases of registers
+	dying in insns.
+	(unlink_notes): Work from back-to-front instead of front-to-back.
+	(new_sometimes_live): Fix code that looks for an element already in
+	the table.
+	(schedule_block): New variable TAIL_PRIORITY  used to help determine
+	max IPC of scheduled code.  Also, for now we analyze (schedule) all
+	blocks, even ones which won't benfit from scheduling.  This is
+	necessary to keep register live info correct, but has the
+	disadvantage of screwing *all* debug info, not just for the blocks
+	that were scheduled.
+	(update_links): Fix complicated code that was to be a simple
+	head-cons to be a simple head-cons.
+	(schedule_insns): Update REG_LIVE_LENGTH and REG_N_CALLS_CROSSED
+	after scheduling.
+
+	* sparc.md (cmpdf): Define an expand pattern for this.	(Dropped by
+	mistake when converted from old-style to new-style condition codes).
+
+	* out-sparc.c (singlemove_string): Catch case where `sethi' can be
+	used instead of `mov'.
+
+	* gcc.texinfo (Optimize Options): Add documentation about the
+	`-finline' option (actually, the `-fno-inline' option).
+
+	* out-sparc.c (output_block_move): Use `rtx_alloc' instead of
+	`gen_rtx' to cons a CONST_INT whose INTVAL we can change.
+
+	* toplev.c (main): Recognize all -O strings (i.e. -O3, -O69), not
+	just -O and -O2.
+
+Mon Mar 18 22:30:21 1991  Richard Stallman  (rms@mole.ai.mit.edu)
+
+	* expr.c (expand_expr): For TRUTH_ANDIF_EXPR, don't use hard target
+	if not optimizing.
+
+	* combine.c: Fix some comments; reorder the variable declarations.
+
+Mon Mar 18 12:07:03 1991  Matthew Self	(mself@next.com)
+
+	* tm-next.h (WORD_SWITCH_TAKES_ARG):  Return number of args taken.
+
+	* tm-next.h (CPLUSPLUS):  Deleted (obsolete).
+
+	* out-next.c (flag_no_mach_text_sections, handle_pragma):
+	Handle #pragma CC_NO_MACH_TEXT_SECTIONS.
+
+Mon Mar 18 12:12:13 1991  Richard Stallman  (rms at goldman)
+
+	* cplus-pt.c: Renamed from cplus-template.c.
+	* Makefile.in (cplus-pt.o): New target.
+
+	* c-typeck.c (initializer_constant_valid_p):
+	Allow casts that change width only for explicit values.
+	* tree.c (really_constant_p): New function.
+	* expr.c (expand_expr): Handle MINUS_EXPR with EXPAND_SUM.
+
+	* tm-m68k.h (FUNCTION_EXTRA_EPILOGUE): Don't normally define this.
+	* out-m68k.c (use_return_insn): Don't look at FUNCTION_EXTRA_EPILOGUE.
+
+	* out-sparc.c (normal_comp_operator): Replace comparison_code_p.
+
+Sun Mar 17 22:53:25 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* m68k.md: Delete patterns now converted by combine to simpler
+	patterns or otherwise obsolete.	 Specifically:	ZERO_EXTRACT from
+	an HImode object, setting cc0 to SUBREG or AND, umulhi3, umulsi3,
+	AND of a ZERO_EXTRACT, shifts of 24 and 16 from MEM, and patterns with
+	constants as first operand of comparison operator.
+	Remove COMPARE except as a SET_SRC.
+
+	* alliant.md, tahoe.md, rs6000.md: Remove COMPARE except as a SET_SRC.
+
+	* flags.h (flag_combine_regs): Deleted.
+	* toplev.c: Likewise.
+	* tm-a29k.h, tm-romp.h, tm-rs6000.h (OVERRIDE_OPTIONS): No longer
+	turn on flag_combine_regs.
+
+	* tm-romp.h, tm-rs6000.h (SLOW_BYTE_ACCESS): Set to 1.
+
+	* Makefile.in (combine.o): Include insn-codes.h and insn-attr.h.
+
+	* combine.c: Major rework to support many more simplifications in
+	a more regular manner and support combining three insns into two.
+	The most significant changes are the following:
+	(subst): Remove simplifications involving ZERO_EXTRACT, SIGN_EXTRACT,
+	ZERO_EXTEND, SIGN_EXTEND, AND, and shifts.
+	Call new routines below; in the case of comparisons, handle call
+	find_next_use if we need to change the comparison code or the
+	particular MODE_CC mode required.
+	No need to ever change ASHIFT to MULT here.
+	(expand_compound_operation): New function to convert
+	{ZERO,SIGN}_{EXTRACT,EXTEND} into the appropriate pair of shifts.
+	(make_compound_operation): New function to make
+	{ZERO,SIGN}_{EXTRACT,EXTEND} operations from shifts and ANDs.
+	If we are on a machine (like a Vax) that has only arithmetic shifts,
+	convert logical to arithmetic shifts when it doesn't matter 
+	which shift is used (simplify_shift_const canonicalizes to
+	logical shifts).
+	If inside an address, convert ASHIFT to MULT.
+	(significant_bits): New function to determine which bits of
+	a value are known to be zero.
+	(simplify_and_const_int): Use significant_bits.
+	Call expand_compound_operation when required.
+	Handle AND of an ASHIFTRT with a constant.
+	Don't make ZERO_{EXTEND,EXTRACT} here.
+	(simplify_shift_const): New function to simplify a shift of an
+	an object by a constant integer.
+	(gen_lowpart_for_combine): When applied to a comparison operator,
+	return comparison operator in requested mode.
+	(simplify_set_cc0_and): Deleted.
+	(try_combine): No longer call simplify_set_cc0_and.
+	(reversible_comparison_p): New function.
+	(simplify_comparison): New function.
+
+	(combine_instructions): Allocate and initialize new vars
+	reg_last_set_{table_tick,label,invalid}.
+	(update_table_tick, record_value_for_reg): New functions.
+	(get_last_value_validate, get_last_value): New functions.
+	(record_dead_and_set_regs): Call record_value_for_reg.
+
+	(find_split_point): New function to locate a place where a complex
+	pattern can be split into two insns.
+	(try_combine): If we are combining three insns and can't recognize the
+	new pattern, try to split it.
+	Call new functions below to update insn status.
+	Return insn at which to continue scan.
+	(adjacent_insns_p, add_links, remove_links): Deleted.
+	(add_incs, add_no_conflicts, remove_death, move_deaths_2): Deleted.
+	(move_deaths): Generalize to include movements in both directions.
+	Update reg_first_use when we make an earlier use.
+	(distribute_notes, distribute_links): New functions.
+	(combine_instructions): No longer need check for LOG_LINKS
+	pointing at a NOTE.
+	Rescan from location indicated by try_combine, if any, when
+	combining three insns.
+	Update reg_first_use if we moved a use to a later insn.
+
+	(try_distrib): Deleted.
+	(apply_distributive_law): New function, contains code from old
+	try_distrib.
+	(subst): Call apply_distributive_law for applicable operations.
+	Try to apply associative law.
+	(combine_instructions): No longer call try_distrib.
+	(dump_combine_stats, dump_combine_total_stats, combine_instructions):
+	No longer count distributer statistics.
+
+	(can_combine_p): New function to see if I2 or I1 is combinable.
+	Be more precise about when we can combine insns involving cc0.
+	Eliminate -fcombine-regs; always do it.
+	(try_combine): 
+	Call can_combine_p to validate I2 and I1.
+	If -fexpensive-optimizations, try to simplify I1 or I2.
+	Handle (set (foo) (const_int 0)) followed by a STRICT_LOW_PART
+	assignment to FOO as a ZERO_EXTEND.
+	(subst): Quit very early if X is a root node (like PC0).
+	Remove most canonicalizations done in first switch statement; now
+	done elsewhere.
+	Call simplify_{unary,binary,ternary}_operation.
+	Add cases involving logical and arithmetic operations applied
+	to comparison operators or values with only one significant bit.
+	Add more cases involving ABS since comparisons returning values
+	can be done with ABS.
+	Avoid generating (const (const ...) ...).
+	Convert (xmult (x_extend ...) ...) to a widening multiply.
+
+	(gen_rtx_combine): New function to search for an operation in
+	undobuf.  Many callers to gen_rtx changed to call this function.
+	(copy_substitutions): Only copy a substitution if it was placed into
+	more than one location.
+
+Sun Mar 17 17:26:09 1991  Richard Stallman  (rms@mole.ai.mit.edu)
+
+	* c-common.c (shorten_compare): Warn for (unsigned char) == -1.
+
+	* final.c (final_scan_insn): Set debug_insn before first output.
+	(output_asm_insn): Clear it here.
+
+	* expr.c (do_jump): Don't try to split non-integers.
+
+	* fixincludes (dnetdb.h): Fix missing semi in nodeent.
+	(rusers.h): Code to fix this file was duplicated.
+
+	* toplev.c (decl_printable_name): Now given an extra arg.
+	(decl_name): Accept that arg.
+	(announce_function, report_error_function): Pass that arg.
+	(error_with_decl, warning_with_decl): Likewise.
+
+	* dbxout.c (getwd) [USG]: Define as macro.
+
+	* c-decl.c (init_decl_processing): Indicate byte alignment for void.
+
+	* expr.c (do_jump_by_parts_*): Compute nwords from compare arg.
+	Pass 0 as size and alignment to compare_from_rtx.
+	(do_jump_by_parts_greater): Compare high word first.
+	Handle unsigned compares properly.
+	Fix logic for dropping through versus failing.
+
+	* expr.c (expand_builtin): Change cmpstrsi4 to cmpstrsi as in optabs.c.
+
+	* c-common.c (truthvalue_conversion): Handle ptr vs int in MINUS_EXPR.
+
+Sun Mar 17 15:43:48 1991  Matthew Self	(mself@next.com)
+
+	Allow multiple return points in some framless functions (2/2/91):
+
+	* m68k.md (return):  New insn pattern for rts (and rtd).
+
+	* tm-m68k.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE,
+	USE_RETURN_INSN):	Call new functions to avoid giant macros
+	which are hard to edit.
+
+	* out-m68k.c (output_function_prologue,
+	output_function_epilogue):  New functions.
+
+	* out-m68k.c (use_return_insn):	 New function.	Determines
+	whether the epilogue will consist of a single insn.  Some
+	code was duplicated from output_function_epilogue.  There
+	should be probably a new layout routine to do this common
+	work.  Also #include "flags.h".
+
+	*out-m68k.c (output_function_epilogue):	 Don't output
+	anything if the epilogue was output as RTL.  We detect this
+	by the barrier insn which is always placed after a return
+	insn.  This machine-independent test should probably be moved
+	back into final.c and removed from out-sparc.c and out-m88k.c.
+
+	* out-next.c:  Don't #include "flags.h".
+
+Sun Mar 17 00:07:20 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genemit.c (gen_exp): Support constm1_rtx.
+	* genrecog.c (add_to_sequence): Likewise.
+
+Sat Mar 16 17:26:58 1991  Richard Stallman  (rms@mole.ai.mit.edu)
+
+	* c-lang.c (maybe_building_objc_message_expr): New dummy function.
+	* c-typeck.c (warn_for_assignment): Use it.
+
+	* toplev.c (compile_file): Write out all static consts that are used.
+
+Sat Mar 16 14:08:12 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* integrate.c (subst_constants): Don't replace registers in USE or
+	CLOBBER expressions.
+
+	* genattrtab.c (main): Properly set up a default DEFINE_ASM_ATTRIBUTES.
+
+	* cse.c (cse_insn): Correctly check for a hash table element equal to
+	the destination of a SET.
+
+Fri Mar 15 16:55:32 1991  Ron Guilmette (rfg at pepper.ncd.com)
+
+	* Makefile.in (OBJS): Added dwarfout.o to list of things to be
+	built.
+
+	* Makefile.in (dwarfout.o): Added this rule.
+
+	* dwarfout.c (FT_*_long_long): Added default definitions for all of
+	these extended fundamental type codes to cater to plain vanilla
+	<dwarf.h> file which do not define codes for these fundamental types.
+
+	* dwarfout.c (TREE_UID): Added a local definition of this macro
+	because gcc v2 no longer provides a definition for it and because
+	dwarfout.c needs some way of getting a unique numeric code for each
+	type.
+
+	* dwarfout.c (CLASSTYPE_*): Added some local default definitions
+	for these macros in order to get around the fact that they are
+	currently defined only in cplus-tree.h (and rms wants dwarfout.c
+	to be language independent).
+
+	* dwarfout.c (BITFIELD_OFFSET_*): Added some local macros to help
+	compute various quantities relating to bitfield offsets.
+
+	* dwarfout.c (location_attribute): Changed code which outputs location
+	attributes for bitfield so that it uses gcc2 macros.
+
+	* dwarfout.c (byte_size_attribute): Changed code which outputs the
+	byte_size attribute so that it no longer uses the obsolete
+	DECL_SIZE_UNIT macro (from gcc1).
+
+	* dwarfout.c:  Replaced all uses of the obsolete macro TREE_PACKED
+	to uses of the new gcc2 macro DECL_BIT_FIELD.
+
+	* dwarfout.c (deriv_list_attribute): Fixed typo "decl" => "type".
+
+	* dwarfout.c (output_dies_for_type): Replaced bogus reference to the
+	non-existant routine "output_member_function_type_die" with a proper
+	reference to the routine "output_subroutine_type_die".
+
+	* dwarfout.c (output_symbols_for_block): Fixed calling error which
+	was introduced by rms.
+
+	* dwarfout.c: Replaced all uses of the obsolete macro STMT_SUBBLOCKS
+	with uses of the new gcc2 macro BLOCK_SUBBLOCKS.
+
+	* dwarfout.c (output_symbol): Removed reference to TAG_DECL.  The
+	use of TAG_DECLs was an early idea which didn't work out.
+
+	* dwarfout.c: (dwarfout_init): Changed name from dwarfout_initialize
+	because rms failed to do so when he changed the name in the call.
+
+Fri Mar 15 17:22:14 1991  Richard Stallman  (rms@mole.ai.mit.edu)
+
+	* c-decl.c (pushdecl): Add `%s' to some error messages.
+
+	* sparc.md: Add extra assembler alternative in last change.
+
+	* cse.c (simplify_unary_operation, simplify_binary_operation):
+	Remove error checks that rejected SFmode.
+
+	* expr.c (get_pointer_alignment): Don't lose on casts from integer
+	to pointer.
+
+Fri Mar 15 07:57:19 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* c-decl.c (pushdecl): Fix typo in previous change.
+
+	* cse.c (simplify_{unary,binary}_operation): Fix usage of
+	REAL_VALUE_FROM_CONST_DOUBLE in recent change.
+
+Thu Mar 14 18:56:53 1991  Richard Stallman  (rms@mole.ai.mit.edu)
+
+	* c-decl.c (pushdecl): Warn if mismatch with implicit decl.
+
+	* final.c (final_start_function): Handle NON_SAVING_SETJMP.
+	Include hard-reg-set.h.
+	* function.c (setjmp_protect, setjmp_protect_args): Likewise.
+	(expand_function_end): Call those if NON_SAVING_SETJMP.
+
+Thu Mar 14 14:40:45 1991  James Wilson	(wilson at cygnus.com)
+
+	* reload1.c (order_regs_for_reload): When REG_ALLOC_ORDER is defined,
+	use that definition only to order regs, do not try to put call
+	used regs first.  This eliminates the benefits of defining the macro
+	in the first place.
+
+	* real.h: New macros for real arithmetic, REAL_VALUE_FIX_TRUNCATE,
+	REAL_VALUE_UNSIGNED_FIX_TRUNCATE, REAL_VALUE_FIX,
+	REAL_VALUE_UNSIGNED_FIX.
+
+	* cse.c (simplify_unary_operation): Added code to simplify floating
+	point rtx.  Now simplifies UNSIGNED_FLOAT, ABS, FLOAT_TRUNCATE,
+	FLOAT_EXTEND, FIX, and UNSIGNED_FIX.  Add aborts to default case
+	of switches.
+	(simplify_binary_operation): Added code to simplify floating point
+	rtx.  Now simplifies PLUS, MINUS, MULT, and DIV.  Add aborts to
+	default case of switches.
+	(*): Always use REAL_VALUE_TYPE and REAL_VALUE_FROM_CONST_DOUBLE
+	when extracting a floating point number from a CONST_DOUBLE.
+
+Thu Mar 14 14:40:45 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* expr.c (get_pointer_alignment): Update ALIGN for NOP_EXPR.
+
+	* c-decl.c (builtin_function): New arg LIBRARY_NAME.
+	(initialize_decl_processing): Pass that argument.
+
+	* c-decl.c (grokdeclarator): Handle C_TYPE_FIELDS_VOLATILE.
+	(finish_struct): Likewise.
+	* c-tree.h (C_TYPE_FIELDS_VOLATILE): Define it.
+
+	* Makefile.in (gnulib1, gnulib2.portable): Test $$? after compilation.
+
+	* c-typeck.c (check_format): Discard multiple NOP_EXPR levels.
+
+	* objc-actions.c (build_message_expr, build_selector_expr,
+	build_encode_expr, get_class_ivars, start_class):  Finding
+	Objective-C code in c source files is now a fatal error.
+	(They should recompile with -lang-objc.)
+
+	* objc-actions.c (gen_method_decl):  Don't crash for syntax
+	error in method declaration: -bar: x, y
+	(encode_array):	 Treat an undimensioned array the same as a pointer.
+
+Thu Mar 14 07:39:30 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (try_merge_delay_insns): Previous fix had effect of 
+	disabling this function.  Rework to take into account things
+	needed, instead of set.	 This is still somewhat of a kludge.
+
+	* recog.c (apply_change_group): An insn consisting of just a USE
+	or CLOBBER is always valid, but recog_memoized returns a -1 for it.
+
+	* genattrtab.c: Count all definitions as well as counting insns; use
+	definition # in error message.
+	Most functions that accepted insn_code now accept insn_index as well
+	and similarly for structures containing insn_code.
+
+	* reorg.c (try_merge_delay_insns): If not an annulling branch, take 
+	into account things set in the delay slot.  This prevents merging
+	two increments into one.
+
+	* reorg.c (dbr_schedule): Fix typo in printing statistics.
+
+Thu Mar 14 02:11:56 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* genemit.c, genoutput.c, genrecog.c: Count all definitions
+	as well as counting insns; use # of definition in error messages.
+
+	* toplev.c (pipe_closed, float_signal): Give it an explicit arg.
+	* cplus-decl.c (sigsegv): Likewise.
+	* cccp.c (pipe_closed): Likewise.
+
+	* cccp.c: Delete trigraph from comment.
+
+	* Makefile.in (realclean): Delete objc parser files.
+
+	* assert.h (__assert for __GNUC__): Don't return value of abort.
+
+Wed Mar 13 16:12:54 1991  Richard Stallman  (rms at churchy.ai.mit.edu)
+
+	* expr.c (do_jump_by_parts_greater): Don't lose if labels are 0.
+
+	* cplus-edsel.c: New name for cplus-cadillac.c.
+	* Makefile.in (cplus-edsel.o): Fix the compilation rule.
+
+Wed Mar 13 06:47:53 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (mark_set_resources): Any registers mentioned in REG_INC
+	notes are set by an INSN.
+
+	* flags.h (flag_expensive_optimizations): Add new flag.
+	* toplev.c: Support -fexpensive-optimizations and turn on for -O2.
+	* stmt.c (preserve_subexpressions_p): Use flag_expensive_optimizations
+	instead of testing for -O2 explicitly.
+
+	* expr.h (operand_subword): Add missing declaration.
+
+	* reload1.c (eliminate_regs): Handle INSN_LIST (found in REG_NOTES).
+
+	* tm-i386.h (RETURN_POPS_ARGS): Don't call aggregate_type_p with 
+	IDENTIFIER_NODE.
+
+Wed Mar 13 00:00:29 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* optabs.c (expand_binop, expand_unop): If wordwise, make target non0.
+
+Tue Mar 12 15:24:09 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* fixincludes: Quote the # in an echo.
+	* fixincludes: Fix typos handling size_t and ptrdiff_t.
+	* fixincludes (sys/file.h): Fix incorrect conditional in Ultrix.
+
+	* c-typeck.c (initializer_constant_valid_p): Allow NON_LVALUE_EXPR.
+	Return a tree that indicates the relocation.
+	All callers changed.
+
+	* jump.c (jump_optimize): Rerecognize jump insn after inverting it.
+
+	* expr.c (do_jump):
+	Use can_compare_p on the operand mode, not the comparison's mode.
+
+	* reload.c (subst_reloads): Fix dumb error in last change.
+
+	* expr.c (do_jump_by_parts_equality*): Fix logic errors.
+
+Mon Mar 11 14:27:40 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* reload.c (subst_reloads): Don't make subregs, just new regs.
+
+	* expr.c (do_jump_by_parts_equality, do_jump_by_parts_greater):
+	(do_jump_for_compare, do_jump_by_parts_equality_rtx): New functions.
+	(do_jump): Use them to handle wide values.
+	* optabs.c (can_compare_p): New function.
+
+	* reload1.c (emit_reload_insns): Don't make subreg around RELOADREG;
+	just make a new REG.
+
+	* cse.c, varasm.c: Fix typos.
+
+	* sparc.md (move SI to reg_or_nonsymb_mem_operand):
+	Separate third alternative into two alternatives.
+	* tm-sparc.h (PREFERRED_RELOAD_CLASS): Return CLASS as given.
+
+	* optabs.c (operand_subword): Fix typo.
+
+	* longlong.h (__umulsidi3): Return .ll field.
+
+Mon Mar 11 11:43:21 1991  Jeffrey A. Law  (law at mole.ai.mit.edu)
+
+	* make-hp9k2bsd: New file.
+	* configure (hp9k200-bsd): Use it.
+
+Mon Mar 11 07:08:12 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-lex.c (check_newline): Clear TREE_INT_CST_HIGH once instead
+	of clearing TREE_INT_CST_LOW twice.
+
+Mon Mar 11 06:51:52 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* flow.c (mark_used_regs): If we are going to use a later
+	register to auto-increment, make sure it really is a REG.
+	In the case above, count any calls crossed by the new register.
+
+	* global-alloc.c (global_conflicts): Mark registers modified by
+	virtue of a REG_INC note as modified in the insn to make conflicts.
+	(mark_reg_store): Accept SETTER value of 0.
+
+Sun Mar 10 16:56:25 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* optabs.c (operand_subword): New function to get one word of operand.
+	(expand_binop, expand_unop): Use it for word at a time case.
+
+	* configure (a29-bsd*): Renamed from a29-sysv*.
+
+	* expr.c (emit_library_call): Handle GNULIB_NEEDS_DOUBLE.
+	* tm-i860.h (GNULIB_NEEDS_DOUBLE): Define it.
+
+	* tm-harris.h (ASM_FILE_START): Output a .file.
+
+	* reload1.c (constraint_accepts_reg_p): Understand reg classes.
+
+Sun Mar 10 06:58:20 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (move_by_pieces, move_by_pieces_ninsns, emit_push_insn):
+	If SLOW_UNALIGNED_ACCESS is defined, respect alignment even if
+	STRICT_ALIGNMENT is not defined.
+	* tm-a29k.h (SLOW_UNALIGNED_ACCESS): Define this.
+
+Sun Mar 10 02:57:40 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cccp.c (handle_directive): If pass_thru and -C, print the
+	input before removing comments from it.
+
+Sat Mar	 9 21:18:48 1991  Torbjorn Granlund  (tege at musta.nada.kth.se)
+
+	* gnulib2.c (div_qrnnd, __umulsidi3, lowpart, highpart, B): Move
+	to longlong.h.
+	(udiv_qrnnd): New name of div_qrnnd.  Rewrite to work correctly.
+	(file header): Remove obsolete comment about internal format.
+	(bits): Remove this function.  count_leading_zeros in longlong.h
+	is similar.
+	(__udivdi3): Use count_leading_zeros instead of bits.
+	(__udivdi3): Use umul_ppmm instead of __umulsidi3, as this makes
+	better code.
+
+Sat Mar	 9 18:02:47 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): Avoid looking at PATTERN of NOTE
+	or CODE_LABEL.
+
+	* reload1.c (reg_is_output_reload, count_for_*groups): Use
+	HARD_REG_SET instead of array to avoid bzero calls.
+	(reload_reg_used*): Likewise.
+
+	* emit-rtl.c (gen_rtx, init_emit_once): Pre-compute CONST_INTs
+	from -64 to 64 to save space.
+
+Sat Mar	 9 14:28:37 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* reload1.c (choose_reload_regs): Fix typo in last change.
+
+Sat Mar	 9 01:03:01 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl.c (pushtag): Don't call `pushdecl' for nested type if
+	the type is already defined.
+
+Fri Mar	 8 17:24:20 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* ns32k.md, vax.md (right shift patterns): When generating a right
+	shift, use xSHIFTRT but use (neg x) as the shift count to
+	more accurately represent what is supported by the machine.
+
+	* expmed.c (emit_store_flag): Can't narrow result of scc insn before
+	normalizing.
+
+Fri Mar	 8 12:56:41 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-class.c (pushclass): Set CURRENT_FUNCTION_DECL to
+	appropriate value so that pushtag does the right thing for tags
+	pushed into scope.
+
+Fri Mar	 8 02:47:53 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* gcc.c (delete_temp_files): Delete only ordinary files.
+
+	* tree.c, cplus-tree.c (TYPE_HASH): 777777 was supposed to be octal.
+
+	* reload1.c (choose_reload_regs): Properly ensure EQUIV
+	is free and of the desired class.
+	When a reload may be a group, mark all its regs in use.
+
+	* reload.c (push_reload): Don't call reg_overlap_mentioned_p
+	unless IN is a REG or MEM.
+
+	* c-common.c, cplus-search.c, cplus-class.c (NULL):
+	Undef before defining.
+
+	* sdbout.c (sdbout_one_type): Don't temporarily clear KNOWN_TYPE_TAG.
+
+Thu Mar	 7 10:53:32 1991  Tom Wood  (wood at dg-rtp.dg.com
+
+	* toplev.c (main): Add -dp: annotate the assembly with a comment
+	describing the pattern and alternative used.  Also, make -dm work
+	for USG systems.
+	* genoutput.c (output_epilogue): Output the array `insn_name'.
+	* final.c (debug_insn, final_scan_insn): Record the value of the
+	last insn processed by final_scan_insn.
+	(output_asm_insn): Annotate the assembly output.
+	(ASM_COMMENT_START): Provide a default value.
+	* tm-att386.h, tm-bsd386.h, tm-sun386.h (ASM_COMMENT_START):
+	Specify "/".
+
+Thu Mar	 7 06:15:04 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-class.c (propagate_basetype_offsets): Check ASSOC_TYPE in
+	addition to return value from assoc value before aborting.   ???
+	should figure out why assocs are not shared.
+
+Wed Mar	 6 16:29:37 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-decl.c (NULL): Undef before defining.
+
+	* cccp.c (do_include): Allocate file name permanently.
+
+Wed Mar	 6 09:06:39 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (and/ashift): Added for the new combine.c (ashift/and
+	works with the previous version).
+	(bcnd insns): Use bcnd to test for sign and zero.
+	(muldf3, divdf3): Use new method to deal with a power of two.
+	(andsi3, iorsi3, xorsi3): Split into two insns for some constants.
+	(call, call_value): Deal properly with a CONST_INT address.
+	* out-m88k.c (call_address_operand): Don't allow CONST_INT.
+	(uses_arg_area_p): New function for -moptimize-arg-area.
+	* tm-m88k.h (TARGET_SWITCHES): Delete -mpic in favor of -fpic.
+	Add -moptimize-arg-area and -mno-optimize-arg-area.
+
+Wed Mar	 6 00:07:09 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* real.h (REAL_VALUE_FROM_CONST_DOUBLE): Takes input and output args.
+	* integrate.c (copy_for_inline, copy_rtx_and_substitute):
+	(restore_constants): Calls changed.
+
+Tue Mar	 5 23:06:36 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* stmt.c (fixup_gotos): Handle jumping to end of rtl.
+
+	* c-decl.c (store_parm_decls): If -traditional,
+	allow unsigned int in prototype in place of int.
+
+	* cplus-cadillac.c: Delete all but the stubs.
+
+Tue Mar	 5 16:59:18 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): Handle case of only NOTE insns after
+	NOTE_INSN_LOOP_BEG.
+	(duplicate_loop_exit_test): Return 0 when we hit a block
+	start or end, rather than quitting loop and getting confused.
+
+	* integrate.c (subst_constants): Correctly move constants to
+	second operand of commutative operations.
+
+	* jump.c (comparison_code_p): Deleted.
+	* combine.c (subst): Use GET_RTX_CLASS instead of comparison_code_p.
+	* cse.c (find_comparison_args): Likewise.
+	* recog.c (comparison_operator): Likewise.
+	* loop.c (get_condition): Likewise.
+
+Tue Mar	 5 14:21:57 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cse.c (fold_rtx): When checking for constant pool addresses,
+	handle addresses constructed from LO_SUM.
+
+	* recog.c (constrain_operands): If before reload, `m' and `o'
+	accept all that could be reloaded to fit those constraints.
+
+	* reload1.c (gen_input_reload): Return the first insn emitted by
+	this function, instead of the last insn emitted.
+
+	* stmt.c (expand_end_loop): When move exit test to loop bottom,
+	also move a preceeding NOTE_INSN_LOOP_CONT note if it exists.
+
+	* gcc.c (process_command): Check for running out of args after option.
+
+	* out-mips.c, out-romp.c: Test BYTES_BIG_ENDIAN with #if.
+	* tm-i860.h (*_BIG_ENDIAN): Define as 0.
+	* tm-mips-news.h (BYTES_BIG_ENDIAN, WORDS_BIG_ENDIAN): Deleted.
+	(DECSTATION): Deleted.
+
+	* tm-mips.h: Test WORDS_BIG_ENDIAN with #if.
+
+	* tm-mips.h, tm-sparc.h, tm-spur.h (CONST_DOUBLE_OK_FOR_LETTER_P):
+	Use CONST_DOUBLE_LOW and CONST_DOUBLE_HIGH.
+
+	* real.h: dconst0, dconst1, dconstm1 are declared twice.
+	Eliminate the second redundant declaration.
+
+	* cse.c (FIXED_REGNO_P): Exclude OVERLAPPING_REGNO_P registers.
+
+	* cccp.c (path_include): Handle empty names in path.
+
+	* final.c: Use gvarargs.h, not varargs.h
+
+	* configure (i860, i860-bsd): Handle +gas.
+	* tm-i860g.h, tm-i860bsdg.h: New files.
+
+Mon Mar	 4 22:41:36 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cse.c (simplify_unary_operation): When making a real const, use MODE.
+
+Mon Mar	 4 21:35:47 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_end_of_basic_block): Correctly handle case where
+	we find a "new" branch to follow.
+	(cse_end_of_basic_block, cse_main, cse_basic_block): PATH_SIZE
+	is now actual size, not size - 1.
+
+Mon Mar	 4 06:44:27 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl.c (poplevel): Change test for whether to clobber the
+	DECL_CONTEXT of local variables.  Now we won't clobber context for
+	any nested types.
+
+Mon Mar	 4 00:39:11 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* jump.c (jump_optimize): When deleting x=y after y=x,
+	don't delete more than one death note, and don't delete any
+	unless we really do delete x=y.
+
+	* cccp.c (main): Support -lang-objc++.
+	Eliminate compilation parameter CPLUSPLUS.
+
+	* cccp.c (main): Handle leading or trailing space in `predefs'.
+
+	* fixincludes: Fix typos handling size_t and ptrdiff_t.
+
+Sun Mar	 3 16:41:24 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cccp.c (main): Handle multiple spaces, and tabs, in `predefs'.
+	* gcc.c (do_spec_1):  Allow extra whitespace in CPP_PREDEFINES.
+	Also transform -Dfoo=bar into -D__foo__=bar correctly.
+
+	* varasm.c (assemble_zeros): Use ASM_BYTE if defined.
+
+	* reload1.c (reload): Only special-case a spill reg alone in a class
+	if there is non-group need for that class.  Be careful not to count
+	a reg in the usual place if it was counted in the special case.
+
+	* reload1.c (order_regs_for_reload): Make fixed regs and
+	eliminable regs twice as bad as explicitly mentioned regs.
+
+	* reload1.c (choose_reload_regs): Fix typos in last change.
+
+	* c-decl.c (init_decl_processing):
+	Return type of memcpy varies if -traditional.
+	(ptr_ftype_ptr_cptr_sizet): Global var deleted.
+
+	* reload1.c (emit_reload_insns): When updating reg_reloaded_contents,
+	first always clear, then maybe store nonzero value.
+
+Sun Mar	 3 16:12:17 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* cplus-template.c (mangle_class_name_for_template): Add two
+	leading underscores, to avoid conflicts with programmer's names.
+
+	* cplus-tree.h (struct lang_identifier): New field `template'
+	points to template info from which this identifier was
+	constructed.
+
+	* cplus-template.c (current_template_expansion,
+	current_template_name): Variables deleted.
+
+	* cplus-template.c (lookup_template_class): Top half of old
+	instantiate_template; returns the id_node.
+	(instantiate_template): Takes the id_node as argument now.
+	* cplus-parse.y (template rules): Use separate rule for checking
+	whether expansion is required.	For base classes, always try it;
+	else do it only if `{' is not next token.
+	(template_type_name): New nonterminal for template class name
+	without expansion.
+	(template_type): Includes expansion, if needed.
+
+	* cplus-input.c (input_from_saved_text): Deleted.
+	* cplus-template.c (instantiate_template): Call feed_input directly.
+
+	* cplus-parse.y (base_class_visibility_list): Now type <itype>,
+	cast to tree in base_class action.
+
+Sun Mar	 3 07:46:55 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (do_store_flag): Consider A & single-bit as cheap.
+
+	* fold-const.c (operand_equal_p): If ARG0 and ARG1 are the same
+	SAVE_EXPR, they are equal.
+
+	* function.c (fixup_var_refs_1): Move mispositioned code in
+	(set (zero_extract ...) ...) case; fix incorrect indentation.
+
+Sun Mar	 3 01:11:46 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cccp.c (include_defaults, cplusplus_include_defaults):
+	Use STANDARD_INCLUDE_DIR.
+	(STANDARD_INCLUDE_DIR): Define by default as /use/include.
+	* tm-mips.h (STANDARD_INCLUDE_DIR): Define, if MIPS_BSD43.
+	(CPP_SPEC): Don't do -I to handle -ZSYSV, -ZBSD43.
+
+Sat Mar	 2 17:20:57 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case COND_EXPR): Remove unneeded calls to
+	safe_from_p in A ? A : FOO cases.
+
+Sat Mar	 2 16:14:24 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* reload1.c (choose_reload_regs): Support subreg as reload_override_in.
+	Likewise reload_reg_rtx.  Just don't use REGNO on them.
+	(emit_reload_insns): Handle subreg as OLDEQUIV.
+
+	* reload1.c (delete_output_reload): Pass the output reload insn,
+	not a spill reg index.	Call in emit_reload_insns changed.
+	(emit_reload_insns): Don't actually update spill_reg_store
+	till after all reload insns have been made.
+
+	* reload.c (push_reload): If existing reload has a reload reg,
+	make sure it fits the class of this reload.
+
+	* stmt.c (fixup_gotos): Fix typo in last change.
+
+	* reload1.c (choose_reload_regs): Don't use equiv reg
+	that is clobbered in this insn.
+
+Sat Mar	 2 12:19:19 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-dem.c (optable): Add op for `operator,'.
+
+	* toplev.c (main): Clear WARN_INLINE if FLAG_NO_INLINE is nonzero.
+
+	* cplus-typeck.c (c_expand_return): Perform conversion to reference
+	in time that we can warn about the return of more non-lvalues.
+	Also, fix what appeared to be bugs in the code dealing with
+	WHATS_RETURNED.
+
+Sat Mar	 2 00:11:18 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* cplus-parse.y (base_class): Base class may be a template class.
+	Split off non-visibility portion into base_class.1.
+
+	* cplus-parse.y: Replaced PUBLIC, PRIVATE, PROTECTED with a single
+	terminal VISSPEC, with <itype> value, to simplify parser slightly.
+	* cplus-parse.h (enum rid): Added values for VISSPEC terminal.
+	* cplus-lex.c (is_reserved_word): Changed token types to VISSPEC,
+	rid values as appropriate.
+	(yylex): For VISSPEC, set itype value rather than ttype.
+
+Fri Mar	 1 21:50:23 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* cplus-parse.y (.set_base_init): Discarded `preserve' code, which
+	was doing nothing.
+
+Fri Mar	 1 19:01:25 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (redundant_insn_p): Rename second arg to TARGET.
+	Handle the case where TARGET is a SEQUENCE.
+	(mark_target_live_regs): Don't get confused by registers conditionally
+	set in a JUMP_INSN when looking for regs set before used.
+
+Thu Feb 28 17:25:59 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (check_dbra_loop): Replace code that thinks it knows
+	exactly what the RTL looks like (and gets it wrong) with call
+	to get_condition_for_loop.
+
+Thu Feb 28 16:35:21 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-typeck.c (build_compound_expr): Convert array to pointer.
+
+Wed Feb 27 15:46:54 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* gnulib1.c (FLOAT_ARG_TYPE, FLOATIFY): New macros.
+	(__*sf*): Use them for `float' args.
+
+	* stmt.c (expand_end_case):
+	Test value of HAVE_casesi and HAVE_tablejump at runtime.
+
+	* stmt.c (fixup_gotos): Check that jump into bindings
+	really comes from before the start of the bindings.
+	Use TREE_REGDECL to indicate error message printed.
+
+Wed Feb 27 15:01:51 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* cplus-template.c (end_template_decl): Store correct name in new
+	decl.  Use pushdecl, not pushtag.
+	(instantiate_template): Use identifier's global value, not its
+	type.  Pass back both template and new class in token value.
+	* cplus-lex.c (identifier_type): Templates now have type
+	TEMPLATE_DECL, not TYPE_DECL wrapped around a TEMPLATE_DECL.
+
+Wed Feb 27 06:27:45 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (replace_regs): Don't make nested SUBREGs.
+
+	* reload.c (push_reload): SUBREG_LOC applies only to INLOC, not OUTLOC.
+
+	* cse.c (simplify_binary_operation): Simplify A&A, A|A, and A^A.
+
+	* reload.c (find_reloads_address_1): Correctly handle (post_inc (mem)).
+
+Tue Feb 26 21:49:15 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* expmed.c (store_bit_field, extract_bit_field):  Calls to
+	get_best_mode were passing alignment in bytes rather than
+	alignment in bits.
+
+	* flags.h (flag_pedantic_errors): Declare it.
+
+	* c-tree.h (C_TYPEDEF_EXPLICITLY_SIGNED): New flag.
+	* c-decl.c (grokdeclarator): Record that flag in new typedefs.
+	Check it when determining signedness of bitfields.
+
+	* expr.c (expand_expr): In A ? A : B, make output safe from A and B.
+
+	* reload.c (find_reloads_address, find_reloads_address_1):
+	Reload any reg that appears in a clobber in the same insn.
+	(regno_clobbered_p): New function.
+
+Tue Feb 26 21:41:43 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* expr.c (expand_expr): Add missing arg to exapnd_exit_loop in
+	EXIT_EXPR case.
+
+Tue Feb 26 14:35:47 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-decl.c (grokdeclarator): Check pedantic error last.
+
+	* tm-i386.h (STRUCT_VALUE, STRUCT_VALUE_INCOMING): Value is 0.
+	(RETURN_POPS_ARGS): Pop the structure return pointer here.
+	* out-i386.c (function_epilogue):
+	current_function_pops_args says how many args to pop.
+
+	* tm-i386.h (CC_Z_IN_NOT_C): New cc flag.
+	* i386.md (je and jne patterns): Handle this flag.
+	(pattern using bt insns): Set the flag.
+	Output test insn instead if bit number is constant.
+	(insv): Changed constraint.
+
+	* tm-i386.h (enum reg_class): Define ABCI_REGS.
+	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Support ABCI_REGS.
+	Fix the contents for ABC_REGS.
+	(REG_CLASS_FROM_LETTER): Define `x' for ABCI_REGS.
+	* i386.md (divsi3, udivsi3): Use `xm' for operand 2 constraint.
+	(divhi3, udivhi3, divmod*, udivmod*): Likewise.
+
+	* cccp.c (pedwarn): Declare as void.
+
+Tue Feb 26 06:41:34 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* tree.h (IDENTIFIER_VIRTUAL_P): New macro for IDENTIFIER_NODE.
+	Nonzero means that this identifier is used by a function declared
+	virtual.
+	* cplus-decl.c (grokfndecl): Set IDENTIFIER_VIRTUAL_P instead of
+	DECL_VIRTUAL_P.
+	* cplus-search.c (get_first_matching_virtual): Test
+	IDENTIFIER_VIRTUAL_P instead of DECL_VIRTUAL_P.
+
+	* cplus-decl.c (pushtag): Handle classes which are nested in
+	function scope (as opposed to class scope).
+	(lookup_nested_type): Ditto.
+	* cplus-method.c (build_overload_nested_name): Ditto.
+
+	* cplus-decl.c (grokdeclarator): Only globalize non-nested classes
+	declared in class scope (i.e., don't globalize in function scope).
+
+Tue Feb 26 06:11:37 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* a29k.md (storem): Fix typo in operand number.
+
+	* expr.c (do_store_flag): Add missing cast required for some compilers.
+
+	* tm-a29k.h (REG_CLASS_*, REGNO_REG_CLASS): Add new class Q_REGS
+	and constraint letter `q' for the Q register.  Requested by tege.
+
+	* tm-a29k.h (PRINT_OPERAND_ADDRESS): Allow short constant as address.
+
+Mon Feb 25 20:46:43 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* expr.c (expand_expr): In handling A : A ? FOO, use safe_from_p
+	against FOO.  Fix many incorrect operand refs in A : FOO ? A.
+
+	* sdbout.c (plain_type_1): Record type name only if using forward refs.
+
+	* reload.c (find_reloads): Mark those RELOAD_OTHER reloads
+	that are used for output addresses, for choose_reload_regs.
+
+	* integrate.c (copy_rtx_and_substitute):
+	Copy REG_USERVAR_P from original regs to new regs.
+
+	* c-typeck.c (digest_init): Handle STRING_CST before same-type case.
+
+Mon Feb 25 13:31:51 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl.c (grokdeclarator): Handle the identification of
+	constructors declared in nested scope.
+
+Mon Feb 25 06:27:28 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (next_insn_no_annul): New function.
+	(mark_set_resources, mark_target_live_regs): Don't count insns from
+	the target of a branch if the branch is annulling.
+
+	* expmed.c (emit_store_flag): Get new register for target if
+	preserve_subexpressions_p returns nonzero.
+	Convert to desired mode, then normalize, instead of doing it
+	the other way around; this allows better combining.
+
+Sun Feb 24 20:07:02 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (find_comparison_args): Fix indentation and misplaced paren.
+
+	* Makefile.in (install-headers): Remove extraneous parens from
+	uses of shelllibsubdir.
+
+Sun Feb 24 15:49:42 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* loop.c (check_dbra_loop): Win if loop biv is used only for counting.
+
+	* cccp.c (struct definition): Record file and line.
+	(create_definition): Store that information.
+	(do_define): Identify location of previous definition.
+	(pedwarn_with_file_and_line): New function.
+
+Sat Feb 23 13:36:13 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-decl.c (grokdeclarator): Error for `signed void', etc.
+	Warning for `signed my_int', and only if pedantic.
+
+	* toplev.c (warn_cast_align): New flag, with -W option.
+	* c-typeck.c (build_c_cast): Warn if target alignment increases.
+
+Sat Feb 23 10:22:03 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-type2.c (store_init_value): Global variables must be
+	specially initialized in PIC under SunOS.
+
+	* cplus-dbxout.c (dbxout_tags): Test that the tag's value has not
+	been cleared before trying to use it as a type.	 This happens when a
+	class starts out looking like a nested class, but turns out to be a
+	reference to an implicitly defined global class.
+
+Sat Feb 23 06:16:44 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (true_regnum): If given a pseudo not assigned a hard reg,
+	return the pseudo register number.
+
+	* out-rs6000.c (update_cc): Remove CC_REVERSE and CC_NONNEG.
+	* rs6000.md (define_attr "cc"): Remove reverse.
+	(cmpsi): Only allow second arg to be a constant.
+	Remove some unneeded comparison patterns.
+
+	* rs6000.md (misc logical patterns): Only add CLOBBER for MQ
+	when we really clobber it; we used to do so in more cases to
+	work around a since-fixed restriction in combine.c
+
+	* rs6000.md (extend*): Use DEFINE_EXPAND instead of a pattern
+	that generates two insns.  Remove (sign_extend (ashift ..) ...)
+	and similar patterns; no longer neeed.
+
+	* rs6000.md (fma instruction): Add missing single-precision case.
+
+	* out-rs6000.c (print_operand, case 's' and 'S'): Truncate to low-order
+	5 bits.
+
+	* out-rs6000.c (output_prolog, output_epilog): Correct code to handle
+	large stack frames; used 65535 instead of 32767 and had a typo.
+
+	* tm-romp.h (CC_IN_NOT_TB): Deleted.
+	* out-romp.c (update_cc): No longer need CC_REVERSE, CC_NONNEG, or
+	CC_NOTTBIT.
+	(print_operand): Remove use of CC_IN_NOT_TB.
+	* romp.md (define_attr "cc"): Remove reverse,nonneg, and nottbit.
+	(mttbi): Remove redundant pattern.
+	(cmpsi): First arg can only be register_operand.
+	Remove some unneeded COMPARE patterns.
+	
+	* romp.md (movhi): Use zero-extend, not sign-extend load.
+
+	* out-romp.c: (float_conversion): Allow CONST_INT as operand.
+
+	* out-romp.c (first_reg_to_save): Ensure we save r14 if we use it.
+
+	* a29k.md (divsf3): Fix typo in name; was divds3.
+
+	* tm-a29k.h: Add new -mno-storem-bug and TARGET_NO_STOREM_BUG.
+	(TARGET_SWITCHES): -m29050 turns on -mno-storem-bug.
+	* a29k.md: (store_multiple_bug): New pattern to work around chip bug.
+	(store_multiple_no_bug): New name for original pattern.
+	(store_multiple): Choose depending on TARGET_NO_STOREM_BUG.
+	(storem patterns): Two cases, with and without bug.
+
+	* a29k.md (extend*): Don't define single insn for sign_extend.
+	Instead, use DEFINE_EXPAND.  Delete DEFINE_SPLITs for the old patterns.
+
+	* a29k.md (jumpfdec pattern): Fix typo.
+
+	* tm-a29k.h, tm-romp.h, tm-rs6000.h (CC1_SPEC): Remove optimization
+	selections.
+	(OPTIMIZATION_OPTIONS): Turn off insn scheduling by default until
+	it is fixed.
+
+	* tm-a29k.h, tm-romp.h, tm-rs6000.h (SETUP_INCOMING_VARARGS):
+	Correctly handle the case of the special argument being other than
+	the first arg.
+
+	* tm-a29k.h (GO_IF_LEGITIMATE_ADDRESS): A tiny constant (< 255)
+	is also a valid address.
+
+	* tm-a29k.h, tm-romp.h, tm-rs6000.h (BYTE_LOADS_ZERO_EXTEND): Add to
+	support combine.c in development.
+
+	* jump.c (jump_optimize, can_reverse_comparison_p, delete_jump):
+	Consistently allow NOTEs between the set and use of CC0.
+	* reorg.c (delete_scheduled_jump): Likewise.
+
+	* expmed.c (emit_store_flag): Pass in UNSIGNEDP; can't derive it from
+	comparison code.
+	* expr.c (do_store_flag): Add UNSIGNEDP arg to emit_store_flag call.
+	* jump.c (jump_optimize): Likewise.
+	* optabs.c (expand_binop): Likewise.
+
+	* local-alloc.c (requires_inout_p): New function.
+	(block_alloc): Use high-priority preferences if we have a hard
+	register used in an insn that requires the same register for
+	input as for the output.
+	(combine_regs): Rename argument COPY to MAY_SAVE_COPY.
+
+	* cse.c (simplify_binary_operation, case MULT): Convert multiply
+	by power of two to shift.
+	(cse_insn): Don't share rtx obtained from the hash table; copy it.
+
+Sat Feb 23 00:27:26 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* rtlanal.c (dead_or_set_p): Don't check for REG_INC.
+
+	* reload.c (push_reload): (subreg:m1 (reg:m2 ...) ...) with M1 wider
+	than M2 is also a paradoxical SUBREG.
+
+Fri Feb 22 14:43:44 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* reload1.c (possible_group_p): Add missing forward declaration.
+
+	* reload1.c (eliminate_regs, case PLUS): Ensure we handle the
+	case of (plus reg1 reg2) where REG1 is eliminable and REG2 is
+	psuedo that didn't get a hard reg and has reg_equiv_constant nonzero.
+	(choose_reload_regs): If reload_needed_for_multiple,
+	the reload can't be input-only or output-only.
+	(emit_reload_regs): Avoid regno_dead_p.
+	* combine.c (regno_dead_p): Function deleted.
+
+	* Makefile.in (maketest): Finish renaming config to configure.
+
+	* gcc.c (lookup_compiler): Create a new entry to represent
+	the result of searching for an alias entry.
+
+	* reload.c (combine_reloads): Swap args to reg_overlap_mentioned_p.
+
+Fri Feb 22 09:40:50 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-parse.y (base_class_list): Re-fix precedence so we can use MI.
+
+	* cplus-except.c (init_exception_processing): Push exception ctors
+	and dtors into scope so they can be inlined.
+
+Fri Feb 22 08:03:47 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genemit.c (output_init_mov_optab): New function.
+	(main): Have insn-emit.c include insn-codes.h.
+	Call output_init_mov_optab.
+	* optabs.c (gen_move_insn): Handle moving MODE_CC modes; we may have
+	to find a different mode to do this in.
+	(init_optabs): Try to initialize CCmode in mov_optab; if we have
+	EXTRA_CC_MODES, call init_mov_optab.
+	* Makefile.in (insn-emit.o): Now depends on insn-codes.h.
+
+	* rtl.h (get_last_insn_anywhere): Add missing declaration.
+
+	* stmt.c: Now includes hard-reg-set.h (for n_non_fixed_regs).
+	(preserve_subexpressions_p): Renamed from inside_loop.
+	Always return true if optimize >= 2; always return false if
+	optimize == 0.	If optimize == 1, only return true if we aren't
+	very far into a loop instead of whenever we are in any loop.
+	* Makefile.in (stmt.o): Now includes hard-reg-set.h.
+	* expr.c (expand_expr): Use preserve_subexpressions_p instead of
+	inside_loop.
+	Only set TARGET to SUBTARGET if TARGET isn't a pseudo register.
+	(expand_expr, case REAL_CST): Don't call force_reg; now done in
+	expand_binop, if required.
+	* optabs.c (expand_binop, expand_twoval_binop, emit_cmp_insn):
+	If arg is expensive constant and preserve_subexpressions_p is true,
+	force it into a register.
+	* out-sparc.c (emit_move_sequence): Call preserve_subexpressions_p
+	instead of inside_loop.
+
+	* reload1.c (eliminate_regs, case SUBREG): Correct test for paradoxical
+	SUBREG.
+
+	* varasm.c (output_constant_pool): If entry refers to a deleted label,
+	write a zero instead of the undefined label.
+
+Fri Feb 22 02:49:24 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* Reversed all changes dated 20 February.
+	* cplus-template.c (pending_template_expansion): New function;
+	given template name, returns class name of expansion in progress.
+	* cplus-parse.y (PTYPENAME -> typespec): Call it.
+	('~' PTYPENAME -> notype_declarator): Ditto.
+
+Thu Feb 21 15:17:13 1991  Craig Burley	(burley at geech.ai.mit.edu)
+
+	* c-common.c (check_case_value): If value is NULL_TREE, return it
+	without any further checking.
+
+	* stmt.c (pushcase_range): If value1 is NULL_TREE, substitute
+	minimum value for the type, if value2 is NULL_TREE, substitute
+	maximum value for the type, from then on assume both are not NULL_TREE.
+	These changes appear to provide minimal support for case ranges.
+
+	* c-typeck.c (digest_init): For explicit array element initializer
+	case, change check against max value of domain so index may equal it.
+	For array element initialization, give next initializer a chance to
+	override the choice of next index before falling out of loop because
+	next index is out of range.  For structure initialization, give next
+	initializer a similar chance before falling out of loop because no
+	more fields exist.
+
+	* reload1.c (possible_group_p): Needed a forward decl (static).
+
+Thu Feb 21 14:37:01 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-decl.c (grokdeclarator):
+	Don't make bitfield type unsigned if comes from typedef.
+
+	* reload1.c (reload): Don't require INITIAL_FRAME_POINTER_OFFSET
+	if cannot eliminate the frame pointer.
+
+	* i860.md (cbranch, inverse_cbranch): Use eq to test cc0.
+	(negated branch patterns): New patterns.
+
+	* tm-i860.h (INITIALIZE_TRAMPOLINE): Use size_int, not build_int.
+
+	* reload1.c (reload): Save and restore notes around find_reloads.
+
+	* tm-sun2os4.h (LINK_SPEC): New macro.
+	* tm-sun386i.h (LINK_SPEC): Undef before redefining.
+
+	* cccp.c (do_include): Check for -2, not -1, as value of lookup_import.
+
+	* c-parse.y (initlist): Fix typo.
+
+Mon Feb 18 02:50:38 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl.c (grokdeclarator): Try to come up with better magic
+	for implicitly globalizing classes implicitly declared in class
+	scope.
+
+Sun Feb 17 09:27:38 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-tree.c (virtual_offset): New function.	Returns the offset
+	of a baseclass that is virtual or comes from a virtual baseclass, or
+	NULL if there is no such baseclass.
+	* cplus-class.c (modify_vtable_entries): Call this function instead
+	of `virtual_member'.  `virtual_member' can return the wrong thing if
+	we try to use it for an offset computation of a baseclass which is
+	not strictly a virtual baseclass.
+
+Sat Feb 16 06:21:03 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* recog.c (validate_replace_rtx_1): Use correct rtx_code for the
+	new operation when commuting operands.
+	Generalize to commute operands on comparison operation.
+
+Fri Feb 15 23:01:24 1991  Richard Stallman  (rms at geech.ai.mit.edu)
+
+	* c-parse.y (initlist): Finish changing `case N:' to `[N]'.
+
+	* combine.c (try_combine): Update reg_first_use.  Flush useless links.
+
+Thu Feb 14 17:06:44 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* cplus-parse.y (template_parm): New derivation from `class ID',
+	for consistent return of `identifier_node' nodes with `class A :
+	B' case.
+	* cplus-template (end_template_parm_list): Nothing to strip off of
+	identifier_nodes now.
+	(process_template_parm): Strip off one level of tree_list,
+	discarding (for now) the required base class.  Don't need to run
+	through grok* any more.
+
+Sun Feb 10 19:23:21 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* gcc.c (main, process_command, default_compilers): Fix typos.
+
+Sat Feb	 9 15:06:43 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* gcc.c (process_command): Handle separate args for -B, -b, -V.
+
+	* gcc.c (lookup_compiler): New function.  Handles alias entries.
+	(main): Call that.
+	(default_compilers): Make all real suffixes into alias entries.
+	(infiles): Now a vector of structures, containing specified language.
+	(process_command): Handle -x to specify language.
+	(main): Use specified language if any.
+
+Fri Feb	 8 18:31:00 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* fold-const.c (fold): Set TREE_USED when create COMPOUND_EXPR.
+	* stmt.c (warn_if_unused_value): Don't warn if TREE_USED.
+	* c-typeck.c (build_unary_op): Handle multiple casts inside ++.
+
+Fri Feb	 8 07:37:24 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* real.h (dconst2): New variable.
+	* emit-rtl.c (init_emit_once): Initialize dconst2.
+	* tree.c (real_twop): New function.
+	* cse.c (simplify_unary_operation): Fold FLOAT, FLOAT_EXTEND, and
+	FLOAT_TRUNCATE.
+	(simplify_binary_operation): Convert x*2 to x+x.
+	(cse_insn): Handle case where constant equivalent is in table.
+	Fix minor bug with merging src_related_elt.
+	* fold-const.c (fold): If commutative operation, move a constant
+	first operand to the second operand.
+	Remove tests of constants as first operand for commutative operations.
+	Convert x*2 to x+x.
+
+Fri Feb	 8 03:07:34 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* cplus-ptree.c (print_lang_decl): Corrected argument list.  Print
+	address of template info for TEMPLATE_DECL nodes.
+
+	* cplus-decl.c (set_current_level_tags_transparency): New
+	function, for altering tag-transparency of a context.
+
+	* cplus-parse.y (PRE_PARSED_METHOD_DEF): Was unused; now gone.
+	(template_instantiation): Handle $-references correctly.  Generate
+	a class_head-like value for LC actions to operate on.
+	(maybe_base_class_list): New non-terminal: colon and base class
+	list, or empty.
+	(named_class_head): Use it.
+	(unnamed_class_head): Use '{', not LC.
+	(class_head): If template_instantiation found, use its value.
+	(template_arg): Apply groktypename to typename args.
+
+	* cplus-template.c (template_text_obstack): Deleted, just use
+	permanent_obstack instead.
+	(init_template): Deleted; callers changed.
+	(current_template_info): New variable: pointer to last-saved
+	template info record.
+	(end_template_decl): Use DECL_NAME, DECL_ARGUMENTS,
+	DECL_LANG_SPECIFIC, rather than TREE_OPERANDs.	Save most of
+	template info here.
+	(reinit_parse_for_template): Only save text here, in
+	already-allocated template info record.
+	(mangle_class_name_for_template): New function.
+	(instantiate_template): Finally written.
+
+Thu Feb	 7 22:06:56 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* tm-i386v4.h (ASM_OUTPUT_COMMON): Specify rounding in the output.
+	(ASM_OUTPUT_LOCAL): Use .local and .comm.
+
+	* tm-news.h (FUNCTION_PROLOGUE): Correct syntax of link insn.
+	(PRINT_OPERAND_ADDRESS): Use period, not colon, before index reg width.
+
+	* stmt.c (pushcase, pushcase_range):
+	Don't warn for code before first `case' if there is a label on it.
+
+Thu Feb	 7 06:23:10 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* integrate.c (initialize_for_inline): Accept COPY argument.
+	Only copy parameter DECL_RTL if COPY non-zero; in that case,
+	also replace DECL_RTL with copy.  All callers changed.
+	(copy_decl_rtls): New function.
+	(save_for_inline_copying): Use copy_decl_rtls to copy MEM DECL_RTLs
+	in the function.
+	Copy address of pseudos if they are a MEM.
+
+Wed Feb	 6 19:19:25 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-typeck.c (build_binary_op_nodefault): No warn for RSHIFT by 0.
+
+Wed Feb	 6 17:37:23 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* function.c (fixup_var_refs_1):  Accept a location in rtx instead
+	of an rtx.
+	Unless -fforce-mem, if an insn is valid with MEM, leave it alone.
+	Rework ZERO_ and SIGN_EXTRACT cases to properly do adjustments
+	and generalize to support other than QImode MEMs.
+	(fixup_var_refs_insns): Change call to fixup_var_refs_1.
+
+Wed Feb	 6 08:14:21 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (cmp): Use reg_or_0_operand to avoid swapped compares.
+	(call patterns): Put use of r1 in a parallel construct.
+	(multiply and divide by a power of two): Now just multiply.  The
+	new combiner will change divide by a power of two into multiply.
+	(movhi, movqi): Use zero-extend load.
+	* tm-m88k.h (BYTE_LOADS_ZERO_EXTEND): Use it.
+	(H constraint): Changed to mean one or two.
+	* out-m88k.c: Use the proper includes for non-USG systems.
+	* xm-m88k.h: Include tm.h at the end.	
+
+Wed Feb	 6 02:24:38 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl.c (pushtag): Don't try to nest classes from non-C++
+	language scopes.
+
+Wed Feb	 6 01:33:16 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* cse.c (simplify_binary_operation): Don't change div into mult.
+
+Tue Feb	 5 10:59:53 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* cplus-parse.y (template_instantiation): Supply base class list
+	and use guts of class declaration.  Untested; will have to be
+	fixed up to deal with template context manipulations.
+
+Tue Feb	 5 00:52:57 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-common.c (combine_strings): Finish fixing wide strings.
+
+	* reload1.c (possible_group_p): New subroutine.
+	(reload): Don't kill last group when looking for a non-group.
+
+	* expmed.c (expand_divmod): If emit cmp insn, force op0 into reg.
+
+	* objc-parse.y (init_lex, yylex): max_wide now measured in chars. 
+	(yylex): Treat \r as whitespace if traditional.
+
+	* toplev.c (compile_file): Add missing arg for dbxout_finish.
+
+	* objc-actions.c (lang_finish): New dummy function.
+
+	* calls.c (expand_call): Recognize other names for setjmp-like fns.
+
+	* gcc.c (main): Use obstack_init, not gcc_obstack_init.
+
+	* varasm.c (assemble_zeros): New function.
+	All calls to ASM_OUTPUT_SKIP elsewhere now use this function.
+	Handle ASM_NO_SKIP_IN_TEXT.
+	* toplev.c (compile_file): Use assemble_zeros.
+	* final.c (end_final): Likewise.
+	* tm-3b1.h, tm-att386.h, tm-mot3300.h (ASM_NO_SKIP_IN_TEXT):
+	Define as 1.
+	* tm-3b1.h (ASM_OUTPUT_SKIP): Don't deal with outputting zeros.
+
+Mon Feb	 4 20:37:33 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m68k.md: Use %$ and %& where appropriate.
+	(special float_truncate pattern): New, for 68040.
+	(68881 DF multiply recognizers): Avoid fscale if 68040. 
+	(68881 SF multiply recognizers): Avoid fsglmul if 68040.
+
+	* tm-next.h (SECTION_FUNCTION): Simplify; remove last arg. 
+	(EXTRA_SECTION_FUNCTIONS): Rewrite to go with that change. 
+
+Mon Feb	 4 18:22:54 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (link_cc0_isns): New function.
+	(fill_simple_delay_slots, fill_slots_from_thread): Call it.
+	(fill_slots_from_thread): Don't make REG_CC_STATUS notes.
+	(delete_scheduled_jump): Use REG_CC_SETTER instead of REG_CC_STATUS.
+	Correctly locate compare insn in CC0 case.
+	(steal_delay_list_from_target): Don't steal an insn that sets cc0;
+	we can't safely copy it.
+	(fill_slots_from_thread): Can't put insn that sets CC0 in delay slot
+	if we don't own its thread; this would otherwise require copying it.
+	(relax_delay_slots): Don't collapse jump to next insn if it has a
+	cc0-setting insn in a delay slot.
+
+	* reorg.c (update_block): Accept location to place USE marker; use if
+	INSN is in a delay slot.
+	(mark_target_live_regs): Handle the case where we deleted the start
+	of the basic block that was previously used for a target.
+	Ignore insns with INSN_FROM_TARGET_P.
+	(optimize_skip, try_merge_delay_insns, fill_simple_delay_slots):
+	Pass new argument to update_block.
+	(try_merge_delay_insns, redundant_insn_p): Clear INSN_FROM_TARGET_P
+	to show that this insn will be used in both paths of the branch.
+	(try_merge_delay_insns): Add calls to update_block for insns deleted
+	from delay slots.
+
+	* reorg.c (mostly_true_jump): If no jumps between target and end of
+	function, predict as false.
+	If comparison == 0, predict false; != 0, predict true.
+
+	* reorg.c (steal_delay_list_from_{target,fallthrough}):
+	Ignore redundant insn even if it can't be placed in our delay slot.
+	(fill_slots_from_thread): Likewise.
+	Ensure we don't call redundant_insn_p on any insns that conflict
+	with what we need and set.
+
+	* reorg.c (fill_eager_delay_slots): Pick up new value of JUMP_LABEL;
+	it may have been changed by first call to fill_slots_from_thread.
+
+	* rtl.h (REG_TAIL_CALL): Deleted; never documented or used.
+	(REG_CC_SETTER, REG_CC_USER): Replacements for REG_CC_STATUS.
+	* rtl.c (reg_note_name): New names.
+	* final.c (final_scan_insn): Replace REG_CC_STATUS with REG_CC_SETTER;
+	now only one insn.
+	* emit-rtl.c (next_cc0_user, prev_cc0_setter): Use REG_CC_SETTER and
+	REG_CC_USER.
+
+	* cplus-cadillac.c, cplus-class.c, cplus-decl.c, cplus-lex.c:
+	Replace obstack_init with gcc_obstack_init.
+	* cplus-search.c, flow.c, gcc.c, loop.c, reload1.c: Likewise.
+	* reorg.c, stmt.c: Likewise.
+
+	* reload1.c (eliminate_regs, case ASM_OPERANDS): Fix typo when making
+	new ASM_OPERANDS.
+
+	* recog.c: Now includes insn-flags.h and insn-codes.h.
+	(validate_replace_rtx_1): If replacing the source of a ZERO_ or
+	SIGN_EXTRACT with a MEM, try to put the MEM in the mode to be used for
+	the MEM.
+	* Makefile.in (recog.o): Depends on insn-flags.h and insn-codes.h.
+
+Mon Feb	 4 17:39:36 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* c-typeck.c (digest_init): Error if init array with another array.
+
+Mon Feb	 4 04:58:20 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* cplus-tree.def (TEMPLATE_DECL): New node type.
+	(TEMPLATE_PARM_IDX): New node type; like integer, with an extra
+	field.
+
+	* cplus-method.c (check_text_len): Fix up error message to be more
+	correct.  Moved function before new_text_len so that the latter
+	can call it and inlining can work.
+	(new_text_len): Call check_text_len.
+
+	* cplus-method.c (build_overload_name): No longer static.
+
+	* cplus-class.c (unuse_fields): Now static.
+	(popclass): Use a temporary when building C_C_D.
+
+	* cplus-decl.c (lookup_tag): Don't complain about type mismatch if
+	the tag found is for a template.
+
+	* cplus-lex.c: New lookup tables, for new "template" keyword.
+	(reinit_lang_specific): Call init_template.
+	(init_lex): Ditto.
+	(file_from_saved_text): Renamed from input_from_saved_text.
+
+	* cplus-lex.c (identifier_type): New function; returns primary
+	type (IDENTIFIER, TYPENAME, PTYPENAME) indicated by token name.	 A
+	PTYPENAME is returned for (TYPE_DECL (TEMPLATE_DECL ...)) nodes.
+	(see_typename): Call it.
+
+	* cplus-lex.c (yylex): In handling identifiers, use subset of
+	TYPENAME code for PTYPENAME tokens.
+
+	* cplus-template.c: New file.
+	(begin_template_parm_list): Push new scope and switch to permanent
+	obstack.
+	(end_template_parm_list): Return parameter list as a tree vector.
+	(end_template_decl): Save away new TEMPLATE_DECL node.
+	(process_template_parm): Build up tree list of template
+	parameters.
+	(instantiate_template): For now, just complain.
+	(init_template): Set up template obstack.
+	(reinit_parse_for_template): Gobble up class definition text and
+	save it away.
+
+	* cplus-parse.y (template_header, template_parm_list): Call above
+	routines.
+	(datadef): Put template declarations here, instead of in
+	class_head.
+	(named_class_head_sans_basetype, named_class_head,
+	unnamed_class_head): Break up old class_head derivations.
+	(class_head): Now any of the above, plus template types with or
+	without instantiation.
+	(template_type): Call instantiate_template.
+	(template_arg_list): Build up list of args.
+
+	* cplus-tree.h (lang_type): Add TEMPLATE field.	 Also add macro
+	TYPE_TEMPLATE.
+
+Sun Feb	 3 21:16:36 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* tm-m68k.h (PRINT_OPERAND): Handle `&' and `$'.
+	(PRINT_OPERAND_PUNCT_VALID): They are valid.
+
+	* out-next.c (handle_pragma): Unread the newline.
+
+	* toplev.c (main): Warn if meaningless optimizations are requested.
+	Don't enable options by default that would get warnings.
+
+	* m68k.md (extend QI to HI): Typo in clr insn.
+
+	* c-common.c (combine_strings): Decrement LEN properly when copying.
+	* c-parse.y (init_lex, yylex): max_wide now measured in chars. 
+
+	* tree.c (gcc_obstack_init): Fix typo in forward decl.
+
+Sat Feb	 2 09:24:56 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl.c (poplevel): Change DECL_CONTEXT of decls only of
+	their context is CURRENT_FUNCTION_DECL.
+
+Fri Feb	 1 13:46:07 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* print-tree.c (print_node): Don't print chain for `c' and `x' nodes.
+
+	* loop.c (record_excess_regs): Moved here.
+
+See file ChangeLog.2.
diff --git a/gcc/ChangeLog.4 b/gcc/ChangeLog.4
new file mode 100644
index 0000000..af668a3
--- /dev/null
+++ b/gcc/ChangeLog.4
@@ -0,0 +1,10783 @@
+Mon Jan 13 19:12:18 1992  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* unroll.c (find_splittable_givs): When completely unrolling loop,
+	use biv initial value stored in splittable_regs instead of
+	bl->initial_value, since the later may not be safe.
+
+	* sched.c (schedule_block):  When calculating whether a register
+	crosses a call, must do this after registers are killed and before
+	new registers are made live.
+
+	* x-rs6000: Define INSTALL as /usr/ucb/install -c.  /etc/install
+	(the SYS V version) does not handle -c option as Makefile.in
+	intends it.
+
+Mon Jan 13 11:21:24 1992  Michael Meissner  (meissner at osf.org)
+
+	* mips-tfile (parse_stabs_common): Don't relocate N_LBRAC and
+	N_RBRAC stabs for compatibility with other stabs implementations.
+
+Mon Jan 13 07:41:32 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Don't set TREE_PRIVATE here.
+	TREE_PRIVATE is only for visibility.
+	(start_function): Don't test TREE_PRIVATE here.  #pragma
+	interface/implementation should properly handle the case of static
+	(i.e. non-public) defns in implementation section now.
+
+Mon Jan 13 07:31:38 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.c (output_ascii): The AIX assembler silently truncates
+	strings longer than 666 characters, so break them up well before that.
+
+Mon Jan 13 00:26:47 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-decl.c (pushdecl): Warn about shadowing at top level any symbol
+	that was declared among the function parms.  But don't warn for
+	parms in a nested function.
+	* tree.c (chain_member): New function.
+
+	* sparc.c (output_return): Handle structure value in all the cases.
+
+	* toplev.c (main): -gstabs+ means use stabs with gdb extensions.
+
+	* fixincludes: Insert #undef NULL before #define NULL.
+
+	* gvarargs.h (va_list): Check some macros to avoid redefinition.
+
+	* tree.h (DECL_PACKED): New macro.
+	* c-common.c (decl_attribute): Handle `packed'.
+	* stor-layout.c (layout_record): Handle DECL_PACKED.
+	* c-parse.y (attrib): Accept `packed' with no arg.
+
+	* c-decl.c (shadow_tag): For useless keyword, just warn.
+	(duplicate_decls): Don't preserve volatile bit from old decl
+	if that is just a default declaration for abort, exit, etc.
+
+	* cccp.c (do_assert, do_unassert, check_assertion):
+	No pedantic warnings in system header files.
+
+	* ultrix.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Defined.
+	(WCHAR_TYPE_SIZE): Defined.
+
+	* i386.h (HI_REGISTER_NAMES): Add a name for dummy reg 16.
+
+	* dbxout.c (flag_minimal_debug): Make it static.
+
+Sun Jan 12 18:10:46 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-lex.c (check_newline): Check #line for `3' meaning system header.
+	* cccp.c (output_line_command): Output `3' if system header.
+	* c-tree.h (system_header_p): Declare it.
+	(ridpointers): Declaration deleted.
+
+	* dwarfout.c (fundemental_type_code): Treat OFFSET_TYPE like integer.
+	(type_is_fundamental, output_type): Likewise.
+
+	* optabs.c (expand_float): Abort if FROM has VOIDmode.
+	* expr.c (expand_expr, FLOAT_EXPR case): Don't pass a VOIDmode.
+
+Sun Jan 12 16:11:40 1992  Michael Meissner  (meissner at osf.org)
+
+	* mips.h (ASM_OUTPUT_SPACE): If assembler is gas, don't use the
+	.space directive, since the table PREDICATE_CODES generates tickles
+	a bug.
+
+Sun Jan 12 15:59:41 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expmed.c: Include real.h.
+	(make_tree): Properly handle CONST_INT and handle many more rtl codes.
+	(expand_mult_add): Don't do folding here; just call make_tree and fold.
+	* Makefile.in (expmed.o): Includes real.h.
+
+Sun Jan 12 12:26:20 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (store_parm_decls): Finish change started 11 Jan 1992.
+
+	* cp-decl.c (pushtag): Don't set CLASSTYPE_TAGS after
+	CURRENT_CLASS_TYPE has been defined.
+
+	* cp-lex.c (check_newline): Set INTERFACE_UNKNOWN if we see a
+	#pragma implementation or if it's the toplevel file.
+
+Sat Jan 11 22:04:34 1992  Michael Meissner  (meissner at osf.org)
+
+	* mips.md (fix_truncsfsi2_opt): Delete, since the optimizer will
+	strip the clobbers when substituting a register for a cs'ed value,
+	unlike GCC 1.
+	(fix_truncdfsi2_opt): Likewise.
+	(long long shifts): Fix various typos.
+
+Sat Jan 11 15:26:24 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* expr.h (GEN_FCN): Alternate definition if FUNCTION_CONVERSION_BUG.
+	* xm-romp.h (FUNCTION_CONVERSION_BUG): Define it.
+
+	* i386.md (cmpstrsi recognizers): Change back to repz.
+
+Sat Jan 11 11:18:32 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (store_parm_decls): Don't put non-PARM_DECL nodes in the
+	list that will become DECL_ARGUMENTS.
+
+	* cp-decl2.c (grokfield): Convert () initialization to =
+	initialization in FIELD context.
+	* cp-decl.c (parmlist_is_exprlist): Now non-static.
+
+	* cp-decl.c (grokdeclarator): Don't let static class members be
+	declared `static' at top-level.
+
+	* cp-decl.c (pushdecl_class_level): Don't use DECL_ASSEMBLER_NAME.
+
+	* cp-decl.c (grokdeclarator): Don't let language linkage interfere
+	with declarator grokking--the two are independent.
+
+	* cp-call.c (compute_conversion_costs): Look for constructor or type
+	conversions regardless of whether we have CONTRAVARIANCE_HARSHNESS
+	or not.  Also, `#if 0' some dead code.
+
+	* cp-method.c (report_type_mismatch): Fix bugs in formatting error
+	messages.
+
+	* cp-decl.c (grokvardecl): Verify that when static class members are
+	declared at toplevel, the types match their initial declaration.
+
+Sat Jan 11 08:41:24 1992  Fred Fish  (fnf at fishpond)
+
+	* config/m68kv4.h (NO_DOLLAR_IN_LABEL):  Undefine so that the
+	default for m68k/SVR4 systems is to use '$', which is more
+	widely supported.
+
+Sat Jan 11 10:56:10 1992  Jeffrey A. Law  (law at wombat.gnu.ai.mit.edu)
+
+	* Finish PIC implementation on the 68k
+	* output.h (flag_pic): Declare here so that insn-*.c can see it.
+
+	* reload1.c (reload): When compiling PIC ignore REG_EQUIV notes
+	which are CONSTANT_P, but are not LEGITIMATE_PIC_OPERAND_P.
+
+	* m68k.md (call, call_value): Make these into define_expands. If
+	compiling PIC code, then load the address of the function into a 
+	register so that we make indirect calls.
+	(Non-PIC call, call_value): New define_insns.  These are 
+	standard call insns.
+	(PIC call, call_value): New define_insns which output PIC calls.
+	(movsi): Make this into a define_expand.  Legitimize PIC addresses
+	if necessary.  Old movsi code is now an unnamed define_insn pattern.
+
+	* m68k.h (GO_IF_LEGITIMATE_ADDRESS case INDIRECTABLE_1_ADDRESS_P):
+	Use LEGITIMATE_PIC_OPERAND_P to reject SYMBOL_REFS and LABEL_REFS 
+	without PIC relocation when compiling PIC code.
+
+	* m68k.c (legitimize_pic_address): New function.  Given an address 
+	return that address as "legitimized" PIC code. 
+	(print_operand_address): When generating PIC code, handle PIC
+	relocated label_refs just like a PIC relocated symbol_ref.
+	(print_operand_address): If -fpic then add ":w" to displacement in
+	PIC relocated references.
+	(print_operand_address): If -fPIC then add ":l" to displacement in 
+	PIC relocated references.
+
+Fri Jan 10 18:03:08 1992  Ken Raeburn  (Raeburn@Cygnus.COM)
+
+	* cp-init.c (build_new): Don't allocate header for arrays if no
+	destructor is needed.  Also fix broken calculation of array size.
+	(build_delete): Don't skip array header if no destructor is needed.
+
+Fri Jan 10 14:54:19 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-cvt.c cp-decl2.c cp-expr.c cp-gc.c cp-init.c cp-lex.c cp-parse.y
+	cp-pt.c cp-search.c cp-tree.c: Clean up problems found with -Wreturn
+	(from rfg).
+
+	* cp-typeck.c cp-tree.c cp-cvt.c cp-lex.c cp-call.c cp-class.c:
+	Add (unsigned) casts to all places where native SVr4 compilers
+	expect to see unsigned values.
+
+Fri Jan 10 08:34:36 1992  Fred Fish  (fnf at sunfish)
+
+	* m68ksgs.h (REGISTER_NAMES):  Provide separate versions for
+	SUPPORT_SUN_FPA defined and not defined.
+
+Fri Jan 10 22:36:41 1992    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* Improve I/O performance of gcc on VMS.
+	* cccp.c (VMS_open, VMS_fopen, VMS_freopen): New functions.
+	(open, fopen, freopen): Define as macros on VMS.
+	* toplev.c (VMS_fopen): New function.
+	(fopen): Define as macro on VMS.
+
+Fri Jan 10 22:00:50 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genrecog.c (merge_trees): If two trees both have actions, but
+	one adds clobbers and one doesn't, ignore the one that does.
+
+	* genemit.c (gen_split): Say that we are giving the definition number
+	in our error message.
+	* genrecog.c (fatal): Likewise.
+	* genoutput.c (scan_operands): Likewise.
+
+	* caller-save.c: Include expr.h (for gen_move_insn).
+	(regno_save_elim): Deleted.
+	(init_save_areas): Don't initialize it.
+	(setup_save_areas): Don't set it.
+	(save_call_clobbered_regs, restore_referenced_regs): Accept mode,
+	not spill register.
+	(insert_save_restore): Don't do our own register elimination and
+	reloading; instead set the insns we make to the desired mode.
+	* reload1.c (struct elim_table): New field MAX_OFFSET.
+	(reload): Always call init_save_areas.
+	Initialize max_offset each pass.
+	At each CALL_INSN, create a need for a spill register that will
+	be used by caller-save.
+	Pass mode for insns to save_call_clobbered_regs instead of a
+	spill reg number.
+	Call reload_as_needed if we will have to reload the caller-save
+	insns, even if nothing else needs reload (unlikely).
+	(eliminate_regs_in_insn): Record maximum offset value.
+	* Makefile.in (caller-save.o): Includes expr.h.
+
+	* reload.c (find_reloads): CALL_INSNs can't have output reloads.
+	* reload1.c (emit_reload_insns): Put any reloads for a CALL_INSN
+	in front of any immediately-preceeding USE insns.
+
+	* flow.c (life_analysis): Mark all global regs as live at the end of
+	the function.
+	(propagate_block): Each call makes all global registers live.
+	(mark_used_regs): A RETURN may use the stack pointer and uses all
+	global regs.
+	* cse.c (cse_insn): A CALL_INSN clobbers any global regs.
+	* reorg.c (mark_referenced_resources): Calls used global regs.
+	(mark_set_resources): CALL_INSNs clobber global regs.
+
+Fri Jan 10 17:24:06 1992  Michael Meissner  (meissner at osf.org)
+
+	* collect2.c (whole file): Major rewrite to merge in collect3
+	functionality which uses GCC to build up the constructor and
+	destructor tables, instead of using the assembler.  Also improve
+	the support for cross compilers to find the tools.  The old assembly
+	language support has been removed.
+
+	* mips-tfile.c (CODE_MASK): Move to mips.h to use with mips-tdump
+	also.
+	(MIPS_IS_STAB): Likewise.
+	(MIPS_MARK_STAB): Likewise.
+	(MIPS_UNMARK_STAB): Likewise.
+
+	* mips-tdump.c (various): Changes by Per Bothner to print
+	encapsulated stabs, and to shorten the output.
+
+	* mips.h (MIPS_VERSION): Set Meissner version # to 7.
+	(cmp2_op): Make cmp2_op a real function instead of just a
+	macro to cmp_op.
+	(OPTIMIZATION_OPTIONS): -O now sets flag_caller_saves and
+	flag_schedule_insns_after_reload.
+	(CC1_SPEC): Fix typo preventing -mgpopt from being set if
+	optimization.
+	(PREDICATE_CODES): Define.
+	(USE_COLLECT, EXTENDED_COFF, NO_UNDERSCORES): Delete, not needed in
+	GCC 2.00.
+	(ASM_INT_OP, ASM_SHORT_OP, ASM_CHAR_OP): Likewise.
+	(CODE_MASK): Move from mips-tfile.
+	(MIPS_IS_STAB): Likewise.
+	(MIPS_MARK_STAB): Likewise.
+	(MIPS_UNMARK_STAB): Likewise.
+
+	* mips.c (cmp2_op): Make this a real function, instead of a macro
+	pointing to cmp_op.
+	(volatile_buffer): New static variable to support .set volatile.
+	(mips_move_1word): Do .set volatile/.set novolatile around volatile
+	memory references.
+	(mips_move_2words): Likewise.
+
+	* mips.md (sne define_split): Fix so that it generates a gtu 0.
+	(all set cc define_splits): Remove reload_completed tests.
+	(all set cc define_insns): Don't allow 0 as operand 1.
+
+Fri Jan 10 16:40:45 1992  Jeffrey A. Law  (law at wombat.gnu.ai.mit.edu)
+
+	* m68k.md (addsi3, addhi3, subsi3, stack adjustment peepholes):
+	Perform small (8 < N <= 16) constant additions and subractions to
+	address registers with two addqw (or subqw) instructions.
+
+Fri Jan 10 06:54:22 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* calls.c (expand_call): Check for _longjmp as well as longjmp;
+	clean up code a bit and merge with check for setjmp-like names.
+	Emit a BARRIER if this is a call to longjmp in addition to
+	volatile calls.
+
+Fri Jan 10 02:25:54 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (digest_init): Properly return error_mark_node
+	after invalid element in array initializer.
+
+	* gcc.c (pexecute): Use `fork' in error message if don't have vfork.
+
+	* Makefile.in: Add .NOEXPORT.
+
+Thu Jan  9 13:36:25 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_expr): Handle OFFSET_REF.
+
+	* cse.c (simplify_binary_operation): Never use associative law for
+	floating arithmetic.
+
+	* fixinc.svr4: Renamed INCLUDES to INPUT.
+
+	* i386.md (cmpstrsi recognizers): Output repe, not repz.
+
+Thu Jan  9 18:02:34 1992  Dennis P. Glatting  (dennisg at tti)
+
+	* tree.h (CONSTRUCTOR_NAME_FORMAT): Changed name format.  Old format
+	was recognized as destructors not constructors.
+	* objc-actions.c (build_module_descriptor):
+	Null-terminate global_object_name.
+
+Thu Jan  9 10:35:58 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* sdbout.c (sdbout_syms): Don't attempt to output a LABEL_DECL.
+
+Thu Jan  9 08:17:44 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (merge_component_references): Treat constants as
+	unsigned, so we don't get extra sign bits where we don't want them.
+
+Wed Jan  8 19:12:59 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reload.c (combine_reloads): Don't use a fixed_reg as an reload
+	reg, even if it dies.
+
+	* loop.c (record_giv): Fix typo extracting insn_uid.
+
+Wed Jan  8 15:41:10 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cpp.texi, gcc.texi: Files renamed.
+	* invoke.texi, extend.texi, md.texi, rtl.texi, tm.texi: New subfiles.
+	* Makefile.in: Corresponding changes.
+
+	* fixincludes: Renamed INCLUDES to INPUT.
+
+	* m68k.c (notice_update_cc, print_operand): Fix typos.
+
+	* cp-decl.c (expand_static_init): Save and restore current obstacks.
+
+	* c-decl.c (poplevel): Put labels in BLOCK_VARS of top-level block.
+
+Wed Jan  8 12:53:48 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (expand_static_init): Switch to PERMANENT_OBSTACK during
+	expansion.
+
+Wed Jan  8 07:45:58 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88kv3.h (STARTFILE_SPEC): SVR3 has *crt0.o files.
+
+	* configure (m88k-*sysv{3,4}): The files are named m88kv{3,4}.
+
+Wed Jan  8 06:01:44 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* romp.md (mftbi): Allow memory in the contraints since there can't
+	be an input reload on an insn that uses cc0.
+
+	* cse.c (FIXED_BASE_PLUS_P): Include virtual_incoming_args_rtx.
+	(NONZERO_BASE_PLUS_P): New macro.
+	(find_comparison, simplify_relational_operation_args): Use
+	NONZERO_BASE_PLUS_P instead of FIXED_BASE_PLUS_P when appropriate.
+
+	* m68k.md (peepholes): Don't change around stack adjusts and pushes
+	when we are pushing something whose address involves sp.
+
+	* cse.c (simplify_unary_operation): Check for operations on
+	integers by looking at mode of OP, not output mode, to avoid
+	confusion with FIX operations whose result is an integer.
+
+	* rtl.h ([df]const[012]_rtx): Deleted.
+	(const_tiny_rtx): New declaration.
+	(CONST0_RTX): Use const_tiny_rtx instead of {d,f,}const0_rtx.
+	(CONST1_RTX, CONST2_RTX): New macros.
+	* emit-rtl.c ([df]const[012]_rtx): Deleted.
+	(const_tiny_rtx): New definition.
+	(init_emit_once): Initialize const_tiny_rtx instead of old vars.
+	* cse.c (simpify_binary_operation): Use CONST[01]_RTX.
+	* varasm.c (immed_real_const_1): Likewise.
+	* combine.c (subst): Likewise.
+	* reg-stack.c (record_reg_life, stack_reg_life_analysis): Likewise.
+	* convex.md, i860.md, m88k.c, spur.md, vax.h, ns32k.md: Likewise.
+
+Tue Jan  7 22:11:17 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* x-i386isc (ENQUIRE_LDFLAGS): New defn: add -posix.
+
+	* protoize.c (_POSIX_SOURCE): Define only if POSIX.
+
+	* m68k.h (FPA_REG_P): Always define this somehow.
+
+	* c-decl.c (c_decode_option): Handle -Wchar-subscripts.
+	* c-typeck.c (build_array_ref): Do the real work.
+
+Tue Jan  7 21:15:54 1992  Michael Meissner  (meissner at osf.org)
+
+	* mips.md (branch_zero_false): Use correct mode (CC_0) on
+	match_operator.
+
+Tue Jan  7 14:24:45 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reg-stack.c (replace_reg): get mode class from a mode, not a reg.
+
+Tue Jan  7 14:16:18 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* reg-stack.c (emit_pop_insn): Fix typo FPmode_reg.
+
+	* protoize.c (longjmp): Don't declare it.
+
+Tue Jan  7 09:47:47 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-lex.c (real_yylex): From John Hassey, allocate space for the
+	terminating null on wide character literals.
+
+Tue Jan  7 07:41:42 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88kv3.h (LIB_SPEC): Add -lg.
+
+Tue Jan  7 06:29:30 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* stor-layout.c (layout_type): Don't over-align a structure
+	when strict alignment is not required.
+
+	* rs6000.h (CALL_USED_REGISTERS): r31 should not be marked call-used.
+
+	* rs6000.md (add-and-compare): Fix duplicate operand number.
+
+	* a29k.md (inbyte, inhw): Correct duplicate operand number.
+
+	* fold-const.c (fold, case MULT_EXPR): Simplify (a * (1 << b)).
+	* combine.c (subst, case MULT): Likewise.
+	(simplify_shift_const, shift cases): Similarly, associate A << B << C.
+
+	* genoutput.c (seen): New array.
+	(scan_operands): Give error if an operand number was specified
+	twice.  Include pattern number in error message.
+	(gen_insn, gen_expand, gen_split, gen_peephole): Initialize `seen'.
+	(gen_split, gen_peephole): Add initializations for arrays that
+	are copied.
+
+	* optabs.c (expand_unop): Complete recent change; one TARGET was
+	not changed to TEMP.
+
+	* expmed.c (expand_mult): Always try multiplication by value and
+	by negated value. Fix bug where we don't include the cost of the negate
+	when seeing which way is better.  Write proper value in REG_EQUAL
+	note.
+
+	* optabs.c (extendtab): Replacement for {zero,sign}_extend_codes.
+	(can_extend_p): Use new table and return type is not enum insn_code.
+	(gen_extend_insn): Deleted; not used.
+	(init_extends): Make like init_flottab: use new table and initialize
+	unused entries to CODE_FOR_nothing, not zero.
+	* expr.c (convert_move): can_extend_p fails if it returns
+	CODE_FOR_nothing, not zero.
+	* expr.h (can_extend_p): Add definition.
+
+	* expr.h: Add "extern" to function definitions.
+
+Mon Jan  6 10:12:34 1992  Leonard Norrgard  (vinsci at nic.funet.fi)
+
+	* m68k.c (SUPPORT_SUN_FPA): Conditionalize references to the
+	optional Sun 3 Floating Point Accelerator with SUPPORT_SUN_FPA.
+	* m68k.h (SUPPORT_SUN_FPA): Likewise.
+
+	* m68k.c (notice_update_cc): New function.
+	* m68k.h (NOTICE_UPDATE_CC): Just call notice_update_cc.
+
+        * sun3.h (SUPPORT_SUN_FPA): New define.
+
+Mon Jan  6 16:42:43 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* varasm.c (assemble_global, assemble_label): New functions.
+	* objc-actions.c (finish_objc): Call them to define and globalize.
+	Use output_constant to reference a class.
+
+	* Makefile.in (install-limits-h): New target.
+	(install-headers): Depend on install-limits-h.
+	(USER_H): Deleted LIMITS_H.
+	(INSTALLED_H): Added limits.h.
+	(mostlyclean): Remove tmp-limits.h.
+	* limitx.h: New file.
+
+	* x-isc: File deleted.
+
+	* objc-actions.c (build_module_descriptor): Init global_object_name.
+
+	* Makefile.in (collect2): Depend on version.o.
+
+	* protoize.c (PATH_MAX): Definition deleted.  Just test it
+	to see if param.h should be included.
+
+	* cse.c (simplify_binary_operation, case MULT): Make a copy
+	of the operand when converting 2.0 * X to X+X.
+
+	* reload.c (find_reloads): Refine when we set force_reload and
+	better document the cases.
+
+Mon Jan  6 08:22:19 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.c (output_float_compare): Output only single-pop compare
+	if both operands are the FP top of stack reg.
+	When comparing FP top of stack with itself, print `%st(0)' as the
+	reg name, not `%st'.
+
+Mon Jan  6 12:01:51 1992  Tiggr  (rcpieter at mole.gnu.ai.mit.edu)
+
+	* arm.md (mulsi3): Fixed contraints.
+
+Mon Jan  6 08:21:46 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k-move.sh: Renamed from m88k-movstr.sh.  Rename the generated
+	files move*.asm from movstr*.asm to be SVR3-legit.
+	* t-m88k, t-m88kluna, t-m88kv4: Use the new names.
+
+	* c-aux-info.c, dbxout.c: Include errno.h as in protoize.c.
+
+	* Makefile.in (BISONFLAGS): Don't use -v since *.output is big.
+	(cp-parse.c): Do use -d to create cp-parse.h.
+	(cp-parse.o): Don't define PARSE_OUTPUT.
+	* x-mips, x-m88kdgux (BISONFLAGS): No -v.
+
+Mon Jan  6 07:54:55 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genpeep.c (match_rtx): Loop over vectors (e.g., PARALLEL) in the
+	natural order so we see an operand before we see a MATCH_DUP referring
+	to it.
+
+	* genrecog.c (write_tree_1): Simplify code that writes braces and
+	avoid writing them unnecessarily.
+	Don't write dead code when last test was unconditional.
+
+	* optabs.c (expand_binop, expand_twoval_binop, expand_unop):
+	Standardize loop for wider mode.
+	(emit_cmp_insn, emit_float_lib_cmp): Likewise.
+	(expand_binop): Correct how extensions are done: use convert_to_mode,
+	don't use SUBREG for non-integer operations, and remove test
+	involving HOST_BITS_PER_INT.
+	(expand_unop): Similar changes; make code closer to expand_binop.
+	Handle failure of recursive call when expanding.  Fix incorrect use
+	of TEMP when widening.  Use SUBREG for NEG and NOT.
+
+	* reload.c (find_reloads_address_part): New function.
+	(find_reloads_address): Call it instead of push_reload when we are
+	reloading a PLUS or a constant.
+
+Sun Jan 5 18:34:15 1992    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* make-cc1.com:  Change file names from cp-tab.* to cp-parse.*.
+
+Sun Jan  5 18:06:11 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Correctly grok REFERENCE_TYPE
+	parameters when TYPE_REFERENCE_TO is automagically converted.
+
+Sun Jan  5 05:19:19 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* tree.h (CONSTRUCTOR_NAME_FORMAT): New macro.
+	* objc-actions.c (build_module_descriptor): Make constructor name
+	from name of file or of a global that it defines.
+	Return constructor name.
+	(finish_objc): Use name returned as name to call.
+
+	* protoize.c (GUESSPATHLEN): New macro.
+	(main): Use that for initial buffer size for getcwd.
+	* dbxout.c (getwd, getcwd, GUESSPATHLEN): Define as in protoize.c.
+	(dbxout_init): Call getcwd in loop, as in protoize.c.
+	* c-aux-info.c (getwd, getcwd, GUESSPATHLEN): Define as in protoize.c.
+	(gen_aux_info_record): Call getcwd in loop.
+	* i386v.h, i386vgas.h (MAXPATHLEN): Don't define.
+
+	* svr3.h (LINK_SPEC): Don't pass -K.
+
+	* reload.c (find_reloads): Do record in non_reloaded_operands if no -O.
+
+	* m68k.c (output_function_prologue, output_function_epilogue):
+	Add braces and adjust conditionals to fix balance and indentation.
+
+	* objc-actions.c (build_module_descriptor): Mark __objc_file_init used.
+
+Sat Jan  4 13:27:40 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* protoize.c: unprotoize getcwd & fork declarations.
+	(edit_fn_declaration): use "VOLATILE", not "volatile".
+
+Sat Jan  4 20:19:41 1992  Michael Meissner  (meissner at osf.org)
+
+	* mips.h (set_volatile): Add new global variable reference.
+
+	* mips.c (set_volatile): New global variable to keep track of the
+	number of .set volatile's done.  At present, no code actually turns
+	this on.
+	(mips_move_1word): Use %. instead of putting const0_rtx into an
+	unused operator and using %z to get to $0, which is hardwired to 0.
+	(mips_move_2words): Likewise.
+	(override_options): Allow %., %{, and %} punctuation.
+	(print_operands): Add support for %. to get the current name of
+	register 0, %{ to turn on .set volatile, and %} to turn on .set
+	novolatile.
+	(function_epilogue): Give an error if .set volatile was left on in
+	the epilogue.
+	(mips_asm_file_start): Don't emit .set nobopt unless we are filling
+	branch delay slots.
+
+	* mips.md (set reg on comparison define_splits): Don't allow the
+	scheduler to split any set of a comparision insns, to work around a
+	bug in sched.c.
+
+Sat Jan  4 23:01:41 1992  Jeffrey A Law  (law at planet.super.org)
+
+	* m68k.c (output_function_prolog): Decrement (instead of 
+	increment) num_saved_regs when a frame pointer is needed.
+	(the link/unlk will restore the frame pointer register)  
+
+Sat Jan  4 11:11:24 1992  Dennis P. Glatting  (dennisg at tti)
+
+	* next.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef before defining.
+
+Sat Jan  4 07:40:25 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (convert_to_mode): Correctly zero-extend a constant into
+	a mode whose size is twice the host int size.
+
+	* machmode.h (enum mode_class): Add MAX_MODE_CLASS.
+	(GET_CLASS_NARROWEST_MODE): New macro.
+	(byte_mode, word_mode): Add declarations.
+	* caller-save.c (choose_hard_reg_mode): Use GET_CLASS_NARROWEST_MODE.
+	* combine.c (make_extraction): Don't use explicit QImode and SImode.
+	* cse.c (simplify_unary_operation): Integer CONST_DOUBLEs have 
+	VOIDmode, not DImode.
+	(simplify_binary_operation): Remove explicit DFmode reference.
+	* expmed.c (init_expmed): Don't make our own copy of word_mode.
+	(store_bit_field, extract_bit_field): Remove explicit
+	QImode reference; don't recompute word_mode.
+	(store_fixed_bit_field, {store,extract}_split_bit_field): Don't
+	recompute word_mode.
+	(emit_store_flag): Likewise.
+	(extract_fixed_bit_field): Replace explicit mode references with a
+	loop on modes; don't recompute word_mode.
+	* expr.c (convert_mode, move_block_{to,from}_reg, use_regs): Don't
+	recompute word_mode.
+	(emit_push_insn, do_jump_by_parts*): Likewise.
+	(push_block): Remove explicit QImode reference.
+	(get_inner_reference): Use mode_for_size.
+	* emit-rtl.c (restore_reg_data): Make unused regs word_mode.
+	(operand_subword): Don't recompute word_mode.
+	* fold-const.c (optimize_bit_field_compare): Likewise.
+	(merge_component_references): Likewise.
+	* flow.c (mark_set_1, mark_used_regs): Likewise.
+	* loop.c (combine_movables): Use GET_CLASS_NARROWEST_MODE.
+	* optabs.c (expand_binop): Replace SImode references in multi-word
+	multiply with the mode used for each subpart.
+	(expand_binop, expand_unop): Don't recompute word_mode.
+	* reg-stack.c (reg_to_stack): Use GET_CLASS_NARROWEST_MODE.
+	* reload.c (find_equiv_reg): Check for MODE_FLOAT, not SFmode/ DFmode.
+	* rtl.c (class_narrowest_mode, byte_mode, word_mode): Define.
+	(init_rtl): Initialize them.
+	* sched.c (attach_deaths): Don't recompute word_mode.
+	* stor-layout.c (mode_for_size): Use GET_CLASS_NARROWEST_MODE.
+	(get_best_mode): Likewise.
+	Don't recompute word_mode.
+	* unroll.c (unroll_loop): Replace default of SImode with word_mode.
+
+	* calls.c (calls_alloca): Don't recurse on BLOCK_SUPERCONTEXT.
+
+Sat Jan  4 03:42:09 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* protoize.c (pointer_type): Use char * if non-ANSI.
+	(const_pointer_type): Likewise.
+	(malloc, realloc): Declare to return pointer_type.
+	(setjmp): Don't declare, to avoid trouble with macro defns.
+	(const): If not ANSI, define as empty macro.
+
+Sat Jan  4 00:59:53 1992  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* sparc.c (legitimize_pic_address): When converting a symbol_ref,
+	use an extra temp reg when -fPIC, and add a REG_EQUAL note to the
+	insn referencing the global offset table.  This allows loop to
+	optimize these PIC sequences.
+
+Fri Jan  3 20:29:57 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (return): Always output return insns.
+
+	* i386.h (FUNCTION_PROLOGUE): If the last nonnote insn in a function
+	is a BARRIER, don't output a function epilogue.
+
+Fri Jan  3 12:43:09 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* t-decrose, t-decstatn, t-encrose, t-i386rose, t-mips (ALL):
+	Use libgcc.a, not libgcc.
+
+	* protoize.c (STRINGIFY): Provide non-ANSI alternative definition.
+
+	* c-decl.c (get_parm_info): Keep non-parms in the parm list.
+
+	* stmt.c (cost_table): Now short.
+	(estimate_case_costs): Handle that.
+
+	* Makefile.in (float.h, *protoize.1, gcc.xtar.Z):
+	Make temp files, then rename.
+	(clean): Delete those temp files.
+
+	* Makefile.in (c-parse.c): Don't use -d, since cp-parse.output is big.
+
+Fri Jan  3 10:32:31 1992  Michael Tiemann  (tiemann at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (cp-parse.c): Add missing -o flag.
+
+Fri Jan  3 08:21:04 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reg-stack.c: Complete last change (renaming DFmode_reg).
+
+	* expmed.c (init_expmed): Pass dummy pointer to number of clobbers to
+	recog so it can let us see patterns that need added clobbers.
+
+Fri Jan  3 07:54:32 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* c-decl.c (implicitly_declare): Record whether this is an implicit
+	declaration before setting IDENTIFIER_IMPLICIT_DECL.
+
+Thu Jan  2 21:17:12 1992  Michael Meissner  (meissner at osf.org)
+
+	* mips.c (compute_frame_size): Don't count FP registers twice.
+
+Thu Jan  2 14:59:55 1992  Michael Tiemann  (tiemann at hal)
+
+	* cp-lex.h: Renamed from cp-parse.h.  Now cp-parse.h is the file
+	created by bison from cp-parse.y.
+	* Makefile.in: reflect this naming change.
+
+Thu Jan  2 12:37:32 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* objc-actions.c (build_obj_method_call): Typo in NEXT case.
+
+	* next.h (HAVE_ATEXIT): Defined.
+
+	* c-decl.c (duplicate_decls):
+	No error if override decl that has DECL_BUILT_IN_NONANSI.
+
+	* Makefile.in (c-parse.c): Don't use -o, since cp-parse.output is big.
+
+	* Makefile.in (protoize, PROTOIZE): Delee these 2 new targets;
+	`protoize' was redundant.
+
+	* c-typeck.c (build_function_call): If the fn is volatile,
+	make a pointer-to-volatile-function type pointer.
+	* calls.c (expand_call): Handle calls to such pointers as volatile.
+
+	* expmed.c (init_expmed): Pass all 3 args to `recog'.
+
+	* varasm.c (output_constant): For REAL_TYPE, mode_for_size arg is bits.
+
+	* sparc.md (storing SF into mem at symb addr): Fix typos.
+
+	* protoize.c (my_access, my_stat, my_execvp, my_link, my_unlink):
+	(my_open, my_chmod): Macros that run access, stat,... with casts.
+	Renamed from former POSIX-only macros and made unconditional.
+	All calls to these functions also renamed.
+
+	* m68k.h (LEGITIMATE_PIC_OPERAND_P): Undo change below,
+	thus making the behavior really change to accept all CONST_DOUBLE.
+
+	* libgcc1.c, libgcc2.c: Renamed from gnulib1.c, gnulib2.c.
+	* gcc.c (link_command_spec): Link with libgcc.a.
+	* Makefile.in (libgcc): Rename targets and variables from gnulib.
+	* *.h, t-*, x-*: Rename refs to those symbols and files.
+	* expr.c (LIBGCC_NEEDS_DOUBLE): Renamed from GNULIB_...
+
+	* m68k.c (symbolic_operand): Reject all CONST_DOUBLE.
+	* m68k.h (SELECT_RTX_SECTION): Use LEGITIMATE_PIC_OPERAND_P.
+	(LEGITIMATE_PIC_OPERAND_P): Reject the CONST_DOUBLEs
+	that symbolic_operand used to accept.
+
+Thu Jan  2 21:06:13 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* protoize.c (is_id_char,free_def_dec,check_aux_info):
+	Don't declare them `inline'.
+	(save_def_or_dec,munge_compile_params,find_extern_def,check_source,
+	scan_for_missed_items): Use alloca instead of variable length arrays.
+
+	* Makefile.in (protoize,unprotoize): Get $(LIBS) for alloca.
+
+Thu Jan  2 21:40:52 1992  Jeffrey A Law  (law at b115.super.org)
+
+	* sparc.h (OPTIMIZATION_OPTIONS): Enable caller-saves for -O2
+	and higher optimization levels.
+
+Thu Jan  2 06:46:56 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* final.c (final_scan_insn): Compare debug_info_level with entries in
+	its enum, not with integers.
+
+	* reg-stack.c ({SF,DF}mode_reg): Deleted.
+	(FP_mode_reg): New array, indexed by register and by mode.
+	(reg_to_stack): Replace initialization of old vars with initialization
+	of FP_mode_reg.
+	(replace_reg): Use new array.
+
+	* romp.c, romp.h, romp.md: Rename symbolic_operand to
+	romp_symbolic_operand.
+
+	* emit-rtl.c (init_emit_once): Create virtual registers before the
+	structure value regsisters, since the latter might use the former.
+
+	* varasm.c (output_constant): Fix typo: missing arg to expand_expr.
+
+	* vax.md (call_pop, call_pop_value): Use correct register number for
+	stack pointer.  Add new patterns for case of zero args.
+
+Thu Jan  2 08:12:59 1992  Fred Fish  (fnf at sunfish)
+
+	* x-amix:  Minor changes to some comments.
+	* x-amix (CCLIBFLAGS, GNULIB2_CFLAGS, XCFLAGS):  Remove definitions.
+	* x-amix (manext):  Add definition.
+
+Thu Jan  2 11:14:28 1991  Ken Raeburn  (Raeburn@Cygnus.COM)
+
+	* fold-const.c (fold, case PLUS_EXPR): If association permits
+	reduction to var+0, convert var to the desired type before returning
+	it.
+
+Wed Jan  1 10:37:50 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* expr.c (convert_move): When GET_MODE_BITSIZE (TO_MODE) >
+	BITS_PER_WORD, check that it's also > GET_MODE_BITSIZE (FROM_MODE).
+
+	* expr.c (expand_expr): In CONSTRUCTOR case, preserve
+	MEM_IN_STRUCT_P when creating a new target when TARGET and EXP might
+	not be independent.
+
+Wed Jan  1 18:32:03 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-parse.y (parmlist_1): Accept `PARMS; PARMS'.
+	(parmlist_or_identifiers_1): Likewise.  Also use plain parmlist_2.
+	Delete the ([names] decls) syntax.
+	(defn_parms, defn_parmlist_2): Deleted.
+	* c-decl.c (get_parm_info): Put parm decls into original order.
+	Don't nreverse the original decls list.
+	(pushdecl, duplicate_decls): Avoid error for forward parm decl.
+	(clear_parm_order): New function.
+	(push_parm_decl): Record original order of parms.
+
+	* c-decl.c (struct binding_level): New slot subblocks_tag_transparent.
+	(pushlevel): Use that, not ->parm_flag.
+	(start_function): Set that slot.
+
+	* config.sub: Always distinguish between amix and sysv4.
+	Convert commodore to cbm and digital to dec.
+
+	* m68k.md (stack adjust then push SI): New peephole.
+
+	* m68k.h, fx80.h (WCHAR_TYPE): Use precisely "long int".
+	* sun3.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Undef before defining.
+
+	* cexp.y (yylex): Use LONG_TYPE_SIZE, not INT_TYPE_SIZE.
+	(LONG_TYPE_SIZE): Add default definition.
+
+	* objc-actions.c: Declare index and rindex.
+	(build_module_descriptor): Simplify last change.
+	Use a fixed name for the initialization function.
+	(init_objc): Don't do constructor here.
+	(finish_objc): Do it here, with proper name if not NEXT_OBJC_RUNTIME.
+
+	* protoize.c: Unprotoized.
+	(edit_file): Improve message in -n case.
+
+	* Makefile.in (LANGUAGES): Add proto.
+	(C, C++, OBJC, OBJECTIVE-C): Aliases for l.c. targets.
+	(PROTOIZE, protoize, PROTO): Aliases for proto.
+	(rest.encap): Delete dep `proto'.
+
+Wed Jan  1 15:07:41 1992  Michael Meissner  (meissner at osf.org)
+
+	* mips.md (extend*): Use gen_lowpart to make the SUBREG, rather than
+	doing it wrong by hand.  If not optimizing, make sign extends from
+	memory not force the operand into a register first and do two
+	shifts -- combine already does this when optimizing.
+	(copyright): Add 1992 to list of years the file was modified.
+
+Wed Jan  1 06:10:01 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload): When forcing an illegitimate constant into
+	memory, use mode of SET_DEST in case constant is VOIDmode.
+
+	* stmt.c (expand_end_case): Pass index type to emit_case_nodes instead
+	of unsigned flag.
+	(node_has_{low,high}_bound): Accept INDEX_TYPE as an argument and see
+	if the a node value is at the limit of values of the type.
+	(node_is_bounded): Accept INDEX_TYPE and pass to above functions;
+	always call them.
+	(emit_case_nodes): Accept INDEX_TYPE instead of UNSIGNEDP as arg;
+	pass index type to recursive calls and to calls to bound checking
+	functions.
+
+	* varasm.c (assemble_integer_zero): Deleted.
+	(assemble_integer, assemble_real): New functions.
+	(output_constant_pool, output_constant): Use new functions.
+	* final.c (end_final, profile_function): Likewise.
+
+	* calls.c (calls_alloca): Don't interpret operands that are RTL as if
+	they were trees; check args of nested CALL_EXPR for alloca calls.
+
+Wed Jan  1 16:51:30 1992  Fred Fish  (fnf at fishpond)
+
+	* Makefile.in (manext): Include the '.' character.
+	(mandir): Don't use manext.
+	(install-man, uninstall): Change uses of manext.
+
+Wed Jan  1 21:31:01 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* i860.md (cmpeqsi, cmpltsi, cmpgtsi):  Made control flow more obvious.
+	(cmpnesi, cmplesi, cmpgesi):  New patterns.
+	(cmpgeusi, cmpleusi):  Fixed bug in compares against zero.
+
+Tue Dec 31 11:16:37 EST 1991   Dennis P. Glatting (...!uunet!tti!dennisg)
+
+	* objc-actions.c (build_module_descriptor): Emit a constructor 
+	function.  Constructor function calls a ObjC run-time routine passing
+	a pointer to the module's module structure.
+	(init_objc): Call different constructor function if not Next.
+	(build_selector_translation_table): Don't give a selector global scope.
+	Changed in construction of decl_specs.
+
+Tue Dec 31 18:06:23 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genrecog.c (add_to_sequence): Clear PREDS for "const_int_operand".
+	(same_modes): Properly check when we should ignore a mode test.
+
+	* reload1.c (emit_reload_insns): Only change spill_reg_store for
+	output reloads.
+	Clear spill_reg_store when we did an input reload to a spill register.
+	(delete_output_reload): Use single_set.
+	(count_occurrences): Don't count use which is SET_DEST.
+
+Tue Dec 31 16:51:37 1991  Michael Meissner  (meissner at osf.org)
+
+	* mips.h (MIPS_VERSION): Change Meissner version # to 6.
+	(ASM_FINAL_SPEC): Don't pass -d and friends to mips-tfile.
+	(CONSTANT_ALIGNMENT): Align constructors on word boundaries.
+
+	* mips.md (extend*): Replace sign extension insns with a
+	define_expand that converts the expansion into the appropriate
+	shifts.  Add insns that do sign extension from memory, which the
+	optimizer will utilitize if the thing being sign extended really
+	comes from memory.  This allows the shifts to compete for CSE, at a
+	potential cost of generating worse code if reload spills a HI or QI
+	register to the stack.
+	(sne define_split): Instead of using a constant 0 as the second
+	argument to the slti instruction, use a hard coded regisiter 0.
+
+	* mips-sysv.h (MD_STARTFILE_PREFIX): Define to point into the
+	directory where the MIPS compilers live.
+	(LIB_SPEC): Add crtn.o after all libs.
+	(STARTFILE_SPEC): Use crt1.o, not crtn.o.
+	(MACHINE_TYPE): Correct typo, this is System V, not BSD.
+	Changes are from Ron Guilmette (rfg at ncd.com).
+
+	* configure (mips-*-sysv): Correctly use mips-sysv.h instead of
+	mips.h.  Change is from Ron Guilmette.
+
+Tue Dec 31 16:51:37 1991  Michael Stump  (mrs at charlie.secs.csun.edu)
+
+	* t-decrose, t-decstatn, t-encrose, t-i386rose, t-mips: Remove
+	collect2 from EXTRA_PASSES, as collect2 does not need installing as
+	collect2.  Also, change the symlink back to a hard link.
+
+	* Makefile.in: Add collect2 to STAGESTUFF as it is something that
+	needs removing or moving to stagen, but it should not be installed.
+
+Tue Dec 31 15:47:50 1991  Michael Tiemann  (tiemann at hal)
+
+	* combine.c (simplify_comparison): Swap evaluation of OP0 and OP1 so
+	the lattern can use the result of the former.
+
+	* conditions.h: In comments, refer to `tm.h', since `tm-' is no
+	longer the form used for these files.
+
+Tue Dec 31 11:45:26 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cp-lex.c (lineno, finput): Decls deleted.
+
+	* global-alloc.c (find_reg): New arg RETRYING.
+	(retry_global_alloc, global_alloc): Pass that arg.
+
+	* Makefile.in (*protoize, *protoize.o): Compile with CC.
+	* protoize.c: Include config.h, not tconfig.h.
+	Always define _POSIX_SOURCE.
+
+	* convex*.h (CPP_SPEC): !ansi controls _POSIX_SOURCE, _CONVEX_SOURCE.
+	* conv1*.h, conv2*.h: Files deleted.
+
+	* m68k.h, fx80.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Defined.
+
+Tue Dec 31 08:08:32 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* cexp.y (yylex): Record the parsed characters when dealing with
+	multibyte characters.
+
+Mon Dec 30 17:13:30 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (mulhi3,mulsi3): If a multiply by constant 128, use the
+	two operand multiply instead of three operand form: the AT&T
+	assemblers generate incorrect object code for the latter.
+
+Mon Dec 30 17:39:36 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): Complete last change: use expand_and result.
+
+	* reload1.c (emit_reload_insns): Check if reload_in needs a secondary
+	reload if we have an in-out reload, since it might have been the
+	output the needed the secondary reload.
+
+	* cse.c (simplify_unary_operation): Mode of integer CONST_DOUBLE is
+	VOIDmode, not DImode.
+
+	* fold-const.c (fold, case COND_EXPR): Make an ABS_EXPR when the
+	comparison is LE_EXPR or LT_EXPR.
+
+	* calls.c (calls_alloca): New function.
+	(expand_call): Preexpand any argument that contains a call to alloca
+	if this call will use the stack.
+
+	* rs6000.h (DATA_SECTION_OP): Make result a string to avoid compilation
+	error.
+
+	* rs6000.h, sparc.h, sun2o4.h, sun3.h (WCHAR_TYPE_SIZE): Fix
+	incorrect definition.
+
+Mon Dec 30 16:10:46 1991  Michael Meissner  (meissner at osf.org)
+
+	* mips.h (CC1_SPEC): Complete change deleting -mnogpopt and -mngpopt
+	in favor of -mno-gpopt.
+
+Mon Dec 30 11:32:05 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-class.c (build_vtable): If we're doing #pragma interface
+	and the interface is known, set TREE_PUBLIC, regardless of
+	TREE_EXTERNAL settings.
+
+	* cp-decl.c (make_temporary_for_reference): Don't call
+	`convert_pointer_to', since the type may not be an aggr type.
+
+	* cp-decl.c (finish_decl): Now takes 4th arg NEED_POP.
+	All callers changed.
+
+	* cp-class.c (permanent_obstack): Declare it.
+	(add_method): push and pop obstacks before changing out of/into
+	temporary allocation.
+	* cp-decl.c (implicitly_declare): Add
+	push_obstacks_nochange/pop_obstacks around changes out of/into
+	temporary allocation.
+	(shadow_tag,xref_tag,start_decl,finish_decl): Ditto.
+	* cp-decl2.c (grokfield,get_temp_name): Ditto.
+	* cp-except.c ({ansi_}lookup_exception_object): Ditto.
+	* cp-lex.c (get_time_identifier): Ditto.
+	* cp-tree.c (build_exception_variant): Ditto.
+	* cp-typeck.c (mark_addressable): Ditto.
+
+	* cp-decl.c (grokdeclarator,maybe_build_cleanup): Delete calls to
+	preserve allocation status.  Now handled by callers.
+
+Mon Dec 30 01:44:21 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-lex.c (yyprint): Function moved here.
+	* c-parse.y, objc-parse.y: Moved from here.
+
+	* Makefile.in (c-parse.c, objc-parse.c, cp-tab.c, cexp.c):
+	cd to srcdir to run Bison.
+
+	* c-lex.c (check_newline): Get rid of #ident pedantic warning.
+	* cccp.c (do_ident): Put it here.
+	Don't warn if in system header file.
+
+	* cccp.c (main, finclude): Warn if file ends in backslash-newline.
+
+	* next.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): New definitions.
+
+	* global-alloc.c (find_reg): Kick out local regs if that helps.
+	(global_alloc): Set up vars local_regs_live_length, local_regs_n_refs.
+
+	* protoize.c (do_processing): Fix setting syscalls_absolute_filename.
+
+	* configure (m68k-*-sysv4*, m68k-*-amix*): New alternatives.
+	* config.sub (*-commodore): Default OS to Amigados.
+	(-amix*): Allow this as input.
+	(amiga): New abbreviation.
+
+	* sparc.c (output_function_epilogue): Skip unimp differently in leaf.
+	Use jmp insn rather than separate add.
+	(output_return): Skip unimp here too.
+	* sparc.md (return "peepholes"). Handle skipping the unimp.
+
+	* fold-const.c (fold, optimizing 2*EXPR): Use save_expr.
+
+	* varasm.c (make_decl_rtl): Permit initializer for local explicit reg.
+
+	* c-decl.c (kept_level_p):  Changed to also return TRUE for binding
+	levels which contain only tagged type declarations.
+
+	* calls.c (expand_call): Cleaned up prev change.
+
+Mon Dec 30 11:29:47 1991  Michael Tiemann  (tiemann at mole.gnu.ai.mit.edu)
+
+	* cp-lex.c (real_yylex): Call REAL_VALUE_TRUNCATE with 2 args.
+
+	* calls.c (expand_call): Handle allocating ARGBLOCK in the case
+	that ACCUMULATE_OUTGOING_ARGS is not defined.
+
+Mon Dec 30 10:27:11 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* protoize.c: fix typo in <sys/wait.h> inclusion.
+
+Mon Dec 30 06:16:16 1991  Leonard Norrgard  (vinsci at nic.funet.fi)
+
+	* c-decl.c (grokdeclarator): Changed erroneus error message.
+
+Sun Dec 29 16:16:55 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* toplev.c (main): Last -On option wins.
+	* Makefile.in (ENQUIRE_CFLAGS): Add -O0.
+
+	* Makefile.in (cp-tab.c): Change "expect" message.
+
+	* final.c (leaf_renumber_regs): Renumber just the PATTERN.
+
+Sun Dec 29 14:20:15 1991  Per Bothner  (bothner at cygnus.com)
+
+	* dbxout.c (dbxout_type): Tiemann's DECL_IGNORED_P optimization (Nov
+	20) was a little too drastic: If it succeded, no type info was
+	emitted at all, which made for syntactically invalid stabs.
+	Instead, just set 'full=0',
+	* dbxout.c (dbxout_symbol): Re-write code for TYPE_DECL to be a
+	little cleaner.  It *seems* to work ...
+
+Sun Dec 29 07:04:22 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (convert_move): Add truncates from DImode to smaller modes.
+	(move_by_pieces, move_by_pieces_ninsns): Rework to remove explicit
+	references to integer modes.
+	Never need to align greater than BIGGEST_ALIGNMENT.
+
+	* optabs.c (init_extends, init_fixtab, init_floattab, init_optabs):
+	Add TImode operations.
+
+	* reload.c (find_reloads): Prefer alternatives that reload SCRATCH
+	instead of something else.
+
+	* rs6000.md (movti): Adjust constraints and alternative order so
+	we actually get to use the  stsi insn.
+
+	* rs6000.h (REG_ALLOC_ORDER): Put r9 in front of r11 so we don't try to
+	put a TImode value in r11 as often.
+
+	* caller-save.c (setup_save_areas): New parameter pchanged; set when
+	memory is allocated.
+	* reload1.c (reload): Pass pointer to something_changed to
+	setup_save_areas.
+
+	* loop.c (scan_loop): Don't suppress moving insns that can trap just
+	because we have passed a call inside a libcall/retval block.
+
+	* jump.c (get_label_before): Don't separate a CALL_INSN from any USE
+	insns immediately preceeding it.
+	(get_label_after): Likewise, for following CLOBBERs.
+
+	* cse.c (fold_rtx, case '<'): When seeing if we have seen this
+	comparison before, use a constant equivalence.
+	Add test for things like "(a | 1) != 0".
+	(fold_rtx, case '2'): Move code to handle associative operations to
+	here; add support for MINUS, SMAX, SMIN, UMAX, and UMIN.
+	(record_jump_equiv): See if OP1 is equivalent to a constant.
+
+	* jump.c (jump_optimize): Don't pass a SUBREG as a target to
+	expand_and.
+
+	* combine.c (subst): Never associate floating-point, even if not IEEE.
+	Associate MAX and MIN operations.
+
+	* output.h (output_asm_insn, asm_fprintf): Add "extern" to decls.
+	(alter_subreg): Add declaration.
+	* rs6000.md (movsf, movdf): Don't declare alter_subreg here.
+	(trunc_call_rtl): Don't declare trunc_used; use rs6000_trunc_used.
+	* rs6000.c (rs6000_trunc_used): New name of trunc_used.
+	* rs6000.h (rs6000_trunc_used): Add declaration.
+
+Sat Dec 28 18:14:21 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-method.c (build_overload_name): Don't call OB_FINISH unless END
+	is nonzero.
+
+Sat Dec 28 17:46:05 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* gcc.c (default_compilers): Handle -ansi in the C++ entries
+	exactly the same way as the C entries do.
+
+	* rtl.c (add_dependence): Cast enums to int before doing an
+	ordered comparison, since some compilers can't do this.
+
+	* sparc.c (pic_address_needs_scratch): New function.  Returns
+	true if the pic address X needs a scratch register when loaded.
+	(legitimize_pic_address): Clean up.  New argument SCRATCH, which
+	is a scratch register for those loads that need it.
+	(emit_move_sequence): New argument SCRATCH_REG, which is a scratch
+	register for those loads that need it.  When loading a pic label,
+	set %o7 instead of clobbering it so its value can be used later.
+	(compute_frame_size): Leaf functions need to allocate space for
+	register window in frame if size greater than 0.
+	(print_operand): Delete obsolete %^ which added %o7 to addresses.
+	All uses of %o7 are now explicit.
+	* sparc.h: Fix callers of legitimize_pic_address.
+	(REG_CLASS_FROM_LETTER): Add 'r' case.
+	(SECONDARY_INPUT_RELOAD_CLASS): New macro, to force reload to
+	allocate a scratch register for certain pic address reloads.
+	(flag_pic): Define as extern so that it will be defined for
+	insn-emit.c.
+	* sparc.md: Fix all callers of legitimize_pic_address and
+	emit_move_sequence.
+	(reload_insi): New pattern.  Used to force reload to allocate a
+	scratch register for those pic address loads that need one.
+	(reload_insi+2): When loading pic label, set %o7 instead of
+	clobbering it.
+	(movdf, movsf): Reject matches that would require reloading via
+	use of a condition.
+	(tablejump): Now a define_expand, so can generate different
+	pattern when pic.
+	(pic_tablejump): Explicitly mention in rtl that %o7 is used,
+	instead of using %^.
+
+	* m88k.h, sparc.h: Delete references to non-existent
+	BLOCK_PROFILER_USED_REG_P macro.
+
+Sat Dec 28 14:31:36 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-lex.c (check_newline): Set ignore_escape_flag for reading filename.
+	(yylex): Handle ignore_escape_flag in string constant.
+
+	* gnulib2.c (__do_global_dtors): Count elements properly.
+
+	* m68k.md (tsthi): Don't allow address register.
+
+Sat Dec 28 11:49:06 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* final.c (final): Initialize elements of line_note_exists.
+
+	* protoize.c: Don't include <sys/wait.h> on USG unless SVR4.
+
+Sat Dec 28 11:09:36 1991  Fred Fish  (fnf at fishpond)
+
+	* Makefile.in (includes): Pre-remove the tmp dir; fix INSTALLED_H ref.
+
+Sat Dec 28 06:31:16 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* sparc.md (movstrsi): Fix typo testing for more than 32 subunits.
+
+	* genrecog.c: Major rework.
+	We now check to see if pairs of comparison nodes can have anything
+	that they both match.  If not, they can be reordered.  An efficient
+	ordering is established that groups all nodes with identical rtl
+	codes inside groups with identical modes.  This allows us to generate
+	a comparison tree that is a list of nested switch statements.
+	Also, genrecog.c is now indented properly so that debugging is eased.
+	(add_to_sequence): Enforce mode on the first arg of COMPARE, comparison
+	operation, SIGN_EXTEND, and ZERO_EXTEND.
+
+	* a29k.h, romp.h, rs6000.h (PREDICATE_CODES): Add definition.
+
+Fri Dec 27 17:31:48 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* a29k.h, decrose.h, encrose.h, m88kdgux.h (WCHAR_TYPE_SIZE):
+	Add definition.
+	* rs6000.h, sparc.h, sun2o4.h, sun3.h, svr3.h, svr4.h: Likewise.
+
+	* expmed.c (expand_mult): For negative values, try multiplication by
+	the original value as well as by negated value.
+
+Fri Dec 27 20:54:59 1991  Fred Fish  (fnf at fishpond)
+
+	* m68kv4.h:  Include m68ksgs.h rather than m68k.h.
+
+	* m68kv4.h:  Define TARGET_DEFAULT to be 68020 + 68881.
+	(CPP_SPEC): Define based on TARGET_DEFAULT
+
+	* m68kv4.h (PCC_STATIC_STRUCT_RETURN): Undef this.
+	(CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Defs deleted.
+	(ASCII_DATA_ASM_OP, ASM_OUTPUT_ASCII): Defs deleted.
+
+	* m68kv4.h (ASM_OUTPUT_SKIP, FUNCTION_VALUE_REGNO_P):
+	(FUNCTION_PROFILER, STRUCT_VALUE_REGNUM, BSS_ASM_OP):
+	(FUNCTION_VALUE, FUNCTION_EXTRA_EPILOGUE, LIBCALL_VALUE):
+	(STACK_BOUNDARY, EMPTY_FIELD_BOUNDARY, BIGGEST_ALIGNMENT):
+	Redefined to match m68k/SVR4 conventions.
+
+	* m68ksgs.h (ASM_OUTPUT_SKIP): Redefined to use `.space'.
+	(ASM_NO_SKIP_IN_TEXT): Defined.
+
+	* amix.h, xm-amix.h, x-amix: New files.
+
+Fri Dec 27 20:43:11 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-tree.h (build_overload_name): Declare this function.
+	* cp-decl2.c, cp-method.c: Delete random `extern' declarations.
+
+	* cp-lex.c (get_directive_line): Declare it extern.
+	(lineno,yychar,yylval,lastiddecl,finput): Ditto.
+	(ridpointers): Don't need to declare it here.
+	(check_newline): Handle new #pragmas.
+
+	* cp-class.c (add_method): Add a cast in call to `obstack_base'.
+
+Fri Dec 27 20:22:05 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (push_overloaded_decl): Now returns a value.
+	All callers changed.
+
+	* cp-decl.c (duplicate_decls): Give better error message when user
+	declaration conflicts with built-in one.  Also, when we decide to
+	keep a builtin function builtin, copy the DECL_RTL from OLDDECL to
+	NEWDECL.
+
+Fri Dec 27 17:18:15 1991  Michael Meissner  (meissner at osf.org)
+
+	* mips.h (TRAMPOLINE_TEMPLATE): Define correctly for MIPS.
+	(TRAMPOLINE_SIZE): Define to be 9 words.
+	(INITIALIZE_TRAMPOLINE): Define correctly for MIPS.
+	(TRANSFER_FROM_TRAMPOLINE): Define to do a mprotect of the
+	trampoline, so that we can jump to it.  I suspect the mprotect may
+	fail on some MIPS based systems, because the trampoline is on the
+	stack, and not in the data section.
+
+	* mips.c (mips_output_filename): Don't warn about ECOFF not
+	handling #line's within functions if we are using the OSF/rose
+	object format.
+
+Fri Dec 27 15:35:38 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_array_ref): Special warning about `register' array.
+
+	* gnulib2.c (L_trampoline): Don't create a function here.
+	The definition of TRANSFER_FROM_TRAMPOLINE can do that if nec.
+	* m68k.h (TRANSFER_FROM_TRAMPOLINE): Make the function here.
+
+	* fx80.*: Renamed from alliant.*.
+	* configure: Alternative renamed to fx80-alliant-*.
+	* config.sub: Corresponding changes.
+
+	* cccp.c (traditional): No longer static.
+	* cexp.y (yylex): Handle full variety of character constants.
+	Include stdlib.h and locale.h if needed.
+
+	* c-decl.c (shadow_tag): Change warnings to error or pedwarn.
+
+	* gnulib2.c (__do_global_dtors): If length not given, count it.
+	* gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Ignore length; scan till null.
+	(__CTOR_END__, __DTOR_END__): Declarations deleted.
+
+	* cp-decl2.c (finish_file): Always change $ to _
+	regardless of NO_DOLLAR_IN_LABEL.
+
+Fri Dec 27 15:04:40 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* svr4.h (ASM_OUTPUT_ALIGNED_COMMON): Fix typo.
+
+	* m88k.c: Move extern decls.
+	(output_ascii): Use ASCII_DATA_ASM_OP.
+	* m88k.h (HAVE_ATEXIT): Delete.
+	(ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL,
+	 ASCII_DATA_ASM_OP): Override svr4.h.
+	(EXTRA_SECTIONS): No ctors/dtors for m88k-luna.
+	* m88kdgux.h (STANDARD_STARTFILE_PREFIX): No need to override svr4.h.
+
+Fri Dec 27 11:34:59 1991  Ken Raeburn  (Raeburn@Cygnus.COM)
+
+	* cp-pt.c (mangle_class_name_for_template): Use a local obstack
+	rather than fixed-size buffers.
+
+	* cp-class.c (add_method): Case obstack_base value to desired type
+	when reallocating vector node.
+
+Fri Dec 27 09:16:50 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* sort-protos:  New file.
+
+	* i386.c: Remove decls of frame_pointer_needed; include flags.h.
+	* i386.c (output_387_binary_op, output_float_compare):
+	Moved declarations of strcat to top level.
+
+	* i860.md (cmpnesf, cmpnedf):  New patterns.
+	* i860.md (cmplesf, cmpgesf):  Corrected to allow for IEEE conformance.
+
+Thu Dec 26 11:20:07 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-class.c: Declare N_* variables here.
+	* cp-class.h: Declare N_* variables extern here.
+
+	* cp-gc.c (build_static_gc_entry): Call `assemble_gc_entry' instead
+	of implementing it directly.
+	* varasm.c (assemble_gc_entry): New function.
+
+	* calls.c (expand_call): Don't crash if somebody declared a void
+	function `const'.
+
+	* cp-cvt.c (convert): Handle case when two equal array types are
+	distinct (in memory).
+	* tree.c (build_index_2_type): Don't set TREE_TYPE of lower bound.
+	(index_type_equal): New function.
+
+	* cp-spew.c (yylex): Extend special-case ptr-to-func ((*)()) parsing
+	to handle (*)[] and (&)[] declarations as well.
+
+	* cp-decl2.c (finish_file): Unconditionally call
+	assemble_{constructor,destructor}.  Also, delete code for writing
+	_init and _fini sections that was #if 0'd.  These actions belong in
+	varasm if anywhere.
+
+	* cp-class.c (add_method): Fix handling of obstacks to correctly
+	extend TREE_VECs.
+
+Thu Dec 26 15:24:45 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cccp.c (main): Add new option -include.  Rename -i to -imacros.
+	* gcc.c (SWITCH_TAKES_ARG): Remove -i.
+	(WORD_SWITCH_TAKES_ARG): Add -include, -imacros.
+	* hp800.h (WORD_SWITCH_TAKES_ARG): Add all the standard alternatives.
+	* mips.h (SWITCH_TAKES_ARG): Remove -Y and -i.
+	* next.h, sparc.h (WORD_SWITCH_TAKES_ARG): Add -include, -imacros.
+	* sun2.h, sun3.h (WORD_SWITCH_TAKES_ARG): Copy from sparc.h.
+	* svr4.h (SWITCH_TAKES_ARG): Remove -i, -f.
+	(WORD_SWITCH_TAKES_ARG): Add -include, -imacros.
+
+	* toplev.c (flag_gnu_linker): New variable.  -fgnu-linker.
+	* flags.h (flag_gnu_linker): Declare it.
+	* varasm.c (assemble_constructor, assemble_destructor):
+	Handle flag_gnu_linker.
+
+	* sparc.md (structure values): Separate unimp pattern deleted.
+	New pattern for combined call and unimp.  `call' pattern changed.
+	(type): Deleted type marker, added call_no_delay_slot.
+
+Thu Dec 26 05:04:28 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reg-stack.c (move_for_stack_reg): If a SET_DEST is REG_UNUSED,
+	just pop the SET_SRC.
+
+Wed Dec 25 17:23:25 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-decl.c (init_decl_processing): Fix type of exit, _exit.
+
+	* jump.c (cross_jump_death_matters): Move def to front, make static.
+
+Tue Dec 24 20:41:32 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* hard-reg-set.h (reg_names): Declare here.
+	* stmt.c (expand_asm_operands): Not here.
+
+	* gcc.c (handle_braces, do_spec_1, give_switch): Clear up %*.
+
+	* expr.c (expand_expr): Delete decl of lang_expand_expr.
+
+	* final.c (final_scan_insn): Delete line number followed by another
+	line number, if numbers are effectively consecutive.
+
+	* jump.c (jump_optimize): Set cross_jump_death_matters from cross_jump.
+	* reg-stack.c (reg_to_stack): Pass 2 for cross_jump to jump_optimize.
+	Don't set cross_jump_death_matters here.
+	(record_reg_life): Delete decl of call_used_reg_set.
+
+	* c-decl.c (init_decl_processing):
+	Declare abort, exit, and _exit as volatile.
+
+	* c-decl.c (implicitly_declare): Set IDENTIFIER_IMPLICIT_DECL earlier.
+	(pushdecl): Test that and avoid nested extern warning.
+
+	* c-decl.c (init_decl_processing): Don't handle EXPAND_BUILTIN_VARARGS.
+
+Tue Dec 24 15:42:34 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-init.c (add_friends): Add missing IDENTIFIER_POINTER macro
+	application to strncmp argument.
+
+	* cp-method.c (build_overload_*): Now uses SCRATCH_OBSTACK instead
+	of relying on fixed buffers of finite length.
+	(fndecl_as_string): Ditto.
+	All callers changed.
+	* cp-except.c (cplus_exception_name): Definition moved to
+	cp-method.c.
+
+Tue Dec 24 10:38:49 1991  Michael Collison  (collison at osf.org)
+
+	* ns32k.c (hard_regno_mode_ok): Define this as a function now.
+	Also change the way it work so that we don't allow moves between
+	the general registers and the floating point registers.
+
+	* ns32k.h (HARD_REGNO_MODE_OK): Turn it into a function call.
+
+	* ns32k.md (call_value): fix to correct a bug where the compiler thinks
+	the return value of a function call is in f0 instead of r0. Fix
+	courtesy of vince russo.
+	(movqi, movhi): Fix up these patterns because they could return
+	undefined instruction templates. Fix courtesy of vince russo.
+
+Tue Dec 24 10:14:20 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* mips-tfile.c (main): Move nested extern decl of version_string to
+	file-scope.
+	(catch_signal): Move nested extern decl of sys_siglist to
+	file-scope.
+
+	* varasm.c (assemble_variable): Handle ASM_OUTPUT_ALIGNED_COMMON.
+	* svr4.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): New.
+	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Deleted.
+
+	* gcc.c (SWITCH_TAKES_ARG, default_compilers):  Eliminated -Y* option.
+	(execute):  Moved decls of execv and execvp to top level.
+	(do_spec, do_spec1, handle_braces, give_switch): Support new %* spec.
+
+	* c-lang.c (recognize_objc_keyword):  Added explicit return.
+
+	* svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):  New definitions.
+	(ASM_SPEC, LINK_SPEC): Support more standard svr4 options.
+	(LIB_SPEC):  Fixed to link crtend.o *after* libc.a.
+
+	* svr4.h (CONST_SECTION_FUNCTION):  Moved decl of `text_section' to
+	top level.
+
+	* cexp.y (main): Add explicit return type and explicit value.
+	Move decl of yydebug to top level.
+
+	* gnulib2.c (__bb_init_func):  Moved decl of ___tcov_init to top level.
+
+	* toplev.c (main):  Deleted obsolete checks for -opt and -noreg.
+	Moved decls of environ, version_string, language string to file-scope.
+	Compile-time error if PREFERRED_DEBUGGING_TYPE is missing.
+
+	* tree.c (dump_tree_statistics): Deleted decl of class_obstack.
+	(object_permanent_p):  Added explicit return type.
+
+Tue Dec 24 09:29:24 1991  Charles Hannum  (mycroft at hal.gnu.ai.mit.edu)
+
+	* expr.h (lang_expand_expr): Fix typo.
+
+Tue Dec 24 06:52:45 1991  Michael Meissner  (meissner at osf.org)
+
+	* gnulib2.c (__main): Make sure the exit module is pulled in if we
+	have atexit, since that module defines constructor/destructor
+	variables as bss symbols rather than as references.
+
+	* decrose.h (HAVE_ATEXIT): Define.
+	* encrose.h (HAVE_ATEXIT): Define.
+	* i386rose.h (HAVE_ATEXIT): Define.
+	* decstatn.h (HAVE_ATEXIT): Define.
+
+	* gcc.texinfo (HAVE_ATEXIT): Expand documentation.
+	(EXIT_BODY): Document.
+
+	* protoize.c (POSIX): Make protoize accept TARGET_POSIX as a synonym
+	for POSIX to make the code and documentation agree.  Also, if the
+	user defined _POSIX_SOURCE explicitly, turn on POSIX support in
+	protoize.
+
+Tue Dec 24 00:14:38 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* calls.c (emit_call_1): Additional arg STRUCT_VALUE_SIZE.
+	Use as arg in call and call_value insns.
+	(expand_call): Record the size, to pass it.
+	* expr.c (emit_library_call): Pass 0 for STRUCT_VALUE_SIZE.
+	* sparc.md (call, call_value): Make use of new arg.
+	Generate an unimp instruction to use sparc calling convention.
+	Add nameless pattern to recognize it.
+	* sparc.c (output_function_epilogue): Skip the caller's unimp insn.
+
+	* Makefile.in (INSTALLED_H): New variable.
+	(includes): Preserve just those specific files.
+
+	* expr.h (lang_expand_expr): Declare it.
+	* expr.c: Don't declare it.
+	* cp-expr.c (init_cplus_expand): Set up lang_expand_expr here.
+	* cp-lex.c (init_lex): Call init_cplus_expand.
+
+Mon Dec 23 15:17:59 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* configure: Delete m88k-v88r32 (this is supported by m88k-svr3)
+	and add m88k.
+	* config.sub: Delete v88r as a system type.
+
+Mon Dec 23 19:50:48 1991  Fred Fish  (fnf at fishpond)
+
+	* 3b1.h, crds.h, hp320.h, m68k.md, m68ksgs.h, mot3300.h, news.h,
+	tower-as.h:  Replace port oriented macros SGS_3B1, HPUX_ASM, and
+	SONY_ASM, with configuration oriented macros SGS_SWITCH_TABLES,
+	SGS_SWAP_W, SGS_CMP_ORDER, and SGS_NO_LI.
+
+	* m68ksgs.h: New file.
+
+	* m68k.c (print_operand_address): Change switch labels for MOTOROLA.
+	Don't use a `%'.  Add missing `L' to some labels.
+	For SGS assembler, use one symbol for the offset.
+
+Mon Dec 23 17:03:13 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* recog.h (insn_name): New declaration.
+	* final.c (output_asm_insn):  Don't declare insn_name here.
+
+	* dbxout.c (dbxout_function, dbxout_begin_function):
+	Pass missing arg to dbxout_really_begin_function.
+
+	* jump.c (jump_optimize): Set new var can_reach_end.
+	* c-decl.c, cp-decl.c (finish_function):
+	Merge that into current_function_returns_null.
+
+	* config.sub (fx2800): New machine alias.
+
+	* va-m88k.h (va_start): Test __GNUC__, not __CLASSIFY_TYPE__.
+
+	* m88kv4.h: New version from Wood.
+	(CPP_PREDEFINES): Put -A options here.  Remove __CLASSIFY_TYPE__.
+
+	* cccp.c (initialize_builtins): Define __GNUC__ as 2.
+
+	* rtl.h (read_rtx): New declaration.
+
+	* c-lex.c: Don't include output.h.
+	(asm_out_file): Declare it.
+	(ridpointers): Allocate storage here.
+
+	* c-lex.h (lastiddecl, token_buffer): Declare here.
+	(yylex, make_pointer_declarator, reinit_parse_for_function): Likewise.
+	* c-parse.y, objc-parse.y: Not here.
+
+	* objc-actions.c (error_with_ivar, error_with_method):
+	(warn_with_method): Use count_error, not errorcount.
+
+Mon Dec 23 11:50:37 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* sdbout.c:  Fixed typo.
+	* stmt.c (init_stmt, init_stmt_for_function):  Explict return type.
+	* gnulib2.c (__fixunsdfdi, __fixunssfdi): Move extern decls.
+	* recog.c (init_recog):  Added explicit return type.
+	* longlong.h (count_leading_zeros):  Moved decl of `__clz_tab'.
+	* print-rtl.c (insn_name_ptr):  Make decl `extern'.
+
+	* objc-actions.h, objc-actions.c (doing_objc_thang):  Make extern.
+	* objc-actions.h, objc-actions.c (finish_class):  Return void.
+	* objc-actions.c (continue_class):  Added default error return value.
+
+	* fixinc.svr4: Map assertion tests to equivalent ANSI macro tests.
+
+	* i860.c (output_block_move):  Disabled code to move by words or
+	halfwords until it can be made to work right.
+
+	* i860.c (output_block_move):  Moved a sequence of common
+	`output_asm_insn' calls out of (and before) conditionals.
+
+	* i860.c (output_block_move):  Corrected bugs in move loop.
+
+Mon Dec 23 15:25:01 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88kv4.h (CPP_PREDEFINES): Fix for varargs/stdarg.
+	(includes): Include svr4.h before m88k.h so the overrides in m88k.h
+	will take effect.
+
+Mon Dec 23 07:06:27 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* i860.c (output_delayed_branch): Call insn_extract and
+	constrain_operands so that `which_alternative' is set properly.
+
+	* stor-layout.c (layout_type, case ARRAY_TYPE): Handle
+	TYPE_NO_FORCE_BLK similar to RECORD_TYPE.
+
+	* encrose.h, i386rose.h, mips.h (LIBG_SPEC): Deleted; unused.
+
+Sun Dec 22 12:02:03 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.c (function_epilogue): Use correct operand for insn mode.
+
+Sun Dec 22 12:20:16 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Don't set TREE_PUBLIC for member
+	functions that are really declared as inline methods.
+
+	* cp-init.c (build_virtual_init): Add missing call to
+	`assemble_external' when we use a virtual function table.
+
+	* cp-decl.c (implicitly_declare): Don't allocate a decl if at the
+	global binding level.
+
+	* vax.h (PRINT_OPERAND): Handle new 'R' case.
+	* vax.md: Change all patterns which passed a negated operand for
+	`rotl' to use 'R' as the negator, since rotl cannot acctually handle
+	negative arguments.
+
+Sun Dec 22 12:31:46 1991  Ron Guilmette (rfg at ncd.com)
+
+	* i386v4.h (TARGET_VERSION):  Added definition.
+	* i860v4.h (TARGET_VERSION):  Added definition.
+
+	* m68kv4.h:  New file.
+	* fx2800.h:  New file.
+
+	* m88kv4.h (DWARF_DEBUGGING_INFO):  Deleted redundant definition.
+	(It's defined already in svr4.h.)
+
+	* m88kv4.h (CPP_PREDEFINES): Added definition.
+
+	* m88kv4.h (CPP_SPEC, LIB_SPEC, LINK_SPEC, STARTFILE_SPEC):
+	Deleted redundant definitions.  (These are defined in svr4.h.)
+
+	* cccp.c (errno, sys_nerr, sys_errlist): Moved extern decls to top lev.
+	* function.c (round_down): Likewise.
+	* calls.c, c-convert.c: Delete block-level extern decls.
+	* c-convert.c: Include flags.h.
+
+	* configure (i386-*-sysv*):  Fixed tmake_file value.
+	(i860-*-sysv3*):  Fixed xmake_file and tmake_file value.
+	(i860-alliant-*):  New configuration.
+
+	* i860.c (recog_operand, call_used_regs, insn_template,
+	insn_n_operands, insn_outfun, alter_subreg):  Moved extern
+	declarations out of local contexts and put them at file-scope.
+
+	* i860.c (zero_operand):  Deleted useless function.
+
+	* i860.c (singlemove_string): Added code to optimize moving halfword
+	constants.
+
+	* i860.c (output_block_move):  Don't do CC_STATUS_INIT until it is
+	definitely necessary & appropriate.
+
+	* i860.c (output_block_move):  Create up to 16 sequential load/store
+	pairs for constant length moves regardless of operand sizes (e.g.
+	byte, halfword, word).
+
+	* i860.c (output_block_move):  Try to generate widest kind of
+	sequential load/store pairs for constant length moves before trying
+	the less efficient (narrower) ones.
+
+	* i860.c (output_block_move):  Don't do sequential load/store pairs
+	for constant length moves unless the size is a multiple of the
+	size of the operands moved each time (i.e. word, halfword, byte).
+
+	* i860.c (output_block_move):  Re-wrote code to do inline variable
+	length block moves to correct fatal errors (e.g. no check for zero
+	or neagtive start count) and to make it more efficient (saved 1 cycle
+	per iteration).
+
+	* i860.c (output_block_move):  Make variable length moves with starting
+	alignment of 4 or 2 `#if 0' for now, until they can be fixed to work
+	right.  Also reordered all three cases so that longer alignments are
+	checked for first.
+
+Sun Dec 22 01:25:07 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* i386v4.h: Include svr4.h just once.
+
+	* protoize.c (fprintf, printf): Decls put in #if 0.
+
+	* emit-rtl.c (stack_slot_list): Delete superfluous extern decl.
+	(emit): Abort if arg isn't recognized.
+
+	* c-parse.y (current_declspecs, declspec_stack): Declare static.
+	(undeclared_variable_notice): Likewise.
+	(lastiddecl): Declare extern.
+	* objc-parse.y: Same changes as c-parse.y.
+	(token_buffer): Declare extern.
+
+	* c-lex.c: Include output.h.
+	(check_newline): Decl of asm_out_file deleted.
+
+	* c-lex.h (ridpointers, NORID): Declare/define here.
+	* c-lex.c, c-parse.y, objc-parse.y: Not here.
+
+	* sun3.h (WORD_SWITCH_TAKES_ARG): Add `-assert'.
+	(LINK_SPEC): Pass -assert to linker.
+
+	* gbl-ctors.h (__CTOR_END__, __DTOR_END__): Remove `extern'.
+
+	* sparc.h (RTX_COSTS): Increase multiply cost to 20.
+	(MULSI3_LIBCALL): Use .umul.
+	(UMULSI3_LIBCALL): Deleted.
+
+Sat Dec 21 18:34:27 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (simplify_comparison): Allow OP0 to be VOIDmode if it
+	is a COMPARE or a comparison operation.
+
+	* i860.md (bte): Remove now unneeded patterns.
+	Correct mode mismatch errors in patterns that will now be used.
+
+Sat Dec 21 00:14:25 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* ns32k.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Dummies deleted.
+	(INITIALIZE_TRAMPOLINE): Likewise.  #error inserted.
+
+	* ns32k.c (print_operand_address): For invalid address, just abort.
+
+	* Makefile.in (FIXINCLUDES): New variable.
+	(includes, maketest): Use that.
+	* x-i386v4 (FIXINCLUDES): Override here.
+
+Fri Dec 20 18:28:54 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_really_begin_function): New subroutine.
+	(dbxout_function): Use that, but only if not DBX_FUNCTION_FIRST.
+	(dbxout_begin_function): New function.
+	* varasm.c (assemble_start_function): Call dbxout_begin_function.
+
+	* dbxout.c (dbxout_function): Implement DBX_OUTPUT_FUNCTION_END.
+
+	* sparc.md (movstrsi): Add missing double quote.
+
+	* gcc.c (process_command): Handle -Xlinker.
+
+	* calls.c (expand_call): Treat vfork like setjmp.
+
+	* c-decl.c (implicitly_declare): Use push_obstacks_nochange.
+
+	* sparc.h (WORD_SWITCH_TAKES_ARG): Add -assert.
+	(LINK_SPEC): Pass -assert to linker.
+
+	* svr4.h (ASM_OUTPUT_LOCAL): Fix typo.
+
+Fri Dec 20 07:52:19 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl2.c (lang_decode_option): Recognize more -fno-OPTION
+	options which need special treatment (in the turning off of the
+	option).
+
+	* cp-parse.y (named_class_head_sans_basetype_either): Rule deleted.
+	(identifier_either): Rule deleted.
+	(delete): Don't call `build_x_delete'' if the type does not have a
+	destructor.  We may still need to adjust the address passed to
+	`operator delete'.
+
+	* cp-init.c (build_delete): New argument MAYBE_ADJUST.  All callers
+	changed.  Also, add #if 0/#endif around code dealing with ALIGNMENT.
+	It's dead code, and that's unclear otherwise.
+	(maybe_adjust_addr_for_delete): New function.
+	(build_new): Initialize special header for arrays allocated with
+	`operator new[]'.  This is a rewrite of Ken's code.
+	(init_init_processing): New built-in type BI_header_type.
+
+	* cp-init.c (build_{new,delete}): Call `build_builtin_call' for BIN,
+	BID.
+	(build_builtin_call): New function.
+
+	* cp-decl.c (grokvardecl): Set TREE_EXTERNAL.
+	(grokdeclarator): Set TREE_PUBLIC for all member functions.  They
+	are effectively global.  Do the same for static members.
+	(start_function): Don't clear TREE_EXTERNAL in case the function
+	belongs to another file's implementation.  Other fixes to
+	TREE_PUBLIC/TREE_EXTERNAL logic based on interface/implementation.
+
+	* cp-method.c (hack_identifier): Call `assemble_external' if
+	necessary.
+
+Fri Dec 20 06:27:38 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (emit_reload_insns): Always record first insn emitted
+	for a reload, including any insns for a secondary reload.
+	(gen_input_reload): Correct documentation of function.
+
+Thu Dec 19 22:01:51 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gnulib1.c (perform_fixdfsi): New customization macro.
+
+	* svr4.h (SELECT_RTX_SECTION): Undef before defining.
+
+Thu Dec 19 16:59:12 1991    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* cccp.c (hack_vms_include_specification): Make conversion of 
+	filenames more versatile for user specified include directories.
+
+Thu Dec 19 17:38:18 1991  Michael Meissner  (meissner at osf.org)
+
+	* mips.h (#error's): Put tab in front of all #error's, so that
+	ancient pre-ANSI compilers will not complain about unknown
+	directives, even if the #error is #ifdef'ed out.
+
+	* mips.md (fix_trunc*): Reorder constraints so that 'd' comes before
+	'f', and put a '*' in front of 'f' constraints to keep integer in
+	the GP registers.
+	(define_splits): Add reload_completed check for all define_splits
+	that use subreg on the arguments to work around bug in sched.c.
+
+	* cccp.c (lang_asm): New static variable to indicate we are
+	processing an assembly file and to ignore unknown directives in case
+	they are comments, like they are on the MIPS systems.
+	(main): Set lang_asm if -lang-asm switch.
+	(handle_directive, skip_if_group): Don't report about unknown
+	directives if lang_asm is set.
+
+	* gcc.c (default_compilers array): Pass -lang-asm to cpp when
+	processing .S files instead of -lang-c.
+
+Thu Dec 19 15:06:09 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-decl.c (c_decode_option): Handle -fno-ident.
+	* c-lex.c (check_newline): Ignore #ident for -fno-ident.
+
+	* svr4.h (ASM_OUTPUT_LOCAL): Use assemble_name.
+
+	* mips.h: Use #error, not #include, for error messages.
+
+	* cccp.c (warning, main): Implement -Werror.
+
+	* i386sco.h (CPP_SPEC): Move non-fixed option here.
+	(CPP_PREDEFINES): From here.
+
+	* gcc.c (do_spec_1): For %p, just pass -D options.
+	For %P, pass all -A options.  Put in whitespace, fix typos.
+
+	* c-parse.y (parmlist_2, defn_parmlist_2): Warn about (...).
+	* c-decl.c (get_parm_info): Don't warn here.
+
+Thu Dec 19 06:15:46 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* toplev.c (compile_file): Avoid ordered comparison of debug_info_level
+	since it is an enum.
+
+	* mips.c: Include gstab.h.
+
+	* sparc.md: Fix typo.
+
+	* caller-save.c (save_call_clobbered_regs): Don't save regs that
+	die in a CALL_INSN or that are born there.
+
+Thu Dec 19 04:28:23 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-aux-info.c (gen_aux_info_record): Don't write space at line beg.
+
+Wed Dec 18 11:46:13 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* cse.c (cse_main): Use get_max_uid rather than computing it.
+
+Wed Dec 18 18:13:06 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (scan_loop): Ensure replacement made  by single-use code
+	is not modified in the life of the register being replaced.
+
+Wed Dec 18 15:37:52 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* rtl.h (fconst2_rtx, dconst2_rtx):  Added extern declarations.
+
+	* flags.h (flag_inhibit_size_directive): Declared.
+
+	* svr4.h (INT_ASM_OP, INIT_SECTION_ASM_OP):  Moved around.
+	(ASCII_DATA_ASM_OP):  Definition added.
+	(flag_inhibit_size_directive):  Deleted superfluous extern decls.
+
+	* Makefile.in:  Correct number of expected shift/reduce conflicts
+	reported by bison for cp-parse.y.
+
+	* sparcv4.h:  New file.
+
+	* i860.h (FUNCTION_ARG_BOUNDARY):  Added definition.
+	(sfmode_constant_to_ulong):  Added extern declaration.
+
+	* i860.md (BTE/BTNE patterns):  Changed all instances of
+	`(match_operand:SI 2 "zero_operand" "J")' to `(const_int 0)'.
+
+	* i860.md (load then BTE/BTNE patterns):  Added 8 new patterns,
+	for cond branch on EQ/NE of a zero-extended memref with small integer.
+
+	* i860.md: 20 new patterns (involving BTE/BTNE) like existing 20
+	but simplified so that the combiner will find them.
+
+	* i860.md (sfmode_constant_to_ulong, fconst2_rtx):  Removed
+	superfluous nested extern declarations.
+
+Wed Dec 18 15:39:46 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* va-i860.h (va_start for stdarg.h): Divide reg counts by 4.
+
+	* stmt.c (emit_case_nodes): Fix typo, near testing cost_table.
+
+	* i860.h (CUMULATIVE_ARGS): Define a named struct, then use it.
+
+	* function.c (expand_function_start): Compute sizes in proper order.
+
+	* svr4.h (MD_STARTFILE_PREFIX): Defined.
+	(STANDARD_STARTFILE_PREFIX): Deleted.
+
+	* sparc.md (movstrsi): Disable if needs more than 32 insns.
+
+	* expr.c (store_expr): Handle copying too-short STRING_CST.
+
+	* gstdarg.h (_VA_LIST): Handle this like _VA_LIST_.
+
+	* m68k.h (LOCAL_LABEL_PREFIX): Remove the `L'.
+	Fix uses of %L by adding `L'.
+	* m68k.c (print_operand_address): Fix use of %L.
+	* m68k.md (movhi): Fix use of %L.  They were inconsistent.
+
+Wed Dec 18 14:59:26 1991  Michael Meissner  (meissner at osf.org)
+
+	* limits.h (whole file): Protect against inclusion.
+
+	* t-decrose (LIMITS_H): Don't install limits.h on OSF/1.
+	* t-encrose (LIMITS_H): Don't install limits.h on OSF/1.
+	* t-i386rose (LIMITS_H): Don't install limits.h on OSF/1.
+
+	* x-decrose (SYSTEM_INCLUDES): Don't do -I/usr/include.
+	* x-encrose (SYSTEM_INCLUDES): Don't do -I/usr/include.
+	* x-i386rose (SYSTEM_INCLUDES): Don't do -I/usr/include.
+
+Wed Dec 18 04:53:23 1991  Ken Raeburn  (Raeburn@Cygnus.COM)
+
+	* cp-init.c (build_new): Rewrote some of the array-handling code.
+	Now stores the number of elements (after stripping off all outer
+	ARRAY_TYPE nodes) at the start of allocated storage, just before the
+	pointer the user's program sees.  We also store the 2s compliment
+	value of the pointer returned so we can distinguish when deleting a
+	pointer whether it was "adjusted" or not.
+	(expand_vec_init): Added a type conversion for cases when the
+	address of an array gets passed in and we want to deal with the
+	elements.
+	(build_delete): Catch a case where deletion of arrays could slip
+	through.
+	(build_vec_delete): More array-handling rewrites.  Extract the
+	stored value and use it as the number of objects to destroy; ignore
+	any value supplied by the user.
+
+	* cp-init.c (init_vfields): Now static.
+
+	* cp-tree.h (struct lang_decl_flags): Merged "dummy" fields.
+
+	* cp-tree.h (DECL_TEMPLATE_INSTANTIATIONS): New macro for finding a
+	list of instantiations already made of a template.  (Only
+	implemented for functions currently.)
+	* cp-tree.def (DECL_TEMPLATE_INSTANTIATIONS): Describe it.
+	* cp-pt.c (instantiate_template): Maintain and make use of it.
+
+	* cp-pt.c (tsubst, case REFERENCE_TYPE): Call build_reference_type
+	instead of constructing the type here.
+
+Wed Dec 18 03:37:46 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-parse.y (label_decl): Use identifiers_or_typenames.
+
+	* c-parse.y: Support FUNCTION ([ARGNAMES] DECLS) {...}.
+	(defn_parmlist_2, defn_parms): New nonterminals.
+	(identifiers_or_typenames): New nonterminal.
+	(parmlist_or_identifiers_1): Changed.
+	* c-decl.c (combine_parm_decls): New function.
+
+Tue Dec 17 22:18:43 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* function.c (expand_main_function): Build SYMBOL_REF with Pmode,
+	not VOIDmode.
+
+	* rs6000.h (HARD_REGNO_NREGS, CLASS_MAX_NREGS): FP regs can only hold
+	64 bits, not any size FP value.
+
+	* reload1.c (reload): Remove variable old_caller_save_needed.
+	Call init_save_areas and setup_save_areas instead of
+	allocate_save_areas and elim_save_addrs.
+	* caller-save.c (init_caller_save): New function, from part of
+	allocate_save_areas.
+	(setup_save_areas): New function, from rest of allocate_save_areas
+	and elim_save_addrs.
+	When scanning pseudos to find hard regs that might need caller-save,
+	look at all parts of multi-word registers.
+
+	* flow.c (elim_reg_set): New variable.
+	(flow_analysis): Set it to contain those regs that we can eliminate.
+	(mark_used_regs): Don't set eliminable regs as live when they are used.
+
+	* global-alloc.c (global_alloc): Clear preferences with eliminable
+	regs, in addition to clearing conflicts.
+
+	* reload.c (find_reloads_toplev): Abort instead of making
+	a SUBREG of a VOIDmode constant.
+
+	* emit-rtl.c (copy_rtx_if_shared): SCRATCH may always be shared.
+
+Tue Dec 17 21:06:03 1991  Michael Meissner  (meissner at osf.org)
+
+	* mips.h (MIPS_VERSION): Bump MM version number to 5.
+	(processor_type): New enum to hold which type of
+	processor to schedule for.
+	(mips_cpu): New global to hold processor type.
+	(MASK_*, TARGET_*): Rearrange target bits, add bits to select
+	processor type, r4000 int/long/long long sizes.
+	(TARGET_SWITCHES): Delete redunant no options, only leave no-
+	version.
+	(CUMULATIVE_ARGS): Make this a structure, not a pointer to a
+	structure.
+	(INIT_CUMULATIVE_ARGS): CUMULATIVE_ARGS changes.
+	(FUNCTION_ARG_ADVANCE): Ditto.
+	(FUNCTION_ARG): Ditto.
+	(FUNCTION_ARG_PARTIAL_NREGS): Ditto.
+	(RTX_COSTS): Count simple memory refs as one instruction.
+	(REGISTER_MOVE_COST): Define as 4, to make sure constraints are
+	checked.
+
+	* mips.md (hilo type attribute): Add hilo type attribute to
+	separate moves to/from the hi/lo registers with other register
+	transfers.
+	(move patterns): Set hilo attribute as appropriate.
+	(define_function_units): Update the integer and memory functional
+	units to include R4000 and R6000 processors, keyed off of the
+	-mr[46]000 switches.  Add a new functional unit for transfering
+	stuff between register sets.
+	(mov{sf,df}_xfer*): Remove these patterns, as they are no longer
+	needed in GCC 2.00 to move between the different register sets,
+	and generate insn not found messages if used.
+	(movsi_ulw, movsi_usw): Correct test to see if stack loads are
+	aligned.  Use UNITS_PER_WORD-1 instead of a hard coded 3.
+	(move define_expands): Delete move define_expands, since they are
+	illegal according to the documentation, and the bug they guard
+	against has long ago been fixed.
+
+	* mips.c (mips_cpu): New global to hold processor type.
+	(override_options): Set mips_cpu, check for 64 bit r4000 switches
+	if processor not a r4000.
+	(init_cumulative_args): CUMULATIVE_ARGS changes.
+	(function_arg_advance): Ditto.
+	(function_arg): Ditto.
+	(function_arg_partial_nregs): Ditto.
+	(mips_output_filename): Except for first .file, don't emit any other
+	.file if encapsulating stabs in ECOFF, just put out stabs.  This
+	confuses gdb.
+	(mips_output_lineno): Don't put out .loc's if encapulating stabs in
+	ECOFF.
+	(mips_asm_file_start): Put a .set nobopt for MIPS assembler to
+	work around bug where the assembler goes bonkers if a branch
+	inside of a .set noreorder section jumps to a label outside of a
+	.set noreorder section.  This is supposed to be fixed in 2.20 of
+	the assembler.
+	(function_epilogue): Correctly emit nops with tabs and newlines if
+	needed.
+
+	* decrose.h (OBJECT_FORMAT_ROSE): Define, to tell collect to
+	enable OSF/rose support, rather than use nm.
+
+	* encrose.h (OBJECT_FORMAT_ROSE): Define, to tell collect to
+	enable OSF/rose support, rather than use nm.
+
+	* i386rose.h (OBJECT_FORMAT_ROSE): Define, to tell collect to
+	enable OSF/rose support, rather than use nm.
+
+	* t-decrose (EXTRA_PASSES): Build collect2 instead of collect-osf,
+	and link it to ld.
+
+	* t-encrose (EXTRA_PASSES): Build collect2 instead of collect-osf,
+	and link it to ld.
+
+	* t-i386rose (EXTRA_PASSES): Build collect2 instead of collect-osf,
+	and link it to ld.
+
+	* x-decrose (DEBUG): Delete -g, since CFLAGS already passes it.
+	(GCC_CFLAGS): Define POSIX so we can build protoize.
+
+	* x-encrose (DEBUG): Delete -g, since CFLAGS already passes it.
+	(GCC_CFLAGS): Define POSIX so we can build protoize.
+
+	* x-i386rose (DEBUG): Delete -g, since CFLAGS already passes it.
+	(GCC_CFLAGS): Define POSIX so we can build protoize.
+
+	* t-decstatn (EXTRA_PASSES): Explicitly mention collect2.
+	(ld): Use $(SYMLINK) rather than just ln.
+
+	* t-mips (EXTRA_PASSES): Explicitly mention collect2.
+
+	* collect2.c (whole file): Rewrite file based on collect-osf, to
+	make it more portable.  Highlights include: running ld only once if
+	there are no constructors; OSF/rose support; not assuming that the
+	linker, assembler, nm live in /bin; -v support to trace the commands
+	being executed and print a version number; loops instead of
+	recursion used to write out the tables; support for user using -r;
+	checking all error returns; not using the shell to start processes.
+
+	* collect-osf.c (whole file): Deleted, merged into collect2.c.
+
+Tue Dec 17 15:49:06 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* sched.c (schedule_insns): Don't update value of reg_live_length
+	when it is negative, because negative values are special.
+
+	* sched.c (schedule_block): Make new_needs an int not an enum, since
+	some compilers won't accept using `|' and `&' with enums.
+
+	* sparc.md: Don't emit nop after floating point compare; this is
+	no longer needed.
+
+	From Tom Wood:
+	* sched.c (memrefs_conflict_p): Exchange xsize and ysize when x
+	and y are exchanged.
+
+Tue Dec 17 15:01:04 1991  Mark Eichin  (eichin at cygnus.com)
+
+	* cp-decl.c (set_nested_typename): use SET_IDENTIFIER_TYPE_VALUE,
+	not set_identifier_type_value, so that the binding doesn't get
+	unwound by leaving class scope.
+
+Tue Dec 17 10:57:12 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* toplev.c (main): Make -g0 produce no debugging information.
+
+Tue Dec 17 15:15:20 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gcc.c (do_spec_1): In %P, duplicate the names with __ just in front.
+
+	* gstab.h: Renamed from stab.h.
+	* collect2.c, dbxout.c, final.c, mips-tfile.c: #include changed.
+	* dbxout.c (N_CATCH): Define this if stab.h does not.
+	* Makefile.in: Depend on gstab.h where appropriate.
+
+	* Makefile.in (STAGESTUFF): Remove collect and collect2.
+
+	* c-parse.y (parmlist_2): Allow just `...' with no named args.
+	* c-decl.c (get_parm_info): Pedantic warning for that usage.
+
+	* final.c (final_scan_insn): Don't output blocks for -g1.
+
+	* Makefile.in (crtbegin.o, crtend.o): Use -g0.
+
+	* function.c (expand_main_function): Do nothing if INIT_SECTION_ASM_OP.
+
+	* varasm.c (assemble_asm): Handle ADDR_EXPR of a STRING_CST.
+	* stmt.c (expand_asm): Likewise.
+	* c-parse.y (extdef, stmt): Accept STRING_CST or ADDR_EXPR in asm.
+
+Tue Dec 17 15:01:11 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.h (INIT_SECTION_ASM_OP): Override svr[34].h.
+	* m88kv4.h (INIT_SECTION_ASM_OP): Override svr4.h and m88k.h.
+	* m88kdgux.h ({INIT,CTORS,DTORS}_SECTION_ASM_OP): Override m88k.h
+	except when compiling crtstuff.c.
+
+Mon Dec 16 21:50:42 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* stmt.c (struct case_node): Remove unused field `test_label'.
+	(pushcase, pushcase_range): Don't initialize it.
+
+	* stmt.c (check_for_full_enumeration_handling): Only print warnings
+	if -Wswitch is specified.
+	(expand_end_case): Call check_for_full_enumeration_handling even if
+	-Wswitch is not specified.
+
+	* expr.c (convert_move): Add missing arg to call to force_reg.
+	(convert_to_mode): Likewise, for protect_from_queue.
+
+Mon Dec 16 20:33:10 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_builtin): Check number and types of args.
+
+	* c-parse.y (stmt, extdef): Allow constant expression inside plain asm.
+
+	* m68k.md (movhi): Use asm_fprintf to print .set or equivalent.
+	* m68k.c (print_operand_address): Use %R when printing pc register.
+	* m68k.h (ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL):
+	Use %L.
+
+	* c-typeck.c, cp-typeck.c (c_sizeof): Give error for incomplete type.
+
+Mon Dec 16 11:14:28 1991  Ken Raeburn  (Raeburn@Cygnus.COM)
+
+	* cp-decl.c (init_decl_processing): Don't declare unused function
+	__builtin_vec_delete.
+
+Mon Dec 16 08:35:04 1991  Torbjorn Granlund  (tege at hal.gnu.ai.mit.edu)
+
+	* gnulib2.c (__udivmoddi4): Add comment.
+
+Mon Dec 16 07:47:13 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-call.c (ideal_candidate): Always set BEST before using it.
+	Also, call `build_component_ref_1' with 3 args everywhere, and
+	`build_indirect_ref' with 2 args everywhere.
+
+Mon Dec 16 07:17:46 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.h: Add `extern' to function declarations.
+	(gen_input_reload): Add declaration.
+	* reload1.c (reload): Allocate save area if caller-saves are needed;
+	check for case when it becomes needed after some spill registers are
+	obtained.
+	Can now eliminate frame pointer even when caller-saves are needed.
+	Perform register elimination of save area and see if caller-save needs
+	a spill register.
+	If required, find a spill register and pass it to caller-save code.
+	(gen_input_reload): No longer static.
+	* Makefile.in (caller-save.o): Now includes reload.h (again).
+	* global-alloc.c (global_alloc): Can eliminate frame pointer even if
+	we have caller-saves.
+	* toplev.c (compile_file): Call init_caller_saves.
+	
+	* caller-save.c: Major rewrite; almost entirely new code.
+	Integrate caller-saving with frame pointer elimination.
+	Don't try to save and restore registers that cannot be directly
+	copied to memory (such as MQ).
+	Correctly place save and restore insns.
+	Don't restore a saved register until end of block or if it is needed.
+
+	* cse.c (mention_regs): Now returns int to indicate that the hash code
+	may have changed.
+	For COMPARE and comparison op, ensure that any register operand has
+	a quantity number.
+	(insert_regs): Return value from mention_regs.
+	(rehash_using_reg): New function.
+	(record_jump_equiv, mention_regs): Call rehash_using_reg if an operand
+	of a compare is a REG whose hash code is changing.
+
+Mon Dec 16 07:09:21 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* function.c (expand_main_function): New subroutine.  Call __main.
+	* c-decl.c, cp-decl.c (store_parm_decls): Use that.
+	* cp-decl.c (init_decl_processing): Don't declare __main.
+
+	* objc-actions.c (init_objc): Call __objcInit as a constructor.
+
+	* toplev.c (compile_file): Reenable SDB code #if 0'd before.
+
+	* protoize.c (version_string): Make it extern.
+	* Makefile.in (protoize, unprotoize): Link with version.o.
+
+Sun Dec 15 23:31:47 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-tree.c (virtual_member): When recurring, don't dive into
+	nonexistent baseclasses.
+
+	* cp-decl.c (grokdeclarator): Set TREE_STATIC for initialized const
+	arrays.
+	* cp-typeck.c (mark_addressable): A decl that was TREE_STATIC might
+	be chagned to TREE_EXTERNAL due to #pragma interface/implementation.
+
+Sun Dec 15 14:57:23 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (SYSCALLS.c.X): Fix typo.
+	(INTERNAL_CFLAGS): Delete -DMERGED.
+
+	* dbxout.c (dbxout_init): Pass proper args to ASM_OUTPUT_MAIN_*.
+	* newpbb.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Add proper arguments.
+
+	* stmt.c (emit_case_nodes): Rewrite to change induction conditions.
+	Handle boundedness in the bounded node itself.
+	Handle branching entirely at the parent level.
+
+	* gstdarg.h: Use va-i860.h.
+	* va-i860.h (va_start for ANSI): Fix typo.  Call __builtin_next_arg.
+
+Sat Dec 14 20:45:30 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (USER_H): va-hp9k8.h should be va-hp800.h.
+
+	* loop.c (invariant_p): Call-clobbered register is not invariant if
+	loop has calls.
+	(count_loop_regs_set): Count a CLOBBER as a setting of a register.
+
+	* stmt.c: Move include of ctype.h and definition of cost variables to
+	front of file.
+	(expand_end_case): Always set use_cost_table.  Check type here instead
+	of in estimate_case_costs.  Don't suppress use of cost table when
+	not optimizing.
+	(estimate_case_costs): Now returns int.  Check for any case tag
+	that is an unusual control character here and reject use of table
+	if so.  Always do comparisons signed, since that's how we access the
+	cost table.
+	(balance_case_nodes): Don't check for strange control characters here.
+	(node_has_low_bound): Do checking if we don't have a left branch,
+	instead of if we do.
+	(node_has_{low,high}_bound): Remove spurious checks on branches.
+	(emit_case_nodes): Ensure operation passed to emit_cmp_insn matches
+	the branch we actually emit.
+	Fix case of a range node with no left or right branch; use of case
+	and default label were backward for the high test.
+	Remove unused variables defaulted_{left,right}.
+
+Sat Dec 14 16:10:11 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* protoize.c: Don't include limits.h.
+	Rename `pathname' to `filename' everywhere.
+	Clean up indentation of fprintf calls.
+	Use standard GNU format for file name/line in error messages.
+	(n_base_source_files): Renamed from base_source_files.
+	(convert_filename, invocation_filename, base_source_filenames):
+	`path' renamed to `filename'.
+	(syscalls_absolute_filename): Renamed from syscalls_pathname.
+	(find_file): Arg FILENAME no longer const.
+	(main): Fix getcwd error-checking logic.
+	(varargs_style_indicator): Delete `const'.
+	(savestring): Declare arg `input' const.
+
+	* Makefile.in (protoize, protoize.o, unprotoize, unprotoize.o):
+	Use GCC_FOR_TARGET.
+	(getopt.o, getopt1.o): Likewise.
+	(GCC_FOR_TARGET): Delete -B./.
+	(GCC_CFLAGS): Add -B./.  Copy ALL_CFLAGS's definition, less XCFLAGS.
+
+	* cp-init.c (add_friends): Pass proper args to strncmp.
+
+	* toplev.c (compile_file): Clear DECL_RTL for vars not really output.
+	#if 0 possibly redundant code for SDB output.
+
+	* sys-types.h: Include gstddef.h to get size_t and wchar_t.
+
+	* ultrix.h (CPP_PREDEFINED): Add __unix, __ultrix, __bsd4_2.
+
+	* Makefile.in (STAGESTUFF): Add collect, collect2.
+
+Sat Dec 14 12:16:12 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-search.c (get_baselinks): Use obstacks right, instead of
+	aborting when we know we're using them wrong.
+
+	* cp-parse.y (structsp): Fix typo in exception declaration rule.
+
+	* cp-typeck.c (build_modify_expr_1): Recursive call to
+	`build_modify_expr_1' used pre-BINFO representation for
+	BASETYPE_PATH argument.
+
+	* cp-decl.c (start_decl): Don't switch to temporary allocation for
+	decls of type REFERENCE_TYPE, as their initializers may live a long
+	time, too.
+
+Sat Dec 14 07:11:03 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads_toplev): If we have a SUBREG of a multi-word
+	constant, try to extract just the word we want.
+
+	* global-alloc.c (global_alloc): Correct reference to ELIMINABLES.
+
+Fri Dec 13 15:28:38 1991  Michael Meissner  (meissner at osf.org)
+
+	* configure (mips-mips-sysv): On MIPS System V, use xm-umips.h, not
+	xm-mips.h.
+
+	* gstddef.h (__PTRDIFF_TYPE__): Provide default definition in case
+	non-GCC 2.00 compiler is used.
+	(__SIZE_TYPE__): Ditto.
+	(__WCHAR_TYPE__): Ditto.
+
+Fri Dec 13 14:49:54 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* config.sub: Renamed from config.subr.
+	Support os -sym1.
+	Convert -svr3, -svr4 to -sysv3, -sysv4.
+	* configure: Used new name.
+
+	* Makefile.in (includes): Preserve files from GCC already in dir.
+
+Fri Dec 13 11:01:12 1991  Fred Fish  (fnf at fishpond)
+
+	* att386.h:  Fix unparenthesized macro arguments in
+	ASM_OUTPUT_ASCII macro.
+
+	* i386v4.h:  Select an assembly language syntax file and include
+	it.  Supply missing macros from ones in i386v.h (TARGET_DEFAULT,
+	VALUE_REGNO, FUNCTION_VALUE_REGNO_P).
+
+	* svr4.h:  Fix misspelled variable name labelno (was labeno).
+
+Fri Dec 13 09:07:22 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-typeck.c (build_component_ref): Call `assemble_external' as
+	nec.
+	(build_function_call_real): Call `assemble_external' as nec. for
+	function calls we build.  Code slightly rearranged for clarity.
+	* cp-call.c (build_method_call): Call `assemble_external' as nec.
+
+Thu Dec 12 22:03:52 1991  Eric Youngdale (youngdale at v6550c.nrl.navy.mil)
+
+	* make-cc1.com: Change message given to user. Change c-parse_tab.*
+	  to c-parse.*
+
+	* config-gcc.com: Purge excess versions of version.opt.
+
+Thu Dec 12 20:25:20 1991  Michael Meissner  (meissner at osf.org)
+
+	* Makefile.in (BOOT_CFLAGS): Remove quotes around the argument,
+	since this causes a syntax error when it is later expanded.
+
+Thu Dec 12 17:53:55 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* config.subr: Add many new machines and some OS's.
+
+	* va-i860.h: Rewrite from rfg.
+
+	* toplev.c (main): Handle -dm on USG systems.
+
+	* m68k.c (print_operand, print_operand_address): New functions.
+	* m68k.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Just call them.
+
+	* m68k.c (S_*, D_*): Delete the #undefs at the end.
+
+	* stmt.c (expand_return): Special case if fcn returns void.
+
+	* objc-actions.c (build_objc_method_call): Fix typo in NeXT case.
+
+	* expr.c (expand_builtin, BUILT_IN_ARGS_INFO): Cast init of word_ptr.
+
+	* protoize.c: Delete the `extern "C"' for C++ compilation.
+
+Thu Dec 12 10:01:13 1991  Michael Meissner  (meissner at osf.org)
+
+	* gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Fix off by one error in
+	handling the constructor list when a valid count is supplied.
+
+	* collect2.c (write_hooks): Emit a count before the list of
+	constructors, to go back to the old format.
+
+	* collect-osf.c (write_s_file): Emit a count before the list of
+	constructors, to go back to the old format.
+
+	* gnulib2.c (exit): Provide default defintions as bss symbols for
+	all of the constructor/destructor related symbols if the macro
+	INIT_SECTION_ASM_OP is not defined.  The second link that collect
+	does and/or gld will provide the right values.
+
+	* decrose.h (HAVE_ATEXIT): Nuke macro, no longer used.
+	* encrose.h (HAVE_ATEXIT): Nuke macro, no longer used.
+	* i386rose.h (HAVE_ATEXIT): Nuke macro, no longer used.
+
+Thu Dec 12 07:27:05 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* gbl-ctors.h (__CTOR_LIST__, __DTOR_LIST__): Renamed from *_BEGIN__.
+	* collect-osf.c collect2.c: Rename here as well.
+
+Thu Dec 12 04:15:22 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-parse.y (stmt): Make asm alternatives allow expr.
+	* c-typeck.c (c_expand_asm_operands): Get the STRING_CST from the expr.
+
+	* c-parse.y (datadecl, datadecls, lineno_datadecl): New rules.
+	(xdecls): Use them.
+
+Wed Dec 11 18:36:53 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Just one definition; use ON_EXIT.
+	Test for -1 and handle both kinds of table format.
+	* gnulib2.c (__do_global_dtors): Check for -1...
+	(__do_global_ctors): Dummy defn of ON_EXIT if no other defined.
+	(__main): Do nothing if called again.
+	(exit): Use EXIT_BODY if defined.
+	* crtstuff.c (__CTOR_LIST__, __DTOR_LIST__):
+	Renamed from *_BEGIN__.  Add -1 as first elt.
+	(__CTOR_END__, __DTOR_END__): Add 0 as last elt.
+	(ON_EXIT): Dummy defn if no other is defined.
+
+Wed Dec 11 18:08:36 1991  Mark Eichin  (eichin at cygnus.com)
+
+	* cp-parse.y (template_parm): removed some reduce/reduce conflicts
+	by noting which of identifier or identifier_defn would actually be
+	passed up in this context.
+
+Wed Dec 11 17:52:46 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* flow.c (propagate_block): Adjust loop depth if it is changed in
+	notes at the end of a block.
+	Abort if loop depth ever reaches zero.
+
+Wed Dec 11 16:30:09 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cccp.c (do_endif): Don't call record_control_macro at top level.
+
+Wed Dec 11 14:45:42 1991  Mark Eichin  (eichin at cygnus.com)
+
+	* cp-decl.c (set_identifier_type_value): If we're in a
+	class_binding_level, shadow the type there.
+	(xref_defn_tag): New function. Calls xref_tag with special flag set
+	to indicate that we know we're defining something.
+	(pushdecl_top_level): if class_binding_level is set, search from it
+	instead of only from current_binding_level when trying to find
+	shadowed values. This is in support of tests m5.cc through m8.cc,
+	which broke after the changes for m9.cc were installed.
+
+	* cp-spew.c (do_aggr): New function. Looks ahead from AGGR to see if
+	we have AGGR identifier { or AGGR identifier : which are both
+	definitions, and passes up identifier_DEFN instead. This is in
+	support of test m9.cc.
+	(yylex): add SPEW_DEBUG case after EMPTY, so we don't have gaps in
+	the displayed stream.
+	(yylex, case AGGR): added call to do_aggr.
+	(debug_yychar): added call to debug_yytranslate for proper
+	translations.
+
+	* cp-parse.y (debug_yytranslate): New function to support SPEW_DEBUG
+	translations. 
+	(TYPENAME_DEFN): new token, TYPENAME seen by do_aggr.
+	(IDENTIFIER_DEFN): new token, ditto.
+	(PTYPENAME_DEFN): new token, ditto.
+	(identifier_defn): corresponds to identifier, but when the
+	identifier has been seen by do_aggr.
+	(named_class_head_sans_basetype_defn): specially recognize aggr
+	identifier_defn.
+	(named_class_head): add parallel clauses calling xref_tag_defn when
+	we know we're defining this aggr.
+	(named_class_head_sans_basetype_defn_either): for when we don't care
+	if it is a defn or not (such as templates)
+	(identifier_either): ditto.
+
+	* cp-tree.h (xref_defn_tag): New declaration.
+
+Wed Dec 11 12:37:51 1991  Ken Raeburn  (Raeburn@Cygnus.COM)
+
+	* cp-parse.y (label_colon): New nonterminal, with all label prefixes
+	from "stmt" moved here.
+	(stmt): Use it.  Also provide useful message for label followed by
+	end of block (close-brace).
+
+	* cp-init.c (BIVN): Deleted unused variable.
+	* cp-decl.c (init_decl_processing): Don't declare function
+	__builtin_vec_new; it's never used.
+
+Wed Dec 11 10:59:48 1991  Michael Meissner  (meissner at osf.org)
+
+	* toplev.c (main): Complete last change from RMS, use variable
+	'level' which used to be named 'arg'.
+
+	* gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Don't reference ON_EXIT for
+	those poor systems without atexit or on_exit.
+
+Wed Dec 11 09:06:52 1991  Jeffrey A. Law  (law at wombat.gnu.ai.mit.edu)
+
+	* m68k.c (output_function_prologue, output_function_epilogue):
+	When saving/restoring only 2 registers, do so with two "movel"
+	instructions instead of a single "moveml".  This results in
+	faster code for the 68020 and later machines.
+
+Wed Dec 11 06:45:08 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* x-romp (MAKE): Add definition; the supplied `make' doesn't define it.
+
+Tue Dec 10 22:17:50 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): Always make a copy of I2's pattern if
+	it will be used in a PARALLEL (`added_sets_2' nonzero).
+
+	* Makefile.in (BOOT_CFLAGS): New parameter.
+	(bootstrap*): Use it.
+
+	* flow.c (find_basic_blocks): Set depth of last insn, not first,
+	into basic_block_loop_depth.
+	(propagate_blocks): Use consistently with new definition.
+
+	* cse.c (cse_end_of_basic_block, cse_basic_block): Remove previous
+	change; it can cause loops following around branches.
+
+	* Makefile.in (USER_H): Add va-hp9k8.h.
+
+Tue Dec 10 17:22:01 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k*.h: Include svr3.h as the default.  m88kv4.h and m88kdgux.h
+	include svr4.h.  Override svr[34].h as needed.
+	* t-m88k, t-m88kv4: Specify EXTRA_PARTS.
+
+	* m88k.c (uses_arg_area_p): Check current_function_varargs.
+
+Tue Dec 10 15:41:03 1991  Michael Meissner  (meissner at osf.org)
+
+	* osf-main.c (whole file): Delete, since the constructor stuff was
+	moved to gnulib2.c.
+
+	* Makefile.in (collect2, collect2.o): Change to use the default
+	compiler to build collect2, instead of the newly built GCC, since
+	otherwise, collect2 will create a circular dependency.  Also, pass
+	LDFLAGS when linking.
+
+	* collect-osf.c (write_s_file): Change to the new way of doing
+	constructors and destructors of having an end marker instead of a
+	count.
+
+	* collect.c (REAL_AS_PATH, REAL_LD_PATH, REAL_NM_PATH): New macros
+	to allow cross compilers to specify where the real linker,
+	assembler, and nm live.
+	(NM_FLAGS): New macro to allow a configuration to change what flags
+	get passed to nm.
+	(alloca defines): Remove alloca defines, since config.h provides
+	them.
+	(write_hooks): Change to the new way of doing constructors and
+	destructors of having an end marker instead of a count.  Cast all
+	alloca calls to be the appropriate pointer type.  Put both
+	constructors and destructors into the data section, because the MIPS
+	tools do not like non-instructions in the .text section.
+
+	* decrose.h (HAVE_ATEXIT): Define, OSF/1 has atexit.
+	(FULL_PROTOTYPES, NO_CONST_IN_SYSCALL): Remove, no longer used.
+
+	* encrose.h (HAVE_ATEXIT): Define, OSF/1 has atexit.
+	(FULL_PROTOTYPES): Remove, no longer used.
+
+	* i386rose.h (HAVE_ATEXIT): Define, OSF/1 has atexit.
+
+	* t-decrose (LIB2FUNCS_EXTRA): Remove, osf-main.c is no longer
+	needed, since constructor/destructor support moved into gnulib2.c.
+
+	* t-encrose (LIB2FUNCS_EXTRA): Remove, osf-main.c is no longer
+	needed, since constructor/destructor support moved into gnulib2.c.
+
+	* t-i386rose (LIB2FUNCS_EXTRA): Remove, osf-main.c is no longer
+	needed, since constructor/destructor support moved into gnulib2.c.
+
+	* t-decstatn (CCLIBFLAGS, GNULIB2_CFLAGS): Define so that gnulib1
+	and gnulib2 are both compiled with -G 0, in case the users compiles
+	and links this way.  It also fixes a bug where the constructors and
+	destructors that collect2 produces are in the big data section, but
+	gnulib2 thinks they are in the small data section, because it only
+	sees a pointer.
+	(ld): Add -f to remove old ld link to collect2, if it exists.
+
+	* t-mips (CCLIBFLAGS, GNULIB2_CFLAGS): Define so that gnulib1
+	and gnulib2 are both compiled with -G 0, in case the users compiles
+	and links this way.  It also fixes a bug where the constructors and
+	destructors that collect2 produces are in the big data section, but
+	gnulib2 thinks they are in the small data section, because it only
+	sees a pointer.
+	(ld): Add rule to link collect2 to ld.
+	(EXTRA_PASSES): Build collect2 (aka ld).
+
+	* xm-mips.h (alloca): If not GNU C, declare alloca to be char *.
+
+	* mips-tfile.c (add_aux_sym_tir): Move code to record bitfield size,
+	so that it agrees with MIPS ECOFF practice, rather than the
+	documentation, which affects enum bitfields.  Changes from Per
+	Bothner.
+
+Tue Dec 10 14:10:10 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Get rid of __reverse_order, etc.
+	* gnulib2.c (__do_global_dtors): Remove & before arrays.
+
+	* configure: Set a default value for xm_file.
+	Remove redundant defaulting of cpu_type.
+
+	* svr4.h (ASM_DECLARE_FUNCTION_SIZE): Output internal label properly.
+
+	* function.c (assign_parms): Set current_function_args_info.
+	* output.h: Declare that var.
+	* tree.h (BUILTIN_ARGS_INFO): Renamed from BUILT_IN_VARARGS.
+	* expr.c (expand_builtin): Implement __builtin_args_info.
+	* c-decl.c (init_decl_processing): Declare it.
+	* va-i860.h: Use it.
+	Also update order of elements in struct __va_ctl.
+
+	* toplev.c (main): Eliminate -gsdb and -gdbx.
+	Clean up setting of use_gdb_dbx_extensions.
+
+Tue Dec 10 10:33:58 1991  Tom Wood  (wood at gen-rtx)
+
+	* svr4.h (ASM_DECLARE_FUNCTION_SIZE): Use an internal label.
+
+Tue Dec 10 07:12:28 1991  James Van Artsdalen  (james@raid)
+
+	* Makefile.in (crtbegin.o, crtend.o): crstuff.c is in $(srcdir).
+
+Tue Dec 10 06:56:26 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (kept_level_p): New function, borrowed from c-decl.c.
+	* cp-parse.y (compstmt): Call it.
+
+Mon Dec  9 18:37:32 1991  Ken Raeburn  (Raeburn@Cygnus.COM)
+
+	* cp-decl.c (grok_enum_decls): Don't give warning for class-local
+	enum types; this is a perfectly reasonable usage.
+
+Mon Dec  9 12:23:48 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* toplev.c (main):  Check that no extra chars follow the level #
+	in a -gNNN option.  Also check that the debugging level requested
+	is between 0 and 3 (inclusive).
+
+Mon Dec  9 20:34:48 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* sched.c (schedule_block): Don't crash if `line' is zero.
+	(schedule_insns): Initialize line_note_head.
+
+Mon Dec  9 15:31:46 1991  Michael Meissner  (meissner at osf.org)
+
+	* mips-tfile.c (pseudo_ops array): Correctly size the .stabs and
+	.stabn elements.
+
+	* mips.c (function_prologue, function_epilogue): Use assemble_name
+	to print the current function, instead of fprintf, in case there is
+	a  leading '*'.
+
+	* mips-news.h (CPP_PREDEFINES): Define news3700, not news7300.
+
+	* mips.md (ashldi3_internal3): Fix typos.
+	(ashrdi3_internal3): Ditto.
+	(lshldi3_internal3): Ditto.
+
+Mon Dec  9 11:49:52 1991  Torbjorn Granlund  (tege at hal.gnu.ai.mit.edu)
+
+	* longlong.h (__a29k__ udiv_qrnnd): Change "q" to "1" for operand
+	2 constraint.
+
+Mon Dec  9 11:22:58 1991  Ken Raeburn  (Raeburn@Cygnus.COM)
+
+	* cp-typeck.c (build_x_function_call): A method might have type
+	pointer-to-method as well.  Don't build an OFFSET_REF for any
+	"function" that already has pointer type.  Only use
+	DECL_CLASS_CONTEXT to find type of `this' for FUNCTION_DECLs; for
+	method pointer expressions, look up the basetype of the method type.
+	(build_unary_op): Fix comment in typo.
+
+	* cp-tree.c: Fix typo in comment at start of file.
+
+Mon Dec  9 07:17:13 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): When a jump is converted to unconditional, 
+	delete the dead code, but leave the notes.
+	(cse_basic_block, cse_end_of_basic_block): Some unconditional jumps are
+	part of the basic block.
+	(cse_basic_block): Add missing arg to cse_end_of_basic_block call.
+	
+Mon Dec  9 07:16:15 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* sys-types.h:  New file.
+	* sys-protos.h:  New file.
+	* SYSCALLS.c: Just include those files.
+
+	* protoize.c (VOLATILE):  Define this symbol conditionally so that
+	it can be used to declare GNU `volatile' functions.
+	(abort):  Added VOLATILE extern declaration (but not if it's a macro).
+	(kill, fork):  Added extern declaration.
+	(substr): Declare c as int.
+
+	* gbl-ctors.h: New file.
+	* crtstuff.c: Include gbl-ctors.h.
+	(INIT_SECTION_ASM_OP):  Delete default definition.
+	Only compile .init section code if INIT_SECTION_ASM_OP is defined.
+	(pointer):  Globally changed to `func_ptr'.
+	* Makefile.in (crtbegin.o, crtend.o, gnulib2): Depend on gbl-ctors.h.
+	* gnulib2.c:  Added definition of __builtin_saveregs for i860/svr4
+	and fixed up definition of __builtin_saveregs for i860/non-svr4.
+	(__bb_avoid_warning):  Added explicit return type.
+	(__builtin_new, __builtin_vec_new, __builtin_delete,
+	__builtin_vec_delete): Use `void*' where appropriate.
+	(exit): Change conditional to ON_EXIT.  Make dummy if no real exit.
+	Include gbl-ctors.h.
+	(__main): Change conditional to INIT_SECTION_ASM_OP.
+	(__do_global_ctors): Conditional on INIT_SECTION_ASM_OP.
+	Use DO_GLOBAL_CTORS_BODY for the guts.
+	Include gbl-ctors.h.
+
+Mon Dec  9 01:07:56 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* fixinc.svr4: Don't change #ident or assertion tests.
+	Don't install inline.h.
+
+	* c-common.c (get_directive_line): Declare c as int.
+
+	* configure: Create additional file tconfig.h.
+	* protoize.c: Include that, not tm.h.
+	* Makefile.in (protoize.o, unprotoize.o): Depend on tconfig.h.
+
+	* svr4.h (HAVE_ATEXIT): Defined.
+	* gnulib2.c (_main, exit): Use HAVE_ATEXIT to control use of atexit.
+
+	* final.c (final_scan_insn): Output first and last note in a series.
+
+	* objc-actions.c (build_objc_method_call):
+	New arg LOOKUP_OBJECT.
+	(build_message_expr): Pass RECEIVER for LOOKUP_OBJECT.
+	Pass RECEIVER or self_decl as OBJECT.
+
+	* unx386.h (PRINT_IMMED_PREFIX, PRINT_OFFSET_PREFIX): Deleted.
+
+	* rtl.h: Undef FLOAT.
+
+	* svr4.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_SIZE):
+	Fix typo.
+
+Sun Dec  8 21:46:51 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* protoize.c (main): Declare `value'.
+	(abspath): Declare endp.  Declare and set outp and inp.
+
+	* cp-decl.c (sigsegv): Function deleted.
+	(init_decl_processing): Don't use it.
+	Also don't include signal.h.
+
+	* t-svr4: New file.
+	* configure (i386-*-sysv4*, i860-*-sysv4*): Use that file.
+
+Sun Dec  8 12:01:36 1991  Ron Guilmette (rfg at ncd.com)
+
+	* fixinc.svr4: New file.
+
+	* final.c (profile_function): Specify return type.
+	(get_attr_length):  Added a return statement to prevent warnings.
+
+	* final.c (final_scan_insn):  Switch to .text section before output
+	of jumptable lable (if requested by JUMP_TABLES_IN_TEXT_SECTION).
+	Don't switch sections again after the label.
+
+	* configure (i386-*-sysv*):  Configuration deleted.
+	(i386-*-sysv3, i386-*-sysv4, i860-*-sysv3, i860-*-sysv4):
+	Added assignment to `tmake_file' (to pick up def of EXTRA_PARTS).
+	(i860-*-sysv3, i860-*-sysv4):  Added assignment to `xmake-file'.
+	(i860-*-sysv3):  Deleted bogus GAS related stuff.
+
+	* combine.c (combinable_i3pat):  Added explicit return type.
+
+	* i860.h (TARGET_FPU):  Deleted this target flag.  i860 fpu is on chip.
+	(TARGET_XP):  New target flag for XR and XP models.
+	(TARGET_FLAGS, HARD_REGNO_MODE_OK):  Adjusted for above changes.
+	(REG_ALLOC_ORDER): Use first the regs less likely for other purposes.
+	(LITERAL_COMPARE_BETTER_UNSIGNED):  Defined.
+	(BRANCH_COST): Defined.
+	(CC_ONLY_*):  Deleted these obsolete defines.
+	(CC_NEGATED):  Added for IEEE behavior with cmpgesf and cmplesf.
+	(ASM_OUTPUT_CASE_LABEL):
+	Added .align so assembler doesn't barf on subsequent .long(s).
+	(FLOAT_TYPE_VALUE, INTIFY, FLOATIFY, FLOAT_ARG_TYPE):
+	Added definitions needed to build a useable gnulib1 library.
+
+	* i860.md:  Removed all references to CC_ONLY_* symbols.
+	(cmpledf, cmpgedf):  Adjusted assembler code  as suggested
+	by i860 manuals, for IEEE results.
+	(cbranch, flipped_cbranch, inverse_cbranch, flipped_inverse_cbranch):
+	Check for CC_NEGATED.
+	(bte, btne patterns): Complete rewrite.
+	(anonymous sign-extend patterns): Moved before the named patterns.
+
+	* i860.md (addsi3, subsi3):  Disparaged alternatives with a floating-
+	pointer input register to avoid complicated reloading problem.
+	(negsi2):  Deleted bogus `I' constraint on operand 1.
+	(divdf3, divsf3):  Added additional continuation characters
+	needed to make lines acceptable to `read_rtx' in the gen* programs.
+
+	* i860.c:  Include "flags.h" to get access to `optimize' flag.
+	(leaf_function_p):  Added extern declaration.
+	(zero_operand): New function.
+	(must_preserve_r1, must_preserve_bytes): New variables.
+	(function_prologue, function_epilogue): 
+	Support treatment of return-address reg (r1) in leaf functions.
+
+	* i860v4.h (CPP_PREDEFINES):  Add pre-assertions for i860/svr4.
+	(CPP_SPEC):  Deleted definition.
+	(TYPE_OPERAND_FMT):  New definition.
+	(ASM_OUTPUT_FUNCTION_PREFIX):  #undef before defining.
+	(ASM_OUTPUT_EPILOGUE_SUFFIX):  Deleted obsolete macro.
+	(CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
+	TDESC_SECTION_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
+	TDESC_SECTION_FUNCTION):  Definitions added.
+
+	* i860v3.h: Complete rewrite.  Uses svr3.h.
+
+	* i386v4.h:  Don't include i386v.h.  Include i386.h instead.
+	(SDB_DEBUGGING_INFO):  #undef deleted.
+	(ASM_OUTPUT_DWARF_STRING):  Added definition.
+
+	* gcc.c (default_compilers):  Pass -g* options to cpp.
+
+	* gcc.c (do_spec_1):  Don't duplicate -A options in CPP_PREDEFINES.
+
+	* gnulib2.c (exit, __main, __do_global_dtors, __do_global_ctors):
+	New functions.
+
+	* i386.h (PRINT_IMMED_PREFIX, PRINT_OFFSET_PREFIX):
+	Define here, and use IP.
+
+	* i386.h: Don't include syms.h or define FILNMLEN.
+
+	* x-i860v3, x-i860v4: New files.
+	* x-i386v4 (CCLIBFLAGS, GCC_CFLAGS):  Added definitions.
+
+	* xm-svr3.h:  New file.
+	* xm-i86v3.h, xm-i86v4.h, xm-i386v.h: Rewritten.
+	* xm-i38v4.h: New file.
+
+	* svr4.h (LIB_SPEC):  Make crtend.o come before any *crtn.o
+	file (to avoid hitting return without standard epilogue in .init code).
+	(INIT_SECTION_ASM_OP):  Added definition for crtstuff.c (and friends).
+	(CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION):
+	Adjusted indentation of continuations to match those in rest of file.
+
+	* svr3.h (CPP_PREDEFINES):  Don't define this here.
+	(ASM_FILE_START_1):  Provide no-op default definition.
+	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):  Undef these before defining.
+	(INT_ASM_OP, USE_CONST_SECTION, INIT_SECTION_ASM_OP,
+	CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
+	EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, READONLY_DATA_SECTION,
+	CONST_SECTION_FUNCTION, CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION,
+	ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR, SELECT_SECTION,
+	SELECT_RTX_SECTION):  Definitions added.
+
+Sun Dec  8 15:27:56 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+   	* next.c (handle_pragma): Use get_directive_line.
+
+	* gnulib2.c (__do_global_dtors, __do_global_ctors):
+	Remove the feature to control the order of execution.
+	This is not a clean solution to the overall problem.
+
+Sun Dec  8 14:47:44 1991  Michael Meissner  (meissner at osf.org)
+
+	* mips-tfile.c (toplevel, add_local_symbol, parse_stabs_common):
+	More changes for smuggling stabs through from meissner@osf.org and
+	bothner@cygnus.com.
+
+	* mips.h (ignore_line_number): New global, set when we must avoid
+	putting out a MIPS ECOFF .loc because the file changed inside of a
+	function, and we are also putting out stabs, which can handle this.
+	(ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Define to put a comment
+	in front of the pseudo op, if we are encapsulating stabs in MIPS
+	ECOFF.
+	(ASM_OUTPUT_SOURCE_FILENAME): Change to call mips_output_filename.
+	(ASM_OUTPUT_SOURCE_LINE): change to call mips_output_lineno.
+
+	* mips.c (toplevel): Include stab.h for encapsulating stabs.
+	(ignore_line_number): New global variable.
+	(reg_or_0_operand): Call register_operand for REG's as well as
+	SUBREG's.
+	(override_option): Don't allow ints in FP registers unless -mdebugh.
+	(mips_output_filename): New function to write the filename to the
+	assembler output.  Add special support for encapsulating .stabs in
+	MIPS ECOFF.
+	(mips_output_lineno): New function to write the line number to the
+	assembler output.  Add special support for encapsulating .stabs in
+	MIPS ECOFF.
+	(function_epilogue): Clear ignore_line_number.
+
+	* mips.md (fix_trunc??si_opt, mov??_internal): Change '!' constraint
+	back to '*'.
+
+Sat Dec  7 16:58:57 1991  Ken Raeburn  (Raeburn@Cygnus.COM)
+
+	* cp-spew.c (scan_tokens): Stop scanning at semi-colon.
+
+	* cp-spew.c: Made SPEW_DEBUG code useable:
+	(yylex): Use stderr in SPEW_DEBUG code.
+	(yytags): Deleted table.
+	(debug_yychar): Print to stderr, and don't try finding translations
+	for values over 256.
+
+	* cp-class.c (push_lang_context): Fix typo in comment.
+
+	* cp-decl.c (finish_decl): Undo `pushclass' done in start_decl for
+	top-level decls of methods.
+
+	* cp-lex.c (restore_pending_input): Cast 0 to pointer type for
+	obstack_free.
+
+	* cp-pt.c (do_pending_expansions): Use TREE_USED instead of
+	TREE_ADDRESSABLE for functions.  Put in comments explaining why we
+	compile unused methods of classes that are interface-unknown: the
+	file initializer/cleanup functions might need them.
+	(mumblefrotz): Delete unused function; this code is in cp-parse.y.
+
+Sat Dec  7 15:46:55 1991  Timothy Moore (moore@cs.utah.edu)
+
+	* function.c: Handle ARGS_GROW_DOWNWARD.
+	(pad_below, pad_to_arg_alignment, round_down): New subroutines.
+	(locate_and_pad_parm): Use them, for the existing case.
+	Also handle the ARGS_GROW_DOWNWARD case, using them.
+
+Sat Dec  7 15:46:55 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* tree.h (DECL_ARG_TYPE_AS_WRITTEN): New macro.
+	* c-decl.c (grokdeclarator): Store value there.
+
+	* m68k.c (output_function_prologue, output_function_epilogue):
+	Support MOTOROLA syntax.
+
+	* toplev.c (main): Testing for -ggdb catches -g also.
+	Default use_gdb_dbx_extensions to 1 for -gstabs, 0 for -gdbx.
+	Specified default is for -g.
+
+	* cccp.c (handle_directive): Store start address in directive_start.
+	(do_xifdef): Use that, checking if at start of file.
+	(do_endif): Compute ep properly.
+
+	* protoize.c (abspath): Fix errors referencing argument cwd.
+	(main): Allocate big enough buffer for getcwd.
+	Don't clobber varargs_style_indicator, copy it.
+	(savestring): New function.
+
+Sat Dec  7 00:53:16 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* c-decl.c (warn_redundant_decls, warn_nested_externs): New vars.
+	(c_decode_option): Support -Wredundant-decls and -Wnested-externs.
+	(pushdecl): Print those warnings.
+	* c-tree.h (warn_redundant_decls, warn_nested_externs): Declared.
+
+	* c-decl.c (pending_xref_error, c_mark_varargs):  Added return type.
+
+	* cccp.c (main):  Added code to support the presence of -A (assertion)
+	options within CPP_PREDEFINES.
+
+	* c-lang.c: Minor cleanups.
+
+	* c-lex.c (check_newline):  Added support for the -g3 option.
+
+	* dwarfout.c (type_tag):  Fixed bug in gcc Dwarf generation for
+	tagged types.
+
+	* dwarfout.c (output_decl):  Added two pre-checks to see if nodes
+	are ERROR_MARK nodes before using them.
+
+	* dwarfout.c (generate_new_sfname_entry):  Function added.
+
+	* dwarfout.c (lookup_filename):  Call generate_new_sfname_entry
+	as soon as each new source filename is added to the list of
+	known filenames (thus avoiding an m68k forward-ref assembler bug).
+
+	* dwarfout.c (dwarfout_line):  Initialize prev_file_entry_num to
+	(unsigned) -1 rather than zero to avoid bogus suppression of
+	first .debug_sfnames section entry.
+
+	* dwarfout.c (compare_filename_entries):  Function deleted.  (It's
+	no longer needed.)
+
+	* dwarfout.c (dwarfout_finish):  Don't generate .debug_sfnames
+	section entries here anymore.  (See lookup_filename.)
+
+	* Makefile.in (realclean): Delete c-parse.h.
+	Delete objc-parse.output just once.
+
+Fri Dec  6 17:49:28 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (FIXED_BASE_PLUS_P): The frame or argument pointer itself is
+	a fixed address.
+	(find_comparison_args): If we find something equivalent to a
+	fixed address, return the fixed address.
+
+	* combine.c (try_combine): Don't access new_i2_notes if it hasn't been
+	defined (it isn't defined unless newi2pat != 0).
+
+Fri Dec  6 16:01:02 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* rtl.h (enum reg_note): Define two new values REG_DEP_ANTI,
+	REG_DEP_OUTPUT, which are used to mark LOG_LINKS.
+	* rtl.c (reg_note_name): Likewise.
+	(add_dependence): Return void.  New parameter DEP_TYPE to indicate
+	type of dependence.
+
+	* sched.c: Major rewrite to delete much obsolete code, correct many
+	comments, delete unused variables, etc.  Modify all callers of
+	add_dependence to pass new argument.  Significant changes are:
+	(reassign_dependence): Deleted, was unnecessary.
+	(priority): Account for type of dependence when calculating
+	priority.
+	(flush_pending_lists): New function.  Encapsulate code which makes
+	dependencies between an INSN and every insn on the
+	pending_read_insns and pending_write_insns lists.
+	(rank_for_schedule): Account for type of dependence with last
+	scheduled insn when deciding which ready insn to schedule next.
+	(launch_link): Give all birthing insns the same priority.
+	(schedule_block): Only sort the ready list once, after all ready
+	insns have been added to it.
+	(schedule_block): When deciding what REG_DEAD notes are needed on a
+	just scheduled insns, process all sets first (sched_note_set) then
+	process all uses (attach_deaths_insn).
+	(attach_deaths): Simplified by above change.
+	(sched_note_set): Likewise.
+	(update_flow_info): Renamed from update_links, since it no longer
+	does anything with LOG_LINKS.  Sched_analyze_insn creates all
+	necessary new LOG_LINKS already.
+	(schedule_insn): Delete no op move insns after reload.
+
+Fri Dec  6 13:33:48 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* crtstuff.c: Give permission to link with non-free programs.
+
+	* toplev.c (flag_inhibit_size_directive): New var and -f option.
+	* svr4.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_SIZE): Use it.
+	* Makefile.in (crtbegin.o, crtend.o): Use that option.  Use -g1.
+
+Fri Dec  6 08:42:53 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* Makefile.in (STAGESTUFF):  Added __main and _exit to support g++.
+
+	* c-common.c (c_expand_expr_stmt):  Made return type explicit.
+
+	* c-common.c: (get_directive_line):  Function added to support -g3.
+
+Fri Dec  6 04:50:39 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-tree.h (OPERATOR_ASSIGN_CHARS_P): Flushed.
+	* cp-decl.c (grok_op_properties): Flush OPERATOR_ASSIGN_CHARS_P.
+	* cp-init.c (add_{friend,friends}): Ditto.
+
+Thu Dec  5 22:31:12 1991  Jeffrey A Law  (law at super.super.org)
+
+	* m68k.h (CONST_COSTS): Show that constants which can be easily
+	generated are less expensive than most.
+
+	* m68k.md (movsi): Use two instruction sequences to load constants
+	which are just outside moveq's range (within 8 of moveq's range).
+	Likewise for positive even constants within twice moveq's range.
+
+Thu Dec  5 20:17:13 1991  Eric Youngdale (youngdale at v6550c.nrl.navy.mil)
+
+	* config-gcc.com: Generate a file 'version.opt' which will be given
+	  to the VMS linker to put the gcc version number in the image 
+	  header version number field.
+
+	* make-cc1.com: Compile c-lex.c when building gcc and objc, and
+	  add c-lex.obj to the list of files given to the linker.
+	  Add version.opt to the list of files given to the linker.
+
+	* make-cccp.com: Add version.opt to the list of files given to the
+	  linker.
+
+Thu Dec  5 23:04:20 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (make_extraction): Don't make a STRICT_LOW_PART of a MEM;
+	clean up comments so they agree with the code.
+
+	* combine.c (try_combine): Correct test for when we can safely change
+	the mode of a pseudo; can't if it doesn't die in I3.
+
+	* c-decl.c (WCHAR_TYPE_SIZE): Deleted; never used.
+	* c-common.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Deleted, no longer needed.
+	(combine_strings): Use size of `wchar_type_node' to get number of
+	bytes in wchar_t.
+	* next.h (WCHAR_TYPE_SIZE): Delete; no longer used.
+
+	* cse.c (cse_main): Add new argument to cse_basic_block_call.
+	Don't call cse_around_loop here.
+	(cse_basic_block): Call cse_around_loop from here while we still
+	have our arrays allocated.
+
+	* combine.c (simplify_comparison): Fix error in last change; don't
+	reference TEM before it is set.
+
+	* toplev.c (fatal_insn_not_found): Flush all files before aborting.
+
+Thu Dec  5 21:42:29 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* objc-actions.c (build_objc_method_call): Eval OBJECT and SELECTOR
+	only once.  Always pass self_decl as self to the method.
+
+Thu Dec  5 14:52:16 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* ccrtstuff.c, gnulib2.c, protoize.c: Include tm.h not config.h,
+	since these are complied for the target, host defines do not apply.
+
+Thu Dec  5 14:52:24 1991  Michael Meissner  (meissner at osf.org)
+
+	* dbxout.c (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): If
+	not defined, define as .stabs/.stabn/.stabd respectively.  Change
+	all places emitting stabs to use the macros.
+	* cp-decl2.c: Ditto.
+	* cp-gc.c: Ditto.
+	* final.c: Ditto.
+	* varasm.c: Ditto.
+	* gcc.texinfo: Document ASM_STAB[DNS]_OP macros.
+
+Thu Dec  5 12:03:40 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gcc.c (process_command): Don't put `.' on startfile_prefix.
+	Cast result of alloca.
+
+	* config/*.h (ASM_OUTPUT_ASCII): Put parens around all uses of args.
+
+	* hp800.h, hp800.c, hp800.md, xm-hp800.h: New files.
+	* va-hp800.h: New file.
+	* gvarargs.h: Use va-hp800.h if needed.
+	* config.subr, configure: Add alternatives for hp800, hp700.
+
+Thu Dec  5 09:35:15 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-search.c (note_debug_info_needed): Do the right thing for
+	static member functions.
+
+Thu Dec  5 01:25:13 1991  Michael Tiemann  (tiemann at mole.gnu.ai.mit.edu)
+
+	* version.c: Now 1.96.
+
+Wed Dec  4 23:17:23 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (try_merge_delay_insns, fill_simple_delay_slots): Correctly
+	update NEXT_TRIAL after possibly splitting an insn.
+
+Wed Dec  4 17:03:11 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+
+	* gplus.gperf: Add throw and template keywords.  Update private,
+	protected, and public definitions.
+
+	* print-tree.c (print_node): Add missing indentation argument to
+	print_node call for values field.
+
+Wed Dec  4 18:39:33 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* objc-actions.c (build_objc_method_call): Define as static.
+
+Wed Dec  4 17:04:49 1991  Michael Meissner  (meissner at osf.org)
+
+	* mips-tfile.c (add_varray_page, alloc_type enum): Keep track of how
+	many pages we allocated for varrays as well as the small stuff.
+	(stabs_filename): New static to hold the special filename used for
+	passing stabs through.
+	(parse_stabs_common, parse_stabs, parse_stabn): New functions to
+	smuggle stabs through to the debugger.  Stabs must be commented out,
+	just like the other debug directives.
+	(add_local_symbol): Check hash_ptr to see if it's null before
+	storing into it, in case no name is passed.
+	(add_file): Add support for the special stabs file.
+	(copy_object): Before copying the external symbols, figure out the
+	file indexes of each of the files, and then explicitly remap the
+	original file indexes of the external symbol to be the new file
+	index.  If this isn't done, then bad file numbers can get generated
+	if a filename is repeated.
+	(various): Change the name of small_alloc to alloc_counts, since we
+	now track large memory allocations as well.
+
+	* mips-tdump.c (toplevel): Delete unnecessary include file stamp.h.
+
+Wed Dec  4 11:05:04 1991  Michael Collison  (collison at osf.org)
+
+	* encore.h (ASM_OUTPUT_LABELREF_AS_INT): add definition
+	* ns32k.h: ditto
+
+	* ns32k.h (ASM_OUTPUT_LABEL, ASM_GLOBALIZE_LABEL): If COLLECT is
+	defined provide alternate definitions
+
+	* encrose.h (ASM_OUTPUT_INT): If COLLECT is defined provide
+	alternate definition
+
+Wed Dec  4 01:39:07 1991  Ken Raeburn  (Raeburn@Cygnus.COM)
+
+	* cp-pt.c (end_template_decl): For method templates, pop the class
+	binding level before the others rather than after.
+
+	* cp-class.c: Added DEBUG_CP_BINDING_LEVELS code.  Include cp-decl.h
+	if that symbol is defined, but don't list it in Makefile.in since
+	that's not the normal mode.
+	(pushclass): Print messages and frob indentation level.
+	(popclass): Likewise.
+
+	* cp-spew.c (yylex): If identifier_type says PTYPENAME, and
+	following token is "<", force looking_for_typename to be
+	non-negative.
+
+	* cp-pt.c (mangle_class_name_for_template): Drop extra spaces
+	between last parm and closing ">".  Print a message before aborting
+	if a parm type isn't handled.
+
+	* cp-decl.c (maybe_globalize_type): Don't do it if the identifier
+	that names the type doesn't currently have a type value.
+
+Wed Dec  4 01:06:28 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (finish_enum): Call `rest_of_type_compilation' for
+	ENUMTYPE.
+	* cp-class.c (finish_struct): Ditto.
+	* cp-decl.c (pushtag): Set TYPE_STUB_DECL.
+	* cp-search.c (note_debug_info_needed): Call
+	`rest_of_type_compilation' if we notice we need debug info for TYPE.
+	* dbxout.c (dbxout_init): Fix typo in comment.
+
+	* cp-parse.y (DOT_STAR): New token.
+	(expr_no_commas): Handle DOT_STAR expressions.
+	* cp-lex.c (real_yylex): Recognize DOT_STAR.  Also, rearrange
+	scanner to make it more efficient.
+
+	* cp-decl.c (maybe_build_cleanup): When building cleanups, pass
+	TYPE_MAIN_VARIANT to `build_delete'.
+
+Tue Dec  3 22:52:33 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* flow.c (mark_set_1): Make a REG_UNUSED note not a REG_DEAD note
+	for the part of multi-word hard registers not needed.
+
+Tue Dec  3 22:34:13 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* configure: Support --objdir.
+
+	* objc-parse.y: Get rid of many static decls.
+	Reorder all token definitions to match c-parse.y.
+	(recognize_objc_keyword): New function.
+	* c-lex.c (token_buffer): No longer static.
+	(yylex): For @, call recognize_objc_keyword.  Don't use keyword table.
+	* c-lang.c (recognize_objc_keyword): Dummy definition.
+
+	* objc-actions.c (build_objc_method_call) [!NEXT_OBJC_RUNTIME]:
+	Pass selector as arg to the method.
+	Always cast the method to a function type.
+
+	* xm-sparc.h (alloca): If using Sun CC, include alloca.h.
+	If using GCC, define as __builtin_alloca the way other machines do.
+
+	* cccp.c (print_containing_files): Print the nominal file names.
+
+Tue Dec  3 16:54:04 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): If branches are expensive, convert jumps
+	around increments or decrements by one into an increment by the
+	conditional expression.
+
+	* combine.c (simplify_comparison): Don't remove a SUBREG unless
+	it doesn't affect either operand.
+
+	* cse.c (find_comparison_args): Rework so that we can correctly
+	fold comparisons on machines that set CC0 to the result of a 
+	condition test, not just a COMPARE.
+	(cse_insn): Don't set THIS_INSN_CC0 to a constant if we don't know
+	its mode.
+
+Tue Dec  3 12:01:12 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+
+	* mips.md: Use AND not IOR in define_function_unit definitions.
+	Correct setting of MODE attribute in various insn patterns.
+
+Tue Dec  3 08:31:18 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-spew.c (scan_tokens): Delete Dec 2 change.
+	(yylex): Instead, copy TMP_TOKEN.YYLVAL.TTYPE if it was allocated on
+	the wrong obstack.
+	(probe_obstack): New function to support the above change.
+
+	* cp-tree.h (CLASSTYPE_DEBUG_REQUESTED): New flag.
+	(CLASSTYPE_ASM_WRITTEN): Deleted.
+	cp-class.c (finish_struct): Now almost always assume that classes
+	with methods are to ignored for debugging purposes.
+	cp-search.c (dfs_debug_{mark,unmarkedp}): Rewritten to handle new
+	algorithm for minimizing debug output.
+
+	* cp-decl2.c (constructor_name): Handle case when THING is a
+	UNION_TYPE.
+
+Tue Dec  3 06:35:38 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* jump.c (duplicate_look_exit_test): If REG_MAP is non-zero, call
+	replace_regs on the REG_NOTES of COPY.
+
+	* cp-spew.c (scan_tokens): Don't read past '='.
+
+	* cp-call.c (compute_conversion_costs): For now, treat
+	CONTRAVARIANCE_HARSHNESS as EVIL_HARSNESS, since we cannot tell the
+	difference between when we should accept it (pointers to the right
+	sort of methods) and when we shouldn't (base* to derived*
+	conversions).
+
+Mon Dec  2 18:53:42 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* cse.c (cse_around_loop): Fix typo in comment.
+	* dbxout.c (dbxout_type_fields): Likewise.
+
+	* sched.c (sched_analyze_1): Pass the second and third args of a
+	ZERO_EXTRACT or SIGN_EXTRACT in the SET_DEST to sched_analyze_2.
+
+	* combine.c (make_compound_operation): Change (lshiftrt (ashift ...))
+	to a ZERO_EXTRACT, not a SIGN_EXTRACT.
+
+Mon Dec  2 15:09:13 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* jump.c (jump_optimize): New arg AFTER_REGSCAN.
+	If not set, don't use duplicate_loop_exit_test.
+	* toplev.c (compile_file): Pass new arg to jump_optimize.
+
+	* next.h (SELECT_SECTION): Test TREE_CONSTANT as well as TREE_READONLY.
+
+	* xm-i86v[34].h: Renamed from xm-i860v[34].h.
+	* configure: Corresponding changes.
+
+	* m68k.c (output_function_epilogue): Put %R on all regs in asm_fprintf.
+
+	* t-decstatn (ld): Just copy collect2.
+	(collect): Target deleted.
+	(EXTRA_PASSES): Deleted collect.
+	(mips-tfile, mips-tdump): Depend on LIBDEPS.
+	* t-mips (mips-tfile, mips-tdump): Depend on LIBDEPS.
+	* collect2.c (main): Run /bin/ld.
+	Use fatal_perror where appropriate.
+
+	* objc-actions.c (build_message_expr): Fix typo.
+
+	* configure: Add missing fi to finish last change.
+
+	* cse.c (simplify_binary_operation): Restore missing break in case DIV.
+
+	* sdbout.c (sdbout_init): Explicitly do nothing.
+	(sdbout_typedefs): Function deleted.
+
+Mon Dec  2 12:504:35 1991  Eric Youngdale (youngdale at v6550c.nrl.navy.mil)
+
+	* config-gcc.com: Finish changeover from tm-*.h to *.h.
+
+Sun Dec  1 05:18:32 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-search.c (lookup_{field,fnfields}): If PROTECT is 0, don't
+	memoize the entry we find.
+
+	* cp-decl.c (grokvardecl): Call `build_lang_field_decl' instead of
+	`build_decl' if we retroactively allocate a VAR_DECL.
+
+Sun Dec  1 00:10:18 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* configure: Convert option syntax from + to --.
+	Support --target.
+
+	* i386v4.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_GLOBAL): Deleted.
+	(ASM_FILE_START): Deleted.
+	(STARTFILE_SPEC, LIB_SPEC, STANDARD_STARTFILE_PREFIX): Deleted.
+	(STDC_VALUE): Deleted.
+
+	* real.h (REAL_VALUE_TRUNCATE): Check for same size as SFmode.
+
+	* config/*.h: Renamed from tm-*.h.  #includes and comments changed.
+	* configure: Changed accordingly.
+	* t-*: tm-*.h file names changed.
+
+	* gnulib2.c (__enable_execute_stack): Renamed function.
+	* convex.h (INITIALIZE_TRAMPOLINE): Use new name.
+
+Sun Dec  1 08:57:45 1991  Michael Meissner  (meissner at osf.org)
+
+	* cccp.c (main): Add cast in front of alloca for non GCC compilers.
+
+Sat Nov 30 22:33:24 1991  Chris Smith  (csmith@convex.com)
+
+	* config.subr: Recognize -c3*.
+	New alternatives for convex-c3*.
+	* configure: Alternatives for convex rewritten.
+
+	* gnulib2.c (__execute_enable_stack): New function for Convex only.
+
+	* gcc.c (do_spec_1): Use \ as quoting char.
+
+	* convex.h (TARGET_SWITCHES): Add new machine types c32, c34, c38.
+	Add flag TARGET_INDIRECTS, true for c1 and c2, false for c3.
+	* convex.h (GO_IF_LEGITIMATE_ADDRESS): Avoid indirect
+	addressing if ! TARGET_INDIRECTS.
+	
+	* convex.h: (BITS_PER_WORD, UNITS_PER_WORD, WORDS_BIG_ENDIAN):
+	It now works to describe machine correctly.
+
+	* convex.h (SIZE_TYPE, PTRDIFF_TYPE): Make them ints rather
+	than longs to match usage in /usr/include.
+
+	* convex.h (enum reg_class): Add classes SP_REGS, the stack
+	pointer, and INDEX_REGS, the remaining A_REGS.
+	(REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Adjust
+	for new classes.
+	(INDEX_REG_CLASS, BASE_REG_CLASS): Use INDEX_REGS so gcc will
+	not index off the stack pointer (register 0).
+
+	* convex.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE,
+	INITIALIZE_TRAMPOLINE): Define.
+
+	* convex.h (INITIAL_FRAME_POINTER_OFFSET): Define.
+
+	* convex.h (RTX_COSTS): Specify costs to prevent multiply
+	from being synthesized from shifts (which aren't faster).
+
+	* convex.h (NOTICE_UPDATE_CC): No need to do CC_STATUS_INIT,
+	cc is never looked at.
+
+	* convex.h (VTABLE_USES_MASK, VINDEX_MASK, SET_DECL_VINDEX):
+	define so g++ works.
+
+	* convex.h: If COLLECT is defined, define output macros for
+	collect to call.
+
+	* convex*.h: If !traditional, define _LONGLONG and 64-bit
+	typedefs to prevent types.h from murdering ansi compilations.
+
+	* convex.md (movsi): split into define_expand and two
+	anonymous define_insns, one that uses indirection and
+	one that doesn't.  TARGET_INDIRECTS selects which.
+
+	* convex.c (output_call):  New routine.  Scan forward from call
+	to decide if AP is live, omit AP reload if not.
+	* convex.md (call, call_value): use output_call.
+
+	* convex.md (bit manipulation peepholes): remove, now done in
+	combine.
+
+	* convex.md (indirect_jump): Define.
+
+	* convex.c (const_double_{high,low}_int): Just return the
+	appropriate word, remove slow float computations.
+
+	* math-convex: New file to use builtin instructions.
+
+	* x-convex: Use cc -pcc to bootstrap gcc.
+
+Sat Nov 30 10:21:26 1991  Ron Guilmette (rfg at ncd.com)
+
+	* tm-i386v4.h (DBX_REGISTER_NUMBER): Different renumbering.
+
+	* tm-svr4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Changed 
+	so that the progbits parameter actually appears in the definitions.
+
+	* tm-svr4.h (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION):  Adapted
+	for change in CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP.
+
+Sat Nov 30 07:05:06 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-spew.c (follows_{identifier,typename}): New arrays.
+	* cp-spew.c (init_spew): Initialize new arrays.
+	* cp-decl.c (lookup_name): takes new parameter PREFER_TYPE.
+	All callers changed.
+	* cp-spew.c (yylex): Set LOOKING_FOR_TYPENAME every time we see an
+	AGGR or ENUM.
+
+	* cp-lex.c (real_yylex): When composing EXTERN_LANG_STRING, call
+	`real_yylex', not `yylex'.  Changed other places that depended on
+	calling `real_yylex' for their input.
+
+	* cp-spew.c (scan_tokens): Never read past '{' or ':'.  Fill the
+	token buffer with EMPTY tokens in that case.
+	(yylex): Handle EMPTY tokens.
+
+	* cp-parse.y (structsp): Avoid using `yyungetc' to push a ';' back
+	on the input stream.
+	(START_DECLARATOR): New token.
+	(absdcl): Handle START_DECLARATOR.
+	* cp-spew.c (consume_token): Renamed from `discard_token'.
+	(struct token): Changed structure to make it smaller.
+	(spew_init): Renamed from init_spew.  Now called from init_lex.
+	(scan_tokens): Renamed from slurp_next_token.
+	Many functions reformatted to match GCC indentation style.
+
+	* cp-lex.c (arbitrate_lookup): Don't guess in favor of type if
+	yychar is ')'.
+
+	* cp-decl.c (lookup_name): Fixed so that all binding levels use
+	`looking_for_typename' consistently.
+	* cp-type2.c (build_functional_cast): Handle new case that we are
+	called in a context where a method is appropriate (but we parsed it
+	as a ctor call).
+
+	* cp-call.c (CONST_HARSHNESS): Change bit that we test.
+	(convert_harshness,compute_conversion_costs): Call CONST_HARSHNESS
+	consisently when needed.
+
+	* cp-init.c (decl_constant_value): Keep enabled even when
+	CURRENT_FUNCTION_DECL is null.
+
+Sat Nov 30 01:23:38 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* sdbout.c (sdbout_init): Just call sdbout_one_type on each type.
+
+	* tm-att386.h (ASM_OUTPUT_ASCII): Output a space after ASM_BYTE_OP.
+	* tm-sun386.h: Likewise.
+	* tm-i386.h (ASM_OUTPUT_BYTE, ASM_OUTPUT_CHAR): Likewise.
+	(ASM_OUTPUT_SHORT, ASM_OUTPUT_LONG, ASM_OUTPUT_DOUBLE): Likewise.
+	(ASM_OUTPUT_FLOAT, ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
+	* tm-att386.h (ASM_BYTE_OP, ASM_SHORT, ASM_LONG, ASM_DOUBLE):
+	Don't end with space.
+	* tm-sun386.h, tm-bsd386.h: Likewise.
+
+	* c-lex.h: Renamed from c-parse.h.  All #includes changed.
+	* c-parse.c, c-parse.h: Renamed from c-parse.tab.*.
+	* Makefile.in: Changed accordingly.
+	(C_OJBS, realclean, TAGS): These changed too.
+
+	* tm-svr4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS):
+	Undef before defining.
+
+	* tm-i386v4.h: Include tm-svr4.h.
+	(CPP_PREDEFINES): Define SVR4, and several assertions.
+	(LIB_SPEC): Delete -Qy.  LINK_SPEC handles this.
+	(DBX_REGISTER_NUMBER): New macro.
+
+Fri Nov 29 22:16:06 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.md: Cannot use "muls" and "muli" to do widening multiply
+	from HImode to SImode; delete the 12 patterns that try to do this.
+
+Fri Nov 29 21:32:52 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-cvt.c (build_type_conversion): Don't assume that if
+	TYPE_HAS_{INT,REAL}_CONVERSION implies that CLASSTYPE_CONVERSION for
+	the given type combination is non-NULL.
+
+Fri Nov 29 16:08:22 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* crtstuff.c: New file.  Needs papers from rfg.
+	* Makefile.in (crtbegin.o, crtend.o): New targets.
+
+	* objc-actions.c (build_message_expr): Lots of cleanups.
+	(build_objc_method_call): New subroutine.
+	Handles new option NEXT_OBJC_RUNTIME.
+
+	* expr.c (do_jump): Any LABEL_REF is nonzero.
+	(expand_expr): Construct LABEL_REFs with Pmode.
+
+Fri Nov 29 14:43:32 1991  Michael Meissner  (meissner at osf.org)
+
+	* mips-tfile.c (parse_def): Change an error into a warning.
+
+	* mips.md (fix_trunc??si_opt, mov??_internal): Change '*' constraint
+	to '!' to keep reload from allocating FP registers from holding
+	excess integer values.
+	(ashift right define_splits): Fix typo, so that the long long
+	arithmetic right shifts are recognized.
+	(all define_splits): dummy out constraints, since they are not used.
+
+	* mips.c (override_options): Allow int's in FP registers again, now
+	that ! constraints are used.
+
+Fri Nov 29 13:20:13 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* dwarfout.c (output_compile_unit_die):  Don't include the name
+	of the compiler which compiled the compiler in the AT_producer
+	string.  It goofs up comparisons of stage2 & stage3 object files.
+
+	* c-parse.y, objc-parse.y: Don't declare position_after_white_space
+	as static; it is now in c-lex.c.
+
+Fri Nov 29 05:15:26 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (xref_tag): Check that TREE_CODE (ref) is aggr type
+	before storing into CLASSTYPE_DECLARED_CLASS (ref).
+
+	* cp-decl2.c (build_push_scope): Don't let non-aggr types appear in
+	`cname::fname' expressions.
+
+	* cp-class.c (resolves_to_fixed_type_p): VAR_DECL and FIELD_DECL
+	nodes of ARRAY_TYPE may resolved to fixed type.  Also handle other
+	cases of WITH_CLEANUP_EXPR.
+
+	* cp-spew.c (frob_identifier): Handle case of a type conversion
+	operator that converts to a nested type.
+
+	* cp-expr.c (cplus_expand_expr): In NEW_EXPR case, if ARGS is
+	permanent, build a new arglist instead of modifying it in place.
+
+	* cp-typeck.c (convert_arguments): Add ??? to comment about virtual
+	function conversions.  ??? I don't understand what that code is
+	supposed to do anymore.
+	(comp_target_parms): If STRICT <= 0, accept types whose
+	TYPE_MAIN_VARIANTs are equal.
+
+	* cp-call.c (convert_harshness): Revamped to handle contravariance
+	better.
+	* cp-class.h (struct candidate): Declaration moved from cp-tree.h.
+
+	* cp-class.c (duplicate_tag_error): New function.
+	* cp-parse.y (LC): Call it if we're redefining a tag.
+	* cp-decl.c (duplicate_decls): Only copy DECL_ARGUMENTS from OLDDECL
+	if non-NULL.  Otherwise we get nonsense when we try to parse
+	inline function bodies of classes that have already been redefined.
+	* cp-lex.c (reinit_parse_for_method): If we get some text for a
+	class that's been redefined, flush the text.
+	* cp-tree.h (TYPE_REDEFINED): New field in `struct lang_type'.
+
+	* cp-cvt.c (convert_to_integer): Only warn about anachronistic
+	conversion from int to enum if PEDANTIC is nonzero.
+
+	* cp-typeck.c (convert_for_initialization): No longer give warning
+	messages about bitwise copy: this is currently how the default X(X&)
+	constructor is implemented.
+	* cp-init.c (expand_aggr_init_1): Ditto.
+
+	* cp-method.c (dump_init): Handle WITH_CLEANUP_EXPR and TARGET_EXPR.
+	* tree.c (simple_cst_equal): Handle WITH_CLEANUP_EXPR.  Correct
+	handling of TARGET_EXPR case.
+
+	* cp-decl.c (grok_reference_init): If DECL is permanent, make it's
+	DECL_REFERENCE_SLOT permanent as well.
+
+	* cp-cvt.c (build_type_conversion): If PEDANTIC, give message about
+	conversions which cast away const.
+
+	* cp-decl.c (store_return_init): If PEDANTIC, give error about named
+	return values.
+
+	* cp-init.c (decl_constant_value): Don't return DECL_INITIAL if
+	CURRENT_FUNCTION_DECL is null or if the initializer is a
+	CONSTRUCTOR.
+
+Thu Nov 28 05:29:52 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* integrate.c (expand_inline_function): When passing objects by
+	invisible reference, correctly compute the amount of space to be
+	allocated in the pseudo-frame we create for the inline function.
+
+	* cp-typeck.c (mark_addressable): Add call to
+	`mark_inline_for_output' that got lost in Nov 25 change.
+
+	* cp-decl.c (push_overloaded_decl): If the value of a name is an
+	ADDR_EXPR, look inside to get the _DECL node.
+
+	* cp-decl.c (grokdeclarator): Don't convert type of operators new
+	and delete to METHOD_TYPE; they remain FUNCTION_TYPEs.
+
+	* function.c (expand_function_start): Set TREE_REGDECL bit on
+	RESULT_DECL if result starts life in a register.
+
+	* c-common.c (truthvalue_conversion): Don't treat a CONVERT_EXPR as
+	a NOP when it or the expression inside it is of REFERENCE_TYPE.
+
+	* cp-class.c (finish_struct): Test DESTRUCTOR_NAME_P on
+	DECL_ASSMBLER_NAME, not DECL_NAME.
+
+Wed Nov 27 13:49:10 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+
+	* cse.c (simplify_relational_operation): Correct handling of
+	COMPARE as first argument.  Always strip it off.  Don't invert
+	return value for EQ when !HAVE_cc0.
+
+Thu Nov 28 20:08:15 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gmon.c: New file.
+
+Thu Nov 28 15:02:24 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (subst, case SET): Never make a paradoxical SUBREG of
+	a REG unless the SUBREG and REG occupy the same number of words.
+
+	* emit-rtl.c: Include flags.h.
+	(operand_subword): Always look inside floating if -fpretend-float.
+	* final.c (split_double): Likewise.
+	* Makefile.in (emit-rtl.o): Includes flags.h.
+
+	* c-lex.c (yylex): Add goto to `L' case.
+
+Thu Nov 28 08:37:02 1991  Michael Tiemann  (tiemann at mole.gnu.ai.mit.edu)
+
+	* tm-mips.h (ASM_OUTPUT_INT): Use `do {...} while (0)' so it can be
+	used in if/else constructs.
+
+Thu Nov 28 00:23:26 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* tree.h (BUILT_IN_FRAME_ADDRESS, BUILT_IN_RETURN_ADDRESS):
+	New function codes.
+	* c-decl.c (init_decl_processing): Declare the functions.
+	* expr.c (expand_builtin): Implement them.
+
+	* gcc.c: Pass to ld all the dirs in LIBRARY_PATH:
+	(library_prefix): New list of prefixes.
+	(process_command): Put dirs from LIBRARY_PATH on that list.
+	(do_spec_1): %D outputs those dirs.
+	(link_command_spec): Use %D after passing -L options.
+
+	* gcc.c (process_command): Don't require machine suffix
+	for dirs from COMPILER_PATH or LIBRARY_PATH.
+
+	* cccp.c (main): C_INCLUDE_PATH, etc., add dirs rather than replacing.
+
+	* Use the TYPE_DECLs to drive dbx and sdb output of type tags.
+	* toplev.c (rest_of_type_compilation): New function.
+	(compile_file): Pass list of initial decls to dbxout_init, sdbout_init.
+	(various): Don't call get_*_types.
+	* dbxout.c (dbxout_init): Get initial types from that list.
+	* sdbout.c (sdbout_init): Likewise.
+	* sdbout.c, dbxout.c: Don't call get_*_types.
+	(*out_typedefs): New subroutines.
+	* c-decl.c (finish_struct, finish_enum): Call rest_of_type_compilation.
+	(pushtags): Record TYPE_STUB_DECL.
+	* tree.h (TYPE_STUB_DECL): New macro.
+	* stor-layout.c (chain_type, get_permanent_types, get_temporary_types):
+	Deleted.
+	(save_storage_status, restore_storage_status): Don't frob chains.
+	(layout_type): Don't call chain_type.
+
+	* dbxout.c (dbxout_type_fields): Output `/'-spec after type tag
+	only if really needed.
+
+Wed Nov 27 18:52:55 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* expr.c (expand_expr): Typo in expand_end_bindings, in BIND_EXPR case.
+
+Wed Nov 27 23:10:48 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cccp.c (main): Use savestring, not strdup.
+
+Wed Nov 27 17:10:17 1991  Michael Meissner  (meissner at osf.org)
+
+	* mips.c (mips_load_reg3, mips_load_reg4): New global variables to
+	enable scheduling the second nop for the mfhi and mflo instructions.
+	(mips_hard_regno_mode_ok): New global array to give the results
+	of HARD_REGNO_MODE_OK for each register and mode.
+	(mips_fill_delay_slot): Instead of taking the number of nops as a
+	parameter, take an enumeration, giving what kind of delay this is.
+	If the next instruction is a label, put nops before label, not
+	after.  Add support for mflo/mfhi, which need 2 nops if the next
+	instruction would modify the hi/lo registers.
+	(mips_move_1word, mips_move_2words): mips_fill_delay_slot calling
+	sequence changes.  Pass mflo/mfhi to schedule nops.
+	(mips_move_2words): Move DImode to/from hi and lo registers is now
+	supported.
+	(function_arg): Correctly align long long parameters, just like
+	doubles.  Also correct typo in debug code.  Bug report from
+	lisa@MicroUnity.com.
+	(override_options): Initialize mips_hard_regno_mode_ok.  Restrict
+	int's from going in the FP registers, to limit the register
+	allocator from allocating them instead of using memory.  Also, make
+	the special registers (HI, LO, FPSW) only accept full sized ints, or
+	a double int for the HI:LO combination.
+	(compute_frame_size): Don't set the initialized member until reload
+	has completed, since otherwise the information may change.
+
+	* mips.md (various): Add 64 bit integer operations for addition,
+	subtraction, negation, and, inclusive or, exclusive or, one's
+	complement, shifts, and nor.  Add 32x32->64 bit support for
+	multiply, which the compiler then uses to construct 64 bit
+	multiplies.
+	(mulsi3): Break mul into it's two instructions, and schedule the
+	two nops needed for the mflo instruction.  Don't allow an integer
+	multiplier anymore.
+	(ffssi2): Delete define_expand, and use a second clobber'ed register
+	to preserve the original input, instead of (clobber (match_dup 1)).
+	(movsi_ulw): Change mips_fill_delay_slot calling sequence.
+	(movdi_internal): Allow DImode move from HI/LO to/from GP registers.
+	(movdi define_split): Add a define_split to separate the two parts
+	of DImode register pairs when using GP registers.
+	(movdf define_split): Add a define_split to separate the two parts
+	of DFmode register pairs when using GP registers.
+	(mov??_internal): Change condition to call memory_operand, instead
+	of just checking for MEM, which disallows (subreg (MEM)) during
+	the intermediate parts of the compilation.  Reported by
+	lisa@MicroUnity.com.
+	(negsi2): Turn back into a real insn instead of just a
+	define_expand for subsi3.
+	(one_cmplsi2): Turn back into a real insn instead of just a
+	define_expand for norsi3.
+	(andsi3, iorsi3, xorsi3): Be more liberal than the real machine, and
+	allow 32 bit constants to improve the code generated for bitfields,
+	at the expense of potentially not moving the constant out of loops.
+	(various): Add = constraint to all clobbers.
+	(fix_trunc*): Go back to old method of using two clobbers, since
+	unoptimized compiles call abort otherwise, when returning the result
+	of truncating a float as a function result.
+
+	* tm-mips.h (delay_type): New enum to express different types of
+	delay slots.
+	(mips_load_reg3, mips_load_reg4): Declarations for more registers
+	to check for needing nops.  Used by multiply/divide to schedule
+	the two nops needed after mfhi/mflo if the next instruction would
+	clobber the register.
+	(CONDITIONAL_REGISTER_USAGE): If -msoft-float, disable all FP
+	registers.
+	(MASK_DEBUG_G): Add comment saying -mdebugg turns of new DImode
+	patterns, in case the code is wrong.
+	(HARD_REGNO_NREGS): All FP registers use register pairs, so that
+	SF in a GP register takes only one register, and SI in a FP
+	register takes 2.
+	(HARD_REGNO_MODE_OK): Change macro to reference the array
+	mips_hard_regno_mode_ok, which is now built in override_options.
+	(CONST_OK_FOR_LETTER_P): 'N' is now for negative numbers, 'O' is
+	an exact power of 2, and 'P' is now for positive numbers.
+	(PREFERRED_RELOAD_CLASS): If -msoft-float, never prefer a FP
+	register.
+	(PREFERRED_RELOAD_CLASS_FM): Delete, since nobody uses it.
+	(FINAL_PRESCAN_INSN): Check for mips_load_reg3 and mips_load_reg4
+	being mentioned.  Also add a missing tab when more than one delay
+	slot.
+	(CONST_COSTS): Make all constant ints cost 0 to lower register
+	pressure according to Richard Kenner.
+	(RTX_COSTS): Adjust costs for DI, SF, and DF modes, and add ABS/FFS
+	costs as well.
+	(REGISTER_MOVE_COSTS): Bump costs for moving between register
+	classes, so that reload doesn't try to store int type values in the
+	floating point registers.
+
+Wed Nov 27 15:01:52 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* config-gcc.com: Renaming of out-vax.c.
+	* make-cc1.com: Link dbxout with all languages.  Add cp-spew.
+
+	* cccp.c (include_defaults_array): Fix typo.
+
+	* gstddef.h: Handle _STDDEF_H_.
+
+	* configure.bat, Makefile.dos: New files.
+
+	* c-lex.c: New file.  All subroutines moved here.
+	(yylex): Small diffs between C and OBJC merged.
+	* c-parse.y, objc-parse.y: Deleted from here.
+	* c-lang.c (lookup_interface): New stub.
+	* Makefile.in (c-lex.o): New rule.
+	(OBJC_OBJS, C_OBJS): Changed for new files.
+
+Wed Nov 27 13:34:15 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* c-parse.y (yylex): Don't assume that long is 32 bits and long
+	long is 64 bits when warning for out of range integer constants,
+	and when creating a tree to represent integer constants.
+	* cp-lex.c (real_yylex): Likewise.
+	* objc-parse.y (yylex): Likewise.
+
+	* combine.c (simplify_comparison, ASHIFT case): Prevent shift by
+	HOST_BITS_PER_INT for inequality comparisons.
+
+	* fold-const.c (operand_equal_p): Arguments are not equal if
+	signedness differs.  Conversions don't match if signedness differs.
+
+	* sparc.md (movsi, movhi, movqi, movdi): Prohibit matches that
+	would require reloading by the use of conditions.
+
+	* alloca.c (alloca): Add parens to make precedence clearer.
+
+	* tm-news.h (PRINT_OPERAND): Add 68040 support so that the compiler
+	will bootstrap.
+
+Wed Nov 27 09:41:13 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case MIN_EXPR): Fix typo in operand number
+	in safe_from_p call.
+
+	* recog.c (indirect_operand): Correctly handle case where we have
+	a (subreg (mem X) C) after reload.
+
+Tue Nov 26 16:24:03 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* dwarfout.c (output_enumeration_type_die): Handle a GNU C 
+	language extension: incomplete enum types.
+
+	* dwarfout.c (output_type): Fixed bug which causes DIEs for
+	file-scope tagged types to be generated in a local-scope
+	under some conditions.
+
+	* dwarfout.c (dwarfout_init, dwarfout_finish): Moved code which
+	generates most of the .debug_aranges entries from dwarfout_init
+	into dwarfout_finish to avoid m68k assembler bug.
+
+	* Makefile.in (EXTRA_PARTS): New parameter.
+	(install-common): Compile the things in EXTRA_PARTS.
+	(GCC_PASSES, GCC_PARTS): New variables.
+	(STAGESTUFF, native, enquire, enquire.o): Use them.
+	(protoize, protoize.o, unprotoize, unprotoize.o, SYSCALLS.c.X):
+	(gnulib2.ready, collect2, collect2.o, getopt.o, getopt1.o): Likewise.
+
+	* tm-svr4.h (CPP_PREDEFINES): Don't define this here.  Undef it
+	so that other files which include this one will be forced to
+	define it appropriately for the specific target and OS.
+	(CPP_SPEC): Deleted.
+	(LIB_SPEC): Add crtend.o as last thing linked in on each link-step.
+	(STARTFILE_SPEC): Add crtbegin.o as the first thing linked in.
+	(NO_DOLLAR_IN_LABEL):  Added define.  Most svr4's don't support $.
+
+	* tm-svr4.h: Added support for the .ctors and .dtors sections
+	(as for the m88k).
+	(ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): New macros.
+	* tm-svr4.h (HERE_ASM_OP, ASM_DECLARE_FUNCTION_SIZE):  Deleted
+	define of HERE_ASM_OP and made ASM_DECLARE_FUNCTION_SIZE not
+	try to use a dot when computing a function's size in a .size
+	directive (because Tom Wood says that 88open doesn't approve
+	of dot as an asm operand).
+
+	* x-genix, x-i386sco, x-xenix (INSTALL): Define as cp.
+
+Tue Nov 26 16:24:03 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gcc.c (default_compilers): Pass -A* to cpp.
+
+	* Make names unique if unpacked on MSDOG.
+	* config/*.c: `out-' removed from all file names out-*.c.
+	* x-hp*: Renamed from x-hp9k*.
+	* tm-conv1.h, tm-conv2.h: Renamed from tm-convex*.h.
+	* tm-hp*.h: `9k' removed from these names.
+	* tm-isi*.h: `68' removed from these names.
+	* tm-i860b.h, tm-i860bg.h: `sd' removed.
+	* tm-i860g3.h: Renamed from tm-i860v3g.h.
+	* tm-i386sun.h: Renamed from tm-sun386i.h.
+	* tm-sun3o3.h, tm-sun4o3.h: Were tm-sun*os3.h.
+	* tm-sun3n3.h: Was tm-sun3os3nf.h.
+	* tm-sun3n.h: Was tm-sun3-nfp.h.
+	* tm-sun2o4.h: Was tm-sun2os4.h.
+	* xm-hp320.h: Was xm-hp9k320.h.
+	* xm-i386sun.h: Was xm-sun386i.h.
+	* configure: Adjust for those renamings.
+
+	* configure (m68000-hp-hpux*): Use xm-hp320.h.
+
+	* stmt.c (expand_value_return): New subroutine.
+	(expand_return): Use that.
+
+	* make-gcc.com: New name for make.com.
+
+	* stor-layout.c (layout_record): Return list of static members.
+	(layout_type): Lay them out here.
+
+	* expmed.c (init_expmed): Use 3 as shift count for shift_cost.
+
+	* x-sco: File deleted.
+
+	* print-tree.c (print_node): Always be brief for vector elts.
+
+Tue Nov 26 07:42:41 1991  Michael Tiemann  (tiemann at rtl.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Fix typo involving ~RID_STATIC.
+
+Mon Nov 25 21:51:09 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* optabs.c (emit_cmp_insn): If both operands are VOIDmode,
+	put first operand into register, not second.
+
+	* alliant.md, gmicro.md, i386.md, m68k.md, ns32k.md, pyr.md:
+	Don't allow a constant as the first operand to tstxx insns.
+	* tahoe.md, vax.md: Likewise.
+	* convex.md: Remove erroneous comment on tstsi.
+
+Mon Nov 25 20:51:00 1991  DJ Delorie  (dj@ctron.com)
+
+	* cccp.c (main): Look in env vars to override header dir list.
+	* gcc.c (process_command): Likewise.
+
+	* gcc.c (execute): Alternate way to get status on MSDOS.
+	Error for -pipe on MSDOS.
+	(pexecute): Alternate definition for MSDOS.
+	(find_a_file): Handle new hook EXECUTABLE_SUFFIX.
+	(EXECUTABLE_SUFFIX): Add default definition, and alternate for MSDOS.
+	(P_tmpdir): Add default definition for MSDOS.
+
+Mon Nov 25 17:18:52 1991  Michael Collison  (collison at osf.org)
+
+	* x-encrose: New file for mmax running OSF/1.
+	* t-encrose: ditto.
+
+	* ns32k.md (movsi): Use new constraint letters 'x' and 'y'
+	representing the frame and stack pointer.
+	(movhi,movqi): Add constraints and template code to allow moves
+	between the floating point and general purpose registers.
+
+	* tm-ns32k.h (REGISTER_MOVE_COST): Use this macro to discourage
+	moves between the floating point registers and the frame and stack
+	pointer.  Also discourage moves between the fp and general registers.
+	(reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
+	REG_CLASS_FROM_LETTER): Add two new register classes representing
+	the frame pointer and stack pointer respectively.
+	(GO_IF_NONINDEXED_ADDRESS): Add check to see if register is also a
+	base register. This causes reload to reject pseudo registers when
+	REG_OK_STRICT is defined.
+
+	* tm-i386rose.h: New file for 386 running on OSF/1.
+	* x-i386rose: ditto
+	* t-i386rose: ditto
+
+	* config.subr: Added case for 'osf-'.
+	* configure: Added case for i386-osfrose
+
+	* tm-encrose.h (CC1_SPEC): Simplified so by default it passes nothing.
+	(ASM_SPEC): Changed so that under OSF/1 with NO_J_SWITCH defined
+	nothing is passed to the assembler.
+	(TARGET_DEFAULT): Changed so that, by default, no code is generated
+	using the static base (sb) register.
+	(OVERRIDE_OPTIONS): Removed in lieu of the new debug macros
+	PREFERRED_DEBUGGING_TYPE and DEFAULT_GDB_EXTENSION.
+	(DEFAULT_GDB_EXTENSIONS): Define it
+	(PREFERRED_DEBUGGING_TYPE): Use it.
+
+Mon Nov 25 17:18:52 1991  Jyrki Kuoppala  (jkp at batman.hut.fi)
+
+	* ns32k.md (ashlhi3): use addw also on 32532 if shiftcount is 1.
+	(ashlqi3): likewise.
+	(addsi3): don't use addr instead of addd on the 32532.
+
+	* out-ns32k.c (calc_address_cost): don't assume unknown RTX codes
+	have XEXP's which are rtx's.
+
+	* ns32k.md (movsi): don't use addr for the 32532 immed displacements.
+	(shift patterns): fixed a typo with %$%n.
+
+	* out-ns32.c (calc_address_cost) new function.
+	tm-ns32k.h (ADDRESS_COST): call calc_address_cost.
+
+	* out-ns32k.c (print_operand_address): use error & debug_rtx if error.
+
+	* tm-ns32k.h (CONST_OK_FOR_LETTER_P): constraint 'I' shouldn't
+	match anything on the 32532 to make negative arithmetic left
+	shifts behave consistently.
+
+	* ns32k.md (subsf+1): don't use ajdspb on the 32532.
+
+	* tm-ns32k.h (CONST_OK_FOR_LETTER_P): positive values not OK for
+	constraint 'I' if on 32532.
+
+	* ns32k.md (ashl??): if TARGET_32532, use lsh{d,w,b}.
+
+	* ns32k.md (adjusting stack pointer): don't use ajdp{b,w} if not 32532.
+
+	* ns32k.md (isv,insv-1,insv-2,extzv): use constraint K instead of
+	n for offset.
+
+	* ns32k.md (insv-1): use only register_operand with constraint
+	"r" for operand 2, insd can't take constant offsets >= 8.
+	(pattern insv-2): added another insv-like pattern, for
+	offsettable operand.
+	(insv): constraint should be "+g".
+	(pattern before insv): installed an insv-like pattern
+	with operand 0 having register_operand and SImode.
+
+	* out-ns32k.c (print_operand): define as a void function.
+
+	* ns32k.md (call_value): use operands[1], not operands[0] to check
+	for CONSTANT_ADDRESS_P.
+
+	* out-ns32k.c (print_operand): eliminate
+	PRINT_OPERAND_EXTRACT_FLOAT, don't depend on HOST_WORDS_BIG_ENDIAN.
+
+	* tm-ns32.h (INDIRECTABLE_1_ADDRESS_P): use CONSTANT_ADDRESS_P,
+	not CONSTANT_P.
+
+	* tm-ns32k.h (GO_IF_LEGITIMATE_ADDRESS): checking for CONST_INT
+	is not right because displacements are not 32-bit.  Use
+	CONSTANT_ADDRESS_NO_LABEL_P instead.
+
+	* tm-ns32k.h (output_move_double, output_shift_insn): New declarations.
+
+	* out-ns32k.c (print_operand_address): Use fatal for errors.
+
+	* ns32k.md (insv, extzv): Replaced with the pattern near insv in 1.40.
+
+	* out-ns32k.c (print_operand): function moved from tm-ns32k.h.
+	Modified to use PUT_IMMEDIATE_PREFIX, PUT_EXTERNAL_PREFIX; added
+	macro PRINT_OPERAND_EXTRACT_FLOAT.
+
+	* out-ns32k.c (print_operand_address): replaced the function with
+	a more clean version, written for gas syntax.
+
+	* ns32k.md (call): #if 0 code which was used when GAS_SYNTAX was not
+	defined.
+	(call_value): likewise.
+
+	* ns32k.md (pattern after ashrsi3): added % before $ so the
+	pattern works also for gas syntax.
+	(pattern after ashrhi3): likewise.
+	(pattern after ashrqi3): likewise.
+	(pattern after lshrsi3): likewise.
+	(pattern after lshrhi3): likewise.
+	(pattern after lshrqi3): likewise.
+	(pattern after rotrsi3): likewise.
+	(pattern after rotrhi3): likewise.
+	(pattern after rotrqi3): likewise.
+
+	* ns32k.md (movsf): put #ifndef GAS_SYNTAX part inside #if 0 since
+	for now we only use GAS syntax.
+
+	* tm-ns32k.h (INDIRECTABLE_2_ADDRESS_P): add TARGET_SB as a
+	condition in addition to CONSTANT_ADDRESS_P.
+
+	* tm-ns32k.h (MEM_REG): use CONSTANT_ADDRESS_P instead of GET_CODE
+	== SYMBOL_REG, add TARGET_SB to the second-part condition.
+
+	* ns32k.md (rotrsi3): fixed a typo NEGATE->NEG
+
+	* tm-ns32k.h: added a comment about CONSTANT_ADDRESS_P; it's not
+	strictly according to the spec.
+
+	* tm-ns32k.h: added defaults for ABSOLUTE_PREFIX,IMMEDIATE_PREFIX
+	etc, using gas syntax.
+
+	* out-ns32k.c: removed macro FP_REG_P.
+
+	* tm-ns32k.h: (ASM_OUTPUT_ALIGN_CODE): changed alignment from 4 to
+	2 since GAS syntax is the default assembler syntax now.
+	(PRINT_OPERAND, PRINT_OPERAND_ADDRESS): defined to call
+	print_operand and print_operand_address in out-ns32k.c,
+	respectively.
+
+	* tm-ns32k.h: New macros TARGET_SB, TARGET_PIC.
+	Dummy code for trampolines, calls fatal().
+	Macro FP_REG_P moved here from out-ns32k.c.
+	Some reorganizations of blocks.
+	68000 -> ns32k.
+
+	* tm-ns32k.h (TARGET_VERSION) says GAS syntax.
+	(TARGET_*) added some empty lines for clarity.
+
+Mon Nov 25 14:29:39 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (aux-output.o): Depend on insn-codes.h.
+
+	* make-cc1.com: Handle print-rtl.c.
+
+	* toplev.c (warn_aggregate_return): New variable.
+	(W_options): Define option to set it.
+	* flags.h: Declare it.
+	* calls.c (expand_call): Print warning if value is aggregate.
+	* function.c (init_function_start): Likewise.
+
+Mon Nov 25 13:29:50 1991  Per Bothner  (bothner at cygnus.com)
+
+	* cp-except.c (init_exception_processing): Fix return type of
+	longjmp (from int to void).
+
+Mon Nov 25 13:11:51 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* rtlanal.c (refers_to_regno_p): Check for `x == 0' on repeat.
+
+	* x-mips, xm-vms.h: Change cplus-* to cp-* in comments.
+	* x-tower (X_CFLAGS): Add missing `-'.
+
+	* unroll.c (unroll_loop): When simplifying loops executed only once,
+	use last_loop_insn not copy_end.
+
+Mon Nov 25 07:45:46 1991  Michael Tiemann  (tiemann at rtl.cygnus.com)
+
+	* cp-except.c (init_exception_processing): Mark `ExceptionHandler'
+	constructor and destructor as being TREE_EXTERNAL, and mark the
+	`ExceptionHandler' type as being interface-only.
+
+	* cp-decl.c (maybe_globalize_type): Don't test TYPE_BEING_DEFINED
+	for ENUMERAL_TYPE.
+
+	* cp-class.c (modify_vtable_entry): Disable code which attempts to
+	encode in a vtable an indirection to another vtable entry.
+
+	* cp-call.c (build_method_call): Convert FUNCTION to
+	DECL_MAIN_VARIANT (FUNCTION) once we are going to use it for real.
+	* cp-init.c (build_delete): Use DECL_MAIN_VARIANT (DTOR).  *
+	* cp-typeck.c (mark_addressable): Use DECL_MAIN_VARIANT (X).
+
+Mon Nov 25 00:41:14 1991  Per Bothner  (bothner at cygnus.com)
+
+	* dbxout.c (dbxout_type): Tiemann's DECL_IGNORED_P optimization (Nov
+	20) was a little too drastic: If it succeded, no type info was
+	emitted at all, which made for syntactically invalid stabs.
+	Instead, just set 'full=0',
+	* dbxout.c (dbxout_symbol): Re-write code for TYPE_DECL to be a
+	little cleaner.  It *seems* to work ...
+
+Sun Nov 24 19:32:07 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* sched.c (update_links): Use PUT_REG_NOTE_KIND to change REG_NOTE.
+
+Sun Nov 24 14:53:37 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* cccp.c: Add `return 0;' statements to all do_* functions which
+	needed them to prevent spurious warnings.  Also change plain
+	`return;' statements to `return 0;' statements where appropriate.
+
+Sun Nov 24 07:37:17 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): When making equivalences of subparts of
+	a SET, avoid putting a (hard) register in the hash table twice,
+	each time with different modes.
+
+	* genrecog.c (write_tree_1,change_state): Don't check for a position
+	containing a '*' since we don't set it to that.
+	(main): Don't define recog_addr_dummy; no longer used.
+	* recog.c (recog_addr_dummy): No longer needed; wasn't actually used.
+	(init_recog_no_volatile, init_recog): Don't set recog_addr_dummy.
+
+	* expmed.c (store_split_bit_field, extract_bit_field): Abort if 
+	operand_subword of target returns 0.
+	* expr.c (convert_move, move_block_from_reg, emit_move_insn): Likewise.
+
+	* combine.c (subst, case SUBREG): Don't allow making a SUBREG of
+	a hard reg in a mode not valid for that hard reg.
+	* emit-rtl.c (gen_lowpart_common, operand_subword): Likewise.
+
+	* expmed.c (extract_split_bit_field): Use operand_subword_force.
+	* expr.c (emit_move_insn): If operand_subword fails for non-const,
+	use operand_subword_force.
+
+	* expmed.c (expand_mult): Pass OP0 through protect_from_queue so we can
+	use it in a REG_EQUAL note and check it for being a MEM.
+
+	* rtl.def (SMIN, SMAX, UMIN, UMAX): New RTL codes.
+	* fold-const.c (const_binop, case MIN_EXPR, MAX_EXPR): Use MIN and MAX.
+	(fold, case MIN_EXPR, MAX_EXPR): Check for operands equal; check for
+	min (x, lowest-value-for-type) and max (x, highest-value-for-type).
+	(fold, case COND_EXPR): Look for conditionals that are equivalent
+	to ABS_EXPR, MIN_EXPR, or MAX_EXPR and convert them to the appropriate
+	expression.
+	* expr.h (smin_optab, smax_optab, umin_optab, umax_optab): New vars.
+	* gcc.texinfo (smin, smax, umin, umax): Add documentation.
+	* expr.c (expand_expr, case ABS_EXPR): Ignore ABS on unsigned types.
+	If jumps are expensive, we can do ABS with shifts and xors.
+	(expand_expr, case MIN_EXPR, MAX_EXPR): Try to do using new optabs.
+	* optabs.c (smin_optab, smax_optab, umin_optab, umax_optab):
+	Initialize new optabs.
+	* cse.c (simplify_binary_operation): New cases SMIN, SMAX, UMIN, UMAX.
+	* rs6000.md (sminsi3, smaxsi3, uminsi3, umaxsi3): New patterns.
+	* m88k.md (abssi2): Delete pattern; now done in expr.c.
+
+	* rs6000.md (scc): Correct typos in last change.
+
+	* expmed.c (expand_mult): TARGET will only be written once, so
+	function return register is OK.
+	Write a REG_EQUAL note so multiplications can be cse'ed.
+
+	* expmed.c (emit_store_flag): Skip trying most sequences of insns
+	if branches are very cheap (BRANCH_COST == 0).
+	* expr.c (expand_expr, case COND_EXPR): Check for BRANCH_COST <= 1,
+	not equal to 1.
+	Know that emit_store_flag won't do most sequence if branches are very
+	cheap.
+
+	* tm-vax.h (BRANCH_COST): Define to be equal to zero.
+
+Sun Nov 24 07:07:31 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (maybe_globalize_type): Don't globalize a type that's
+	being defined.
+
+Sun Nov 24 05:08:57 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-decl.c (finish_struct): Use main variant checking ANSI bitfields.
+
+	* tm-tower-as.h (ASM_FILE_START): Use output_file_directive.
+
+	* gcc.c (process_command): Treat `-' as file name, not option.
+
+Sat Nov 23 20:28:58 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_binary_operation): Remove duplicate code for SFmode
+	and DFmode; use of REAL_VALUE_TRUNCATE means that all modes can be
+	handled with the same code.
+	Truncate result as well as inputs to computations.
+
+	* cse.c (cse_basic_block): Allow recording of destinations in the
+	final insn of a LIBCALL block.
+
+	* flow.c (insn_dead_p): Add new argument CALL_OK.
+	(propagate_block): Pass new arg.
+	(libcall_dead_p): Indicate that we can accept a CALL when we use
+	insn_dead_p to see if the destination of the CALL is dead.
+
+	* genrecog.c (struct decision): Remove fields `dupcount'
+	and `reg_class' and all references; they were being set but never
+	used and are now obsolete.
+
+	* emit-rtl.c (gen_lowpart_common, operand_subword): Don't make
+	a new REG for the function return value until we after the RTL
+	is copied for possible inlining; use a SUBREG instead.
+
+	* combine.c (can_combine_p): Don't move insn past a volatile ref if
+	it is an `asm', even if non-volatile.
+
+	* gmicro.md: Fix punctuation problem causing syntax error.
+
+	* tm-rs6000.h (CONST_OK_FOR_LETTER_P): Add `O' and `P'.
+	* out-rs6000.c (reg_or_neg_short_operand): New function.
+
+	* rs6000.md (attribute "type"): New type `delayed_compare'.
+	Add define_function_unit for delayed comparisons.
+	Mark comparison results of certain insns as being delayed for
+	longer that normal comparison results; add a new missing types
+	of `compare'.
+	(seq, sle): Remove special-cases for (const_int 0) operands; use
+	alternative with constraint of `O' instead.
+	(sltu, sgeu): Support most constants in second operand.
+
+	* cse.c (prev_insn_cc0_mode): New variable.
+	(fold_rtx): When folding CC0, get the mode from prev_insn_cc0_mode.
+	(cse_insn): Save mode of SET of CC0 in prev_insn_cc0_mode.
+
+Sat Nov 23 17:01:47 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* expmed.c (init_expmed): Make REG a pseudo, not a hard reg.
+
+	* tm-m68k.h (RTX_COSTS): New macro.
+
+	* varasm.c (make_decl_rtl): Get rid of pedantic warning.
+
+	* gcc.c (link_command_spec): Delete code for handling -collect.
+	(default_compilers): Get rid of the %x for g++.
+	This is because now collect is always supposed to be run.
+
+	* tm-vms.h (ASM_OUTPUT_COMMON): Avoid void as type in :? operator.
+	* tm-sun3.h (ASM_OUTPUT_FLOAT_OPERAND, ASM_OUTPUT_DOUBLE_OPERAND):
+	Likewise.
+	* tm-vaxv.h (ASM_OUTPUT_ASCII): Declare `s' as unsigned char *.
+	* tm-crds.h (FUNCTION_EPILOGUE): Don't call FUNCTION_EXTRA_EPILOGUE.
+
+	* configure (i386-dontknow-*, ns32k-*-*): Alternatives deleted.
+	(m68k-tti2-*): Deleted.
+	(m68k-tti-*): Renamed from m68k-tti1-*.
+
+	* i860.md (floatsidf2): Escape the doublequotes.
+
+	* Makefile.in (final.o): Add insn-codes.h as dep.
+	(OBJS): Add dbxout.o.
+	(C_OBJS, OBJC_OBJS): Deleted here.
+	(CPLUS_OBJS): Deleted cp-dbxout.o.
+	(cp-dbxout.o): Target deleted.
+
+Sat Nov 23 06:33:24 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-spew.c (yylex): Don't see TYPENAME if LOOKING_FOR_TYPENAME
+	is < 0.  Definitely see TYPENAME if LOOKING_FOR_TYPENAME > 0.
+
+	* cp-decl.c (grokdeclarator): Any type construction that uses a
+	struct/union/enum type that is not yet defines pushes that type into
+	the global namespace.
+
+	* cp-spew.c (discard_token): Renamed from `eat_token'.
+	Also, make all local functions static.  Some day we'll use inlining.
+
+Thu Nov 21 16:06:14 1991  Mark Eichin  (eichin at cygnus.com)
+
+	* Makefile.in: added rule for cp-spew.o
+
+	* cp-parse.y (TYPENAME_SCOPE): added an action, since it is no
+	longer done in the lexer.
+	(yyprint): Took out case for TYPENAME_SCOPE.
+
+	* cp-lex.c (real_yylex): renamed from yylex. Also all of the code
+	dealing with nested classes has been #if 0'd in favor of the code in
+	cp-spew.c.
+
+	* cp-spew.c (New File): This calls yylex (which is now real_yylex)
+	and looks ahead as far as possible to bind up nested classes and
+	pass them on to the parser.
+
+Thu Nov 21 18:14:11 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* out-sparc.c (output_function_epilogue): Correct parameters in
+	call to final_scan_insn, write_symbols parameter no longer exists.
+
+	* integrate.c (save_for_inline_copying): Use GET_RTX_CLASS.
+
+Thu Nov 21 17:44:46 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* gcc.texinfo (PCC_BITFIELD_TYPE_MATTERS): Clarify that macro
+	must always be non-zero unless MEM extv/extzv/insv exist.
+
+	* romp.md (movdi): Disable define_split when we are moving
+	between overlapping registers prior to reload to work
+	around hard-to-fix sched.c bug.
+
+Thu Nov 21 17:14:54 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* jump.c (invert_exp): Correct typo in comment.
+
+Thu Nov 21 15:34:27 1991  Michael Meissner  (meissner at osf.org)
+
+	* gcc.texinfo (warning options): Make the documentation agree with
+	the code, -Wstrict-prototypes and -Wmissing-prototypes are not
+	turned on via -Wall; -Wnoparenthesis is now spelled
+	-Wno-parenthesis.
+	(option header): Mention that -W options take the no- prefix as well
+	as -f options.
+
+Thu Nov 21 08:12:51 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* out-m88k.c (check_float_value): Change use of REAL_VALUE_TRUNCATE.
+	* tm-m88k.h (FLOAT_TO_INT_INTERNAL): Ditto.
+	(AS_BUG_POUND_TYPE): Simplify.
+	* tm-m88kdgux.h: Don't need AS_BUG_DOT_LABELS or AS_BUG_POUND_TYPE.
+
+Thu Nov 21 06:47:11 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.md (scc): Add missing '&' in some alternatives of constraints.
+
+	* a29k.md (negdf2): Fix typo in constraints for SCRATCH in 29050 case.
+
+	* real.h (REAL_VALUE_TRUNCATE): Default is to truncate to float if
+	mode size is BITS_PER_WORD instead of when mode if SFmode.
+
+Thu Nov 21 01:58:27 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_type): Test TYPE_BINFO before TYPE_BINFO_BASETYPES.
+
+Thu Nov 21 01:45:53 1991  Ken Raeburn  (raeburn@cygnus.com)
+
+	* cp-parse.y (unary_expr): Break out `new' expressions with
+	parenthesized types into more basic forms, and handle trailing array
+	dimensions with an appropriate warning message.
+
+	* cp-class.c (pushclass): For UPType, overload the template name.
+	(popclass): For UPType, undo the overload.
+
+	* cp-decl.c (pop_decl_level): Don't look up DECL_NAME slot of a
+	null pointer.
+	(pushdecl_top_level): Reworked handling of shadow lists to be
+	correct.
+	(lookup_tag): Bypass redefinition error message for UPT as well as
+	for TEMPLATE_DECL.
+	(start_decl): Add template decls only to top level.  Print message
+	for non-function, non-class templates.
+	(finish_decl): Disable code that renames anonymous types; leave it
+	disabled until we figure out why it was being done in the first
+	place.
+	(grokdeclarator): Eliminate hack to deal with destructor templates.
+	Extend some code handling constructors to handle destructors as
+	well.  Deleted some unnecessary code dealing with function
+	templates.
+
+	* cp-decl2.c (constructor_name): Treat class template decl like
+	type decl.
+
+	* cp-lex.c (store_pending_inline): If a function is not to be
+	compiled, discard its text only if can_free flag is set.
+
+	* cp-decl.c (start_function): For `pre-parsed' functions, only
+	set extern-inline flag if inline flag is set.
+	* cp-lex.c (do_pending_inlines): Don't set inline flag for method
+	templates, regardless of default-inline flag setting.
+	(process_next_inline): Ditto.
+
+	* cp-method.c (dump_type): Do something semi-useful with UPT
+	nodes, instead of crashing.
+	(fndecl_as_string): For constructor and destructor, use name of
+	function rather than looking up class constructor name; should be
+	the same, and it's cheaper this way.
+	(build_overload_name): Make template-related names unique, as well
+	as unlikely to be accepted by the assembler.
+
+	* cp-parse.y (yyprint): Handle PRE_PARSED_CLASS_DECL.
+	(template_def): In case handling destructors, pass new decl to
+	end_template_decl, rather than ungrokked call_expr node.  Rewrote
+	last derivation.
+	(scoped_typename): Don't try building from template type; it doesn't
+	work.
+	(try_for_typename): Treat typename using template parms like any
+	other typename.
+
+	* cp-pt.c: New comment at start lists some known problems.
+	(end_template_decl): Do nothing for error_mark_node.  Check
+	DECL_CLASS_CONTEXT and DECL_EXTERNAL when setting TREE_EXTERNAL
+	field of template decl.  Don't need to pop extra class level for
+	non-operators any more, but do need to assign class context field.
+	(instantiate_member_templates): Now returns void.
+	(tsubst, case FUNCTION_DECL): Process flag fields of method as for
+	other functions.  Handle class context field.  Push decl at top
+	level only if decl context is null.
+	(tsubst, case TREE_LIST): Use via-public and via-virtual fields.
+	(do_pending_expansions): Correct handling of methods.
+
+	* cp-pt.c (overload_template_name): If not class-level, push
+	extra binding level.  Disable check that overload hasn't already
+	been done; for now, it's needed.
+	(undo_template_name_overload): Pop it.
+
+Thu Nov 21 00:15:33 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_type_methods): Don't dereference TYPE_NAME and
+	ctor_name until after checking for non-null methods.
+
+	* sched.c (create_reg_dead_note): New function.  Add a REG_DEAD note
+	for REG to INSN, reusing a REG_DEAD note from the dead_notes line.
+	(attach_deaths): Add quick exit for many rtx that can't contain a
+	register.  Rewrite REG_DEAD note code to use the new scheme (see
+	the Nov 1 ChangeLog entry).
+	(new_insn_dead_notes): Don't add a REG_DEAD note to an insn that
+	already has one.
+	(update_links): Must convert REG_UNUSED notes to REG_DEAD when a
+	register formerly just clobbered is now explicitly set and used in
+	the new split insns.
+
+Wed Nov 20 18:02:38 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* c-decl.c, cccp.c: Change all -Wno options to
+	-Wno- options so as to be consistent with toplev.c, and so as
+	to also be consistent with the -fno- options.
+	* objc-actions.c: Add a -Wno-selector option to match the
+	-Wselector option.
+
+	* gcc.c (default_compilers): Pass all -W options to cpp, so that
+	-Wno options will be passed along with the -W options that it
+	understands.
+	* cccp.c (main): Accept -Wno option counterparts for every
+	existing option.
+
+Wed Nov 20 00:03:41 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-tree.c (lang_output_debug_info): Deleted.
+	* cp-class.c (finish_struct): Set DECL_IGNORED_P on the TYPE_DECL
+	nodes for types that should not have their debugging info written
+	out.
+	* dbxout.c (dbxout_{symbol,type}): Check DECL_IGNORED_P for
+	TYPE_DECLs of RECORD_TYPE nodes.
+
+	* cp-decl.c (grok_op_properties): Fix bug in grokking NEW_EXPR
+	and DELETE_EXPR operators.
+	* cp-method.c (hack_operator): Deleted.
+	* cp-init.c (init_init_processing): Use `ansi_opname' for
+	{NEW,DELETE}_EXPR instead of calling hack_operator and build_opid.
+	* cp-decl2.c (grokopexpr): Deleted.
+	* cp-lex.c (build_opid): Deleted.
+	* cp-class.c (build_instantiated_decl): Deleted.
+	* All cp-* files: OP_IDENTIFIER is no longer used.
+
+	* cp-parse.y (operator_name): For most cases, Use `ansi_opname'
+	directly instead of calling `build_opid'.
+
+Tue Nov 19 16:02:51 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-decl.c (xref_tag): If we find wrong kind of type, return it.
+	(lookup_tag): Fill in pending_invalid_xref_file, ..._line.
+
+	* real.h (REAL_VALUE_TRUNCATE): New argument MODE.
+	* cse.c (simplify_unary_operation, simplify_binary_operation):
+	Pass that arg.
+	* c-parse.y, objc-parse.y, cp-lex.c (yylex): Likewise.
+	* fold-const.c (combine): Truncate floating result to fit mode.
+	(fold): Don't add 1 to float constant if that doesn't change the value.
+
+Tue Nov 19 09:37:36 1991  Michael Meissner  (meissner at osf.org)
+
+	* configure (ns32k-encore-osf): Restore Encore Multimax using the
+	OSF/rose object format, since the necessary files, such as
+	tm-encrose.h, are present in the distribution.
+
+Mon Nov 18 21:38:13 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* out-sparc.c (output_cbranch): Always emit a nop before a FP branch
+	to avoid illegal assembly output.
+	* sparc.md: Don't define delay slot for FP compare insns.  This was
+	meant to solve the above problem, but fails with insn scheduling.
+
+	* sparc.md (movsi): Must accept 'f' in addition to 'r' because
+	combine can convert FP hard registers to SImode.
+
+Mon Nov 18 13:43:12 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtlanal.c (replace_regs): Correct code that prevents nested SUBREGs.
+
+Mon Nov 18 13:43:12 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-decl.c (finish_decl): Reinstall lost end_temporary_allocation.
+
+	* tree.h (DECL_LANG_FLAG_8): Deleted.
+	* print-tree.c (print_node): Don't use it. Do print DECL_IGNORED_P.
+
+Mon Nov 18 06:59:37 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (value_identifier): Gone, following c-decl.c.  Now use
+	zero DECL_NAME for this purpose.
+	* cp-typeck.c: Also affected by this change.
+
+	* c-lang.c, objc-lang.c (lang_output_debug_info): New function.
+	* dbxout.c (dbxout_type_methods): Fix minor problems arising from
+	assuming all RECORD_TYPE are C++ RECORD_TYPE nodes.
+	(dbxout_type): Ditto.
+
+Sun Nov 17 17:33:58 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* tree.c (struct obstack_stack): New slots expression and rtl.
+	(push_obstacks, push_obstacks_nochange, pop_obstacks):
+	Save and restore all 4 obstack vars individually.
+
+	* c-decl.c (start_decl): Call push_obstacks_nochange here.
+	(push_parm_decl, grokfield): Also here.
+	(finish_decl): Not here.
+	Also clean up test for whether to replace DECL_INITIAL with error mark.
+
+Sun Nov 17 14:25:15 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-typeck.c (c_expand_return): Be more careful about throwing
+	away only cleanup generated by 'build_functional_cast'.
+
+	* cp-init.c (build_new): Use TRUE_TYPE instead of TYPE more
+	consistently, in case TYPE is really an ARRAY_TYPE on its own.
+
+	* cp-dbxout.c: Gone.  Now G++ uses dbxout.c.
+	* cp-tree.h (OPERATOR_NAME_P): Changed to IDENTIFIER_OPNAME_P.
+	(OPERATOR_TYPENAME_P): Changed to IDENTIFIER_TYPENAME_P.
+	(OPERATOR_{NEW,DELETE}_FORMAT): Deleted.
+	* cp-lex.c (ansi_{opname,assopname}): New variables.  All cp-* files
+	changed to use these where comparisons against *_FORMAT were made.
+	(init_lex): Initialize `ansi_{opname,assopname}' arrays.
+	Also, update {opname,assignop}_tab grok new ANSI equivalences.
+	(build_operator_fnname): Changed to build ANSI-style overloaded
+	names.
+	* cp-dem.c (optable): Add new ANSI equivalences.
+	(cplus_demangle): Fixed to recognize new ANSI demangling.  Note that
+	old-style destructors, and possibly other codes were broken by the
+	(undocumented) 27 Oct changes.
+
+	* cp-decl2.c (grokclassfn): Set DECL_CLASS_CONTEXT here.
+	* cp-class.c (finish_struct): Don't skip over FUNCTION_DECL that
+	already has a DECL_CLASS_CONTEXT.
+
+	* cp-except.c (cplus_expand_end_try): Set BLOCK_HANDLER_BLOCK for
+	blocks that handle exceptions.
+	(EXCEPTION_NAME_PREFIX): Shorted to "__ex" (from "__exception").
+	(EXCEPTION_NAME_LENGTH): Reduced to 4 from 12.
+
+	* dbxout.c (flag_minimal_debug): Define new variable that is
+	non-zero when symtab output routines can output abbreviated.
+	(dbxout_type_fields): Move code that writes out debugging info about
+	fields of RECORD_TYPE and UNION_TYPE nodes from `dbxout_type' into
+	this function. 
+	(dbxout_type_{method,method_1}): Move code from `dbxout_type' into
+	these new functions.
+	(dbxout_type): Now writes out info about basetypes.  Also, no longer
+	need to record info about types having ctors, dtors, or both.  GDB
+	now figures out what it needs to, when it needs to.
+	(dbxout_symbol): Implement special abbreviated form for C++ classes,
+	which place their names in both the struct and decl namespaces.
+	(dbxout_block): Write out special debugging stabs for exception
+	handler blocks.
+
+	* tree.h (BLOCK_HANDLER_BLOCK): Define new flag to indicate that a
+	BLOCK is an exception handler block (a `catch' block for C++).
+	(TREE_VFIELD, DECL_IGNORED_P): New macros.
+
+Sat Nov 16 22:21:56 1991  Jeffrey A Law  (law at super.super.org)
+
+	* tm-m68k.h (CONST_COSTS): Integer values between -128 and 127
+	inclusive are very cheap because of moveq.  
+
+Sat Nov 16 00:40:04 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (install-cross-tools): Avoid clobbering symlinks already
+	made.  Double the $ before the @ in the indirection script.
+
+	* t-decstatn: New file.
+	* configure: (mips-dec-ultrix*): Use t-decstatn.
+
+	* collect-ld: Always run collect if collect is installed.
+
+	* collect-osf.c, enquire.c, gnulib2.c: Use gstddef.h, not stddef.h.
+
+	* gnulib2.c (__eprintf): Undef NULL.
+
+	* c-typeck.c (build_array_ref): Ref is volatile if array is volatile.
+
+Fri Nov 15 19:53:41 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_binary_op_nodefault): Delete ERROR_CODE
+	argument because it is always the same as CODE.  Add new argument
+	CONVERT_P, and call default_conversion on the operand trees if
+	true.  Rename to build_binary_op.
+	(old build_binary_op): Deleted because it is now unnecessary.
+	* c-common.c, c-convert.c, c-decl.c, c-tree.h, c-typeck.c: All
+	callers and other references to build_binary_op* fixed.
+	* c-typeck.c (new build_binary_op): Add warning message for
+	comparisons of signed and unsigned variables that won't give the
+	expected result due to unexpected sign extension.
+
+	* expr.c (convert_move): Add TFmode support and clean up code.
+	* optabs.c (init_fixtab): Add TFmode support.
+	(init_floattab): Likewise.
+	(expand_float): Likewise.
+	(expand_fix): Likewise.
+	(init_optabs): Likewise.
+
+	From Per Bothner:
+	* collect2.c: Define vfork as fork for USG.  Rewrite to not use
+	prototypes, so it doesn't need gcc for compilation.
+	(main): No longer uses static sized array for ld arguments, so
+	that long command lines will work.  Vfork ld instead of running
+	via popen with nm.
+	(write_hooks): Use type names not variable names in sizeof calls.
+
+Fri Nov 15 15:01:41 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* fold-const.c (size_int): Properly preserve old obstack settings.
+	* c-decl.c (finish_decl, grokdeclarator, xref_tag): Likewise.
+	* stor-layout.c (layout_type): Likewise.
+	* varasm.c (output_constant_def): Likewise.
+	* tree.c (push_obstacks_nochange): New function.
+
+	* stor-layout.c (layout_type): Make size of temp type saveable.
+	* tree.c (saveable_allocation): New function.
+
+	* configure: Comment out certain alternatives not yet updated.
+	(sparc-unicom-*, m68k-tti1-*, m68-tti2-*): New alternatives.
+	(m88k-*-v88r32*): New alternative.
+	(i386-alternate-sysv): New alternative, not sure why.
+	(sparc-*-sysv*): Commented out--not really supported.
+
+Fri Nov 15 22:22:32 PDT 1991  Mike Stump (mrs at csun.edu)
+
+	* configure: Recognize only canonical names.  Added missing entries
+	for some configurations that obviously have not been tested in a
+	while.
+
+	* config.subr: Massive overhaul.  It claimed to canonicalize
+	the machine specification, but it never really did.  Now it
+	does.  In general, it is not necessary to specify the os for
+	popular machines that have a popular os, or given the os, it
+	can sometimes figure out the vendor.  Added in all the old
+	ways of specifying machines from configure.  Also added
+	support for all (before it was missing a few) of the tm-*.h
+	files.  It now supports the concept of guessing the vendor for
+	a given CPU type.  It now supports the concept of guessing the
+	os version given the vendor and/or the CPU type.  Changed the
+	default os for vax to ultrix, changed the default os for i386
+	to sco.
+
+	* collect-ld:  New file.  It is useful when compiling C++ programs
+	on machines that use collect.  This includes the decstation.
+
+Fri Nov 15 14:19:29 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* out-sparc.c: Singlemove_string no longer static.
+	(emit_move_sequence): Emit sethi/low_sum insn pair for values which
+	are not arith_double_operands, was missing not.
+	* sparc.md: DImode sethi pattern now uses singlemove_string to load
+	a constant into a reg.
+	* tm-sparc.h (LEGITIMATE_CONSTANT_P): Accept anything except a
+	floating point constant.
+	Declare singlemove_string so it can be used in sparc.md.
+
+	* jump.c (jump_optimize): Correct typos in comments.
+
+Fri Nov 15 08:05:26 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* out-rs6000.c (scc_comparison_operator): Allow non-FP EQ.
+
+	* combine.c (subst, case NEG): Correct shift count in code that
+	negates ZERO_EXTRACT to SIGN_EXTRACT.
+
+Thu Nov 14 23:03:46 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* genrecog.c (try_merge_1): Add big new comment.
+
+Thu Nov 14 19:28:57 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* m68k.md: Fix peephole that merges a stack adjust with a push to
+	use addqw instead of addql since we know we are incrementing an
+	address register (sp).
+
+	* loop.c (scan_loop): Rework code that looks for loops starting at the
+	exit test; don't skip non-jump insns at start of loop and modernize
+	and clean up code.
+
+	* gcc.texinfo (SECONDARY_RELOAD_CLASS): Update description to
+	show uses for both intermediate and scratch registers.
+	* reload.h (SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS): Default from
+	SECONDARY_RELOAD_CLASS, if defined.
+	(HAVE_SECONDARY_RELOADS): Defined if any of the secondary reload
+	macros are defined.
+	(reload_secondary_icode, reload_{in,out}_optab): New vars.
+	* reload.c: Include insn-codes.h.
+	(find_secondary_reload): New function.
+	(push_reload): Call find_secondary_reload to process input and
+	output reloads.  Create both secondary and tertiary reloads,
+	as required.
+	* reload1.c: Include insn-codes.h.
+	(init_reload): Initialize reload_{in,out}_optab.
+	(emit_reload_insns): Handle cases where a secondary reload
+	is a scratch register and where tertiary reloads are required.
+	* Makefile.in (reload.o, reload1.o): Now include insn-codes.h.
+
+	* tm-romp.h (SECONDARY_OUTPUT_RELOAD_CLASS): Define to use a BASE_REGS
+	for symbolic memory locations.
+	* romp.md (reload_outsi, reload_outhi, reload_outqi): New patterns.
+
+	* expr.c (expand_expr): Pass BRANCH_COST to do_store_flag.
+	(do_store_flag): Canonicalizations done in emit_store_flag
+	need to be done here as well.
+	Test for ffs as well as abs when seeing if scc is expensive.
+	* expmed.c (emit_store_flag): Correct cases that are open-coded:
+	Add a few missing cases and correct handling of normalizep.
+	* combine.c (simplify_shift_const, case IOR): Convert sequence
+	open-coded by emit_store_flag into LE or (neg (le ..)), as
+	appropriate.
+	(simplify_shift_const, case MINUS): Similarly, for GT.
+	(simplify_comparison): sign_bit_comparison_p now true only if
+	also comparing against constant zero.
+	(simplify_comparison, case NOT): If sign bit comparison, just
+	reverse comparison.
+	(simplify_comparison, case MINUS): Move case where we subtract
+	one from the absolute value of something to PLUS, since we
+	subtract one using a PLUS operation.
+	(simplify_comparison, case MINUS): Handle GT case done by
+	emit_store_flag.
+	(simplify_comparison, cae IOR): Similarly, for IOR.
+
+	* tm-rs6000.h (BRANCH_COST): Define as 2.
+	* rs6000.md (scc): Allow some more cases.
+	(new scc patterns): Add numerous patterns to reflect superoptimizer
+	results for scc insns on RS/6000.
+
+Thu Nov 14 16:42:19 1991  Michael Meissner  (meissner at osf.org)
+
+	* mips-tfile.c (all): Change small allocation requests to use
+	separate allocation and free functions, instead of using the word8
+	union to hold each request.  In order to support this easily, a free
+	field was added to each small structure that is released.
+	(main): If debugging, print a summary of the number of small
+	allocations, frees, and the number of pages used.
+	(add_procedure, copy_objects): Stuff the pointer to the end symbol
+	into the shash chain, and use it's value to generate the new value
+	for the computed end block.  This is much safer than trying to
+	calculate this on the fly.
+	(main): Don't try to avoid using malloc by setvbuf'ing the streams
+	we use.
+
+Wed Nov 13 23:47:10 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	From tege@sics.se:
+	* sparc.md: In DF load peephole, use operands not xoperands, so
+	that output_asm_insn will use the right values.
+
+	* tm-sun3.h, tm-sun2os4.h: Define PTRDIFF_TYPE, SIZE_TYPE,
+	WCHAR_TYPE same as tm-sparc.h.
+
+	* c-decl.c (finish_function): Don't clear current_function_decl
+	for nested functions.
+
+	* dbxout.c: Include insn-config.h and reload.h.
+	(dbxout_symbol): Pass DECL_RTL (decl) through eliminate_regs before
+	using.
+	(dbxout_parms): Pass DECL_RTL and DECL_INCOMING_RTL of parms through
+	eliminate_regs before using.
+	* sdbout.c: Include insn-config.h and reload.h.
+	(sdbout_symbol): Pass DECL_RTL (decl) through eliminate_regs before
+	using.
+	(sdbout_parms): Pass DECL_RTL and DECL_INCOMING_RTL of parms through
+	eliminate_regs before using.
+	* Makefile.in: Update dependency lists for dbxout.c and sdbout.c.
+
+	* combine.c (try_combine): Don't pass sets with (USE (MEM ...))
+	dests to reg_referenced_p.
+
+Wed Nov 13 21:38:03 1991  John Bunda (bunda at cs.utexas.edu)
+
+	* reload1.c (gen_input_reload): If IN is a PLUS whose second arg
+	is the same as the reload register, swap the args of the PLUS.
+
+Wed Nov 13 14:43:09 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* tm-sparc.h (OPTIMIZATION_OPTIONS): Don't redefine options set in
+	toplev.c, only effect flag_omit_frame_pointer.
+	
+	* sparc.md: Delete obsolete sign_extract and zero_extract patterns.
+	We get better code without them.
+	(indirect_jump, tablejump): Extend indirect_jump pattern to accept
+	any address, not just a register.  Add tablejump like pattern which
+	also accepts any address.
+
+	* unroll.c (final_biv_value): Make sure the initial value of the biv
+	is invariant if it is used after the loop.
+
+Tue Nov 12 23:16:51 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-mips.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Correct so
+	ASM_OUTPUT_REG_PUSH actually does a push instead of pop, and vica
+	versa.  Also make ASM_OUTPUT_REG_POP turn on .set noreorder, and
+	increment the appropriate -mstats load delay counters.
+
+Tue Nov 12 22:53:45 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.h (BRANCH_COST): Supply default value here.
+	* jump.c (BRANCH_COST): Don't default BRANCH_COST here.
+
+	* global-alloc.c (global_alloc): Use proper entry in eliminables
+	when searching for the frame pointer.
+
+Tue Nov 12 22:23:36 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+
+	* expr.c: (expand_expr, MIN_EXPR case): Check for const_true_rtx
+	not const1_rtx as return value from compare_from_rtx.
+	(do_jumps_by_part_greater): Handle const0_rtx and const_true_rtx
+	return values from compare_from_rtx.
+	(do_jumps_by_part_equality, do_jumps_by_part_equality_rtx): Likewise.
+
+	* sched.c (sched_analyze_2): Correctly handle ASM_OPERAND and
+	ASM_INPUT rtx.  Volatile and traditional asm statements are
+	assumed to use and clobber all hard registers and all memory.
+	(schedule_block): Delete code that incorrectly handles ASM_OPERAND
+	and ASM_INPUT rtx by exiting early.
+
+Tue Nov 12 15:38:56 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* sched.c: Introduce names for various priority values.  Reduce
+	LAUNCH_PRIORITY to avioid wrap-around in launch_link.
+
+Tue Nov 12 14:21:52 1991  Per Bothner  (bothner at cygnus.com)
+
+	* cp-lex.c (init_lex):  Exception-handling fixes.
+	* cp-tree.h:  Add new OPERATOR_CHARS_P that is like
+	OPERATOR_NAME_P, except if takes a (char*), not a tree.
+	* cp-dbxout.c (dbxout_type_methods):  Handle operators
+	specially when chopping prefix for minimal_debug.
+
+	* config/tm-news.h: In PRINT_OPERAND, recognize new 68040
+	operand types.  Add definition of CPP_DEFINES for cross-compiling.
+
+Tue Nov 12 13:11:01 1991  Michael Meissner  (meissner at osf.org)
+
+	* protoize.c (__OSF1__ ifdef): Remove OSF/1 specific ifdefs, since
+	the problem they address has been fixed, and the ifdefs now cause
+	spurious warnings.
+
+	* tm-mips.h (INT_TYPE_SIZE): Define.
+	(SHORT_TYPE_SIZE): Define.
+	(LONG_TYPE_SIZE): Define.
+	(LONG_LONG_TYPE_SIZE): Define.
+	(CHAR_TYPE_SIZE): Define.
+	(FLOAT_TYPE_SIZE): Define.
+	(DOUBLE_TYPE_SIZE): Define.
+	(LONG_DOUBLE_TYPE_SIZE): Define.
+
+	* out-mips.c (block_move_load_store): New commn function to create
+	one load and store for the block move functions.  The load is
+	emitted directly, and the store is returned, to be emitted later.
+	(block_move_sequence): Call block_move_load_store.  For straight
+	line moves, have two outstanding loads before a store, for newer
+	machines that want two delay slots.
+	(block_move_loop): Call block_move_load_store.  Move 4 words per
+	loop, for a loop that moves 16 bytes in 11 cycles if aligned, and 16
+	bytes in 19 cycles if not aligned.
+	(block_move_memcpy): Change argument names for consistancy.
+	(expand_block_move): Always move address into a register, even for
+	one byte moves.  Fix bugs in calling memcpy.  If moving a large
+	constant amount of unaligned data, emit a runtime check to see if
+	the data is really aligned, and if so do an aligned move, otherwise
+	an unaligned move loop.
+
+	* mips-tfile.c (toplevel): Make some changes, so that mips-tfile can
+	be debugged on OSF/1.
+	(efdr structure): Align identifiers in declaration.
+	(cur_proc_value): Delete variable.
+	(cur_oproc_begin): New global to record original proc .ent symbol.
+	(cur_oproc_end): New global to record original proc .end symbol.
+	(add_procedure): Set cur_oproc_begin, cur_oproc_end variables
+	instead of cur_proc_value.
+	(parse_begin, parse_end): Add check for cur_oproc_begin being set.
+	(parse_end): Use cur_oproc_end's value node for new value node.
+	(main): Add cast to free_multiple_pages call.
+
+Tue Nov 12 08:57:39 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* jump.c (jump_optimize): Merge the "if (...) x = 0;" case with
+	the "x = a; if (...) x = b;" case.
+
+Mon Nov 11 19:27:03 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cp-cvt.c (convert_pointer_to): Correctly get type of a TREE_VEC
+	object.  (This patch is from someone at Cygnus.)
+
+	* combine.c (try_combine): Add missing parens.
+
+Mon Nov 11 19:26:24 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* c-typeck.c (build_binary_op_nodefault, convert_for_assignment):
+	A (void *) object is compatible with a function pointer if it is
+	the constant zero.
+	(build_conditional_expr): Properly check for pointers to functions.
+
+Sun Nov 10 19:59:12 1991  Michael Meissner  (meissner at osf.org)
+
+	* cccp.c (make_undef): Fix by off by one error.
+	(MIN, MAX): Add #undef, in case some system include file defined
+	these macros.
+
+Sun Nov 10 10:34:17 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl2.c (grokfield): Set TREE_EXTERNAL on static const
+	decls that are either uninitialized in their initial declaration,
+	or initialized by something we cannot evaluate at initial
+	declaration time.
+
+	* cp-init.c (build_new): Make `operator new' with placement cast
+	its return type to the type of the object being allocated.
+
+	* cp-typeck.c (commonparms): If the last element of P1 is
+	VOID_LIST_NODE, use that.
+
+	* stor-layout.c (layout_record): Return PENDING_STATICS.
+	(layout_type): Don't commit static members to a particular mode
+	until REC has been laid out completely.
+
+Sat Nov  9 23:16:51 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cccp.c (fancy_abort): Don't declare as static.
+
+Sat Nov  9 20:38:30 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (push_overloaded_decl): Don't cons new decl to
+	existing ERROR_MARK_NODE.  If the old decl was erroneous, just
+	ignore it.
+
+	* cp-call.c (ideal_candidate): Fix typo in error message.
+
+Sat Nov  9 14:13:46 1991  Jeffrey A Law  (law at super.super.org)
+
+	* tm-hp9k2bsd.h (MULSI3_LIBCALL): New define which avoids
+	the use of __mulsi3 for signed integer multiplication.
+	(UMULSI3_LIBCALL, DIVSI3_LIBCALL, UDIVSI3_LIBCALL): Likewise.
+	(MODSI3_LIBCALL, UMODSI3_LIBCALL): Likewise.
+
+Fri Nov  8 12:05:39 1991  Per Bothner  (bothner at cygnus.com)
+
+	First cut at ANSI-style exception handling (using
+	syntax and semantics of Stroustrup 2nd ed).
+	THIS IS WORK IN PROGRESS!
+	* cp-tree.h:  Declare flag_ansi_exceptions.
+	* gplus.gperf:  Add 'throw' (for ANSI exception handling),
+	and update private/protected/public from (old) cp-lex.c.
+	* cp-hash.h:  New file, generated from gplus.gperf.
+	* cp-lex.c: #include cp-hash.h, instead of requiring
+	manual cut-and-paste when keywords are changed.
+	* cp-lex.c:  Commented out some extern declarations that
+	were conflicting with inlines in cp-input.c.
+	Hooks for ANSI-style exception handling.
+	* cp-parse.y:  Parse ANSI-style exception stuff.
+	* cp-decl2.c:  Define new flag flag_ansi_exceptions.
+	* cp-decl2.c (finish_table):  Off-by-one error in
+	calculating index type.
+	* clus-decl2.c (finish_vtable_vardecl):  Add missing
+	TREE_OPERAND to get dossier decl.
+	* cp-except (cplus_expand_start_except):  Allow NULL name,
+	since there is no distinguished name for ANSI exceptions.
+	* cp-except (cplus_expand_raise):  Too few
+	parameters to expand_expr; add them.
+	* cp-except.c:  New functions for ANSI exceptions:
+	cplus_exception_name, ansi_exception_object_lookup,
+	cplus_expand_throw, ansi_expand_start_catch.
+	These are heavily hacked from similar old functions.
+
+	Try to make -fdossier work better (but more work is needed).
+	(Especially, generate fewer unneeded descriptors.)
+	* cp-class.c (add_virtual_function, finish_struct):  Do not
+	create a vtable just because of -fdossier.
+	* cp-gc.c:  Each type points to an array of fields,
+	instead of an array of pointers to fields.  Ditto for methods.
+	This saves one pointer per field or method by removing
+	unneded extra indirection.  Also other tweaks to save space.
+	* cp-decl.c (init_decl_processing):  Add length of
+	field and method arrays to descriptors, instead of
+	relying on NULL-termination (since we no longer have
+	the extra pointer array).
+	Make the parameter count and required count of
+	method descriptors be shorts.
+	* cp-method.c:  Remove no-longer-needed functions
+	build_i_desc_overload and build_m_desc_overload.
+
+	Other C++ fixes:
+	* cp-dbxout.c (dbxout_symbol):  Class types were
+	emitting only a "t" spec which made gdb unhappy.
+	Kludged it so that it once more emits "Tt".
+	* cp-tree.c (lang_output_debug_info):  Do emit debugging
+	info if this implementation file corresponds the the
+	type's interface, even if nothing is written.
+
+Fri Nov  8 08:18:55 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* tm-m88k*.h: Fix comments, minor cleanups.
+
+Thu Nov  7 16:21:05 1991  Torbjorn Granlund  (tege at mole.gnu.ai.mit.edu)
+
+	* longlong.h (__ibm032__): Fix operand order for add_ssaaaa and
+	sub_ddmmss.
+
+Thu Nov  7 12:47:14 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-mips.h (MIPS_VERSION): Bump meissner version number to 3.3.
+	(PCC_BITFIELD_TYPE_MATTERS): Define this to be 1.
+
+	* out-mips.c (block_move_loop): New function to generate a loop to
+	do a block move.
+	(block_move_call): Pass the source, destination, size as separate
+	arguments, rather than a pointer to an array of operands.
+	(expand_block_move): Change block_move_call calling sequence.
+	(expand_block_move): If moving big aligned items, generate a loop to
+	do it, rather than calling memcpy/bcopy.
+	(override_options): If -msoft-float, 'f' constraint picks GP
+	registers.
+
+	* t-decrose (collect): Use ALL_CFLAGS instead of CFLAGS, since this
+	gets the shared library flags in x-decrose.
+
+Thu Nov  7 07:57:36 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* tm-m88k.h (MEMORY_MOVE_COST): Define.
+	(TARGET_88*): Fix.
+
+Wed Nov  6 19:07:42 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* a29k.md (negsf2, negdf2): Add missing CLOBBER in 29050 case.
+
+	* jump.c (jump_optimize): When looking for a conditional jump
+	skipping an unconditional jump, be sure the conditional jump is
+	not an unconditional jump.
+
+	* combine.c (try_combine): If we make an unconditional jump,
+	be sure it is followed by a BARRIER.
+	(subst, case SET): Convert (set (pc) (return)) to (return).
+
+Wed Nov  6 13:41:55 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* tm-m88kv3.h, xm-m88kv3.h: Renamed from *m88ksysv3*.
+
+Wed Nov  6 09:27:16 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-mips.h (MIPS_VERSION): Bump meissner version number to 3.2.
+	(TARGET_SWITCHES): Add -msoft-float and -mhard-float.
+	(GP_RETURN): Use GP_REG_FIRST as base of GP registers.
+	(FP_RETURN): Use FP_REG_FIRST as base of FP registers.  If
+	-msoft-float, make $2 be the return register.
+	(GP_ARG_FIRST, GP_ARG_LAST): Use GP_REG_FIRST as 1st GP reg.
+	(FP_ARG_FIRST, FP_ARG_LAST): Use FP_REG_FIRST as 1st FP reg.
+
+	* mips.md (ffssi2, ffssi2_internal): Fix ffs builtin so that it
+	doesn't clobber the input argument by turning it into a
+	define_expand, and using a parallel operation including the
+	necessary clobber's.
+	(abssi2, ffssi2, ffssi2_internal): Use the 'd' constraint which only
+	matches the integer registers, rather than 'r' which can match
+	floating point registers as well.
+
+	* tm-mips-news.h (CPP_SPEC): Add -Dnews7300, -Dsony_news, -Dmips,
+	and -Dhost_mips.
+
+Wed Nov  6 08:46:54 1991  Mark Eichin  (eichin at cygnus.com)
+
+	* cp-class.c (add_method): when adding a new constructor or
+	destructor, actually chain onto method_vec[0] rather than replacing
+	the list with the current entry.
+
+Wed Nov  6 07:04:55 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (store_field): Handle case where we are storing into a BLKmode
+	field of an object that is in a register.
+	(expand_expr, case COMPONENT_REF): Handle case where we are extracting
+	a BLKmode field from an object in a register.
+
+Tue Nov  5 22:16:39 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-mips.h (target_flags): Delete second declaration.
+	(MASK_G0, MASK_G1, MASK_G2): Delete, since -G xx now works to set
+	the size of the small data/bss area cutoff.
+	(MASK_G012_USED, MASK_G012_NUSED): ditto.
+	(TARGET_GVALUE): ditto.
+	(TARGET_G012_USED): ditto.
+	(TARGET_SWITCHES): Delete -mGx, -mno-Gx switches.
+	(TARGET_DEFAULT): Set to 0 instead of MASK_G012_NUSED.
+
+	* tm-decrose.h (TARGET_DEFAULT): Eliminate MASK_G012_NUSED.
+
+	* out-mips.c (override_options): Remove support for -mGx and -mno-Gx
+	switches to set the cutoff size for small data/bss.
+
+	* mips.md (abssi2): Add new pattern.
+	(ffssi2): Add new pattern.
+
+Tue Nov  5 18:36:29 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* gcc.texinfo (MEMORY_MOVE_COST): Document new macro.
+	* regclass.c (MEMORY_MOVE_COST): Default it to 2.
+	(regclass, reg_class_record): Use MEMORY_MOVE_COST, not constant 2.
+	(regclass): Look at result of single_set instead of checking again if
+	pattern is a SET.
+	* tm-rs6000.h (MEMORY_MOVE_COST): Add definition.
+
+Tue Nov  5 17:01:05 1991  Ken Raeburn  (raeburn at cygnus.com)
+
+	* cp-pt.c (tsubst): For char_type_node, just build variant and
+	return it.
+	(tsubst, case FUNCTION_DECL): Walk methods more efficiently.
+
+	* cp-pt.c (overload_template_name): Push a binding level, to
+	separate template name binding from method parameters.  Check
+	identifier value slots for TYPE_DECLs, not RECORD_TYPEs.  Don't need
+	to do extra push of TYPE_DECL for template name.
+	(undo_template_name_overload): Pop it.  Don't need to explicitly
+	clear template name binding.
+
+	* cp-ptree.c (print_lang_decl): For FIELD_DECL, don't try to
+	print fields that go off the end of the lang_decl_flags structure.
+
+	* cp-pt.c (pop_template_decls): Don't explicitly clear out value
+	slots of identifier; let poplevel/poplevel_class do it.
+
+	* cp-pt.c: Use build_lang_decl insteaed of build_decl for
+	all TEMPLATE_DECL and TYPE_DECL nodes.
+
+	* cp-tree.h (make_anon_name): Declare it.
+
+	* cp-pt.c (unify): Deleted unreachable code.
+
+	* cp-decl.c (push_overloaded_decl): Fixed typo from merge.
+	(start_decl): Ditto.
+	(grokdeclarator, case CALL_EXPR): Remove debug_tree call
+	accidentally left in.  Handle constructor templates specially, like
+	destructor templates.  Removed some commented-out code.
+	(grokdeclarator, case SCOPE_REF): If the type is uninstantiated,
+	treat it like any other aggregate type code.
+
+	* cp-lex.c (identifier_typedecl_value): If no binding slot from
+	the identifier is the right type decl, use the type name if it is
+	non-null, even if the name doesn't match.
+	(build_lang_decl): If new decl node is TREE_PERMANENT, make sure the
+	lang-specific info gets allocated that way too; don't assume that
+	the current obstack is permanent.
+	(copy_decl_lang_specific): If decl is TREE_PERMANENT, assert that
+	the current obstack is permanent.
+
+	* cp-parse.y (template_def): Delete derivations that were
+	purportedly for constructors; they didn't work.
+	(notype_declarator): Deal with them here.
+	(template_instantiate_once): Copy decl node with permanent obstacks,
+	thereby clearing the chain pointer, before pushing it into top
+	level.
+	(structsp): Don't need to undo template name overload here.
+	(scoped_typename): Want TYPENAME with template type, not PTYPENAME.
+
+Tue Nov  5 13:46:06 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* sdbout.c (sdbout_init, sdbout_symbol): Don't reverse the
+	permanent types.  
+
+	* cccp.c (make_definition): Eliminate previous change associated
+	with pretty-printing strings passed to do_define.
+	(pass_thru_directive): Move pretty-printing here.
+
+Tue Nov  5 11:21:34 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-mips-news.h (ASM_SPEC, LINK_SPEC): Correctly pass -EB instead
+	of -EL, since the Sony News system is big endian not little endian.
+
+Tue Nov  5 09:54:08 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* tm-m88kv4.h, t-m88kv4, x-m88kv4: Renamed from *m88ksysv4*.
+
+Tue Nov  5 06:36:07 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_relational_operation, unsigned comparisons): Don't
+	simplify unless mode of operand is a MODE_INT mode.
+
+	* Makefile.in (*CFLAGS): More clearly document the purposes of each
+	of the flags.  Add X_CFLAGS and T_CFLAGS for x-* and t-* to override.
+	* x-decrose, x-hp9k320g, x-i386isc, x-m88ksysv4, x-mips, x-tower:
+	Override X_CFLAGS instead of CFLAGS or INTERNAL_CFLAGS.
+	* x-vax: Likewise.
+	* x-sco: Don't include XCFLAGS in definition of CFLAGS.
+
+	* gstddef.h: Renamed from stddef.h.
+	* Makefile.in (USER_H, install-common-headers): Install gstddef.h as
+	stddef.h.
+
+Mon Nov  4 17:54:04 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* integrate.c (save_constants): If we are referencing a constant in
+	the constant pool in a different mode than its normal mode, make
+	a SUBREG so that we can record both modes.
+	(copy_for_inline, restore_constants): Handle these SUBREG's.
+	(copy_for_inline): Must copy a MEM if it's address contains an
+	ADDRESS (i.e., the address of a constant pool entry).
+
+	* expr.c (expand_expr, case PLUS_EXPR): If adding constant, FP, and
+	something else, add FP to the constant and then add the other operand.
+
+	* global-alloc.c (find_reg): If all_regs_p, use ALL_REGS, not
+	GENERAL_REGS.
+	* local-alloc.c (block_alloc): Likewise.
+
+	* genoutput.c (gen_expand): Record all the same information as
+	for a DEFINE_INSN.
+
+	* cse.c (simplify_binary_operation, case PLUS): Simplify expressions
+	like (a +/- b) - (a +/- c).
+	(simplify_binary_operation, case MULT): For X * (-1), try to simplify
+	the NEG before we make it.
+
+Mon Nov  4 16:29:01 1991  Mark Eichin  (eichin at cygnus.com)
+
+	* cp-pt.c (overload_template_name): use build_lang_decl so that
+	lang_specific gets initialized properly.
+
+	* cp-parse.y (LC): use make_lang_type to produce complete node,
+	not just make_node.
+
+	* cp-ptree.c (print_lang_type): return if TYPE_LANG_SPECIFIC is
+	null, since everything printed here is in lang_specific.
+
+Mon Nov  4 16:17:48 1991  James Van Artsdalen  (james at raid.dell.com)
+
+	* x-i386v4: New file.
+	* configure (i386-sysv4): Use it.
+
+Mon Nov  4 12:36:09 1991  Michael Meissner  (meissner at osf.org)
+
+	* gcc.texinfo (BRANCH_COST): Move so BRANCH_COST formats correctly.
+
+Mon Nov  4 08:03:44 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* x-m88kdgux, x-m88ksysv4: Don't set XCFLAGS.
+
+	* jump.c (jump_optimize):  Change "if (...) x = 0;" to use a
+	store-flag insn if jumps are expensive (BRANCH_COST).
+
+	* tm-m88k.h (BRANCH_COST): Branches are cheap on the m88100.
+	(OVERRIDE_OPTIONS): Make m88100 the default.
+	(STORE_FLAG_VALUE): Use -1.
+	(.ctors and .dtors sections): Change section flags.
+	* m88k.md (sxx, negate sxx): Use ext and extu.  Eliminate extendsxx.
+
+Mon Nov  4 07:19:36 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* romp.md (movdf, movdi): When splitting, ensure we put in a CLOBBER
+	for a scratch register, when needed.
+
+	* tm-a29k.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Define to be 
+	compatible with those chosen by EPI.
+
+	* tm-rs6000.h (REG_ALLOC_ORDER): Put CR registers before integer regs.
+
+	* cse.c (simplify_relational_operation): Fix error in last change.
+
+Sun Nov  3 12:22:41 1991  Torbjorn Granlund  (tege at sics.se)
+
+	* longlong.h (m68020 count_leading_zeros): Fix typo in previous
+	change.
+
+Sun Nov  3 09:25:39 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_relational_operation, cases GEU, LTU, GTU, LEU):
+	Simplify comparisons that have known values such as (unsigned) x < 0.
+
+	* final.c (final_scan_insn): If we've just made a branch unconditional,
+	convert (set (pc) (return)) to (return).
+	Use const_true_rtx instead of calling gen_rtx to make it again.
+
+	* x-romp (CC): Pass -Hnocpp to hc so it will use builtin preprocessor.
+	(INTERNAL_CFLAGS): Don't define BSTRING here.
+	* xm-romp.h (alloca): Add definition to allow use of hc's builtin.
+	(BSTRING): Define here.
+
+	* reload1.c (spill_hard_reg): Correct typo in previous change; had
+	test backwards.
+
+	* function.c (instantiate_virtual_regs_1, case PLUS): If can't
+	replace operand with register, try to replace all copies of operand
+	with the register in case of MATCH_DUP.
+
+	* recog.c (validate_replace_rtx_1): Use rtx_equal_p to see if
+	things are equal.
+
+	* genconfig.c (max_recog_operands, max_dup_operands): Remove `_flag'
+	in name since these aren't flags.
+	(max_clobbers_per_insn): Likewise.
+	(main): Default to at least 10 operands (for asm) and 1 dup operand.
+
+Sun Nov  3 07:26:57 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* Makefile.in (gnulib1.null): Use $(GCC_FLAGS) instead
+	of $(CCLIBFLAGS).
+	(gnulib1): Don't copy gnulib1.c into a temporary .c file before
+	compiling.  That messes up the source file names in the debug info,
+	which makes it harder to debug gnulib1 problems.
+
+	* Makefile.in (install-*): Force removal of previously installed files
+	before installing new ones (in case they got set to read-only somehow).
+
+	* Makefile.in (uninstall): Remove protoize.1 and unprotoize.1 man
+	page files.
+
+Sat Nov  2 22:42:06 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* out-a29k.c (output_epilog): Remove write_symbols from parameter list
+	of call to final_scan_insn.
+	* out-m88k.c (preserve_registers): Likewise.
+	* out-mips.c (function_epilogue): Likewise.
+	* out-sparc.c (output_function_epilogue, output_tail_call): Likewise.
+
+Sat Nov  2 22:02:45 1991  Ken Raeburn  (raeburn at cygnus.com)
+
+	* cp-search.c (push_class_decls): Added missing argument to
+	overload_template_name.
+
+	* cp-ptree.c (print_lang_decl): Don't print lang-specific fields
+	for FIELD_DECL, since it has only the shorter flags structure.
+
+	* cp-class.c (finish_struct_method): Fixed comment typo.
+
+	* cp-decl.c: Add some code for debugging binding level
+	manipulations, conditionalized on DEBUG_CP_BINDING_LEVELS.
+	(debug_bindings_indentation): New var, used to maintain indentation
+	to indicate which changes are on the behalf of other routines.
+	(push_binding_level): Print debugging messages to track binding
+	level changes and call/nesting sequences.
+	(pushlevel, poplevel): Ditto.
+	(pushlevel_class): Ditto.
+	(pop_binding_level): Ditto.  Also scribble over freed binding level,
+	and don't store it for re-use.
+	(poplevel_class): Ditto.
+	* cp-decl.h (debug_bindings_indentation): Declare it.
+	* cp-pt.c (push_template_decls, pop_template_decls): Added
+	debugging fprintf calls here too.
+
+Sat Nov  2 17:00:22 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* cp-except.c (finish_exception_decl): Change `enum debugger' to
+	`enum debug_info_type'.
+	* final.c (final_start_function, final, final_end_function,
+	output_source_line): Delete the `write_symbols' parameter.
+	Instead use the global `write_symbols' declared in flags.h.
+	* sched.c (unlink_notes, schedule_block, schedule_insns): Compare
+	`write_symbols' with NO_DEBUG rather than with zero.
+	* toplev.c (rest_of_decl_compilation, rest_of_compilation): Don't
+	pass `write_symbols' to assemble_variable, final_start_function,
+	final, final_end_function.
+	* varasm.c (assemble_variable): Delete the `write_symbols' parameter.
+	Instead use the global`write_symbols' declared in flags.h
+
+Sat Nov  2 09:48:47 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* caller-save.c: Don't include reload.h; not used.
+	* Makefile.in (caller-save.o): Likewise.
+
+	* final.c (final_start_function, final_end_function, final): Change
+	enum debugger to enum debug info to finish previous change.
+	(final_scan_insn, output_source_line): Likewise.
+	* varasm.c (assemble_variable): Likewise.
+
+	* rtlanal.c (modified_between_p, find_last_value): New functions; not
+	yet used.
+	* rtl.h (find_last_value): Declare.
+
+	* cse.c (simplify_binary_operation): Remove comparison cases from
+	here; now in simplify_relational_operation.
+
+Fri Nov  1 19:04:50 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtl.h (REG_DEAD): More precisely describe when a REG_DEAD note
+	should be present.
+	* rtlanal.c (dead_or_set_regno_p): New function.
+	(dead_or_set_p): A value is dead or set only if each register in it
+	is dead or set.
+	* combine.c (reg_bitfield_target): New function.
+	(distribute_notes, case REG_DEAD): Place REG_DEAD note only if both
+	dead_or_set_p and reg_bitfield_target are false.
+	* flow.c (cc0_live): New variable; replaces following_insn_dead.
+	(propagate_block): Initialize cc0_live instead of following_insn_dead.
+	Track CC0's life just like other regs instead of using special
+	mechanism involving following_insn_dead.
+	Clear last_mem_set even when not final pass.
+	Don't call mark_used_regs on dead insns.
+	(insn_dead_p): Use cc0_live to see if a set of CC0 is dead.
+	Correctly test if set of multi-word value is needed; set if dead only
+	if none of the words are needed.
+	(libcall_dead_p): Allow CALL to be in any part of PARALLEL.
+	Use insn_dead_p to see if SET of return register is dead; old code
+	incorrectly tested multi-word registers.
+	(mark_set_1): Track whether all or only some words of a value are
+	needed; write partial REG_UNUSED note if only some words won't be
+	needed.
+	(mark_used_regs): Likewise for REG_DEAD notes.
+	Set cc0_live for a reference to CC0.
+	Don't write REG_DEAD note if register is already dead or set in INSN.
+	No longer check for unused SET_DEST since it won't be called for dead
+	insns; if a single SET's result was unneeded but the insn can't be
+	deleted, the source of the SET is live.
+	Clear last_mem_set even if not final pass.
+
+	* reload1.c (gen_input_reload): Handle REG+MEM the same as REG+INT.
+
+	* gcc.c (xmalloc, xrealloc): Use unsigned instead of size_t for `size'.
+
+	* cccp.c (bcopy, bzero, bcmp): No longer static.  Only declare at
+	front of file if we are going to define them later.
+
+Fri Nov  1 18:57:25 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* cccp.c (timebuf): Declaration moved out of `special_symbol' and
+	made global (and "static") to get values of __DATE__ and __TIME__
+	to remain constant throughout compilation.
+	(debug_output): New variable.
+	(main): Accept -g3 option and set debug_output when seen.
+	(main): Moved initializations of `outbuf' and `fp' to before call
+	to `initialize_builtins'.
+	Pass fp and &output to initialize_builtins so that it can write out
+	artificial #define lines for builtin symbols.
+	Call `output_line_directive' before doing each make_define or
+	make_undef so that when `debug_output' is in effect, we'll
+	get #line 0 directives before each artificial #define or #undef.
+	(special_symbol): Initialization of `timebuf' deleted from here.
+	(initialize_builtins): Initialize timebuf here.
+	(pass_thru_directive): New function.
+	(do_define, do_undef): Use `pass_thru_directive' for "precompilation"
+	of header files.
+	Call `pass_thru_directive' when -g3 option used.
+	(initialize_builtins): Generate artificial #define directives (in the
+	output) to represent the values of all builtin symbols whose defs
+	can't change during compilation.
+	(make_undef): Added output buffer param so that make_undef could let
+	do_undef do output to stdout.
+	Call do_undef with a real output buffer.
+	(make_definition): Likewise.
+	Many minor changes to get strings passed to do_define to always look
+	like correctly formed #define directives.
+
+	* c-decl.c (store_parm_decls): Remove non-params from the list before
+	checking to see if the type of any element of the list is complete.
+	(pushlevel):  Fixed bug which caused scope of tagged types to be
+	incorrectly assigned to the outermost {} block of functions rather
+	than to the outermost binding contours of functions.
+	(pushtag):  Revised to clarify code used to find applicable
+	binding level for a tagname.
+	Set TYPE_CONTEXT of new tagged type so that dwarfout.c can tell
+	file-scope tagged types from non-file-scope tagged types.
+	Create a NULL-named TYPE_DECL node for each new tagged type
+	(even incomplete ones).
+	(finish_struct, finish_enum): Don't create NULL-named
+	TYPE_DECL nodes for complete tagged types.  (This is now done in
+	`pushtag' for *all* new tagged type declarations and definitions.)
+
+	* toplev.c (compile_file):  Adjust conditions under which
+	`dwarfout_file_scope_decl' is called during final traversal of
+	the chain of file-scope decls so that it is called also for
+	file-scope TYPE_DECLs.
+	(rest_of_decl_compilation):  Deleted call to `dwarfout_file_scope_decl'
+	for file-scope TYPE_DECLs; call `dwarfout_file_scope_decl' instead of
+	`dwarfout_file_scope_symbol'.
+
+	* dbxout.c, sdbout.c, flags.h, toplev.c:  Change DEBUG_LEVEL_* to
+	DINFO_LEVEL_* to prevent possible confusion about meaning.
+
+	* flags.h, toplev.c: (enum debug_info_type):  Renamed type from
+	`debugger' and cleaned up definition of type (including deletion
+	of useless EXTENDED_DBX_DEBUG code).
+	(use_gdb_dbx_extensions): Make declarations conditional on
+	DBX_DEBUGGING_INFO being defined.
+
+	* out-i860.c (output_fp_move_double, find_addr_reg):  Add return stmts
+	to avoid warnings when compiling with -Wreturn-type.
+	(output_delayed_branch):  Fix test for CONST_INT values which must be
+	loaded in two instructions (as two halves).
+	(function_epilogue):  Remove ASM_OUTPUT_EPILOGUE_SUFFIX.  (Superceeded
+	by ASM_DECLARE_FUNCTION_SIZE in varasm.c.)
+
+	* xm-i386.h (i386): Define in case the native host compiler doesn't.
+
+	* tm-svr4.h (SVR4): Define this rather than SVR4_target.
+	(ASM_FINAL_SPEC): Support the -pipe option.
+	(ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_OBJECT_NAME): Allow easy
+	redefinition of the syntax for second operand of .type.
+	(ASM_DECLARE_FUNCTION_SIZE): Fix line continuations.
+
+Fri Nov  1 14:14:14 1991  Michael Meissner  (meissner at osf.org)
+
+	* out-mips.c (mips_asm_file_end): Generate correct code if the user
+	uses asm("name").  Patch from bothner@cygnus.com.
+
+	* mips-tfile.c (init_file initialization): Fix #ifdef
+	BYTES_BIG_ENDIAN to be #if BYTES_BIG_ENDIAN, to allow the DECstation
+	to work again.
+	(toplevel): Remove declarations of internal library functions,
+	_flsbuf, _filbuf.
+
+Thu Oct 31 14:59:11 1991  Torbjorn Granlund  (tege at mole.gnu.ai.mit.edu)
+
+	* longlong.h (m68020 count_leading_zeros): Use %b for offset and
+	width syntax for bfffo instruction.
+
+Thu Oct 31 05:45:54 1991  Ken Raeburn  (raeburn@cygnus.com)
+
+	* cp-decl.c (PUSH_BINDING_LEVEL, POP_BINDING_LEVEL): Replaced
+	uses of macros with their expansions, and deleted the macros.
+
+Wed Oct 30 12:45:33 1991  Ron Guilmette  (rfg at ncd.com)
+
+        * dwarfout.c, dwarf.h, README.DWARF: Replacement files that bring
+	the Dwarf implementation up to that defined by draft 5 of the
+	UI/PLSIG Dwarf specification.
+
+Wed Oct 30 10:50:07 1991  Michael Meissner  (meissner at osf.org)
+
+	* objc-parse.y (yylex): Cast short types to int before shifting, to
+	avoid bogus warnings from the MIPS C compiler.
+
+	* cccp.c (fancy_abort): Make this global again, so that
+	-Dabort=fancy_abort will not cause a link error, because obstack.c
+	contains a reference to abort.
+
+Wed Oct 30 07:38:08 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* SYSCALLS.c (abort): Undefine first.
+
+	* xm-m88k.h (HOST_WORDS_BIG_ENDIAN): Define it.
+	* out-m88k.c (output_and): Choose "clr" last.
+
+Tue Oct 29 22:49:47 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-mips.h (num_refs): New global array.
+	(mips_count_memory_refs): New function decl.
+
+	* out-mips.h (num_refs): New global array to count number of 1, 2,
+	or 3 instruction data references with -mstats.
+	(mips_count_memory_refs): New function decl to determine whether a
+	data memory reference uses 1, 2, or 3 instructions.
+	(mips_move_1word, mips_move_2words): Call mips_count_memory_refs
+	as appropriate.
+	(function_epilogue): Print number of 1, 2, and 3 instruction
+	memory references if -mstats.
+
+	* mips.md (movsi_ulw, movsi_usw): Call mips_count_memory_refs if
+	needed.
+
+Tue Oct 29 05:14:27 1991  Ken Raeburn  (raeburn at cygnus.com)
+
+	* cp-parse.y (template_def): Don't pass bogus declspecs to
+	start_decl.
+
+	* cp-pt.c (tsubst, case FUNCTION_DECL): Build new argument list
+	from method template, instead of retaining the old one.
+
+Tue Oct 29 00:44:51 1991  Ken Raeburn  (raeburn at cygnus.com)
+
+	* cp-class.c (finish_struct): Skip type fields if they are
+	template names bound to their expansions.
+
+	* cp-decl.c (binding_levels_sane): Define only if PARANOID; use a
+	macro returning 1 otherwise.  Check class_binding_level stack for
+	consistency also.
+	(pushdecl): Verify that bindings pushed at global scope are in
+	permanent obstack storage.
+	(start_decl): While processing_template_decl, don't also need to
+	verify that the decl uses the template parameters.  For method
+	templates, construct proper method type for result.  TREE_EXTERNAL
+	flag for methods should be cleared if DECL_EXTERNAL is clear.
+	(grokdeclarator, case CALL_EXPR): Intercept destructor templates,
+	which have a different internal form, and convert them to a form
+	that can be recognized.
+
+	* cp-decl2.c (grokclassfn): Include length of class name when
+	creating assembler name for destructor; otherwise ambiguities
+	result.
+
+	* cp-lex.c (identifier_typedecl_value): New fn; scans bindings of
+	identifier for a given type decl; falls back to name of type.
+	* cp-tree.h (IDENTIFIER_TYPEDECL_VALUE): Call it.
+
+	* cp-method.c (fndecl_as_string): Print constructor_name of type
+	for constructor and destructor, not type name.
+
+	* cp-parse.y (template_def): Don't output warning about missing
+	type and storage class, since this gets printed for destructor
+	templates.
+	(notype_declarator): Accept '~' PTYPENAME.
+	(scoped_typename): Want a PTYPENAME, not TYPENAME.  Build a
+	SCOPE_REF node instead of calling resolve_scope_to_name.
+
+	* cp-pt.c (instantiate_member_templates): New fn.  Instantiates
+	members associated with template for a given template class.
+	* cp-method.c (template_instantiate_once): Call it.
+
+	* cp-pt.c (end_template_decl): Catch destructor templates that
+	are being passed through without being converted to TEMPLATE_DECL
+	nodes; convert them now.  Copy argument list for function template
+	into permanent storage.
+	(lookup_template_class): Supply IDENTIFIER_TEMPLATE data for new
+	anonymous type name.
+	(tsubst, case FUNCTION_DECL): Improve method lookup code.
+	(tsubst): Use hash table and build_cplus_* functions for building
+	new nodes when possible, so equality tests are easier.  Extend
+	FUNCTION_TYPE case to handle METHOD_TYPE as well.
+	(instantiate_template): Don't do anything for error_mark_node.
+	(do_pending_expansions): Keep expansions not used in queue to check
+	again later.
+
+	* cp-tree.def: Fix up some comments relating to PT-related types.
+
+	* tree.c (init_tree_codes): Now void, in agreement with decl
+	elsewhere.
+
+Mon Oct 28 22:07:44 1991  Jeffrey A Law  (law at b117.super.org)
+
+	* output.h (current_function_uses_pic_offset_table): Declare here
+	so that out-*.c can see it.
+
+	* tm-m68k.h (FINALIZE_PIC): New macro.
+	(PIC_OFFSET_TABLE_REGNUM): New macro.  Defines which address
+	register is used to hold the offset table for PIC.
+	(CONDITIONAL_REGISTER_USAGE): Make PIC_OFFSET_TABLE_REGNUM be
+	fixed when generating position independent code.
+
+	* out-m68k.c (finalize_pic): New function.  
+	(output_function_prologue): If generating position independent
+	code output assembler text to load the pic_offset_table register.
+
+Mon Oct 28 10:02:36 1991  Michael Meissner  (meissner at osf.org)
+
+	* toplev.c (main): If -G is used, set g_switch_set to true, and set
+	g_switch_value to be the integer value of it's argument, for use in
+	the MIPS port to determine whether a static or global item goes into
+	the normal data area, or into the small data area.
+
+	* out-mips.c (g_switch_set, g_switch_value): Delete these global
+	variables, since toplev.c now defines them.
+
+	* tm-mips.h (EXTRA_INT_OPTIONS): Delete macro which is no longer
+	used in internal OSF patches to provide -G xx support.
+	(ASM_SPEC, CC1_SPEC, LINK_SPEC): Remove -G32, since the new -G
+	patches take care of it now.
+
+	* tm-decrose.h (ASM_SPEC, LINK_SPEC): Remove -G32.
+
+	* tm-decstatn.h (ASM_SPEC, LINK_SPEC): Remove -G32.
+
+	* tm-iris.h (ASM_SPEC, LINK_SPEC): Remove -G32.
+
+	* tm-mips-bsd.h (LINK_SPEC): Remove -G32.
+
+	* tm-mips-news.h (ASM_SPEC, LINK_SPEC): Remove -G32.
+
+	* tm-mips-sysv.h (LINK_SPEC): Remove -G32.
+
+Mon Oct 28 07:11:28 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): Don't delete unused SETs if they have
+	side-effects.
+
+	* Makefile.in, t-i386sco: Had both LIMIT_H and LIMITS_H; latter
+	is correct.
+
+	* combine.c (subst): New argument `unique_copy'; if non-zero ensure
+	each copy of `from' replaced gets a unique copy of `to'.
+	Pass arg to recursive callers.
+	(try_combine): Pass new arg to subst.
+
+	* Makefile.in (LANGUAGES): Use `objective-c' instead of `class-c'
+	to avoid confusion.
+
+	* gcc.c (xmalloc, xrealloc): Really make non-static.
+
+Mon Oct 28 00:21:56 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-mips.h (CC1_SPEC): Convert -gline into -g1.
+
+Sun Oct 27 17:15:48 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (spill_hard_reg): Rework code that relies on the fact that
+	reg_class_superclasses[i][0] == i, since it isn't true!
+
+Sun Oct 27 06:15:24 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* configure: Always remove any files before we write them in case
+	the old copy was read-only.
+
+	* Makefile.in (manext): Now just extension without the period.
+	(mandir): Default to include manext.
+	(install-man): Adjust to new definition of manext.
+	(uninstall): Remove protoize.1 and unprotoize.1 from mandir.
+
+	* genemit.c (gen_exp): Write integer using %u instead of %d to
+	avoid warnings from some compilers when most negative int is written.
+
+	* cccp.c: Make variables not used outside this file static.
+	(main, line_to_error, xmalloc, xrealloc, xcalloc): Add missing return
+	statements (in unreachable paths).
+	(xmalloc, xrealloc, xcalloc, savestring): Make SIZE arg unsigned.
+	
+Sun Oct 27 06:14:45 1991  Jeffrey A Law  (law at b115.super.org)
+
+	* tm-m68k.h (SELECT_RTX_SECTION): New macro.  Used to force
+	symbolic objects in the constant pool into the read-write data
+	section when generating position independent code.
+
+	* recog.c (general_operand, immediate_operand, nonmemory_operand):
+	Use LEGITIMATE_PIC_OPERAND_P to reject constants which are not
+	valid when generating position independent code.
+
+	* reload.c (find_reloads): Do not win in 's', 'i', or 'g' cases
+	if the constant does not satisfy LEGITIMATE_PIC_OPERAND_P.
+
+	* tm-m68k.h (LEGITIMATE_PIC_OPERAND_P): New macro.
+
+	* out-m68k.c (symbolic_operand): New function. Copied from
+	tm-sparc.h. 
+
+	* gcc.texinfo: Document LEGITIMATE_PIC_OPERAND_P.
+
+Sat Oct 26 07:51:40 1991  Michael Meissner  (meissner at osf.org)
+
+	* mips.md (movsi_usw): Remove invalid '&' constraint on a memory
+	address.
+
+Sat Oct 26 07:16:15 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* flow.c (find_basic_blocks): Build label_value_list as list of
+	CODE_LABELs, not LABEL_REFs.
+
+	* fold-const.c (optimize_bit_field_compare): Call fold on result
+	of build1 call that converts integer to proper mode.
+
+	* rtl.h (unsigned_condition, signed_condition): Add definition;
+	functions were previously added to jump.c.
+	* combine.c (simplify_comparison): Use unsigned_condition to simplify
+	last change.
+
+Sat Oct 26 06:48:59 1991  Jeffrey A Law	(law at b115.super.org)
+
+	* tm-sun2.h, tm-sun3.h (ASM_SPEC): Pass "-k" to the assembler if
+	-fpic or -fPIC.
+
+Fri Oct 25 20:43:54 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-mips.h (CC1_SPEC): Remove special rules for -g0, -g1, etc., now
+	that GCC supports these directly.
+
+	* configure (dec-mips-osf): DECstation running OSF/rose uses
+	t-decrose, not t-mips.
+
+	* x-decrose (COFF_CC, COFF_CFLAGS, WARNINGS): Delete.
+	(libdir, bindir, mandir): Put GCC 2 in the /usr/ccs/gcc tree.
+
+	* x-mips (comment): Delete a comment about cross compilers that is
+	no longer true.
+
+	* t-decrose (coff-obstack.o): Delete rule that is no longer used.
+
+Fri Oct 25 18:46:51 1991  Mark Eichin  (eichin at cygnus.com)
+
+	* cp-dem.c (cp-demangle): added support for templates, static
+	data, and the new (correct) mangling for destructors.
+
+Fri Oct 25 16:18:18 1991  Mark Eichin  (eichin at tweedledumber.cygnus.com)
+
+        * cp-decl2.c: (grokclassfn): destructor names *should* contain
+        the length; otherwise, we can't tell the difference between a
+        destructor for a class whose name begins with 't' and a destructor
+        for an instance of a template class.
+
+Fri Oct 25 02:15:12 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* SYSCALLS.c, protoize.c: Changes from rfg.
+	waiting for real changelog entries from rfg.
+
+	* gcc.c (xmalloc, xrealloc): No longer static.
+
+Thu Oct 24 19:21:04 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* fold-const.c (optimize_bit_field_compare):
+	Use build1 rather than convert, to avoid warnings.
+
+	* final.c (output_source_line): Fix if-scope for DBX fmt.
+
+Thu Oct 24 13:29:34 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* gcc.c gen*.c: Don't make fancy_abort static.
+
+Thu Oct 24 12:07:23 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* combine.c (simplify_comparison): When narrowing a comparison
+	and removing ANDs, make it unsigned.
+
+Thu Oct 24 08:02:04 1991  Ken Raeburn  (raeburn at cygnus.com)
+
+	* cp-decl.c (binding_levels_sane): New function, tests that stack
+	of binding levels is consistent.  Argument provides extra
+	identification for call site, in case compiler optimizes too well.
+	If PARANOID is not set, does nothing.
+	(push_binding_level, pop_binding_level): Now functions, for easier
+	debugging.  Inlined under GNU C if not PARANOID.
+	(PUSH_BINDING_LEVEL, POP_BINDING_LEVEL): Invoke functions.
+	(push_to_top_level): Use type-shadowed slots to unwind
+	IDENTIFIER_TYPE_VALUE back to top level.
+	(start_decl): When processing a template decl, shouldn't need to
+	check uses_template_parms.  For methods, modify arg list to include
+	`this'.  Don't set context of template.  Use perm_tree_cons when
+	building members list for class template.
+	(grokdeclarator): Check "friend" flag before calling
+	globalize_nested_type.  Build a method type for a function that has
+	a context.
+
+	* cp-pt.c (end_template_decl): If template has non-null context,
+	chain it off of the containing class, rather than using pushdecl.
+	(instantiate_class_template): Instantiate all the member templates
+	hanging off the class template.  Also, simplify some code in the
+	case where setup_parse is 0.
+	(tsubst): Check for several common values that won't be modified by
+	substitutions.
+	(tsubst, case FUNCTION_DECL): Don't return type passed if it has a
+	non-null context that might need fixing.  Process that context while
+	building up the new decl node; use it to notify build_decl_overload
+	that we've got a method rather than a function.
+	(tsubst, case METHOD_TYPE): Handle like FUNCTION_TYPE; enhance that
+	case to handle TYPE_METHOD_BASETYPE when set.
+	(unify): Increment value pointed to by nsubsts, not the pointer
+	itself.
+	(do_pending_expansions): Method context is in DECL_CONTEXT, not
+	DECL_CLASS_CONTEXT.
+
+	* cp-lex.c (do_identifier): Don't try looking up fields in base
+	classes of UNINSTANTIATED_P_TYPE.
+
+	* cp-parse.y (primary): Call require_complete_type only for
+	CALL_EXPR nodes of types other than void.
+	(template_type): Don't call IDENTIFIER_TYPE_VALUE on
+	error_mark_node.
+
+	* cp-ptree.c (print_lang_decl): For UNINSTANTIATED_P_TYPE, show
+	template as well as parameters.
+
+	* cp-tree.h (DECL_TEMPLATE_*, UPT_*): New accessor macros for
+	TEMPLATE_DECL and UNINSTANTIATED_P_TYPE nodes.  All (most?) uses
+	except for node creation changed to use these.
+	* cp-tree.def: Updated comments for these node types.
+
+	* cp-pt.c (uses_template_parms): Handle ADDR_EXPR.
+	(end_template_decl): For function with non-null context, pop class
+	binding level.
+
+Thu Oct 24 06:57:28 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* a29k.md, romp.md, rs6000.md (movdi, movdf, movti): Handle case of
+	reg-reg copy with overlapping registers correctly.
+
+	* out-rs6000.c (ccr_bit, case NE): Fix typo in bit number.
+	(output_epilog): Must restore stack using backchain if alloca called.
+
+	* romp.md, rs6000.md (extendxxyy2, zero_extendxxyy2): Use DEFINE_EXPAND
+	to force operand to register; DEFINE_INSN allows memory (better cse).
+
+	* rs6000.md (ffssi2): New patterns.
+	(maskir): Add patterns to use maskir instructions.
+
+	* tm-a29kunix.h (TARGET_DEFAULT, CPP_SPEC): Default to 29050.
+
+	* tm-rs6000.h (LINK_SPEC): Add -bnodelcsect.
+	(HARD_REGNO_MODE_OK): Delete kludge that didn't allow DImode in reg 31
+	and TImode in 29-31; the bug was fixed elsewhere.
+
+Wed Oct 23 17:48:43 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): If an insn doesn't match, check for case
+	where first SET's result isn't used; previously only checked second.
+
+	* combine.c (try_combine): When we substitute into a COMPARE, check
+	SELECT_CC_MODE to see if we should try to change the mode of the
+	COMPARE and its result.
+
+Wed Oct 23 16:38:26 1991  Torbjorn Granlund  (tege at hal.gnu.ai.mit.edu)
+
+	* gnulib2.c (__ashrdi3): Compute sign extension shift count from
+	machine word size instead of using 31.
+
+Wed Oct 23 14:25:04 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-mips.h (PREFERRED_DEBUGGING_TYPE): Unless otherwise defined,
+	set to SDB_DEBUG.
+
+	* tm-decrose.h (PREFERRED_DEBUGGING_TYPE): Define to DBX_DEBUG.
+
+	* out-mips.c (override_options): Don't override debugger choice now
+	that PREFERRED_DEBUGGING_TYPE is provided.
+
+Wed Oct 23 07:25:32 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* sdbout.c (sdbout_symbol/FUNCTION_DECL, sdbout_toplevel_data,
+	sdbout_end_epilogue): Use DECL_ASSEMBLER_NAME to avoid link-time
+	multiple definitions.
+
+Tue Oct 22 15:06:31 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload): For now, we must always have a frame pointer
+	if a function calls alloca and EXIT_IGNORE_STACK is non-zero.
+
+	* cse.c (insert_regs): Don't make new quantity for the register in
+	a SUBREG.
+	(merge_equiv_classes): Don't invalidate the register inside a SUBREG.
+	(canon_hash, case SUBREG): Remove code to treat SUBREGs like REGs.
+
+Tue Oct 22 10:25:29 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* tm-m88kdgux.h (PREFERRED_DEBUGGING_TYPE): Use it.
+	* tm-m88k.h (OVERRIDE_OPTIONS): Don't override write_symbols.
+
+	* out-m88k.c (m88k_output_{prologue,epilogue}): Renamed.
+
+Tue Oct 22 00:51:48 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c++: New shell script.
+
+	* gcc.c (default_compilers): Treat .ii files as cpp'd C++.
+
+	* varasm.c (make_function_rtl): Don't alter DECL_ASSEMBLER_NAME.
+
+	* toplev.c (main): Use PREFERRED_DEBUGGING_TYPE if support
+	more than one format.
+
+Mon Oct 21 23:08:02 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (grokdeclarator): Fix error message for long float.
+
+Mon Oct 21 16:55:31 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* optabs.c (add_equal_note): New function.
+	(expand_binop): Delete some obsolete, turned-off code.
+	Use GET_RTX_CLASS to see if operator is commutative.
+	Call add_equal_note if we make a multi-insn sequence; if it fails,
+	redo the operation without our target.
+	In multi-word cases, don't allow TARGET to be the same as an input.
+	(expand_unop): Allow operation to fail.
+	Call add_equal_note and allow failure, like in expand_binop.
+	In multi-word case, don't allow TARGET to be OP0.
+	(emit_unop_insn): Use add_equal_note; ignore its failure here.
+
+	* optabs.c (expand_float, expand_fix): In cases when we will jump,
+	ensure we call emit_queue before protect_from_queue.
+	Eliminate redundant calls to protect_from_queue and force_non_mem.
+
+	* reorg.c (steal_delay_list_from_target): Don't take an insn from
+	the fallthrough thread of an annulled branch insn.
+
+Mon Oct 21 16:55:08 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* configure (m88k targets): Complete last change.
+
+Mon Oct 21 16:06:25 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* integrate.c (copy_rtx_and_substitute): When making copy of frame,
+	round size to keep substituted frame pointer aligned.
+	(CEIL_ROUND): New macro.
+
+Mon Oct 21 15:16:17 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-mips.h (GP_REG_OR_PSEUDO_NONSTRICT_P): New macro for
+	REG_OK_FOR_{BASE,INDEX}_P in non strict mode.  Fix typos in the
+	previous change.
+	(GP_REG_OR_PSEUDO_P): Rename to GP_REG_OR_PSEUDO_STRICT_P.
+	(REG_OK_FOR_BASE_P): Use GP_REG_OR_PSEUDO_NONSTRICT_P if non strict.
+	(REG_OK_FOR_INDEX_P): Use GP_REG_OR_PSEUDO_NONSTRICT_P if non strict.
+	(GO_IF_LEGITIMATE_ADDRESS): Indicate if strict checking is being
+	used if -mdebugb tracing.
+
+Mon Oct 21 15:08:15 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* Makefile.in (*.o): Add insn-codes.h to all lists using expr.h.
+	(dwarfout.o): Add dwarf.h, reload.h, output.h, and insn-config.h.
+
+	* c-tree.h (TYPE_ACTUAL_ARG_TYPES): New macro for list of actual
+	types.
+	* c-decl.c (store_parm_decls): Compute TYPE_ACTUAL_ARG_TYPES if a
+	prototype is not present.  Delete old method.
+	(duplicate_decls): Provide better diagnostics if a prototype
+	follows a function definition.
+
+	* m88k.md (gen_divsi3): Delete REG_EQUAL workaround.
+	* t-m88k{,luna,sysv4}: Target makefile portion (from Mike Stump).
+	* x-m88k{,dgux,luna,sysv4}: Corresponding deletions.
+	* {tm,t,x}-m88ksysv4: Renamed from m88ksvr4.  Deleted xm-m88ksvr4.
+	* {tm,xm}-m88ksysv3: Renamed from v88r32.
+	* configure: Corresponding changes.
+
+	* tm-m88k.h (ASM_OUTPUT_{CONSTRUCTOR,DESTRUCTOR}): Output to
+	.ctors/.dtors sections.
+	(TARGET_SWITCHES): Add -m88000, -m88100, and -m88110.  Replace
+	DG/UX MXDB options with SUBTARGET_SWITCHES macro.
+	* tm-m88kdgux.h (SUBTARGET_SWITCHES, ASM_SPEC, ASM_FIRST_LINE):
+	Put MXDB options here changing -mdwarf to -mstandard.
+
+Sun Oct 20 06:39:54 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (simplify_comparison, case PLUS): Only do simplification
+	for equality comparison due to overflow problems.
+
+	* gen*.c: Remove "void *" and uses of size_t added by recent change.
+
+	* reload.c (find_reloads): If "&" given without any registers, 
+	turn off earlyclobber, in addition to giving error.
+
+	* Makefile.in (STAGE_GCC): Deleted.
+	(STAGESTUFF): Add gcc (from STAGE_GCC) and gcc-cross.
+
+Sun Oct 20 04:37:21 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (grokfndecl): Use DECL_NAME, not DECLARATOR at end of
+	function, since DECL_NAME may be different if it's an operator name.
+
+	* cp-cvt.c (convert_pointer_to): Test if PARENT is TREE_VEC
+	before testing IS_AGGR_TYPE.
+
+Sun Oct 20 00:40:47 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (link_command_spec): -collect converts to -c.
+
+	* toplev.c (main): Support -gstabs and -gcoff.  Fix args to strncmp.
+
+Sat Oct 19 21:51:03 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c: Use const_true_rtx instead of const1_rtx.
+	(delete_scheduled_jump): Don't delete an insn that sets CC0 if it
+	has a side-effect.
+	(update_block): Add missing declaration for parameter WHERE.
+	(fill_slots_from_thread): Stop search if we find an insn that we
+	can't put into the delay slot unless we own the thread.
+
+Sat Oct 19 17:30:23 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-mips.h (GP_REG_OR_PSEUDO_P): New macro to make sure a reg or
+	pseudo reg during reload will eventually be a GP register for use as
+	a base or index register.  This fixes a bug where a FP register
+	could be used as a base or index register in some cases after
+	convert from floating point to integer was done.
+	(REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P): Use GP_REG_OR_PSEUDO_P.
+	(REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): In the non strict version,
+	don't allow hard FP registers ever.
+
+Sat Oct 19 11:59:55 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* tm-sun3.h, tm-sparc.h (WORD_SWITCH_TAKES_ARG):
+	Check for Tdata as well as target.
+
+	* c-decl.c (grokdeclarator): Don't warn for array of incomplete elt.
+
+	* expr.c (expand_expr): For INDIRECT_REF, don't set unchanging bit.
+	* c-typeck.c (build_indirect_ref): Do set TREE_UNCHANGING if nec.
+
+	* reload.c (find_reloads): Warning or error for misuse of `&'.
+	* toplev.c (warning_for_asm): New function.
+
+	* t-i386sco: New file.
+	* x-i386sco: Add -Di286 to CC, OLDCC.
+	(LIMIT_H): Moved to t-i386sco.
+
+Sat Oct 19 09:08:11 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* gcc.c: Add missing extern declarations deleted by last change.
+	(xrealloc, xmalloc): Don't declare as void *; non-ANSI compilers
+	can't handle it.
+
+Sat Oct 19 08:26:13 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* tree.h: Fix spelling error in comment.
+
+	* tree.def, cp-parse.y: Change comments that refer to LET_STMT nodes to
+	refer to BLOCK nodes.
+
+	* gcc.c, gen*.c: Declare as static objects that aren't referenced
+	outside the file they are in.
+	(xrealloc, xmalloc): Functions return char *, not int.
+	(main): Add missing returns (in unreachable code) to avoid warnings
+	when compiled with -Wreturn-type.
+	* gcc.c (pexecute): Likewise.
+	* genattrtab.c (operate_exp): Likewise.
+
+Fri Oct 18 16:58:12 1991  Eric Youngdale (youngdale at v6550c.nrl.navy.mil)
+
+	* make-cc1.com: Finish changeover from cplus-* to cp-*.
+
+Fri Oct 18 16:57:37 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* tm-svr4.h: Delete lines duplicated due to transmission problems.
+
+Fri Oct 18 16:55:53 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (unsigned_condition, signed_condition): New functions.
+
+	* configure (vax): Set tm_file to tm-vax.h so "configure vax-dec-bsd"
+	works.
+
+	* combine.c (subst, case PLUS, MINUS): Remove some simplifications
+	from here.
+	* cse.c (simplify_binary_operation, case PLUS, MINUS): Put these
+	simplifications here.
+	Strip off CONST when looking for some simplifications.
+	Add code to simplify (a - (a - b)).
+
+	* combine.c (expand_compound_operation): Correctly handle case where
+	we have a ZERO_EXTRACT that extends beyond the bounds of the object.
+
+	* global-alloc.c (mark_elimination): No longer have FORBIDDEN_REGS as
+	argument.
+	* reload1.c (reload): Don't pass FORBIDDEN_REGS to mark_elimination.
+
+	* cse.c (simplify_{unary,binary,relational}_operation):  Complete
+	change that removes warnings from floating-point traps when constant
+	folding (some cases had been omitted).
+
+Fri Oct 18 16:41:29 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* stmt.c (expand_anon_union_decl): When creating new mem, copy the
+	RTX_UNCHANGING_P and MEM_IN_STRUCT_P bits from the old one.
+
+	* sparc.md: Add new scc addx/subx patterns.
+
+Fri Oct 18 09:10:43 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-parse.y (stmts): Fix parsing rules to match C++ semantics
+	better (and hence give the compiler better error recovery).
+
+Thu Oct 17 19:31:15 1991  Ken Raeburn  (raeburn at cygnus.com)
+
+        * cp-pt.c (tsubst): For NEGATE_EXPR, call build1, not build.
+        Handle NOP_EXPR likewise.
+        (unify, case TEMPLATE_CONST_PARM): Copy value to permanent obstack.
+
+        * cp-method.c (PARM_CAN_BE_ARRAY_TYPE): If not already defined,
+        define it to be 1.
+        (build_overload_name): Test to see if it's nonzero, rather than
+        whether it's defined; this permits compilation options to disable
+        it, but leave it enabled by default.  Add one to the array size,
+        since the value retrieved appears to be the maximum index, not the
+        true array size.
+
+Thu Oct 17 19:15:37 1991  Mark Eichin  (eichin at tweedledumber.cygnus.com)
+
+        * cp-pt.c (instantiate_class_template):  has an argument to
+        indicate whether to setup for parsing or not. (All existing cases
+        did a feed input, but if we are trying to set up intermediate nodes
+        while waiting for the parser to return to a template_instantiate
+        site we need to suppress the parsing part of it, which will get
+        redone later.)
+        (tsubst): under case UNINSTANTIATED_P_TYPE, actually instantiate any
+        class templates that are needed for function return values, and set
+        them up as pending templates to be run later.
+
+        * cp-parse.y (primary): since build_x_function_call doesn't
+        require a complete type any more in certain cases, we instantiate
+        any pending templates and then require_complete_type on the
+        remainder. 
+
+        * cp-typeck.c (build_function_call_real): added an argument to
+        optionally skip the require_complete_type... implicit template
+        instantiation has to be postponed, so we won't get a complete type
+        until the parser can grab it.
+
+        * cp-call.c (build_overload_call_real): added an argument do
+        allow choice of build_function_call_maybe or build_function_call
+        based on whether we thought we would require a complete type out of
+        build_function_call. 
+
+Wed Oct 16 09:06:57 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* c-decl.c (store_parm_decls): Fix and disable recording the arg
+	type list for the function indicating the number of arguments.
+	* c-typeck.c (self_promoting_args_p): Allow the arg type to be null.
+
+	* expmed.c (store_bit_field, extract_bit_field): Add checks for
+	MEM_IN_STRUCT_P if the structure reference is a MEM.
+
+Tue Oct 15 18:37:50 1991  Ken Raeburn  (raeburn at cygnus.com)
+
+        * cp-call.c (build_overload_call): If template match fails, still
+        set function field of candidate structure, and set bad_arg field to
+        new magic number -4 to indicate failed type unificiation.
+
+        * cp-class.c (add_method): Call make_function_rtl only if not
+        processing a template declaration.
+
+        * cp-tree.def: New node type, UNINSTANTIATED_P_TYPE, for
+        parameterized types that haven't had parameters filled in yet.
+        Looks like a type node.
+
+        * cp-decl.c (struct binding_level): New flag indicating any name
+        should be accepted when looked up at this level.  This is a kludge
+        to try to deal with methods of parameterized types.
+        (declare_uninstantiated_type_level): Set it.
+        (uninstantiated_type_level_p): Return it.
+        * cp-class.c (pushclass): If the "class" type is
+        UNINSTANTIATED_P_TYPE, flag it in the new binding level.
+
+        * cp-decl.c (push_overloaded_decl): New argument to indicate
+        whether the decl should be forgotten when the current level is
+        exited.  Callers changed.
+        (push_overloaded_decl_top_level): Ditto.
+        (dont_forget_overload): Deleted.
+        (push_overloaded_decl_1): New fn; like push_overloaded_decl, but
+        never forgets.  Intended only for use by auto_function macro.
+        (auto_function): Use it.
+
+        * cp-decl.c (print_binding_level): Print type-shadowed field at
+        each level.  Skip fields with no values.
+
+        * cp-decl.c (adjust_type_value): Use SET_IDENTIFIER_TYPE_VALUE,
+        not set_identifier_type_value.
+
+        * cp-decl.c (pushdecl): Undo Oct 4 back-out of previous change.
+        Set type value of name of passed decl, instead of name of type in
+        passed decl.
+        (pushdecl_top_level): Search type-shadowed fields of outer binding
+        levels, munging outermost one if found to cause it to "restore" the
+        new global value.
+
+        * cp-decl.c (push_overloaded_decl): Don't punt second or later
+        templates of a given name.
+
+        * cp-decl.c (start_decl): Template-handling code moved up, to
+        cope better with variable declarations.  Don't check for incomplete
+        type or constructor requirements when processing template.
+
+        * cp-decl2.c (build_push_scope): If passed error mark node, just
+        return it.
+        (constructor_name): Handle UNINSTANTIATED_P_TYPE.
+
+        * cp-lex.c (identifier_type): Don't return PTYPENAME for function
+        template name.
+
+        * cp-method.c (report_type_mismatch): New magic bad-arg value -4
+        indicates type unification failure.
+        (build_overload_name, case UNINSTANTIATED_P_TYPE): Handle like other
+        template-related types that shouldn't get visibility outside the
+        compiler.
+
+        * cp-parse.y (template_type): Use IDENTIFIER_TYPE_VALUE from
+        name, if expansion doesn't happen.
+        (tmpl.1, tmpl.2): Now type <ttype>.  Value is null or return value
+        from instantiate_class_template.
+        (template_instantiation): Always put copy of decl in global scope.
+        Use pushdecl_top_level instead of setting IDENTIFIER_GLOBAL_VALUE
+        slot.
+        (LC): If type has been or is being defined, push a new type with the
+        same name, to avoid conflict.
+        (try_for_typename): New type <itype>.  Value is non-zero iff type to
+        be pushed uses no template parms and isn't error_mark_node.
+        (scoped_id): Return error_mark_node for template parameter uses, and
+        leave error_mark_node alone.  Only pop class if try_for_typename
+        value is non-zero.
+        (scoped_typename): Ditto.
+
+        * cp-pt.c (end_template_decl): If template decl/class head arg is
+        null, punt.  For non-type templates that didn't come in as template
+        decls, clear public flag.  Such cases shouldn't arise any more; just
+        put in abort call for now until we're sure.  Comment out code for
+        forcibly removing temporary values of template type parms; Michael
+        broke the code and fixed the original problem.  Handle error case
+        where decl to be pushed might be null.
+        (coerce_template_parms): Handle arg list as TREE_VEC as well as
+        TREE_LIST.  If arg list uses template parms, return
+        UNINSTANTIATED_P_TYPE node.
+        (uses_template_parms, case UNINSTANTIATED_P_TYPE): Return 1.
+        (instantiate_class_template): Now returns tree -- error_mark_node or
+        NULL_TREE or class type; callers and decls changed.  Assign
+        TYPE_NAME field when building new RECORD_TYPE and TYPE_DECL nodes.
+        Don't need to do extra poplevel any more.
+        (tsubst): Handle UNINSTANTIATED_P_TYPE, MINUS_EXPR, PLUS_EXPR,
+        NEGATE_EXPR.
+        (undo_template_name_overload): Don't need to explicitly clear type
+        field any more.
+        (overload_template_name): Push a TYPE_DECL, instead of explicitly
+        setting type value field.
+        (end_template_instantiation): Don't need to pop a level any more.
+        (reinit_parse_for_template): Throw away saved block for null or
+        error template node.
+        (type_unification): Handle variadic functions, and functions with
+        default values for arguments.
+        (unify): Handle TREE_VEC and UNINSTANTIATED_P_TYPE.
+
+        * cp-ptree.c (print_lang_type): Handle UNINSTANTIATED_P_TYPE.
+
+        * cp-tree.h (push_overload_decl): Declare here, not in
+        cp-decl.c.
+        (TEMPLATE_TYPE_* macros): Delete unused (and now incorrect)
+        versions.
+
+Mon Oct 14 14:30:32 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* integrate.c (expand_inline_function): Fix typo from last edit,
+	where TYPE_MODE was applied to an argument, not the type of an
+	argument.
+
+	* cse.c (canon_hash, SUBREG case): Add cast which is needed by some
+	compilers.
+
+Mon Oct 14 07:59:50 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* toplev.c (rest_of_compilation): Compute the function's name and
+	pass it to assemble_{start,end}_function.
+	* varasm.c (assemble_start_function): New parameter.
+	(assemble_end_function): New function for ASM_DECLARE_FUNCTION_SIZE.
+	* final.c, sdbout.c: Correct comments.
+	* tm-svr4.h, tm-sysv4.h (ASM_DECLARE_FUNCTION_SIZE): Add and use a
+	NAME parameter.
+	* tm-m88k.h (ASM_DECLARE_FUNCTION_SIZE): Override svr4 definition.
+	* out-m88k.c (output_prologue): Delete previous method.
+
+	* m88k.md: Use trap_if.
+	(divsi3): Store into output operand only once to aviod problems
+	with REG_EQUAL note.
+	* out-m88k.c (output_call): Accomodate assembler range
+	restriction.
+	* tm-m88kdgux.h (AS_BUG_IMMEDIATE_LABEL): Specify the restriction.
+	(ASM_SPEC): Pass -KV3 to the assembler in some cases.
+	* tm-m88k.h (CONDITIONAL_REGISTER_USAGE): Mark the addressing base
+	register global.
+
+Sat Oct 12 00:30:23 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (.SUFFIXES): Rule added.
+
+	* dbxout.c (dbxout_block): Handle debug_info_level.
+	* sdbout.c (sdbout_begin_block): Likewise.
+	* toplev.c (compile_file): Likewise, when calling init_emit_once.
+	* emit-rtl.c (init_emit_once): Cosmetic change.
+	* Makefile.in (sdbout.o): Include flags.h.
+
+	* configure: Default srcdir from dir in which configure is found.
+
+	* i860.md (floatsidf2): Rewrite to be independant of host machine.
+	(divdf3, divsf3): New patterns.
+
+	* tm-i860.h (ASM_DECLARE_FUNCTION_NAME): Macro deleted.
+	(ASM_OUTPUT_FUNCTION_PREFIX): Macro added.
+
+	* stmt.c (pushcase, pushcase_range, expand_end_case):
+	Don't give "unreachable code" warning for a USE.
+
+	* tm-i386.h (HARD_REGNO_MODE_OK): Fp regs reject TFmode.
+
+Fri Oct 11 16:43:37 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* cse.c (find_comparison_args): Reject VOIDmode to avoid invalid
+	shift.
+
+Fri Oct 11 14:30:31 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (function_types_compatible_p):
+	NULL as arg type matches self-promoting type.
+	(self_promoting_type_p): New function.
+	(common_type): NULL for arg in one fcn type means use arg from other.
+	* c-decl.c (store_parm_decls): Record arg type list for the fn,
+	just to indicate how many args there are.
+
+	* i860.md, out-i860.c, tm-i860.h: Merge many changes by rfg.
+	* tm-i860bsd.h, xm-i860.h: Likewise.
+	* tm-i860v3.h, tm-i860v4.h: New files.
+	* xm-i860v3.h, xm-i860v4.h: New files.
+	* tm-i860v3g.h: Renamed from tm-i860g.h.
+	* configure (i860-sysv3*): Renamed from i860-sysv*.  New filenames.
+	(i860-sysv4*): New alternative.
+
+	* print-rtl.c: New file, split from rtl.c.
+	* Makefile.in (print-rtl.o): New target.
+	(OBJS): Add that target.
+
+	* toplev.c (DEFAULT_GDB_EXTENSIONS): Provide default definition.
+	(main): Use that for -g with dbx format.
+	Don't support -G.
+	* gcc.c (default_compilers): Get rid of -G.
+
+Fri Oct 11 14:30:43 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* stmt.c (expand_anon_union_decl): Correctly handle anonymous
+	unions, whether in memory or registers.
+
+	These were written by Michael Tiemann.
+	The following changes net a 16% speedup compiling some
+	machine-generated CAD synthesis code.
+	* c-decl.c (field_decl_cmp): New function, use as comparison
+	function for qsort.
+	(finish_struct): If there are more than 15 fields, allocate a
+	LANG_TYPE for the FIELD_DECLs, and sort them according to
+	`field_decl_cmp'.
+	* c-tree.h (lang_type): Define a LANG_TYPE for RECORD_TYPEs.
+	* c-typeck.c (build_component_ref): If LANG_TYPE set, then use
+	binary search to find the field, otherwise use linear search as
+	before.
+
+	* tree.h: Declare savealloc.
+	* c-common.c: Delete now unnecessary cast of savealloc result.
+
+Fri Oct 11 10:06:09 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* cse.c (simplify_binary_operation): Fix typo in last change.
+
+	* cp-*, gcc.texinfo, make-cc1.com, tree.c, undocumented: Change
+	cplus- to cp-.  Rename cplus-parse.y to cp-parse.y.
+
+Fri Oct 11 07:48:40 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* recog.c (find_single_use_1): Ignore appearances of DEST in
+	contexts where it is being set, not referenced.
+	(find_single_use): Use dead_or_set_p instead of looking for REG_DEAD
+	notes.
+
+Fri Oct 11 07:29:33 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* c-parse.y, cp-lex.c, objc-parse.y (check_newline):	Use `pedwarn'
+	instead of `error' when we see an #ident if -pedantic.
+	* cccp.c (do_assert, do_unassert, check_assertion, do_sccs): Warn
+	if -pedantic.
+
+Thu Oct 10 18:30:28 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* gcc.c (default_compilers): Correctly handle new debugging
+	options, pass all -g* and -G* options.
+
+	* Makefile.in, c-decl.c, cp-decl.c, final.c, flags.h, gcc.1,
+	gcc.c, print-tree.c, toplev.c, tree.def, tree.h: Delete support
+	for obsolete GDB_DEBUG format, -gg option, symout.c, etc.
+	* gdbfiles.h, symseg.h, symout.c: Delete obsolete files.
+
+Thu Oct 10 17:56:16 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (convert_move): When widening FROM to multi-word, ensure that
+	we only reference each piece of TO once so that emit_no_conflict_block
+	can be safely used.
+
+	* toplev.c (float_signal): Re-enable the signal after we catch it.
+
+	* cse.c (simplify_binary_operation): Add missing fp error handler
+	setup in DFmode case.
+
+	* combine.c (subst, case XOR): Fix typo in checking for
+	STORE_FLAG_VALUE equal to just the sign bit.
+	(simplify_comparison): Fix typo in computing maximum signed number in
+	a mode; also, use GET_MODE_MASK rather than trying to compute it.
+
+Thu Oct 10 17:52:44 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+ 	* c-decl.c (init_decl_processing): Turn off `alloca' for -ansi.
+	(c_decode_option): Handle -fbuiltin, -fno-builtin.
+
+Thu Oct 10 17:42:03 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* caller-save.c (emit_mult_restore): Initialize MAYBE_TEMPREG.
+
+	* function.c (assign_parms): Set MEM_IN_STRUCT_P when creating a
+	MEM for a aggregate passed by reference.
+	* expr.c (expand_expr, INDIRECT_REF case): Set MEM_IN_STRUCT_P
+	when dereferencing an aggregate.
+
+	* sched.c (sched_note_set): Add missing parens.
+
+	* sparc.md: Delete unnecessary clobbers from all SCC patterns.
+
+	* integrate.c (expand_inline_function): Correct handling of arguments
+	passed by invisible reference.
+
+	* cse.c (canon_hash): Compute hash code for SUBREG same as we do
+	for REG.  Otherwise, SUBREG hash codes can change when qty_const
+	changes, which results in duplicate SUBREG entries, which can
+	cause a crash.
+
+Wed Oct  9 15:55:42 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* cccp.c (main): Update MAX_INCLUDE_LEN if GCC_EXEC_PREFIX gets into
+	the act.
+
+	* xm-a29k.h: Change copyright message back to GPL version 2.
+	* xm-a29k-ultra.h: Use GPL version 2 copyright.
+
+	* reload1.c (reload): Put array size in cast, to prevent compiler
+	warning.
+
+	* dwarfout.c (type_attribute): Check for ERROR_MARK nodes.
+
+Wed Oct  9 13:59:22 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* toplev.c (float_signal): Reenable handler.
+
+	* configure: Comment out various options not yet updated.
+
+	* cp-*.c, cp-*.h: Renamed from cplus-*.[ch].
+	* Makefile.in: Renaming here also.
+
+	* x-*: Renamed from make-*.
+	* Makefile.in (tmake_file, xmake_file): New vars.
+	(Makefile): Depend on them.
+	* configure: Replace host_make_var_file with host_xmake_file.
+	Handle tmake_file also, for target machine.
+	Form file names from x- and t-.
+	Rearrange use of temporary files during editing of Makefile.
+
+	* t-mips: Most of x-mips moved here.
+	* t-decrose: Likewise from x-decrose.
+
+	* xm-a29k-ult.h: Renamed from xm-a29k-ultra.h.
+
+	* Makefile. in (install-common): Don't handle `collect' specially.
+	It should be in EXTRA_PASSES if it is needed.
+
+	* cse.c (simplify_binary_expression): Use float handler for DF like SF.
+	Don't warn about traps; leave them for run time.
+
+	* tm-hp9k320.h (SIZE_TYPE): New definition.
+	Note: this affects tm-3b1.h by inheritance.  Not sure that's right.
+
+Wed Oct  9 12:15:40 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* rtl.def (TRAP_IF): Make TRAP into a conditional trap.
+	* rtl.h (TRAP_CONDITION): Define.
+	* rtlanal.c (reg_referenced_p may_trap_p): Deal with TRAP_IF properly.
+	(volatile_refs_p side_effects_p): Not currently true for TRAP_IF.
+
+Wed Oct  9 03:55:21 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* make-mips (BISONFLAGS): Assignment deleted.
+
+	* real.h (REAL_VALUE_MINUS_ZERO): New macro.
+	* fold-const.c (target_minus_zero): New function.
+	* tm-sun2os4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_FLOAT_OPERAND):
+	(ASM_OUTPUT_DOUBLE, ASM_OUTPUT_DOUBLE_OPERAND):
+	Use REAL_VALUE_ISINF, REAL_VALUE_MINUS_ZERO.
+
+Tue Oct  8 17:56:13 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (duplicate_decls): If redeclaring builtin as static,
+	replace the old decl.
+
+	* tm-seq386.h (HARD_REGNO_MODE_OK): Copy usual def into override def.
+
+	* tm-news.h (CPP_PREDEFINES): Get rid of invalid conditionals.
+	* tm-tower.h: Likewise.
+
+	* tm-gmicro.h (MODES_TIEABLE_P): Fix typo.
+
+	* ns32k.md (rotrsi3): Fix typo `NEGATE' for `NEG'.
+
+	* c-typeck.c (mark_addressable): Handle CONSTRUCTOR.
+	* expr.c (expand_expr): Handle addressable contructors.
+
+Tue Oct  8 14:42:56 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* expmed.c (lshift_value): Ensure the shift amount is in range.
+
+Mon Oct  7 20:45:35 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* integrate.c (function_cannot_inline_p, save_for_inline_copying,
+	save_for_inline_nocopy, expand_inline_function,
+	output_inline_function): Use GET_RTX_CLASS.
+
+	* listing: Remove RCS Author and Log fields.
+
+	* cse.c (exp_equiv_p): Fix typos in comments/spacing.
+	* emit-rtl.c: Likewise.
+	* expmed.c (store_fixed_bit_field): Likewise.
+	* integrate.c (subst_constants): Likewise.
+
+	* longlong.h: Again fix same typo previously fixed Sept 5.
+
+Mon Oct  7 17:28:23 1991  Michael Meissner  (meissner at osf.org)
+
+	* xm-mips.h (MIPS): Define MIPS to 1 instead of nothing, so
+	mips-tfile will compile once again.
+
+Mon Oct  7 17:10:32 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (main): Pedantically warn if no newline at end of file.
+	(finclude): Likewise.
+
+	* c-decl.c (grokdeclarator): funcdef_flag overrides parm level.
+
+Sun Oct  6 16:37:31 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* sparc.md (peephole for lo-sum and load df): Use output_move_double.
+
+	* tree.h (DECL_BUILT_IN_NONANSI): New flag.
+	* c-decl.c (init_decl_processing): Set flag for `alloca'.
+
+	* c-decl.c (duplicate_decls): Rearranged to reduce conditionals.
+	Allow redefining built-in functions as static even if new decl
+	is not a function.  Also allow if built-in is not ANSI.
+
+	* out-sparc.c (output_move_double): Fix typo in test for using ldd.
+
+Sun Oct  6 12:56:19 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case COND_EXPR): Rename var added in last
+	change; some C compilers don't like "optab optab;".
+
+Sun Oct  6 09:26:55 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-method.c (build_overload_name): When walking up contexts, if
+	CONTEXT becomes a _TYPE node, point it at the _DECL node for the
+	type.
+
+	* cplus-decl2.c (grokclassfn): Paremeter COMPLAIN deleted.  No
+	longer performs sanity check by itself.
+	(check_classfn): New function.  Performs sanity check that
+	`grokclassfn' used to do.  All callers changed.
+
+	* tree.h (struct tree_decl): Add new ignored_flag; delete
+	lang_flag_8 to make room.
+	(DECL_IGNORED_P): New macro.
+	(DECL_LANG_FLAG_8): Deleted.
+	* cplus-dbxout.c (dbxout_type): Use this macro instead of
+	ANON_AGGRNAME_P.
+	* cplus-decl.c (pushtag): Set DECL_IGNORED_P when appropriate.
+	* cplus-decl.c (duplicate_decls): Ensure DECL_IGNORED_P remains
+	consistent.
+
+	* cplus-decl.c (grokfndecl): If we have an overloaded operator, set
+	the DECL_NAME to something that dbxout.c can handle.
+	* cplus-method.c (hack_operator): Change this function to handle
+	this new behavior.
+	* cplus-init.c (do_friend): Ditto.
+
+Sat Oct  5 14:32:01 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expmed.c (expand_mult): Avoid fetching memory more than once.
+
+	* tm-ultrix.h (DOLLARS_IN_IDENTIFIERS): Define as 1.
+
+	* expr.c (expand_builtin): Clarify error message for BUILT_IN_NEXT_ARG.
+
+Sat Oct  5 08:42:02 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl.c (clear_anon_tags): New function.
+	(make_anon_name): Moved here from cplus-method.c.
+	* cplus-lex.c (check_for_missing_semicolon, note_list_got_semicolon):
+	call `clear_anon_tags' when done.
+	* cplus-dbxout.c (dbxout_type): No longer test ANON_AGGRNAME_P for
+	TYPE_NAMEs that are IDENTIFIER_NODES.  They no longer appear in GNU
+	C++.  Also, we can rely on the fact that there are no anon aggrnames
+	in tag lists.
+
+	* cplus-decl.c (xref_tag): Set TREE_VEC_LENGTH (BINFOS) to the
+	number of basetypes that were actually accepted.
+
+	* cplus-parse.y (datadef, fndef): Accept `extern "C"' as a storage
+	class specifier.
+
+	* cplus-init.c (build_new): Handle allocating types whose TRUE_TYPEs
+	start off as ARRAY_TYPEs.
+
+	* cplus-typeck.c (build_unary_op): We don't need to wrap
+	CURRENT_CLASS_DECL in a NON_LVALUE_EXPR when taking the address of
+	C_C_D.
+
+	* cplus-init.c (resolve_offset_ref): Fix error message for
+	non-static member references.  Also, don't crash if EXP is not a
+	TREE_LIST or an OFFSET_REF.
+
+	* cplus-expr.c (cplus_expand_expr): Handle OFFSET_REFs.
+
+	* cplus-typeck.c (build_binary_op_nodefault): If PEDANTIC, don't
+	permit comparisons between pointers and integers.
+
+	* cplus-decl2.c (explicit_warn_return_type): New variable.
+	* cplus-decl.c (grokdeclarator): Test `explicit_warn_return_type'
+	instead of `warn_return_type'.
+
+	* cplus-decl.c (grokdeclarator): Fix criterium for deciding whether
+	to turn a FUNCTION_TYPE declaration into a METHOD_TYPE declaration
+	based on FRIENDP and STATICP.
+	(implicitly_declare): If PEDANTIC, treat this as an error.
+
+	* cplus-cvt.c (convert_to_integer): Make anachronisms errors if
+	PEDANTIC is nonzero.
+
+	* cplus-typeck.c (convert_for_assignment): If PEDANTIC, don't let
+	void * convert to non-void* types.  Similarly, don't let const*
+	pointers be assigned to non-const* pointers.  Similarly for signed
+	vs. unsigned pointers.
+	(warn_for_assignment): Add new parameter SEVERE.
+
+	* cplus-decl.c (push_overloaded_decl): If PEDANTIC, give error when
+	functions overload variables.
+
+	* cplus-decl2.c (grokfield): If PEDANTIC, don't let fields have
+	initializers (conditionalized on PEDANTIC).
+	* cplus-class.c (finish_struct): Set TYPE_GETS_{ASSIGNMENT,INIT_REF}
+	for UNION_TYPE.
+
+Sat Oct  5 06:52:29 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case COND_EXPR): Case for X ? A + 1 : A can
+	also handle MINUS_EXPR and BIT_*_EXPR.
+
+	* rtl.h (copy_rtx_if_shared): Declare here.
+	* emit-rtl.c (unshare_copies): Delete unused variable.
+	(copy_rtx_if_shared): No longer static.
+	(reset_used_flags): New function.
+	* combine.c (copy_substitutions): Deleted.
+	(try_combine): When making new insns, ensure that we do not have any
+	improper sharing by using copy_rtx_if_shared; no longer call
+	copy_substitutions.
+
+	* combine.c (try_combine): If an insn that is a PARALLEL of two sets
+	isn't recognized and the result of the second SET is unused, ignore it.
+
+Fri Oct  4 15:25:33 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl.c (set_identifier_type_value): New function.  Change
+	all callers of macro SET_IDENTIFIER_TYPE_VALUE to call this function
+	instead.
+
+	* cplus-decl.c (pushdecl): Back out Sep 26 change.  ??? This problem
+	really has to be solved in a more global fashion.
+	(struct binding_level): New field `type_shadowed' for typenames that
+	get shadowed.  All pop* routines that restore from shadowed lists
+	now restore IDENTIFIER_TYPE_VALUE from the `type_shadowed' field.
+
+Fri Oct  4 14:47:52 1991  Michael Meissner  (meissner at osf.org)
+
+	* sdbout.c (include of syms.h): Don't include <syms.h> on MIPS
+	systems, since the system does not provide the file, rather use
+	"gsyms.h".  This is a problem for Silicon Graphics, and the System V
+	varient on RISC-OS, both of which define the USG macro.  Patch from
+	jonathan@isor.vuw.ac.nz.
+
+Fri Oct  4 13:37:11 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* stor-layout.c (get_best_mode): Add a volatilep parameter
+	indicating that the smallest mode is desired.
+	* expmed.c, fold-const.c: All callers changed.
+	(optimize_bit_field_compare): Initialize {l,r}volatilep now that
+	they are used.
+
+Thu Oct  3 22:08:45 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* objc-actions.h (CLASS_SUPER_NAME): Change type.basetypes to
+	type.binfo so that it will compile.
+
+Thu Oct  3 06:46:38 1991  Niklas Hallqvist  (niklas at appli.se)
+
+        * cplus-tree.h (PARANOID): Don't define if already defined.
+	({SET,CLEAR}_CLASSTYPE_MARKED*): New macros needed to get through
+	C compilers who don't allow comma expressions as lvalues.
+	({SET,CLEAR}_BINFO_*): Ditto.
+
+	* cplus-init.c: Use new SET/CLEAR macros.
+
+	* cplus-search.c: Ditto.
+	
+	* cplus-decl.c: Ditto.
+	(lookup_tag): Accept *_DECLs as nodes in the context chain.
+	(lookup_nested_type): Accept FUNCTION_DECLs not only as head of
+	the context chain, but at any place in it.
+
+Thu Oct  3 06:42:08 1991  Michael Meissner  (meissner at osf.org)
+
+	* c-decl.c (c_decode_option): Add new switch -Wparentheses and
+	-Wnoparentheses to control whether GCC warns about adding extra ()'s
+	around a subexpression.  Make -Wparentheses default behavior.
+	(warn_parentheses): New global variable.
+
+	* c-tree.h (warn_parentheses): New variable.
+
+	* c-typeck.c (parser_build_binary_op): Check for warn_parentheses
+	before emitting warnings about adding ().
+
+Wed Oct  2 20:51:04 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* gcc.texinfo: Correct documentation for CONSTANT_ADDRESS_P,
+	CONSTANT_P, and HIGH.
+
+Wed Oct  2 15:08:32 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-class.c (modify_vtable_entries): Fix error in computing
+	offsets to use for virtual functions from virtual baseclasses.
+	* cplus-except.c (lookup_exception_type): Change local variable name
+	`binfo' to `link'.
+	* cplus-lex.c (yylex): Cast shorts to (long) when building longlong.
+
+Wed Oct  2 11:32:35 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-encrose.h (new file): New configuration file for Encore
+	Multimax running OSF/1, and using the OSF/rose object formats.
+
+Wed Oct  2 08:33:08 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* tree.h (TYPE_UID): Add this field to TYPE nodes.
+	* tree.c (make_node): Initialize it.
+	* dwarfout.c (TYPE_NAME_FMT): Use TYPE_UID rather than TREE_UID.
+	(equate_type_number_to_die_number): Discard type qualifiers.
+	(output_typedef_die): Don't use equate_type_number_to_die_number.
+
+Wed Oct  2 08:04:57 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_process_notes): Fix typo; missing arg in return.
+
+Wed Oct  2 06:56:13 1991  Ron Guilmette  (rfg at ncd.com)
+
+        * Makefile.in (ENQUIRE_CFLAGS): Remove duplicate use of GCC_CFLAGS.
+
+	* Makefile.in (cplus-tab.c): Adjust number of expected conflicts.
+
+	* Makefile.in (mostlyclean): Remove collect and collect2.
+   
+	* tm-svr4.h: Add new file; prototype for System V, Release 4.
+
+Tue Oct  1 23:00:13 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads_address): Fix error in previous change;
+	clean up REG case so it is easier to read.
+
+Tue Oct  1 14:05:46 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl.c (finish_{decl,function}): Use new function
+	`note_debug_info_needed' instead of setting CLASSTYPE_ASM_WRITTEN.
+	* cplus-search.c (note_debug_info_needed): New function.
+	Recursively set CLASSTYPE_ASM_WRITTEN in a hierarchy when called.
+
+	* cplus-class.c (finish_struct): If DECL_NAME of the BASE_FNDECL is
+	NULL_TREE, we know we're looking at a virtual destructor.
+
+Tue Oct  1 09:47:25 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-mips.h (OPTIMIZATION_OPTIONS): Enable scheduling insns now for
+	-O2 optimization.
+
+	* Makefile.in (STAGESTUFF): Add $(EXTRA_PASSES), to allow moving any
+	extra passes into the stage[1234] directories, and to remove the
+	extra stuff when doing make clean.
+
+Tue Oct  1 08:35:11 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* dwarfout.c (FUNC_END_LABEL_FMT, TYPE_NAME_FMT): Undo this change.
+
+	* c-decl.c (grokdeclarator): When making an unsigned bitfield
+	type from a typedef, preserve the size.  A typedef of an
+	explicitly signed typedef is explicitly signed.
+
+Mon Sep 30 22:51:07 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* out-sparc.c: Fix misc typos and indentation problems.
+	Delete all unnecessary extern declarations.
+	Include "recog.h".
+	Consistently use Pmode instead of SImode for addresses.
+	Use macros defined in tm-sparc.h instead of magic numbers.
+	(reg_or_0_operand): Accept CONST_DOUBLE zero.
+	(symbolic_operand): Accept CONST_DOUBLE.
+	(move_operand): Accept arith_double_operand ('H'), SMALL_INT
+	('I'), and sethi operands ('K').
+	(move_pic_label): Renamed from move_reg_or_immed_operand.  If
+	flag_pic is true, accept a LABEL_REF, otherwise fail.
+	(arith_double_operand): Accept SMALL_INT ('I') CONST_INTs.  Correct
+	computation of when a CONST_DOUBLE is a SMALL_INT ('H').
+	(eligible_for_epilogue_delay): Accept arith_double_operands.
+	(emit_move_sequence): Handle arith_double_operands.  Handle
+	loading of labels for pic, need to add a clobber of %o7 (reg 15).
+	(find_addr_reg): Don't return FRAME_POINTER_REGNUM.  It is not
+	safe to play around with the frame pointer.
+	(hard_regno_mode_ok): Change from short to int array.
+	(output_pic_sequence, output_pic_sequence_2, fp_zero_hook): Delete
+	long obsolete routines.
+	(print_operand): Delete support for obsolete 'S' and 'H' cases.
+	(output_double_int): New function.  Outputs assembler code for 64
+	bit (DImode) values.
+
+	* sparc.md: Fix misc typos and indentation problems.
+	Delete unnecessary (set_attr "type" "binary") lines.
+	Consistently use %a1 in sethi and ori output templates.
+	Consistently use Pmode not SImode for addresses.
+	Consistently use the same predicate for both operand 1 and
+	operand 2 in commutative patterns.  Don't use same predicate in
+	non-commutative patterns.
+	Consistently use \; to separate multiple instuctions.
+	Change "r%" to "%r".
+	(define_attr length): Handle arith_double_operand predicate.
+	(movsi): Combine two movsi patterns into one, except for loading
+	of pic labels.	New pattern to load pic labels, which clobbers %o7.
+	(movhi): Combine two movhi patterns into one.
+	(movqi): Combine two movqi patterns into one.
+	(movdi): Discourage the Q/f constraint option so that DImode
+	variables won't end up in floating pointer registers.
+	(floatsisf2, floatsidf2): Delete patterns accepting a const_int
+	operand.  These should never be matched.  In remaining patterns,
+	accept nonimmediate_operand instead of general_operand.
+	(adddi3, subdi3, anddi3, iordi3, xordi3, xnordi3, one_cmpldi2):
+	Accept arith_double_operand predicates and "HI" constraints.
+	(last peephole): Reg 0 should be CCmode not SImode.
+
+	* tm-sparc.h: Fix misc typos.
+	(WORDS_BIG_ENDIAN): Indicate why it must be true.
+	(hard_regno_mode_ok): Change from short to int array.
+	(CONST_DOUBLE_OK_FOR_LETTER_P): Add new 'H' constraint, for DImode
+	constants that can fit in an immediate field.
+	(CONSTANT_ADDRESS_P): Accept any CONSTANT_P, including
+	CONST_DOUBLEs.
+	(LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs if match 'H'
+	constaint.
+	(RTX_COSTS): Define cost for FLOAT to be more expensive than
+	CONST_DOUBLEs, so that cse will prefer the latter.
+	(ASM_OUTPUT_DOUBLE_INT): New macro to output DImode constants.
+
+	* sched.c (schedule_block): When calculating register lifetime
+	info, handle CLOBBERs and USEs.  The code that adds REG_DEAD notes
+	already handles them.
+	(update_n_sets): New function, subroutine of update_links.
+	Given a SET or CLOBBER, updates reg_n_sets as appropriate,
+	depending on whether this is in a deleted or a new insn.
+	(update_links): Call update_n_sets to subtract info for split
+	insn, and add info for insns resulting from the split.
+
+Mon Sep 30 19:06:50 1991  Michael Meissner  (meissner at osf.org)
+
+	* ecoff-cmp (TMP): Fix typo, from jonathan@isor.vuw.ac.nz.
+
+	* mips-tfile.c (toplevel): Don't declare _flsbuf under Silicon
+	Graphics, from jonathan@isor.vuw.ac.nz.
+
+Mon Sep 30 15:54:02 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_process_notes): New function.
+	(cse_basic_block): Call it for each insn.
+	(count_reg_usage): Count usage in a REG_EQUAL note.
+	(delete_dead_from_cse): Call count_reg_usage with insn, not pattern.
+	* loop.c (scan_loop): Replace a register used in a REG_EQUAL note.
+	(find_single_use_in_loop): Two uses in single insn doesn't disqualify.
+	Allow argument to be REG_NOTES.
+	(count_loop_regs_set): Call find_single_us_in_loop on REG_NOTES.
+
+Mon Sep 30 15:47:03 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-call.c (ideal_candidate): Return 0 if the top two candidates
+	have identical rankings but incompatible types.
+
+	* cplus-lex.c (cons_up_default_function): Set DECL_NAME (FN) to
+	NULL_TREE in order to mark the function as being generated by the
+	compiler.
+	* cplus-init.c (emit_base_init): Change to use this interface.
+	* cplus-decl.c (duplicate_decls, redeclaration_error_message): Ditto.
+	(store_parm_decls): Ditto.
+	* cplus-decl2.c (grokclassfn): Ditto.
+	* cplus-dbxout.c (dbxout_type_methods): Ditto.
+	* cplus-class.c (finish_struct_methods): Ditto.
+	* cplus-method.c (fndecl_as_string): Ditto.
+	* cplus-search.c (lookup_fnfields_1): Ditto.
+	(compute_visibility): Ditto.
+	* cplus-typekc.c (build_function_call): Ditto.
+	* cplus-tree.c (lang_printable_name): Ditto.  Also use
+	DECL_ASSEMBLER_NAME instead of DECL_NAME in DESTRUCTOR_NAME_P test.
+	* calls.c (expand_call): Change also needed here.
+
+Mon Sep 30 15:31:53 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* dbxout.c: Include <param.h> before config.h, because it may define
+	MIN and MAX.
+
+	* fold-const.c (const_binop): Delete incorrect short cut for
+	(0 - const).
+
+	* expr.c (do_tablejump): Pass GET_MODE (index) instead of Pmode to
+	emit_cmp_insn, because the latter fails when integers and pointers
+	are different sizes.
+
+	* combine.c (subst): When checking to see if associating helps
+	simplify rtl, make sure we pass the constant operand if any as the
+	second one if this is a commutative operation.
+
+	* cccp.c (rescan): Save obufp_before_macroname as an offset from
+	the start of op->buf instead of as a pointer into the middle, in
+	case op->buf gets realloced.
+
+Mon Sep 30 14:07:20 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* dwarfout.c (FUNC_END_LABEL_FMT, TYPE_NAME_FMT): TREE_UID is
+	unique only if the node is TREE_PERMANENT.  Augment the spelling
+	of labels using TREE_UID with the TREE_UID of the current function.
+
+	Changes from Ron Guilmette:
+	* dwarfout.c (output_symbol): Deal with formal parameters with an
+	incomplete tagged type.
+	(output_bound_representation):  Fix for arrays with dynamic bounds.
+
+	Changes from Jim Wilson:
+	* dwarfout.c: Define strrchr to rindex for non USG systems.
+	Use DECL_BIT_FIELD_TYPE not DECL_BIT_FIELD to test for bitfields.
+
+Sun Sep 29 16:29:08 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.h (indirect_symref_ok): New variable.
+	* reload.c (find_reloads_address): Remove shadowing decls of `tem'.
+	Only allow certain forms addresses as indirect; check
+	indirect_symref_ok to see if (mem (symbol_ref ...)) is a valid
+	address; if not that form or simple, not valid indirect address.
+	* reload1.c (indirect_symref_ok): Define here.
+	(init_reload): Initialize vars used to determine which addrs are valid.
+	(reload): Don't do it here.
+	Update comment to relect what `alter_regs' currently does.
+
+	* tree.h (struct tree_decl): Add new from_inline_flag; delete
+	lang_flag_9 to make room.
+	(DECL_FROM_INLINE): New macro.
+	(DECL_LANG_FLAG_9): Deleted.
+	* c-decl.c, cplus-decl.c (pushdecl): Use DECL_FROM_INLINE instead of
+	TREE_INLINE where appropriate.
+	* cplus-decl.c (finish_decl): Likewise.
+	* integrate.c (integrate_parm_decls, integrate_decl_tree): Set
+	DECL_FROM_INLINE instead of TREE_INLINE.
+	* print-tree (print_node): Print DECL_FROM_INLINE.
+	Delete reference to DECL_LANG_FLAG_9.
+
+Sun Sep 29 12:49:47 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* c-decl.c, c-typeck.c, cplus-decl.c, toplev.c:
+	Set/test TREE_ADDRESSABLE of DECL_ASSEMBLER_NAME, not DECL_NAME for
+	function decls.
+
+	* cplus-class.c: Export `current_lang_stack' and
+	`current_lang_base'.
+	cplus-decl.c (push_overloaded_decl): Allow redeclaration of a
+	function that was previously given a linkage specification at
+	top-level (i.e., not in an explicit linkage arena).
+
+	* cplus-typeck.c (convert_arguments): Strip the `&' from an
+	overloaded function passed as an argument into an ellipses.
+
+Sat Sep 28 15:37:26 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-typeck.c (build_x_binary_op): We have to special-case the
+	failure of MEMBER_REF to be overloaded as an operator.
+
+Sat Sep 28 10:44:36 1991  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload): If we find at some point that we need
+	caller-saves, disable elimination of the frame pointer.
+
+	* reload.c (subst_reloads): Re-enable code to prevent making
+	a SUBREG inside a SUBREG.
+
+Sat Sep 28 00:40:51 1991  Ken Raeburn  (raeburn@cygnus.com)
+
+	* cplus-pt.c (do_pending_expansions): Adjust "DECIDE" macro to avoid
+	compiler warning from Sun cc.
+
+Fri Sep 27 17:30:39 1991  Per Bothner  (bothner at cygnus.com)
+
+	* configure[.in]: Move most of the target_vendor switch
+	entries (e.g. next, sun, sony) from the m88k architecture to m68k,
+	where they belong.
+
+Fri Sep 27 16:21:04 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-search.c (recursive_bounded_basetype_p): Add new parameter
+	UPDATE_CHAIN so that function now behaves as comment prescribes.
+	* cplus-search.c (compute_visibility): Fix error in conversion of
+	data structures from list-based to binfo-based nodes.
+
+Fri Sep 27 07:05:57 1991  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-decl.c (pushdecl): Fix typo: TREE_EXTERNAL misspelled.
+
+Thu Sep 26 17:36:14 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-mips.h (ASM_FINAL_SPEC): Handle gcc -c -o foo bar.c.
+
+	* tm-decrose.h (ASM_FINAL_SPEC): Handle gcc -c -o foo bar.c.
+
+	* make-decrose (cplus-lex rule): Remove hacks in compiling
+	cplus-lex, since bug in 1.39 inlining was fixed to allow us to
+	compile the module normally.
+
+Thu Sep 26 11:53:49 1991  Ken Raeburn  (raeburn@cygnus.com)
+
+	* cplus-tree.h (TEMPLATE_TYPE_*): Use slower versions that uses tree
+	structures more properly, so accessor macros don't lose.
+
+	* cplus-pt.c (end_template_parm_list): For type parameters, make the
+	new decl be the name of the "type".
+
+	* Makefile.in (cplus-tab.{c,h}): There are now 30 s/r conflicts.
+
+	* cplus-class.c (resolves_to_fixed_type_p, case CALL_EXPR): Deleted
+	duplicate code.
+
+	* cplus-decl.c (poplevel): Deleted duplicate code saving info on
+	accesses to external via non-global decls.
+	(pushdecl): For typedef of unnamed type, don't store new name for
+	type if not at global binding scope.  Also, don't need to test for
+	TYPE_DECL when previous conditional guarantees it.
+	(start_decl): Clear TREE_PUBLIC flag of templates.
+	(finish_decl): For variables in static storage with constructors,
+	force it into data section (out of common storage) only if the name
+	is externally visible.
+
+	* cplus-gc.c (type_needs_gc_entry): If the type has no base types,
+	don't check to see whether they need gc entries.
+
+	* cplus-parse.y (yyprint): Handle SCSPEC and AGGR.
+
+	* cplus-pt.c (end_template_decl): Clear IDENTIFIER_TYPE_VALUE slots
+	for type parameters, then call adjust_type_value.
+	(instantiate_class_template): Do nothing if classname is
+	error_mark_node.
+	(mangle_class_name_for_template): Make buf a static array, since
+	its address gets returned.
+
+	* reload1.c (reload): Provide array size in cast, to avoid compiler
+	warnings.
+
+	From Niklas Hallqvist:
+	* cplus-tree.h (struct template_info): Added new field "aggr", which
+	will be class_type_node or struct_type_node for class or struct
+	templates.
+	* cplus-parse.y (template_def): Pass current_aggr to
+	end_template_decl.
+	(template_instantiation): Use aggr field.
+	* cplus-pt.c (end_template_decl): Argument IS_CLASS is now a tree,
+	used to set the aggr field.
+	(overload_template_name): Use aggr field.
+
+	Suggested by John Carr:
+	* cplus-dbxout.c (dbxout_tags): Don't omit argument to
+	dbxout_finish_symbol.
+	(dbxout_continue): Omit declaration and definition if
+	DBX_CONTIN_LENGTH is not greater than zero, like its calls.
+	(print_int_cst_octal): Ditto, based on defined(WINNING_GDB).
+	* cplus-decl.c (GNU_end_scope): Never used; deleted.
+	(pushdecl): Vars nglobals, len are used only in code under "#if 0";
+	comment out decls as well.
+	* cplus-gc.c (expand_gc_prologue_and_epilogue): Variable "head" was
+	unused; deleted.
+	* cplus-init.c (expand_aggr_vbase_init_1): All args are type tree.
+	(expand_vec_init): Don't return without a value when "initializer
+	ends prematurely".
+	* cplus-method.c (build_overload_nested_name): Pass all necessary
+	arguments in recursive call.
+	* cplus-search.c (pop_type_level): Cast argument to pop_stack_level
+	to proper type.
+	(push_memoized_context): Ditto for push_type_level.
+	(my_copy_node): Unused; deleted.
+	(lookup_fnfields): Add missing arg to get_binfo.
+	(lookup_field): Ditto.
+
+	From Niklas Hallqvist:
+	* cplus-decl.c (push_to_top_level): Handle case of function with
+	unnamed parms.
+	(pop_from_top_level): Ditto.
+
+Thu Sep 26 07:46:08 1991  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* loop.c (scan_loop): Don't eliminate register that is set by 
+	consecutive insns.
+
+Wed Sep 25 18:53:52 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (pushdecl): Suppress warnings about mismatch of
+	extern decl when it comes from inlining a function.
+
+	* emit-rtl.c (set_new_first_and_last_label_number): New function.
+	(max_label_num): Use last_label_num if valid.
+	* integrate.c (output_inline_function): Call set_new_...
+
+Wed Sep 25 18:37:36 1991  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* flow.c (find_auto_inc): Set BLOCK_NUM of new insns emitted while
+	making an auto-inc.
+
+	* Makefile.in (getopt*.o): Each file depends on its .c file and on
+	the compiler executable files.
+
+Wed Sep 25 18:18:46 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* toplev.c (debug_info_level): New variable.
+	* flags.h (debug_info_level, enum debug_info_level): New declarations.
+	* toplev.c (main): Rewrite handling of -g* and -G* options.
+	Now -G indicates use of GDB extensions.  -g0 removed.
+
+Tue Sep 24 03:20:07 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* alloca.c: Test __STDC__, not X3J11.
+	Do nothing if alloca is defined as a macro.
+
+Tue Sep 24 09:15:17 1991  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* global-alloc.c (eliminable_regset): New variable.
+	(global_alloc): Compute it and use to turn off conflicts.
+	Refine computation of no_global_alloc_regs when ELIMINABLE_REGS is
+	defined.
+	(mark_elimination): Don't do anything with allocnos and don't do
+	any allocation.
+
+	* reload1.c (eliminate_regs_in_insn): Try to re-recognize insn if
+	we replaced a (set X (plus Y Z)).
+
+Tue Sep 24 06:34:04 1991  Michael Tiemann  (tiemann at mole.gnu.ai.mit.edu)
+
+	* cplus-tree.c (virtual_member): Change TREE_VALUE accessor macro to
+	BINFO_TYPE.
+	* tree.h (BINFO_TYPE): New name for BINFO_VALUE.
+	* All cplus-* files: Changed to reflect new name.
+
+Mon Sep 23 12:56:11 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-mips.h (ASM_SPEC): Fix typo, and close {}'s properly.
+
+Mon Sep 23 10:30:51 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-tree.c (propagate_assoc_offsets): Keep relative offsets of
+	child_child correct when copying children.
+
+	* cplus-class.c Use `BINFO_VALUE' instead of `TREE_VALUE' when
+	accessing the type value of a binfo node.
+	* cplus-decl.c (finish_function): Ditto.
+	* cplus-init.c (build_vbase_delete): Ditto.
+
+Mon Sep 23 06:11:56 1991  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* flow.c (reg_n_refs): Use int, not short.  Short can overflow
+	if we have very deep loop nesting.
+	(allocate_for_life_analysis): Allocate reg_n_refs as int.
+	* regs.h (reg_n_refs): Now int.
+	* sched.c: Delete duplicate definitions of objects defined in regs.h.
+
+	* combine.c (try_combine): Correctly check for independent insns
+	in a PARALLEL.
+
+	* combine.c (distribute_note, case REG_DEAD): If we discover a register
+	is never used, see if we can delete the insn that set it.
+
+Sun Sep 22 19:24:52 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-type2.c (build_functional_cast): Don't forget a valid
+	function call if we found one (and nothing more).
+
+Sun Sep 22 07:48:18 1991  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rtlanal.c (rtx_varies_p, case REG): Correct typo; sense of comparison
+	was backwards.
+
+	* global-alloc.c (mark_elimination): Don't use HARD_REG_SET macros
+	to access basic_block_live_at_start.
+
+	* reload1.c (set_label_offsets): New function.
+	(offsets_known_at, offsets_at): New variables.
+	(reload): Allocate and initialize them.
+	Set each label in FORCED_LABELS to be at initial offsets.
+	Call set_label_offset on all insns that might involve labels.
+	Use GET_RTX_CLASS when appropriate.
+	(eliminate_regs, mark_not_eliminable): Ignore sets of FP when looking
+	for sets of a "to" register.
+	(eliminate_regs_in_insn): No longer suppress elimination for any
+	pair not at its initial offet at a jump.
+	
+	* combine.c (distribute_links): Correctly find the place to put a
+	link.  Handle the case when we eliminate all uses of something that
+	we used to use; in that case, we must seach forward.
+	No longer need I3, I2, or ALL_ADJACENT arguments.
+	(try_combine): Change calls to distribute_links.
+
+	* reload.c (find_equiv_reg): Use GET_RTX_CLASS when appropriate.
+	If GOAL is a MEM whose address varies, check whether registers
+	that are SET appear in the address rather than assuming they do.
+	Ensure REG_INC note is a REG; ignore it if not.
+
+	* rtlanal.c (rtx_varies_p): Rework to use switch statement.
+	Check for {frame,arg}_pointer_rtx, not just register number.
+	(rtx_addr_can_trap_p): New function.
+	(may_trap_p): Use rtx_addr_can_trap_p instead of rtx_varies_p.
+	* genattrtab.c: Define {frame,arg,stack}_pointer_rtx for rtlanal.c.
+
+	* combine.c (make_extraction): Make a ZERO_EXTRACT for something with
+	pos == 0 if it will be placed in a SET_DEST.
+
+	* expmed.c (expand_shift): Rotate case was missing return statement.
+	extzv case had wrong arg to delete_insns_since.
+	Remove unneeded calls to delete_insns_since.
+	Allow BITS_BIG_ENDIAN to vary at run-time.
+	Use variable TEMP in a consistent manner.
+	Other miscellaneous changes and cleanups were made.
+
+	* flow.c (max_uid_for_flow): New variable.
+	(flow_analysis): Compute maximum uid into max_uid_for_flow; if
+	we might have auto-inc, leave some space.
+	(find_auto_inc): Verify that the uid's of the insns we make are
+	within the allocated space of our per-insn tables.
+	Use get_insns instead of gen_sequence.
+
+	* global-alloc.c (retry_global_alloc): When we allocate a register,
+	update regno_reg_rtx and mark the allocated register live.
+	(mark_elimination): New function.
+	* reload1.c (reload): Call mark_elimination for every elimination
+	we have been able to do.
+	(spill_hard_reg): No longer need to call mark_home_live.
+
+Sun Sep 22 02:07:55 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes: Redirect cmp output to /dev/null; don't close it.
+
+	* varasm.c (assemble_function): Handle ASM_OUTPUT_FUNCTION_PREFIX.
+
+	* final.c (final_scan_insn): No need to goto text section
+	for label on jump table.  We're normally in the text section.
+
+Sat Sep 21 14:59:32 1991    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* make-cc1.com:  Fix typo in code that decides if bison needs to be
+	run.  Also, display a message when building the compiler that informs
+	the user about the need to update the assembler.
+
+Sat Sep 21 17:23:07 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (struct movable): Add field DEPENDENCIES.
+	(scan_loop): Remove mechanism based on REG_TO_FORCE and
+	MOVABLE_TO_FORCE.  Replace with use of new field.
+	Optionally allocate and initialize reg_single_usage and pass it to
+	count_loop_regs_set.
+	If an invariant register is used exactly once and this is a loop
+	that has a CALL_INSN, try to substitute the definition of the register
+	into its use.
+	(record_excess_regs): Fix typo in sense of checking in NOT_IN_THIS;
+	only check pseudo-regs.
+	(libcall_other_reg): Always return the list of registers used,
+	no matter how many there are.
+	(combine_movable): Only combine two movables if they have the same
+	dependencies.
+	(move_movables): Can only move something if its dependencies have
+	already been moved.
+	(find_single_use_in_loop): New function.
+	(count_loop_regs_set): Delete code that prevents moving a reg that
+	is used as a function address.
+	Call find_single_use_in_loop when required.
+
+Sat Sep 21 16:28:34 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_unary_op):
+	Handle const and volatile lvalues correctly in ADDR_EXPR.
+
+	* output.h (current_function_contains_functions):
+	Just declare it, don't define it.
+
+	* cse.c (exp_equiv_p): New arg EQUAL_VALUES.  All callers changed.
+
+Sat Sep 21 12:59:15 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-parse.y (object_star): New rule.
+	(POINTSAT_STAR): New token.
+	* cplus-lex.c (init_lex): Define entry for MEMBER_REF.
+	GNU C++ now overloads `operator->*' according to ARM semantics.  It
+	no longer attempts to implement operator->* as two distinct
+	operations.
+
+Fri Sep 20 18:08:07 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+        * combine.c (subst): Don't replace a CC0 or a PC in a SET_DEST if
+        FROM is the same thing.
+ 
+	* combine.c (simplify_shift_const): Compute SHIFT_MODE at start of
+	loop and use its width, rather than width of RESULT_MODE, when checking
+	shift count.
+
+Fri Sep 20 10:55:55 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-pt.c (uses_template_parms): Handle COMPONENT_REF case.
+
+Fri Sep 20 00:27:43 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_modify_expr): When assigning to a cast,
+	convert value first to the type being cast to.
+	(build_unary_expr): Disallow adress of a cast.
+
+	* explow.c (allocate_dynamic_stack_space):
+	Handle SETJMP_VIA_SAVE_AREA before rounding to STACK_BOUNDARY.
+
+Thu Sep 19 21:13:17 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (dist, gcc-*.tar, gcc-*.tar.Z): New targets.
+
+	* jump.c (jump_optimize): In handling `if (...) x = a; else x = b;',
+	don't crash if scan reaches start of insns.
+
+	* Makefile.in (protoize): Link with getopt.o and getopt1.o.
+	(unprotoize): Likewise.
+	(protoize.o): Depend on getopt.h.  Pass -D options for include dirs.
+	(unprotoize.o): Likewise.
+	(getopt.o, getopt1.o): New targets.
+
+	* protoize.c: Major rewrite by RFG and RMS.
+
+Thu Sep 19 09:58:25 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	Changes from Ron Guilmette:
+	* dwarfout.c: Keep track of next_block_number correctly.
+	* final.c (final_scan_insn): Don't invoke dwarfout_{begin,end}_block
+	for the outermost block of a function.
+
+Thu Sep 19 06:16:34 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c (copy_replacements): New function.
+	* optabs.c (gen_move_insn): Don't call gen_lowpart while reloading
+	is in progress; it calls change_address, which wants to make pseudos.
+
+	* combine.c (subst, case SET): Fix typo in last change.
+
+	* combine.c (distribute_notes): When searching back for a place that
+	uses a register marked REG_DEAD, check for set and reference separately
+	since reg_overlap_mentioned_p doesn't check SET_DEST.
+
+	* combine.c (simplify_shift_const): Correct handling of shift counts
+	that become out-of-range.
+
+	* combine.c (expand_field_assignment): Don't allow sharing the RTL
+	for the inner object.
+
+	* combine.c (can_combine_p, try_combine, record_value_for_reg): Use 
+	reg_overlap_mentioned_p instead in reg_mentioned_p in most places.
+	(distribute_notes, distribute_links): Likewise.
+	(combinable_i3pat): New function, from try_combine.
+	(try_combine): Default I1DEST and I1SRC to zero.
+	New var I1_FEEDS_I3.
+	Delete code to validate I3's pattern from here; call combinable_i3pat
+	instead.
+	If a substitution returns a (clobber (const_int 0)), stop immediately.
+	Don't abort if substitution made new regs; just don't do combine.
+	(subst): If IN_DEST, don't replace a matching object.
+	Don't look at a REG as a SET_DEST.
+	If substitution inside a PARALLEL fails, give up immediately.
+	Return (clobber (const_int 0)) even for a SET whose operand fails.
+	(subst, case SET): Correctly test for low-order SUBREG.
+	Don't use gen_lowpart_for_combine; make SUBREG explicitly since it
+	can't handle modes larger than a word.
+
+	* combine.c (subst, case NOT): Code for (not (ashiftx ..)) was too
+	general; only handle (not (ashift 1 X)).
+	(subst, case NEG): Handle (neg (ashift ...)).
+	(merge_outer_ops): Support NEG.
+	(simplify_shift_const, case NEG): Handle (ashift (neg ...)).
+
+	* cse.c (simplify_binary_operation, case ROTATE, ROTATERT):
+	Rotating all one bits is just all ones.
+
+Thu Sep 19 01:08:14 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-parse.h, cplus-decl.h: Remove trailing comma after the last
+	enum value in enum declarations.
+
+	* cplus-type2.c (digest_init): Set TREE_PURPOSE of union initializer
+	when initializing a union by the first field.
+
+	* cplus-method.c (fndecl_as_string): Test whether DECL_CLASS_CONTEXT
+	is NULL before using it.
+	(dump_aggr_type): New function.  Print aggr type's context when
+	appropriate.
+	(dump_type{_prefix}): Use `dump_aggr_type' to print ENUMERAL_TYPE,
+	UNION_TYPE, and STRUCT_TYPE types.
+
+	* cplus-decl.c (start_decl): Don't use DECL_CLASS_CONTEXT if DECL
+	has no DECL_LANG_SPECIFIC.
+
+Wed Sep 18 21:46:32 1991  Michael Meissner  (meissner at osf.org)
+
+	* mips-tfile.c (cur_proc_value): New static to remember the starting
+	location of the current function.
+	(add_procedure): Save current procedure location.
+	(parse_begin, parse_bend): Subtract cur_proc_value from location.
+	(parse_bend): Correct error messages.
+	The above changes are from bothner@cygnus.com.
+
+	* tm-mips.h (ASM_FINAL_SPEC): Use -mno-mips-tfile to suppress
+	invoking mips-tfile, instead of using -g0.  If -save-temps, preserve
+	the original .o file before mips-tfile is called.  Pass the correct
+	name for the assembler file.
+	(MASK_MIPS_TFILE): New mask for -mmips-tfile, -mno-mips-tfile, set
+	to 0, since that switch is handled entirely in ASM_FINAL_SPEC.
+	(TARGET_FLAGS): Add -mmips-tfile, -mno-mips-tfile switches.
+	(MUST_SAVE_REGISTER): Allow $30 to be saved, even if not being used
+	as the frame pointer.
+
+	* tm-decrose.h (ASM_FINAL_SPEC): Use -mno-mips-tfile to suppress
+	invoking mips-tfile, instead of using -g0.  If -save-temps, preserve
+	the original .o file before mips-tfile is called.  Pass the correct
+	name for the assembler file.
+
+Wed Sep 18 18:54:15 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-*.c: Use DECL_CLASS_CONTEXT to figure out where a (static or
+	non-static) member function is declared, rather than trying to
+	divine the info from TYPE_METHOD_BASETYPE of the function's type.
+
+Wed Sep 18 15:38:52 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-decl.c (grokdeclarator): Error if nested function is extern.
+
+Wed Sep 18 02:41:08 1991  Per Bothner  (bothner at cygnus.com)
+
+	* cplus-typeck.c (convert_arguments):  Don't crash if the
+	formal parameter type is unknown (type==NULL) and the
+	actual is a function.  Do the default instead.
+
+Tue Sep 17 22:33:30 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (check_format):
+	No warning if types match except for signedness.
+
+Tue Sep 17 10:56:46 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-decl.c (pushtag): When creating a TYPE_DECL that's in class
+	scope, allocate the space needed for DECL_CLASS_CONTEXT.
+
+	* cplus-search.c (get_abstract_virtuals): If the BASE is not on the
+	main spine, look at the virtuals that come from the most derived
+	class that has BASE on its main spine.
+	* cplus-tree.h (VF_*): New macros for dealing with VFIELDS.
+
+Mon Aug 16 12:09:32 1991    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* make.com: Fix typo.
+
+Tue Sep 17 15:13:39 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-common.c (shorten_compare): Always compute args with side effects.
+
+	* varasm.c (decode_addr_const): Use SYMBOL_REF unchanged in 1st switch.
+
+	* varasm.c (output_addressed_constants):  Handle a CONSTRUCTOR in
+	an ADDR_EXPR correctly.
+	
+	* cccp.c (rescan): For unterm string, mention lineno of first newline.
+
+	* fold-const.c (fold): Call optimize_bit_field_compare in constant case
+	even if not optimizing.
+
+	* c-decl.c (finish_function): Don't clear DECL_INITIAL if nested.
+	(pop_c_function_context): Do it here instead.
+
+Tue Sep 17 11:30:32 1991  Michael Meissner  (meissner at osf.org)
+
+	* collect-osf.c (scan_prog_file): Recognize alternate forms for the
+	constructor and destructor names.
+
+	* osf-main.c (_entry): Provide an alternative function (_entry) to
+	start up the static constructors/destructors.
+
+Mon Sep 16 05:35:21 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (simplify_shift_const): Correct errors involving modes
+	to use for shift.
+
+Sun Sep 15 19:13:58 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload_as_needed): Remove code that deletes insns that
+	create equivalences.
+	(reload): Put it here so it is executed even if reload_as_needed
+	isn't called.
+
+Sun Sep 15 17:13:09 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (GNULIB2_CFLAGS): Include GCC_CFLAGS.
+	(ENQUIRE_CFLAGS): Likewise (in place of plain CFLAGS).
+
+	* genattrtab.c (main): Don't index by id->insn_code if negative.
+
+	* genrecog.c (write_tree_1): Avoid pos[depth-1] if depth is 0.
+
+Sun Sep 15 15:19:16 1991    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* make.com: Modify to allow direct submission to a batch queue.
+	Also, add instructions to build GNU C++ as well as GNU CC.
+
+	* cccp.c (hack_vms_include_specification): If [000000] is present in
+	(implying a physical device or a rooted logical) try to open it.
+	If the open fails, then remove the [000000] (making the name suitable
+	for use with a non-rooted logical name) and return that.
+
+Sun Sep 15 15:12:41 1991  Michael Meissner  (meissner at osf.org)
+
+	* make-mips (Makefile): Remove rule building Makefile, since
+	Makefile.in now has one.
+
+	* make-decrose (Makefile): Remove rule building Makefile, since
+	Makefile.in now has one.
+
+Sun Sep 15 14:12:47 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makeflags (SYSCALLS.c.X): Use CPPFLAGS and INCLUDES.
+
+Sun Sep 15 12:03:35 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cplus-decl.c (poplevel): Match change made to c-decl.c on Oct 3,
+	1989.
+
+Sun Sep 15 06:52:42 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* caller-save.c (save_call_clobbered_regs): Deaden registers mentioned
+	in REG_UNUSED notes.
+	(clear_reg_live): Verify that note refers to a REG.
+	(choose_hard_reg_mode): Rewrite to not use specific modes and to
+	handle the case where separate CCmode registers exist.
+
+Sat Sep 14 13:03:29 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+	* all cplus-* files: Change {ASSOC,assoc} to {BINFO,binfo} where
+	appropriate.
+	cplus-tree.h, tree.h: Change name of CLASSTYPE_ASSOC to TYPE_BINFO.
+	Change names of CLASS_ASSOC_* to TYPE_BINFO_*.
+	all cplus-* files: FUNCTION_DECLs that are class methods now have
+	their DECL_VCONTEXT stored in the DECL_CONTEXT.
+	(lang_decl): The VCONTEXT field is now gone.
+	(lang_decl): _DECL nodes in class scope now record the class as a
+	context in the DECL_CLASS_CONTEXT field.
+	tree.h (TYPE_BINFO): Renamed TYPE_BASETYPES to this.
+	dbxout.c (dbxout_type): User of TYPE_BASETYPES changed.
+	(BINFO_{VALUE,OFFSET,VTABLE,VIRTUALS,BASETYPE{S}}): New macros
+	inherited from GNU C++.
+	(DECL_{VINDEX,FCONTEXT}): Ditto.
+	(TREE_VIA_{PUBLIC,VIRTUAL}): Ditto.
+
+Sat Sep 14 09:14:26 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtlanal.c (reg_set_p): Remove abort for MEM; reg_overlap_mentioned_p
+	now handles that case correctly.
+	REG is set if it is really a MEM and this is a CALL_INSN.
+
+Sat Sep 14 01:34:39 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure (vax-ultrix*): New alternative.
+
+	* reload1.c (choose_reload_regs): Always ignore cancelled reloads.
+
+	* real.h (atof): Alternate declaration on MIPS.
+
+Thu Sep 12 18:55:06 1991  Torbjorn Granlund  (tege at mole.gnu.ai.mit.edu)
+
+	* optabs.c (expand_binop): Fix carry propagation code for multiple
+	words.
+
+	* tm-*.h: Fix systematic typo in comment.
+
+Thu Sep 12 18:23:53 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gvarargs.h, va-mips.h, va-sparc.h (_va___list): Was __va_list.
+
+Thu Sep 12 12:53:36 1991  Roland H. Pesch  (pesch at cygint.cygnus.com)
+
+	* cpp.texinfo: (titlepage) use @title/@subtitle/@author
+	(copyright page) add note re future C manual; add 1991 to copyrights
+	(general) prepare for easy @smallbook formatting; clarification on
+	strings; less passive; add AMD29K predefined macros; update -d refs,
+	add -dM; add examples; add -pedantic-errors; add -MD, -MMD, -H; fix
+	minor typos.	
+
+Thu Sep 12 07:58:11 1991  Torbjorn Granlund  (tege at mole.gnu.ai.mit.edu)
+
+	* m68k.md (umulsidi3, mulsidi3): New DEFINE_EXPANDs and DEFINE_INSN
+	recognizers.
+
+Wed Sep 11 22:11:17 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* a29k.md, romp.md: Update calling sequence to emit_no_conflict_block.
+
+Wed Sep 11 21:06:32 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* fold-const.c (const_binop): Fix last change for ceil and round.
+
+	* gvarargs.h, va-mips.h, va-sparc.h (va_list): Now a macro again.
+	(__va_list): This is the typedef.
+
+Wed Sep 11 16:52:20 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_binary_op_nodefault, RSHIFT_EXPR): Change
+	"shift count" warnings changed to errors back to warnings.
+
+	* cse.c (canon_hash): Also do not record global_regs if
+	SMALL_REGISTER_CLASSES.  Makes the code match the comment.
+
+	* cexp.y (yylex): Add sprintf call to create error message,
+	because yyerror does not call *printf itself.
+
+	* gcc.c (default_compilers): Support new option -traditional-cpp,
+	which passes traditional to cpp, but not to cc1.
+	* gcc.texinfo: Document it.
+
+	* sched.c (INSN_LUID): New variable.  Give instructions logical
+	numbers, which can be used when sorting, to make the scheduling
+	algorithm more stable.
+	(sched_analyze): Initialize it.
+	(rank_for_schedule): Sort on it.
+	(schedule_insns): Alloca(te) it and (b)zero it.
+	(priority):  New priority algorithm.  Don't include latency of
+	current insn, and subtract one from total priority calculated.
+	Makes the scheduling algorithm more stable, and doesn't hurt
+	performance.
+
+	* sched.c (swap_sort): Must pass &insn to rank_for_schedule, not a
+	pointer into the array being sorted.
+
+	* cplus-lex.c (do_identifier): Put function return type on
+	preceeding line.
+
+Wed Sep 11 05:51:00 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-typeck.c (build_binary_op_nodefault): If OP0 or OP1 is a
+	zero pointer, canonicalize it to NULL_POINTER_NODE.
+
+	* expr.c (preexpand_calls): Don't preexpand calls inside a
+	WITH_CLEANUP_EXPR.  The gestalt of a WITH_CLEANUP_EXPRs must be
+	understood at the top level.
+
+	* cplus-tree.c (build_cplus_new): When building cleanup, make
+	the call to the cleanup nonvirtual.
+
+Tue Sep 10 20:28:56 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* fold-const.c (const_binop): Shortcut for dividing single-word
+	sizes
+
+	* Makefile.in (varasm.o): Depend on insn-codes.h.
+
+Tue Sep 10 19:29:26 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* optabs.c (expand_binop): Try to open-code muldi3 if we have mulsi3
+	and mulsidi3.  Idea due to tege@sics.se.
+
+	* cse.c (fold_rtx, case MEM): Don't call find_best_addr when insn == 0.
+	Pass 0 to recursive call that tries to fold the address.
+
+Tue Sep 10 18:16:16 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* m68k.md (fix_trunc*):  Call CC_STATUS_INIT, since these patterns
+	do not leave the condition codes in the expected state.
+
+	* tm-ultrix.h (CPP_PREDEFINES): Add __vax.
+
+Tue Sep 10 04:12:53 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-decl.c (finish_decl): Fix bug where the conversion from
+	WITH_CLEANUP_EXPR -> init/cleanup pair was not setting bits of
+	CURRENT_BINDING_LEVEL.
+	(init_decl_processing): Set FLAGS_THIS_IS_VARIABLE before calling
+	`init_exception_processing'.
+
+Mon Sep  9 22:09:27 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-tree.h (prev_class_type): Delete this bogus definition.
+
+	* cplus-class.c (instantiate_type): Don't complain about no static
+	member functions being found until we have been through all the
+	baselinks.
+
+	* cplus-dbxout.c (dbxout_type_methods): Don't write symbol
+	information about methods that were generated by the compiler.
+	(??? Is this really the right thing to do?)
+
+	* cplus-decl2.c (lang_decode_option): Turn on warn_uninitialized if
+	-Wall is the argument.
+
+Mon Sep  9 19:05:01 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* gcc.c (default_compilers): For .S files, pass -traditional not
+	-ftraditional to cpp.
+
+Mon Sep  9 15:01:58 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* fold-const.c (optimize_bit_field_compare): Distinguish NE from EQ.
+
+	* explow.c (allocate_dynamic_stack_space):
+	Handle SETJMP_VIA_SAVE_AREA by allocating extra space.
+
+	* cplus-parse.y (empty_parms): Change inline to __inline.
+
+Mon Sep  9 15:16:24 1991  Torbjorn Granlund  (tege at zevs)
+
+	* longlong.h (m68000 umul_ppmm): Clobber one register less by
+	slightly rearranging the code.
+
+Sun Sep  8 16:47:32 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cccp.c (main, fatal): Delete the deps output file if error.
+	(deps_file): New variable.
+
+	* expr.c (convert_move): Update call to emit_no_conflict_block.
+
+	* expmed.c (CEIL): New macro.
+
+	* optabs.c (expand_binop): Don't do add by words for more than 2 words.
+
+	* c-typeck.c (build_modify_expr): Test TREE_READONLY of lhs.
+
+Sun Sep  8 01:17:47 1991  Torbjorn Granlund  (tege at zevs)
+
+	* sparc.md (sgtu, sleu): Test for SUBREG as well as REG.
+
+Sun Sep  8 07:04:33 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* optabs.c (emit_no_conflict_block, emit_libcall_block): Rework to
+	accept a list of insns rather than a SEQUENCE.
+	(expand_binop, expand_unop, expand_float, expand_fix): Change calls to
+	above functions.
+	* emit-rtl.c (add_insn): No longer static.
+	* calls.c (expand_call): Change call to emit_libcall_block.
+
+	* cse.c (fold_rtx): Fix typo with parens in associative operation case.
+
+Sat Sep  7 21:49:46 1991  Jim Wilson  (wilson at cygint.cygnus.com)
+
+	* expmed.c (store_bit_field): In the code handling bitfields
+	larger than the word size: set fieldmode to size large enough
+	to hold bitfield; new variable orig_bitsize; don't let
+	bit_offset calculation for WORDS_BIG_ENDIAN hosts go negative.
+	(extract_bit_field): Likewise.
+	(store_split_bit_field): For second word, strip of SUBREG if any
+	before calling operand_subword.  Offset for second word if in
+	memory is the next UNITS_PER_WORD aligned address.
+	(extract_split_bit_field): Likewise.
+
+	* expr.c (emit_move_insn): When emitting multiple move insns in
+	the loop, remember last insn emitted so that it can be returned.
+
+	* tree.c (enum tree_node_kind): Add new entry vec_kind to
+	represent TREE_VECs.
+	(tree_node_kind_names): Add name "vecs" for it.
+	(make_node): Handle TREE_VECs in the 'x' case.
+	(make_tree_vec): Use vec_kind instead of x_kind.	
+
+Sat Sep  7 16:25:50 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-call.c (ideal_candidate): Prefer non-const member functions
+	to const member functions when there is a choice.
+	* cplus-tree.c (propagate_assoc_offsets): Moved here from
+	cplus-class.c
+	(copy_nonvirtual_children): Deleted.
+
+	* cplus-class.c, cplus-tree.c (layout_{v}basetypes,
+	propagate_assoc_offsets, finish_base_struct): New offset
+	computation/hierarchy implementation.  Now the lattice contains
+	vbasetypes with zero-based offsets (and children from these types
+	assume they are zero-based).  The CLASSTYPE_VBASETYPE list contains
+	vbasetypes with hierarchy-dependent offsets (and children from these
+	types have hierarchy-dependent offsets).  Note that now, virtual
+	baseclasses are fully shared in the hierarchy.  The still are not
+	shared at all in the CLASSTYPE_VBASETYPE list.
+	* cplus-decl.c (xref_tag): Share vbasetypes in the lattice.
+	* cplus-tree.h (lang_type): Add CLASSTYPE_VASSOC field so we can
+	share virtual basetypes in inheritance lattices.
+
+Sat Sep  7 13:07:12 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-parse.y (cast_expr): Supply OFWHAT arg to digest_init.
+	* c-typeck.c (error_init, pedwarn_init): New functions.
+	(digest_init, process_init_constructor): Use them.
+
+	* out-m68k.c (output_function_prologue):  Add a negative constant
+	to sp rather than adding a positive one, since this is faster.
+
+	* out-m68k.c (output_function_prologue, output_function_epilogue):
+	Use word sized immediates when possible.
+
+	* Makefile.in (install-dir): Don't die if can't create mandir.
+	(install-man): Don't put . in front of manext.
+	(manext): Add . to the value.
+	(mandir): Don't use manext.
+
+	* genextract.c (main): Don't use __builtin_memcpy in GCC 1.
+
+Fri Sep  6 19:29:55 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* caller-save.c (emit_mult_save, emit_mult_restore): Copy constant to
+	TEMPREG and add integer, instead of the opposite order, which might
+	not work on some machines.
+
+	* fold-const.c (fold): Ensure we always return an object of the
+	desired type.
+
+	* reload1.c (reload, reload_as_needed): reload_in_progress must be
+	set during caller-save processing.
+
+Fri Sep  6 18:36:55 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* out-sparc.c (leaf_reg_{remap,backmap}): Define mapping for
+	%o7/%i7, since user-defined registers might reference these.
+	(legitimize_pic_address): Set CURRENT_FUNCTION_USES_PIC_OFFSET_TABLE
+	if ORIG is a LABEL_REF.  For CONST_INT case, don't call force_reg
+	during reload, use REG if available otherwise abort.
+
+Fri Sep  6 17:16:05 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* configure: Default $cpu_type properly.
+
+Fri Sep  6 05:50:58 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* genextract.c: Generate one large function with a switch, instead
+	of a table of small functions to call.  Use __builtin_memcpy under
+	GNU C.
+
+	* genoutput.c: For "@" constructs, now generates a lookup table per
+	insn, instead of a switch.
+
+Fri Sep  6 15:40:54 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* cccp.c (skip_if_group): Deal with invalid directives the same
+	way handle_directive does.
+
+Fri Sep  6 16:37:04 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* tm-sparc.h (RTX_COSTS): Define costs for MULT and various divides.
+
+	* loop.c (move_movables): Call `gen_lowpart_common' instead of
+	building SUBREG manually.
+
+	* local-alloc.c (block_alloc): When convert scratch to a reg, must
+	set regs_ever_live for all hard registers used by the new reg, not
+	just the first.
+
+Fri Sep  6 07:15:44 1991  Torbjorn Granlund  (tege at mole.gnu.ai.mit.edu)
+
+	* gnulib2.c (__negdi2): Change it to work like __subdi3.
+	* gnulib2.c (_udivmoddi4): Make faster special case for CPUs with
+	a udiv_qrnnd that can handle unnormalized (i.e. with less than
+	LONG_TYPE_SIZE significant bit) divisors.
+
+	* gnulib2.c (__muldi3): Cast operands to unsigned.
+
+	* gnulib2.c (__Xcmpdi): Use `long' for all variables for
+	consistency.
+
+	* gnulib2.c (__udivmoddi4): New function with code from __udivdi3,
+	extended to give remaider.
+	* gnulib2.c (__divdi3, __moddi3, __udivdi3, __umoddi3): Use
+	__udivmoddi4.
+	* gnulib2.c: (__moddi3): Result sign is only dependent on U, not V.
+
+Fri Sep  6 05:44:07 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): Accept new arg IN_LIBCALL_BLOCK.
+	If in libcall block, don't record destinations in hash table.
+	Remove explicit use of SFmode and DFmode when checking -ffloat-store.
+	(cse_basic_block): Pass new arg to cse_insn to indicate when we
+	are processing an insn surrounded with REG_LIBCALL/REG_RETVAL notes.
+
+	* optabs.c (emit_libcall_block): New function.
+	(expand_binop, expand_unop): Remove kludge of referencing library
+	function SYMBOL_REF before libcall block.
+	Use emit_libcall_block.
+	(expand_float, expand_fix): Rework library calls to use
+	emit_libcall_block.
+	* calls.c (struct arg_data): Add new field, initial_value.
+	(expand_call): Don't make libcall block for calls that return
+	aggregates.
+	Remove kludge of referencing function SYMBOL_REF outside of block.
+	For constant calls, save RTL for arg in args[i].initial_value and
+	start a sequence.
+	When making REG_EQUAL note, use INITIAL_VALUE instead of VALUE.
+	Use emit_libcall_block for constant calls.
+	* expr.h (emit_libcall_block): Define it.
+
+Fri Sep  6 15:58:52 1991  Torbjorn Granlund  (tege at zevs)
+
+	* longlong.h (68020, i386): Don't define machine-dependent
+	  __umulsidi3 (so the default definition is used).
+	* longlong.h (all machines): Cast all operands, sources and
+	  destinations, to `unsigned long int'.
+	* longlong.h: Add gmicro support.
+
+Fri Sep  6 01:42:09 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* jump.c (jump_optimize): Delete duplicate line number notes.
+
+Thu Sep  5 19:23:24 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* configure (romp): Fix typo in name of xm_file.
+
+	* rtlanal.c (dead_or_set_p): If INSN has a CLOBBER for X, X is
+	dead.
+
+	* gnulib1.c (cmpdf2, cmpsf2): Delete unused functions.
+	* gnulib2.c (anddi3, iordi3, xordi3, one_cmpldi2, adddi3, subdi3):
+	Likewise.
+	* optabs.c (emit_cmp_insn): Clean up code now that integer and
+	float comparisons are done differently.
+	(init_optabs): Remove references to unused functions listed above.
+	* Makefile.in (LIB1FUNCS, LIB2FUNCS): Likewise.
+
+Thu Sep  5 18:32:27 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* m68k.md (zero_extend*): Don't allow memory-memory due to aliasing.
+
+	* expr.c (do_jump): Don't lose if only 1 insn precedes new jump.
+
+	* sparc.md (ashldi3): Fix dumb bug detecting constant 1.
+
+	* out-sparc.c (output_move_double): Use split_double for constant.
+	Properly decrement addreg1.
+
+Thu Sep  5 15:20:25 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* out-sparc.c: Include expr.h and delete extern declarations.
+
+	* rtlanal.c (rtx_equal_p): Correct typo in comment or spacing.
+	* reload1.c (reload): Likewise.
+	* protoize.c: Likewise.
+	* longlong.h: Likewise.
+	* local-alloc.c (block_alloc): Likewise.
+	* jump.c: Likewise.
+
+	* unroll.c (iteration_info): Don't calculate loop iterations based
+	on a giv iterator, since the current code often gives the wrong
+	result.  This case is rare, so it does not seem worth handling at all.
+
+	* sched.c (schedule_insns): When the only sched pass is after
+	reload, must clear unused_insn_list and unused_expr_list then,
+	instead of during the nonexistant pass before reload.
+
+	* sched.c (schedule_block): When calculating estimated IPC, avoid
+	divide by zero.
+
+	* sparc.md: Correct two define_splits for seq/sne patterns of the
+	form `x + (i == 0)', and add a missing `addx' pattern used by
+	these define_splits.
+
+	* toplev.c (fatal_insn_not_found): Correct typo in error message.
+	(main): Include "gsdb" and "gdbx" in warning message when -g is not
+	supported.
+
+	* expr.h (enum expand_modifier): Delete last vestige of
+	EXPAND_INTO_STACK.
+
+Thu Sep  5 13:50:21 1991  John Gilmore  (gnu at cygint.cygnus.com)
+
+	* c-typeck.c (digest_init, process_init_constructor): Include the
+	variable name, member name, and/or array indices in error messages.
+	This makes it tolerable to debug large data structure initializers.
+	Reword some messages to work with the name and/or function call
+	argument included.  New arg OFWHAT.  All callers changed except
+	one digest_init call in each of c-parse.y and objc-parse.y.
+	(warn_for_assignment): Reduce to a single message argument,
+	automatically handling formatting for function call arguments.
+	All callers changed.
+	(convert_for_assignment): If ERRTYPE is a null string, this is
+	parameter passing for a function, so output different error messages.
+	(convert_arguments): Pass null string to convert_for_assignment to
+	indicate parameter passing.
+
+Thu Sep  5 13:44:19 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* sched.c: Correct typos in comments.
+	(sched_note_set): Don't try to calculate live info for global
+	register variables.
+	(attach_deaths): Don't add REG_DEAD notes for global register
+	variables.
+
+	* tm-sparc.h (SELECT_SECTION): Can't put a variable in text section
+	if flag_pic and RELOC are both true, same test that varasm.c does.
+
+Thu Sep  5 13:15:43 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtlanal.c (reg_referenced_p): Handle USE and CALL.
+	Use switch instead of if-then-else.
+
+Thu Sep  5 08:03:58 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-class.c (propagate_assoc_offsets): Don't fail to
+	propagate the offset to the rightmost basetype.
+
+	* cplus-decl.c (xref_tag): Allocate nodes for basetype info on
+	permanent obstack, not temporary obstack.
+
+Wed Sep  4 18:53:16 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* fixincludes : Change `m68k' to `__m68k__' in all #if's.
+
+	* Makefile.in (ALLOCA_FLAGS): Add -Demacs.
+	(ALLOCA_FINISH): Put option before input file name.
+	(alloca.o): Supply $(INCLUDES).
+
+	* Makefile.in (GCC_CFLAGS): New parameter.
+	(protoize, protoize.o, unprotoize, unprotoize.o): Use GCC_CFLAGS.
+	(enquire, enquire.o, collect2, collect2.o, SYSCALLS.c.X): Likewise.
+
+Wed Sep  4 18:13:56 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (make_extraction): When picking up low-order part,
+	ensure that we don't create a non-aligned object if alignment
+	is required.
+
+	* expr.c (emit_push_insn): Ensure we only call force_const_mem on a
+	constant.
+	
+	* config.subr: Set `os' to be the last `-' and everything following it.
+	`romp' is the basic machine name for the rtpc.
+	`aos' is IBM's name for BSD.
+	* configure: Default `cpu_type' to the first field before an
+	optional `-'.
+	Add a29k, a29k-ultra, romp, and rs6000.
+	* xm-a29k-ultra.h: New file.
+
+Wed Sep  4 15:46:50 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	Changes from Ron Guilmette:
+	* dwarfout.c (output_symbol): Move tests for omitting declarations
+	to dwarfout_file_scope_symbol.  No need for `local' parameter.
+	Use TREE_PUBLIC and TREE_EXTERNAL to determine whether a variable
+	or function is global.
+	(finalizing, dwarfout_file_scope_delayed_symbol): Delete.
+	
+	* toplev.c (compile_file): Delete use of dwarfout_file_scope_symbol
+	for initialized VAR_DECLs.  All global declarations are passed to
+	dwarfout_file_scope_symbol (except function definitions and types).
+
+	(compile_file, rest_of_decl_compilation): Attribute time in
+	{dbxout,sdbout,dwarfout} functions to symout_time.
+
+	* varasm.c (assemble_variable): Check and update TREE_ASM_WRITTEN
+	for a global register variable.
+	Delete use of dwarfout_file_scope_symbol for VAR_DECLs. 
+
+Tue Sep  3 23:34:57 1991  Torbjorn Granlund  (tege at zevs)
+
+	* sparc.md (ashldi3 expander & recognizer): Make shift count have
+	SImode.  Used to have DImode.
+
+	* expmed.c (emit_store_flag): Declare arg UNSIGNEDP.
+
+	* vax.md (adddi3): Make operands 2 and 3 commutative.
+
+	* sparc.md (subtract constant then return): Peephole deleted.
+
+Tue Sep  3 22:23:52 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (mostlyclean, clean, realclean): Some files were missing.
+
+	* gvarargs.h (va_list): Make it typedef, not macro.
+	* va-mips.h, va-pyr.h: Likewise.
+
+Tue Sep  3 22:07:04 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-init.c (build_vec_delete): Fix off-by-one error for arrays
+	of length 1.
+
+Tue Sep  3 19:30:45 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): Don't pass a STRICT_LOW_PART to
+	reg_overlap_mentioned_p.
+
+	* cse.c (fold_rtx): If INSN is zero, copy X before we change 
+	anything inside it.
+	When looking for associative operation, pass zero as missing arg to
+	recursive call.
+	(find_comparison_args): Add zero for missing arg to fold_rtx calls.
+
+	* reload.c (find_reloads): Correct code that prevents replacing
+	a SET_DEST with a constant so that it correctly looks for an
+	operand being a SET_DEST.
+
+Tue Sep  3 19:17:34 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* out-i386.c (split_di): Call split_double for CONSTANT_P.
+	(fix_op): Delete.
+	(float_op): Don't examine the mode of the FLOAT operand.
+	(output_float_compare): Don't make new %ax RTX: use scratch
+	operand from insn.
+
+	* i386.md (float mode tstM,cmpM,fixuns_truncMN2,fix_truncMN2): Use
+	match_scratch.
+	(float mode tstM,fixuns_truncMN2,fix_truncMN2): Don't gen temp RTX:
+	use scratch operand.
+	(fix_truncMN2,floatMN2): Split pattern into a separate DFmode and
+	SFmode patterns so that operands[1] has a mode.
+	(sCOND patterns): Don't set cc_status to previous status.
+	(cmpstrsi): Don't explicitly reference reg 2.
+
+Tue Sep  3 16:28:56 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* optabs.c (expand_binop): Fix carry calculation.
+
+	* varasm.c (decode_addr_const): Given a LABEL_DECL, Make a LABEL_REF.
+	(const_hash): Handle a LABEL_REF.
+	* expr.c (expand_expr): Use FUNCTION_MODE for memref to a LABEL_REF.
+
+	* configure: Fix typo in last change.
+
+	* cccp.c (handle_directive): Normally no error for line with `###'.
+
+Tue Sep  3 10:53:12 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* out-m88k.c, tm-m88k.h: Delete remnants of the fancy abort.
+	* tm-m88kdgux.h: No longer identify as version DG-*.
+	* m88k files: Update copyright dates.
+
+Tue Sep  3 03:18:54 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_expr): Get rid of EXPAND_INTO_STACK.
+
+Mon Sep  2 14:07:54 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gcc.c (do_spec_1): In %X, terminate the arg after each option.
+
+	* config.subr: If argument contains `local', always accept it.
+	* configure: If machine type contains `local',
+	construct file names from that machine type name.
+
+	* configure: Make config.status a shellscript to redo the configure.
+	No need now to change / to - when storing $(target) in Makefile.
+	Store $(host_make_var_file) in Makefile also.
+	Set host_make_var_file to ../Makefile.in after creating Makefile
+	if no make-... file actually exists for this host.
+	* Makefile.in (host_make_var_file): Dummy definition to be filled in.
+	(Makefile): New rule to rerun `configure'
+
+	* tm-sysv4.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
+
+	* tm-mips.h, tm-m88k.h (abort): Macro definition deleted.  It is
+	not right for any machines description to specify use of fancy_abort.
+
+	* protoize.c [v.4]: Include fcntl.h.
+	(execvp): Correct type for second arg.
+	(compile_params): Remove `const'; that loses when calling execvp.
+
+	* cccp.c (directive_table): Typo in entry for do_ident.
+
+	* xm-m68k.h (alloca): Define macro with arg.
+
+	* emit-rtl.c (reorder_insns_with_line_notes):  New function.
+	(find_line_note, emit_line_note_after):  New functions.
+
+	* jump.c (jump_optimize):  When moving else clause before test,
+	only move the insn as far as needed, and use new function
+	reorder_insns_with_line_notes.
+
+Mon Sep  2 03:30:35 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* Makefile.in (collect2): Compile with gcc.
+
+Sun Sep 1 9:03:46 1991    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	Define two macros to eliminate the need for a seperate collect pass.
+
+	* tm-vms.h (ASSEMBLE_OUTPUT_CONSTRUCTOR): Define.
+	(ASSEMBLE_OUTPUT_DESTRUCTOR): Define.
+
+Sun Sep  1 08:14:22 1991  Michael Meissner  (meissner at osf.org)
+
+	* collect-osf.c (main): Print version number if -v.  Also ignore all
+	arguments beginning with -c rather than just '-c'.
+
+	* make-decrose (collect): Add version.o to link.
+
+Sat Aug 31 17:03:23 1991  Michael Meissner  (meissner at osf.org)
+
+	* cplus-input.c (inline macro definition): If inline is already
+	defined, don't redefine it.
+
+	* collect-osf.c (main): Look for gld and gas instead of ld and as,
+	so collect-osf can be installed as ld.  Use a default path of
+	/usr/ccs/gcc to find the linker and assember.  Ignore the -c switch,
+	which GCC uses to say that collect is needed.
+
+	* osf-main.c (__finis): Don't call descructors already called if one
+	of the destructors calls exit (which in turn calls __finis).
+
+	* tm-mips.h (DBX_REGISTER_NUMBER): Use mips_dbx_regno to map
+	register number to debug register number.
+	(GP_DBX_FIRST, FP_DBX_FIRST): New macros, giving the first debug
+	register numbers for gp registers and fp registers.
+
+	* out-mips.c (mips_dbx_regno): New global array to map GCC register
+	number to debug register number, to fix problem with OSF/1 stabs
+	using 38 for the first fp registers, rather than 32.
+	(override_options): Set up OSF/1 SIGINFO signal handler to notmake
+	the interruptable system calls read, write, and wait not return
+	error condition.  Also initialize mips_dbx_regno.
+
+	* make-decrose (CFLAGS): Add $(MSTATS) variable to set -mstats.
+	(CFLAGS_NODEBUG): Like CFLAGS, except no debugging or inlining.
+	(DEB_OPT): Define in terms of DEBUG, OPT, and PROFILE.
+	(cplus-lex rule): Build cplus-lex with no debug or inlinings.
+
+Sat Aug 31 12:52:17 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cccp.c (handle_directive): Be more fussy detecting `# LINE' case.
+
+	* cccp.c (directive_table): Pass through and ignore #ident.
+	(do_ident): New function.
+	(skip_if_group): Error if unrecognized directive seen.
+
+	* jump.c (jump_optimize): In converting  x=a; if (...) x=b;  to
+	store flag, insert all the new code in just one line.
+
+	* gcc.c (do_spec_1): Use xmalloc to make linker_options the first time.
+
+	* expr.c (expand_expr): Make EXPAND_SUM and EXPAND_INITIALIZER
+	imply EXPAND_CONST_ADDRESS in all cases.
+
+	* c-decl.c (c_decode_option): -Wall sets warn_uninitialized.
+	* flags.h (warn_uninitialized): Declared.
+	* toplev.c (warn_uninitialized): No longer static.
+
+	* cccp.c (main): Make no assumptions about include_defaults
+	in calculation of max_include_len.  Add fudge space if VMS.
+
+	* reload.c (find_reloads_toplev): New arg IS_SET_DEST.
+	Don't replace reg with constant in destination of a SET.
+	(find_reloads): Pass that arg.  Also don't replace here.
+
+	* cplus-xref.c: Finish installing changes from Youngdale.
+
+Sat Aug 31 09:02:25 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-decl2.c (finish_file): Call varasm routines to assemble ctor
+	and dtor lists.
+
+	* cplus-dbxout.c (dbxout_type_methods): Fix error in printing symbol
+	info for classes that only define a destructor.
+
+Sat Aug 31 08:32:12 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_end_of_basic_block): Correctly handle the case of a basic
+	block where a conditional branch out of the block becomes unconditional
+	and a conditional branch to the end of the block becomes a noop.
+
+	* combine.c (try_combine): In case where we have a PARALLEL
+	involving a load and sign extend, use reg_overlap_mentioned_p
+	instead of reg_mentioned_p.
+	If we have a PARALLEL of two independent SETs, try to split them
+	up into separate insns.
+
+	* combine.c (move_deaths): Instead of placing the REG_DEAD notes
+	on TO_INSN, add them to a list whose address is given as an
+	operand.
+	(distribute_notes): Allow for the case when the death of an object
+	is between I2 and I3.
+	Set reg_last_death to corrspond to the location of the REG_DEAD
+	note being placed.
+	(try_combine): Call move_deaths in new way and pass returned list
+	to distribute_notes if it is non-empty.
+
+	* local-alloc.c (requires_inout_p): Don't have cases for '[Q-U]' unless
+	EXTRA_CONSTRAINT is defined..
+
+	* local-alloc (block_alloc): Don't allocate SCRATCH on machines with
+	SMALL_REGISTER_CLASSES defined.
+
+	* regclass.c (reg_class_record): Add missing case for 'V'.
+
+Fri Aug 30 04:42:19 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* tm-i386.h (OUTPUT_JUMP): Use cc_prev_status.
+
+Fri Aug 30 17:08:52 1991    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* xm-vms.h (LOCATE_START_OF_FILE_NAME): Remove.
+	(FILE_NAME_NONDIRECTORY): Fix typo.
+	(XREF_FILE_NAME): Use FILE_NAME_NONDIRECTORY instead of
+	LOCATE_START_OF_FILE_NAME, and omit the leading underscore in the
+	generated file name.
+	(FILE_NAME_ABSOLUTE_P): Define to use hook in cplus-xref.c.
+	(FILE_NAME_JOINER): Define to use hook in cplus-xref.c.
+
+	* cplus-xref.c: Fix bug in default definition of FILE_NAME_ABSOLUTE_P.
+	(GNU_xref_open): Fix bug - wrong argument to XREF_FILE_NAME.
+	(FILE_NAME_JOINER): New macro.
+	(GNU_xref_file): Use it.
+
+Fri Aug 30 17:30:15 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cplus-xref.c: Reinstall Aug 25 changes discarded by Tiemann.
+
+	* expr.c (expand_expr): New modifier option EXPAND_INITIALIZER.
+	* varasm.c (output_constant): Use that.
+	* jump.c (forced_labels): New var records labels not to delete.
+	(jump_optimize): Don't delete those labels.
+	* flow.c (find_basic_blocks): Any computed goto goes to those labels.
+	* varasm.c (decode_addr_const): Deal with LABEL_DECL.
+
+Fri Aug 30 15:41:03 1991  Michael Meissner  (meissner at osf.org)
+
+	* mips.md (copyleft): Use separate copyright years.
+	(mov*): Use nonimmediate_operand instead of general_operand.
+
+	* tm-mips.h (copyleft): Use separate copyright years.
+
+	* xm-mips.h (copyleft): Use separate copyright years.
+
+	* xm-umips.h (copyleft): Use separate copyright years.
+
+Fri Aug 30 08:47:30 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-typeck.c (build_x_*): Try first calling `build_opfncall'
+	with FLAGS==0.  If that succeeds, check protection.
+	(build_conditional_expr): `fold' does not preserve the type of it's
+	expressions, which is a problem for C++ when trying to keep ints and
+	enums distinct.
+
+	* cplus-decl.c (lookup_name): When there is a choice between seeing
+	a name as a type and seeing as a decl, call `arbitrate_lookup' to
+	make the decision.
+	* cplus-lex.c (arbitrate_lookup): New function.  Uses minute amounts
+	of syntactic context to decide whether to see a name as a type or
+	something else.
+
+Fri Aug 30 07:40:49 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* jump.c (delete_jump): When checking REG_DEAD notes, make sure they
+	have a legal value.
+
+Fri Aug 30 00:57:05 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* local-alloc.c (alloc_qty_for_scratch): Treat Q - U as reg class if
+	EXTRA_CONSTRAINT is not defined.
+	* regclass.c (reg_class_record): Likewise.
+
+Thu Aug 29 21:39:07 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_binary_op_nodefault): Fix last change.
+
+Thu Aug 29 19:11:05 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* recog.c (general_operand, const_double_operand): Similar to
+	immediate_operand, don't accept a VOIDmode operand if the
+	caller wants floating.
+	* out-pyr.c (nonindexed_operand): Likewise.
+
+Thu Aug 29 09:53:27 1991  Michael Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+
+	* cplus-tree.h ({SET,CLEAR}_ASSOC_*): New macros needed because not
+	all C compilers support conditional expressions as lvalues.
+	(lang_type): Change type of MEMOIZED_TABLE_ENTRY and SEARCH_SLOT
+	from `void *' to `char *', to make braindead compilers at less of a
+	disadvantage.
+
+Thu Aug 29 08:07:40 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (define_function_unit): Update latencies.
+
+	* out-m88k.c (output_function_profiler): Correct offsets for
+	register saves.
+	* tm-m88ksvr4.h (FUNCTION_PROFILER): Use the name _mcount and do
+	register saves.
+
+	* tm-m88k.h (ASM_DWARF_POP_SECTION): Specify "previous".
+
+	Changes from Ron Guilmette:
+	* dwarfout.c (lookup_filename): Only increment valid_ft_entries
+	once when adding a filename to the table.
+	(output_symbol): Do output DIEs for a global VAR_DECL definition.
+
+Thu Aug 29 06:15:32 1991  Michael Tiemann  (tiemann at rtl.cygnus.com)
+
+	* cplus-type2.c (build_functional_cast): If we have a valid value in
+	`expr_as_conversion' return that before returning error_mark_node.
+
+	* cplus-init.c (expand_recursive_init): Fix typo is testing
+	TYPE_USES_VIRTUAL_BASECLASSES.
+
+Wed Aug 28 23:12:35 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_binary_op_nodefault): For shift and rotate ops,
+	if traditional, use the common type of the operands.
+
+Wed Aug 28 07:31:33 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* dwarfout.c, dwarf.h, README.DWARF: Replacement files from Ron
+	Guilmette that bring the dwarf implementation up to that defined by
+	draft 4 of the dwarf specification (dated 7/31/91).
+
+Wed Aug 28 06:24:30 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* all *.md files except a29k.md and romp.md: Don't allow CONST_INT
+	as operand for RTL operations that need a mode to be well-defined,
+	e.g., SIGN_EXTEND, ZERO_EXTEND, TRUNCATE, FLOAT.  Similarly, don't
+	allow CONST_INT as first operand of a COMPARE.
+
+	* machmode.h (MIN, MAX): Undefine these before our definition.
+
+Tue Aug 27 21:33:04 1991  Michael Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+
+	* version.c: Now 1.95.
+
+Tue Aug 27 18:05:25 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* reload1.c (possible_group_p): Use earliest class that needs a group.
+
+	* gcc.c (do_spec_1): Handle %x and %X.
+	(link_command_spec): Use %X.  If given -collect, pass -c.
+	(default_compilers c++): Use %x to pass -c to linker.
+
+	* cse.c (find_comparison_code): Don't call fold_rtx,
+	because we don't know which insn to pass for its second argument.
+
+	* cse.c (fold_rtx): Don't fold what we get from lookup_as_function.
+
+Tue Aug 27 17:46:59 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (rtx_cost): A USE is free; it is likely being used as a marker.
+
+	* cse.c (cse_insn): If we decided not to make a reg-reg copy between 
+	equivalent regs into a no-op, see if there is an equivalent constant
+	that is cheaper than the register we decided to use.
+
+	* cse.c (cse_insn): Fix arg in insert_regs call when making a
+	secondary equivalence due to a SUBREG; we are not modifying the
+	register.
+
+	* cse.c (delete_dead_from_cse): Treat a SET that copies a register
+	to itself as if it were setting a dead register.
+
+	* cse.c (find_comparison_args): Call fold_rtx on the args that we
+	are about to return.
+	(fold_rtx, case SUBREG): Copy code from equiv_constant that looks up
+	a SUBREG in the hash table.
+	If our our folded operand is equivalent to a constant, use that when
+	seeing if we can get a part of a constant.
+	(fold_rtx): Don't short-circuit recursive call for an operand that
+	is a SUBREG; add comment in REG case that we are doing equiv_constant.
+	When looking for associative operation, call fold_rtx on potential
+	constant as well as equiv_constant.
+	(equiv_constant): Just look up a constant quantity for a register;
+	fold_rtx will do the SUBREG operations.
+
+	* fold-const.c ({neg,mul,lshift,rshift,lrotate,rrotate}_double):
+	No longer static.
+	* cse.c (simplify_{unary,binary}_operation): Fold some DImode
+	operations.
+
+	* fold-const.c (fold, case EQ_EXPR, NE_EXPR, ...): Add code to handle
+	cases where we are comparing the result of a comparison.
+
+Tue Aug 27 14:35:59 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* flow.c (mark_used_regs): Set regs_ever_live for all hard regs.
+	Warning: this might break FUNCTION_PROLOGUE and FUNCTION_EPILOGUE
+	in some ports.  But I've checked all the installed ones.
+	* tm-gmicro.h (FUNCTION_PROLOGUE):
+	Clear bit for fp reg if used as such.
+	* tm-mips.h (MUST_SAVE_REGISTER): Only frame_pointer_needed affects fp.
+
+	* c-decl.c (store_parm_decls): No error if arglist contains type tag.
+
+	* optabs.c (expand_fix): Really call emit_cmp_insn right.
+
+	* floatlib.c: New file.
+
+	* gnulib2.c (__clz_tab): Moved to _udivdi3.
+
+Tue Aug 27 06:44:12 1991  Michael Tiemann  (tiemann at rtl.cygnus.com)
+
+	* cplus-typeck.c (c_expand_return): Don't use the cleanup generated
+	by `build_functional_cast'.
+
+	* cplus-class.c (resolves_to_fixed_type_p): Handle WITH_CLEANUP_EXPR.
+
+Mon Aug 26 20:55:58 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-parse.y (yylex): Cast shorts[n] to long before shifting.
+	* fold-const.c (decode): Likewise.
+
+	* Makefile.in (INSTALL_DATA): Renamed from INSTALL_FILE.
+
+	* cse.c (canon_hash): Don't crash if subexpression is 0.
+
+	* cplus-lex.c (interface_strcmp): Put back variable s1.
+
+Mon Aug 26 18:14:33 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* function.c (instantiate_virtual_regs_1): Complete previous change;
+	had omitted arg on two returns.
+
+Mon Aug 26 15:16:39 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* optabs.c (expand_float, expand_fix): Pass new arg to emit_cmp_insn.
+
+	* out-m68k.c (singlemove_string): Fix last change.
+
+Mon Aug 26 11:20:51 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (cmpsi insn): Don't provide an insn that compares two
+	constants.
+
+Mon Aug 26 08:34:48 1991  Michael Meissner  (meissner at osf.org)
+
+	* collect-osf.c (toplevel, read_file, end_file): Don't use mmap,
+	unless all defines needed are defined.
+	(various): If -debug turn on debugging code.  Change all occurances
+	of #ifdef DEBUG sections to if (debug).
+	(main, add_to_list): Correctly cast xcalloc calls.
+	(scan_prog_file): Correct xcalloc to allocate enough space
+	(scan_prog_file): If -debug, don't dump entire symbol table, just
+	dump the constructors and destructors.
+
+	* make-decrose (CFLAGS): Use DEB_OPT for default debug and optimize
+	options, use SHLIB for default shared library versions.
+	(DEB_OPT): Define to be -g -O2.
+	(SHLIB): Define to be -L${BUILD}/usr/ccs/lib, which forces static
+	libraries with both old and new 1.39 compilers.
+	(COFF_CFLAGS): Define to be -O2 -g0.
+	(collect): Add LIBDEPS dependency.
+
+Mon Aug 26 07:22:21 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* machmode.h (MIN, MAX): Define here.
+	* c-decl.c, calls.c, cplus-class.c, cplus-decl.c, cplus-tree.c:
+	Don't define here.
+	* expr.c, fold-const.c, function.c, integrate.c, recog.c: Likewise.
+	* rtl.c, sdbout.c, stmt.c, stor-layout.c, varasm.c: Likewise.
+	* c-typek.c, combine.c, cse.c, emit-rtl.c, expmed.c, final.c:
+	Delete definitions of "min" and "max"; use MIN and MAX now defined
+	in machmode.h.
+	* genemit.c, regclass.c, reload.c, reload1.c: Likewise.
+	* cccp.c (MIN, MAX): Define instead of min and max for consistency.
+
+	* tm-rs6000.h (HARD_REGNO_MODE_OK): Don't put DImode in reg 31;
+	similarly for TImode.
+
+	* cse.c (cse_skip_to_next_block): Variable deleted.
+	(cse_insn): Don't set it anymore.
+	(cse_basic_block): Don't use cse_skip_to_next_block; instead, look
+	for unconditional jumps explicitly; correctly handle unconditional
+	jumps to the end of the basic block by extending the basic block in
+	that case.
+
+	* reload1.c (alter_reg): Ensure that stack slot is always the correct
+	mode.
+
+Mon Aug 26 06:20:43 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-type2.c (build_functional_cast): Treat constructor casts as
+	having cleanups in this function.
+	* cplus-decl.c (finish_decl): Use cleanups created by functinal
+	casts used as initializers.
+
+	* cplus-init.c (expand_member_init): Call error with
+	IDENTIFIER_POINTER, not DECL_NAME, of NAME.
+
+	* cplus-method.c (fndecl_as_string): Don't skip `in_charge'
+	parameter twice.
+
+	* cplus-init.c (build_new): Delete code which short-circuited
+	multiple indirections in ABSDCL and made everything look like just a
+	single level of indirection.
+
+	* cplus-typeck.c (warn_for_assignment): Now takes a FUNCTION_DECL
+	instead of an IDENTIFIER_NODE as an argument.  Also, print
+	reasonable message when ARGNUM < 0.
+
+	* cplus-typeck.c (type_unknown_p): If TREE_CODE (EXP) == TREE_LIST,
+	it's type is unknown.
+
+	* cplus-typeck.c (commonparms): Don't insert default parmeter values
+	into existing arg lists.  Instead, unify them into new ones only.
+
+	* cplus-typeck.c (convert_for_{initialization,assignment}): Pass
+	FNDECL instead of function name.  Use `lang_printable_name' to pass
+	printable name to `warn_for_assignment'.
+
+	* cplus-typeck.c (convert_arguments): Don't forcibly convert ptrs to
+	other things into ptrs to functions just to satisfy the conversion
+	of virtual functions.
+
+Sun Aug 25 22:44:57 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-typeck.c (compparms): Deal with STRICT == 3.
+	* cplus-search.c (get_first_matching_virtual): Call `compparms' with
+	STRICT == 3.
+
+	* cplus-lex.c (operator_name_string): Don't abort if we cannot find
+	a operator name for NAME.  Instead, return identifier for
+	<invalid operator>.
+
+Sun Aug 25 15:42:59 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cplus-xref.c (FILE_NAME_ABSOLUTE_P): New macro.
+	(GNU_xref_file): Use it.
+	(open_xref_file): Use new macro XREF_FILE_NAME if defined.
+	* cplus-lex.c (FILE_NAME_NONDIRECTORY): New macro.
+	Used frequently instead of strrchr.
+	* xm-vms.h: Define those three macros.
+
+	* optabs.c (expand_binop): Use word mode for force_reg on op1 of shift.
+
+	* out-m68k.c (singlemove_string): Use moveq when appropriate.
+
+	* final.c (split_double): Handle all integer constants.
+	* out-m68k.c (output_move_double): Use split_double for all constants.
+	* ??? Most out-*.c need changing.
+
+	* c-decl.c (finish_enum): Make some local vars unsigned.
+	* c-common.c (type_for_size):
+	* c-convert.c (convert_to_integer): 
+	* tm-i860.h (ASM_OUTPUT_ASCII): 
+	* c-parse.y (yylex):
+	* expr.c (get_pointer_alignment):
+	* stor-layout.c (layout_union, layout_record):
+	* tree.c (get_unwidened, get_narrower):
+
+	* expr.c (emit_library_call): Don't declare va_list as register.
+	* final.c (asm_fprintf): Likewise.
+	* tree.c (build, build_nt, build_parse_node): Likewise.
+
+	* expr.c (do_jump_for_compare): Don't assume the compare survives
+	when the branch is emitted.
+
+	* expr.c (convert_move): Fix typo in prev change.
+
+	* emit-rtl.c (fconst2_rtx, dconst2_rtx): New vars.
+	(init_emit_once): Initialize them.
+
+	* expmed.c (extract_bit_field, store_bit_field):
+	For multi-word field, do words from least significant first.
+
+	(extract_split_bit_field): OP0 is only the first word of the
+	source, so if this is a SUBREG, must call operand_subword on
+	SUBREG_REG (OP0) instead of OP0.
+
+	* varasm.c (output_constructor): Correctly output constants for
+	bitfields which are greater than HOST_BITS_PER_INT.  Use
+	TREE_INT_CST_HIGH for the high bits.
+
+	* Makefile.in (ENQUIRE_CFLAGS, ENQUIRE_LDFLAGS): New parameters.
+	(enquire, enquire.o): Use them.
+
+	* tm-sysv4.h: New file, cut out from tm-m88k.h.
+	* tm-m88k.h: Include that.
+
+	* vax.md (sltu, sgeu): New patterns.
+
+Sat Aug 24 11:19:43 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-init.c (build_offset_ref): Pass a TYPE_DECL node, not a
+	RECORD_TYPE node, to `build_component_type_expr'.
+
+	* cplus-cvt.c (convert_to_integer): Warn about conversion from
+	integral type to enumeral type if FLAG_INT_ENUM_EQUIVALENCE is zero.
+	(convert_force): Set FLAG_INT_ENUM_EQUIVALENCE non-zero when calling
+	`convert'.
+
+	* cplus-typeck.c (build_x_*_op): Don't try using built-in operators
+	if user-defined ones are not accessible.
+
+	* cplus-init.c (expand_aggr_init_1): Use `expand_expr' to set the
+	DECL_RTL of the TARGET_EXPR.  This is a generalization of code that
+	used to require that EXP be some sort of _DECL.
+
+	* cplus-init.c (init_init_processing): Link global runtime functions
+	__builtin_new and __builtin_delete to their canonical operator
+	names (i.e., op$nw and op$dl).
+
+	* cplus-lex.c (init_lex): Don't see `dynamic' as a reserved word if
+	SOS is not defined.
+	* cplus-decl2.c (flag_dynamic): Delete unused variable.
+
+	* cplus-decl.c (define_case_label): Give error when case label cuts
+	into a binding contour with cleanups.
+	* stmt.c (last_cleanup_this_contour): Changed name from
+	`this_contour_has_cleanups_p'.  Now returns last cleanup, if there
+	was one.
+	* tree.h: Declare `last_cleanup_this_contour'.
+
+	* cplus-decl.c (grokdeclarator): Don't let member functions have
+	static linkage.
+
+	* cplus-tree.c (layout_basetypes): Copy non-virtual basetypes of
+	virtual basetypes so that search routines can find ambiguities
+	arising in lattices where the same type appears as a non-virtual
+	basetype of different types in the lattice.
+	(copy_nonvirtual_children): Implement a recursive deep-copy of
+	nonvirtual types in an inheritance lattice.
+
+	* cplus-search.c (lookup_fnfields): Correctly catch case where there
+	are multiple functions in an MI lattice.
+	* cplus-call.c (ideal_candidate): If we find a requested function is
+	ambiguous in an MI lattice, set CP->EVIL to 1.
+	(build_method_call): If CP->EVIL is set on return from
+	`ideal_candidate', return error_mark_node.
+
+	* cplus-decl.c (lookup_name): Prefer finding typenames to overloaded
+	functions where there's a collision.
+	(pushdecl): Don't override the declaration of global functions with
+	a TYPE_DECL that has the same name.  `lookup_name' now knows how to
+	find both.
+	(globalize_nested_type): Changed to look in IDENTIFIER_TYPE_VALUE
+	slot for global definitions that are not in IDENTIFIER_GLOBAL_VAL.
+	* cplus-type2.c (build_functional_cast): Deal with more ambiguities
+	and more cases where the syntactic form `NAME ( PARMS )' can have
+	meaning.
+
+Sat Aug 24 01:33:00 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* expr.c (convert_move): Make integer extension general.
+
+	* optabs.c (init_extends, gen_extend_insn): Finish and turn on.
+
+	* reload1.c (possible_group_p): Insist on regs in needed class.
+
+	* SYSCALLS.c (alloca): Declare arg as size_t.
+
+	* expr.c (store_constructor): Handle union constructor.
+
+	* final.c (split_double): long long CONST_DOUBLE now has VOIDmode.
+
+	* optabs.c (expand_binop): Fix carry propagation bugs.
+	Handle carry propagation for big-endian case.
+
+Fri Aug 23 21:29:46 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-decl.c (finish_decl): More PIC fixes.  Also, don't assign
+	any storage for static member variables except when they are being
+	defined.
+
+	* cplus-init.c (build_virtual_init): Change interface to take
+	MAIN_ASSOC instead of FOR_TYPE.
+	(expand_aggr_init_1): Ditto.
+	(expand_recursive_init_1): Ditto.
+	(expand_aggr_vbase_init{_1}): Change interface to take an assoc
+	instead of a type.
+	(expand_recursive_init): Ditto.
+
+	* cplus-pt.c (uses_template_parms): Handle PARM_DECL nodes.
+
+	* cplus-search.c (get_base_assoc): Use ASSOC_MARKED instead of
+	ASSOC_BASETYPE_MARKED to mark visited nodes.
+	(lookup_field, loopup_fnfields): Use ASSOC_FIELDS_MARKED instead of
+	ASSOC_VBASE_MARKED when searching.
+	({bfs_,un,bfs_un}marked2p): Deleted, unused.
+	(dfs_{un}mark2): Deleted, unused.
+	(dfs_unmark12): Deleted, unused.
+	(build_vbase_vtables_init): Change interface to take MAIN_ASSOC
+	instead of FOR_TYPE.
+
+Fri Aug 23 18:31:53 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* expr.c (do_store_flag): Give up if can't directly compare args.
+
+Fri Aug 23 18:00:58 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* function.c (instantiate_virtual_regs_1): Add new arg and now returns
+	int instead of void.
+	All callers changed.
+
+	* expr.c (compare_constants): Deleted.
+	(compare_from_rtx): Use simplify_relational_operation instead of
+	compare_constants; abort is not needed since
+	simplify_relational_operation will return 0 if given VOIDmode.
+
+	* cse.c (fold_rtx): Correctly compute mode of operands being
+	compared.
+
+Fri Aug 23 17:16:27 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* stmt.c (expand_end_case):
+	Avoid special cases for modes when widening.
+	Realize __builtin_classify_type reduces to int constant.
+
+	* optabs.c (emit_cmp_insn): New arg, MODE.  All callers changed.
+	If both args are const_int, copy one to a reg.
+
+Fri Aug 23 15:54:21 1991    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* make-cc1.com: Fix bug where cplus-parse.y was always being passed
+	through bison, whether it needed it or not.
+
+Fri Aug 23 15:20:46 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* stmt.c (expand_end_case): Remove Aug 12 change.
+	Convert index to nominal_type for subtraction.
+
+Thu Aug 22 14:34:21 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* configure, config.gcc: Switch to all-dashes config names.
+
+	* gnulib2.c [U_udivdi3, L_muldi3]: Define __clz_tab for longlong.h.
+
+Thu Aug 22 00:28:29 1991  Torbjorn Granlund  (tege at zevs)
+
+	* longlong.h: Rename BITS_PER_LONG to LONG_TYPE_SIZE.
+	* longlong.h (__ibm032__): Define count_leading_zeros and umul_ppmm.
+	* longlong.h: Define UMUL_TIME and UDIV_TIME for some CPUs.
+	* longlong.h (__sparc__ umul_ppmm): Move two insn from end to the
+	  nops.  (Saves two insn.)
+	* longlong.h (__sparc__ umul_ppmm): Rewrite in order to avoid
+	  branch, and to permit input/output register overlap.
+	* longlong.h (__29k__): Remove duplicated udiv_qrnnd definition.
+	* longlong.h (__29k__ umul_ppmm): Split asm instructions into two
+	  asm statements (gives better code if either the upper or lower
+	  part of the product is unused.
+	* longlong.h: Mention UDIV_NEEDS_NORMALIZATION in description of
+	  udiv_qrnnd.
+	* longlong.h (IBMR2): Add udiv_qrnnd.
+	* longlong.h (add_ssaaaa, sub_ddmmss [C default versions]): Make __x
+	  `unsigned long int'.
+	* longlong.h: Add `int' after `unsigned' and `long' everywhere.
+	* longlong.h: Add ARM, i860 support.
+	* longlong.h (sparc umul_ppmm): Use __asm__, not asm.
+	* longlong.h (IBMR2 umul_ppmm): Refer to __m0 and __m1, not to m0
+	  and m1 (overlap between output and input operands did not work).
+	* longlong.h: Add VAX, ROMP and HP-PA support.
+	* longlong.h: Sort the machine dependent code in alphabetical order
+	  on the CPU name.
+	* longlong.h: Hack comments.
+	* longlong.h: Define BITS_PER_LONG to 32 if it's not already
+	  defined.
+	* Define __BITS4 to BITS_PER_LONG / 4.
+	* Don't assume 32 bit word size in "count_leading_zeros" C macro.
+	  Use __BITS4 and BITS_PER_LONG instead.
+	* longlong.h (68k): Define add_ssaaaa sub_ddmmss, and umul_ppmm
+	  even for plain mc68000.
+	* longlong.h: Clean up comments.
+	* longlong.h: Don't use #elif.
+	* longlong.h: Use __asm__ instead of asm.
+	* longlong.h (sparc udiv_qrnnd): Make it to one string over several
+	  lines.
+	* longlong.h: Preend __ll_ to B, highpart, and lowpart.
+	* longlong.h: Move array t in count_leading_zeros to gnulib2.c
+	  Rename the array __clz_tab.
+	* longlong.h (umul_ppmm [C variant]): Make __ul...__vh
+	  `unsigned int', and cast the multiplications.  This way
+	  compilers more easily can choose cheaper multiplication
+	  instructions.
+
+Thu Aug 22 07:36:40 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* rtl.h: Declare simplify_relational_operation.
+
+	* out-m88k.c (output_file_start): Put the `gcc2_compiled.' symbol
+	in the data section.  Eliminates symbol translation problems with
+	debuggers.
+
+	Changes from Ron Guilmette:
+	* toplev.c (compile_file): Use dwarfout_finish when done.
+	* final.c (output_source_line): Use dwarfout_line.
+	* dwarfout.c (dwarfout_finish): Rename from dwarfout_finalize.
+	* tm-m88k.h (ASM_OUTPUT_DWARF_LINE, ASM_FILE_END): No need for
+	dwarf specific actions.
+
+Thu Aug 22 05:29:57 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (can_combine_p): Don't combine if INSN has REG_RETVAL note.
+	(try_combine): Similarly, don't combine if I3 has REG_LIBCALL note.
+
+	* flow.c (propagate_block): Don't use variable PREV in
+	nested blocks that shadows PREV at function level.
+	If we handle this insn normally, arrange to scan any insns that
+	were inserted in front of it for making auto-inc addressing.
+
+	* integrate.c (save_for_inline_copying): Clear CONST_DOUBLE
+	memory chain.
+
+	* toplev.c (fatal_insn_not_found): Now that it is called in final.c
+	when an insn doesn't match constraints, write different error
+	message in that case.
+	* genattrtab.c (write_attr_case): Call fatal_insn_not_found instead
+	of abort when constrain_operands fails.
+
+Thu Aug 22 05:29:09 1991  Matthew Self  (mself at next.com)
+
+	* rtl.c (add_dependence): Uses of RTX_UNCHANGING_P should now be
+	SCHED_GROUP_P.
+
+Thu Aug 22 00:34:20 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* recog.c (offsettable_address_p): Always pass QImode to addressp.
+
+Wed Aug 21 09:20:09 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-decrose.h (LINK_SPEC): Allow -pic-none, -glue, -noshrlib
+	switches.
+	(LIB_SPEC): Add -L/usr/ccs/lib to get new 1.1 linker to use static
+	libraries instead of shared libraries, since the shared library
+	support has not yet been added.
+
+Wed Aug 21 06:18:12 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* out-rs6000.c (print_operand, case 'Y', 'Z'): Fix typo in
+	auto-inc case.
+	* rs6000.md (movti): Add missing %U in memory cases.
+
+	* tm-rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Indexed addresses are not
+	valid for DImode and TImode.
+	* out-rs6000.c (indexed_mem_operand): Deleted.
+	(print_operand, case 'X'): Don't use indexed_mem_operand; check
+	ourselves instead.
+	* rs6000.md (movdi, movti): Don't check for indexed memory operands.
+
+Tue Aug 20 16:02:41 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* sdbout.c (sdbout_parms): Handle parm passed in reg and living in
+	pseudo that was optimized away.
+
+Mon Aug 19 19:10:42 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (simplify_comparision, case NEG): Can only convert
+	(-a) < C to a > C if C is zero.
+
+	* expmed.c (store_bit_field, extract_bit_field): Use WORD_MODE for
+	mode of BITS_PER_WORD to avoid conflict with other use of variable
+	named MODE.
+
+	* cse.c (cse_insn): Don't make a REG_EQUAL note whose contents
+	are a REG; the REG might have been eliminated.
+
+	* reload1.c (reload_as_needed): Pass any CLOBBERs made when reloading
+	an insn to `forget_old_reloads_1'.
+
+Mon Aug 19 12:47:46 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* configure (m88k-luna): Rename alternative appropriately.
+
+	* cse.c (simplify_relational_operation): Split out from ..._binary_...
+	(fold_rtx): Use that function for relationsals.
+	(simplify_binary_operation): Don't allow relationals.
+	* combine.c (subst, gen_binary): Use simplify_relation_operation.
+	* integrate.c (subst_constants): Likewise.
+	* jump.c (jump_optimize): Likewise.
+
+	* c-common.c (shorten_compare): Warn about unsigned >= 0.
+
+Sun Aug 18 17:29:16 1991    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* tm-vms.h (ASM_OUTPUT_EXTERNAL): Remove code to round the storage
+	size up to a multiple of 4 bytes.
+
+Sun Aug 18 15:35:27 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_parms):
+	Handle parm passed in reg and living in pseudo that was optimized away.
+
+	* function.c (init_function_start): Give decl_printable_name both args.
+
+	* expr.c (compare_from_rtx):
+	Don't change to unsigned if too wide for host int.
+	* cse.c	(fold_rtx): Use mode_arg0 to simplify comparison ops.
+	Update mode_arg0 when we look at value of cc0.
+
+	* cse.c (cse_insn): Really don't record bitfield destinations
+	unless source is constant which fits.
+	But pre-truncate other constants.
+
+	* config.subr: Allow $os to be empty.
+
+	* function.c (lookup_static_chain): Check for 0 before inline function.
+
+	* config.subr (pc532, minix): New alternatives.
+
+	* configure (editing Makefile): Use cross-make.
+	* Makefile.in (install-cross): Change dep to install-gnulib.
+
+Sat Aug 17 17:18:05 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* All cplus-* files: Change the representation of the C++
+	inheritance lattice for types.  There is no longer such a thing as a
+	classtype_variant.  Instead, types all have their own lattices
+	accessed via their CLASSTYPE_ASSOC field.
+
+	* cplus-tree.h (lang_type): Delete fields OFFSET,
+	MAIN_CLASS_VARIANT, NEXT_CLASS_VARIANT, VIA_PUB_OR_VIRT.
+	Rename field AS_ID_LIST to ID_AS_LIST, since it's a list.
+	(CLASSTYPE_AS_ID_LIST): Renamed to CLASSTYPE_ID_AS_LIST.
+	Add field ASSOC_AS_LIST, which is a TREE_LIST whose TREE_VALUE is
+	the assoc for the type.
+	(CLASSTYPE_VIA_*, SET_CLASSTYPE_VIAS): Deleted.
+	(CLASSTYPE_OFFSET*): Deleted.
+	(CLASSTYPE_N_BASECLASSES): Now uses type's assoc.  TYPE_BASETYPES
+	field is unused.  Next change will make TYPE_BASETYPES hold the
+	assoc field.
+	(CLASSTYPE_VBASE_SIZE): Use slot in TYPE_LANG_SPECIFIC instead of
+	sneaking it into the TREE_TYPE field of the basetypes.
+
+	(ASSOC_TYPE): Deleted.  Now use ASSOC_VALUE everywhere.
+	(ASSOC_{BASETYPE,BASETYPES}): New macros.  Both are operations on
+	assocs and return assocs.
+	(CLASS_ASSOC_BASETYPE): New macro.  This performs roughly the same
+	function that CLASSTYPE_BASECLASS used to, but it retains no assoc
+	info in the type it returns.
+	(ASSOC_NEXT_ASSOC): New macro used for traversing assoc chains built
+	up by search routines.
+	(ASSOC_VIA_{PUBLIC,VIRTUAL}): New macros for accessing inheritance
+	information.  CLASSTYPE_VIA_{PUBLIC,VIRTUAL} no longer used.
+	(ASSOC_CID): New macro.
+
+	(DECL_ANON_UNION_ELEM): Deleted.  Now anonymous union decls are
+	distinguished as FIELD_DECLs with NULL DECL_NAMEs and UNION_TYPE
+	types.
+
+	(DERIVED_FROM_P): New macro.  Change calls that testing inheritance
+	relationships (get_base_type and get_base_distance) to use this macro.
+
+	* cplus-type2.c (basetype_or_else): Change interface to use/return an
+	assoc instead of a type.  Change name to base_assoc_or_else.
+
+	* cplus-tree.c (build_classtype_variant): Deleted.
+	(copy_type_lang_specific): Deleted.
+	* all cplus-* files: Everything that used to use CLASSTYPE_OFFSET on
+	types now uses ASSOC_OFFSET on assocs.
+
+	* cplus-class.c (propagate_basetype_offsets): Change interface to use
+	assocs instead of types.  Change name to propagate_assoc_offsets.
+	* cplus-search.c (get_base_type): Ditto; name changed to
+	get_base_assoc.
+
+	* cplus-cvt.c (convert_pointer_to): Change interface to use an assoc
+	instead of a type.
+	(convert_pointer_to_vbase): Ditto.
+	* cplus-call.c (build_field_call): Ditto.
+	* cplus-class.c (get_vfield_offset): Ditto.
+	(build_method_call): Ditto.
+	(maybe_fixup_vptrs): Ditto.
+	* cplus-search.c (get_first_matching_virtual): Ditto.
+	(get_virtuals_named_this): Ditto.
+	(tree_needs_constructor_p): Ditto.
+	(get_virtual_destructor): Ditto.
+	(tree_has_any_destructor_p): Ditto.
+	(get_baselinks): Ditto.
+	(lookup_{field,fnfields}): Ditto.  Also, use ASSOC_VBASE_MARKED
+	instead of CLASSTYPE_MARKED2 to mark virtual basetypes that have
+	been visited.
+	(build_vbase_vtables_init): Ditto.
+	({build,free}_mi_matrix): Ditto.
+	* cplus-init.c (expand_aggr_init_1): Ditto.
+	(expand_aggr_vbase_init_1): Ditto.
+	(build_virtual_init): Ditto.
+	* cplus-class.c (build_class_init_list): Rewritten to build list with
+	assoc entries instead of types.  Also, use new macro
+	ASSOC_BASEINIT_MARKED instead of CLASSTYPE_MARKED6.
+	(finish_base_struct): New argument ASSOCS is the list of assocs that
+	describe the basetypes of T.
+
+	* cplus-tree.c (make_lang_type): Always initialize
+	CLASSTYPE_VBASE_SIZE to integer_zero_node.  To test if a class has
+	virtual baseclasses, test CLASSTYPE_VBASECLASSES, not
+	CLASSTYPE_VBASE_SIZE.
+
+	* cplus-class.c (finish_struct): Rewritten to use assocs instead of
+	types where appropriate.
+
+	* cplus-search.c (get_base_distance): Change interface to use assocs
+	or types.  Also, PATH_PTR argument is now an assoc chain, not a
+	TREE_LIST.  Algorithm to find leftmost path is now more efficient.
+	(compute_visibility): Uses assoc chain instead of TREE_LIST of
+	types.
+	(recursive_bounded_basetype_p): New function.
+	(dfs_walk, dfs_* functions): Change to be called with assocs instead
+	of types.
+	(breadth_first_search, all bfs_*): Ditto.
+	cplus-tree.c (reverse_path): New function.  Like nreverse, but works
+	on assoc chains.
+
+	* cplus-class.c (build_vtable, prepare_fresh_vtable,
+	modify_vtable_{entries,entry},): Change interfaces to use assocs
+	instead of types.  Use macro ASSOC_VTABLE_PATH_MARKED on the assocs
+	instead of CLASSTYPE_MARKED3.  Use macro ASSOC_NEW_VTABLE_MARKED on
+	the assocs instead of CLASSTYPE_MARKED4.
+
+	* cplus-dbxout.c: Now needs to know more about assocs.  When assocs
+	are put in the TYPE_BASETYPEs field, it should not need to know
+	about lang_type.
+
+	* cplus-decl.c (xref_tag): Rewritten to build proper assoc lists.  No
+	longer builds basetype lists.
+	(finish_function): Make `flag_no_inline' really take effect.
+
+	* cplus-tree.c (make_assoc): Changed for new assoc structure.  The
+	fields in assocs are now: VALUE (pointer to TYPE that this assoc is
+	for), OFFSET (the byte offset of this basetype in the whole object),
+	VTABLE (the virtual function table that should be used to initialize
+	objects controlled by this assoc), VIRTUALS (the virtual functions
+	to use for initializing VTABLE), BASETYPES (a TREE_VEC of basetypes
+	that this assoc has, or NULL_TREE if none), NEXT_ASSOC (a temporary
+	slot used to point to the next assoc in an assoc chain),
+	VIA_{PUBLIC,VIRTUAL} bits saying whether this assoc is a basetype of
+	its parent via public or virtual inheritance.
+
+	* cplus-ptree.c (print_lang_type): Modified as necessary to cope with
+	new inheritance structure.
+
+	* cplus-search.c (get_base_type_1): This function was unused and
+	wrong.  Deleted.
+
+	* cplus-tree.c (layout_basetypes): Take new arg ASSOCS.  Layout the
+	basetypes my modifying the assocs, not the types.
+	(layout_vbasetypes): Ditto.
+
+	* all cplus-* files: Removed dead code, unused variables, and change
+	asserts where appropriate.
+
+	* all cplus-* files: DECL_VIRTUAL_P is no longer used as a truth test
+	for whether or not a function is virtual.  Use a test for non-NULL
+	DECL_VINDEX instead.
+
+Sat Aug 17 15:16:40 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* function.h (inline_function_decl): Declare it.
+	* integrate.c: Include function.h; don't declare var here.
+
+	* rtl.h (regno_reg_rtx): Declare it.
+
+	* stmt.c (expand_end_case):
+	When filling labelvec from case range, avoid overflow in i.
+
+Fri Aug 16 23:06:37 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_binary_op_nodefault):
+	Take out warning added by recent changes.
+
+Fri Aug 16 22:00:09 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* function.c (inline_function_decl): New var.
+	(lookup_static_chain): Decl is local if context is function being
+	inlined.
+	* integrate.c: Remove partially-completed previous change.
+	(expand_inline_function): Set inline_function_decl.
+
+Fri Aug 16 21:41:10 1991  Michael Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+
+	* a29k.md (insv,extv): Changed POS / SIZE to POS / 8, since high
+	order bit of BP selects half-word position for half-word ops.
+
+Fri Aug 16 18:52:35 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+
+	* combine.c (distribute_links): Only put link on new insn if the
+	insn uses the register.  If first find an insn that sets the
+	register but does not otherwise use it, then drop the link.
+	   
+	* combine.c (distribute_links): Strip off SUBREG, ZERO_EXTRACT,
+	etc. from the destination of the set before passing it to
+	reg_mentioned_p and reg_referenced_p.
+		  
+Sat Aug 16 17:02:53 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-pt.c (uses_template_parms): Run loop over _EXPR nodes from
+	TREE_CODE_LENGTH-1 to 0, not from TREE_CODE_LENGTH.
+
+	* cplus-decl.c (grokfndecl): Change `==' to `=' in assignment to
+	`raises'
+	(finish_decl): If FLAG_PIC is nonzero, leave initialized data in
+	common space.
+
+Fri Aug 16 13:13:11 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reg-stack.c (current_function_returns_real): New variable.
+	(reg_to_stack): Set it.
+	(stack_reg_life_analysis): Use it.
+	(emit_pop_insn): Return the new insn.
+	(convert_regs): Pop any stack regs live at the end of the last basic
+	block.
+
+Fri Aug 16 16:16:45 1991  Michael Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+
+	* tm-sparc.h (SELECT_SECTION): Don't put relocatable values into
+	text space if generating position-independent code.
+
+Fri Aug 16 16:00:30 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* protoize.c (__flsbuf): Decl deleted; no need.
+	[ultrix]: Include string.h, not strings.h.
+
+	* function.c (instantiate_virtual_regs_1): Bug adding NEW to addr of X.
+
+Fri Aug 16 08:51:25 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case ABS_EXPR, MIN_EXPR, MAX_EXPR): Don't
+	allow TARGET to be a hard reg because evaluating the comparison
+	might clobber it.
+
+Thu Aug 15 23:38:04 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* tm-m68k.h (PRINT_OPERAND): Use asm_fprintf to print immed prefix.
+
+Thu Aug 15 23:36:12 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+
+	* cplus-decl.c (finish_enum): Remove last traces of Wood's mistaken
+	changes for tag handling in C++.
+	* cplus-class.c (finish_struct): Ditto.
+
+Tue Aug 13 06:12:18 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (find_cross_jump): When avoiding CALL_INSNs, don't
+	return a CODE_LABEL as a cross-jump point; use next_real_insn instead
+	of next_nonnote_insn.
+
+	* fold-const.c (optimize_bit_field_compare, merge_component_reference):
+	Use mode_for_size to get mode for word; don't use SImode.
+	* tree.c (build_index_type, build_index_2_type): Don't use SImode;
+	get mode of SIZETYPE instead.
+
+	* optabs.c (emit_cmp_insn): Use type of int instead of SImode for
+	return from memcmp and bcmp.
+
+Mon Aug 12 17:54:55 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* stmt.c: Include recog.h.
+	* stmt.c (expand_end_bindings): Expect abort to return void.
+	(expand_end_case): Give tablejump whatever mode it wants.
+
+	* integrate.c (integrate_type): New function.
+	* c-typeck.c (build_binary_op_nodefault): Rewrite last change.
+
+	* Makefile.in (install): Indirect through INSTALL_TARGET.
+	(install-native): New name for old install target.
+	(INSTALL_TARGET): New variable.
+	* cross-make (INSTALL_TARGET): Override it.
+
+Mon Aug 12 17:25:48 1991  Michael Meissner  (meissner at osf.org)
+
+	* out-mips.c (toplevel, override_options, siginfo): If the OSF/1
+	SIGINFO signal is provided, invoke siginfo handler, which prints
+	which file is being compiled, and runs ps on the compiler and it's
+	parent.
+
+	* make-decrose (CC, OLDCC): Define CC and OLDCC to be the same, so
+	that tests within Makefile.in work as expected.
+	(LIB2FUNCS_EXTRA): Put osf-main in the gnulib2 portion of the
+	library, instead of the gnulib1 portion.
+
+Mon Aug 12 16:31:47 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* explow.c (expr_size): Fix typo.
+
+Mon Aug 12 14:27:31 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* expr.c (expand_expr, case COND_EXPR): Fix typo in comment.
+	In the singleton code, don't accept a hard register as a target if
+	we are going to store into it before testing the condition because
+	that evaluation may involve a subroutine call which might clobber it.
+
+	* rtl.h (SCHED_GROUP_P): Fix typo in definition.
+
+Mon Aug 12 08:01:01 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (find_cross_jump): Look at REG_EQUIV notes in addition to
+	REG_EQUAL notes.
+	(do_cross_jump): Remove REG_EQUAL or REG_EQUIV notes present on only
+	one branch of the cross-jump so we don't get confused by them if we
+	cross-jump again.
+
+Mon Aug 12 01:44:26 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* unroll.c (unroll_loop): When naively unrolling loops, if the last
+	jump insn is an unconditional jump, and it does not jump to the loop
+	top, then it must be copied with the rest of the loop body.
+
+	* rtl.h: Clean up documentation for uses of volatil and in_struct
+	fields of an rtx.
+	* gcc.texinfo: Document macros CONST_CALL_P, LABEL_PRESERVE_P, and
+	SCHED_GROUP_P. Clean up documentation for uses of used, in_struct,
+	and unchanging fields of an rtx.
+
+	* final.c (final_scan_insn):  In the ASM_OUTPUT_LOOP_ALIGN code,
+	must verify that next exists before checking whether it is a label.
+
+Sun Aug 11 16:46:17 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (cmpstrsi): Enable it.  Now uses REG as output, not cc0.
+	Old cc0-output pattern remains for combining cmpstrsi & test pairs.
+
+Sun Aug 11 15:52:33 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_symbol): Handle var-length array with reference.
+
+	* c-decl.c (xref_tag): Copy default mode from unsigned_type_node.
+	* explow.c (expr_size): Get it from size_type.
+	* reload1.c (allocate_reload_reg): No need to validate mode of
+	reload_in if that value is a const_int.
+
+	* expr.c (expand_builtin): Get value mode properly, for memcmp.
+
+Sun Aug 11 15:52:33 1991  Jim Wilson  (wilson at cygint.cygnus.com)
+
+	* dbxout.c (dbxout_symbol): DECL_ASSEMBLER_NAME is a tree, not a
+	character string, so call IDENTIFIER_POINTER before printing it.
+
+	* fold-const.c (fold): When converting foo++ == CONST to ++foo ==
+	CONST + INCR, the plus must have the same TREE_TYPE as the
+	postincrement, not the comparison.
+
+Sat Aug 10 22:58:01 1991  Michael Meissner  (meissner at osf.org)
+
+	* mips.md (extendqihi2 define_split): Use SImode on shifts rather
+	than HImode, and turn result register into SImode as well.
+
+Sat Aug 10 21:00:59 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* calls.c (emit_call_1): New argument is_const.  Set CONST_CALL_P
+	true for the call_insn if is_const is true.
+	(expand_call): Pass is_const to emit_call_1.
+	* expr.c (emit_library_call): Pass no_queue to emit_call_1.
+	Document that no_queue means that the function call is const.
+	* local-alloc.c (validate_equiv_mem):  Don't invalidate memory for
+	const calls.
+	* rtl.h: Update comments describing uses of rtl unchanging and
+	in_struct bits.
+	(CONST_CALL_P): New macro.  True for a call_insn if it is calling
+	a const function.  Uses the unchanging bit.
+	(SCHED_GROUP_P): New macro.  True for an insn if it must be
+	scheduled together with the previous insn.  Uses the in_struct bit.
+	* sched.c: Rewrite to use new SCHED_GROUP_P macro insead of
+	RTX_UNCHANGING_P.
+	(sched_analyze): Rewrite to use new CONST_CALL_P macro.
+
+	* sched.c (schedule_block): Don't schedule a block with a volatile
+	or traditional asm insn.  There is currently no code to correctly
+	handle dependencies for them.
+
+	* combine.c (distribute_links): Fix typo in comment.
+
+Sat Aug 10 18:42:22 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (operand_subword): Replace explicit SImode references
+	with mode for BITS_PER_WORD bits.
+
+Sat Aug 10 14:17:08 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* calls.c (expand_call): Handle ARGS_GROW_DOWNWARD.
+
+	* ns32k.md (call_value): Consistently realize function is operand 1.
+
+	* cccp.c (do_include): Get current dir from nominal_fname.
+
+	* expr.c (expand_builtin): Give cmpstr* a target in the mode it wants.
+	* optabs.c (expand_cmp_insn): Likewise.
+
+Fri Aug  9 09:59:27 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* dwarfout.c (output_symbols_for_block): Fix typo in iterating over
+	subblocks.
+
+	* make-m88k{,dgux,luna}: Eliminate m88k-trace.asm.
+	* tm-m88k.h, out-m88k.c: Make -mbig-pic a synonym for -fPIC.
+	Delete -mtrace-function.
+
+	* Makefile.in (CROSS_TOOLS): New variable.
+	(gnulib1.null, gnulib2.ready): Depend on CROSS_TOOLS.
+	(gnulib1.null): Use $(AR) $(AR_FLAGS).
+	* cross-make (CROSS_TOOLS): Define as install-cross-tools.
+
+Fri Aug  9 15:21:16 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* optabs.c (emit_cmp_insn): Expect cmpstr* to have result operand.
+	Test the sign of the result we get.
+	i386.md needs to be changed.
+
+Fri Aug 9 11:09:22 1991    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* make-cc1.com: Fix bug where the wrong program was being run to
+	generate insn-attrtab.c, and, add DEBUG option, so that images can be
+	linked to run under the debugger.
+
+Fri Aug  9 06:42:15 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genemit.c (gen_split): Add "_fail:" label here too.
+
+	* tree.h (STRIP_NOPS): Define macro here; add CONVERT_EXPR to list
+	of operations to possibly ignore.
+	* fold-const.c (STRIP_NOPS): Not here.
+	* expr.c (strip_nops): Delete function.
+	(string_constant): Use STRIP_NOPS macro instead of strip_nops function.
+
+	* global-alloc.c (expand_preferences): New function.
+	(global_alloc): Call it.
+
+Fri Aug  9 01:19:26 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* optabs.c (emit_cmp_insn): Correct typo in spacing.
+
+	* unroll.c: Correct typo in comment.  Document that unrolling a
+	loop by a multiple of the number of memory accesses is a win.
+	(unroll_loop): New variable last_loop_insn, points to the last
+	real insn in the loop, which will either be a jump or a barrier.
+	Use last_loop_insn instead of assuming that PREV_INSN (loop_end)
+	is that last real insn in the loop.
+	Standardize comments printed to loop dump file when we can't
+	unroll a loop, so that they all start with "Unrolling failure".
+	No longer assumes that the insn before the backward jump is a
+	compare unless HAVE_cc0.  If not HAVE_cc0, then must copy this
+	insn, and for loop_iterations == 1 case, can not delete this insn.
+	If last_loop_insn is not a JUMP_INSN or BARRIER, then do not
+	unroll the loop.
+	(precondition_loop_p): Fail if loop_iteration_var is not live
+	before loop_start.
+	(copy_loop_body): Rewrite obsolete and misleading comment
+	concerning the splitting of address givs.
+	(back_branch_in_range_p): Correct typo in comment.  No longer
+	assumes that PREV_INSN (loop_end) is the backward branch at the
+	end of the loop.
+	(fold_rtx_mult_add):  Rewrite to use simplify_binary_operation.
+	(iteration_info): Fail if iteration variable is larger than
+	HOST_BITS_PER_LONG, or if it does not have an integer mode.
+	(find_splittable_givs): If an address giv was combined with
+	another address giv, then we can only split the first giv if the
+	second was actually reduced.
+	(loop_iterations): New variable last_loop_insn, use instead of
+	assuming that the last jump insn if PREV_INSN (loop_end).
+	Correct typo in comment.
+
+Thu Aug  8 17:57:41 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (gnulib1.null): Use *_FOR_TARGET variables.
+	(TARGET_TOOLPREFIX): New variable.
+	(AR_FOR_TARGET, AR_FOR_TARGET_FLAGS): New variables.
+	(RANLIB_FOR_TARGET, RANLIB_TEST_FOR_TARGET): New variables.
+	* cross-make: New file.
+	* configure: Insert cross-make into Makefile.
+
+	* tm-m68k.h (LEGITIMIZE_ADDRESS): Copy address before changing it.
+	(COPY_ONCE): New macro, subroutine for LEGITIMIZE_ADDRESS.
+
+	* toplev.c (main): Accept -g with warning if not supported.
+
+	* Makefile.in (install-cross-tools): Do nothing unless have gcc-cross.
+	(gnulib2.ready): Depend on install-cross-tools.
+
+Thu Aug  8 14:34:53 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* expr.c (c_strlen): New function; determines strlen of string const.
+	(expand_builtin, cases BUILT_IN_STRCMP, BUILT_IN_STRCPY): Call it
+	instead of relying on TREE_STRING_LENGTH.  For strcmp, optimize
+	cases where two lengths are available, if at least one of them is
+	constant.
+	(expand_builtin, case BUILT_IN_MEMCMP): If alignment test fails, and
+	function was really BUILT_IN_STRCMP, delete length parameter before
+	expanding call.
+
+	* tree.h (enum built_in_function): Added BUILT_IN_STRLEN.
+	* c-decl.c (sizet_ftype_string): New variable, for strlen prototype.
+	(init_decl_processing): Set it, and declare strlen and
+	__builtin_strlen as built-in functions.  Deleted variable `decl'
+	since it was only assigned to, never read.
+	* expr.c (expand_builtin, case BUILT_IN_STRLEN): Implement it.
+
+	* cplus-decl.c (sizet_ftype_string, init_decl_processing): Copy
+	changes from c-decl.c.  Also initialize const_string_type_node.
+
+Thu Aug  8 14:34:53 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-decl.c (pushdecl): Just warn if trad. extern type is temporary.
+
+Wed Aug  7 15:16:55 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+
+	* local-alloc.c (block_alloc): When converting a SCRATCH rtx to a
+	REG rtx, must clear the `used' bit.
+
+Tue Aug  6 14:17:09 1991  Jim Wilson  (wilson at wombat.gnu.ai.mit.edu)
+
+	* stmt.c (expand_start_bindings): Fix typo in comment or spacing.
+	* rtlanal.c (reg_referenced_between_p): Likewise.
+	(reg_set_last): Likewise.
+	* loop.c (make_loop_jump): Likewise.
+	* longlong.h (UDIV_NEEDS_NORMALIZATION): Likewise.
+	* local-alloc.c (update_equiv_regs): Likewise.
+	* global-alloc.c (hard_reg_copy_preferences): Likewise.
+	* fixcpp: Likewise.
+	* tm-m68k.h (CONDITIONAL_REGISTER_USAGE): Likewise.
+	* combine.c (reg_significant): Likewise.
+	* calls.c (expand_call): Likewise.
+	* cplus-tree.c (build_cplus_new): Likewise.
+
+	* function.c (fixup_var_refs_insns): When emitting a move insn,
+	don't put it between a CALL_INSN and its USE insns as this will
+	break sched and reorg.  Instead, put it before the USE insns.
+
+	* combine.c (subst): Convert (ior (ashift A CX) (lshift A CY)) where
+	CX+CY equals the mode size to (rotate A CX).
+
+	* out-sparc.c (emit_move_sequence): For DImode constants, can not
+	create a temporary register to hold the high part.
+	(output_scc_insn): When in a delay slot, verify that NEXT_INSN (insn)
+	really is the next insn.
+
+	* sparc.md: Fix support for DImode constants.  Two new patterns
+	added, one for high:DI operators and one for lo_sum:DI operators.
+	(*extend*): Rework these patterns.  Don't accept memory input
+	operands in the define_expands, as this gives better code.
+	Delete patterns for combining two loads into a load and move;
+	these are obsoleted by combiner improvements.
+	Delete define_splits for splitting these obsolete patterns.
+	(one_cmplsi2): Can not accept general_operand destinations, only
+	register destinations.
+
+	* tm-sparc.h (STACK_POINTER_OFFSET): Explain how value is derived,
+	and compute in terms of another macro.
+	(STRUCT_VALUE_OFFSET): Explain how value is derived.
+	(FIRST_PARM_OFFSET): Fix typo in comment.
+
+	* expr.c (MOVE_RATIO): Check for HAVE_movstrdi.
+	(emit_block_move): Add code to use HAVE_movstrdi if present.
+	(emit_push_insn): Likewise.
+
+	* final.c (final_scan_insn): When insn fails constraint check,
+	call fatal_insn_not_found instead of just aborting to make
+	debugging easier.
+
+	* tree.c (integer_all_onesp): Rewrite code to avoid shift by
+	HOST_BITS_PER_INT which is undefined according to ANSI.  Also,
+	abort for precision values not handled, i.e. those greater than
+	twice times HOST_BITS_PER_INT.
+
+Tue Aug  6 14:05:42 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (seq,sne): Use setb/setnb mnemonics instead of setc/setnc:
+	GAS doesn't understand the latter yet.
+
+Tue Aug  6 13:01:53 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (install-common): Use -d, not -f, for tooldir/bin.
+
+Tue Aug 6 10:37:02 1991    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* make-cc1.com: Replacement file.  This new version can build cc1plus
+	and cc1obj in addition to cc1 (known on VMS systems as gcc-cc1plus.exe,
+	gcc-cc1obj.exe and gcc-cc1.exe respectively).
+
+Tue Aug  6 06:30:09 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (canon_hash): If a REG in an operand is equivalent to a
+	constant, hash as if we had the constant.
+	(exp_equiv_p): See if a REG and constant are equivalent.
+
+Tue Aug  6 03:59:16 1991  Ken Raeburn  (raeburn at watch.com)
+
+	* cplus-tree.c (make_deep_copy): Handle PARM_DECLs.
+
+	* cplus-init.c (build_offset_ref): Use DECL_CHAIN, not TREE_CHAIN
+	when trying to determine if a function is unique.
+
+	* cplus-decl.c (start_decl): When constructing a decl tree for a
+	function template, copy last_function_parms to permanent storage,
+	and save it as the function argument list.  Call build_lang_decl
+	instead of build_decl, instead of duplicating the extra work it does.
+	Set `overloaded' flag to 1.  Call dont_forget_overload, so the
+	template decl won't get discarded.
+	Also deleted some commented-out code.
+
+	* cplus-pt.c (uses_template_parms, cases VAR_DECL, FUNCTION_DECL):
+	Give a warning if template parms are only used in places where they
+	can't be resolved (e.g., return types or global or fixed-class
+	variable types).
+	(tsubst): Preserve storage qualifiers on type field, and pass it to
+	layout_type if it has changed.
+	(tsubst, case TEMPLATE_TYPE_PARM):  Preserve storage qualifiers.
+	(tsubst, case INTEGER_TYPE): Process min and max fields, if needed.
+	(tsubst, case FUNCTION_DECL): Process arguments and result fields.
+	(tsubst, case PARM_DECL): New branch.  Handle parm list for
+	FUNCTION_DECL nodes.
+	(tsubst, case TREE_LIST): Copy TREE_PARMLIST flag from source.
+	Don't bother processing TREE_CHAIN field if it is void_type_node.
+	(tsubst, cases POINTER_TYPE, REFERENCE_TYPE): Preserve storage
+	qualifiers.
+	(tsubst, case FUNCTION_TYPE): Eliminate recursion for simple common
+	cases for values and context fields.  Preserve storage qualifiers.
+	(tsubst, default case): Print node type of correct variable in error
+	message.
+	(instantiate_template): Set function_maybepermanent_obstack to
+	permanent, along with the others, and restore old value after tsubst
+	call.  This permits the PARM_DECL case to work.
+
+Mon Aug  5 22:44:51 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-tree.h (struct pending_inline): Add new field `deja_vu' to
+	mark if this pending_inline has already been seen.
+	* cplus-lex.c (do_pending_inlines): Set DEJA_VU when seen.
+	* cplus-lex.c (reinit_parse_for_method, cons_up_default_function):
+	Initialize DEJA_VU to 0.
+	* cplus-decl2.c (mark_inline_for_output): Don't add DECL to
+	PENDING_INLINES if it's already been seen.
+	* cplus-pt.c (instantiate_template): Initialize DEJA_VU to 0.
+
+	* cplus-method.c (do_inline_function_hair): Change some assignments
+	to asserts, since they seem to be copying values that are already
+	there.
+
+Mon Aug  5 22:23:34 1991  Michael Meissner  (meissner at osf.org)
+
+	* genemit.c (gen_expand, main): Change FAIL macro to be a simple
+	goto _fail, and initialize the return value to 0 in the prologue.
+	This avoids a useless warning message that the MIPS C compiler
+	gives if a return is encountered inside of a do { ... } while (0).
+
+Mon Aug  5 21:28:06 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cplus-xref.c (GNU_xref_file): Treat VMS like USG.
+
+	* optabs.c (expand_binop): In libcall, use actual mode of op1.
+
+	* c-typeck.c (build_binary_op_nodefault):
+	In signed versus unsigned compare warning, note promotions of unsigned.
+
+	* c-parse.y (simple_if): Allow error instead of lineno_labeled_stmt.
+	(if_prefix): New subroutine of simple_if.
+
+	* gnulib2.c (__ashldi3, __ashrdi3, __lshldi3, __lshrdi3):
+	Accept second arg as int, not long long.
+
+Sun Aug  4 22:31:53 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-except.c (cplus_expand_start_except): Set up variables
+	`current_exception_name_as_rtx' and `current_exception_parms_as_rtx'.
+	These variables are used to factor out calls to `expand_assignment'
+	and allow instead calls to `emit_move_insn', which takes about 1/2x
+	the compilation time when called directly.
+	(various places): Use `store_expr' instead of `expand_assignment'
+	when reasonable.
+	(cplus_expand_reraise): Take advantage of above changes.
+	(setup_exception_throw_decl): This is where *_as_rtx variables are
+	initialized.
+
+	* cplus-input.c (getch): Rewritten slightly to help GNU C optimizer.
+	* cplus-lex.c (yylex): In IDENTIFIER case, pre-test condition that
+	`getch' tests, and call `getc' directly when possible.  This cuts
+	calls to `getch' by a factor of 4 for typical C++.
+
+	* cplus-class.c (add_virtual_function): Memoize the first 256
+	virtual function table index nodes (0x80000001, 0x80000002, etc.).
+	(finish_struct): Use `size_int' instead of `build_int_2' when we
+	know the int will not be changed in place (such as the size value of
+	virtual function tables).
+	* cplus-decl2.c (finish_table): Same change as for `finish_struct'.
+	* cplus-tree.c (layout_basetypes): Same change.
+	* cplus-decl.c (init_decl_processing): Use `size_int' to initialize
+	`size_zero_node' and `size_one_node'.
+
+	* cplus-tree.h (TREE_OVERLOADS_ARROW): Define this.
+	* cplus-parse.y (operator_name): Set TREE_OVERLOADS_ARROW where
+	appropriate.
+	* cplus-type2.c (build_x_arrow): Use TREE_OVERLOADS_ARROW and
+	reorganize the logic for better speed.
+	* cplus-ptree.c (print_lang_type): Print when TREE_OVERLOADS_ARROW.
+
+Sun Aug  4 16:44:54 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtlanal.c (reg_referenced_p): Properly handle ASM_OPERANDS.
+
+	* cse.c (cse_insn): When recording this_insn_cc0, build a COMPARE
+	rtl if SRC is a floating-point value.
+
+Sun Aug  4 16:16:11 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* fold-const.c (fold): Don't compute shift with negative count.
+	* cse.c (simplify_binary_operation): Likewise.
+
+Sat Aug 3 15:57:55 1991    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* tm-vms.h (ASM_OUTPUT_EXTERNAL): Modify to always write the
+	correct size of the data object, if it is known.
+	(ASM_OUTPUT_COMMON): Modify to select the const or the data section
+	as appropriate.  This definition shadows a definition in tm-vax.h
+	(const_section): Change data type to void.
+
+Sat Aug  3 15:02:40 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* integrate.c (save_for_inline_copying): Clear constant pool after
+	saving constants into the insns.
+
+	* expr.c (expand_builtin, case BUILT_IN_MEMCPY): Ensure items
+	passed to emit_block_move are valid MEMs.
+
+	* recog.c (offsettable_address_p): Don't change INTVAL of a CONST_INT
+	within an address; that CONST_INT is likely shared and may be used
+	elsewhere in the address.
+
+	* stmt.c (expand_end_stmt_expr): Don't try to copy result to
+	REG; it might be BLKmode.
+
+	* reload.c (MATCHES): Don't consider two things equal if they have
+	side effects.
+
+	* combine.c (try_combine): When replacing SET_DEST inside a PARALLEL,
+	don't replace it with something that has a side effect.
+
+Sat Aug  3 13:17:53 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-decl.c (init_decl_processing):
+	If traditional, omit builtins with names that don't start with _.
+	Also omit if not optimizing.
+
+	* Makefile.in (combine.o, emit-rtl.o, expr.o, final.o, tree.o):
+	Depend on gvarargs.h.
+
+Fri Aug 2 11:00:10 1991    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	Merge some VMS changes from 1.39 that did not make it to 2.0.
+	These changes will prohibit GCC from addressing external symbols with
+	indirect addressing modes, to be compatible with sharable
+	image libraries under VMS.
+
+	* tm-vms.h: Define NO_EXTERNAL_INDIRECT_ADDRESS, define
+	ENCODE_SEGMENT_INFO to make use of hook in varasm.c
+
+	* tm-vax.h: Provide alternative definitions of INDIRECTABLE_CONSTANT_P,
+	INDIRECTABLE_CONSTANT_ADDRESS_P, and INDIRECTABLE_ADDRESS_P, which
+	are used when NO_EXTERNAL_INDIRECT_ADDRESS is defined.  Also, define
+	INDIRECTABLE_CONSTANT_ADDRESS_P.   Modify definitions of
+	GO_IF_NONINDEXED_ADDRESS, and GO_IF_LEGITIMATE_ADDRESS to work with
+	either alternative.
+
+Fri Aug  2 21:54:55 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (check_dbra_loop): Fix typo in arg to single_set.
+
+	* reload1.c (choose_reload_regs): Verify that all registers in a 
+	group still contain the desired value.
+	(emit_reload_insns): Set reg_reloaded_contents and reg_reloaded_insn
+	for all registers in a group.
+
+	* combine.c (set_significant): Handle a complex SET_DEST correctly.
+
+Fri Aug  2 17:12:24 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* tree.c (build_array_type): Make pointer type before array type.
+
+	* Makefile.in (install-common): Never install gcc if gcc-cross exists.
+
+Fri Aug  2 14:58:42 1991  Michael Meissner  (meissner at osf.org)
+
+	* make-mips (CC, OLDCC): Comment why we need to define CC and OLDCC
+	to get around fixed size table complaints in the MIPS compiler.
+
+Fri Aug  2 14:08:01 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* configure (writing VPATH definition):  Avoid temp file.
+
+	* tm-i860.h (MAX_PARM_BOUNDARY): Defined.
+	(GO_IF_LEGITIMATE_ADDRESS): Add parens around & operator.
+	(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Use sp, not r3 (that's fp).
+	* i860.md (movsf): Don't reload high address part if already loaded.
+	(cmplesf, cmpledf, cmpgesf, cmpgedf): Set CC_NEGATED; swap operands.
+	* out-i860.c (strict_single_insn_op_p):
+	Fix criterion for loading high half.
+	(output_load_address): #if 0 since not used.
+
+Fri Aug  2 01:46:39 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (swapdf): Don't condition on TARGET_387.
+	(bit set/complement/clear insns): Don't use if -m486.
+	(bit test insns): Don't allow a MEM operand.
+
+Thu Aug  1 19:05:31 1991  Matthew Self  (mself at next.com)
+
+	* local-alloc.c (block_alloc):  Record regs_live_at for last insn
+	in basic block too.  Otherwise REG_UNUSED regs may overlap hard
+	regs set in the last insn of the basic block.
+
+Thu Aug  1 19:02:57 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (gen_rtx): Don't return frame_pointer_rtx (e.g.) if
+	mode is not Pmode.
+
+	* emit-rtl.c (operand_subword): Don't write explicit divide by 0;
+	some (broken) compilers give errors for it.
+
+	* m68k.md (udivhi3): One pattern had constraint of "d" with
+	const_int_operand.
+	(FPA insns): Operand 1's constraints allow memory and constants, but
+	the predicate is register_operand; change to general_operand.
+
+Thu Aug  1 13:41:47 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-lex.c (do_pending_inlines, process_next_inline): Zero out
+	the DECL_PENDING_INLINE_INFO field after processing it.
+	(store_pending_inline): Don't delay processing a virtual function,
+	since it needs to be processed in case the virtual function table is
+	needed.
+
+	* cplus-decl2.c (mark_inline_for_output): If DECL has pending inline
+	info, cause it to be processed.
+
+	* cplus-pt.c: Removed extraneous declaration of `permanent_obstack'.
+	Also, added comment for `reinit_parse_for_template'.
+
+	* cplus-typeck.c (mark_addressable): For FUNCTION_DECL case, also
+	test DECL_PENDING_INLINE_INFO.
+
+Thu Aug  1 13:26:12 1991  Michael Meissner  (meissner at osf.org)
+
+	* mips-tfile.c (main): If input file is not specified, use the same
+	file for both input and output.  If renaming output file and rename
+	fails, copy the file.
+	(free_multiple_pages): New function.
+
+	* tm-decrose.h (ASM_FINAL_SPEC): Add this to call mips-tfile if
+	using the MIPS assembler.
+
+	* tm-mips.h (ASM_FINAL_SPEC): Add this to call mips-tfile unless
+	using gas.
+	(TARGET_VERSION): Do not put __DATE__ in the output.
+
+	* make-mips (BISONFLAGS): Add -l to bison flags because the MIPS
+	based compilers have problems with #line.
+	(CC): Define in terms of $(OLDCC) so the USE_HOST macros work.
+	(EXTRA_PASSES): Build mips-tfile and mips-tdump.
+	(Makefile): Explicitly use sh to invoke configure.
+
+	* make-decrose (EXTRA_PASSES): Build collect.
+	(Makefile): Explicitly use sh to invoke configure.
+
+Thu Aug  1 12:22:17 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cccp.c (directive_table, node_type): Add #include_next.
+	(do_include): Support #include_next.
+	(finclude): New arg DIRPTR.  All callers changed.
+
+	* reload1.c (reload_as_needed):  Check live_known before accessing
+	basic_block_head.
+
+Thu Aug  1 11:47:37 1991  Michael Meissner  (meissner at osf.org)
+
+	* gcc.c (compilers): Add new spec %A, which expands ASM_FINAL_SPEC.
+	This option is added after all other arguments to the assembler.  It
+	is for the MIPS port to run a cleanup program after the assembler
+	finishes, by having ASM_FINAL_SPEC be "\n mips-tfile args..."
+	(set_spec): If name is 'asm_final', set the asm_final_spec.
+	(process_command): print out asm_final_spec for -dumpspecs.
+	(do_spec_1): Expand %A to be ASM_FINAL_SPEC.
+	(validate_all_switches): look at any switches handled in
+	ASM_FINAL_SPEC.
+
+Thu Aug  1 07:42:37 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* dwarfout.c (element_list_attribute): AT_element_list is a BLOCK4.
+
+Wed Jul 31 17:42:40 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): In "if (...) x = 1; else {...} if (x) ...":
+	Don't assume that SYMBOL_REFs are always non-zero.
+	Handle operations other than EQ and NE.
+	Handle conditional RETURN properly.
+
+	* out-a29k.c (print_operand, case 'e'): When writing LXn, use number
+	of last label in function.
+	(output_prolog): Fix missing arg in ADD  in a29k_first_epilogue_insn.
+
+Wed Jul 31 13:41:37 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* sdbout.c (sdbout_parms): Don't crash if MEM address is a MEM.
+
+Wed Jul 31 12:36:37 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* fixincludes: New variable INCLUDES specifies input dir.
+
+	* Makefile.in (install-common): Add dummy elt to EXTRA_PASSES.
+	Fix typo in test.
+
+	* Makefile.in (install-cross-tools): Use /. in args to test -d.
+	(cccp.o, dbxout.o, c-plus-*): Added missing dependencies.
+
+	* c-common.c: Don't include rtl.h--that was unmodular.
+
+	* make-i386v (INSTALL): Define this.
+
+Wed Jul 31 07:38:12 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* Makefile.in (LIB2FUNCS_EXTRA): Extra C and assembler files for
+	gnulib2.
+        * make-m88k*: Put the assembler files in gnulib2 and eliminate use
+	of gnulib1.
+
+Tue Jul 30 20:21:41 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* stddef.h (WCHAR_T):
+	Test _WCHAR_T_, __WCHAR_T, _T_WCHAR_ and ___int_wchar_t_h.
+
+	* tm-i386isc.h (RETURN_POPS_ARGS): Caller pops the struct value addr.
+
+	* cccp.c (default_include): Search local dir, system, then standard.
+
+	* Makefile.in (USE_HOST_MALLOC, USE_HOST_OBSTACK):
+	Don't depend on which C compiler is in use.
+
+	* reload1.c (reload): Use pseudoreg to compute spill_indirect_levels.
+
+	* c-decl.c (start_function): Don't take arg types from builtin.
+	(duplicate_decls): Cancel builtin function if new arg types differ.
+	Don't take arg types from buiiltin.
+
+Tue Jul 30 18:45:39 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c (decompose): Don't blow up for constants; they are safe.
+
+Tue Jul 30 15:49:34 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_parms): Don't crash if MEM address is a MEM.
+
+	* Makefile.in (install-common): Don't lose if EXTRA_PASSES is empty.
+	Don't install gcc if gcc-cross exists.
+	(install-cross-tools): Fix typos.
+	Avoid doing cd -- use absolute file names.
+	(gcc-cross.o): Rule deleted.
+	(gcc-cross): Build gcc, then copy it.
+
+Tue Jul 30 15:37:25 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-init.c (build_vec_delete): Use `size_binop' when building up
+	the array end boundary.
+
+Tue Jul 30 10:03:54 1991  Michael Meissner  (meissner at osf.org)
+
+	* tm-mips.h (DOLLARS_IN_IDENTIFIERS): Define to be 1.
+
+Mon Jul 29 18:56:33 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c (refers_to_regno_for_reload_p): New function.
+	(push_reload, find_dummy_reload, immune_p): Use
+	refers_to_regno_for_reload_p instead of refers_to_regno_p.
+
+	* cse.c (fold_rtx): Don't make shifts wider than object.
+
+Mon Jul 29 17:17:55 1991  Michael Collison  (collison at osf.org)
+
+	* configure: Added entry for mmax-osfrose (Multimax with ns32k
+	running OSF/1).
+
+Mon Jul 29 14:51:32 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (SYMLINK): New variable.
+	(install-cross-tools): Make symlinks if possible.
+	Otherwise, for executables, indirect to tooldir with a shell script.
+	(install-native): Install gcc-cross as bin/gcc under tooldir.
+
+	* Makefile.in (USE_HOST_ALLOCA):
+	Generate nothing if don't need separate alloca.
+	(USE_HOST_OBSTACK, USE_HOST_MALLOC): New variables.
+	(HOST_LIBS): Use them. 
+	(HOST_PREFIX_1): Make a dummy file with this name,
+	for cross-compiling for a machine that needs no separate alloca, etc.
+
+	* c-parse.y (stmts): Accept either labels or unlabeled statements.
+	(lineno_labeled_stmt): New nonterminals.
+	(stmt_or_label, lineno_stmt_or_label): New nonterminals.
+	(stmts): Use lineno_stmt_or_label.
+	(stmt): Don't allow labels at this level.
+	Use lineno_labeled_stmt in place of lineno_stmt.
+
+	* cccp.c (default_include): Get rid of extra #endif.
+	Use CROSS_COMPILE, not CROSS.
+
+	* make-i386mach: New file.
+	* configure (i386-mach): Use that file.
+
+Mon Jul 29 09:10:13 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* tm-m88kluna.h (SYSTEM_INCLUDE_DIR): Define (also MACH).
+
+Sun Jul 28 16:15:39 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cccp.c (default_include): Use SYSTEM_INCLUDE_DIR.
+	Delete special cases for MACH, UNOS.
+	* tm-i386mach.h, tm-sun3mach.h, tm-crds.h (SYSTEM_INCLUDE_DIR): Define.
+
+	* cccp.c (default_include): Use CROSS_INCLUDE_DIR if cross-compiler.
+	* Makefile.in (cccp.o): Pass a definition for CROSS_INCLUDE_DIR.
+
+	* Makefile.in (gnulib1.null): New target.
+	(install-common, install-common-headers, install-cross-tools):
+	(install-cross-rest, install-float-h-cross): New targets.
+	(install-float-h): New target.
+	(install-cross, install-headers): Use them.
+	(tooldir): New variable.
+	(EXTRA_PASSES): New variable.
+
+	* sdbout.c (plain_type_1): Don't record the size in sdb_type_size
+	unless a tag is output.
+
+	* Makefile.in (install-cross): Install specs by copying.
+	Install either gcc or gcc-cross, whichever exists.
+	(native): Remove gcc from deps.
+	(start.encap): Add gcc to deps.
+	(all.cross): Add gcc-cross to deps.
+	(gcc-cross): Like gcc rule except different output file name.
+	(gcc-cross.o): Likewise.
+
+	* Makefile.in (EXTRA_PASSES): New variable.
+	Used for machines which have extra passes to run.
+	(install-cross): Install those programs.
+	(native): Compile them.
+
+	* c-parse.y: Support `foo:' before a close brace.
+	(label): New nonterminal.
+	(stmt): Use that.  Treat a label as a statement in itself.
+
+	* Makefile.in (gnulib*.portable): Rules deleted.
+	(GNULIB1, GNULIB2): Point directly at gnulib1, gnulib2.
+	(gnulib): Use GNULIB1, GNULIB2 directly both as deps
+	and to specify the input files.
+	(gnulib1.conv): Renamed from gnulib1.convert; no longer phony.
+	(gnulib*.target): Rules deleted.
+	make-hp9k320 (GNULIB1): Use gnulib1.conv.
+	(LIBCONVERT): Override.
+
+	* move-if-change: Use -f with rm and mv.
+
+	* Makefile.in (gnulib2.ready): No longer phony.
+
+Sat Jul 27 13:03:50 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* combine.c (can_combine_p): Don't use NEXT_INSN, in previous change.
+
+	* Makefile.in (class-c, objective-c): New targets.
+
+	* tm-i386.h (ASM_OUTPUT_ALIGN_CODE): Define it.
+	(ASM_OUTPUT_LOOP_ALIGN): Use ASM_OUTPUT_ALIGN_CODE.
+	* tm-i386gas.h, tm-i386vgas.h (ASM_OUTPUT_ALIGN_CODE): Override it.
+	(ASM_OUTPUT_LOOP_ALIGN): Definition deleted.
+
+	* fixincludes (memvar.h): Make two defs of CAT, one ANSI and one trad.
+
+	* expmed.c (emit_store_flag): Set ICODE only after CODE is right.
+
+Sat Jul 27 06:45:32 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* flow.c (insn_dead_p): Don't clobber NEEDED while ensuring that we
+	don't delete insns that set the frame or arg pointer.
+
+	* flow.c (flow_analysis, find_basic_blocks, propagate_block):
+	Use GET_RTX_CLASS.
+	
+Fri Jul 26 08:18:08 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* sdbout.c: Use <syms.h> for USG and provide a definition of
+	T_VOID if none existed.  Use ./gsyms.h for non-USG systems.
+	* gsyms.h: Renamed from syms.h.
+
+Fri Jul 26 22:47:53 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cccp.c (macroexpand): Fix error message syntax.
+
+	* Makefile.in (gnulib2.target): Add semicolon.
+
+Fri Jul 26 18:17:36 1991  Michael Meissner  (meissner at pogo.gnu.ai.mit.edu)
+
+	* make-mips (CC): Bump -Wf,-XNg option to 1500 to allow the MIPS
+	compiler to compile cc1plus.
+
+Fri Jul 26 14:42:35 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* c-parse.y (yylex): Don't use mbtowc to translate L'\0'.
+
+	* tm-m88ksvr4.h (CPP_SPEC): Specify SVR4 pre-assertions.
+
+Fri Jul 26 09:53:53 1991  Michael Meissner  (meissner at pogo.gnu.ai.mit.edu)
+
+	* Makefile.in (cplus_expr.o): Add missing dependencies, so cc1plus
+	can be built without first building cc1.
+
+Fri Jul 26 07:30:51 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (can_combine_p): Can't combine if DEST is used in an
+	insn in the range (succ, i3).
+
+	* expmed.c (store_bit_field): Don't use insv if the mode of its
+	input is narrower than the width of the field.
+	(store_fixed_bit_field): Handle value with MODE_FLOAT mode.
+	(extract_bit_field): Don't use extzv/extv if its output mode is
+	narrower that width of field.
+	(extract_bit_field): Handle returning MODE_FLOAT mode.
+
+	* reorg.c (steal_delay_list_from_target): Add new arg PNEW_THREAD.
+	Instead of redirecting jump, return its target in *PNEW_THREAD.
+	(fill_slots_from_thread): Pass &NEW_THREAD to
+	steal_delay_list_from_target.
+
+Thu Jul 25 21:57:42 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* sched.c: Correct tiemann's email address.
+	(schedule_block): Note that the values of leftover REG_DEAD notes
+	are meaningless.
+	(new_insn_dead_notes): If find an instruction that both uses and
+	sets dest, then no new REG_DEAD note is needed.
+	(update_links): When handling dest of last insn, no new REG_DEAD
+	note is needed if the last insn also uses its dest.
+
+Thu Jul 25 18:15:33 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* flow.c (regno_clobbered_at_setjmp): Don't blow up if no basic blocks.
+
+Thu Jul 25 16:55:57 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cse.c (invalidate, cse_insn): Don't use HASHREG directly.
+	(HASH): Substitute HASHREG in.
+	(HASHREG): Deleted.
+
+	* tm-i386mach.h: New file.
+	* configure (i386-mach): Use that.
+
+	* tm-i386isc.h: New file, copied from 1.40.
+
+	* i386.md (jump, indirect_jump, tablejump, return):
+	Use ASM_OUTPUT_ALIGN_CODE.
+	* tm-i386gas.h, tm-i386vgas.h (ASM_OUTPUT_LOOP_ALIGN):
+	Override the usual definition.
+
+	* rtl.h (FUNCTION_FLAGS_USES_PIC_OFFSET_TABLE): Fix typo.
+
+Thu Jul 25 16:25:52 1991  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* out-m88k.c (legitimize_address): Note use of addressing base.
+	(m88k_layout_frame): Establish PIC addressing base as needed.
+
+	* tm-m88kdgux.h (GPLUSPLUS_INCLUDE_DIR): Specify.
+
+Thu Jul 25 07:54:36 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* rtl.h (FUNCTION_FLAGS_USES_PIC_OFFSET_TABLE): Defined.
+
+	* integrate.c (expand_inline_function): Propagate the value of
+	FUNCTION_FLAGS_USES_PIC_OFFSET_TABLE.
+
+	* function.h (struct function): Add new field USES_PIC_OFFSET_TABLE
+	to structure.  Leave it to md files to initialize this field.
+	* expr.h (current_function_uses_pic_offset_table): New declaration.
+	* function.c ({save,restore}_tree_status): Save and restore
+	CURRENT_FUNCTION_USES_PIC_OFFSET_TABLE to/from this slot.
+	* out-sparc.c (legitimize_pic_address): Set
+	CURRENT_FUNCTION_USES_PIC_OFFSET_TABLE when appropriate.
+	(finalize_pic): If the current function does not use the PIC offset
+	table, there's no need to emit the PIC prologue.
+
+Wed Jul 24 13:54:41 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* tm-m68k.h (NOTICE_UPDATE_CC):
+	Calls clear status even if value in address reg.
+
+	* tm-i386gas.h, tm-i386vgas.h (ASM_OUTPUT_ALIGN_CODE): Align with NOPs.
+
+	* i386.md (andsi3): Don't use movzbl if op1 can't support it.
+
+Wed Jul 24 07:47:59 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* cplus-decl.c (finish_decl): Don't build a cleanup for an variable
+	that is TREE_EXTERNAL.
+
+Tue Jul 23 20:48:23 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* make-mips: Delete rules for saber C.
+	* Makefile.in (STAGESTUFF, gnulib2.ready): Undo last change.
+
+	* tm-vax.h (LIB_SPEC): Supply missing close braces.
+
+Tue Jul 23 14:03:10 1991  Michael Meissner  (meissner at osf.org)
+
+	* protoize.c (toplevel): If FULL_PROTOTYPES is defined, assume that
+	the system provides full prototypes, and include stdlib.h and
+	unistd.h.
+	(toplevel): If _POSIX_SOURCE is defined, wait takes a pointer to an
+	int, even if the system is otherwise BSD.
+	(toplevel): If NO_CONST_IN_SYSCALL and __STDC__ is defined, assume
+	the system takes char *'s instead of const char *'s.
+	(process_aux_info_file, edit_file): Always pass 3 arguments to open,
+	to allow the NO_CONST_IN_SYSCALL macro to properly cast the
+	arguments.
+
+	* make-decrose (ALL): Make sure Makefile is rebuilt if either
+	Makefile.in or make-decrose changes.
+	(BUILD, SYSTEM_INCLUDES, LDFLAGS): Add BUILD variable to retarget
+	which build is used.
+	(CPP_ABORT): Don't define abort=fancy_abort here, do it in
+	tm-mips.h.
+	(INSTALL): Use installbsd program, since install uses System V
+	semantics on OSF/1.
+	(LANGUAGES): Rename collect-osf to collect.
+	(CFLAGS, XCFLAGS): Make CFLAGS use standard args and use XCFLAGS to
+	add additional arguments.
+	(libdir, bindir, mandir): Define to current install values.
+	(cplus-lex.o): Work around problems with 1.39 bootstrap compiler
+	producing bad stabs for certain inlines.
+	(osf-main.c): Add a simple G++ constructor/destructor to gnulib.
+
+	* make-mips (ALL): Make Makefile depend on Makefile.in and
+	make-mips.
+	(CFLAGS, XCFLAGS): Make CFLAGS use standard args and use XCFLAGS to
+	add additional arguments.
+	(CC): Add -Wf,-XNg500 switch to compile with due to the MIPS
+	compiler having fixed size tables.
+	(SABER_*): Add rules to run saber-C.
+
+	* mips.md (movsi_ulw): Allow unaligned register->register moves,
+	which is caused by the optimizer, and generate the normal reg move
+	code.  Also, turn loads from the stack into normal moves.
+	(movsi_usw): Turn stores into the stack into normal moves.
+	(call, call_value): Turn into a define_expand which takes three
+	arguments, to make Saber happier.
+
+	* tm-mips.h (abort macro): Define abort to be saber_stop if running
+	under Saber C.
+	(__PTR_TO_INT, __INT_TO_PTR): Define as casts if running on a MIPS
+	machine instead of with subtraction, in an attempt to quiet Saber C.
+	(ASM_MODIFY_SPEC): Run mips-tfile after the assembler, needs
+	corresponding gcc.c change to enable.
+
+	* tm-decrose.h (ASM_SPEC): Pass -v switch to gas as well as mips
+	assembler.
+	(ASM_MODIFY_SPEC): Run mips-tfile if -mmips-as.
+	(LINK_SPEC): Pass -v switch to linker.
+	(LIB_SPEC): Redefine as just -lc.
+	(MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Undefine, use standard
+	libdir, bindir, and mandir in Makefile now.
+	(FULL_PROTOTYPES, NO_CONST_IN_SYSCALL): Define to get protoize
+	to compile cleanly.
+
+	* osf-main.c (new file): Provide simple constructor, destructor
+	capability to be linked into gnulib.
+
+	* collect-osf.c (various): General rewrite to improve speed and
+	portability.
+
+	* Makefile.in (CPLUS_OBJS): If CPLUS_INPUT is defined to be
+	cplus-input.o, compile it separately to work around problems with
+	bootstraping when it is included in cplus-lex.c.
+	(STAGESTUFF): Use $(LANGUAGES) instead of hard coded list of
+	languages, so make-xxx file can override, and provide others.
+	(gnulib2.ready): Make gnulib2 depend on all LANGUAGES targets, so
+	that if a target needs something else built, such as mips-tfile, it
+	will be.
+	(mostlyclean): Add missing -f to rm.
+	(install-dir): Use test to see if the directory exists before trying
+	to create it, and fail if the mkdir fails.
+	(install-headers): ditto.
+	(stage?, risky-stage?): ditto.
+	(install-cross): Install collect and mips-tfile if they are present.
+
+	* mips-tfile.c (toplevel, main): Add -I file option, which renames
+	the original output file to the given file.
+
+	* cplus-lex.c (toplevel): Include <assert.h> instead of "assert.h"
+	in order to avoid problems when including cplus-input.c, which also
+	uses <assert.h>.
+
+	* cplus-pt.c (toplevel): Move include of config.h before obstack.h
+	in case config.h defines some macros obstack.h uses such as
+	__PTR_TO_INT.
+
+Tue Jul 23 13:15:43 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* xm-i386.h, xm-i860.h, xm-spur.h, xm-tahoe.h: Use __builtin_alloca.
+
+Tue Jul 23 12:26:01 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* function.c (instantiate_virtual_regs_1): Change dubious code that
+	used to assign NEW to XEXP (x, 1) regardless of whether
+	validate_change accepted it to instead set XEXP (x, 0) back to OLD.
+	I.e., if the rtx is out of range and OBJECT is NULL, don't make any
+	change at all.
+
+	* out-sparc.c (compute_frame_size): If a function has any
+	stack-local objects, it's frame size is non-zero and space must be
+	reserved for the register window.
+
+	* loop.c (loop_optimize): Use get_max_uid to compute max_uid_for_loop.
+
+	* fold-const.c (size_int): Extend SIZE_TABLE's range from
+	0..HOST_BITS_PER_INT-1 to 0..2*HOST_BITS_PER_INT.
+
+	* integrate.c (expand_inline_function): Add minor efficiency
+	hack to not free all the temp slots as parameters are passed
+	from "caller" to "callee".
+
+	* integrate.c (expand_inline_function): If the inline function
+	returns its value via a structure_value_addr, we must prepare for
+	this to take place, even if the value is ignored by the caller.
+
+	* tm-decstatn.h (SIZE_TYPE): Define this to be "unsigned int".
+
+	* emit-rtl.c (try_split): If `split_insns' actually returns a SEQ
+	which is isomorphic to PAT, return TRIAL.
+
+	* out-sparc.c (eligible_for_epilogue_delay): FP register moves are
+	only eligible for leaf-function epilogue delay slots.
+
+Tue Jul 23 11:52:50 1991  Michael Meissner  (meissner at geech.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_symbol): Correct typo in getting static member
+	names.  The problem is DECL_ASSEMBLER_NAME returns a tree, and not a
+	char *.
+
+Tue Jul 23 07:10:41 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* varasm.c (immed_double_const): Use CONST_INT if MODE fits within
+	HOST_BITS_PER_INT, not BITS_PER_WORD.
+
+Mon Jul 22 21:37:03 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* fold-const.c (fold): Always preserve type after using const_binop.
+
+Mon Jul 22 18:34:55 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload): Fix typo in condition for reg_equiv_address
+	being set from reg_equiv_memory_loc; had X instead of XEXP (X, 0).
+
+Mon Jul 22 15:25:48 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gcc.c (process_command): -xnone turns off any -x option.
+
+	* tree.c (copy_chain): Deleted.
+	* integrate.c (copy_decl_tree): Use copy_list and copy_node.
+
+Mon Jul 22 11:35:47 1991  Michael Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+
+	* tree.c, tree.h: Fix typos in Jul 22 merge.
+
+Mon Jul 22 08:51:47 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (thread_jumps): Don't set CHANGED if the jump's label isn't
+	changing.
+
+Mon Jul 22 02:37:23 1991  Michael Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+
+	* version.c: Bumped to 1.94 because of significant changes to
+	cplus-* files.
+
+Sun Jul 21 18:45:57 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* toplev.c (rest_of_compilation):
+	Save and restore DECL_INITIAL if we use save_for_inline_copying.
+	* integrate.c (save_for_inline_copying): Really copy DECL_INITIAL.
+	Calling integrate_decl_tree doesn't do it; deleted that call.
+	(copy_decl_tree): New function.
+
+	* integrate.c (integrate_decl_tree): Renamed from copy_decl_tree.
+	(integrate_parm_decls): Renamed from copy_parm_decls.
+
+	* tree.c (copy_chain): New function.
+
+Sun Jul 21 06:43:23 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (tstsi): Add comment noting potential -m486 enhancement.
+	(SImode push): With -m486, don't push from MEM.
+	(addsi3): Don't use lea for three operand add if -m486.
+	(ashlsi3): Don't use lea for shift of 1 if -m486.
+	(zero_extendhisi2,zero_extendqihi2,zero_extendqisi2): If dest is
+	%eax, or if -m486, AND is faster than MOVZX.
+
+Sun Jul 21 06:27:33 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expmed.c (store_fixed_bit_field): Pass actual bit position (including
+	offset) to get_best_mode; also limit mode size to BITS_PER_WORD.
+	Use failure of get_best_mode to indicate that field spans word 
+	boundary.
+	Pass actual bit position to store_split_bit_field.
+	(store_split_bit_field): Accept actual bit position, hence handing
+	bitpos > BITS_PER_WORD.
+	Abort if BITPOS and BITSIZE don't cross exactly one word boundary.
+	Pass offset to store_fixed_bit_field; if register, use operand_subword;
+	else adjust offset for second word.
+	(extract_{fixed,split}_bit_field): Likewise.
+
+Sun Jul 21 06:11:55 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* All cplus-* files: DECL_VIRTUAL_P is no longer applied to
+	FUNCTION_DECLs.  Instead, to test if a function is virtual or not,
+	it suffices to test whether its DECL_VINDEX is non-NULL.  We use
+	ERROR_MARK_NODE as the placeholder for a FUNCTION_DECL we know will
+	be virtual, but for which we don't yet know the actual index.
+
+	* cplus-decl.c (define_function): Don't set up DECL_ASSEMBLER_NAME
+	until after having the chance to call through PFN.  Since `pushdecl'
+	now keys off of DECL_ASSEMBLER_NAME, we don't want to create
+	inadvertent aliases between builtin and library functions.
+
+	* cplus-typeck.c (build_modify_expr): We don't need to build a
+	SAVE_EXPR for a WITH_CLEANUP_EXPR.
+	(unary_complex_lvalue): For good measure, know how to deal with a
+	WITH_CLEANUP_EXPR inside a SAVE_EXPR.
+
+	* cplus-pt.c (uses_template_parms): Add handler for ARRAY_TYPE.
+
+	* cplus-method.c (do_inline_function_hair): Use TYPE_METHODS instead
+	of CLASSTYPE_METHOD_VEC for traversing all methods when looking for
+	inline functions.
+
+	* cplus-class.c (finish_struct_methods): Fix fencepost error if
+	there were no member functions except for ctors/dtors.
+
+Sun Jul 21 06:19:01 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* tree.h, output.h (current_function_calls_longjmp): New variable.
+	* function.c (top level): Define it.
+	(push_function_context): Save it.
+	(pop_function_context): Restore it.
+	(init_function_start): Initialize it.
+
+	* calls.c (expand_call): Set current_function_calls_longjmp if
+	this call is to `longjmp'.
+
+	* flow.c, global-alloc.c: Include output.h so that
+	FRAME_POINTER_REQUIRED can use current_function_calls_*.
+	* Makefile.in (flow.o,global-alloc.o): Includes output.h.
+
+	* rtl.h (FUNCTION_FLAGS_CALLS_LONGJMP): New macro.
+
+	* integrate.c (initialize_for_inline): Record
+	current_function_calls_lonjmp in `function_flags'.
+	(output_inline_function): Set current_function_calls_longjmp if
+	the inline code calls longjmp.
+
+	* function.h (struct function): New field `calls_longjmp'.
+
+	* out-i386.c (simple_386_epilogue):  Add function description.
+	Return 0 if NON_SAVING_SETJMP && `setjmp' is called in function.
+
+	* tm-i386v.h (NON_SAVING_SETJMP): New macro.
+	(FRAME_POINTER_REQUIRED): New macro.
+
+Sat Jul 20 12:25:56 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* tm-m88k.h (OPTIMIZATION_OPTIONS): Don't change flag_signed_bitfields.
+
+	* cccp.c (include_defaults) Use LOCAL_INCLUDE_DIR macro instead
+	of "/usr/local/include".  Provide default definition.
+
+	* cccp.c (include_defaults) Added INCLUDE_DEFAULTS macro to
+	provide complete control over default include directories.
+	Delete the special case for VMS.
+	* xm-vms.h (INCLUDE_DEFAULTS): Defined.
+
+	* proto-man: Renamed from proto-unproto.1.
+
+	* final.c (final_scan_insn): Do ASM_OUTPUT_LOOP_ALIGN only for real loop.
+
+Sat Jul 20 05:34:13 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+
+	* tree.h (tree_type): Use the MAXVAL slot for TYPE_METHODS.
+	* cplus-class.c (finish_struct): Methods are now chained with
+	TREE_CHAIN and placed in the TYPE_METHODS of their _TYPE node.
+	* cplus-dbxout.c (dbxout_type_methods): Use this fact, instead of
+	using more C++-specific knowledge.
+
+	* cplus-decl.c (init_decl_processing): Variable
+	`const_ptr_type_node' was not being initialized.  Same with
+	`const_string_type_node'.
+
+	* tree.h (DECL_PRINT_NAME): Marked for death.
+	(DECL_ASSEMBLER_NAME): Changed from a char* to a tree node.
+	All front-end files changed as necessary.
+
+	* cplus-tree.h (DECL_ORIGINAL_NAME): Deleted.  Now we use
+	DECL_NAME.
+	(DECL_NAME): No longer means the mangled name.  Now we use
+	DECL_ASSEMBLER_NAME for that purpose.
+	All cplus-* files changed as necessary.
+
+	* cplus-tree.c (lang_printable_name): Use a ring-buffer to hold
+	printable names instead of DECL_PRINT_NAME slot of a _DECL node.
+
+	* collect2.c: #define COLLECT, and let config.h provide definition
+	of macros.
+
+See file ChangeLog.3.
diff --git a/gcc/ChangeLog.5 b/gcc/ChangeLog.5
new file mode 100644
index 0000000..c6248db
--- /dev/null
+++ b/gcc/ChangeLog.5
@@ -0,0 +1,8954 @@
+Sun Jun 14 16:30:07 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.2.2 released.
+
+	* Makefile.in (gcc.xtar.Z): Don't give up if texinfo files not updated.
+	Just sleep to emphasize the message.
+
+	* i860.h (PREFERRED_RELOAD_CLASS): Avoid f regs for HI and QI if poss.
+
+	* protoize.c: Don't include wait.h.
+	(gen_aux_info_file): Test wait_status as in gcc.c.
+	Report fatal signals explicitly.  Report exit status.
+	* xm-next.h (wait): Definition deleted.
+
+	* sparc.c (print_operand): In `r' case, recognize any kind of zero.
+
+Sat Jun 13 02:51:10 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* va-sparc.h (va_arg): Handle all 8-byte types, not just double.
+
+Fri Jun 12 23:40:41 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* i860v4.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT):
+	Use `e' format, not `g' format.
+
+Fri Jun 12 12:52:48 1992  Tim Moore  (moore at fast.cs.utah.edu)
+
+	* pa.md (absdf2): Fix bug in output template.
+
+Fri Jun 12 10:25:25 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* ultrix.h (WCHAR_*):  Set to correct values.
+
+Fri Jun 12 10:07:43 1992  Michael Meissner  (meissner@osf.org)
+
+	* x-mips, x-mipsv, x-decstatn, x-iris (OLDCC): Add -Olimit 3000 to
+	bump the number of basic blocks that the MIPS compiler handles, so
+	that it doesn't issue warning messages saying to bump the limit.
+	Move the -O1 option here from X_CFLAGS, so that it doesn't
+	get passed when bootstraping.
+	(X_CFLAGS): Delete.
+
+Thu Jun 11 15:08:01 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* sparc.h (RETURN_IN_MEMORY): Do nothing for structs and unions.
+	(EXTRA_CONSTRAINT): During reload, accept pseudo reg for Q.
+
+	* va-sparc.h (va_arg): Handle unaligned doubles.
+
+	* fixincludes: Fix return type of `free' in malloc.h.
+	Recognize #define.NULL only at start of line.
+	In sys/types.h, find size_t only in a typedef.
+	In netdnet/dnetdb.h, don't add semicolon in wrong place.
+
+	* configure: Set use_collect2 to empty rather than unsetting.
+
+	* gstddef.h (__need_wchar_t): Fix typo in #undef.
+
+Wed Jun 10 04:30:01 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (process_command): In gcc_exec_prefix, machine precedes vers.
+
+	* i386sco4.h (CPP_SPEC): Don't redefine __STDC__.
+	fixincludes knows how to fix the conditionals in system headers.
+
+	* collect2.c (scan_prog_file): Initialize ldptr.
+
+	* dbxout.c (dbxout_symbol): Make tag precede typedef.
+
+	* configure: Initialize host, host_xm_file, host_xmake_file,
+	host_broken_install, and broken_install.
+
+	* Makefile.in (enquire.o): Add `./' when removing enquire.c.
+
+Tue Jun  9 20:52:05 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.2.1 released.
+
+	* Makefile.in (clean): Don't delete unprotoize.c.
+
+	* configure: Fix typo in modifying INSTALL variable in Makefile.
+
+Mon Jun  8 15:14:09 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.2 released.
+
+	* Makefile.in (extraclean): Delete *.rej and *.orig under config.
+	Delete *.xtar.
+	(dist): Update README *before* making tar file.
+	Fix quoting of error message about gcc.texi; exit if that test fails.
+	Don't print error messages from ln.
+
+	* assert.h [__cplusplus]: Use `extern "C"' around __eprintf decl.
+
+	* configure (rs6000-*-mach*, pyramid-*-*, mips-sgi-*):
+	Patterns made canonical.
+	(rs6000-*-mach*): Fix typo in `xmake_file'.
+
+	* configure (i386-*-osfrose*): Renamed from i386-osfrose*.
+
+	* Makefile.in (.NOEXPORT): Moved after `all'.
+	Comments put on separate lines.
+
+Mon Jun  8 18:33:01 1992  Michael Meissner  (meissner@osf.org)
+
+	* configure (mips-dec-osf*): Set xmake_file to x-mips.
+
+Sun Jun  7 15:55:34 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (set_spec): Fix braino in "appending" spec values.
+
+	* integrate.c (expand_inline_function): Fix dumb bug in last change.
+
+Sun Jun  7 07:16:25 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* romp.md: Disable two more define_splits during the first sched
+	pass until long-standing sched.c bug is fixed.		
+
+Thu Jun  4 16:49:56 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* reorg.c (dbr_schedule): Global registers are needed at function end.
+
+Sat Jun  6 17:07:16 1992  Torbjorn Granlund  (tege at david.ultra.nyu.edu)
+
+	* pyr.md (shift patterns): Declare output_shift.
+	(movdi, movdf): Declare output_move_double.
+
+Sat Jun  6 15:07:11 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (c-parse.o): Depend on c-parse.h.
+
+	* reload.c (find_reloads): Fix typo in format string.
+
+	* mips.c (override_options): BSD 4.3 does line buffering differently.
+
+	* Makefile.in (SYSCALLS.c.X): Put GCC output in file, not /dev/null.
+	(mostlyclean): Delete temp file.
+
+	* configure (handling broken_install): Add -c option.
+
+Sat Jun  6 11:34:00 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* gstdarg.h (va_arg): Fix typo incrementing AP.
+
+Sat Jun  6 16:27:18 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips-n5.h, mips-sysv.h: Include sys/param.h, not types.h.
+
+Fri Jun  5 19:00:36 1992  Howard Chu  (hyc@hanauma.jpl.nasa.gov)
+
+	* fx2800.h (ASM_OUTPUT_FUNCTION_PREFIX): Output a nop before
+	every function, to accomodate tdescs.  Also, save function
+	name in current_function_original_name for use in i860.c.
+	Also define OUTPUT_TDESC to get ABI-compliant tdesc info
+	generated for each function.
+
+	* i860.c (function_epilogue): Add code to output tdesc info
+	after each function.  Tdesc structure versions 1-4 are
+	supported.
+
+	* i860v4.h (ASM_FILE_END) [OUTPUT_TDESC]: Output a null tdesc entry
+	after the last function in a file.
+
+Fri Jun  5 19:03:22 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* collect2.c (main, scan_prog_file): Use bcopy, not memcpy.
+
+Fri Jun  5 16:27:18 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h, mips.c, mips.md: Undo June 3 changes.
+
+	* mips-n5.h, mips-sysv.h (getpagesize): If _SC_PAGE_SIZE is undefined,
+	use NBPC defined in sys/types.h.
+
+Thu Jun  4 14:36:43 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cse.c (delete_dead_from_cse): Don't delete anything inside a libcall.
+
+	* Makefile.in (install-libgcc): Depend on install-dir.
+
+	* c-lex.c (yylex): Suppress int out of range warning if -traditional.
+
+Thu Jun  4 23:34:05 1992  Howard Chu  (hyc@hanauma.jpl.nasa.gov)
+
+	* fx2800.h (DBX_OUTPUT_ENUM): Add missing argument, add a
+	missing semi-colon.
+	(ASM_OUTPUT_DOUBLE): undef definition from i860v4.h, replace
+	with definition used in i860.h.
+	(ASM_OUTPUT_FLOAT): same as above
+	Also undef MD_EXEC_PREFIX which is defined in i860v4.h.
+	Also define I860_STRICT_ABI_PROLOGUES for ABI-compliant function
+	prologues.
+
+Thu Jun  4 13:15:30 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* enquire.c (fake_f_rep): Use __extension__ to avoid pedantic warnings.
+
+	* cse.c (cse_process_notes): Don't stick VOIDmode into *_extract.
+
+	* c-decl.c (get_parm_info): For forward parm decls, check for
+	non-parm before checking TREE_ASM_WRITTEN.
+
+Thu Jun  4 13:57:47 1992  Tim Moore  (moore at defmacro.cs.utah.edu)
+
+	* pa.h (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Delete
+	FP_OR_SNAKE_FP_REGS (useless), add GENERAL_OR_FP_REGS,
+	GENERAL_OR_SNAKE_FP_REGS.
+	(ASM_DECLARE_FUNCTION_NAME): Handle DImode arguments correctly.
+	(PROFILE_BEFORE_PROLOGUE, FUNCTION_PROFILER): Do the same thing
+	for BSD and HPUX.
+	
+	* pa.c (output_function_prologue): Do profiling right (compatible
+	with HPUX).
+	(output_arg_descriptor): Handle DImode argument registers.
+
+Thu Jun  4 13:48:24 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+        * reload1.c (reload): Count reload register used by caller-save
+        handling in any basic block that contains a CALL_INSN.
+
+Thu Jun  4 09:23:19 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* i860v4.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT):  Remove leading 0r.
+	(ASM_OUTPUT_FLOAT):  Use .float (not .single).
+
+Fri Jun  5 14:58:43 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* pyr.h (REGNO_OK_FOR_{INDEX,BASE}): Correctly test reg_renumber.
+	* configure (pyramid): Turn it back on.
+
+Thu Jun  4 11:26:55 1992  Torbjorn Granlund  (tege@mole.gnu.ai.mit.edu)
+
+	* pa.c (output_move_double): Handle overlapping moves between
+	registers.
+
+Wed Jun  3 22:08:18 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fold-const.c (fold, NOP_EXPR case): Don't drop intermediate in
+	(unsigned int) (unsigned short) char-variable.
+
+Wed Jun  3 11:18:43 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* stdarg.h (va_arg):  Use casts to avoid doing (pedantically invalid)
+	arithmetic on `void *' values when __svr4__ is defined.
+
+Wed Jun  3 17:51:21 1992  Torbjorn Granlund  (tege@zevs.sics.se)
+
+	* longlong.h (sparc): Test symbol __sparcv8__ for sparc.h conformance.
+
+Wed Jun  3 16:22:38 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.c (print_operand): Correct typo.
+	(sparc_type_code): Correctly handle C int and float types.
+
+	* sparc.h (CONSTANT_ALIGNMENT): Align strings to 8 byte boundary.
+	(DATA_ALIGNMENT): Likewise for character arrays.
+
+	* i960.c (function_prologue): Fixed calculation of offsets for
+	compiler's register save area.
+
+	* sparc.md (mulsi3,mulsidi3,umulsidi3,divsi3,udivsi3): Patterns
+	added to support V8 sparc architectures.
+	* sparc.h (TARGET_DEFAULTS): Add -mv8 and -msparclite options.
+
+	* reload1.c (reload): If can't satisfy reload for a group of more
+	than two registers, then abort to avoid an infinite loop.
+	(count_possible_groups): Skip to last reg of group, not first reg
+	of next group.
+
+Wed Jun  3 14:35:00 1992  Tom Wood  (wood at gen-rtx)
+
+	* c-lex.c (yylex): Let skip_white_space handle \r.
+
+	* expr.c (expand_builtin, fsqrt case): Stabilize the argument in
+	case a library call is done.
+
+	* final.c (final_scan_insn): Function begin, and block begin/end
+	notes are "real" in that they depend on the current line number.
+
+Wed Jun  3 14:34:28 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.md (andsi3_internal2): Fix typo in previous change, to
+	use %3, the clobbered register, instead of %@, the assembler
+	temporary.
+	(iorsi3_internal2): Ditto.
+	(xorsi3_internal2): Ditto.
+
+	* mips.h (MIPS_VERSION): Bump Meissner version # to 20.
+	(final_prescan_insn): Add declaration.
+	(lui_int): Add declaration.
+	(FINAL_PRESCAN_INSN): Just call final_prescan_insn.
+
+	* mips.c (lui_int): New function, return true if value fits in a
+	LUI instruction.
+	(final_prescan_insn): Move the checking for filling the delay
+	slots here from the FINAL_PRESCAN_INSN macro.  If the safe
+	attribute is set, we do not need a NOP to fill a load delay slot.
+
+	* mips.md (safe attribute): New attribute to indicate that the
+	current insn is safe to fill a delay slot even if the register
+	operand(s) are set in the load instruction which has the delay
+	slot.  This is for and/ior/xor expansions that have a large
+	constant integer as operand[2].  The load of the constant can
+	overlap the load.
+	(andsi3, iorsi3, xorsi3): Replace logical define_insn's with
+	define_expand's that either map directly to the hardware
+	instruction, or have a clobbered register to load the large
+	constant into.  This is instead of using $1 to hold the
+	intermeidate value.  Set the safe attribute to yes for the cases
+	where we need to load the integer.  Add define_split's to break
+	the large logical operations into the separate pieces.
+
+Wed Jun  3 00:00:36 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (do_warning): Do just a warning, not an error.
+
+Tue Jun  2 17:30:09 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cse.c (cse_basic_block): When a jump becomes unconditional, 
+	check whether this caused TO to be deleted.
+
+Tue Jun  2 16:11:42 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+        * combine.c (subst, case IF_THEN_ELSE): Don't try reversing
+        something that isn't a comparison.
+
+Tue Jun  2 16:50:47 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* cccp.c (do_pragma): Don't warn about #pragma once if used in a
+	system header file.
+
+Tue Jun  2 15:21:07 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump Meissner version # to 19.
+	(ASM_OUTPUT_DOUBLE): Call mips_output_double.
+	(ASM_OUTPUT_FLOAT): Call mips_output_float.
+
+	* mips.c (mips_output_double): If REAL_VALUE_TO_TARGET_DOUBLE is
+	defined, use it to split the floating point value into 2 long
+	integers, and print them out in hex.  Otherwise use .double.
+	(mips_output_float): If REAL_VALUE_TO_TARGET_FLOAT is defined, use
+	it to split the floating point value into a long integer, and
+	print in out in hex.  Otherwise use .float.
+
+	* dec-osf1.h (new file): Config file for DEC's offical OSF/1
+	product (as opposed to the OSF/1 reference port from OSF).
+
+	* configure: Support mips-dec-osf1 target.
+	* config.sub: Support mips-dec-osf1 target.
+
+	* decstatn.h (CPP_PREDEFINES): If CPP_PREDEFINES is defined, don't
+	supply another definition.  Also, define _SYSTYPE_BSD.
+
+Mon Jun  1 00:04:01 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* gstdarg.h (va_list) [__svr4__]:  Typedef it to `void *'.
+	* va-sparc.h (__va___list) [__svr4__]:  Typedef this as `void *'.
+
+Sun May 31 15:26:32 1992  John F Carr  (jfc at Achates.mit.edu)
+
+	* calls.c (stack_arg_under_construction): New variable.
+	(store_one_arg): Set stack_arg_under_construction before calling
+	expand_expr if expand_expr might call a constructor to initialize
+	a stack argument.
+	(expand_call): Push the stack around function calls if
+	stack_arg_under_construction is nonzero.
+	Also copy structure_value_addr in that case.
+	Push the stack around an inline function if it makes calls
+	and there are outgoing arguments on the stack which must be preserved.
+	Move the call to expand_cleanups_to before that.
+	Do this stack adjustment before computing argument locations.
+
+Sun May 31 01:03:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* sdbout.c (sdbout_symbol): Test DECL_IGNORED_P only for
+	variables and types.
+	* dwarfout.c (output_decl): Never ignore a FUNCTION_DECL
+	even if DECL_IGNORED_P is set.
+
+Sat May 30 07:07:55 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.h, romp.h (FUNCTION_ARG): Fix typo in last change.
+
+	* combine.c (subst, significant_bits, simplify_comparison):
+	Only look at STORE_FLAG_VALUE if comparison result is integer.
+
+Fri May 29 18:04:45 1992  Ron Guilmette (rfg at ncd.com)
+
+        * dwarfout.c (output_decl):  Moved test for ERROR_MARK node out of
+	switch statement and added a test for DECL_IGNORED_P after that.
+        (dwarfout_file_scope_decl):  Check input node to see if it is an
+        ERROR_MARK before checking for DECL_IGNORED_P.  Also makes sure that
+        any node marked as DECL_IGNORED_P isn't also a function definition.
+
+Fri May 29 14:46:06 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* integrate.c (expand_inline_function):
+	Don't discard setting return value from a volatile source.
+
+	* c-decl.c (init_decl_processing): If traditional, strlen returns int.
+	(sizet_ftype_string): Deleted.
+
+	* expr.c (expand_builtin, fsqrt case): Return proper mode if arg error.
+
+Fri May 29 13:36:32 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.c (m88k_builtin_saveregs): Don't copy result to a register.
+
+	* m88k.h (FIXED_REGISTERS): Allow use of r1.
+	(REG_LEAF_ALLOC_ORDER): Choose r1 last.
+	(REG_ALLOC_ORDER): Choose r1 before any preserve register.
+	(ORDER_REGS_FOR_LOCAL_ALLOC): Switch between orderings.
+	* m88k.c (m88k_layout_frame): Save r30 when used as an ordinary
+	register.
+
+	* m88k.h (CHECK_FLOAT_VALUE): Delete, not needed.
+	* m88k.c (check_float_value): Delete, not needed.
+
+	* m88k.c (mostly_false_jump): Fix return check.
+
+	* m88k.md (mstore type): Delete.
+	(return, indirect_jump): These are jumps, not branches.
+	* m88k.c (eligible_for_epilogue_delay): No TYPE_MSTORE insns.
+
+Fri May 29 12:33:21 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload1.c (emit_reload_insns): Add missing arg to gen_input_reload.
+
+Fri May 29 06:43:15 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.h, romp.h (FUNCTION_ARG): Don't put variable-sized
+	operands in registers.
+
+	* explow.c (emit_stack_{save,restore}): Don't call validize_mem
+	on a null rtx.
+
+	* cse.c (cse_insn): Don't call canon_reg on entry from
+	hash table; instead, call it after we did the substitution.
+
+Thu May 28 18:47:00 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes (malloc.h): Allow space or tab btwn typedef and char.
+
+Thu May 28 17:35:37 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload_as_needed): Properly disable optional reload
+	that we can't do.
+	Don't abort if disabled reload uses a register we don't have.
+
+Thu May 28 14:43:01 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* next.c (get_directive_line): Declare it.
+
+	* defaults.h (ASM_OUTPUT_ASCII): Use unsigned chars.
+
+	* i860v4.h, i386v4.h, sparcv4.h	(ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE):
+	Use the override definitions only if word order matches host.
+
+Wed May 27 17:32:36 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* unroll.c (find_splittable_givs): When completely unrolling loop,
+	precompute giv value into a reg before loop if it is complex.
+
+	* sparc.c (singlemove_string): Handle SFmode CONST_DOUBLE.
+	* sparc.h (PREFERRED_RELOAD_CLASS): Don't allow reloads of
+	constants to FP registers, nor reloads of FP constants that won't
+	match the 'E' constraint.
+	* sparc.md (movsf-1): Add pattern to efficiently handle SFmode
+	constants.
+
+	* sparc.md (lo_sum:DI pattern): Use constraint "0" for operand 1.
+
+	* i960.h (OVERRIDE_OPTIONS): Disable function inlining.
+
+	* function.c (assign_parms): When MAYBE_REG_PARM_STACK_SPACE,
+	don't assume that register parameters already have a stack slot.
+	* i960 (*): Change all tests of current_functions_args_size from
+	48 to 0 due to above change.
+	* i960.md (*): Likewise.
+
+	* sparc.h (LONG_DOUBLE_TYPE_SIZE): Add ifdefed out definition.
+	(FIXED_REGISTERS): g4 is not a fixed register.
+	(RETURN_IN_MEMORY): Define.
+	(FUNCTION_ARG_PASS_BY_REFERENCE): Also pass TFmode by reference.
+
+	* fixincludes: Fix stdio.h and math.h for Ultrix 4.0.
+
+Tue May 26 15:29:21 1992  Brendan Kehoe  (brendan@cs.widener.edu)
+
+	* x-we32k: new file, need alloca.o
+	* xm-we32k.h [NO_SYS_SIGLIST]: define this
+	* we32k.h [STRICT_ALIGNMENT] define as `1'
+	[NO_WAIT_H]: also define this
+	* collect2.c [NO_WAIT_H]: don't include sys/wait.h if this is
+	defined.
+
+	* Makefile.in (clean): rm libgcc1.null.
+
+Wed May 27 15:36:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* real.h (REAL_VALUE_TO_TARGET_SINGLE): Test HOST_BITS_PER_WORD right.
+
+	* i386sco.h (SIZE_TYPE): New definition.
+
+	* c-typeck.c (build_binary_op): When shortening, handle case
+	where op0 and arg0 are different but have same width.  op1/arg1 too.
+
+	* toplev.c (compile_file): Cast xmalloc when arg to setvbuf.
+
+	* expmed.c (expand_divmod): Clear can_clobber_op0 if doing mod.
+
+	* Makefile.in (protoize.1, unprotoize.1): Delete target before mv'ing.
+	(mostlyclean): Delete tmp-unproto.1.
+
+	* sdbout.c (sdbout_symbol, sdbout_toplevel_data): Test DECL_IGNORED_P.
+	* dwarfout.c (dwarfout_file_scope_decl): Likewise.
+
+Wed May 27 13:48:36 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (ashldi3,ashrdi3,lshrdi3): Fix typo in comparison.
+
+Wed May 27 02:11:22 1992 Ron Guilmette (rfg at ncd.com)
+
+	* i386v4.h, i860v4.h, sparcv4.h: Include real.h.
+	(ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE):
+	New definitions, if host and target formats match.
+
+	* real.h (REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE):
+	Defined, but only if host and target formats match.
+
+Wed May 27 06:20:26 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload_as_needed): For asm insn, check all reload
+	insns for validity.
+	(emit_reload_insns, gen_input_reload): Remove previous change that
+	checked them here.
+	* recog.c (constrain_operands, case 'm', 'o', 'g'): Accept pseudo if
+	reload is in progress.
+
+Tue May 26 19:24:21 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (combinable_i3pat): Allow a hard register as the
+	destination even if SMALL_REGISTER_CLASSES if source is a CALL.
+
+	* emit-rtl.c (gen_lowpart_common): Fix handling of int->float
+	union conversions.
+
+Tue May 26 19:23:43 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* a29k.h (HARD_REGNO_MODE_OK): Don't let anything larger than
+	UNITS_PER_WORD be allocated to an odd numbered register.
+
+Tue May 26 15:22:27 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config.sub (defaulting the OS): Separate subversions with periods.
+
+	* limits.h: Fix condition for defining long-long macros, to suit libc.
+
+	* Makefile.in (specs): New target.
+	(gcc): Don't write `specs' here.
+	(start.encap): Depend on `specs'.
+	(all.cross): Depend on EXTRA_PARTS.
+	(rest.cross): New target.
+
+	* c-common.c (declare_function_name):
+	Set TREE_USED, not TREE_NO_UNUSED_WARNING.
+
+Tue May 26 04:52:53 1992  Michael Meissner  (meissner@osf.org)
+
+	* loop.c (loop_has_volatile): New static variable to record
+	whether the loop has any volatile references in it.
+	(prescan_loop): Set loop_has_volatile.
+	(check_dbra_loop): Don't reverse loop if there are any volatile
+	references in it.
+
+Mon May 25 16:04:08 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386gas.h (ASM_OUTPUT_OPCODE): Translate "repnz" to "repne".
+	* seq386gas.h (ASM_OUTPUT_OPCODE): Likewise.
+
+Mon May 25 15:53:31 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* optabs.c (emit_indirect_jump): Emit barrier here.
+	* stmt.c (expand_computed_goto): Not here.
+
+Mon May 25 06:22:59 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (canon_reg): Must call validate_change if insn has any	
+	MATCH_DUPs even if replacing a pseudo with another pseudo.
+
+	* explow.c (emit_stack_{save,restore)}: Call validize_mem on save area.
+
+	* combine.c (simplify_shift_const, case PLUS): Simplify cases where
+	the PLUS is just turning on bits that will be shifted out.
+
+	* emit-rtl.c (gen_lowpart_common): Add new case for single-word
+	float->integer conversion; all others already present.
+	Check for -fpretend-float in this and the other cases.
+
+	* stmt.c (expand_goto): Fix typo in previous change.
+
+	* reload1.c (gen_input_reload): When checking for validity of
+	reloads made for asms, also check the constraints.
+
+	* explow.c (allocate_dynamic_stack_space): Don't add to size
+	if we aren't going to need to align the size.
+
+	* fold-const.c (fold, case *_DIV_EXPR): Fold (a * C1) / C2 for
+	some C1 and C2.
+
+Sun May 24 14:07:53 1992  Ron Guilmette (rfg at ncd.com)
+
+	* toplev.c (main):
+	Fix typo setting use_gdb_dbx_extensions in xcoff case.
+
+	* c-decl.c (pushdecl):  Call `build_type_copy' rather than calling
+	`c_build_type_variant' to duplicate a type.
+
+Sun May 24 16:56:09 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload): Refine setting of basic_block_needs.
+
+Sun May 24 15:43:08 1992  John F Carr  (jfc at Achates.mit.edu)
+
+	* combine.c (try_combine): Don't split an insn if that would move
+	a use of a register across a set of the same register.
+
+Sun May 24 14:50:38 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reg-stack.c (constrain_asm_operands): Ignore constraint letters
+	following '#' in each alternative.
+
+Sun May 24 02:28:45 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (pexecute): New alternative definition for OS2.
+	Take SEARCH_FLAG as arg instead of FUNC.
+	(execute): Change call to pexecute.
+
+	* toplev.c (main): Don't run ps for -dm if on OS2.
+
+	* cccp.c (main): Use PATH_SEPARATOR computing num_dirs.
+	(path_include): Likewise, setting q.
+
+	* gcc.c: Include sys/file.h.
+
+	* Makefile.in (extraclean): Delete install1.texi.
+
+Sat May 23 14:14:06 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* crtstuff.c (__do_global_ctors) [not INVOKE__main]: Make body empty.
+
+	* fold-const.c (float_error): Renamed from const_binop_error.
+	(const_binop, fold_convert):
+	Call set_float_handler around REAL_VALUE_TRUNCATE.
+
+	* Makefile.in ($(srcdir)/INSTALL): New target.
+	(doc): Depend on that.
+	($(srcdir)/gcc.info, $(srcdir)/cpp.info): Delete $(srcdir) from deps.
+	($(srcdir)/gcc.info): List all subfiles as deps.
+
+	* math-68881.h: Use %! instead of fpcr.
+
+	* install.sh: New file.
+	* configure: Changed install_with_cp to broken_install.
+	Test that flag for the host, not for the target.
+	If set, use install.sh.
+
+	* Makefile.in (EXTRA_HEADERS): New variable.
+	(USER_H): Use that.
+	* configure: Let alternatives set EXTRA_HEADERS via var header_files.
+	(m68k-...): Set header_files to install math-68881.h.
+
+	* Makefile.in (install-dir): Create (libsubdir)/include.
+	(install-limits-h, install-float-h): Depend on install-dir.
+
+	* Makefile.in (gcc.xtar): Warn if version in gcc.texi is old.
+
+	* genconfig.c (main): Add 1 when outputting MAX_RECOG_OPERANDS.
+	Initialize to just 9.
+
+	* gcc.c (MD_STARTFILE_PREFIX_1): New config macro.
+	(main): Use that like MD_STARTFILE_PREFIX.
+
+Sat May 23 08:13:38 1992  John F Carr  (jfc at Achates.mit.edu)
+
+	* reload1.c (reload): Copy MEM_IN_STRUCT_P flag when converting
+	pseudo register to equivalent memory location.
+
+Sat May 23 07:12:15 1992  Michael Meissner  (meissner@osf.org)
+
+	* x-iris (OLDCC): Add -cckr to turn off strict ANSI checking.
+
+	* mips.c (current_function_name): Delete definition, function.c
+	defines this and mips.h has a declaration.
+
+	* longlong.h (mips umul_ppmm): Use "d" constraint instead of "r", so
+	that we know the value is an integer register.
+
+Sat May 23 01:14:49 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* vax.h (PRINT_OPERAND): Undo last change.
+	Fix the comment instead.
+
+	* x-dpx2200, x-dpx2300 (ALLOCA_FINISH, AS): New variables.
+
+Fri May 22 01:52:22 1992  Ron Guilmette (rfg at ncd.com)
+
+	* svr4.h (MD_EXEC_PREFIX):  Added definition.
+
+	* protoize.c [POSIX]: Include dirent.h rather than sys/dir.h.
+	(_POSIX_SOURCE): Undef before defining.
+	(getpwd):  Change declaration to an `extern'.
+	(open):  Add declaration in the #if 0 section along with fprintf.
+	(link, unlink, access, execvp):  Add `extern' declarations.
+	(strlen):  Don't mention arg type in declaration.
+	(main):  Declare `params' as `const char *' to avoid botch when doing
+	test-protoize-simple.
+
+Fri May 22 17:15:36 1992  John F Carr  (jfc at Achates.mit.edu)
+
+	* calls.c (expand_call): Allocate stack space for arguments passed
+	in registers when OUTGOING_REG_PARM_STACK_SPACE is defined and
+	stack space has not been preallocated.
+
+Fri May 22 17:16:55 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (simplify_comparison): Try to reduce size of a
+	constant by changing comparison code; don't only do for 1 and -1.
+
+	* reload.h (reg_equiv_memory_loc): Declare.
+	* reload.c (refers_to_regno_for_reload_p): Use reg_equiv_memory_loc
+	instead of reg_equiv_mem and reg_equiv_address; look for constant.
+	(reg_overlap_mentioned_for_reload_p): LIkewise.
+	Use new function to check for MEM.
+	(refers_to_mem_for_reload_p): New function.
+	* reload1.c (reg_equiv_memory_loc): No longer static.
+
+Fri May 22 17:15:12 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* Makefile.in (test-protoize-simple):  Only delete files made by this
+	target (not the man pages!)
+	(test-protoize-simple):  Use -x option to avoid munging getopt.h.
+	(test-protoize-simple):  Fixed number of differences message.
+	(mostly-clean):  Properly remove all temp files relating to protoize/
+	unprotoize.
+	(install-common):  Force removal of previously installed g++ and c++
+	command files before trying to install new ones.
+
+	* spc-sol2.h:  New file.
+
+	* configure (sparc-*-solaris2*):  New configuration added.
+
+	* x-sparcv4 (X_CFLAGS):  Removed -Bstatic and -dn options.
+
+Fri May 22 15:30:05 1992  Chip Salzenberg  (chip@tct.com)
+
+	* c-common.c (declare_function_name): Move from c-decl.c.
+	Construct function names instead of expecting them as parameters.
+	Set TREE_READONLY and other attributes before calling pushdecl.
+	* c-decl.c (init_decl_processing, store_parm_decls): Calls changed.
+	(declare_function_name): Remove to c-common.c.
+
+	* cp-decl.c (init_decl_processing, store_parm_decls):
+	Call declare_function_name.
+
+Fri May 22 12:15:16 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparcv4.h (ASM_OUTPUT_CASE_LABEL): Define.
+
+Fri May 22 11:40:00 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* x-dpx2200, x-dpx2300 (CFLAGS): Definition deleted.
+
+	* c-decl.c, cp-decl.c (pushdecl): No shadow warnings if DECL_IGNORED_P.
+
+	* c-decl.c (declare_function_name):
+	Change names to __FUNCTION__ and __PRETTY_FUNCTION__
+
+	* vax.h (PRINT_OPERAND): In M case, don't complement after subtract 1.
+
+	* c-lex.c (yylex): Use pedwarn for overflow warnings.
+	Pedwarn if constant doesn't fit its type.
+
+Fri May 22 13:32:39 1992  Chip Salzenberg  (chip@tct.com)
+
+	* xcoffout.h (DBX_TYPE_DECL_STABS_CODE): Was DBX_DECL_STABS_CODE.
+
+Fri May 22 08:31:16 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* longlong.h (all machines): Define UMUL_TIME and UDIV_TIME.
+	Auxiliary formatting changes.
+	(header): Define __CLOBBER_CC and __AND_CLOBBER_CC.
+	(__sparc__ macros): Use them.
+	(__hppa__ add_ssaaaa,sub_ddmmss): Accept zero using `M' constraint.
+	(__hppa__ umul_ppmm): Define if _PA_RISC1_1.
+	(__mc88110__ umul_ppmm,udiv_qrnnd): New.
+	(__pyr__ umul_ppmm): Rewrite.
+	(default count_leading_zeros): Make it work for 64 bit longs.
+
+Fri May 22 06:27:31 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): Invalidate a volatile destination.
+
+	* expmed.c (expand_divmod): Correctly handle volatile operands.
+
+Fri May 22 06:26:50 1992  Chip Salzenberg  (chip@tct.com)
+
+	* rs6000.h (ASM_DECLARE_FUNCTION_NAME):  Use new function
+	xcoffout_declare_function.
+	* rs6000.c (output_epilog):  Shorten internal label.
+	(output_toc, output_function_profiler):  Likewise.
+	* xcoffout.c (xcoffout_declare_function):  New function, created
+	to localize knowledge of end-of-function internal label.
+	(xcoffout_end_epilogue): Shorten internal label.
+
+Thu May 21 15:31:42 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* reorg.c (relax_delay_slots): Clear INSN_FROM_TARGET_P when
+	remove insns from a delay slot.
+
+Thu May 21 13:54:15 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload.c (find_reloads):
+	Don't abort for % in last operand in asm_operands.
+
+	* alloca.c: Make symlink to master copy.
+
+	* stmt.c (expand_asm_operands): Count nclobbers properly.
+
+	* explow.c (allocate_dynamic_stack_space): Call mark_reg_pointer.
+
+	* c-parse.y (stmt, WHILE case): Start loop *after* parsing end test.
+	(do_stmt_start): Broken out from DO rule.
+	(stmt, DO case): Use that.
+	Add error-handler rule for parse error in end test.
+
+	* sparc.h (ADDITIONAL_REGISTER_NAMES): Support `cc'.
+
+	* c-lex.c (yylex): Pedwarn if `f' constant exceeds range of `float'.
+	Just once even if `f' appears twice.
+	This and the like warning for `double' are only if -pedantic.
+
+Thu May 21 08:46:30 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* Makefile.in (STAGESTUFF): Add stamp-proto.
+
+Thu May 21 04:04:33 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* svr3.h (LOCAL_LABEL_PREFIX): Override as a period.
+	(ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL):
+	Use LOCAL_LABEL_PREFIX.
+	* dpx2.h (LOCAL_LABEL_PREFIX): Definition deleted.
+	* tower-as.h (LOCAL_LABEL_PREFIX): Override as empty.
+
+Wed May 20 23:29:15 1992    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* config-gcc.com: Take care of situation if sources are NFS mounted.
+
+Wed May 20 14:35:10 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): Add additional validation check to
+	case that detects "if (foo) bar++;".
+
+Wed May 20 13:18:09 1992  Tim Moore  (moore@defmacro.cs.utah.edu)
+
+	* pa.md : Changed "xy" constraints to "x" constraints.
+	(movsi+6): Let "r" registers match too. Add define_split to change
+	into 2 insns if needed.
+	(decrement_and_branch_until_zero): New pattern.
+	* pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Fix for TYPE == 0.
+	(REGISTER_MOVE_COST): Do stuff for SNAKE_FP_REGS.
+	(PRINT_OPERAND_ADDRESS): Write CONST_INT case.
+
+Wed May 20 00:04:55 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* ns32k.h (NS32K_DISPLACEMENT_P): Fix typo.
+	* ns32k.md (extzv-1): New pattern for extracting from SImode.
+
+	* c++: -M suppresses -lg++.
+
+	* svr3.h (DO_GLOBAL_CTORS_BODY): Flush spurious #endif.
+
+	* reload1.c (gen_input_reload): New arg IS_ASM.  Can now return 0.
+	(emit_reload_insns): Pass new arg.  Error if it returns 0.
+
+	* configure: Use $cpu_type to default $tm_file.
+
+	* configure, config.sub: Correct we32 to we32k.
+	* configure (decstation-dec): Deleted--doesn't fit as machine alias.
+	(we32k): Add company default.
+	(fx2800): This is a machine alias, not a company default.
+
+	* configure (i386-*-bsd*, we32-att-sysv*, m68k-crds-unos*):
+	Missing *'s added at ends of config names.
+
+	* c-typeck.c (convert_arguments): Use warn_for_assignment to handle
+	-Wconversion.  Fix typo in width-mismatch test.
+
+	* svr3.h (ASM_GENERATE_INTERNAL_LABEL): Put a * at the front.
+
+Tue May 19 21:53:05 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (clean): Add -f in rm *.dvi.
+
+	* x-dpx2200, x-dpx2300 (CFLAGS): Make value conditional on CC.
+
+	* genattrtab.c (simplify_test_exp, evaluate_eq_attr):
+	Delete tests of current_alternative_string; they caused bugs.
+
+	* cross-test.c: New file.
+	* Makefile.in (cross-test, cross-test.o): New targets.
+	(all.cross): Depend on cross-test.
+
+	* c-decl.c (declare_function_name): Fix bug in previous change.
+
+Tue May 19 19:57:39 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* i960.h (FUNCTION_ARG_BOUNDARY): Return mode's alignment if type 0.
+
+	* calls.c (expand_call): Set MEM_IN_STRUCT_P for aggregate return
+	values in memory.
+
+	* function.c (locate_and_pad_parm): Use MAYBE_REG_PARM_STACK_SPACE
+	if defined.
+	* i960.c (i960_function_arg_advance): Put MUST_PASS_IN_STACK
+	parameters on the stack.
+	(i960_function_arg): Likewise.
+
+	* m68k.md (zero_extendqisi2+1): Add condition to exclude MEM/MEM
+	case which would require reloading.
+
+	* unroll.c: Delete incorrect Feb 26 1992 change.  
+	(copy_loop_body): For combined address givs, scale giv_inc by the
+	two giv's multiplicative factors if they are different.
+
+	* i960.md (zero_extendqisi2): Add comment.
+
+	* combine.c (apply_distributive_law): Don't distribute subregs
+	which change the mode class.
+
+	* fixincludes: Fix memory.h for SunOS.
+
+	* sparc.h (EXTRA_CC_MODES, EXTRA_CC_NAMES): Add CCFPEmode, for
+	compares which should generate exceptions for qNaNs.
+	(SELECT_CC_MODE): Use CCFPEmode for non EQ/NE FP compares.
+	* sparc.c (normal_comp_operator): Handle CCFPEmode.
+	(C_MODES, output_cbranch): Likewise.
+	* sparc.md (cmpdf, cmpsf): Modify patterns to use fcmpe for CCFPE
+	mode, and fcmp for CCFP mode.
+
+	From rfg:
+	* sparc.h: Declare output_move_quad, output_fp_move_quad and
+	output_floatsitf2.
+	* sparc.c (mem_aligned_8): New function.
+	(output_move_double): Clean up a little.  Call mem_aligned_8.
+	Load operands[] into register variables for efficiency.
+	(output_move_quad, output_fp_move_quad): New functions.
+	(output_floatsitf2): New function.
+	(print_operand): Support 'S' and 'T'.
+	* sparc.md (cmptf, movtf, extendsftf2, extenddftf2, trunctfsf2,
+	trunctfdf2, floatsitf2, fix_trunctfsi2, addtf3, subtf3, multf3,
+	divtf3, negtf2,	abstf2, sqrttf2):  New patterns added for TFmode
+	support.
+
+Tue May 19 19:34:10 1992    Ron Guilmette  (rfg at ncd.com)
+
+	* i386v4.h (DBX_REGISTER_NUMBER):  Fixed DWARF numbers for
+	x86 floating-point registers.
+
+Tue May 19 15:30:32 1992  Mats Lofkvist  (d87-mal@nada.kth.se)
+
+	* fixincludes: Fix return type of malloc and friends.
+
+Tue May 19 13:30:16 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config.sub (iris4d): If $os is some kind of Irix, don't clobber it.
+	Make the default -irix4.
+
+	* c-decl.c (declare_function_name): New arg printable_name.
+	Declare __PRINTABLE_NAME__.
+	(init_decl_processing, store_parm_decls): Pass the new arg.
+
+Tue May 19 09:50:01 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.c (output_options): Check profile_block_flag.
+	(m88k_layout_frame): Ditto.
+	(output_function_block_profiler): Save and restore the parameter
+	registers when calling __bb_init_func.
+	(output_block_profiler): Use @LPBX2.
+	
+	* m88k.h (CASE_VECTOR_INSNS): Choose a table of branch
+	instructions or addresses.  The latter is a win for the m88110.
+	(ASM_OUTPUT_CASE_END): Nothing needed for table of addresses.
+	(ASM_OUTPUT_ADDR_VEC_ELT): Use "br" or "word".
+	* m88k.md (casesi, casesi_jump): Updated.
+
+	* m88k.md (m88110 function units): Count in half cycles.
+
+	* m88k.md (call insns): Clobber rather than use r1.
+
+	* m88k.c (m88k_layout_frame): Fix m88k_fp_offset for zero case.
+
+Mon May 18 10:38:20 1992  Michael Meissner  (meissner@osf.org)
+
+	* iris.h (DEFAULT_SIGNED_CHAR): Define as 0 for compatibility with
+	IRIS defaults.  Patch from kevin@tamri.com (Kevin Dalley).
+
+	* xm-irix4.h (HAVE_VPRINTF): Define.
+
+	* x-iris (CLIB): Add -lmalloc.
+
+	* mips.md (fp_comp functional unit): Use adder functional unit
+	instead to more closely model MIPS behavior and make genattrtab
+	faster.
+	(transfer functional unit): Use memory functional unit instead.
+	(sqrt functional unit): Use divide functional unit instead.
+	(branch_zero): If CSE has folded a value which is constant, and
+	the jump would be omitted, do not eliminate putting a jump there.
+	This causes bad code to be generated when using gas, since the
+	previous instruction may be a load which had it's delay slot
+	filled by the 'branch', and the next instruction depends on the
+	value loaded.
+
+	* mips-at.c (whole file): Delete, no longer needed.
+
+	* mips-at.md (whole file): Delete, no longer needed.
+
+	* Makefile.in (stamp-attrtab): Remove $(srcdir) in front of
+	$(PREMADE_ATTRTAB) so that MIPS builds can be done in
+	subdirectories.
+
+	* t-decrose (PREMADE_ATTRTAB*): Don't define, genattrtab is now fast
+	enough that we don't have to save a pre-made genattrtab.c.
+	(LIBGCC1): Use libgcc1.null rule to turn off building libgcc1.a.
+
+	* t-decstatn (PREMADE_ATTRTAB*): Don't define, genattrtab is now fast
+	enough that we don't have to save a pre-made genattrtab.c.
+	(LIBGCC1): Use libgcc1.null rule to turn off building libgcc1.a.
+
+	* t-mips (PREMADE_ATTRTAB*): Don't define, genattrtab is now fast
+	enough that we don't have to save a pre-made genattrtab.c.
+	(LIBGCC1): Use libgcc1.null rule to turn off building libgcc1.a.
+
+	* mips.h (ASM_OUTPUT_CONSTRUCTOR,ASM_OUTPUT_DESTRUCTOR): Define.
+	Patch from wilson@cygnus.com.
+	(DEFAULT_SIGNED_CHAR): Don't define if already defined.
+
+Mon May 18 01:34:38 1992  Kayvan Sylvan    (kayvan@satyr.Sylvan.COM)
+
+	* svr3.h (DO_GLOBAL_CTORS_BODY): Start at end, if STACK_GROWS_DOWNWARD.
+
+Mon May 18 01:34:38 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (protoize.o, unprotoize.o):
+	Do nothing, but depend on stamp-proto.
+	(stamp-proto): New target.  Compile both protoize.o and unprotoize.o.
+
+	* configure (ns32k-ns-genix): Commented out.
+
+	* expmed.c (expand_mult): Use synth_mult even if not -O.
+
+Sun May 17 02:54:21 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (push_parm_decl): Pedantic warning if shadowing typedef.
+
+	* c-typeck.c (constant_expression_warning): New function.
+	(store_init_value): Call that.
+	* tree.h (TREE_CONSTANT_OVERFLOW): New flag.
+
+	* c-lex.c (yylex): "exceeds range" warning changed to pedwarn.
+	* c-decl.c (grokdeclarator): Likewise for duplicate keywords.
+
+	* c-typeck.c (build_unary_op): For increment operators,
+	test TREE_READONLY in operand, not the data type.
+
+	* unprotoize.c: New file.
+	* Makefile.in (unprotoize.o): Use that.
+
+	* c-decl.c (init_decl_processing): Make global decl for __NAME__.
+	(store_parm_decls): Make local decl for __NAME__.
+	(declare_function_name): Subroutine for that.
+	* toplev.c (rest_of_decl_compilation):
+	Ignore initialized statics if DECL_IGNORED_P is set.
+	* c-lex.c (yylex): Convert invisible initialized char array vars
+	to string constants.
+
+	* c-decl.c (get_parm_info): Change error message.
+
+Sat May 16 21:25:21 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* fold-const.c (fold): Do not fold X-X to 0 if X is floating point.
+
+	* cse.c (simplify_unary_operation): - -X simplifies to X even
+	with IEEE floating point.
+
+Sat May 16 14:14:50 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (clean): Delete *.dvi.
+	(distclean): Not here.
+
+	* Makefile.in (install-man): Ignore errors in all commands.
+
+	* combine.c (expand_compound_operation):
+	Don't simplify extending a const_int.
+
+	* ns32k.h (NS32K_DISPLACEMENT_P): New macro.
+	(INDIRECTABLE_1_ADDRESS_P): Use that.
+	* ns32k.md (addsi3): Likewise.
+
+Sat May 16 07:47:11 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.h: Override SET_ASM_OP in svr4.h. 
+
+Sat May 16 00:10:09 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-parse.y (parmlist_1): Add pedantic warning.
+
+Fri May 15 13:10:07 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure (i386-*-sco3.2v4*): New file.
+	* config.sub: For SCO, produce -sco3.2v2.  For ISC, make just -isc.
+
+	* dbxout.c (DBX_TYPE_DECL_STABS_CODE): Was DBX_DECL_STABS_CODE.
+	(DBX_OUTPUT_ENUM): Pass type as arg; make it do the whole job.
+
+	* svr4.h (ASM_BYTE_OP): Delete the tab.
+	(SET_ASM_OP): New definition.
+
+	* Makefile.in (gcc.xtar): Depend on doc.
+	(gcc.info, cpp.info): Duplicate rules deleted.
+
+	* i386.c (handle_pragma): Use SET_ASM_OP, not DEF_ASM_OP.
+
+Fri May 15 12:38:18 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* final.c (final_scan_insn): Don't set new_block when within a
+	sequence.  Set it after the last insn of the sequence.
+
+Fri May 15 07:23:09 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.c (m88k_handle_pragma_token, output_short_branch_defs):
+	Use SET_ASM_OP.
+
+Fri May 15 14:54:54 1992  Howard Chu (hyc@hanauma.jpl.nasa.gov)
+
+	* fx2800.h: Replace Ron Guilmette's version with working version.
+	Tested on Concentrix 2.1 and 2.2.
+
+	* i860.c (singlemove_string): Comparison of const0_rtx was in the
+	wrong place and would never be reached. Added check for negative
+	short int constants.
+	(output_size_for_block_move): call singlemove_string instead of
+	just emitting a mov.
+	(sfmode_constant_to_ulong): eliminate bogus "# error" directive.
+
+	* t-fx2800, x-fx2800, xm-fx2800.h: New files.
+	* configure: Corresponding changes.
+
+	* dbxout.c (DBX_MEMPARM_STABS_LETTER): New macro.
+	(dbxout_type): Check for DBX_OUTPUT_ENUM.
+	(dbxout_parms): Use DBX_MEMPARM_STABS_LETTER.
+	(dbxout_block): Check for DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC.
+
+Thu May 14 18:26:13 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparcv4.h (ASM_OUTPUT_ALIGN_JUMP_TABLE, ASM_OUTPUT_INTERNAL_LABEL,
+	ASM_GENERATE_INTERNAL_LABEL): Delete.
+
+Thu May 14 13:51:01 1992  Chip Salzenberg  (chip@tct.com)
+
+	* toplev.c (compile_file):  Use IO_BUFFER_SIZE for finput.
+	* xm-i386sco.h, xm-rs6000.h (IO_BUFFER_SIZE): Defined.
+
+Thu May 14 15:21:24 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
+
+	* config.sub: Recognize "none" as a valid os.
+
+Thu May 14 13:37:52 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* function.c (assign_parms): Make new stack slot if entry stack
+	slot isn't aligned as much as the mode wants.
+	And don't make an eqv for entry_parm in that case.
+	* sparc.c (output_move_double): Assume memory always ok for ldd, std
+	except when explicit offset from stack.
+
+	* c-decl.c (duplicate_decls):
+	Don't warn about qualifier mismatch for a function.
+
+	* c-decl.c (grokdeclarator): Give explicit list of types to promote
+	to int (and sometimes to unsigned int) for parms.
+
+	* Makefile.in (gcc.info, cpp.info): New targets.
+	(gcc.xtar): Depend on those.
+
+	* expmed.c (extract_bit_field): Don't fail to compute
+	all of a DImode value.
+
+	* dwarfout.c (SET_ASM_OP): Renamed from DEF_ASM_OP.
+	(ASM_OUTPUT_DEF): Use SET_ASM_OP.
+	* m88k.h (SET_ASM_OP): Renamed from DEF_ASM_OP.
+	* sparcv4.h (DEF_ASM_OP): No need for #undef.
+
+	* cccp.c (main): Handle -iprefix option instead of GCC_EXEC_PREFIX.
+	* gcc.c (process_command): Set gcc_exec_prefix.
+	(do_spec_1): Handle %I.
+	(default_compilers): Use %I when running cpp.
+
+	* protoize.c (savestring, savestring2): Change parm decls.
+
+	* i860.h, we32k.h (CONST_COSTS): Add missing parm OUTER_CODE.
+
+	* i386v4.h (DEF_ASM_OP, WEAK_ASM_OP): Deleted.
+
+Wed May 13 17:23:45 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* rtl.c (init_rtl): For byte_mode and word_mode, use first fit.
+
+	* protoize.c (munge_compile_params): Increase size of temp_params.
+
+Wed May 13 13:30:40 1992  Chip Salzenberg  (chip@tct.com)
+
+	* i386sco4.h: New file.
+
+Tue May 12 23:23:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_increment): A subreg as op0 is not necessarily a copy.
+	Treat subregs like regs.
+
+	* c-typeck.c (mark_addressable): Different messages for reg var
+	if reason is a use in a nested function.
+
+Tue May 12 14:28:22 1992  Tom Wood  (wood at gen-rtx)
+
+	* gcc.c (process_command): -save-temps uses a switches entry.
+
+Tue May 12 21:24:46 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* collect2.c (vfork): Declaration deleted.
+
+Tue May 12 06:16:49 1992  Niklas Hallqvist  (niklas@appli.se)
+
+	* tower-as.h: Added support for basic block profiling.
+
+Tue May 12 02:34:45 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* unx386.h (AS3_SHIFT_DOUBLE): New macro to print shift-double
+	opcodes.
+
+	* i386gas.h (AS3_SHIFT_DOUBLE): Redefine for GAS shift-double rules.
+	(GAS_MNEMONICS): New macro to force use of opcodes for GAS.
+	* seq386gas.h (AS3_SHIFT_DOUBLE,GAS_MNEMONICS): Likewise.
+
+	* i386.c (print_operand): Use GAS_MNEMONICS to choose long-long
+	opcode suffix.
+
+	* i386.md (ashldi3,ashrdi3,lshrdi3): Split into separate
+	recognizers for constant and variable shifts.
+	Use AS3_SHIFT_DOUBLE for variable shifts.
+	(all shifts and rotates): Don't allow memory operands for shift
+	count.
+	(bit set/clear): Don't allow non-CONST_INT constants as SET_SRC.
+	(movstrsi,cmpstrsi,strlensi): Allow any address_operand within
+	a MEM:BLK, not just register_operand.
+	(movstrsi): Rewrite to avoid match_dup on the address_operand
+	above.
+
+Mon May 11 23:31:47 1992  Mike Stump  (mrs@albert.gnu.ai.mit.edu)
+
+	Sun May 10 18:44:58  Per Bothner  (bothner@cygnus.com)
+
+	* dbxout.c (dbxout_type_methods):  Only emit final semi-colon
+	of method list of we have emitted any methods.  (The converse
+	of only emitting the operation name initially if needed.)
+
+Mon May 11 22:45:18 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c, reload1.c: Use reg_overlap_mentioned_for_reload_p and
+	refers_to_regno_for_reload_p instead of the normal versions.
+	* reload.c (reg_overlap_mentioned_for_reload_p): New function.
+
+Mon May 11 22:44:50 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* integrate.c (expand_inline_function):  Copy LABEL_NAMEs to new
+	copies of CODE_LABELs.
+	* tree.c (decl_function_context, decl_type_context):  Renamed `fndecl'
+	formal parameter to `decl' throughout these functions.
+
+Mon May 11 18:43:45 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* cccp.c: (deps_file): Deleted.
+	(main): Do not open deps_file until needed.
+	Check error status of dep_stream and stdout more carefully.
+	(timestamp): New function; avoids calling localtime unless needed.
+	(special_symbol, initialize_builtins): Use new timestamp function.
+
+Mon May 11 20:48:26 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* genix.h: Added #error, since this hasn't been updated.
+
+Mon May 11 14:33:32 1992  Ron Guilmette (rfg at ncd.com)
+
+	* dwarfout.c (is_pseudo_reg):  New function.
+	(location_attribute):  Use `is_pseudo_reg'.
+	(location_or_const_value_attribute):  Use DECL_INCOMING_RTL as the
+	basis for forming the location decsriptor for any register parameter
+	which was optimized into non-exitance.
+
+	* dwarfout.c (DWARF_VERSION):  New (default) definition.
+	(ASM_OUTPUT_DWARF_STACK_OP, ASM_OUTPUT_DWARF_FMT_BYTE,
+	ASM_OUTPUT_DWARF_TYPE_MODIFIER, ASM_OUTPUT_DWARF_DATA1):  Output tab
+	before ASM_BYTE_OP.
+	(ASM_OUTPUT_DWARF_ADDR_CONST):  Encapsulate all statements in a
+	`do { ... } while (0)'
+	(data_member_location_attribute, bit_offset_attribute):  Both fixed
+	to use alignment of declared type of field as the "containing object"
+	size.
+	(location_or_const_value_attribute):  Fixed to use DECL_INCOMING_RTL
+	only for parms passed in memory.
+	(output_decl):  Don't output DIEs for externals if DWARF_VERSION == 1.
+
+Sun May 10 17:18:33 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pa.h (CPP_PREDEFINES): Define for BSD here.
+	Remove conditional #ifdef hpux.
+	* pa-hpux.h, pa-ghpux.h (CPP_PREDEFINES): Define for hpux here.
+	* pa.h (CPP_SPEC): Define.
+
+Sun May 10 12:12:06 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (clean): Delete unprotoize.c.
+
+	* stmt.c (expand_decl): Set MEM_IN_STRUCT_P right in dynamic case.
+
+	* expr.c (get_inner_ref): Handle ARRAY_REF only if constant offset.
+	Handle non-PLUS_EXPR variable offset by assuming multiple of byte.
+	(expand_assignment, expand_expr): Fix gen_rtx added in last change.
+
+Sat May  9 02:39:58 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (get_inner_reference): New output arg poffset.
+	(expand_assignment, expand_expr): Pass new arg.  Handle nonzero offset.
+	(do_jump): Pass new arg but ignore result.
+	* fold-const.c (optimize_bit_field_compare, decode_field_reference):
+	Pass the new arg.  Just return 0 if offset comes back nonzero.
+
+	* reload.c (find_equiv_reg): Always test valueno >= 0.
+
+	* c-aux-info.c: Don't include param.h or errno.h; don't declare errno.
+
+	* rtl.c (read_rtx): Fix error in prev change.
+
+	* gcc.c (process_command): Handle -print-libgcc-file-name.
+	(main): Handle print_libgcc_file_name by printing the name.
+
+	* c-decl.c (finish_struct): Use TYPE_PRECISION to see whether 
+	bitfield's type is narrower than int, for promoting to int.
+
+	* cccp.c (struct definition, struct reflist): New field `rest_args'.
+	(struct arglist): Likewise.
+	(rest_extension, REST_EXTENSION_LENGTH): New var and macro.
+	(create_defnition): Recognize `...' and set flag in arglist.
+	(collect_expansion): Propagate flag to definition.
+	(macroexpand): Check flag when parsing arglist.
+	Special handling for ## next to a rest arg.
+	(macarg, macarg1): New arg rest_arg affects parsing in macarg1.
+
+	* genattrtab.c: Misc speedups and size reductions.
+	(check_attr_test): Set RTX_UNCHANGING_P for tests of const attributes.
+	Also for symbol_ref and comparison ops.
+	(make_canonical): Likewise.  Also check for degenerate cond values.
+	(operate_exp, simplify_cond, insert_right_side, evaluate_eq_attr):
+	Avoid copying in some cases.  Detect opportunities to simplify.
+	(compute_alternative_mask): Avoid atoi in most cases.
+	(copy_rtx_unchanging): New function.
+	(evaluate_eq_attr, simplify_test_exp): Use that.
+
+	* genattrtab.c (optimize_attrs): Work pattern by pattern,
+	doing all the work for each pattern before moving on.
+	Use temp_obstack during simplification, then copy the end result.
+	(temp_obstack): New obstack.
+	(clear_struct_flag): New subroutine.
+	(SIMPLIFY_TEST_EXP): Test MEM_IN_STRUCT_P.
+	(simplify_test_exp): Add code for debugging stop.
+	Avoid consing when possible; sometimes free storage.
+	Check MEM_IN_STRUCT_P.  Add shortcuts.
+
+	* genattrtab.c: Add simplification per alternative (not in use now).
+	(insn_n_alternatives): New array filled in by gen_insn.
+	(current_alternative_string): Nonzero means we are simplifying 
+	for a particular alternative.  Value is string for that numeral.
+	(SIMPLIFY_ALTERNATIVE): New macro simplifies eq_attr for alternative.
+	(evaluate_eq_attr, simplify_test_exp): Call SIMPLIFY_ALTERNATIVE.
+	(simplify_by_alternatives, count_sub_rtxs): New functions.
+
+	* genattrtab.c (attrs): Now an array indexed by first char.
+	(MAX_ATTRS_INDEX): Length of above.
+	(find_attr, main): Use that new data structure.
+
+	* genattrtab.c: Clarify use of hash-consing:
+	(hash_obstack): New obstack.
+	(attr_hash_add_rtx, attr_hash_add_string): Use hash_obstack.
+	(attr_rtx): Use hash_obstack if object is hashed.
+	Set RTX_INTEGRATED_P if object is hashed.
+	Don't hash object if subexpressions aren't hashed.
+	If making symbol_ref, hash the symbol name.
+	Uniquize const_int with value 0 or 1.
+	(attr_equal_p): New compare function; uses RTX_INTEGRATED_P.
+	(simplify_and_tree, simplify_or_tree, simplify_test_exp): Use that.
+	(attr_copy_rtx): New; copy all but hashed subexpressions.
+	(attr_eq): New function.
+	(attr_numeral): New function.
+	(check_attr_test): Use attr_eq.  Hash symbol_ref and comparison ops.
+	(check_attr_value): Return modified value.  Callers changed.
+	Hash symbol_ref.
+	(convert_set_attr_alternative): Use attr_eq and attr_numeral.
+	(convert_const_symbol_ref): Hash symbol_ref and eq.
+	(make_alternative_compare): Use attr_numeral.
+	(alternative_name): Fill in using hasher.
+	(copy_boolean): Hash a boolean expression if possible.
+
+Fri May  8 23:10:18 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (ashldi3,ashrdi3,lshrdi3): Fix typo in output template.
+
+	* cse.c (cse_insn): Handle SUBREGs in CLOBBERs.
+
+Fri May  8 14:55:17 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (PREMADE_ATTRTAB, PREMADE_ATTRTAB_MD): New vars.
+	(stamp-attrtab): Use them, to use presupplied file if suitable.
+	* t-mips, t-decstatn, t-decrose (PREMADE_ATTRTAB, PREMADE_ATTRTAB_MD):
+	Defined.
+	* mips-at.md, mips-at.c: New files.
+
+	* c-common.c (shorten_compare): Extend "always 0" warning
+	to fencepost case with le or ge.
+
+	* cccp.c (pass_thru_directive): Don't output a newline.
+	(initialize_builtins): Add explicit newlines in sprintfs.
+
+Fri May  8 14:49:12 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.md (adddi3): Force -32768 into a register, since the
+	define_insn's won't accept that one value.
+	(all attributes): Where an attribute is set to the same value in all
+	alternatives, don't use the alternative notation, since it will make
+	genattrtab somewhat faster.
+
+	* rtl.c (read_rtx): Use the current obstack to read in strings,
+	rather than repeated malloc/realloc's.
+
+Thu May  7 18:41:03 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* calls.c (expand_call): Never set must_preallocate if no stack args.
+
+Thu May  7 16:52:56 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pa1*: New names for pa1.1*.
+	* configure: Corresponding changes.
+
+	* m68k.md (u?mulsidi3): Don't permit immediates for operand 2.
+	(u?mulsidi3 recognizers): Split into immediate/nonimmediate cases.
+	* m68k.md ({zero,sign}_extend recognizers): Remove `n' from constraint
+	if predicate doesn't permit constants.
+
+Thu May  7 15:42:32 1992  Michael Collison  (collison at osf.org)
+
+	* i386rose.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE): Fix these to
+	avoid printing NaNs, and infinity.
+	(SUBTARGET_SWITCHES): Add OSF dependent switches for half-pic
+	support.
+	(MASK_HALF_PIC, TARGET_HALF_PIC): Likewise.
+	(CC1_SPEC): Map pic-none, pic-lib, pic-extern and pic-calls
+	to appropriate half-pic compiler switches.
+	(LINK_SPEC): If not -noshrlib or -pic-none, pass -warn_nopic.
+	Allow user to pass -noshrlib directly.
+	(OPTIMIZATION_OPTIONS): Customize levels for OSF.
+	(CONSTANT_ADDRESS_P: Add check to determine if we have a
+	half-pic constant.
+	(ENCODE_SECTION_INFO): Check to see if we have a half-pic
+	declaration.
+	(ASM_DECLARE_OBJECT_NAME): Output the label (definition) for a
+	object and check to see if it is half-pic.
+	(ASM_DECLARE_FUNCTION_NAME): Likewise but for functions.
+
+Thu May  7 15:56:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload.c (find_reloads): Remover unterm comment from recent changes.
+
+	* genattrtab.c (compute_alternative_mask): Usually bypass atoi.
+
+Thu May  7 15:56:51 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* genattrtab.c (fill_attr): Do nothing for constant attribute.
+	(check_attr_test): Set unchanging flag for constant attribute.
+	(write_test_expr): Expand constant attributes here.
+
+Thu May  7 06:01:46 1992  Michael Meissner  (meissner@osf.org)
+
+	* decrose.h (CPP_SPEC): Fix typo in last change.
+
+Wed May  6 17:39:31 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* convex.h (HAVE_STRERROR, vfprintf, WTERMSIG, WEXITSTATUS): Deleted.
+
+	* dbxout.c (dbxout_type): Don't repeat a cross-reference
+	merely because full is nonzero.
+
+	* calls.c (expand_call):
+	Avoid rounding error testing copy_to_evaluate_size.
+
+	* xm-mipsbsdn.h: Renamed from xm-mipsbsdnews.h.
+	* xm-sun386.h: Renamed from xm-xm-i386sun.h.
+	* configure: Corresponding changes.
+
+Wed May  6 23:11:55 1992  John F Carr  (jfc at Achates.mit.edu)
+
+	* cse.c (simplify_binary_operation): Support MIN and MAX for
+	SImode and narrower integers.
+
+Wed May  6 17:25:37 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump Meissner version # to 18.
+	(mips_cpu_attr): New define, which is the mips_cpu variable recast
+	to the attr_cpu enumeration for mips.md.
+	(HALF_PIC_NUMBER_PTRS, HALF_PIC_NUMBER_REFS): Add dummy
+	definitions if halfpic.h is not included.
+
+	* mips.c (function_epilogue): Print half-pic stats if -mstats and
+	the stats are non-zero.
+
+	* mips.md (cpu attribute): Just use symbol_ref "mips_cpu_attr"
+	instead of a four way if statement.
+	(movsi_internal, movhi, movqi): Use 'z' constraint for fpsw, not 's'.
+
+	* halfpic.h (half_pic_number_ptrs): Add counter for the number of
+	pointers generated.
+	(half_pic_number_refs): Add counter for the number of references.
+
+	* halfpic.c (half_pic_number_ptrs): Add counter for the number of
+	pointers generated.
+	(half_pic_number_refs): Add counter for the number of references.
+	(half_pic_ptrs): Update new counters.
+
+	* decstatn.h (CPP_SPEC): Define __LANGUAGE_x__ and __LANGUAGE_x
+	where x is C_PLUS_PLUS, OBJECTIVE_C, C, or ASSEMBLY.  Fix
+	undef'ing LANGUAGE_C for .S files.
+	(HALF_PIC_PREFIX): Define as '$Lp.'.
+
+	* decstatn.h (CPP_SPEC): Define __LANGUAGE_x__ and __LANGUAGE_x
+	where x is C_PLUS_PLUS, OBJECTIVE_C, C, or ASSEMBLY.
+
+	* mips-tfile.c (toplevel): Don't define anything in the standard
+	headers, such as open, etc.
+	(add_procedure): Delete unused variable orig_fdb.
+
+	* mips-tdump.c (toplevel): Don't define anything in the standard
+	headers, such as open, etc.
+
+	* collect2.c (main): Don't pass -f<xxx> switches to GCC when
+	building the constructor table.
+	(write_c_file): Put extern in front of all external declarations.
+	(scan_prog_file, COFF varient): On ECOFF systems, check whether
+	the header pointer is non-NULL before using it.
+
+	* cp-lex.c (store_pending_inline): Cast obstack_copy arg to char *.
+	(copy_lang_decl): Cast bcopy args to char *.
+
+Wed May  6 13:28:58 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* i960.h, i960.c (hard_regno_mode_ok): Use unsigned int not short.
+
+	* Makefile.in (USER_H): Add va-i960.h.
+
+Wed May  6 07:31:54 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* explow.c (emit_stack_{save,restore}): New functions.
+	* expr.h: Declare them and enum save_level.
+	* calls.c (expand_call): Call emit_stack_save.
+	* expr.c (expand_builtin, case BUILT_IN_ALLOCA): Likewise.
+	* function.c (delete_handlers): Make test for insn that sets
+	a slot more general.
+	(expand_function_end): Call emit_stack_{save,restore}.
+	* stmt.c (declare_nonlocal_label): Call emit_stack_save.
+	(expand_goto_internal): Likewise.
+	(expand_goto): Likewise.
+	Copy slots so they don't get instantiated incorrectly; also
+	update use of virtual regs and frame pointer.
+	(expand_end_bindings): Call emit_stack_restore.
+	(expand_decl): Call emit_stack_save.
+	Set current_function_calls_alloca when allocating variable-sized
+	objects.
+	* rs6000.md ({save,restore}_stack_{block,function,nonlocal}): New.
+
+Tue May  5 13:17:29 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* configure (a29k-*-*, i960-*-*): New default configurations.
+
+	* i960.c, i960.h, i960.md, xm-i960.h, va-i960.h: New files.
+
+	* gstdarg.h, gvarargs.h: Include va-i960.h for i960.
+
+	* calls.c (expand_call): Call REG_PARM_STACK_SPACE once and save
+	result.  Add code to Use new macros MAYBE_REG_PARM_STACK_SPACE and
+	FINAL_REG_PARM_STACK_SPACE.
+	(store_one_arg): New parameter reg_parm_stack_space.
+	* function.c (assign_parms): Use MAYBE_REG_PARM_STACK_SPACE.
+
+	* cse.c (NONZERO_BASE_PLUS_P): Don't consider arg pointer by itself
+	to be non-zero, because it isn't on the i960.
+
+	* dbxout.c (dbxout_symbol): Use decl_function_context not
+	TREE_PERMANENT to identify function local statics.
+
+	* integrate.c (copy_rtx_and_substitute): Also remap SYMBOL_REFs
+	that point to LABEL_REFs in the constant pool.
+
+	* expr.c (expand_expr, PLUS case): Canonicalize MULT
+	when associating a constant.
+
+Tue May  5 12:56:29 1992  Torbjorn Granlund  (tege@mole.gnu.ai.mit.edu)
+
+	* pa.c (singlemove_string): Make it global.
+	* pa.md: Add high:DI and lo_sum:DI patterns.
+
+Tue May  5 12:04:56 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_array_ref): Require int index *after* promotion.
+
+	* convex.h (REG_OK_FOR_{BASE,INDEX}_P): Virtual regs that will
+	turn into stack_pointer_rtx are not valid for indexing.
+
+	* config.sub: NeXT is BSD, not SysV.
+
+	* att386.h (ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL):
+	Undef before defining.
+
+	* dbxout.c (dbxout_parms): Handle invisible reference parms.
+
+Tue May  5 22:48:54 1992  Niklas Hallqvist  (niklas@appli.se)
+
+	* Makefile.in (test-protoize-simple):
+	Change tmp-protoize* to tmp-proto*.
+	(mostlyclean): Remove that temporary file.
+
+Tue May  5 09:35:30 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.c (print_operand): Handle VOIDmode CONST_DOUBLE correctly.
+
+	* reload.c (find_reloads): Recompute `code' before preferred_class.
+
+Mon May  4 00:23:29 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* svr3.h (ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL):
+	Added definitions appropriate for most svr3 systems.
+
+	* protoize.c (volatile):  Define to nothing if !defined(__STDC__).
+	(setjmp, longjmp):  Declared external if not defined as pp-macro.
+	(include_defaults):  Fix type of `fname' field.
+	(compiler_file_name):  Fixed type.
+	(savestring):  Fixed type of `size' parameter.
+	(savestring2):  New function.
+	(string_list_cons):  Removed trailing blanks from parm declaration.
+	(find_file):  Moved comments out of formal parm declarations area.
+	(munge_compile_params):  Fixed type of `temp_parms'.
+	(gen_aux_info_file):  Construct new filename using `savestring2'.
+	(find_extern_def):  Suppress annoying warnings about missing
+	definitions for extern functions.
+	(edit_fn_declaration):  Declare `clean_text_p' as `volatile' not as
+	`VOLATILE'.
+	(scan_for_missed_items):  Make text of warning more obvious.
+	(edit_file):  Make text of warning shorter.
+
+	* libgcc2.c (__builtin_new):  Changed arg type to `size_t'.  Moved
+	nested declaration of malloc out to file-scope.
+	(__builtin_vec_new):  Prototype preceeding function declarations.
+	(__builtin_vec_new, __builtin_vec_delete): Changed types of non-pointer
+	arguments and local variables to `size_t'.
+	(__clear_cache):  Use type `void *' variables to store addresses.
+	(__do_global_dtors):  Use unsigned type for counters.
+	(__main):  Add explicit type to declaration of `initialized'.
+
+Mon May  4 16:16:56 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* dwarfout.c (dwarfout_file_scope_decl): Ignore a global register
+	variable.
+
+Mon May  4 08:28:18 1992  Torbjorn Granlund  (tege@mole.gnu.ai.mit.edu)
+
+	* pa-ghpux.h, pa-hpux.h: #define HAVE_ATEXIT.
+
+	* genextract.c (print_path, main): Make the generated code use
+	`pat', not `insn', except for fatal_insn_not_found.  Remove
+	insn_code variable from generated code, and switch directly on
+	INSN_CODE (insn).
+
+	* hppa*: Rename to be unique in first 8 characters.
+	* configure: Corresponding changes.
+
+Mon May  4 00:20:39 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload.c (find_reloads): Compute preferred_class after
+	calling find_reloads_toplev or equivalent.
+
+	* vax.h (PRINT_OPERAND): Add codes M, h, b.
+
+	* ns32k.h (PREFERRED_RELOAD_CLASS): Change GEN_AND_MEM_REGS
+	to GENERAL_REGS.
+
+	* config.sub: Recognize we32 and 3b*.
+
+	* varasm.c (readonly_data_section): Move after data_section.
+
+	* Makefile.in (print-rtl.o): Compile also for host machine.
+	(genattrtab): Link in host's print-rtl.o.
+
+	* i386v4.h (ASM_OUTPUT_ALIGNED_LOCAL): Deleted.  Dfn in svr4.h is good.
+
+Sun May  3 21:39:22 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.h (RTX_COSTS): Add missing break.
+
+Sun May  3 19:40:50 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	From law:
+	* sparc.md (fp unit attributes): Change result ready delays to
+	match how the FP unit really works.
+
+	* sched.c (schedule_block): Don't move USE at the end of any block.
+
+	From rfg:
+	* sparc.c (handle_pragma_token):  Added new function (based on original
+	`handle_pragma_token' in i386.c).
+	* sparcv4.h (INIT_SECTION_PREAMBLE):  Definition added.
+	(PUSHSECTION_FORMAT):  Added leading tab.
+	(HANDLE_PRAGMA):  Added definition to handle #pragma weak (based on
+	original definition in i386v4.h).
+
+	From jfc:
+	* sched.c (insn_costs): New variable.
+	(insn_cost): Save cost of insn in insn_costs to avoid recomputation.
+	(sched_analyze_2): Handle UNSPEC_VOLATILE.
+	(schedule_insns): Init insn_costs.
+
+	* sparc.c (output_move_double): Correctly check for constant
+	DFmode addresses.  Assume that DFmode addresses with MEM_IN_STRUCT_P
+	set are always aligned.
+
+Sun May  3 16:52:06 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (PATH_SEPARATOR): New macro.  From Alex Zatsman.
+	(process_command): Use it when scanning a path.
+
+	* expr.c (expand_builtin): Cast icode to int for indexing.
+
+	* xm-i386dos.h: New file.
+	* configure.bat: Use that file.
+	* gcc.c (EXECUTABLE_SUFFIX): Remove special default for MSDOS.
+	(putenv): Remove conditionals for MSDOS, since HAVE_PUTENV now defined.
+
+	* c-typeck.c (build_array_ref): Promote after -Wchar-subscripts test.
+
+	* c-decl.c (builtin_function): If traditional and name is user-visible,
+	set DECL_BUILT_IN_NONANSI.
+
+	* cccp.c (PATH_SEPARATOR): Add default definition.
+	(main): Use that.
+
+Sun May  3 08:17:02 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pyr.h (FRAME_POINTER_REGNUM): Work around pyr cpp bug.
+
+	* xm-hppa.h (NO_SYS_SIGLIST): Define.
+
+Sat May  2 15:03:08 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* callc.c (emit_call_1): Restore inhibit_defer_pop after popping args.
+
+Thu Apr 30 20:00:00 1992  DJ Delorie (dj@ctron.com)
+
+	* configure.bat: Complete rewrite to use Makefile.in.
+	* Makefile.dos: File deleted.
+
+Thu Apr 30 23:38:00 1992  Per Bothner  (bothner@rtl.cygnus.com)
+
+	* xcoffout.h (DBX_FINISH_SYMBOL):  Use DECL_ASSEMBLER_NAME
+	instead of DECL_NAME when writing out a global symbol.
+	(Makes a big difference for C++ static class members.)
+
+Thu Apr 30 23:13:01 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold, comparisons): Don't call omit_one_operand in
+	a case where the operand isn't really being omitted.
+
+	* combine.c (distribute_notes, case REG_DEAD): Don't write a USE for
+	a partially-dead register if we already wrote one.
+
+Thu Apr 30 21:51:29 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* Makefile.in (enquire.o, install-common-headers): Make these work
+	when $(srcdir) is .
+
+	* c-decl.c (init_decl_processing): Use void_ftype_any as the type
+	for _exit, exit and abort.
+
+Wed Apr 29 21:42:30 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genattrtab.c (insn_name_ptr): Define so we could link with
+	debug_rtx.
+
+	* genattrtab.c (check_attr_test, simplify_test_exp): Copy expression
+	before setting as unchanging.
+	(make_canonical): Set result as unchanging after calling
+	convert_const_symbol_ref.
+	(evaluate_eq_attr): When returning original expression, set it
+	as unchanging.
+
+Wed Apr 29 13:30:33 1992  Michael Meissner  (meissner@osf.org)
+
+	* halfpic.c (half_pic_ptr): Allocate space for the NULL byte.
+
+Wed Apr 29 06:28:35 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* dwarfout.c (src_coords_attribute):  Don't #ifdef code based on
+	DWARF_DECL_COORDINATES.
+	(name_and_src_coords_attributes):  Do #ifdef calls to `lookup_filename'
+	and `src_coords_attribute' based on DWARF_DECL_COORDINATES.  Also,
+	pop out of .debug section temporarily while calling `lookup_filename'.
+
+Wed Apr 29 02:01:03 1992  Mike Stump  (mrs@albert.gnu.ai.mit.edu)
+
+	* Complete another Cygnus <--> FSF merge.
+
+	Tue Apr 28 19:24:52 1992  Mike Stump  (mrs at rtl.cygnus.com)
+
+	* cp-init.c (do_friend):  Handle overloaded and extern "C"
+	friends correctly.
+
+	Mon Apr 27 21:04:40 1992  Mike Stump  (mrs at rtl.cygnus.com)
+
+	* cp-search.c (build_vbase_vtables_init):  Don't set
+	flag_this_is_variable to -2 when not doing a ctor.
+
+	* cp-class.c (build_vbase_path): Don't unconditionally set
+	code to be a PLUS_EXPR.
+
+	Mon Apr 27 14:14:08 1992  Mike Stump  (mrs at rtl.cygnus.com)
+
+	* cp-decl.c (grokdeclarator):  Allow contructors to be friends.
+	Cannot find anything prohibiting it.
+
+	Mon Apr 27 13:26:20 1992  Mike Stump  (mrs at rtl.cygnus.com)
+
+	* cp-init.c (do_friend):  bullet proof handling of friends,
+	fixes problem introduced on Apr 26 18:24:35.
+
+	Sun Apr 26 23:18:24 1992  Mike Stump  (mrs at rtl.cygnus.com)
+
+	* cp-call.c (ideal_candidate):  Allow one to overload static
+	member functions without dumping core.
+
+	Sun Apr 26 18:44:57 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* cp-tree.c (break_out_calls): Call build1 instead of build for
+	trees with only one operand to avoid abort in build.
+
+	Sun Apr 26 18:24:35 1992  Mike Stump  (mrs at rtl.cygnus.com)
+
+	* cp-init.c (do_friend):  Allow extern "C" functions to be
+	friends.
+
+	Sat Apr 25 02:57:07 1992  Mike Stump  (mrs at rtl.cygnus.com)
+
+	* cp-*.[chy]:  Fix all pedantic warnings to be pedwarn.
+
+	Sat Apr 25 01:46:50 1992  Mike Stump  (mrs at rtl.cygnus.com)
+
+	* cp-tree.c (break_out_calls):  Handle NULL_TREE properly.
+
+	Fri Apr 24 23:49:39 1992  Mike Stump  (mrs at rtl.cygnus.com)
+
+	* cp-type2.c (store_init_value):  Provide an error message
+	about bad syntax instead of core dumping.
+
+	Fri Apr 24 16:46:03 1992  Mike Stump  (mrs at rtl.cygnus.com)
+
+	Fri Apr 24 18:55:45 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-parse.y (component_decl):  Fix small problem to take us
+	back down to 14 reduce/reduce errors.
+
+	Thu Apr 23 19:48:54 1992  Mike Stump  (mrs at rtl.cygnus.com)
+
+	Wed Apr 22 22:47:15 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-type2.c (readonly_warning_or_error):  Eliminate arbitrary
+        limit of 80 characters per warning message.
+
+	Thu Apr 23 04:14:59 1992  Mike Stump  (mrs at rtl.cygnus.com)
+
+	* cp-decl.c (grokdeclarator):  Handle const and volatile
+	member functions properly.
+
+Tue Apr 28 22:05:05 1992  Niklas Hallqvist  (niklas@appli.se)
+
+	* tower-as.h (svr3 support): Generic svr3.h included.
+	(SELECT_RTX_SECTION): m68k.h's version #undef'd in favour of svr3.h's.
+	(CPP_PREDEFINES): Overriding svr3.h version.
+	(STARTFILE_SPEC): Added crtbegin.o.
+	(ASM_OUTPUT_SOURCE_FILENAME): Added ugly section directives to get
+	rid of NCR assembler bug.
+	(ASM_OUTPUT_IDENT): #undef'd svr3.h version.
+	(NO_{DOLLAR,DOT}_IN_LABEL): Defined.
+	(ASM_LONG): Defined.
+	({INIT,FINI,CONST}_SECTION_ASM_OP): Overrides svr3.h versions.
+	(CTOR_LIST_{BEGIN,END}): New macros.
+	(BSS_SECTION_ASM_OP): New macro.
+	(ASM_OUTPUT_CONSTRUCTOR): New macro.
+	(ASM_OUTPUT_LABELREF): Redefined svr3.h version.
+
+	* tower.h (LIB_SPEC): Added -shlib support plus crtend.o.
+
+	* configure (m68k-ncr-sysv): Defined xmake_file and tmake_file.
+
+Tue Apr 28 21:27:10 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.md (floatsidf2, floatsisf2): Fix typo in last change.
+
+Tue Apr 28 18:21:02 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-actions.c: Include obstack.h, etc.
+	(util_obstack, util_firstobj): New obstack, and 1st object in it.
+	(init_objc): Init those two.
+	(encode_*): Rewrite to use util_obstack,   Callers changed.
+	(handle_class_ref, handle_impent): New subroutines, broken out
+	from finish_objc so each can use alloca (instead of utlbuf).
+	(utlbuf): Variable deleted.
+
+	* c-decl.c (init_decl_processing): Treat abort and exit as ANSI.
+	-traditional no longer affects ANSI builtins; use -fno-builtin.
+
+	* configure: Insert assignment of INSTALL where old one was.
+
+Tue Apr 28 17:14:57 1992  John F Carr  (jfc at Achates.mit.edu)
+
+	* vax.md (cmpdf, cmpsf): Use tstf/tstd if second argument is zero.
+	(movsi, movhi, movqi): Patterns changed to reflect different
+	space/time tradeoffs for modern VAXes.
+	(movstricthi, movstrictqi): New patterns.
+	(extv, extzv): Use rotl/bicl sequence when possible.
+
+Tue Apr 28 10:00:25 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips-tfile.c (read_line): Make read_line act like the assembler,
+	and use ';' to separate multiple logical lines.
+
+	* mips.h (MIPS_VERSION): Set Meissner version # to 17.
+	(MASK_DEBUG_C): Swap meaning of -mdebugc.
+	(ADDITIONAL_REGISTER_NAMES): Use 'cc' for the floating point status
+	register, so user asm's can clobber it.  Allow $fp for the frame
+	pointer in addition to fp and $30, and also $sp for the stack
+	pointer in addition to sp and $29.
+
+	* mips.c (gen_int_relational): Emit faster sequence for NE.
+	(mips_asm_file_start): Don't call data_section for gcc2_compiled.
+
+	* mips.md (branch define_delay): Specify all of the preconditions
+	correctly for branch likely (mips2) support.
+	(floatsidf2): Update dslots_load_total.  Support getting the
+	integer value from memory as well as from an integer register.
+	Fix the length attribute.
+	(floatsisf2): Ditto.
+	(All set from condition code patterns): Swap meaning of -mdebugc,
+	so that if used, it means support all of the set condition code
+	patterns as if the machine can do them equally well.  If not
+	-mdebugc, call gen_int_relational to generate an appropriate set
+	of INSNs.
+
+	* decrose.h (ASM_IDENTIFY_GCC): Define as null on OSF/1.
+	* encrose.h (ASM_IDENTIFY_GCC): Define as null on OSF/1.
+	* i386rose.h (ASM_IDENTIFY_GCC): Define as null on OSF/1.
+
+	* decrose.h (CPP_SPEC): If .S files, add an explicit
+	-ULANGUAGE_C to mimic the OSF GCC 1.39 behavior.
+
+Mon Apr 27 16:44:30 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* dwarf.h (AT_... values): Correct typos present in version 1.0.1
+	of the DWARF spec.  The values should be unchanged.
+
+	* dwarfout.c (data_member_location_attribute): Use INTEGER_CST.
+
+	* dwarfout.c (data_member_location_attribute): Use TYPE_MODE.
+	(bit_offset_attribute): Ditto.
+
+	* dwarfout.c (name_attribute): Add the tests back.
+
+	* m88k.h (WEAK_ASM_OP): Override svr4.h.
+
+Mon Apr 27 15:48:36 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* limits.h: Use _LIMITS_H___, not _LIMITS_H_, to protect contents.
+
+Mon Apr 27 15:15:25 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Set Meissner version # to 16.
+	(delay_type enum): Add DELAY_FCMP for specifing the
+	c.{eq,lt,le}.{d,s} delay.
+	(fpsw_register_operand): New declaration.
+	(gen_int_relational): New declaration.
+	(pc_or_label_operand): New declaration.
+	(MASK_DEBUG_C): Use -mdebugc for new relational code.
+	(REG_CLASS_FROM_LETTER): Use 'z' for fpsw register, not 's' which
+	is already used.
+	(EXTRA_CC_MODES): Add CC_REV_FPmode to handle fp comparisons,
+	which need to be reversed (!=).
+	(EXTRA_CC_NAMES): Add CC_REV_FP.
+	(SELECT_CC_MODE): Use SImode for all integer comparisons,
+	CC_REV_FP for floating point != comparisons.
+
+	* mips.c (internal_test enum): Move and rename the enumeration
+	used in gen_conditional to make the comparison RTL codes to
+	something that can be indexed out to top level.
+	(fpsw_register_operand): New function to return true if the
+	operand is the FP status register.
+	(pc_or_label_operand): New function to return true if the operand
+	is either a label_ref or the pc for if_then_else tests.
+	(mips_fill_delay_slot): Add support for DELAY_FCMP, the delay
+	after a floating point comparison is done and it can be tested.
+	(map_test_to_internal_test): New function to take a RTL code of a
+	comparison operator, and return the internal_test enumeration.
+	(gen_int_relational): New function to generate the appropriate
+	INSNS for comparing two integers for either branches, or the set
+	from condition code insns.
+	(gen_conditional_branch): Rewrite to not use the CISC condition
+	code register CC0, but instead generate the appropriate INSNs so
+	that the test can be scheduled independely of the branch.
+	(override_options): Use 'z' for the fpsw register, not 's'.  Only
+	allow the fp comparison condition codes in the fpsw register.  Do
+	not allow non float or int things in FP registers, even if
+	-mdebugh.  Don't allow ints in the fpsw.
+
+	* mips.md (various): Rewrite comparisons and branches so that we
+	do not use CC0, but instead put the comparison in a pseudo and
+	generate the appropriate branch instructions directly.  This
+	eliminates calls to the various b<xx> macros provided by the
+	assembler.  Change the type of integer comparisons from the
+	various CCxx modes used to SImode.  Make fp != use CC_REV_FPmode.
+	(mode attribute): Add FPSW mode for floating compare.
+	(fp_comp): New functional unit for comparing fp values.
+	(divmodsi4): No longer use -mdebugc to turn off divmodsi4.
+	(divsi3): Ditto.
+	(modsi3): Ditto.
+	(udivmodsi4): No longer use -mdebugc to turn off udivmodsi4.
+	(udivsi3): Ditto.
+	(umodsi3): Ditto.
+
+	* mips-gn5.h: Rename from mips-gnews5.h for MSDOS.
+	* mips-n5.h: Rename from mips-news5.h.
+	* xm-mipsbsdnews.h: Rename from xm-mipsnbsd.h.
+
+	* configure (mips-sony*): Handle the above changes.
+
+	* README-mips (whole file): Remove bogus patches, and update with
+	some common warnings about the MIPS.
+
+Mon Apr 27 12:41:21 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* unroll.c (find_splittable_givs): Don't split a giv combined with
+	a giv that was not reduced.
+
+	* c-parse.y (primary): Clear the TREE_USED flag of a block tree
+	put in a BIND_EXPR.
+	* print-tree.c (print_node): Print the block operand of a BIND_EXPR.
+
+	* flow.c (find_basic_blocks): Assume MEM source in jump insn makes
+	it an indirect jump.
+
+	* collect2.c (strip_flag, strip_file_name): New variables.
+	(main): Don't pass -s to the first ld call.  Pass it to the second
+	ld call, or else run strip.
+
+	* Makefile.in (bootstrap): Only build C compiler for stage1.
+
+	* sparc.h (GO_IF_LEGITIMATE_ADDRESS): Rewrite to accept SUBREGs.
+
+	* combine.c (force_to_mode): Correctly form mask from BITS.
+
+	* Makefile.in (bootstrap): Fix a typo (\n between b and ootstrap).
+
+Sun Apr 26 14:14:23 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* getattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
+	genextract.c, genflags.c, genoutput.c, genpeep.c, genrecog.c (main):
+	Move nested extern declaration of `read_rtx' out to file-scope.
+
+Sun Apr 26 21:41:33 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (varasm.o): Includes defaults.h.
+
+Sun Apr 26 21:15:30 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* enquire.c (f_rep, f_define): Handle NO_LONG_DOUBLE_IO.
+	(f_define): Print defn of union __convert_long_double, just once,
+	with #ifndef to protect it.
+	(fake_f_define): New function.
+
+Sat Apr 25 15:04:49 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* stmt.c (expand_end_case): Test DI index against range before casesi.
+	Don't truncate before calling do_tablejump.
+	Use expand_expr to turn RANGE into rtl.
+	* expr.c (do_tablejump): Convert to Pmode after testing vs range.
+
+	* stmt.c (expand_end_case): Delete test default_label != 0; always is.
+
+	* configure (i386-ibm-aix): Set install_with_cp.
+
+Fri Apr 24 21:32:38 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xm-spcv4.h: Renamrd from xm-sparcv4.h.
+	* configure: Changed accordingly.
+
+	* Makefile.in (unprotoize.o): Leave unprotoize.c around.
+
+	* c-common.c (decl_attributes): Change warnings to errors.
+
+Fri Apr 24 11:17:53 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* dwarf.h:  Added copyleft.
+	Revised to use enumerators instead of #defines.
+	Updated to conform to version 1.0.1 of the DWARF spec.
+	Added implementation-defined fundamental type codes for GCC
+	mode-specific types.
+
+	* dwarfout.c: Include defaults.h.
+	(getpwd):  Declare as `extern'.
+	(BITFIELD_OFFSET_BITS, BITFIELD_OFFSET_UNITS,
+	BITFIELD_OFFSET_WORDS_IN_UNITS):  Unnecessary definitions deleted.
+	(ASM_BYTE_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP):  Delete
+	leading tabs from definitions.
+	(PUSHSECTION_FORMAT):  Add leading tab to definition.
+	(*_LABEL):  Changed to all start with `.L' to internalize these
+	symbols for *all* svr4 assmeblers (including sparc).
+	(ASM_OUTPUT_POP_SECTION):  Add leading tab.
+	(ASM_OUTPUT_DWARF_TAG, ASM_OUTPUT_DWARF_ATTRIBUTE,
+	ASM_OUTPUT_DWARF_STACK_OP, ASM_OUTPUT_DWARF_FUND_TYPE,
+	ASM_OUTPUT_DWARF_FMT_BYTE, ASM_OUTPUT_DWARF_TYPE_MODIFIER):  Print
+	DWARF comments only if flag_verbose_asm set.
+	(ASM_OUTPUT_ASCII):  Moved to defaults.h
+	(tag_name):  Renamed `dwarf_tag_name' to avoid possible conflicts.
+	(dwarf_tag_name):  Updated for version 1.0.1 DWARF spec.
+	(attribute_name):  Renamed `dwarf_attr_name' to avert conflicts.
+	(dwarf_attr_name):  Updated for version 1.0.1 DWARF spec.
+	(stack_op_name): Renamed `dwarf_stack_op_name' to avert conflicts.
+	(format_byte_name): Renamed `dwarf_fmt_byte_name' to avert conflicts.
+	(fundamental_type_name): Renamed `dwarf_fund_type_name' to avoid
+	possible conflicts.
+	(dwarf_fund_type_name):  Added support for implementation-defined
+	GCC mode specific fundamental types codes (to support new `mode'
+	attribute).
+	(data_member_location_attribute):  Rewritten to avoid major lossage
+	primarily for little-endian targets.
+	(location_or_const_value_attribute):  Fixed comments and removed
+	spurious code.
+	(name_attribute):  Removed test for NULL name (now done in
+	`name_and_src_coords_attributes').
+	(byte_size_attribute):  Fixed to get size from DECL_BIT_FIELD_TYPE
+	for bit-fields.
+	(bit_offset_attribute):  Rewritten to avoid major lossage primarily
+	for little-endian targets.
+	(src_coords_attribute):  GNU-specific extension added.
+	(name_and_src_coords_attributes):  New function.
+	(output_entry_point_die, output_formal_parameter_die,
+	output_global_subroutine_die, output_global_variable_die,
+	output_inline_subroutine_die, output_label_die,
+	output_local_variable_die, output_member_die,
+	output_local_subroutine_die, output_typedef_die):  Call
+	`name_and_src_coords_attributes' rather than `name_attribute' for
+	all potentially-named declarations.
+	(output_global_subroutine_die, output_inline_subroutine_die,
+	output_local_subroutine_die, dwarfout_file_scope_decl):  Use
+	DECL_ASSEMBLER_NAME rather than DECL_NAME when referencing
+	assembly level names (e.g. in AT_low_pc attributes).
+	(output_type):  Revised to produce DWARF info for C++ member functions
+	even for classes with no constructors & destructors.
+
+	* flags.h (flag_verbose_asm):  Option flag added.
+	* toplev.c (flag_verbose_asm):  Option flag added.
+
+	* defaults.h: New file.
+	* varasm.c: Include defaults.h.
+	(ASM_OUTPUT_ASCII): Deleted.
+
+	* c-common.c (decl_attributes):  Call `type_for_mode' rather than
+	`type_for_size'.  Also, `break' after a matching mode is found.
+
+	* 3b1.h (ASM_OUTPUT_ASCII):  Tab before ASCII_DATA_ASM_OP.
+	* amix.h (ASM_OUTPUT_CASE_END):  Tab before SET_ASM_OP.
+	(ASM_OUTPUT_ASCII)  Tab before BYTE_ASM_OP.
+	* i860b.h (ASM_OUTPUT_ASCII):  Tab before ASCII_DATA_ASM_OP.
+	* i860v3.h (ASM_OUTPUT_ASCII):  Tab before BYTE_ASM_OP. 
+	* sparcv4.h (*_ASM_OP): Delete the initial tabs.
+
+	* assert.h:  Modified to treat source line numbers as `unsigned'.
+
+	* Makefile.in (test-protoize): New target.
+
+	* svr4.h (WEAK_ASM_OP):  Default svr4 definition added.
+	(ASM_DECLARE_FUNCTION_SIZE):  Use `assemble_name' to output
+	generated internal label.
+
+Thu Apr 23 11:31:58 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* optabs.c (emit_libcall_block): Correct code which determines
+	whether it is safe to emit an insn setting a pseudo before the block.
+
+Thu Apr 23 18:13:08 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (sleu): Finish Apr 21 change.
+
+Thu Apr 23 14:15:05 1992  Michael Meissner  (meissner@osf.org)
+
+	* Makefile.in (enquire.o): Delete enquire.c from the current
+	directory before moving it in from the source directory, unless
+	the current directory is the same as the source directory.  This
+	occurs if the user keeps GCC under source control, like RCS.
+	(install-common-headers): Ditto for byteorder.h.
+
+Thu Apr 23 12:39:36 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* amix.h (ASM_OUTPUT_CASE_END): Add missing \.
+
+Thu Apr 23 07:14:38 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_binary_operation, case MINUS): Don't do any
+	of the simplifications for IEEE floating-point.
+
+Wed Apr 22 23:20:59 1992  Mike Stump  (mrs@albert.gnu.ai.mit.edu)
+
+	Tue Apr 21 02:21:42 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-method.c (build_overload_value): Handle function names as
+	constant expressions for template arguments.  Also, make double
+	values work again as template arguments.
+
+	Mon Apr 20 17:08:17 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-call.c (ideal_candidate):  remove incorrect error message about
+	``ambiguous request for function from distinct base classes of
+	type'' when base and parent are switched.
+
+	Mon Apr 20 14:14:35 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* Makefile.in:  Now expect 15 reduce/reduce conflicts, instead of 14.
+
+	Mon Mar 16 14:02:09 1992  Chip Salzenberg  (chip at tct.com)
+
+	* cp-parse.y (maybe_attributes, attribute_list):  clone
+	from c-parse.y.
+	cp-parse.y:  call decl_attributes between start_decl and
+	finish_decl, and after grokfield.
+
+	Mon Apr 20 09:21:00 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* cp-tree.h (break_out_calls): Declare.
+
+	Mon Apr 20 08:29:16 1992  Michael Tiemann  (tiemann@cygnus.com)
+
+	* cp-tree.c (break_out_calls): New function.
+	(break_out_cleanups): Added comment.
+
+	* cp-typeck.c (build_modify_expr): Call `break_out_calls' instead of
+	`copy_to_permanent'.
+
+	Mon Apr 20 06:29:16 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-type2.c (my_friendly_abort):  New function, please see
+	Rational there.
+
+	* cp-*.[chy]:  Change all calls from abort to my_friendly_abort.
+
+	Mon Apr 20 05:45:08 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-cvt.c (build_up_reference):  Fix a latent const problem.
+
+	Mon Apr 20 03:08:12 1992  Michael Tiemann  (tiemann@cygnus.com)
+
+	* cp-decl.c (pop_from_top_level): Deleted duplicate code in C_C_D
+	restoration.
+
+	* cp-call.c (build_method_call): Call `error_with_aggr_type' with
+	correct number of arguments.
+
+	Sun Apr 19 18:39:25 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-class.c (finish_struct): Only provide a warning about
+	non-virtual destructors if the user asks for -Wall.
+
+	Sun Apr 19 17:36:16 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-typeck.c (build_modify_expr):  Make a deep copy of lhs, as
+	expr.c expects to be able to preexpand_calls on the conditional
+	parts without insuring that it would even be legal to do so.
+
+	* cp-tree.c (make_deep_copy):  Fix comment.
+
+	Fri Apr 17 04:55:18 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-cvt.c (convert_pointer_to):  Provide the user with a meaningful
+	error message instead of a core dump when dealing with bad syntax.
+
+	* cp-typeck.c (build_binary_op):  Make error message on undefined
+	operator call more readable.
+
+	* cp-decl.c (grok_reference_init):  Handle T& = const T&
+	error messages.
+
+	Thu Apr 16 18:59:15 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-typeck.c (convert_arguments): Disable code that auto converted
+	functions and methods to pointers and left them that way without error.
+
+	Thu Apr 16 17:35:13 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	Sat Apr  4 22:28:23 1992  Gerald Baumgartner  (gb at cs.purdue.edu)
+
+	* cp-decl.c (finish_decl): Call `abstract_virtuals_error'
+	when the return type of a method is an abstract class.
+
+	* cp-type2.c (abstract_virtuals_error): Print error message
+	for an invalid method declaration.
+
+	Thu Apr 16 16:18:35 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-decl2.c (lang_decode_option): Handle import by ignoring it.
+
+Wed Apr 22 19:46:44 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-actions.c (synth_id_with_class_suffix, finish_class):
+	Don't use utlbuf; alloca a buffer.
+	(forward_declare_categories): Use build_decl directly since
+	create_builtin_decl wants a string, not an id.
+
+	* Makefile.in (STAGESTUFF): Add USE_COLLECT2.
+
+	* dbxout.c (dbxout_symbol): Clean up last change.
+
+Wed Apr 22 17:06:16 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.c (gpc_reg_operand): Renamed from gen_reg_operand.
+	* rs6000.h (PREDICATE_CODES): Likewise.
+	* rs6000.md: Likewise.
+
+	* a29k.c (gpc_reg*_operand): Renamed from gen_reg*_operand.
+	* a29k.h (PREDICATE_CODES): Likewise.
+	* a29k.md: Likewise.
+
+	* romp.c (output_fpop): Extend workaround for RT FP codegen bug.
+
+Wed Apr 22 06:20:09 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* fold-const.c (fold, comparison cases): Use omit_one_operand to
+	yield a simplified result to avoid loosing a side-effect.
+
+Tue Apr 21 13:19:42 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_symbol): For TYPE_DECL, always make requisite tag
+	one way or another even if !have_used_extensions.
+
+	* configure: Specifically detect unrecognized options.
+
+Tue Apr 21 08:16:05 1992  Tom Wood  (wood  at dg-rtp.dg.com)
+ 
+	* c-convert.c (convert_to_integer): Don't distribute a truncation
+	down past an ABS_EXPR. 
+ 
+	* m88k.md (bxx insn): Choose bb0 over bb1 if the branch is likely
+	to fall-through (m88110 optimization).
+	* m88k.c (mostly_false_jump): New function.
+
+	* m88k.h (INIT_SECTION_ASM_OP): Define only for svr3 and svr4 targets.
+
+	* m88k.c (output_call): Use the insn address of the sequence.
+	* m88k.h (ADJUST_INSN_LENGTH): Account for space added at barriers
+	due to ASM_OUTPUT_ALIGN_CODE.
+
+Tue Apr 21 07:30:46 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (mark_jump_label, case MEM): New case to look for label
+	in a constant-pool entry.
+
+Tue Apr 21 00:41:39 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reg-stack.c (compare_for_stack_reg): link cc0 user and setter
+	before separating them.
+
+	* reorg.c (link_cc0_insns): Move function from here -
+	* emit-rtl.c (link_cc0_insns): to here.
+
+	* i386.h (TARGET_IEEE_FP): New macro.
+	(TARGET_SWITCHES): Add switches for ieee floating point support.
+	(EXTRA_CC_MODES,EXTRA_CC_NAMES): Add CCFPEQmode.
+	(SELECT_CC_MODE): Select CCFPEQmode for FP equality comparisons.
+	(i386_compare_gen*,i386_compare_op*): Declare new variables to
+	generate comparisons from within branch and sCC insns.
+	(RTX_COSTS): Fix argument name typo.
+
+	* i386.c (i386_compare_gen*,i386_compare_op*): Define variables here.
+	(notice_update_cc): Notice if a comparison involves FP values.
+	(output_float_compare): Add support for "unordered" compare.
+	Use output_fp_cc0_set to set flags after a compare.
+	(output_fp_cc0_set): New function.
+
+	* i386.md (tstM,cmpM): New expanders.  Don't generate RTL; just
+	save data for when cc0 user is generated.
+	(bCOND,sCOND): New expanders.  Generate the compare/test as well
+	as the bCOND or sCOND.
+
+	(tstsf,tstdf): Disable patterns if generating ieee compliant code.
+	(tstsf,tstdf,cmpsf,cmpdf): Use output_fp_cc0_set to set flags
+	after test.
+	Don't change cc_status here: that won't work with REG_CC_SETTER
+	and REG_CC_USER.
+
+	(all COMPAREs): Use CCmode as mode of a COMPARE.
+
+Mon Apr 20 11:17:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* limits.h (LONG_LONG_MIN, LONG_LONG_MAX, ULONG_LONG_MAX): New macros.
+
+	* configure: Clear out_file before the big case, like tm_file, etc.
+
+	* expr.c (expand_expr, case LABEL_DECL): Handle label from outer fcn.
+
+Mon Apr 20 10:17:49 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* x-m88kluna: Delete.
+	* x-m88kv3: Renamed from x-m88k.
+	* configure (m88k-*): Rearrange.
+
+Mon Apr 20 21:29:00 1992    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* config-gcc.com: Generate libgcc2.list from Makefile.in
+	* make-l2.com: Use libgcc2.list; supply gcc version number to gas.
+
+	* config-gacc.com: Generate linker options files from Makefile.in
+
+	* make-cc1.com: Use said linker options files instead of static 
+	list of files.
+	* make-cc1.com: Handle errors better.
+
+Mon Apr 20 10:05:34 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.md (divmodsi4, udivmodsi4): Remove unneeded PARALLEL.  Patch
+	from Richard Kenner.
+
+Mon Apr 20 08:38:26 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* expr.c (expand_expr, case CONSTRUCTOR): For static CONSTRUCTOR,
+	require a valid memory address only if modifier does.
+
+Sun Apr 19 15:09:01 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* genemit.c (gen_insn): Mode of SCRATCH must match in clobber lists.
+
+	* sched.c (add_dependence, remove_dependence): Moved from rtl.c.
+	* rtl.c: Functions deleted here.
+
+	* Make installation of collect2 automatic.
+	* configure: Define use_collect2 for all BSD and Mach and HP/UX
+	configurations, plus the ones below, and a few others.
+	* t-decrose, t-decstatn, t-encrose, t-i386rose, t-mips, t-next:
+	(EXTRA_PROGRAMS): Deleted.
+	* t-apollo68, t-convex, t-dpx2, t-rs6000: Files deleted.
+
+	* libgcc1.c (nongcc_SI_type): Renamed from SItype.
+
+	* recog.c (constrain_operands): Check only earlyclobbers that are REGs.
+
+	* m68k.h (TRANSFER_FROM_TRAMPOLINE): Delete comma in globalize cmd.
+
+	* m68k.md (movhi): Don't use switch_table_difference_label_flag
+	except in ports that need it.  (Again!)
+
+Sun Apr 19 14:06:59 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sched.c (sched_analyze_2): Add missing comment close.
+
+	* rtl.c (add_dependence): Make next point to last insn with
+	SCHED_GROUP_P set, not after the last insn with the bit set.
+
+Sun Apr 19 06:06:03 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genextract.c (walk_rtx): Fix typo in vector case.
+
+	* hppa.h (RTX_COSTS): Add new argument OUTER_CODE.
+
+	* Makefile.in (compare, compare3): Change $file to $$file.
+
+	* romp.h (CONST_CONSTS): Clean up formatting of definition.
+
+	* rs6000.md (extzv): Correct when we can use andi[lu].
+
+Sat Apr 18 21:56:20 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.md (ashldi3): Compact operand numbers.
+
+	From Jeffrey Law:
+	* sparc.md (ldd, std peepholes): New peepholes to recognize cases
+	where two ld (or st) insns could be replaced by a single ldd or std.
+	* sparc.c (registers_ok_for_ldd): New function.  Return true if the
+	given register pair is suitable for an ldd or std instruction.
+	(memory_ok_for_ldd): Likewise, but for memory locations.
+
+Sat Apr 18 17:22:32 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-lex.c (skip_white_space): Warn only for first carriage return.
+
+Sat Apr 18 10:08:45 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genemit.c (struct clobber_ent): New structure.
+	(gen_insn): See if the clobbers required to be added were seen
+	for another insn.
+	(output_add_clobbers): Write case statements for all insn codes
+	using a particular clobber pattern.
+	
+	* cse.c (mention_regs): Always retun a value.
+
+	* rs6000.md (call): Compact operand numbers.
+
+	* genextract.c: Now includes insn-config.h.
+	(struct extraction, struct code_ptr): New structures.
+	(gen_insn): Record what extractions are needed and compare with
+	those for previous insns.
+	(mark_operand_seen): Function deleted.
+	(walk_rtx): Use strings as path and just record; don't write.
+	(print_path): Use strings for paths.
+	(copystr): New function.
+	(main): Write out all extractions here.
+	* Makefile.in (genextract.o): Includes insn-config.h.
+
+	* hppa*.h: Change references from hp800* files to hppa*.
+
+	* rs6000.md (lshrdi3, ashrdi3): Fix typos.
+
+	* rs6000.md (extzv): Correctly install last change.
+
+Sat Apr 18 12:37:54 1992  John F Carr  (jfc at Achates.mit.edu)
+
+	* expmed.c (store_bit_field): Storing into a bitfield in memory
+	which is the size of a standard machine mode can be done with a
+	simple move instruction.
+
+	* c-lex.c (skip_white_space): carriage return (^M) is whitespace,
+	but warn about ^M if pedantic.
+
+	* cse.c (rtx_cost): New argument OUTER_CODE, the rtx code of the
+	expression in which the rtx argument is contained.
+	* expmed.c (init_expmed): Pass second argument to rtx_cost.
+	* optabs.c (expand_binop, expand_twoval_binop, emit_cmp_insn): Likewise.
+	* loop.c (init_loop, general_induction_var): Likewise.
+	* vax.c (vax_rtx_cost, vax_address_cost): New functions.
+	* vax.h (CONST_COSTS, RTX_COSTS, ADDRESS_COST): Call these
+	functions.
+	* romp.h (CONST_COSTS): Give constants different costs depending
+	on whether they can fit into a 2 byte instruction, a 4 byte
+	instruction, or would require insn splitting to use.
+	* i386.h (CONST_COSTS, RTX_COSTS): Move PLUS case to RTX_COSTS.
+	* m68k.h (CONST_COSTS): Constant in range -254..-136 is only cheap
+	in a move insn, not as an operand to some other instruction.
+	* config/*.h: Update machine descriptions to define CONST_COSTS
+	and RTX_COSTS macros with 3 arguments.
+
+Fri Apr 17 11:14:02 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c (safe_from_earlyclobber): New function.
+	* recog.c (constrain_operands): Verify that earlyclobber
+	operands don't conflict with inputs.
+
+	* combine.c (subst, case SUBREG): Don't fold paradoxical SUBREGs
+	of constants.
+
+	* cse.c (fold_rtx, case SUBREG): Extend previous change so it
+	folds widened operations with one operand a constant.
+
+	* expr.c (safe_from_p, case BIND_EXPR): Only look at operand 1.
+
+	* cse.c (fold_rtx, case SUBREG): Don't fold paradoxical SUBREGs.
+	Instead, when we have a narrowing SUBREG, see if it is narrowing
+	the result of a widened arithmetic operation.
+
+Fri Apr 17 09:16:56 1992  Charles Hannum  (mycroft@hal.gnu.ai.mit.edu)
+
+	* Makefile.in (install-dir): Don't use '-' prefix on continuation line.
+
+Fri Apr 17 06:52:00 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* toplev.c (rest_of_compilation):
+	If -Wreturn-type, don't stop before jump.c.
+
+	* calls.c (expand_call): Delete unused arg MODIFIER.
+	* expr.c: Arg deleted from calls (those which had it).
+
+	* ns32k.c (print_operand_address): Handle UTEK_ASM.
+	(print_operand): Handle NO_IMMEDIATE_PREFIX_IF_SYMBOLIC.
+	Abort if must get fp number as bits but cannot do so.
+	* ns32k.h (TRAMPOLINE_TEMPLATE): Use PUT_ABSOLUTE_PREFIX.
+	* ns32k.md (call, call_value): Handle ENCORE_ASM.
+	* encore.h (PRINT_OPERAND): Just call print_operand.
+	(CALL_MEMREF_IMPLICIT): Defined.
+
+	* config.sub: encore implies bsd, not sysv.
+
+	* stmt.c (expand_expr_stmt): Handle reference of volatile BLKmode.
+
+	* vax.md (indirect_jump): Delete the extra condition.
+
+	* configure (...-hpux): Set install_with_cp.
+
+	* jump.c (delete_insn): After a label, go past other deleted labels.
+
+	* m68k.md (movhi): Don't use switch_table_difference_label_flag
+	except in ports that need it.
+
+	* stmt.c (warn_if_unused_value): Don't warn for constant after comma.
+	Don't warn for volatile decl or ref.
+
+	* c-typeck.c (build_unary_op): ++ on void * warns if -Wpointer-arith.
+
+Thu Apr 16 22:56:20 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (enum block_move_type): New enumeration for classing what
+	type of block move is used when splitting the last store off.
+	(RTX_COSTS): Don't use -mdebugd to set multiply costs to 2.
+
+	* mips.c (output_movstrsi): Take an additional argument to determine
+	whether this block move is a normal block move, or one that has been
+	split.  For the split block moves, there are two parts -- the first
+	part is everything but the last store, and the second part is the
+	last store, suitable to fill a delay slot.
+
+	* mips.md (all define_splits): Don't do any define_split if
+	-mdebugd.
+	(movstrsi_internal*): Add support to split block moves into two
+	pieces, one that is everything except for the last store, and the
+	second piece, which is the last store that can fill a delay slot.
+
+Thu Apr 16 21:52:59 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* x-rs6k-mach: New file.
+	* configure (rs6000-*-mach): Use it.
+
+Thu Apr 16 21:52:17 1992  John F Carr  (jfc at Achates.mit.edu)
+
+	* cse.c (cse_end_of_basic_block): Fix test for infinite loop.
+
+Thu Apr 16 21:50:38 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* rs6000.h (bss_section): Delete.  No longer needed.
+
+	* a29k.c (print_operand, case 'F'): Always emit insn to fill empty
+	delay slot.
+
+Thu Apr 16 18:45:41 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* cse.c (simplify_ternary_operation): Correctly sign-extend result.
+
+Thu Apr 16 18:43:55 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-actions.c: Rename OBJC_NONUNIQUE_SELECTORS to
+	OBJC_SELECTORS_WITHOUT_LABELS.
+
+	* c-decl.c (duplicate_decls): Allow extern vs extern inline.
+
+	* c-parse.y (parmlist_or_identifiers_1): Use parmlist_1.
+	* c-decl.c (get_parm_info): Treat forward parm decls like nonparm
+	decls.
+
+	* m68k.md (movhi before dispatch table):
+	Set switch_table_difference_label_flag.
+	* 3b1.h, amix.h, m68ksgs.h (ASM_OUTPUT_CASE_END): Test that flag.
+	Declare the flag.
+
+	* m68k.c (output_function_prologue, print_operand_address): Add
+	HPUX_ASM conds.
+
+	* mips.c (output_block_move): If we get a case we can't handle,
+	don't print anything--just abort, because that implies a bug.
+
+	* c-decl.c (c_decode_option): -ansi sets flag_no_nonansi_builtin,
+	not flag_no_builtin.
+	(init_decl_processing): Check flag_no_nonansi_builtin for alloca, etc.
+
+	* dbxout.c (dbxout_symbol): Make pointer, not reference,
+	when variable's address is in a register.
+
+	* c-decl.c (c_decode_option): Ignore -Wimport, -Wno-import.
+
+Thu Apr 16 16:17:13 1992  Mike Stump  (mrs@mole.gnu.ai.mit.edu)
+
+	* merge in Cygnus changes...
+
+	Thu Apr 16 12:23:06 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-call.c (build_method_call): propagate const around to avoid an
+	incorrect error message.  This type of fix may now be necessary in
+	other parts of the compiler.  This solves all but one known const
+	problems.
+
+	Wed Apr 15 14:18:27 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-type2.c (readonly_warning_or_error):  because the compiler
+	is now warning about const alot more, for a release or two,
+	lets just warn about const problems, just in case it is a compiler
+	problem and not a user problem.
+	
+	* cp-cvt.c (build_up_reference): Lets get tougher on const problems
+	on COMPONENT_REFs.
+
+	Wed Apr 15 11:59:42 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* cp-decl.c (finish_function): Check for any debug info enabled,
+	not just DBX_DEBUG.
+
+	Wed Apr 15 10:03:36 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-cvt.c (build_up_reference): Propagate const and volatile
+	down into the type so error checking works better.
+
+	Tue Apr 14 11:44:32 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-decl.c (start_decl):  Shouldn't use flag_this_is_variable
+	to make what this points to const, but I don't have the heart
+	to do it right now.
+	
+	* cp-decl2.c (grokclassfn):  Don't use flag_this_is_variable
+	to make what this points to const.
+
+	* cp-typeck.c (convert_arguments):  Let build_up_reference handle
+	const errors correctly.  Removes April 10 change.
+	
+	* cp-cvt.c (build_up_reference):  Don't let people subvert const
+	when passing const argements to non-const functions.
+
+	* cp-tree.c (build_cplus_method_type): Don't use
+	flag_this_is_variable to make what this points to const.
+
+	From Wed Apr  1 12:00:59 1992  Chip Salzenberg  (chip at tct.com)
+
+        * cp-class.c (import_export_vtable): New function to set
+          TREE_PUBLIC and/or TREE_EXTERNAL on vtables.
+          (build_vtable): Use it.
+          (prepare_fresh_vtable): Use it.
+
+        * cp-decl.c (finish_decl): Don't assume that TREE_PUBLIC means
+          "exported"; it can mean "imported".  Decide with TREE_EXTERNAL.
+          (finish_function): Ditto.
+        * cp-decl2.c (write_vtable_entries): Ditto.
+          (finish_vtable_typedecl): Ditto.
+          (finish_vtable_vardecl): Ditto.
+          (finish_file): Ditto.
+
+        * cp-lex.c (set_vardecl_interface_info): Public objects always
+          have TREE_PUBLIC, whether exported or imported.
+        * cp-pt.c (instantiate_member_templates): Ditto.
+
+
+	Fri Apr 10 21:44:15 1992  Per Bothner  (bothner@cygnus.com)
+
+	* cp-method.c (build_overload_name): Mangle 'signed char'
+	as 'Sc' (i.e. differently from 'char'!).
+
+	Fri Apr 10 17:38:04 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-typeck.c (convert_arguments): don't allow people to wipe const.
+
+	Thu Apr  9 18:28:36 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-tree.h:  Add entry for $vb and $vf so that NO_DOLLAR_IN_LABEL
+	works.
+	* cp-class.c (finish_struct):  Use the new macros from cp-tree.h.
+	* cp-tree.c (layout_basetypes):  Use the new macros from cp-tree.h.
+
+	Thu Apr  9 02:11:01 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-typeck.c (build_function_call_real): Merge in a change made to
+	the C front end into the C++ front end to handle volatile functions.
+
+	Thu Apr  9 03:45:03 1992  Mark Eichin  (eichin at cygnus.com)
+
+	* cp-class.c (finish_struct): sanity check before calling popclass.
+	If we're already hosed due to previous parse errors (specifically,
+	we're not inside a class anymore) just report an error rather than
+	crashing in popclass (if there wasn't a previous parse error, as the
+	message suggests, we should get reports; this closes gcc/p0000525.)
+
+	Wed Apr  8 08:56:49 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Fix an eichin bug introduced seconds
+	ago.  Shame, he didn't put:
+
+	Workaround for p869:
+        1) grokdeclarator (around cp-decl.c:7462) is using popclass(1)
+        uses popclass(1) to close the pushclass(3) done by
+        build_push_scope; however, it's coming around another time and
+        popping all the way out, which leads to the core dump when
+        do_friend is called from global scope (do_friend uses
+        current_class_name to figure out whose friendship it is
+        bestowing.) Current workaround: if (friendp) don't allow
+        popping all the way out. We still need to figure out how to
+        make sure it only gets called the *right* time; we also need
+        to figure out if the correct scope is being used, but that's a
+        matter of regression testing.
+
+	into a ChangeLog entry.
+
+	Wed Apr  8 01:10:44 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-decl.c: Cleanup binding_levels_sane related code.  Deleted
+	argument, and changed to void type.  Removed extraneous asserts.
+
+	* cp-parse.y: Add fourth parameter to all finish_decl calls.
+	Defaulted the guess to 0.
+	* cp-decl.c: consistently use #if on all PARANOIDs.
+
+Wed Apr 15 14:00:14 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.md (movstrsi_internal): Add '&' constraint on clobbers.
+
+	* mips.c (output_movstrsi): If one of our temporary registers is
+	used as an address register, don't use it and emit a warning.  This
+	is a temporary measure.
+
+Wed Apr 15 09:04:22 1992  Richard M. Stallman  (rms at lyssenko)
+
+	* xm-ns32k.h (memcpy, memcmp, memset): New macro definitions.
+	* rtl.c (gcc_memset): New function.
+
+Wed Apr 15 09:03:28 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (umulsidi3): Define for m88110.
+	(unit attribute): Define.
+
+	* x-m88kdgux (INSTALL_HEADERS): Define as empty.
+
+Tue Apr 14 13:28:11 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* c-lex.c (yylex): When warn_traditional, don't abort for harmless
+	type differences.  Instead warn of possible problems on other systems.
+
+	* rtl.c (add_dependence): Skip notes when HAVE_cc0.
+	* sched.c (sched_analyze_2): Likewise.
+
+	* sparc.md (movdf-1): Delete special case for moving 0.0 to integer
+	registers; it resulted in poor code.
+	(fix_truncdfsi2+1): Add patterns to optimize float->fix and
+	float->fix->float conversions.
+	* sparc.c (output_move_double): Clean up ldd/std code.  Don't emit
+	ldd/std for obviously unaligned address even when TARGET_HOPE_ALIGN.
+	(output_fp_move_double): Call output_move_double for MEM cases.
+	It is not safe to assume double reg addresses are always aligned.
+
+Tue Apr 14 07:55:47 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* *hp800*, *hp700*: Rename to *hppa* and *hppa1.1*, respectively.
+	* config.sub: Recognize PA model numbers for PA 1.0 and 1.1.
+	Disable "hppa" with no model number.
+	* configure: Update for new PA file names and basic_machine names.
+	* README-PA-HPUX: New name for README-PA-RISC, with some corrections.
+
+Tue Apr 14 05:46:37 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* Makefile.in ("if" and "["): Romp, 4.3 BSD, and Ultirx systems
+	fail when the condition is false.  Change troublesome instances to
+	either use "case" or use '-' as a prefix to the compilation rule.
+
+Mon Apr 13 18:20:56 1992  Mike Stump  (mrs@cygnus.com)
+
+	* dwarfout.c: Add default definition for ASM_OUTPUT_ASCII
+	as that is what varasm.c does now.  This really maybe should go
+	into a file like tree.h or some machine independant file, for
+	maintainability.
+
+Mon Apr 13 18:16:32 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sun3.h, sparc.h (LINK_SPEC): Change nostdlib to !nostdlib.
+
+Mon Apr 13 07:17:36 1992  John F Carr  (jfc at Achates.mit.edu)
+
+	* rs6000.md (extzv): Generate andi[ul] when practical.
+
+Mon Apr 13 07:17:36 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (rtx_cost, case SUBREG): If modes can't be tied, make
+	expensive.
+	(cse_insn): Make extra entries when DEST is a multi-word SUBREG
+	as long as it is the same number of words as its inner REG.
+
+	* emit-rtl.c (gen_lowpart_common): Handle casting integer to
+	float and vice versa.
+
+	* emit-rtl.c (gen_lowpart_common): Rework code to truncate a
+	constant so we don't convert negative values into positive values;
+	use same code as in simplify_binary_operation in cse.
+
+Mon Apr 13 07:16:56 1992  Richard M. Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* cccp.c (handle_directive): When find quote during copying,
+	give bp as limit arg in skip_quoted_string.
+	When find \ while copying, copy next char without special handling.
+
+Mon Apr 13 06:57:18 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88kv3.h (CTOR_LIST_BEGIN): Avoid complex #if.
+
+	* tree.h (saved_insns): Make this a union holding an rtx or an int.
+	(DECL_FIELD_SIZE): New macro for overloaded uses of DECL_FRAME_SIZE.
+	* c-decl.c (finish_struct): Use DECL_FIELD_SIZE for bitfields.
+	* cp-class.c (finish_struct): Ditto.
+	* objc-actions.c (objc_copy_list, encode_field_decl): Ditto.
+	* stor-layout.c (layout_decl): Ditto.
+
+Sun Apr 12 17:46:30 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* expr.c (expand_builtin, case SQRT): Don't defer popping args on
+	function calls, as the call might be deleted.
+
+	* i386.c (print_operand): Delete references to unused codes.
+	Abort if an unrecognized code is seen.
+
+	* i386.md (bit opcode recognizers): Accept starting bit numbers
+	that are constants but not CONST_INT.
+	(QI/HI register bit test): Delete.
+	(SImode bit test): Don't accept CONST_INT starting bit number.
+
+Sun Apr 12 17:05:25 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.h (ADDITIONAL_REGISTER_NAMES): Add "cc" as alias for cr0.
+
+	* cse.c (equiv_constant): See if a MEM is foldable or has a 
+	constant equivalent.
+
+	* expr.c (store_constructor): If building a static constructor
+	into a register, start out by zeroing the register so we can
+	constant-fold the constructor to a single constant.
+	(expand_expr, case CONSTRUCTOR): Don't write constant objects
+	into memory if the target is a register.
+	(expand_expr, case *_REF): Simplify getting field or array
+	entry from a CONSTRUCTOR.
+	Don't use value of const array unless -O.
+
+Sun Apr 12 14:15:33 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* Makefile.in (compare, compare3): New targets.
+	(mostlyclean): Delete temporary files made by those targets.
+
+	* stmt.c (expand_asm_operands): Ignore `cc' as clobbered reg if name
+	not known.
+	* varasm.c (decode_reg_name): Ret -3 if `cc' not recognized.
+	(make_decl_rtl): Understand -3 as value.
+
+	* configure (i386-sequent-bsd*): Use collect2.
+
+Sun Apr 12 13:28:00 1992  Niklas Hallqvist  (niklas@appli.se)
+
+	* configure: Correctly interpret use_collect2.
+
+Sun Apr 12 10:34:58 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* c-typeck.c (digest_init): Use INIT to pass to convert_for_assignment
+	for a raw constructor.
+
+	* fold-const.c (fold, case COND_EXPR): Get the type right when
+	the test is folded away.
+
+	* loop.c (strength_reduce): Correct off-by-one error in INSN_LUID
+	safety check.
+
+	* stor-layout (layout_record, layout_union): When limiting the
+	effect of PCC_BITFIELD_TYPE_MATTERS to bitfields, use
+	DECL_BIT_FIELD_TYPE to determine if it was a bitfield.
+
+Sat Apr 11 19:54:00 1992  Per Bothner  (bothner@wombat.gnu.ai.mit.edu)
+
+	* config.sub:  Don't "standardize" an os of newsos* to bsd
+	(it breaks gdb/readline/configure.in, which checks for newsos*).
+
+Sat Apr 11 16:32:21 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* Makefile.in: Remove spaces after reg-stack.o deps.
+
+Sat Apr 11 16:32:15 1992  Michael Meissner  (meissner@osf.org)
+
+	* c-decl.c (init_decl_processing): Make -fno-builtin supress all
+	builtin functions in the user's name space like memcpy, strlen,
+	etc.
+
+Sat Apr 11 14:00:53 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.h (LEGITIMIZE_ADDRESS): Add missing force_reg call.
+	Jump to WIN when we do something.
+
+	* rs6000.c (non_{short,add,logical,and}_cint_operand): New functions.
+	* rs6000.h (PREDICATE_CODES): Add these predicates.
+	* rs6000.md (addsi3, andsi3, iorsi3, xorsi3, cmpsi3): Remove
+	define_expands; instead, add define_split for long constants.
+
+	* combine.c (try_combine): Try to split the pattern using
+	split_insns before trying find_split_point.
+	(find_split_point, case MEM): Try to split an invalid address that
+	is a PLUS with a CONST_INT.
+
+	* combine.c (try_combine): Correctly check if an auto-inc
+	side-effect has been duplicated.
+
+	* expr.c (expand_expr, case PARM_DECL): Return zero of proper mode
+	if no DECL_RTL.
+	
+	* tree.c (save_expr): Must do something with read-only tree that 
+	has side-effects.
+	(stabilize_reference_1): Don't ignore read-only trees.
+
+	* reload.c (find_replacement): New function.
+	* reload.h (find_replacement): Declare it.
+	* reload1.c (gen_input_reload): Use it to ensure substitutions
+	get done if we need to recreate a PLUS.
+
+Sat Apr 11 14:00:02 1992  John F Carr  (jfc at Achates.mit.edu)
+
+	* cse.c (cse_end_of_basic_block): Don't stop scanning insns if a
+	jump is found that can't be followed.
+
+	* genextract.c: Make insn_extract copy the address of
+	recog_operand and recog_operand_loc into register variables.
+
+Sat Apr 11 13:59:17 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* c-parse.y (stmt): Parse entire parens of `for'
+	before actually starting the loop.
+
+Sat Apr 11 10:35:06 1992  Jeffrey A. Law  (law@mole.gnu.ai.mit.edu)
+
+	* caller-save.c (restore_referenced_regs): Do not call XEXP on
+	reg_equiv_address since reg_equiv_address is already an address.
+
+	* expr.c (expand_builtin, case SQRT): Note the dangers involved in
+	changing the argument test condition.
+
+	* m68k.md (sqrtdf2): New pattern to take advantage of the 68881
+	sqrt function.
+
+Fri Apr 10 18:37:08 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* hp800.c (output_function_epilogue): Output code to restore gr2 in
+	non-frame-pointer case correctly.
+
+Fri Apr 10 15:24:57 1992  Michael Meissner  (meissner@osf.org)
+
+	* decrose.h (TARGET_MEM_FUNCTIONS): Define, memcpy/memset are
+	provided.
+
+	* i386rose.h (TARGET_MEM_FUNCTIONS): Define, memcpy/memset are
+	provided.
+
+	* encrose.h (TARGET_MEM_FUNCTION): Define, memcpy/memset are
+	provided.
+
+	* mips-tfile.c (copy_object): Omit the test for zero flags, since
+	MIPS vendors are now putting bits in there.
+
+	* mips-svr4.h (HAVE_ATEXIT): Define, atexit is provided.
+	(TARGET_MEM_FUNCTIONS): Define, memcpy/memset are provided.
+
+	* mips-sysv.h (TARGET_MEM_FUNCTIONS): Define, memcpy/memset are
+	provided.
+
+	* mips-news5.h (TARGET_MEM_FUNCTIONS): Define, memcpy/memset are
+	provided.
+	(getpagesize): Define a getpagesize that uses sysconf, just like the
+	MIPS V.4 port.
+
+	* mips.c (output_block_move): Don't emit ulw/usw if GAS is the
+	assembler, use the lwl/lwr/swl/swr building blocks instead, since
+	GAS doesn't yet support the ulw/usw macro instructions.
+
+	* configure (mips-sgi-irix4): Use config/iris4.h instead of
+	config/iris.h.
+
+	* iris4.h (new file): Just like iris.h, atexit is provided (unlike
+	IRIX revision 3).
+
+	* iris.h (TARGET_MEM_FUNCTIONS): Define, memcpy/memset are provided.
+
+Fri Apr 10 11:59:02 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (cmpstr patterns): Correctly handle zero length
+	compares.  Rewrite to avoid needing scratch register.
+
+Thu Apr  9 14:05:04 1992  Michael Collison  (collison at osf.org)
+
+	* i386rose.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE): Fix these to
+	avoid printing NaNs, and infinity.
+
+Thu Apr  9 11:34:31 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88kluna.h (DEFAULT_GDB_EXTENSIONS): Define as 0.
+
+Wed Apr  8 20:21:59 1992  Michael Meissner  (meissner@osf.org)
+
+	* halfpic.c (all functions): Add a hash table for the lookup instead
+	of linear search.  Don't use bits in the IDENTIFIER node, store the
+	information in the hash table.  Always rebuild the SYMBOL_REF
+	returned by half_pic_ptr, instead of storing it away, since the RTL
+	gets reused at the end of the function.
+	(half_pic_declare): New function, called when a label is laid down
+	to say that it is no longer half-pic.
+
+	* halfpic.h (half_pic_declare, HALF_PIC_DECLARE): Add function
+	defintion, and accessor macro.
+
+	* mips.h (HALF_PIC_DECLARE): Add dummy macro if not OSF/rose.
+	(ASM_DECLARE_OBJECT_NAME): Invoke HALF_PIC_DECLARE on name.
+	(ASM_DECLARE_FUNCTION_NAME): Ditto.
+	(*_SECTION_ASM_OP): Put the leading tab back in.
+
+	* mips.md (dslot attribute): 'pic' type requires a delay slot, since
+	it is really a load.
+	(movsi): Make movsi a define_expand, and if it's moving the address
+	of a half-pic item into a register, convert it into a load.
+	(movsi_internal): The old movsi define_insn renamed.
+	(movstrsi_internal): Add '=' constraint on all stores and clobbers.
+
+	* decrose.h (LINK_SPEC): If not -noshrlib or -pic-none, pass
+	-warn_nopic.  Allow user to pass -noshrlib directly.
+
+Wed Apr  8 00:11:56 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.h (MOVE_MAX): Set to 8 instead of 4.
+
+	* sched.c (sched_analyze_2): Don't abort if find note before a CC0
+	using insn.
+
+	* sparc.h (ADDITIONAL_REGISTERS_NAMES): Add.  Define fake reg name
+	ccr, for use in asm clobbers.
+
+	* sparc.h (TARGET_FORCE_ALIGN): Add comment explaining that it
+	is for experimental purposes only.
+	(FIRST_PARM_OFFSET): Add 4 when TARGET_FORCE_ALIGN to ensure that
+	stack is double-word aligned.
+	(FIRST_PARM_CALLER_OFFSET): Delete obsolete macro.
+
+	From Tom Wood:
+	* unroll.c (final_giv_value): Put the subtracts in the right place.
+
+	* sparc.c (compute_last_arg_offset): Delete, no longer needed.
+	(FRAME_POINTER_REQUIRED): Do not depend on frame size.
+
+Tue Apr  7 22:36:33 1992  Michael Meissner  (meissner@osf.org)
+
+	* halfpic.c (whole file): Flesh out initial half-pic implementation
+	for the OSF/1 reference ports.  This is still a work in progress.
+
+	* halfpic.h (toplevel): Add declarations for half_pic_finish and
+	half_pic_ptr.  Add macros HALF_PIC_FINISH, HALF_PIC_PTR, and
+	HALF_PIC_PREFIX.
+
+	* mips.h (call_memory_operand): Delete call_memory_operand
+	function declaration.
+	(PREDICATE_CODES): Ditto.
+	(CONSTANT_ADDRESS_P): Correctly reject half-pic addresses.
+
+	* mips.c (call_memory_operand): Delete function.
+
+	* mips.md (call* patterns): Use memory_operand instead of
+	call_memory_operand for predicates.  Use the test not register and
+	not CONSTANT_ADDRESS_P instead of call_memory_operand in the
+	define_expand body to test whether the function address needs to be
+	forced to a register.
+
+	* decrose.h (HALF_PIC_DEBUG): Define as true if -mdebugb, to debug
+	the half-pic code, just like debugging normal addressing.
+	(CPP_SPEC): Use the __<name>__ form of the language macros instead
+	of __<name>.
+	(LINK_SPEC): If -pic-lib and not -noshrlib, pass -warn_nopic.
+	(LIB_SPEC): Don't pass -L/usr/ccs/lib.
+
+	* x-decrose (CCLIBFLAGS): Pass -pic-extern when building libgcc1.a.
+	(LIBGCC2_CFLAGS): Pass -pic-extern when building libgcc2.a.
+
+Tue Apr  7 19:00:56 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* xm-m88k.h (NO_SYS_SIGLIST): Not provided by the 88open standards.
+
+	* m88k.c (output_ascii): Generalize to support ident
+	* m88k.h (ASM_OUTPUT_IDENT, ASM_OUTPUT_ASCII): Use output_ascii.
+
+	* m88k.c, m88k.md, m88k.h: Integrate all changes to support the m88110.
+
+Mon Apr  6 22:51:02 1992  John Wroclawski  (jtw@lcs.mit.edu)
+
+	* mips-tfile.c (read_seek): Fix argument order in calls to
+	fatal.
+
+Mon Apr  6 21:17:38 1992  Mike Stump  (mrs@albert.gnu.ai.mit.edu)
+
+	* merged in Cygnus sources.
+
+	Mon Apr  6 15:26:09 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-spew.c (hack_more_ids): Reimplement.  Change from Niklas
+	Hallqvist.
+
+	Thu Apr  2 02:36:36 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-*:  Simplify DECL_NAME (TYPE_NAME into TYPE_IDENTIFIER.
+
+	* cp-call.c (build_method_call):  Fix an error message.
+
+	* cp-parse.y (LC):  Renamed to left_curly.
+	(TYPENAME_SCOPE):  Renamed to typename_scope.
+
+Mon Apr  6 14:04:49 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.h (TARGET_HOPE_ALIGN): Fix typo, `-fast' -> `-dalign'.
+
+	* expr.c (expand_expr, INDIRECT_REF case): Set MEM_IN_STRUCT_P if
+	this is an indirect of the address of an array, struct, or union.
+
+	* jump.c: Delete declaration of squeeze_notes.
+	(jump_optimize): Use new return value from squeeze_notes.
+	(squeeze_notes): Handle the case where START may be a note that
+	must be moved outside the range.  Now returns the new start value.
+	* loop.c (find_and_verify_loops): Use squeeze_notes return value.
+	* stmt.c (expand_end_case): Call squeeze_notes before reorder_insns.
+	* rtl.h: Declare squeeze_notes.
+
+	* rs6000.h (PTRDIFF_TYPE): Define to int.
+
+	Mostly from tege@sics.se:
+	* sparc.c (eligible_for_epilogue_delay): Clarify comment.  Delete
+	unreachable test of leaf_function.
+	(singlemove_string): Correct test for when can use sethi alone.
+	(output_function_prologue): Declare leaf_function.  More
+	efficiently frame sizes greater than 4095. Correctly handle leaf
+	functions with frame greater than 4095.
+	(output_function_epilogue): Likewise.
+	(output_return): Likewise.
+
+Mon Apr  6 10:11:08 1992  Tim Moore  (moore@defmacro.cs.utah.edu)
+
+	* config.sub : Add hp700 cpu type.
+	* configure : Make hp700-bsd and hp700-hpux cases, with use of gas
+	an option.
+	* hp700hpuxg.h, hp800hpuxg.h : New files for using gas under hpux.
+	* hp800.h (REGISTER_NAMES): Change to use %r style register names;
+	required to name PA-RISC 1.1 fp registers.
+	* x-hp800hpux : Don't invoke the assembler to compile alloca.c.
+	* README-PA-RISC: New file.
+
+Mon Apr  6 08:00:06 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (relax_delay_slots): Don't get confused when a label
+	becomes zero (meaning end of function).
+
+Sun Apr  5 13:45:37 1992  Ron Guilmette (rfg at ncd.com)
+
+	* i860.md (floatsidf3):  Fixed to expand to a correct insn sequence.
+
+Sun Apr  5 12:33:02 1992  John F Carr  (jfc at Achates.mit.edu)
+
+	* rs6000.h (EXTRA_CC_MODES, EXTRA_CC_NAMES): Add CCEQmode.
+	(SELECT_CC_MODE): Select it for equality comparison of comparison.
+	* rs6000.c (scc_comparison_operator): Reject improper use of
+	CCEQmode.
+	(ccr_bit): Handle CCEQmode, where bit is always third in field.
+	(print_operand, case 'E'): New case.
+	* rs6000.md: New pattern to compare two comparisons with
+	creqv/crxor.
+	Add peephole for two consecutive scc insns.
+
+	* combine.c (subst, case FFS): (ffs (*_extend X)) -> (ffs X)
+	(make_compound_operation): Handle (and (rotate X C) M).
+
+	* flags.h (flag_cse_skip_blocks): New variable.
+	* toplev.c (flag_cse_skip_blocks): Define it here.
+	(f_options): Add it to table.
+	(main): -O2 turns it on.
+	* cse.c (invalidated_skipped_{set,block}): New functions.
+	(enum taken): New value, AROUND.
+	(cse_end_of_basic_block): New argument SKIP_BLOCKS.  If it is
+	nonzero, follow a branch around a block of code which contains
+	no labels and set status = AROUND for the jump.
+	(cse_main): Pass FLAG_CSE_SKIP_BLOCKS argument to
+	cse_end_of_basic_block.
+	(cse_basic_block): If jump status is AROUND, call scan_skipped_block
+	before following jump.
+
+Sun Apr  5 04:16:46 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* optabs.c (emit_cmp_insn): Add missing parameter type declaration.
+
+	* expr.c (expand_builtin, case SQRT): Fix typo emitting insns.
+	Reformat to look like the rest of gcc.  Use accessor macros to
+	access fields of an RTX.  Make comments match code.
+
+	* i386.md (cmpstr patterns): Handle zero length compares.
+
+Sat Apr  4 04:40:58 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_equiv_reg): Avoid passing zero to true_regnum.
+
+	* expr.c (expand_expr, case COMPONENT_REF): Handle case where we
+	are extracting a field of a constant.
+
+	* a29k.h ({TEXT,READONLY_DATA,DATA}_SECTION_ASM_OP): Put tab back.
+
+	* rs6000.c (output_epilog): Reduce number of lines generated to
+	write traceback table.
+
+	* combine.c (move_deaths): A destination is used in this insn
+	unless is it completely overwritten.
+
+Sat Apr  4 04:39:16 1992  John Carr (jfc at ATHENA.MIT.EDU)
+
+	* expmed.c (store_bit_field, extract_bit_field): Remove redundant
+	tests for MEM.
+
+	* c-common.c (binary_op_error): Handle FLOOR_DIV_EXPR, FLOOR_MOD_EXPR,
+	*ROTATE_EXPR.
+	* c-typeck.c (build_binary_op): Handle FLOOR_MOD_EXPR.
+
+Sat Apr  4 00:29:40 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (c_decode_option): `-' was missing in -Wno-redundant-decs.
+
+	* Makefile.in (USE_COLLECT2, MAYBE_USE_COLLECT2): New variables.
+	(GCC_PARTS, native, install-common): Use USE_COLLECT2.
+	(toplev.o): Use MAYBE_USE_COLLECT2.
+	* configure: Let particular cases set use_collect2
+	and have that control use of collect2 through editing Makefile.
+	Handle --with-gnu-as and --with-gnu-ld options.  Ignore --with-*.
+	--with-gnu-ld turns off use_collect2.
+	* i386rose.h (CC1PLUS_SPEC): Deleted.
+
+	* gcc.c (do_spec_1): In case 'D', strip final / from prefixes.
+
+	* c-decl.c (push_c_function_context): Add pedantic warning.
+
+	* collect2.c (main): Figure STANDARD_EXEC_PREFIX into clen.
+
+	* c-typeck.c (get_spelling): Move alloca outside fn call.
+
+Fri Apr  3 16:36:54 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* varasm.c (output_constant_def): Set MEM_IN_STRUCT_P if nec.
+
+Fri Apr  3 05:32:39 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* m88k.md (call_block_move{,_loop}): Don't write USE for regs
+	we don't set; remove unneeded CLOBBERs for call-used registers.
+
+	* caller-save.c (insert_save_restore): Abort rather than writing
+	out an insn having a null source or destination.
+
+	* explow.c (allocate_dynamic_stack_space): Don't reference
+	STACK_BOUNDARY if it isn't defined.
+
+	* explow.c (allocate_dynamic_stack_space): Don't use TARGET if it
+	isn't a pseudo reg.
+
+Fri Apr  3 01:50:57 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixinc.svr4: Don't reconvert __i386 if have _ after.
+
+	* c-decl.c (grokdeclarator): Use size_binop to get array hbound - 1.
+
+	* enquire.c: Include sys/types.h.
+
+	* c-typeck.c (check_format): Don't use type name for integer types
+	or pointers to them.
+
+	* explow.c (allocate_dynamic_stack_space): New arg KNOWN_ALIGN.
+	All callers changed.
+
+Thu Apr  2 15:24:38 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_type): Output just xref for var-size struct/union.
+
+	* reload.c (find_equiv_reg): In previous change, verify valtry != 0.
+
+Thu Apr  2 08:34:38 1992  Michael Meissner  (meissner@osf.org)
+
+	* iris.h (SIZE_TYPE): Make type unsigned int, not unsigned long.
+	(PTRDIFF_TYPE): Define to be 'int', not 'long int'.
+	(WCHAR_TYPE): Define to be 'unsigned char', not 'int'.
+	(WCHAR_TYPE_SIZE): Define to be 8, not 32.
+
+Thu Apr  2 06:01:07 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold, case COND_EXPR): Add missing test for zero.
+
+	* expr.c (expand_expr, case ARRAY_REF): Handle case of constant
+	array whose initializer is a string.
+
+	* optabs.c (emit_libcall_block): Don't move up insns that set
+	pseudos whose old values are used in previous insns.
+
+	* genattrtab.c (attr_rtx): Add some casts to int from enum rtx_code.
+
+Thu Apr  2 04:20:30 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xm-mipsnbsd.h: New file.
+	* configure (mips-sony-bsd*): Use that.
+
+	* stmt.c (expand_end_case): Move the convert_to_mode after emit_queue.
+
+Thu Apr  2 00:49:18 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* stmt.c (expand_end_case): Fix typo.
+
+Wed Apr  1 19:01:00 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fold-const.c (size_int): Always switch to permanent_obstack
+	to make a node that will be saved
+
+Wed Apr  1 15:36:19 1992  Michael Meissner  (meissner@osf.org)
+
+	* xm-irix4.h (alloca.h): Don't include <alloca.h> if not using the
+	GNU compiler, since the Silicon Graphics compiler's alloca complains
+	if the result of alloca is stored in something that is not a simple
+	variable.  Just use the C version of alloca.c.
+
+Wed Apr  1 14:42:24 1992  Torbjorn Granlund  (tege@mole.gnu.ai.mit.edu)
+
+	* pyr.md (HImode compare recognizers): Don't match if subsequent
+	branch has unsigned predicate.
+
+Wed Apr  1 14:20:13 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.c (output_function_epilogue): Drop unused true_epilogue
+	parameter.  Delete obsolete tail-call support code, which worked
+	by passing -1 for leaf_function.
+	(tail_call_valid_p): Delete obsolete function.
+	(output_tail_call): Likewise.
+	* sparc.h (TARGET_TAIL_CALL): Delete obsolete option.
+	(FUNCTION_EPILOGUE): Fix call to output_function_epilogue.
+	* sparc.md (tail_call): Delete obsolete pattern.
+
+	* rs6000.c (output_epilogue): Output a traceback table.
+
+Wed Apr  1 06:42:54 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.h: Override ASM_OPs added to svr4.h.
+
+Wed Apr  1 03:12:44 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* emit-rtl.c (operand_subword): Swap words from const_double if nec
+
+	* ns32k.h (GO_IF_INDEXING): New arg MODE; caller changed.
+	Pass to INDEX_TERM_P.
+
+Tue Mar 31 18:10:10 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genattrtab.c (check_attr_value): Fix some backwards tests.
+
+	* expr.c (move_by_pieces{,_ninsns}): Only look at MODE_INT modes.
+
+	* fold-const.c (fold, case COND_EXPR): Fix typo in last change.
+
+	* stor-layout.c (layout_record): Add missing call to size_int.
+
+	* expr.c (do_store_flag): Handle case where EXP is a TRUTH_NOT_EXPR.
+
+Tue Mar 31 17:18:20 1992  Jeffrey A. Law  (law@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (init_decl_processing): Enable `sqrt'.
+	* expr.c (expand_builtin, case SQRT): By default check that the
+	argument to sqrt is in sqrt's domain.  If the argument is not in the
+	domain, then call the library function.  Skip argument checking if
+	-ffast-math is in use.
+
+	* flags.h (flag_fast_math): Declare new variable.
+	* toplev.c (f_options): Add flag_fast_math to table.
+
+Tue Mar 31 17:11:09 1992  Per Bothner  (bothner@wombat.gnu.ai.mit.edu)
+
+	* cccp.c:  Add new flag -nostdinc++ to disable searching
+	standard C++-specific include directories. This is useful
+	for building libg++.
+	* gcc.c:  Pass -nostdinc* to cpp, not just -nostdinc.
+	* cpp.texi:  Document -nostdinc++.
+
+Tue Mar 31 15:32:34 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (link_command_spec): Use %l before %X.
+
+	* svr4.h (MULTIBYTE_CHARS): Turned off.
+
+	* sun3.h, sparc.h (LINK_SPEC): Inhibit -e if -nostdlib.
+
+	* collect2.c (my_strerror): Renamed from strerror.
+
+	* reload.c (find_equiv_reg): Find constants in REG_EQUIV notes.
+
+	* m68k.h (PRINT_OPERAND_PRINT_FLOAT): Fix typo in #ifdef.
+
+	* Makefile.in (install-dir): Create include subdir.
+
+Tue Mar 31 18:03:21 1992  Thorsten Ohl  (ohl@apollo.desy.de)
+
+	* x-apollo68 (CFLAGS, LIBGCC2_CFLAGS): Defined.
+	* t-apollo68: new file, use collect2.
+	* configure: use `t-apollo68'.
+
+	* apollo68.h (ASM_SPEC): Delete -C.
+	(STRUCT_VALUE_INCOMING): Now 0.
+	(HAVE_ATEXIT): Defined.
+	(PROMOTE_PROTOTYPES): Delete #undef.
+	(USER_LABEL_PREFIX): Undef.
+	(LOCAL_LABEL_PREFIX, REGISTER_PREFIX, REGISTER_PREFIX_MD): Override.
+	(ASM_RETURN_CASE_JUMP): Defined.
+	(REGISTER_NAMES): Override.
+
+Tue Mar 31 14:59:53 1992  Tim Moore  (moore@defmacro.cs.utah.edu)
+
+	* hp800.md (movsi+4, call_value+1): Add x,y constraints for Snake
+	fp registers.
+	* hp800.h (INITIAL_FRAME_POINTER_OFFSET): Fix for Snake stack
+	alignment. 
+	(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Fix for Snake fp
+	registers.
+	* hp800.c (output_function_prologue): Align stack for Snakes.
+	(output_arg_descriptor): Fix Snake typos.
+	
+	* hp700.h, hp700hpux.h : New files
+	(TARGET_DEFAULT): Emit Snake code by default.
+	* hp700hpux.h (HP_FP_ARG_DESCRIPTOR_REVERSED): Define to work
+	around assembler syntax difference between 700 and 800 series HPUX.
+	* hp800.h (ASM_DOUBLE_ARG_DESCRIPTORS): Conditionalize on the
+	above symbol.
+
+Tue Mar 31 09:58:52 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips-sysv.h (getpagesize): When compiling the trampoline code,
+	define a macro getpagesize which uses the POSIX sysconf function.
+
+	* mips-svr4.h (getpagesize): When compiling the trampoline code,
+	define a macro getpagesize which uses the POSIX sysconf function.
+
+Mon Mar 30 19:25:48 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* loop.c (strength_reduce): In recent maybe_multiple code, only
+	apply INSN_LUID to insn when safe.
+
+Mon Mar 30 17:24:33 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.c (output_block_move): Fix typos that would generate
+	incorrect code if either the source or destination is a global or
+	static memory address.  Increment appropriate -mstats counters.
+
+	* x-iris (INSTALL): Use cp to install stuff, not install -c.
+
+Mon Mar 30 16:39:28 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* m68k.md: Use `\;', not `;', to separate insns.
+
+	* toplev.c (main): Add cast when setting debug_info_level.
+
+	* m68k.h (GLOBAL_ASM_OP): New macro.
+	(ASM_GLOBALIZE_LABEL): Use that.
+	* hp320.h, m68ksgs.h, mot3300.h (GLOBAL_ASM_OP): Override this.
+	(ASM_GLOBALIZE_LABEL): Not this.
+
+	* libgcc2.c (__builtin_saveregs) [sparc]: Define both assembler labels
+	__builtin_saveregs and ___builtin_saveregs, to handle all systems.
+
+	* m68k.h (TRANSFER_FROM_TRAMPOLINE): Add a globalize command.
+	(TRAMPOLINE_TEMPLATE): Make the JSRs really JSRs.
+	Always use precisely ___trampoline.
+
+Mon Mar 30 07:17:50 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (inc_for_reload): Declare CODE consistently.
+	(constraint_accepts_reg_p): Add missing cast.
+
+	* fold-const.c (fold, case TRUTH_ANDIF_EXPR): Fix typo in last change.
+
+Mon Mar 30 01:07:33 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* rtl.h: Don't continue #if lines.
+
+Mon Mar 30 03:30:54 1992  Mike Stump  (mrs@cygnus.com)
+
+	* Merge in Cygnus cp-* sources, below are the ChangeLog entries from
+	the Cygnus ChangeLog file.  Note, I am experimenting with a slightly
+	different format, as Tiemann would like the dates to remain intact,
+	but Stallman does not want the dates out of order and would rather
+	have the entries altogether anyway.
+
+	Sun Mar 29 16:57:31 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Handle typedef before other
+	specifiers, as typedef is now more complex in c++ than in c.
+
+	Sun Mar 29 12:00:03 1992  Michael Tiemann  (tiemann@cygnus.com)
+
+	* cp-decl.c (start_function): Always set TREE_PUBLIC if DECL1 is
+	part of any interface.
+
+	* cp-cvt.c (convert_to_reference): Don't type to convert a type to
+	itself.
+	(build_type_conversion): Don't look for alternatives to default
+	type conversion except to integral and real types.  Fixes bug
+	exposed in 19 March change.
+
+	Tue Mar 24 07:53:46 1992  Michael Tiemann  (tiemann@cygnus.com)
+
+	* cp-tree.c (lvalue_p): POST{INC,DEC}REMENT_EXPR is not an lvalue.
+	* cp-typeck.c (build_modify_expr): Ditto.	
+
+	* cp-init.c (emit_base_init): If debugging, force out a line note so
+	we can step into ctors for base initializers.
+	(build_virtual_init): Note that we need to do some more work to
+	handle replicated base classes in multiple inheritance lattices.
+
+	Mon Mar 23 00:33:35 1992  Michael Tiemann  (tiemann@cygnus.com)
+
+	* cp-init.c (expand_aggr_init_1): Finish Mar 15 change concerning
+	INDIRECT_REFs that have TREE_HAS_CONSTRUCTOR set.
+
+	* cp-call.c (build_overload_call_real): Ensure FINAL_CP->EVIL is set
+	when FINAL_CP is non-NULL and we encounter an ERROR_MARK_NODE in the
+	operands we are processing.
+
+	* cp-cvt.c (convert_to_reference): Propagate ERROR_MARK_NODE from
+	failed type conversions.
+
+	Sun Mar 22 20:01:51 1992  Michael Tiemann  (tiemann@cygnus.com)
+
+	* cp-init.c (is_aggr_typedef): Don't give an error message if NAME
+	is ERROR_MARK_NODE.
+
+Sun Mar 29 09:29:10 1992    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* make-gcc.com: Remove patch from March 7.
+
+	* make-l2.com: Use compiler that was just built, if available,
+	  otherwise use system compiler if it is version 2.
+
+Sun Mar 29 19:53:33 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* fold-const.c ({invert,swap}_tree_comparison): New functions.
+	(comparison_equiv_p): Deleted.
+	(operand_equal_for_comparison_p): New function.
+	(invert_truthvalue): Use invert_tree_comparison.
+	(fold): Use variables T1 and TEM consistently.
+	Don't mix arg[01] and TREE_OPERAND (t, [01]); they aren't
+	identical.
+	(fold, comparison cases): Use new functions to adjust comparison
+	codes; add var INVERT.
+	Convert f >= f to f == f for FP and similar.
+	Correctly compute FP <= and >= when one arg is a NaN.
+	Clean up handling of constant results.
+	(fold, case COND_EXPR): Rework considerably to catch more forms
+	of abs, min, max, and -abs and also clean up; use new function
+	operand_equal_for_comparison_p.
+
+Sun Mar 29 00:00:35 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cse.c (simplify_relational_operation): Arg ptr reg may be 0.
+
+	* gcc.c: Always define R_OK, etc. if system headers don't.
+
+	* c-parse.y (maybe_attribute): Accept `mode (m)' attribute.
+	* c-common.c (decl_attributes): Handle that attribute.
+
+	* tower.h (REGISTER_NAMES): Discard the fpa regs.
+	* tower-as.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE):
+	Don't handle fpa regs.
+	(PUT_SDB_START_DIM, PUT_SDB_NEXT_DIM, PUT_SDB_LAST_DIM):
+	New macros.
+	(PUT_SDB_DIM): Deleted.
+
+	* m68k.h (RTX_COSTS): Smaller multiply costs on 68040.
+
+	* stmt.c (expand_end_case): Reduce amount of specific modes
+	used in handling casesi.
+
+	* collect2.c (savestring): Copy only SIZE bytes of string.
+
+	* gstddef.h: Handle __need_size_t, __need_wchar_t, __need_ptrdiff_t,
+	and _need_null.
+
+	* c-typeck.c (digest_init): Save INIT with nops not stripped
+	to pass to convert_for_assignment.
+
+Sun Mar 29 12:27:01 1992    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* vms.h (FUNCTION_PROLOGUE):  Redefine to add 4 bytes to local
+	storage on the stack.
+	(STARTING_FRAME_OFFSET): Redefine as -4.
+
+Sun Mar 29 19:58:57 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* c-decl.c (store_parm_decls): Function prototypes now override
+	old-style definitions if argument types disagree only because of
+	promotions.
+
+Sun Mar 29 17:40:56 1992  Fred Fish  (fnf at fishpond)
+
+	* fixincludes (stdlib.h): Fix free/calloc/malloc/realloc return types.
+
+Sun Mar 29 15:12:39 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* sparc.c (sparc_type_code):  Added this new routine.
+	(tree.h):  Included to support `sparc_type_code'.
+	(output_block_move):  Cleaned up code to handle assembler-specific
+	aspects of internal labels.
+
+	* sparc.h: (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER, LEAF_REGISTERS):
+	Deleted spurious semicolons.
+	(ASM_DECLARE_RESULT):  New macro to generate the .proc directive.
+	(ASM_DECLARE_FUNCTION_NAME):  Changed to use ASM_DECLARE_RESULT.
+	(ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT):  Changed to use
+	ASM_GENERATE_INTERNAL_LABEL when generating jump table elements.
+
+	* svr4.h (SVR4):  Don't define this symbol here.  (It was never
+	needed, and it will be used to indicate an SVR4 *host* from now on.)
+	(SKIP_ASM_OP):  Define this new macro.
+	(ASM_OUTPUT_SKIP):  Use SKIP_ASM_OP.
+	(ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL):  Added
+	new definitions appropriate for most SVR4 assemblers.
+	(COMMON_ASM_OP, LOCAL_ASM_OP):  Define these new macros.
+	(ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL):  Use them.
+	(ASM_OUTPUT_ALIGNED_LOCAL):  Allocate things in common rather than
+	trying for the .bss section (which may not work).
+	(ASM_DECLARE_RESULT):  Define this to do nothing (if not already
+	defained for target machine).
+	(ASM_DECLARE_FUNCTION_NAME):  Add invocation of ASM_DECLARE_RESULT.
+
+	* dwarfout.c (ASM_DWARF_POP_SECTION):  Renamed ASM_OUTPUT_POP_SECTION.
+	(PUSHSECTION_ASM_OP, POPSECTION_ASM_OP):  New macro definitions.
+	(SECTION_ASM_OP):  Deleted.  Replaced by PUSHSECTION_ASM_OP.
+	(ASM_OUTPUT_PUSH_SECTION, PUSHSECTION_FORMAT):  New macro definitions.
+	(*_SECTION):  New macro definitions for important section name strings.
+	(ASM_DWARF_*_SECTION):  Deleted all macros to change to specific
+	sections and replaced them globally with calls to the new parameterized
+	ASM_OUTPUT_PUSH_SECTION macro.
+
+Sat Mar 28 17:28:17 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump Meissner version # to 15.
+	(output_block_move): Add function defintion.
+	(HALF_PIC_PTR, HALF_PIC_FINISH): Provide dummy definitions.
+	(OPTIMIZATION_OPTIONS): Set flag_gnu_linker to FALSE, and
+	flag_no_cse_function to TRUE.
+	(CC1PLUS_SPEC): Delete -- it just passed -fno-gnu-binutils to
+	cc1plus.
+
+	* mips.c (block_move function): Use movstri_internal, instead of
+	emitting the moves directly.
+	(output_block_move): New function to emit the correct code for block
+	moving a constant amount of data.
+	(siginfo): Change options to ps.
+
+	* mips.md (movstrsi_internal): New block move pattern.
+	(movsi_ulw): Add an appropriate REG_EQUIV regnote.
+	(movsi_usw): Type attribute is store, not load.
+
+	* mips-gbsd.h (toplevel): Include mips-bsd.h, not mips-gbsd.h.
+
+	* mips-bsd.h (MD_STARTFILE_PREFIX, MD_EXEC_PREFIX): Use explicit
+	BSD43 prefixes.
+
+	* mips-sysv.h (MD_STARTFILE_PREFIX, MD_EXEC_PREFIX): Use explicit
+	System V prefixes.
+
+	* mips-svr4.h (MD_STARTFILE_PREFIX, MD_EXEC_PREFIX): Use explicit
+	System V.4 prefixes.
+
+	* decstatn.h (TARGET_MEM_FUNCTIONS): Define.
+
+Sat Mar 28 15:12:39 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* libgcc2.c (eprintf): Make argument types comsistant with assert.h.
+	(__builtin_new, __builtin_vec_new): Declare all external functions.
+	(default_new_handler):  Use a macro for the "memory exausted" message.
+
+	* sparcv4.h:  File completely replaced (with one that works).
+
+Sat Mar 28 15:09:46 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* toplev.c (flag_gnu_linker): Default to 0 if USE_COLLECT2.
+
+	* i386.h (TARGET_SWITCHES): Add svr3-shlib.
+	(TARGET_SVR3_SHLIB): New macro.
+	* i386v.h (ASM_OUTPUT_LOCAL): Override definition here.
+
+	* Makefile.in (gcc.xtar): Update version in README.
+
+	* libgcc2.c [sparc] (__builtin_saveregs): Add optional .proc,
+	.type and .size assembler commands.
+
+	* dbxout.c (dbxout_type): New arg SHOW_ARG_TYPES.  All calls changed.
+	(dbxout_type_methods): Mostly rewritten, with Tiemann's help.
+
+	* Eliminate limit on alignment value of a variable or field.
+	* tree.h (DECL_ALIGN): Use frame_size slot.
+	(struct tree_decl): `align' slot deleted.
+	* print-tree.c (print_node): Print `align' or `frame_size', not both. 
+	* expr.c (get_pointer_alignment): Don't use DECL_ALIGN of function.
+	* c-decl.c (duplicate_decls, finish_enum): Likewise.
+	* tree.c (make_node): Likewise.
+	* c-common.c (decl_attributes): Eliminate limit of 255 on alignment.
+
+	* collect2.c: Don't include gstdarg.h or gvarargs.h.
+	Make error messages follow standards.
+	(error, fatal, fatal_perror): Don't use varargs.
+	Accept as many args as anyone tries to use.
+
+	* cp-decl2.c: Get rid of -fgnu-binutils.
+
+	* ns32k.h (INDIRECTABLE_ADDRESS_P): Deleted.
+	(GO_IF_NONINDEXED_ADDRESS): Delete dupllicate test for reg+offset.
+	(MEM_REG): Don't accept constant here.
+	(INDIRECTABLE_2_ADDRESS_P): Adapt usage of MEM_REG.
+	(GO_IF_INDEXING, GO_IF_INDEXABLE_ADDRESS): New macros.
+	(GO_IF_LEGITIMATE_ADDRESS): Use them.
+
+Sat Mar 28 20:48:20 1992  Chip Salzenberg  (chip at tct.com)
+
+	* stor-layout.c (layout_record, layout_union):
+	Limit effect of PCC_BITFIELD_TYPE_MATTERS to actual bitfields.
+	(layout_decl): Do not override a packed decl's alignment.
+
+	* c-common.c (decl_attributes): Don't expect a simple
+	attribute like "packed" to be in a LIST_NODE.
+
+	* c-decl.c (finish_struct): If a field has the "packed"
+	attribute, don't override it with type's normal alignment.
+
+Sat Mar 28 06:51:12 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* integrate.c (initialize_for_inline): Replace DECL_INCOMING_RTL
+	if it has an address shared with DECL_RTL, not just when the entire
+	value is shared.
+
+	* rs6000.c (input_operand): Clean up and make comments agree with
+	code; no changes to what is matched.
+
+	* loop.c (add_label_notes): Handle operands of type 'E'.
+
+	* rs6000.c (print_operand, case 'A'): Fix typo.
+
+Sat Mar 28 01:29:06 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* output.h (current_function_uses_const_pool): New declaration.
+
+	* i386.c (function_{prologue,epilogue}, simple_386_epilogue):
+	If the constant pool is used, the PIC reg will be used.	
+
+	* expr.c (expand_builtin): Add support for named pattern strlenM.
+	* expr.h (strlen_optab): New declaration.
+	* optabs.c (init_optabs): Initialize strlen_optabs.
+	* i386.md (strlensi): New pattern.
+
+Fri Mar 27 12:11:03 1992  Fred Fish  (fnf at fishpond)
+
+	* fixinc.svr4 (dbm.h):  Fix unconditional redefinition of NULL
+
+	* config.sub:  Add i486 as a distinct CPU type.  Recognize i486v4
+	as distinct from i386v4.  Change ncr3000 to i486.
+	* configure:  Add i486-ncr-sysv4.
+	* config/x-ncr3000:  New file.
+
+Fri Mar 27 18:44:45 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (twoval_comparison_p, eval_subst): New functions.
+	(fold): If an operand of a comparison is a COMPOUND_EXPR, move
+	it outside the comparison.
+	(case GT_EXPR, ...): Replace old code to fold comparisons
+	of comparisons with new code using new functions above.
+	When changing code of unsigned comparisons, set variable CODE.
+
+	* expr.c (get_inner_reference): Return BLKmode and -1 size for a
+	variable-sized object instead of aborting.
+	(do_jump, case COMPONENT_REF): If get_inner_reference returns a
+	size of -1, don't do anything special.
+	* fold-const.c (optimize_bit_field_compare, decode_field_reference):
+	Likewise.
+
+	* combine.c (reg_bitfield_target_p): Replace test with one that
+	compares the register number of X with that of a register which
+	is the target of the assignment.
+
+	* loop.h (struct_induction): New field maybe_multiple.
+	* loop.c (strength_reduce): Track when code may be executed more
+	than once per iteration; pass to record_biv.
+	Call update_giv_derive on every JUMP_INSN.
+	(record_biv): Copy new maybe_multiple arg to struct induction.
+	(record_giv): Clear maybe_multiple.
+	(update_giv_derive): If passing JUMP_INSN, look at maybe_multiple
+	in biv update.
+
+	* expr.c (expand_expr, case MODIFY_EXPR): Add missing call to
+	do_pending_stack_adjust.
+
+	* rs6000.h (OBJECT_FORMAT_COFF): Add definition.
+
+Fri Mar 27 15:58:42 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (check_format): If arg wants void *, accept any ptr.
+
+	* ns32k.md (CALL_MEMREF_IMPLICIT, MOVD_FLOAT_OK):
+	New parameters replace GAS_SYNTAX.
+	* pc532.h (CALL_MEMREF_IMPLICIT, MOVD_FLOAT_OK): Define both.
+	* sequent.h (CALL_MEMREF_IMPLICIT): Defined.
+
+	* sequent.h (INDEX_RATHER_THAN_BASE): Defined.
+	* ns32k.c (print_operand_address): Check it here.
+
+	* ns32k.c (print_operand_address): Treat all non-ints as symbolic.
+	(print_operand): Likewise.  Also fix typo, use PUT_ABSOLUTE_PREFIX,
+	and test NO_ABSOLUTE_PREFIX_IF_SYMBOLIC.
+
+	* svr4.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
+	Output newline after section op.
+	* i860v3.h (DTORS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP):
+	Delete newlines.
+
+	* Makefile.in (clean): Don't delete stage*.
+	(distclean): Do it here.
+	(extraclean): Delete config/patch*.
+
+	* Makefile.in (SYSCALLS.c): Target deleted.
+	(SYSCALLS.c.X): Create SYSCALLS.c and use it in one rule.  Delete also.
+
+	* Makefile.in (ld): New target.
+	* t-* (ld, collect2*): Targets deleted.
+	(EXTRA_PROGRAMS): Moved ld here if it was in EXTRA_PASSES.
+	(EXTRA_PASSES): Delete ld.
+
+	* gcc.c, cccp.c: Don't include sys/file.h.
+
+	* fold-const.c (operand_equal_p): Floats must match bit for bit.
+
+	* gcc.c (link_command_spec): Put back -u*.
+
+Fri Mar 27 11:33:46 1992  Simon J. Gerraty  (sjg@melb.bull.oz.au)
+
+	* configure (m68k-bull-sysv*): Added config for Bull DPX/2
+	* dpx2.h, dpx2g.h: New files.
+	* x-dpx2200, x-dpx2300, t-dpx2: New files.
+	* gstddef.h: Added _SIZET_ to the list of protection for size_t
+
+Fri Mar 27 14:47:47 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* c-typeck.c (convert_arguments): -Wconversion wrongly warned when
+	passing enums, and didn't warn about int precision mismatches.
+
+	* fold-const.c (fold): If IEEE, 0-x is not x.
+
+	* cse.c (simplify_unary_operation): fabs(-0.0) is 0.0, not -0.0.
+	* fold-const.c: Replace target_minus_zero with target_negative.
+	(fold_convert): Warn when converting NaN constants to integer.
+	(fold): fabs(-0.0) is 0.0, not -0.0.  0-x may not equal -x.
+	Do not optimize X++ == C to ++X == C+1 if C is floating point,
+	because it runs afoul of rounding error.
+	* real.h (REAL_VALUE_NEGATIVE): Add.
+
+Fri Mar 27 09:19:11 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.c (emit_move_sequence): Check the size required for a zero
+	constant.
+
+	* varasm.c (const_hash, compare_constant_1, record_constant_1):
+	For constructor of an array, include the size of the array in bytes.
+
+Fri Mar 27 09:09:53 1992  Michael Meissner  (meissner@osf.org)
+
+	* t-decstatn (ALL): Remove variable.
+	* t-decrose (ALL): Ditto.
+	* t-i386rose (ALL): Ditto.
+	* t-encrose (ALL): Ditto.
+
+Fri Mar 27 17:51:32 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* rs6000.c (first_reg_to_save): When profiling, save space for the
+	argument registers, which need to be saved around the mcount call.
+	(output_prolog): Mark the link register as live when profiling.
+	(output_function_profiler): New function.  Output code to call
+	mcount.
+	* rs6000.h (LIB_SPEC): Replace incorrect definition.  Add
+	-L/lib/profiled and -L/usr/lib/profiled when profiling, -lg when
+	debugging, and -lc always.
+	(OVERRIDE_OPTIONS): No longer zero profile_flag.
+	(FUNCTION_PROFILER): Call output_function_profiler.
+
+	* .gdbinit (complaints): Set to 20.
+	(pbs): New command to call the cc1plus print_binding_stack function.
+
+	* calls.c (expand_call): Delete obsolete references to is_builtin_new.
+
+	* Makefile.in (Makefile): Add dependence on version.c.
+
+Thu Mar 26 19:21:00 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (fixuns_truncMN2,fix_truncMdf2): Make a copy of the input
+	operand and clobber that, rather than clobbering the operand itself.
+
+Thu Mar 26 18:06:32 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* protoize.c (shortpath): Add early check of size of shortname.
+
+	* expr.c (do_jump): Adjust stack after any code that might be skipped.
+
+Thu Mar 26 06:37:35 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.c (toplevel): If NO_STAB_H is defined, include gstab.h
+	instead of stab.h.
+
+Thu Mar 26 02:21:50 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (STAGESTUFF): Add EXTRA_PROGRAMS.
+
+	* configure: Reorder mips alternatives; put mips-mips-* at end.
+
+	* sparc.h (FRAME_POINTER_REQUIRED): 0 if frame is too big.
+	* sparc.c (compute_last_frame_offset): New function.
+
+Wed Mar 25 21:17:36 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* genattrtab.c (check_attr_test): Use XSTR instead of XEXP in one
+	place.
+
+	* genextract.c (mark_operand_seen): Call xrealloc properly.
+
+Wed Mar 25 17:05:56 1992  Torbjorn Granlund  (tege at zevs.sics.se)
+
+	* hp800.c (srcsi_operand): New function.
+	* hp800.md (mulsi, divsi, udivsi, modsi, umodsi): Use srcsi_operand
+	for inputs.
+	(mulsi): Use general_operand for output.
+	(one_cmplsi2): Use register_operand for output.
+
+Wed Mar 25 15:50:12 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* m68k.md (fsgldiv pattern): If FSGLDIV_USE_S, opcode has .s, not .x.
+	* amix.h (FSGLDIV_USE_S): Defined.
+
+	* xm-rs6000.h (REAL_NM_FILE_NAME): Defined.
+
+	* x-i386sco (CCLIBFLAGS): Define as empty.
+
+Wed Mar 25 16:52:53 1992  Michael Meissner  (meissner at osf.org)
+
+	* collect2.c (OSF/rose scan_prog_file): If we are building a
+	program instead of a shared library, don't create an initializer
+	function entry.
+
+Tue Mar 24 04:00:00 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.1 released.
+
+	* xcoffout.h: Renamed from xcoff.h.
+	* dbxout.c, final.c, toplev.c, varasm.c, xcoffout.c: Use new name.
+	* Makefile.in: Corresponding changes.
+
+	* dbxout.c (dbxout_type): Don't check DECL_IGNORED_P.
+
+	* t-rs6000: Complete replacement, to build collect2 properly.
+
+	* Makefile.in (mostlyclean): Delete sorted indices that aren't used.
+	(extraclean): Delete patch outputs, *.d, *.Z, *.tar.
+
+	* Makefile.dos (getpwd.o): New target.
+	(OBJS, protoize, unprotoize): Add getpwd.o.
+	(SYSCALLS.c, SYSCALLS.c.X): Copy from Makefile.in.
+
+Tue Mar 24 06:26:26 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+        * cse.c (cse_insn): When deleting dead code after
+        making unconditional branch, check for end of chain.
+
+	* sched.c (update_flow_info): Add code for REG_LABEL case.
+
+	* function.c (instantiate_virtual_regs_1): Don't modify a MEM
+	without copying it unless the modified MEM is valid.
+
+	* cse.c (rtx_cost): Assign ASM_OPERANDS a high cost.
+
+Tue Mar 24 05:48:25 1992  Ken Raeburn  (raeburn@wombat.gnu.ai.mit.edu)
+
+	* cp-*: Disabled 22 March changes relating to dbxout.c; the problem
+	will be fixed properly, with more extensive reworking of the C++
+	front end, later.  This fix was buggy.
+	* dbxout.c (dbxout_type_methods): Reverted 22 March changes; if a
+	template class is passed, print a warning message and emit no info
+	about methods.
+
+Mon Mar 23 14:18:30 1992    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* make-cc1.com: Add getpwd.c.
+
+Mon Mar 23 12:53:02 1992  Jyrki Kuoppala  (jkp@batman.cs.hut.fi)
+
+	* pc532-min.h (HAVE_ATEXIT): Defined.
+
+	* ns32k.c (print_operand) [PC_RELATIVE]:
+	Always use output_address for MEM.
+
+	* pc532.h (BASE_REG_NEEDED): Defined.
+
+Mon Mar 23 07:28:14 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): Correct error in last change; don't
+	pass STRICT_LOW_PART or ZERO_EXTRACT to reg_overlap_mentioned_p.
+
+	* sun3.h (CPP_SPEC): Delete extra brace.
+
+Mon Mar 23 02:43:56 1992  Michael Tiemann  (tiemann@mole.gnu.ai.mit.edu)
+
+	* cp-decl.c (pop_from_top_level): Take care of C_C_D.
+
+Sun Mar 22 17:24:09 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pyr.h: Remove TARGET_INDEX.  Update other TARGET switches.
+	Fix several comments.
+	(REGNO_OK_FOR_BASE_P): Allow reg 0.
+	(REGNO_OK_FOR_INDEX_P): Reformulate.
+	(REG_OK_FOR_INDEX_P): Disallow reg 0.
+
+Sun Mar 22 15:10:49 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips-tfile.c (mark_stabs): Make function defintion agree with
+	prototype.
+
+	* mips.md (cpu, branch_likely attributes): Make these attributes
+	const.
+	(all functional units): Restore functional units that look at the
+	-mcpu= switch for scheduling now that genattrtab uses less memory.
+
+Sun Mar 22 13:57:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (convert_for_assignment):
+	Only explicit 0 converts to pointer.
+
+	* Makefile.in (doc): Don't depend on gplus.info.
+	(gplus.info): Target deleted.
+
+	* c-decl.c (store_parm_decls): Call build_type_copy with just one arg.
+
+	* cccp.c (do_include): Use entire filename when checking for repeat.
+	Use lookup_include.
+	(lookup_include): New function.
+
+	* protoize.c (find_extern_def): Store ??? one char at a time.
+
+	* sparc.h (ASM_OUTPUT_FLOAT): Fix typo.
+
+	* fold-const.c (operand_equal_p): Reject NaNs and infinities.
+
+	* varasm.c (immed_real_const): Distinguish minus zero from zero.
+
+	* sparc.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT):
+	Use `inf' for infinities.  Use hex for minus-zero.
+
+	* objc-actions.c (build_selector_translation_table):
+	Don't make a duplicate decl here for _OBJC_SELECTOR_REFERENCES.
+	Just call finish_decl to store the initial value.
+	Call push_obstack_nochange to balance with finish_decl.
+	Use selector_type for declaring individual selector names.
+
+Sun Mar 22 13:11:32 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (update_giv_derive): Correctly handle the case where
+	more than one biv update occurs after a giv is defined.
+
+	* cse.c (rehash_using_reg): Add missing arg to call to exp_equiv_p.
+
+	* expmed.c (expand_mult_add): Add missing arg to call to type_for_mode.
+
+	* reorg.c (fill_slots_from_thread): In the case where have a reg-reg
+	copy and will substitute our destination for our source in the
+	following insn, correctly check for it modifying our destination.
+	
+Sun Mar 22 09:20:16 1992  Michael Tiemann  (tiemann@cygnus.com)
+
+	* cp-typeck.c (unary_complex_lvalue): Don't complain about taking
+	the ``address'' of a bound static method or member.
+
+	* cp-init.c (resolve_offset_ref): Fix bug in handling of static
+	members and member functions.
+
+	* cp-decl2.c (finish_file): If CURRENT_CLASS_TYPE is non-NULL on
+	entry to this function, punt.
+
+	* cp-parse.y (template_parm): Use CLASS_TYPE_NODE instead of
+	CLASS_TYPE value.
+
+	* cp-cvt.c (build_type_conversion): Add another add-hoc rule to find
+	unsigned->int conversion (if conversion to long does not exist).
+
+	* cp-method.c (build_overload_name): Don't call `array_type_nelts'
+	if the TYPE_DOMAIN of an array type is NULL_TREE.
+
+	* cp-init.c (build_offset_ref): Set up and use DECL even in case
+	where NAME resolves to a method.
+
+	* cp-call.c (ideal_candidate): Half of Jan 28 change was missing.
+	Now PARMS are not converted in place if BASETYPE is NULL.
+
+	* cp-typeck.c (build_component_ref): Don't return a TYPE_DECL.
+
+	* cp-type2.c (build_functional_cast): If CURRENT_FUNCTION_DECL is
+	NULL, don't wrap EXPR_AS_CTOR in a NEW_EXPR.  This make it possible
+	to parse default initializers that involve constructor calls.
+	* cp-typeck.c (convert_for_initialization): Handle this change.
+	* cp-method.c (dump_init): Grok INDIRECT_REFs that have
+	TREE_HAS_CONSTRUCTOR set.
+
+	* cp-decl.c (push_overloaded_decl): Don't use the
+	DECL_ASSEMBLER_NAME for GLOB as the TREE_PURPOSE of the new GLOB.
+	Use ORIG_NAME instead.
+
+	* cp-decl.c (grokvardecl): If FIELD has incomplete type, complete it
+	with TYPE.
+
+	* cp-decl2.c (flag_this_is_variable): Define the value -2 to mean an
+	object of known type is being constructed.
+	* cp-decl.c (resolves_to_fixed_type_p): Test FLAG_THIS_IS_VARIABLE
+	for the value -2 instead of testing DECL_CONSTRUCTOR_P in case we
+	are looking at `current_class_decl'.
+	* cp-search.c (init_vbase_pointers): Set FLAG_THIS_IS_VARIABLE to -2
+	instead of 0.
+	(build_vbase_vtables_init): Ditto.
+	* cp-*.c: All tests of FLAG_THIS_IS_VARIABLE changed to reflect the
+	new semantics.
+
+	* cp-typeck.c (comptypes): Don't use IS_AGGR_TYPE_2; test explicitly
+	that both are RECORD_TYPE.
+	(build_binary_op_nodefault): Ditto.
+	(convert_for_assignment): Ditto.
+	* cp-cvt.c (convert_to_pointer): Ditto.
+	(convert_to_pointer_force): Ditto.
+	* cp-call.c (convert_harshness): Ditto.
+
+	* cp-search.c (get_first_matching_virtual): Fix typo.
+
+	* cp-tree.c (layout_basetypes): When warning about certain
+	inheritance relationships, only print "virtual" when the
+	inheritance is virtual.
+
+Sun Mar 22 01:28:41 1992  Ken Raeburn  (Raeburn@Cygnus.COM)
+
+	Fix dbx info for methods of template classes:
+	* cp-decl.c (make_type_decl): New function.  Creates a TYPE_DECL
+	node and assigns as its DECL_ASSEMBLER_NAME the encoded form of the
+	type name as it will be used in assembler output.  All calls to
+	build_decl(TYPE_DECL,...) changed to call this.
+	* dbxout.c (dbxout_type_methods): Instead of skipping digits and
+	assuming the human-readable type name follows in the assembler names
+	for methods, use DECL_ASSEMBLER_NAME of the type.
+	Handle the special DECL_NAME that is made for templates.
+	* cp-lex.c (build_lang_field_decl): Set DECL_ASSEMBLER_NAME
+	correctly if new decl is a TYPE_DECL.
+	(build_lang_decl): Ditto.
+	* cp-decl.c (pushdecl): Use DECL_ASSEMBLER_NAME only for
+	FUNCTION_DECL and VAR_DECL nodes; all others use DECL_NAME.
+	* cp-tree.h (make_type_decl): Declare it.
+
+	* cp-pt.c (overload_template_name, undo_template_name_overload):
+	Revert 4 March change.
+
+	* cp-decl2.c: No longer define NEW_OVERLOAD_SCHEME.
+	(grokfield): Use new encoding scheme always.
+
+	* cp-pt.c (overload_template_name): Deleted extra assignment to
+	IDENTIFIER_LOCAL_VALUE slot.
+
+	* cp-method.c (dump_aggr_type): Use DECL_CONTEXT rather than
+	DECL_CLASS_CONTEXT.
+
+	* cp-pt.c (instantiate_class_template): Move some common code from
+	two branches to before branch point.
+
+	* cp-method.c (dump_aggr_type): Don't discard last character of
+	context string; it's not whitespace.
+
+Sun Mar 22 15:58:48 1992  Per Bothner  (bothner@rtl.cygnus.com)
+
+	* cp-tree.h: Add more enum->int casts needed by some compilers.
+
+Sun Mar 22 20:40:25 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-typeck.c (build_modify_expr): Handle preincrement and
+	predecrement as valid lvals.
+
+	* gplus.gperf: Finish off changing ASM to ASM_KEYWORD.
+	* cp-hash.h: Rebuilt.
+
+Sat Mar 21 15:43:04 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_c_cast): Don't warn if convert explicit 0 to ptr.
+
+	* local-alloc.c (wipe_dead_reg): If insn has multiple sets and
+	the reg appears in a destination, extend life to end of insn.
+	* global-alloc.c (global_conflicts): Analogous change.
+	(mark_reg_conflicts): New function.
+	* combine.c (try_combine): If I2 has multiple dests, make sure
+	we don't change one of them to overlap anything used within another.
+
+	* configure (pyramid): Commented out.
+
+	* toplev.c (main): Handle -gen-aux-info, with argument.
+	(compile_file): Assume aux_info_file_name already computed.
+	Don't make it local here.
+	* protoize.c (munge_compile_params): Produce -aux-info.
+	Set aux_info_file_name_index.
+	(gen_aux_info_file): Produce and store the aux-info file name.
+	(input_file_name_index): Renamed from filename_index.
+	(aux_info_file_name_index): New var.
+	* Makefile.in (SYSCALLS.c.X): Use -aux-info.
+	* gcc.c, hp800.h, next.h, sparc.h, sun2.h, sun3.h, svr4.h:
+	(WORD_SWITCH_TAKES_ARG): Handle -aux-info.
+	* gcc.c (default_compilers): Pass -aux-info to cc1*.
+
+	* configure (mips-*-sysv*): Renamed from mips-*-sysv and moved down.
+
+	* gcc.c (execute): Undo Mar 12 change.
+
+	* configure (i386-*-bsd*): New alternative.
+	* i386bsd.h: New file.
+
+Sat Mar 21 15:14:08 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* sparc.c (output_move_double):  Check for XEXP (op2, 0) being a
+	LOW_SUM, rather than checking op2.  Handle both ldd and std there.
+
+Sat  Mar 21 14:14:10 1992    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* vms.h (CPP_PREDEFINES): Do not define __GNU__.
+
+Sat Mar 21 21:35:37 1992  Jyrki Kuoppala  (jkp@batman.cs.hut.fi)
+
+	* ns32k.md (call_value): Added a missing "{".
+
+	* ns32k.c (print_operand): Fixed typo X -> x, FILE -> file.
+
+Sat Mar 21 11:11:04 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump Meissner version # to 14.
+	(CPP_PREDEFINES): Always define SYSTYPE_BSD43.
+	(CPP_SPEC): Don't define it here.
+	(ASM_SPEC): Pass -cpp/-nocpp/-mips1/-mips2/-mips3 to MIPS assembler,
+	and only pass -nocpp by default unless .s files are assembled for
+	MIPS compatibility.
+	(LINK_SPEC): Pass -mips1/-mips2/-mips3 to MIPS linker.
+	(MD_STARTFILE_PREFIX): Define to be /usr/lib/cmplrs/cc/ if not
+	already defined.
+	(NM_FLAGS): Define as appropriate for most MIPS systems.
+	(PREFERRED_DEBUGGING_TYPE): If -ggdb prefer stabs over the normal
+	ECOFF debug format, but -g selects ECOFF.
+	(DEFAULT_GDB_EXTENSIONS): Define as 1.
+	(DOLLARS_IN_IDENTIFIERS): Don't define if already defined.
+
+	* mips.c (mips_output_filename): If emitting encapsulated stabs,
+	emit #@stabs immediately after the first .file, so that the @stabs
+	is the second symbol.  GDB 4.4 only checks symbol #2 to see whether
+	it is encapsulated stabs, or ECOFF.
+
+	* mips.md (subdi define_splits): Use ltu instead of lt.
+	(branch_zero_true): Generate correct code when not optimizing, and
+	an always true/false branch is generated.
+	(branch_zero_false): Ditto.
+
+	* mips-bsd.h (CPP_PREDEFINES): Always define SYSTYPE_BSD43.
+	(CPP_SPEC): Don't define it here.  Remove -Z{BSD43,SYSV} support.
+	Don't pass -I in here.
+	(SYSTEM_INCLUDE_DIR): Define to be /bsd43/usr/include.
+	(LINK_SPEC): Pass -mips1/-mips2/-mips3 to the linker.  Remove
+	-Z{BSD43,SYSV} support.  Always pass -systype /bsd43/ to the linker.
+
+	* mips-sysv.h (CPP_PREDEFINES): Always define SYSTYPE_SYSV.
+	(CPP_SPEC): Don't define it here.  Remove -Z{BSD43,SYSV} support.
+	Don't pass -I in here.
+	(SYSTEM_INCLUDE_DIR): Define to be /sysv/usr/include.
+	(LINK_SPEC): Pass -mips1/-mips2/-mips3 to the linker.  Remove
+	-Z{BSD43,SYSV} support.  Always pass -systype /sysv/ to the linker.
+	(MD_STARTFILE_PREFIX): Remove, this is now defined in mips.h.
+
+	* mips-news.h (CPP_SPEC): Don't pass -I in here.
+	(SYSTEM_INCLUDE_DIR): Define to be /usr/include2.0.
+	(ASM_SPEC): Pass -cpp/-nocpp/-mips1/-mips2/-mips3 to MIPS assembler,
+	and only pass -nocpp by default unless .s files are assembled for
+	MIPS compatibility.
+	(LINK_SPEC): Pass -mips1/-mips2/-mips3 to the linker.
+
+	* mips-news5.h (CPP_PREDEFINES): Define SYSTYPE_SYSV.
+	(CPP_SPEC): Don't define it here.  Remove -Z{BSD43,SYSV} support.
+	Don't pass -I here.
+	(LINK_SPEC): Pass -mips1/-mips2/-mips3 to the linker.
+
+	* iris.h (ASM_SPEC): Pass -cpp/-nocpp/-mips1/-mips2/-mips3 to MIPS
+	assembler, and only pass -nocpp by default unless .s files are
+	assembled for MIPS compatibility.
+	(LINK_SPEC): Pass -mips1/-mips2/-mips3 to the linker.
+
+	* iris.h (DOLLARS_IN_IDENTIFIERS): Define as 0, for iris assembler.
+	(NO_DOLLAR_IN_LABEL): Define, to force static constructors to use a
+	period instead of a dollar sign.
+
+	* decstatn.h (ASM_SPEC): Pass -cpp/-nocpp/-mips1/-mips2/-mips3 to
+	MIPS assembler, and only pass -nocpp by default unless .s files are
+	assembled for MIPS compatibility.
+	(LINK_SPEC): Pass -mips1/-mips2/-mips3 to the MIPS linker.
+
+	* decsrose.h (ASM_SPEC): Pass -cpp/-nocpp/-mips1/-mips2/-mips3 to
+	MIPS assembler, and only pass -nocpp by default unless .s files are
+	assembled for MIPS compatibility.
+	(LINK_SPEC): Pass -mips1/-mips2/-mips3 to the MIPS linker.
+
+	* Makefile.in (collect2.o): Define macros where the standard places
+	binaries are installed, so that if it is invoked outside of gcc, it
+	has a better chance of finding the correct version of the tools to
+	invoke.
+
+	* mips-tdump.c (toplevel): Declare things void * on Silicon Graphics.
+
+	* mips-tfile.c (toplevel): Declare things void * on Silicon
+	Graphics.
+	(stabs_seen): Move static variable to file scope.
+	(mark_stabs): New function to put out the @stabs symbol for GDB to
+	switch to encapsulated stabs.
+	(pseudo_ops): Call mark_stabs if #@stabs found.
+	(parse_stabs_common): Call mark_stabs if needed to add @stabs.
+
+	* sdbout.c (sdbout_dequeue_anonymous_types): Don't core dump if
+	TREE_VALUE is null.
+
+	* decstabs.h (new file): DECstation w/encapsulated stabs.
+	* irisgdb.h (new file): SGI iris w/encapsulated stabs.
+	* mips-gbsd.h (new file): Mips BSD43 w/encapsulated stabs.
+	* mips-gdb.h (new file): Mips w/encapsulated stabs.
+	* mips-gnews.h (new file): Sony NEWS w/encapsulated stabs.
+	* mips-gnews5.h (new file): Sony NEWS 5.0 w/encapsulated stabs.
+	* mips-gsvr4.h (new file): Mips SV.4 w/encapsulated stabs.
+	* mips-gsysv.h (new file): Mips SV.3 w/encapsulated stabs.
+	* mips-svr4.h (new file): Mips System V.4.
+	* x-iris (new file): Specify that iris needs alloca.o since it's
+	alloca is buggy.
+
+	* dbxout.c (toplevel): If NO_STAB_H is defined, include gstab.h just
+	like if USG is defined.
+	* final.c (toplevel): Ditto.
+	* mips-tfile.c (toplevel): Ditto.
+	* xcoffout.c (toplevel): Ditto.
+
+	* xm-mips.h (NO_STAB_H): Define, except on OSF/1.
+
+Fri Mar 20 23:51:54 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reg-stack.c (subst_asm_stack_regs): A REG_UNUSED note never
+	applies to an input reg, even if that reg is tied to an output.
+
+	* reg-stack.c (record_asm_reg_life): Use XVECLEN only on a PARALLEL.
+	(subst_asm_stack_regs): Likewise.
+
+Fri Mar 20 18:57:43 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump Meissner version # to 13.
+	(mips_declare_object): Declare new function.
+	(ASM_OUTPUT_LABEL): Remove cruft from when collect spit out assembly
+	language instead of C code.
+	(ASM_GLOBALIZE_LABEL): Ditto.
+	(ASM_OUTPUT_INT): Ditto.
+	(ASM_OUTPUT_INT_CONST): Remove, no longer used.
+	(ASM_OUTPUT_PTR_INT_SUM): Ditto.
+	(ASM_OUTPUT_LABEL): Don't set that we've seen an identifier here.
+	(ASM_DECLARE_OBJECT_NAME): New macro, call mips_declare_object to
+	emit the label, and mark that no .extern is needed for the name.
+	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Call mips_declare_object.
+
+	* mips.c (mips_declare_object): New function to output the stuff
+	needed for global variables, bss variables, and static bss
+	variables.
+
+Fri Mar 20 14:13:32 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cp-xref.c (GNU_xref_file): Get rid of arbitrary limit--malloc nmbuf.
+
+	* cp-parse.y (scoped_id): Error if spec'd type is undefined.
+
+	* m68k.c (output_function_epilogue): Output at least a nop.
+
+	* xm-hp320.h (USG): Defined.
+
+	* m68k.c (output_function_prologue, output_function_epilogue):
+	Change %I to %0I.
+	(print_operand): Likewise.
+
+	* varasm.c (data_section): Add forward decl.
+
+	* m68k.c (print_operand): Make %! print fpcr.
+	* crds.h, hp320.h, mot3300.h, news.h, tower-as.h (PRINT_OPERAND):
+	Likewise.
+	* m68k.md (fix_trunc*): Use %!.
+
+	* toplev.c (compile_file): Optionally call setvbuf for output file.
+
+	* loop.c (move_movables): Fix typo.
+
+Fri Mar 20 17:42:12 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* Makefile.in (SYSCALLS.c): Use `cat' to create this file, instead
+	of having it consist of `#include' directives.
+	(mostlyclean): Delete SYSCALLS.c.
+	* SYSCALLS.c: File deleted.
+
+	* getpwd.c (new file): Get and cache working directory, using PWD
+	if it works and getcwd otherwise.
+	* Makefile.in (OBJS, protoize): add getpwd.o
+	* cp-xref.c (GNU_xref_file): Likewise.
+	* dbxout.c (dbxout_init): Likewise.
+	* dwarfout.c (output_compile_unit_die): Likewise.
+	* protoize.c (main): Likewise.
+
+Fri Mar 20 12:58:57 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* dwarfout.c (location_or_const_value_attribute):  Fixed to use
+	DECL_INCOMING_RTL as the "location" for formal parameter variables.
+
+Fri Mar 20 13:26:16 1992  Michael Collison  (collison@osf.org)
+
+	* i386rose.h (INIT_SECTION_ASM_OP): OSF doesn't support a true
+	initialization section.
+
+Fri Mar 20 07:23:15 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (set zero_extract patterns): Use the + constraint.
+
+	* crtstuff.c (__do_global_ctors_aux): Declare it.
+
+	* m88k.h (CONDITIONAL_REGISTER_USAGE): Mark the PIC register fixed,
+	but not call used.
+    
+	* m88k.c (m88k_builtin_saveregs): Get a properly aligned block.
+
+	* m88k.md (cpu attribute): Use const form.
+
+	* m88k.h, m88k.c, m88kdgux.h (uses of *_ASM_OP): Add tabs.
+
+Fri Mar 20 05:46:26 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expmed.c (emit_store_flag): Need to prevent SUBTARGET from being
+	OP0 in one more case.
+
+	* loop.c (add_label_notes): New function.
+	(move_movables): Use it when hoisting a `move_insn' movable
+	to ensure we create any required REG_LABEL notes.
+
+	* hp800.h (CONDITIONAL_REGISTER_USAGE): Make reg 27 a global_reg
+	for now.
+
+	* combine.c (make_field_assignment): Use correct mode when shifting
+	the source of the assignment.
+
+	* fold-const.c (invert_truthvalue): Correct error in last change.
+
+Thu Mar 19 18:59:24 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* stmt.c (expand_end_case): Convert do_tablejump arg to Pmode.
+
+Thu Mar 19 16:54:15 1992  Michael Meissner  (meissner@osf.org)
+
+	* collect2.c (main): Only pass -fxxx and -mxxx options to gcc when
+	building constructors.
+
+Thu Mar 19 16:44:21 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (invert_truthvalue): Correctly check for floating
+	comparison.
+
+Thu Mar 19 14:42:49 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* function.c (expand_main_function): Do so if INVOKE__main is defined.
+	* libgcc2.c (__main): Provide if INVOKE__main is defined.
+	* crtstuff.c (__do_global_ctors_aux): Renamed from __do_global_ctors.
+	(__do_global_ctors): Simple non-static function that invokes
+	__do_global_ctors_aux.
+
+	* crtstuff.c ({CTOR,DTOR}_LIST_{BEGIN,END}): Allow alternate way
+	to represent and define __{CTOR,DTOR}_LIST__.
+	* i386v.h, aix386.h (CTOR_LIST_{BEGIN,END}): Use these to push
+	instead of the funny definition of CTORS_SECTION_ASM_OP.
+	* svr3.h (CTORS_SECTION_ASM_OP): Use the .init section.
+
+	* m88kv3.h (CTOR_LIST_BEGIN): Emit code to .init to push a zero.
+	(CTOR_LIST_END): Do nothing.
+	(ASM_OUTPUT_CONSTRUCTOR): Emit code to .init to push the address.
+	(DTOR_LIST_{BEGIN,END}): Output a block of four words.
+	(ASM_OUTPUT_DESTRUCTOR): Output the address and three words of -1.
+	(DO_GLOBAL_DTORS_BODY): Ignore all values of -1.
+
+	* real.h (REAL_VALUE_ISNAN): Define.
+	* fold-const.c (target_isnan): New function.
+	* sun3.h, sparc.h (ASM_OUTPUT_{FLOAT,DOUBLE}): Use REAL_VALUE_ISNAN.
+
+	* sun3.h: Delete extra #endif.
+
+Thu Mar 19 14:25:50 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* hp800.c (output_move_double): Don't check for CONST_DOUBLE
+	when classifying operand types, CONSTANT_P now includes it.
+	Use split_double to assign operand vectors for CNSTOP.
+
+Thu Mar 19 13:59:16 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* hp320.h (SPACE_AFTER_L_OPTION): Defined.
+	(LIB_SPEC): Defined. 
+
+	* toplev.c (compile_file): Output aux_info_file in source file's dir.
+
+Wed Mar 18 17:42:12 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* c-aux-info.c (gen_aux_info_record): Don't put the absolute path
+	name into the output file: it's useless, expensive, and often wrong.
+	Use "." instead.
+	* protoize.c (is_syscalls_file): Look for SYSCALLS.c only at the
+	end of the file name.
+	(abspath): Remove useless test of '\0' versus '/'.  Add apollo fix.
+	(shortpath): Stop when replacement filename is longer than the
+	original; this avoids buffer overrun.  Do not pretend that
+	`a/b/c' is a path prefix of `a/b/cd'.
+	(gen_aux_info_file): Report errors when compilation fails.
+	Do not use stdio in child process.
+	Don't say `exit(errno)'; errno might be too large.
+	(process_aux_info_file): Increment error count if aux info file cannot
+	be generated.  Allow the invocation filename to be relative;
+	for now, it will always be ".".
+	(do_processing): Replace strlen (x) with sizeof (x) - 1.
+
+Thu Mar 19 13:31:24 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* cse.c (simplify_binary_operation, PLUS and MINUS cases): Use
+	arg0s and arg1s instead of arg0 and arg1, so that resulting values
+	will be sign extended.
+
+	* sched.c (sched_analyze_1): Don't call sched_analyze_2 at the end.
+	This code was never executed, and is wrong.
+	(sched_analyze_2): Convert from if statements to a switch.
+	Add support for PRE_DEC/PRE_INC/POST_DEC/POST_INC; pass them to
+	sched_analyze_1 because they are writes.
+	(sched_analyze_insn): Delete special case code to handle REG_INC
+	notes, obsoleted by change above.
+
+	* sparc.c (output_block_move): Rewrite to more efficiently handle
+	constant length strings whose length is not a multiple of their
+	alignment.  Also, the length of strings handled without a loop now
+	is a multiple of their alignment, instead of fixed size.
+
+	* objc-actions.c (build_selector_translation_table): Add cast for
+	array index from enum to int to satisfy old compiler.
+
+	* c-parse.gperf: Change ASM to ASM_KEYWORD.
+	* gplus.gperf: Likewise.
+
+	* Makefile.in (install-man): Delete duplicate lines.
+
+Thu Mar 19 02:32:06 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (init_decl_processing): Disable `sqrt'.
+
+Thu Mar 19 01:09:16 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.c (output_move_double): Properly check for signedness in a
+	const_double.
+
+Wed Mar 18 18:51:37 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (link_command_spec) [not LINK_LIBGCC_SPECIAL]: Put back -s.
+
+	* config.sub (i486): Accept as CPU type.
+
+	* collect2.c (do_wait): Handle NO_SYS_SIGLIST.
+	* xm-hp320.h (NO_SYS_SIGLIST): Defined.
+
+Wed Mar 18 15:58:31 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* crtstuff.c, dwarfout.c, svr3.h, svr4.h (*_ASM_OP): Remove tabs
+	and newlines.
+	* dwarfout.c, svr3.h, svr4.h
+	(ASM_OUTPUT_*, ASM_DECLARE_*, ASM_DWARF_*): Put tabs here when needed.
+
+Wed Mar 18 17:26:44 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* svr4.h (MULTIBYTE_CHARS):  Added definition.
+
+Wed Mar 18 17:36:30 1992  Michael Meissner  (meissner@osf.org)
+
+	* gcc.c (collect_obstack): New static obstack to build the
+	environment variables to pass to collect, so that it can reliably
+	find the compiler passes.
+	(putenv): New function to add a variable to the environment.
+	Stubbed out for MSDOS and VMS at present, or if HAVE_PUTENV is
+	defined.
+	(putenv_from_paths): New function to take a path list, and build
+	the corresponding environment variable for it.
+	(main): Pass argv[0] to collect through the environment variable
+	COLLECT_GCC.  Rebuild the COMPILER_PATH and LIBRARY_PATH
+	environment variables to include all prefixes specified with -B,
+	-b, and -V.  Construct COLLECT_GCC_OPTIONS environment variable to
+	consist of all of the options passed to gcc, except for the -B,
+	-b, and -V options.
+
+	* collect2.c (main): Correctly size the number of arguments passed
+	to the compiler when building the constructor lists to account for
+	any options passed through the environment variable
+	COLLECT_GCC_OPTIONS.  If the environment variable COLLECT_GCC
+	specifies a full pathname, use that for the pathname to invoke gcc
+	with.  Print the name "collect2" in lowercase if -v.
+
+	* xm-mips.h (HAVE_PUTENV): Define if OSF/1.
+
+Wed Mar 18 07:27:50 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* hp800.c (actual_fsize): Remove duplicate declaration.
+	(profile_flag): Remove definition; defined in flags.h.
+	(hp_profile_labelno, local_fsize, save_fregs): Move declarations to
+	top of file.
+
+	* hp800.h (OPTIMIZATION_OPTIONS): Do same thing as Sparc.
+
+	* combine.c (reg_bitfield_target_p): Use rtx_equal_p instead of
+	assuming the actual rtx is used.
+
+Wed Mar 18 00:20:38 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gstddef.h: Handle _GCC_PTRDIFF_T, _GCC_SIZE_T, _GCC_WCHAR_T.
+	* fixincludes: Use those macros in inserted conditionals.
+
+	* gstddef.h: Handle _T_SIZE_ and _T_PTRDIFF_, like _T_WCHAR_.
+
+	* sun3.h (CPP_SPEC): Delete the alternative for fpa as default.
+	Define symbols with __ as well as without.
+
+	* hp320.h (LINK_LIBGCC_SPECIAL, RELATIVE_PREFIX_NOT_LINKDIR):
+	Define unless USE_GAS.
+
+Tue Mar 17 17:19:07 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes (making directories): Always use find.
+
+	* c-decl.c (pushdecl): Don't warn if define nonansi builtin as static,
+	or if define ANSI builtin as inline static.
+
+	* hp800hpux.h (LINK_LIBGCC_SPECIAL, RELATIVE_PREFIX_NOT_LINKDIR): New.
+
+	* fixinc.svr4: Special changes for Sony MIPS-NEWS.
+
+Tue Mar 17 15:12:57 1992  Tim Moore  (moore@defmacro.cs.utah.edu)
+
+	* hp800.h (INITIAL_FRAME_POINTER_OFFSET): Get sign right, include
+	fixed area.
+
+Tue Mar 17 14:06:01 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (all.indirect): Renamed from all-internal.
+
+	* t-mips (ALL): Deleted.
+
+Tue Mar 17 10:35:18 1992  Michael Meissner  (meissner@osf.org)
+
+	* halfpic.c (half_pic_address_p): Fix typo in last change.
+
+	* x-decrose (CLIB): Add -lbsd, since vfork moved to libbsd.a.
+	* x-encrose (CLIB): Ditto.
+	* x-i386rose (CLIB): Ditto.
+
+Tue Mar 17 07:02:29 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* mips.md (movdi): FP_REGS don't allow DImode, so remove them
+	from the constraints.
+
+	* mips.md (unaligned moves): Use UNSPEC to distinguish SETs that are
+	unaligned from those that aren't.
+
+	* combine.c (try_combine): Update LOG_LINKS correctly when we split a
+	PARALLEL that loads from memory both as a full-word and sign-extended.
+
+Tue Mar 17 21:23:10 1992    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* vax.c (split_quadword_operands): Fix typo.
+
+	* make-cc1.com: Add xcoffout.c.
+
+Mon Mar 16 17:12:26 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure (mips-dec-ultrix*): Use x-decstatn.
+	* x-decstatn (CLIB): Delete.
+
+	* expr.c (move_by_pieces_1): Add negative ints--don't subtract ints.
+
+	* next.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Turned off.
+	* t-next (EXTRA_PROGRAMS, ld): Use collect2.
+	* configure (m68k-next-*): Use t-next.
+
+	* mips-bsd.h (TARGET_MEM_FUNCTIONS): Defined.
+
+Mon Mar 16 14:04:08 1992  Tim Moore  (moore@defmacro.cs.utah.edu)
+
+	* hp800.md (movsi + 10, movsi + 11): Add '*' to constraints.
+	(fix_truncsfsi2, fix_truncdfsi2): Add an alternative to put result
+	directly in a general register.
+	* hp800.h (ASM_DECLARE_FUNCTION_NAME): If function is not
+	TREE_PUBLIC, don't do the argument descriptor magic.
+	(EXPAND_BUILTIN_SAVEREGS): call hppa_builtin_saveregs.
+	(LEGITIMIZE_ADDRESS): Don't legitimize CONST addresses.
+	(TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Put tabs back in.
+	* xm-hp800.h (S_ISDIR): Define for BSD.
+
+	* hp800.c (hppa_builtin_saveregs): New function.
+	* va-hp800.h : Rewrite.
+
+
+Sun Mar 15 23:38:39 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-actions.c (really_start_method): Dynamically allocate `buf'.
+
+	* sparc.h (TARGET_HOPE_ALIGN): Renamed from TARGET_ALIGN.
+	* sparc.c (output_move_double, output_fp_move_double): Use new name.
+	* sparc.h (TARGET_FORCE_ALIGN): New flag.
+	(FUNCTION_ARG_BOUNDARY): Defined.
+	(FUNCTION_ARG, FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE):
+	(FUNCTION_ARG_PARTIAL_NREGS): Handle TARGET_FORCE_ALIGN.
+	(ROUND_REG): New subroutine macro.
+
+	* sparc.h (CC1_SPEC): Don't try to recognize -dalign.
+
+	* hp320.h (ASM_OUTPUT_ASCII): Put tab here.
+	(ASCII_DATA_ASM_OP): Not here.
+	* mot3300.h: Likewise.
+
+	* Makefile.in (mostlyclean): Don't delete .s or .i files.
+	(extraclean): Do that here.
+
+	* a29k.h, fx80.h, gmicro.h, i860v3.h, i860v4.h (*_ASM_OP): Remove tabs.
+	* m88kv4.h, m88kdgux.h, mips.h, romp.h, rs6000.h: Likewise.
+	* sun386.h, tower-as: Likewise.
+	* arm.h, hp800.h (*_ASM_OP): Remove extra tabs and newlines.
+	* m68ksgs.h (*_ASM_OP): Remove tabs.
+	(ASM_OUTPUT_*): Put the tabs here when appropriate.
+	* m68kv4.h, m88k.h, next.h: Likewise.
+
+Sun Mar 15 18:37:49 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (inc_for_reload): Rework to try to do addition in
+	INCLOC rather than assuming when it can be done; this fixes a bug
+	on hp800 and generates better code on some CISC machines.
+
+Sun Mar 15 15:12:39 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* crtstuff.c:  If defined, invoke INIT_SECTION_PREAMBLE.
+
+	* xm-sparcv4.h, x-sparcv4:  New files.
+	* configure (sparc-*-sysv4*):  Use them.
+
+Sun Mar 15 16:41:33 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* sparc.md (subdi3): Fix unterminated comment.
+
+Sun Mar 15 04:08:59 1992  Torbjorn Granlund  (tege at zevs.sics.se)
+
+	* hp800.c (output_block_move): Major rewrite.
+	* hp800.md (movstrsi): Rewrite to match new output_block_move.  FAIL
+	if the actual operands are better handled by a library call.
+	(movstrsi recognizer): Rewrite.
+
+	* sparc.md (movstrsi): FAIL for all blocks with unknown size.
+
+Sat Mar 14 19:06:02 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* c-decl.c (builtin_function): Don't declare static.
+
+Sat Mar 14 15:57:53 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (get_pointer_alignment): Convert bytes to bits
+	when handling PLUS_EXPR.
+
+	* cp-search.c (push_stack_level): Declare tp as char *.
+
+	* mips.c (mips_asm_file_end): Use TREE_ASM_WRITTEN to avoid
+	duplicate .extern commands.
+
+	* mips-tdump.c: Include fcntl.h.
+	* mips-tfile.c (open, fstat): Declarations deleted.
+
+	* xm-mipsnews.h: New file.
+	* mips-news5.h: New file.  Needs papers from Ron Cole.
+	* configure (mips-sony-sysv*): New alternative.
+
+Sat Mar 14 07:11:14 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* integrate.c (initialize_for_inline): If DECL_INCOMING_RTL is
+	the same object as DECL_RTL, store copy in both places.
+
+Sat Mar 14 10:12:39 1992  Michael Tiemann  (tiemann@cygnus.com)
+
+	* cp-spew.c (yylex): Fix some fencepost errors found by Chip
+	Salzenberg.
+
+	* cp-init.c (is_aggr_typedef): Now calls `error' instead of `fatal'
+	if NAME is non-AGGR type.
+
+	* cp-class.c (duplicate_tag_error): Set CLASSTYPE_VBASE_SIZE.
+
+Sat Mar 14 00:28:57 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (do_spec_1): Don't copy closing delim in %(...) or %[...].
+	(read_specs): Don't ignore newline that ends a comment.
+	(handle_braces): Properly terminate scan for %*.
+	(validate_all_switches): Scan any extra specs from specs file.
+
+	* x-iris: File deleted.
+
+	* cccp.c (output_line_command): Avoid outputting line number 0.
+
+	* final.c (asm_fprintf): Handle %O.
+	* m68k.c: Insert %O before `move' in MOTOROLA calls to asm_fprintf.
+
+Fri Mar 13 20:17:40 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-typeck.c, cp-type2.c, cp-tree.c, cp-spew.c, cp-search.c,
+	cp-parse.y, cp-init.c, cp-decl.c, cp-cvt.c, cp-class.c, cp-call.c:
+	Merged in updated cp-* files for gcc-2.1.
+
+	Thu Mar 12 02:29:26 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-type2.c (build_functional_cast): remove incorrect error message.
+
+Fri Mar 13 14:54:23 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-actions.c (get_arg_type_list) [not NEXT_OBJC_RUNTIME]:
+	1st arg always an object.
+	(synth_module_prologue): Don't use parser interface, just build nodes.
+	Use `void *' to avoid problems with TAG_SUPER vs _TAG_SUPER.
+	(TAG_SUPER, _msg_id, _msgSuper_id): Deleted.
+	(objc_getClass_id, objc_getMetaClass_id): Deleted.
+	(selector_type): Renamed from _selector_type.
+	(forward_declare_categories, build_objc_symtab_template):
+	Don't use parser interface, just build nodes.
+	(create_builtin_decl): New function.
+
+	* hp800hpux.h (LIB_SPEC): New definition.
+
+	* arm.h (TARGET_WHEN_DEBUGGING): Name corrected.
+
+	* protoize.c (abspath): Make abs_buffer a little longer.
+
+	* encore.h (NO_ABSOLUTE_PREFIX_IF_SYMBOLIC): Defined.
+	(EXTERNAL_PREFIX, IMMEDIATE_PREFIX): Defined.
+	(TARGET_DEFAULT): Changed to 9.
+	(ENCORE_ASM): Defined.
+
+	* sequent.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Deleted.
+	(IMMEDIATE_PREFIX): Define as 0.
+	(SEQUENT_ASM): Defined.
+	* ns32k.c (print_operand): Output f.p. as ints if SEQUENT_ASM.
+	Output doubles using 0f, not 0d, if ENCORE_ASM.
+
+	* configure: If no configuration matches, print error and exit.
+	(m68k-sun-sunos*): Renamed from m68k-sun-sunos4*.
+
+	* configure (copy): New variable.
+	If hard link fails, make a copy.
+
+	* mips.c (mips_asm_file_end): Don't set flags in identifiers.
+	Just output every identifier found in extern_head.
+
+	* configure (sparc-tti-*): Renamed from sparc-unicom-*.
+	(m68k-tti-*): Replaced.
+	(m68k-tti2-*): Deleted
+
+	* config.sub (pbd): Alias for sparc-tti, not sparc-unicom.
+	(pbb): New machine alias.
+	(*-tti): Implies os=-sysv3.
+	(-oss*): Alias for -sysv3.
+
+Fri Mar 13 17:20:52 1992  david d [zoo] zuhn  (zoo at lynx.spa.umn.edu)
+
+	* x-mips: add -mld.
+
+Fri Mar 13 14:48:05 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* hp800.h (REGISTER_NAMES): Name register 112, the shift amount
+	register, as "SAR".  It was left out.
+
+Fri Mar 13 04:08:53 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386isc.h (STARTFILE_SPEC): Use crt1, not crt0.
+
+	* x-i386sco (CC,OLDCC): Don't define `i386' here.
+	(RCCFLAGS): Define it here, along with other SCO symbols.
+	(XCFLAGS): Use that.  New variable.
+	(CLIB): Use -lPW to get alloca.
+
+Fri Mar 13 14:11:41 1992  Jeffrey A. Law  (law@wombat.gnu.ai.mit.edu)
+
+	* Changes to enable use of sqrt builtin functions.
+	* c-decl.c (init_decl_processing): Enable BUILT_IN_FSQRT for 
+	__builtin_sqrt.  Also enable for sqrt if not traditional.
+	* cp-decl.c (init_decl_processing): Enable BUILT_IN_FSQRT for
+	__builtin_sqrt.
+	* expr.c (expand_builtin, case BUILT_IN_FSQRT): New case.  Call
+	expand_unop to expand the operation.  If that fails break and
+	emit a call to the library sqrt function.
+	* optabs.c (init_optabs): Initialize new optabs for sqrt functions.
+	* expr.h (sqrt_optab): Declare here so that expr.c can see it.
+
+Fri Mar 13 08:56:50 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (delete_dead_from_cse): Fix error in last change.
+
+	* a29k.h (PCC_BITFIELD_TYPE_MATTERS): Define as 1.
+
+	* reorg.c (fill_slots_from_thread): Add missing arg in call to
+	try_split call that was recently added.
+
+	* fold-const.c (invert_truthvalue, case COMPOUND_EXPR): New case.
+
+Fri Mar 13 01:02:56 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* collect2.c (ordinary scan_prog_file): Don't count | in sym name.
+
+	* ns32k.md (movsf): Remove #if 0 around #ifndef GAS_SYNTAX.
+
+	* pc532.h (GAS_SYNTAX): Defined.
+
+Thu Mar 12 00:10:23 1992  Stefan Petri  (petri@jupiter.ibr.cs.tu-bs.de)
+
+	* configure (pyramid): Re-enable.
+
+	* pyr.h (STRUCTURE_SIZE_BOUNDARY): Restore definition from gcc-1.40.
+	(PCC_BITFIELD_TYPE_MATTERS): Define as 1 instead of empty.
+
+	* pyr.h (STATIC_CHAIN_INCOMING_REGNUM): Added.
+
+	* pyr.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT,
+	INITIALIZE_TRAMPOLINE): Added, inspired by convex.h
+
+	* pyr.h (INITIAL_FRAME_POINTER_OFFSET): New definition.
+
+	* pyr.md (indirect_jump): New pattern.
+
+	* libgcc2.c [L_trampoline]: Don't include gstddef.h in this case.
+	(__enable_execute_stack): Cloned definition for pyramid
+	from that for convex.
+
+Thu Mar 12 13:23:05 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* collect2.c (FREAD, FWRITE): #undef if USG.
+
+	* x-mipsv: New file.
+	* configure (mips-*-sysv): Use it.
+
+	* cccp.c (skip_to_end_of_comment): New arg NOWARN.  Callers changed.
+	(do_xifdef, do_endif): Pass 1 for NOWARN.
+
+	* i386.h, hp800.h (ENCODE_SECTION_INFO): Handle CONSTRUCTOR node.
+	* i386.h (ENCODE_SECTION_INFO): Only decls can be global.
+
+	* cccp.c (warn_import): New variable.
+	(do_include): Test that.
+	(main): Handle -Wimport.
+
+	* hp800hpux.h (DBX_DEBUGGING_INFO): #undef it.
+	* x-hp800hpux: New file.
+	* configure (hp800-hp-hpux*): Use it.
+
+	* config.sub: Make triton alias for sysv3.
+
+	* collect2.c: If CROSS_COMPILE, #undef the special OBJECT_FORMAT_*.
+
+Thu Mar 12 10:35:50 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* gcc.c (default_compilers):  Use .i suffix (instead of .cpp) for all
+	preprocessor output files.
+	(execute):  Print commands used to invoke passes if -save-temps.
+
+	* Makefile.in (mostlyclean): Delete *.i, not *.cpp.
+	Don't delete *.co.
+
+Thu Mar 12 07:13:33 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* xcoff.h (DBX_FINISH_SYMBOL): When writing function name, strip off
+	any storage class at the end.
+
+Thu Mar 12 05:16:49 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* config.sub (-triton*): Delete this OS (it's sysv3).
+	* configure (m88k-dolphin-sysv3): Rename alternative.
+	* xm-m88kdolph.h: Delete.  Use xm-m88kv3.h instead.
+	* x-m88kdolph: New file.
+	
+Thu Mar 12 00:19:14 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (movstrsi recognizers): Fix reversed operands.
+
+Thu Mar 12 00:01:11 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (main):
+	Don't require machine_suffix for md_startfile_prefix or md_exec_prefix.
+
+	* toplev.c (main): Force flag_no_inline if not optimizing.
+
+	* dbxout.c (dbxout_type): Ignored names don't count in case UNION_TYPE.
+
+	* cp-decl.c (pushtag): Push on ->tags and make TYPE_STUB_DECL
+	even if type has no tag name.
+	* cp-class.c (finish_struct): Always call rest_of_type_compilation.
+
+	* cse.c (simplify_unary_operation): For SQRT, do nothing.
+
+	* byteorder.h: Test __i860_big_endian__.
+
+	* ns32k.c (print_operand_address): Test NO_ABSOLUTE_PREFIX_IF_SYMBOLIC.
+	Test BASE_REG_NEEDED inside indirect address too.
+	* sequent.h (NO_ABSOLUTE_PREFIX_IF_SYMBOLIC): Defined.
+	(SEQUENT_ADDRESS_BUG, SEQUENT_BASE_REGS): #if 0.
+
+Wed Mar 11 22:55:38 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (push_parm_decl): Clear immediate_size_expand temporarily.
+	* stor-layout.c (get_pending_sizes): Fix up SAVE_EXPR_CONTEXT.
+	(variable_size): No longer static.
+	* c-decl.c (grokdeclarator): Call variable_size, not save_expr.
+	Rename local `variable_size' to `size_varies'.
+
+Wed Mar 11 18:53:23 1992  Chip Salzenberg  (chip@tct.com)
+
+	* collect2.c (OBJECT_FORMAT_COFF, OBJECT_FORMAT_ROSE):
+	(OBJECT_FORMAT_NONE): Three alternative strategies for finding inits.
+	OBJECT_FORMAT_COFF is completely new.
+	(is_ctor_dtor): New function.
+	[OBJECT_FORMAT_NONE, OBJECT_FORMAT_ROSE] (scan_prog_file):
+	Use is_ctor_dtor.
+
+	* x-rs6000 (CLIB): Add -lld.
+	* t-rs6000: New file.
+	* configure (rs6000...): Use that file.
+
+Wed Mar 11 17:31:13 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* reload1.c (inc_for_reload): Call gen_add2_insn with negated
+	constant instead of gen_sub2_insn.
+
+Wed Mar 11 17:30:35 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_binary_op): For shifts, always use op0 type.
+
+	* stmt.c (expand_end_bindings):
+	Load virtual_incoming_args_rtx via a pseudo reg.
+
+	* math-68881 (pow): Add missing parens; typo in fp constant.
+
+	* i386isc.h (LIB_SPEC): Add -lg.
+
+	* libgcc2.c (__CTOR_LIST__, __DTOR_LIST__):
+	Don't define if CTOR_LISTS_DEFINED_EXTERNALLY.
+	(__builtin_saveregs): Handle NO_UNDERSCORES for sparc.
+
+	* pbb.h, pbd.h: New files from Mike Bloom.
+	* configure (m68k-tti2-*): Turned back on.
+
+	* c++: Add a colon command in case system doesn't handle #!/bin/sh.
+
+Mon Mar 11 19:54:43 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (integer truncMN2): Delete patterns.  Not needed on i386.
+
+Wed Mar 11 16:58:56 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88kv3.h (STARTFILE_SPEC, LIB_SPEC): Search for crt{begin,end}.o
+	(DO_GLOBAL_CTORS_BODY, CTORS_SECTION_ASM_OP, ASM_OUTPUT_CONSTRUCTOR,
+	DTORS_SECTION_ASM_OP): Implement new svr3 scheme.
+
+Wed Mar 11 16:24:03 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fold-const.c (fold): When correcting constant result of GE, LE, NE,
+	make sure we really have a constant result.
+
+	* ns32k.md (call, call_value): Support GAS_SYNTAX and GNX_V3 like 1.40.
+
+	* c-decl.c (pushdecl): Properly use prev implicit decl in warning.
+
+Wed Mar 11 16:05:20 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* Makefile.in (OBJS): Add xcoffout.o.
+	(dbxout.o, final.o, toplev.o, varasm.o): Add xcoff.h dependency.
+	(xcoffout.o): Add rule to build.
+
+	* xcoffout.c: Change names of rs6000_*_section_name variables to
+	xcoff_*_section_name, and move definitions of them here from
+	rs6000.c.
+	* xcoff.h: Likewise, move declarations here from rs6000.h.
+	* rs6000.c: Delete definitions of rs6000_*_section_name variables.
+	* rs6000.h: Delete declarations of rs6000_*_section_name variables.
+
+	* rs6000.c (output_epilog): Add comment to note lack of traceback
+	table support.
+	* rs6000.h: Refine comment explaining ASM_SPEC definition.
+	(XCOFF_DEBUGGING_INFO): Define.
+	(DBX_CONTIN_LENGTH, DBX_NO_XREFS): Move to xcoff.h.
+	(ASM_FILE_START): When -g, emit private_data_section.
+	(ASM_DECLARE_FUNCTION_NAME): When -g, output .lglobl for static
+	functions.  Also, output .function debug info.
+	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Add bss_section call.
+	
+	* dbxout.c: Include xcoff.h when XCOFF_DEBUGGING_INFO is defined.
+	Define default values for DBX_DECL_STABS_CODE,
+	DBX_STATIC_CONST_VAR_CODE, DBX_REGPARM_STABS_CODE, and
+	DBX_REGPARM_STABS_LETTER.  These exist to be overriden for xcoff.
+	Include entire file if either DBX_DEBUGGING_INFO or
+	XCOFF_DEBUGGING_INFO is defined.
+	(dbxout_type): Add early exit if DBX_TYPE_DEFINED, used for xcoff.
+	(dbxout_symbol): Use DBX_DECL_STABS_CODE instead of N_LSYM for
+	tags and typedefs.  Use DBX_STATIC_CONST_VAR_CODE instead of N_FUN
+	for static const variables.  Add DBX_STATIC_BLOCK_START and
+	DBX_STATIC_BLOCK_END around output of stab info, for xcoff use.
+	(dbxout_finish_symbol): Use DBX_FINISH_SYMBOL instead if defined.
+	(dbxout_syms, dbxout_parms): No longer static, referenced from
+	xcoffout.c.
+	(dbxout_parms): Use DBX_REGPARM_STABS_CODE instead of N_RSYM.  Use
+	DBX_REGPARM_STABS_LETTER instead of 'P'.
+	(dbxout_reg_parms): No longer static.
+	* final.c: Also include gstab.h if XCOFF_DEBUGGING_INFO defined.
+	Include xcoff.h if XCOFF_DEBUGGING_INFO defined.
+	(final_start_function): Call xcoffout_output_first_source_line
+	when XCOFF_DEBUG.  Set next_block_index if XCOFF_DEBUG.
+	(final_end_function): Call xcoffout_end_function if XCOFF_DEBUG.
+	Call xcoff_end_epilogue if XCOFF_DEBUG.
+	(final_scan_insn): Call xcoffout_begin_function,
+	xcoffout_begin_block, and xcoffout_end_block if XCOFF_DEBUG.
+	(output_source_line): Also call dbxout_source_file if XCOFF_DEBUG.
+	* flags.h: Define XCOFF_DEBUG.  Also declare
+	use_gdb_dbx_extensions if XCOFF_DEBUGGING_INFO.
+	* toplev.c: Also declare use_gdb_dbx_extensions if
+	XCOFF_DEBUGGING_INFO.  Include xcoff.h in XCOFF_DEBUGGING_INFO.
+	(compile_file): Also call dbxout_init, and dbxout_finish if
+	XCOFF_DEBUG.
+	(rest_of_decl_compilation): Also call dbxout_symbol if
+	XCOFF_DEBUG.
+	(rest_of_type_compilation): Also call dbxout_symbol if
+	XCOFF_DEBUG.
+	(main): Add support for recognizing -g when XCOFF_DEBUGGING_INFO.
+	* varasm.c: Include xcoff.h if XCOFF_DEBUGGING_INFO.
+	(assemble_variable): Also call dbxout_symbol when XCOFF_DEBUG.
+	Change all returns to goto finish.  At finish label,
+	call dbxout_symbol if XCOFF_DEBUG.
+
+	* dbxstclass.h: New file.  Define XCOFF specific storage classes.
+	* xcoff.h: New file, for XCOFF support.  Included by xcoffout.c,
+	dbxout.c, final.c, toplev.c, and varasm.c.
+	* xcoffout.c: New file for XCOFF support.  Most of the support is
+	implemented by dbxout.c, this just includes stuff that can not be
+	easily performed within dbxout.c.
+
+	* toplev.c (struct W_options): Add entry for warn_inline, so user
+	can turn this warning on.
+
+Wed Mar 11 15:11:42 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* optabs.c (init_optabs): Fix typo (Imode instead of TImode) in
+	HAVE_subti3 case.
+
+Wed Mar 11 13:10:20 1992  Jeffrey A. Law  (law@wombat.gnu.ai.mit.edu)
+
+	* sparc.h (REG_ALLOC_ORDER): Make %g3 more desirable.
+
+Wed Mar 11 12:35:12 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes (egrep cmd): Delete misplaced `#e[nl]'.
+
+	* jump.c (jump_optimize): Try to fix last change.
+
+	* expmed.c (init_expmed): Use big, ugly factor in mult_is_very_cheap.
+
+Wed Mar 11 08:00:18 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* toplev.c (rest_of_compilation): Use sdbout_types to clear the
+	anonymous types queue if any.
+	* sdbout.c: Correct spelling of sdbout_dequeue_anonymous_types.
+
+	* genattrtab.c (attr_string): Don't assume a terminating null.
+
+Wed Mar 11 07:05:38 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload_as_needed): Delete erroneous test of
+	basic_block_needs.
+
+	* stmt.c (expand_end_case): Know that we will obtain a constant
+	if we were passed a COMPOUND_EXPR whose second operand is constant.
+	Fold the MINUS_EXPR we make for casesi.
+
+	* reorg.c (update_block_from_store): Deleted.
+	(update_block): Always leave USE; don't try to update live regs.
+
+	* explow.c (copy_to_suggested_reg): Add new arg for mode to use.
+	* expmed.c (expand_divmod): Pass new arg to copy_to_suggested_reg.
+
+	* reload1.c (set_label_offsets, reload_as_needed): Consistently
+	ignore non-eliminables when computing num_not_at_initial_offset.
+
+	* rs6000.md (subsi3): Remove unnecessary call to force_reg.
+
+	* rs6000.c (output_epilog): Separate setting LR from loading
+	it from memory in some cases.
+	Branch to FP restore routine instead of calling it.
+
+	* flow.c (propagate_block): CC0 is not live when we delete a dead
+	insn.
+	* cse.c (delete_dead_from_cse): An insn setting CC0 is not live
+	if the next insn doesn't reference CC0.
+
+	* cse.c (cse_insn): If we see a narrow AND with a constant, check if
+	we have seen a wider AND.
+
+	* combine.c (can_combine_p): Allow SUBREG of non-tiable regs if we
+	are going to do is copy it to CC0.
+
+	* reload.c (find_secondary_reload): If X is a pseudo with an
+	equivalent MEM, use the MEM to see if a secondary reload is needed.
+	Don't call REG_CLASS_FROM_LETTER for 'r'.
+	* reload1.c (emit_reload_insns): Handle reloading pseudos
+	with equivalent MEM when we have secondary reloads; use the MEM
+	when required.
+
+	* romp.md (reload_outsi): Pattern should be a single PARALLEL
+	whose second component is a CLOBBER.
+
+Wed Mar 11 03:11:26 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (find_a_file, do_spec_1): Always obey require_machine_suffix.
+	(machine_explicit): Var deleted.
+
+Tue Mar 10 23:12:24 1992  Jeffrey A. Law  (law@wombat.gnu.ai.mit.edu)
+
+	* m68k.md (68000 special shifts): No longer accept a shift count 
+	of 16.  Delete support for shifts by 16 places.
+	(shift by 16 bits): New patterns which apply to all 68k models.
+	* m68k.h (RTX_COSTS): Shifts by 16 are cheap.
+
+Tue Mar 10 20:37:31 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dwarfout.c (location_or_const_value_attribute):
+	Reenable changes disabled on Feb 21.
+	* function.c (instantiate_decls): Likewise.
+
+	* sdbout.c (sdbout_symbol): Handle (mem (const...)).
+	* dbxout.c (dbxout_symbol): Likewise.
+
+	* xm-i386isc.h: New file.
+	* configure (i386-*-isc*): Use it.
+
+	* hp320.h (MD_STARTFILE_PREFIX): Deleted.
+
+	* m68k.h (RTX_COSTS): If MULT is a shift, jump to shift case.
+
+	* sun3.h (TARGET_MEM_FUNCTIONS): Defined.
+
+	* toplev.c (rest_of_compilation): Call sdbout_dequeue_anonymous_types
+	even if we don't output assembler code.
+
+	* jump.c (jump_optimize): In `if (foo) bar; else break;' optimization,
+	include in range1 and range2 any line numbers at the beginning.
+
+	* c-typeck.c (spelling_length): Initialize `size'.
+	(PUSH_SPELLING): `spelling_size' is measured in elements.
+	(get_spelling): Use xmalloc if there is no buffer yet.
+
+Tue Mar 10 20:25:56 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* integrate.c (save_for_inline_copying):
+	Set up LABEL_NAME of label copies.
+
+	* sparc.md: Clean up attribute settings.  Add default length of 2
+	for insns of type multi.  Make sure all insns have correct type and
+	length attribute values.
+
+Tue Mar 10 19:13:19 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (warn_parentheses): Default is 0.
+	(c_decode_option): -Wall implies -Wparentheses.
+
+Tue Mar 10 17:49:51 1992  Torbjorn Granlund  (tege at mole.gnu.ai.mit.edu)
+
+	* hp800.md (shNadd recognizers): Put the MULT first, to obey insn
+	canonicalization rules.
+
+	* hp800.md (subsi3): Don't handle constants for operand 2, but
+	do handle them for operand 1, for the subi insn.
+
+	* hp800.md (compare into ordinary reg): Use "arith11_operand", not
+	"arith_operand" for operand 2.  Use `I', not `J' as constraint.
+	Don't change the constant in the output code (i.e. undo Mar 10
+	change).
+	* hp800.c (arith11_operand): New predicate function.  Fix comment.
+
+	hp800.md (mulsi3): Don't handle CONST_INT specifically, rely on
+	machine independent code.
+	* hp800.h (RTX_COST): Define.
+	* hp800.c (ABS, mul_operands, emit_mul_by_constant) Remove.
+	(mul_by_constant_aux, test_factor_and_output): Remove.
+
+	* hp800.md (addsi3): Use "register_operand" for operand 1, not
+	"arith_operand".
+
+	* hp800.md: Clean up spacing and comments in a few places.
+
+	* hp800.c (output_move_double): Handle auto increment and auto
+	decrement.  Remove unused enums.  Test for either operand being a
+	REGOP instead if RNDOP, since we require at least one operand to
+	be a register.  Pass the MEM address to find_addr_reg, not the
+	entire MEM rtx (in two places).
+
+	* hp800.h (WORDS_BIG_ENDIAN): Fix typo in comment.
+	(RTX_COST): Return cost of a PLUS, to indirectly give the right
+	cost for the shNadd insns.  Adjust the cost for division.
+
+Tue Mar 10 15:57:24 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.md: Add pattern for optimizing bitfield compares.  This
+	pattern was accidently lost when other (now-obsolete) bitfield
+	patterns were removed.
+
+	* sparc.c (arith32_operand): Deleted.
+	* sparc.md (movstrsi): Now uses nonmemory_operand for length.
+
+	* sparc.c (output_arc_profiler): Emit insns from first to last
+	instead of last to first, since it is much clearer.  Eliminate
+	profiler_target, since it resulted in illegal rtx sharing.
+
+	* sparc.c (legitimize_pic_address): Make -fPIC work again, re the
+	Feb 27 cse.c LO_SUM fix.  Put addresses inside UNSPEC when loading
+	them to ensure that cse won't mistakenly optimize them.
+	* sparc.md: Two new patterns, to match (HIGH (UNSPEC (..))) and
+	(LO_SUM (reg) (UNSPEC (..))) as generated above.
+
+Tue Mar 10 14:58:19 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* mips-news.h (ASM_SPEC): Move %{G*} outside of -mgas conditional.
+	* nws3250v4.h, xm-nws3250v4.h, x-nws3250v4: New files.  From cph.
+
+	* i860.c (sfmode_constant_to_ulong): Fix typo in last change.
+
+	* expr.c (store_expr): Initialize `label'.
+
+	* 3b1.h (HAVE_ATEXIT): #undef this.
+
+	* hp800.md (compare into ordinary reg): Make large ints "negative".
+
+	* hp800hpux.h: New file.
+	* configure (hp800-*-bsd*): Renamed from hp800-*-*.
+	(hp800-*-hpux*): New configuration.
+
+Tue Mar 10 11:03:47 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* expmed.c (init_expmed): Make the lea pattern in the canonical way.
+
+Tue Mar 10 10:32:30 1992  Tom Wood  (wood@hal)
+
+	* m88k.h (ASM_OUTPUT_{COMMON,LOCAL}): Compute size consistently.
+
+Tue Mar 10 07:41:09 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* recog.c (constrain_operands, case 'E'): Fix typo.
+
+	* function.c (setjmp_protect): Don't put vars from inline functions
+	on the stack.
+
+	* c-typeck.c (process_init_constructor): Don't use host integers for
+	bounds and index computation; use trees instead.
+	If specifying index in array with unset bounds, assume lower bound
+	of zero and check specified index against zero.
+
+	* tree.h (mode_for_size): Don't declare here.
+	* machmode.h (mode_for_size): Declare here instead.
+
+	* reorg.c (fill_slots_from_thread): Try to split THREAD immediately
+	so we don't get confused if it gets split later.
+
+	* reorg.c (fill_slots_from_thread): Don't take add from loop
+	head if the increment amount depends on the target register, since
+	we can't undo the operation.
+
+Mon Mar  9 12:18:04 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* unroll.c (final_biv_value): Fail if the biv is not MODE_INT.
+
+	* combine.c (distribute_notes, case REG_DEAD): Call rtx_equal_p
+	to verify that it was the set that modified the register, and
+	not a clobber.
+
+Sun Mar  8 22:20:24 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* c-parse.y,c-lex.c,cp-hash.h,cp-parse.y,cp-spew.c,objc-parse.y:
+	Rename `ASM' to `ASM_KEYWORD' to avoid trouble with SCO
+	<sys/signal.h>.
+
+Sun Mar  8 23:16:37 1992  Jeffrey A. Law  (law@wombat.gnu.ai.mit.edu)
+
+	* expr.c (move_by_pieces, move_by_pieces_ninsns): Remove March 4 and
+	March 5 changes.  Set max_size to MOVE_MAX + 1 instead.
+
+Sun Mar  8 17:08:57 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (do_tablejump): New arg MODE.
+	* stmt.c (expand_end_case): Pass that arg.
+
+	* c-decl.c (pushtag): Push even anonymous types on tags list.
+	(parmlist_tags_warning): Handle anonymous types in the list.
+
+Sun Mar  8 15:08:58 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386mach.h (perform_fixdfsi): Rename from *_fix_trundfsi2.
+	Restore float control word correctly.
+	* i386rose.h (perform_fixdfsi): Likewise.
+
+	* i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Allow float constants,
+	even if -msoft-float is used: reg-stack.c may emit an insn to load
+	the function value register with 0.0.
+
+	* i386.md (bit test insns): Don't allow memory operands as the
+	first argument of the zero_extract.
+
+	* i386isc.h (RETURN_POPS_ARGS): Comment this out: ISC uses the
+	standard definition.
+
+	* i386sco.h (STARTFILE_SPEC): Use crtbegin.o.
+	(ENDFILE_SPEC): Use crtend.o.
+	(CPP_SPEC): #undef before defining.
+	(RETURN_POPS_ARGS): Caller pops args on SCO.
+
+Sun Mar  8 14:25:16 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure: Fatal error if srcdir has already been configured.
+	Remove periods from error messages.
+
+	* 3b1.h, mot3300.h (ASM_OUTPUT_OPCODE): Change swap to swap.w.
+	(SGS_SWAP_W): Deleted.
+	* m68ksgs.h (ASM_OUTPUT_OPCODE): If SGS_SWAP_W, change swap to swap.w.
+	* m68k.md: Delete all SGS_SWAP_W conditionals.
+
+	* m68k.md (shift using swap, dbra patterns): Change clrw to clr%.w.
+
+	* hp800.h (output_global_address): Use `-' for PLUS of neg integer.
+	Clean up spacing and braces in several places in file.
+
+	* byteorder.h (htons): Use unsigned int for arg type.
+
+Sun Mar  8 07:36:44 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.c (print_operand, case 'A'): New case.
+	* rs6000.md (sri): New %A to use "sli" for count of zero to work
+	around bug in RS/6000 assembler.
+
+	* config.sub (os): Add "aos" to basic list, no longer the same
+	as "bsd";  "acis" is an alternate for "aos".
+	(romp): No longer has a default system.
+	* configure (romp-*-aos*): Renamed from romp-*-bsd*; BSD means 
+	real BSD (4.3 Tahoe+), AOS means IBM system.
+
+	* Makefile.in (crtbegin.o, crtend.o): Use -o for output instead of
+	putting in crtstuff.o and renaming to desired name.
+
+	* reload1.c (reload): Re-check eliminability of registers on each
+	reload pass.
+
+	* jump.c (mark_jump_label): Make multiple REG_LABEL notes if
+	more than one label is mentioned in an insn.
+
+	* integrate.c (copy_rtx_and_substitute): Properly initialize
+	const_equiv_map for the equivalents of AP and FP.
+
+	* rs6000.h (TARGET_MEM_FUNCTION): Define.
+
+Sun Mar  8 00:05:47 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (store_parm_decls): Copy function type before changing it.
+	* tree.c (build_type_copy): New subroutine.
+
+	* t-next (LIBGCC1): Assigned, instead of LIBGCC.
+
+	* m68k.h (SHIFT_COUNT_TRUNCATED): Deleted.
+
+Sat Mar  7 23:47:57 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (xorsi3,xorhi3): Don't emit a byte opcode with an SImode
+	operand.
+
+Sat Mar  7 22:49:21 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (convert_arguments): -Wconversion warning
+	if argument is passed as float.
+	For fixed arguments, warn if type passed doesn't match
+	what default_conversion produces.
+
+	* gcc.c (cross_compile): New variable, 1 if cross-compiling.
+	(read_specs): Read it from specs.
+	(process_command): Dump it to specs.
+
+	* gcc.c (process_command): Don't use MD prefixes and
+	standard_startfile_prefix* here.
+	(main): Use them here, if not cross-compiling.
+
+Sat Mar  7 18:13:45 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload_as_needed): Eliminate regs in (use (mem ..))
+	and (clobber (mem ...)) insns.
+
+	* combine.c (distribute_notes): Fix minor bug in handling of
+	multi-register values when only one part is used.
+
+	* optabs.c, expr.c: Always call emit_library_call with no_queue == 1.
+
+	* function.c (fix_lexical_addr): Correctly set BASE in non-separate
+	AP case.
+
+Sat Mar  7 15:39:57 1992  Jyrki Kuoppala  (jkp@batman.cs.hut.fi)
+
+	* ns32k.h (TRANSFER_FROM_TRAMPOLINE): changed "ret" to "ret 0"
+
+Sat Mar  7 15:41:46 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
+
+	* fixincludes: Don't do special fixes on signal.h, which were only
+	needed because of #endif comment fixes.
+
+Sat Mar  7 15:11:50 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* m68k.h (ASM_OUTPUT_ALIGN): Don't crash if LOG is more than 1.
+
+	* varasm.c (decode_reg_name): Make various prefixes optional
+	whether or not they are in REGISTER_NAMES.
+	(strip_reg_name): New subroutine.
+
+	* i386.c: Fatal error if EXTRA_CONSTRAINT is defined.
+
+	* collect2.c [USG] (R_OK, W_OK, X_OK): Define them if missing.
+
+	* x-hp320g (RANLIB, RANLIB_TEST): Defined.
+
+	* Makefile.in (EXTRA_PROGRAMS): New variable is list of programs.
+	(native): Build them.  Don't build EXTRA_PARTS.
+	(rest.encap): Build EXTRA_PARTS.
+	(GCC_PARTS): Include EXTRA_PROGRAMS.
+	(install-common): Build EXTRA_PROGRAMS.
+	* t-convex (EXTRA_PROGRAMS): Define instead of EXTRA_PARTS.
+
+	* Makefile.in (distclean): Don't delete backups, etc.
+	(extraclean): New target--delete those things here.
+	(gcc.xtar): Use extraclean.
+	(cleanconfig): Deleted.
+	(realclean): Depend on distclean.
+
+Sat Mar  7 14:54:29 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* genattrtab (attr_printf): Provide alternate based on HAVE_VPRINTF.
+
+Sat Mar  7 14:25:58 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* hp800.c (secondary_reload_class): Change `=' to `==' in `if'.
+
+Sat Mar  7 13:25:17 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (do_line): Fix typo.
+
+	* configure (decoding args): Delete excess fi.
+
+Sat Mar  7 09:29:41 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (CONST_COSTS): Complete last change.
+
+	* mips.md (movsi_ulw, movsi_usw): Complete last change.
+
+Sat Mar  7 07:28:03 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* config.sub (*-dolphin, -triton*): New vendor/OS.
+	* configure (m88k-dolphin-trition): New alternative.
+	* m88kdolph.h: New file.
+	* xm-m88kdolph.h: New file.
+
+Sat Mar  7 10:07:44 1992    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* make-l2.com: Do not allow the user to run this with gcc 1.nn.
+
+	* make-gcc.com: Use the new compiler to build libgcc2.c (through 
+	  make-l2.com).
+
+Sat Mar  7 05:36:16 1992  K. Richard Pixley  (pixley@nutrimat.gnu.ai.mit.edu)
+
+	* Makefile.in: added the exec_prefix variable for installing host
+	  dependent programs and libraries.
+
+Sat Mar  7 00:09:50 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* genextract.c (mybzero): New fn.  Used instead of bzero.
+
+	* Makefile.in (all): Indirect to all-internal.
+	(all-internal): New rule, following where cross-make gets inserted.
+
+	* vms.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Defined.
+
+	* protoize.c: Don't declare fork or vfork.
+
+	* i860.c (sfmode_constant_to_ulong): Use REAL_VALUE_FROM_CONST_DOUBLE.
+
+	* gcc.c (handle_braces): Verify actual suffix length matches
+	desired.
+
+	* hp800.h (GO_IF_LEGITIMATE_ADDRESS): Add parens for clarity.
+
+	* c-typeck.c (pointer_int_sum): Handle intop which is sum or diff
+	of arguments with different types.
+
+	* c-typeck.c (PUSH_SPELLING): If no buffer yet, use xmalloc.
+
+	* m68k.c (output_dbcc_and_branch): Use \n\t between pair of insns.
+
+	* sparc.h (TARGET_MEM_FUNCTIONS): Defined.
+
+Fri Mar  6 18:48:03 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Don't call ON_EXIT here.
+	* crtstuff.c, libgcc2.c (__do_global_ctors): Call it here.
+
+	* i386sco.h (HAVE_ATEXIT): Defined.
+
+	* collect2.c (my_exit, main): Avoid dereferencing 0.
+
+	* stmt.c (expand_decl_init): Don't alter TREE_USED of the variable.
+
+Fri Mar  6 18:24:39 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* mot3300.h (SIZE_TYPE): Define as "unsigned int".
+
+	* combine.c (make_extraction): STRICT_ALIGNMENT is now non-zero if
+	true, instead of relying on whether it is defined or not.
+	* c-typeck.c, cp-typeck.c (build_c_cast): Likewise.
+	* stor-layout.c (layout_type) Likewise.
+	* expr.h (MUST_PASS_INSTACK_BAD_ALIGN): Likewise.
+	* expr.c: Set default value of SLOW_UNALIGNED_ACCESS to zero.
+	(move_by_pieces, move_by_pieces_ninsns, emit_push_insn):
+	SLOW_UNALIGNED_ACCESS and STRICT_ALIGNMENT now true if non-zero.
+	* function.c (assign_stack_local, assign_outer_stack_local):
+	Remove turned-off code using STRICT_ALIGNMENT.
+	* config/*.h: Change representation of STRICT_ALIGNMENT and
+	SLOW_UNALIGNED_ACCESS.
+	* gmicro.h (SLOW_UNALIGNED_ACCESS): Set to 1.
+
+	* Makefile.in (cleanconfig): Remove obsolete reference to
+	file aux-output2.c.
+
+	* c-lex.c (yylex): Don't make out-of-range shift for very wide chars.
+
+Fri Mar  6 18:07:00 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* toplev.c (compile_file): No -Wunused warnings for static vars.
+
+	* collect2.c (main): Don't handle -B, -b, -V, -m or -f.
+	collect2 gets only the options that ld would get.
+	Process COLLECT_GCC_OPTIONS envvar.
+	(savestring): New function.
+
+	* genattrtab.c: Revert to previous version
+	because the new one uses vsprintf and it isn't trivial
+	to avoid it.
+
+Fri Mar  6 17:26:09 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.md (<O5> expressions): Don't rely on the assembler being able
+	to handle constant expressions (Dolphin Triton88 can't).
+
+	* genattrtab.c: Add a hash table mechanism to share RTL and strings.
+	(attr_hash_add_rtx, attr_hash_add_string): New functions.
+	(attr_rtx): New function to generate a shared RTL.
+	(attr_printf, attr_printf): New functions to generate a shared string.
+	
+	* genattrtab.c: Extend the treatment of DEFINE_ATTR to allow a CONST
+	expression as the default value, indicating a constant attribute.
+	(struct attr_desc): Add `is_const' field.
+	(check_attr_test): Add `is_const' parameter.  Disallow use of insn
+	attributes and MATCH_OPERAND in a constant expression; allow
+	SYMBOL_REF in a constant expression.  All callers updated.
+	(chech_attr_value): Allow a SYMBOL_REF as a constant expression.
+	(convert_const_symbol_ref): New function that converts a constant
+	SYMBOL_REF to a COND that explictly tests each value.
+	(make_canonical): Use `convert_const_symbol_ref' for constant
+	SYMBOL_REF expressions.
+	(make_length_attrs, find_attr, make_internal_attr): Mark `is_const'
+	as false.
+	(gen_attr): Get rid of a top-level CONST node and mark `is_const' true.
+	(walk_attr_value): Use of a constant SYMBOL_REF does not set
+	`must_extract' or `must_constrain'.
+	(write_attr_get): Deal with constant attributes.
+
+Fri Mar  6 16:14:27 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (main, path_include) [__MSDOS__]: Handle MSDOS syntax in path.
+
+	* expr.c (store_expr): Fix bugs in last change.
+
+	* objc-actions.c (receiver_is_class_object): Fix typos.
+
+	* ecoff-cmp: File deleted.
+
+	* config.sub (3b1): Convert to m68000, not m68k.
+
+	* cccp.c (do_line): Handle "syetem header" indicator flag `3'.
+
+	* t-i386isc: New file.
+	* configure (i386-*-isc*): Use the new file.
+	* i386isc.h (LIB_SPEC, ENDFILE_SPEC): Use crtbegin.o/crtend.o.
+
+Fri Mar  6 14:37:25 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* expmed.c (expand_dec): Fix comment.
+
+Fri Mar  6 09:49:54 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.c (emit_move_sequence): Check reload_in_progress in
+	addition to reload_completed.
+
+	* m88k.md (cpu attribute): Fix.
+
+Fri Mar  6 06:24:08 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (CONST_COSTS): Fix eliminate_constant_term calling
+	sequence.
+
+	* mips.c (simple_memory_operand): Move offset variable for calling
+	eliminate_constant_term into a local block by the call.
+	(mips_address_cost): Ditto.
+
+	* mips.md (movsi_ulw, movsi_usw): Fix eliminate_constant_term
+	calling sequence.
+
+Fri Mar  6 00:30:10 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes: Don't fix comments on #endif, #else.
+	It made the egrep string too long.
+
+	* expr.c (store_expr): Handle size mismatch copying from string cst.
+
+Thu Mar  5 22:11:03 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-actions.c (receiver_is_class_object): Clean up syntax.
+
+	* sun386.h (ASM_GENERATE_INTERNAL_LABEL): Start with a star.
+
+	* reload1.c (reload): Change `=' to `==' in `if'
+	inside REGISTER_CONSTRAINTS conditional.
+
+Thu Mar  5 21:29:33 1992  Michael Tiemann  (tiemann@mole.gnu.ai.mit.edu)
+
+	* cp-parse.y (yyprint): Make declarations declare __inline
+	consistently.
+
+Thu Mar  5 18:34:32 1992  Jeffrey A. Law  (law@mole.gnu.ai.mit.edu)
+
+	* m68k.md (dbra patterns): Fix NO_ADDSUB_Q ifdef conditionals.
+	Fix location of comment regarding use of REG_NOTES in dbra insns.
+
+Thu Mar  5 18:30:55 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (libgcc.a): If $(LIBGCC1) is empty, ignore it.
+	* cross-make (LIBGCC1): Make definition empty.
+
+Thu Mar  5 17:48:38 1992  Torbjorn Granlund  (tege@wombat.gnu.ai.mit.edu)
+
+	* reload.c (find_reloads): Correctly detect different operand
+	constraint alternatives (by changing subscription from 0 to loop
+	variable i).
+
+Thu Mar  5 16:58:38 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* Makefile.in (libsubdir): Rename $(libdir)/gcc gcc-lib.
+	* gcc.c (STANDARD_EXEC_PREFIX): Ditto.
+
+	* c-typeck.c: Implement a spelling stack to store and print
+	compoment names for error messages.
+
+	(push_{string,member_name,array_bounds}): New functions.
+	(SPELLING_DEPTH, RESTORE_SPELLING_DEPTH, SAVE_SPELLING_DEPTH): New
+	macros to save and restore the spelling stack.
+	(digest_init, process_init_constructor): Use these.
+
+	(spelling_length, print_spelling): New functions.
+	(error_init, pedwarn_init): Use them.
+
+	(get_spelling): New function.
+	(convert_for_assignment): Use `get_spelling' to interpret messages
+	that are based on the spelling stack.
+	(process_init_constructor): Pass `&initialization_message'.
+
+Thu Mar  5 15:22:22 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* expr.c (init_expr): Initialize forced_labels to zero.
+	(save_expr_status): Saved forced_labels away and initilize to
+	zero.
+	(restore_expr_status): Restore value of forced_labels.
+	* function.h (struct function): Add forced_labels field.
+	* integrate.c (function_cannot_inline_p): Reject function with
+	nonzero forced_labels.
+
+Thu Mar  5 15:08:47 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* regclass.c (fix_register): Use decode_reg_name.
+	* stmt.c (expand_asm_operands): Ditto.
+	* varasm.c (decode_reg_name): Ignore a leading '#'.
+
+	For RMS:
+	* cp-call.c (build_method_call): Delete now redundant tests of
+	TREE_EXTERNAL before calls to assemble_external.
+	* cp-init.c (build_virtual_init, build_builtin_call): Ditto.
+	* cp-method.c (hack_identifier): Ditto.
+	* cp-typeck.c (build_component_ref, build_function_call_real): Ditto.
+	* c-parse.y (primary): Ditto.
+
+Thu Mar  5 13:49:29 1992  Jeffrey A. Law  (law@wombat.gnu.ai.mit.edu)
+
+	* expr.c (move_by_pieces_ninsns): Finish Mar. 4 change.  Do not
+	choose a mode which has a size greater than MOVE_MAX.
+
+	* m68k.c: Change all occurances of "mov." to "move%.l" so that
+	ASM_OUTPUT_OPCODE can choose the right syntax.
+	* m68k.md: Change "mov." to "move." in comments for consistency.
+
+Thu Mar  5 10:04:52 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* stmt.c (warn_if_unused_value): Handle NON_LVALUE_EXPR.
+
+	* limits.h (_LIMITS_H_): Correct misspellings.
+
+	* Makefile.in ("if" and "["): Romp, 4.3 BSD, and Ultirx systems
+	fail when the condition is false.  Change troublesome instances to
+	either use "case" or use '-' as a prefix to the compilation rule.
+
+Thu Mar  5 09:08:11 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.md (lshrdi3): Add earlyclobber to first alternative.
+
+	* explow.c (stabilize): Copy RTX_UNCHANGING_P and MEM_VOLATILE_P.
+
+Thu Mar  5 06:05:31 1992  Michael Tiemann  (tiemann@cygnus.com)
+
+	* cp-parse.y (.pushlevel): Stack and unstack STMT_DECL_MSG.
+
+	* cp-parse.y (unary_expr): Add EXTENSION support.
+	({maybe_label,label}_decls, label_decl): Define these rules as from
+	c-parse.y.
+	* cp-decl.c ({lookup,shadow,define}_label): Update from c-decl.c.
+	* gplus.gperf: Add EXTENSION and LABEL.
+	* cp-hash.h: Remade using gperf.
+
+Wed Mar  4 21:38:41 1992  Jeffrey A. Law  (law@wombat.gnu.ai.mit.edu)
+
+	* expr.c (move_by_pieces): Do not choose a mode which has a size
+	greater than MOVE_MAX.
+
+Wed Mar  4 23:24:25 1992  Per Bothner  (bothner@cygnus.com)
+
+	* cp-class.c, cp-decl.c, cp-decl2.c, cp-init.c, cp-lex.c,
+	cp-method.c, cp-typeck.c:  Casts from enum to int that
+	are necessary (not alas not quite sufficient) to get
+	cc1plus to compile using system cc on Sony NewsOS 3.2
+	(presumably Portable C Compiler).
+
+Wed Mar  4 22:05:39 1992  Michael Tiemann  (tiemann@cygnus.com)
+
+	* cp-type2.c (build_functional_cast): Fix typo in code searching
+	down type lattice looking for constructor.
+
+Wed Mar  4 16:52:21 1992  Jim Wilson  (wilson@cygnus.com)
+
+	* gstdarg.h: Include va-sparc.h on sparc systems.  Delete now
+	obsolete `#ifndef __sparc__'.
+	* va-sparc.h (va_start): Provide alternate definition when
+	included via stdarg.h.  Delete obsolete comment.
+	(va_arg): Add missing set of parentheses.
+
+Wed Mar  4 15:21:20 1992  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
+
+	* fixincludes: Make egrep pattern more general.  Check for
+	additional special case problems in Ultrix, News-OS, and IRIX.
+
+Wed Mar  4 15:15:45 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.c (function_epilogue): Don't make a special case for
+	current_function_returns_struct: this is done via
+	current_function_pops_args.
+
+	* sun386.h (DATA_SECTION_ASSM_OP): Fix typo in undef.
+
+Wed Mar  4 14:21:37 1992  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
+
+	* fixincludes, fixinc.svr4: Only change #else and #endif at the
+	beginnings of lines, aside from whitespace, so it doesn't change
+	them within comments. 
+
+Wed Mar  4 09:48:21 1992  Michael Tiemann  (tiemann@mole.gnu.ai.mit.edu)
+
+	* cp-method.c (build_decl_overload): Braino in handling of DELETE
+	(NEW was handled correctly).
+
+Wed Mar  4 09:14:57 1992  Jeffrey A. Law  (law@wombat.gnu.ai.mit.edu)
+
+	* Makefile.in (install-man): Install the g++ manual page.
+
+	* m68k.md (dbCC peepholes): Two new peepholes to recognize cases
+	where a compare/branch can be done (for free) as part of a dbCC
+	insn.  This turns jCC;dbf into dbCC;jCC (the jCC is now outside the
+	inner part of the loop).
+
+	* m68k.c (valid_dbcc_comparison_p): New function which returns TRUE
+	if the given comparison is a valid comparison operator for the dbCC
+	instruction.
+	(output_dbcc_and_branch): New function to output a dbCC;jCC
+	instruction sequence (including possible counter adjustments in
+	SImode)
+
+Wed Mar  4 04:32:11 1992  Michael Tiemann  (tiemann@cygnus.com)
+
+	* cp-dem.c (optable): Add entry for `operator='.
+
+	* cp-decl.c (finish_function): Emit a jump to RETURN_LABEL if
+	CLEANUP_LABEL is non-zero.  (Suggested by niklas@appli.se)
+
+Wed Mar  4 04:28:10 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* libgcc1.c (perform_lesf2): Condition tested was backwards.
+
+Wed Mar  4 03:11:48 1992  Ken Raeburn  (Raeburn@Cygnus.COM)
+
+	* cp-pt.c (overload_template_name): Extra pushlevel isn't needed;
+	omit it.
+	(undo_template_name_overload): Don't pop the level that isn't pushed
+	any more.
+
+	* cp-class.c (pushclass): Don't bother processing unnamed tags.
+	(popclass): Likewise.
+
+	* cp-init.c (build_vec_delete): If pointer is null, don't do
+	anything.
+
+	* cp-parse.y (member_init): Accept base class names that are
+	template type names.
+
+	* cp-decl.c (start_decl): Don't prepend decl of `this' to arg lists
+	of methods of uninstantiated types.
+
+	* cp-pt.c (instantiate_template): If no text has been saved away,
+	don't try to parse it; an external reference will result.
+
+	* cp-parse.y (yyprint): Declare this at head of file.
+
+	* cp-pt.c (instantiate_class_template): If the template specified
+	hasn't been defined, don't reject the instantiation; make it a
+	normal undefined type.
+
+	* cp-parse.y (template_def): Try to recover from errors more
+	gracefully.
+
+Tue Mar  3 15:37:35 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* protoize.c (munge_compile_params): Compute the maximum number of
+	params (`temp_parms' length) safely.
+
+	* dwarfout.c (const_value_attribute): Punt quasi-constant values.
+	(location_or_const_value_attribute): Ditto.
+
+	* Makefile.in (install-common): Install the cross compilation
+	driver program even when $(tooldir)/bin doesn't exist.
+
+Tue Mar  3 14:39:55 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.h (enum reg_class): Undo Jan 17 change that deleted class BREG.
+	(REG_CLASS_NAMES,REG_CLASS_CONTENTS,REGNO_REG_CLASS): Likewise.
+	(REG_CLASS_FROM_LETTER): Likewise.
+	* i386.c (regclass_map): Likewise.
+
+	* svr4.h (LINK_SPEC): Don't do -z or -t here: it's already in
+	link_command_spec.  But do handle -G.
+
+	* i386.md (casesi): Rewrite pattern to reflect the way to emitted
+	code actually works.
+
+Tue Mar  3 09:59:15 1992  Jeffrey A. Law  (law@super.super.org)
+
+	* m68k.md (dbra pattern in HImode): New pattern to match
+	decrement_and_branch insns when the loop counter is decremented in
+	HImode.
+
+Tue Mar  3 07:57:18 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.md (doz patterns): Add missing `I' constraint.
+
+	* reorg.c (mark_target_live_regs): A CALL_INSN livens all global regs.
+
+	* vax.h (EXTRA_CONSTRAINT): New macro to select non-mode-dependent
+	MEM operands.
+	* vax.md (jlbc/jlbs): Use jbc/jbs if mode-dependent memory.
+	* vax.c (reg_or_nxmem_operand): Function deleted.
+
+	* expr.c (do_store_flag): Swap comparison code when putting
+	constant arg second.
+
+	* m68k.md (addhi3): Convert, e.g., 65535 to -1 before seeing if
+	we can use subqw.
+	(addqi3): Similarly for QImode constants
+
+	* local-alloc (optimize_reg_copy_1): Renamed from optimize_reg_copy.
+	(optimize_reg_copy_2): New function.
+	(update_equiv_regs): Call optimize_reg_copy_[12].
+
+	* combine.c (make_compound_operation, case AND): Turn SUBREG case
+	back on now that bug in i386.md has been fixed.
+	(simplify_comparison, case ASHIFT): If shifting low-order bit to
+	sign bit and doing equality comparison, convert to AND with low-order
+	bit (inequality case was already handled).
+	Also remove redundant test of CONST_OP in an earlier case.
+
+	* sun2o4.h (LINK_SPEC): No longer need -Bstatic with -g.
+
+	* m68k.c, m68k.h: Avoid %X% for most upper-case X since it means
+	something special to SCCS.
+
+	* rs6000.md (type): Add new type, mtlr.
+	(function_unit branch): Add delay from mtlr to br.
+	(movsi): When moving to lr, type is "mtlr".
+
+	* unroll.c (reg_dead_after_loop): Check for infinite loop by
+	counting JUMP_INSNs we follow.
+	Use GET_RTX_CLASS, reg_referenced_p, and single_set.
+
+	* expr.c (expand_increment): Set op0_is_copy when we are referencing
+	the low-order part of some value in a register.
+
+	* combine.c (force_to_mode): New arg REG; pass in recursive call.
+	If X has the same value as REG, use REG.
+	(make_field_assignment): Handle case when DEST and part of source
+	aren't the same, but are equal; pass destination to force_to_mode.
+
+	* m68k.md (addhi3): Generate addqw, subqw, or addw for
+	STRICT_LOW_PART versions the same way we handle the normal case.
+	(addqi3): Similarly for addqb, subqb, and addb.
+
+	* genattrtab.c (write_test_expr, case MOD): Double `%' in printf call.
+	(write_eligible_delay): Internal attribute "*delay_type" is always
+	used literally; it has no suffix or prefix.
+	
+	* m68k.md, vax.md (sob): Rewrite inequality versions so that they
+	have a PLUS inside the comparison; combine cannot remove the PLUS
+	due to overflow considerations.
+
+Tue Mar  3 07:56:30 1992  Eric Youngdale (youngdale at v6550c.nrl.navy.mil)
+
+	* vms.h (L__main): Remove #include <stdio.h>
+
+	* make-gcc.com: Call make-l2.com.
+
+Tue Mar  3 05:37:08 1992  Michael Tiemann  (tiemann@cygnus.com)
+
+	* stor-layout.c (layout_type): Handle OFFSET_TYPE.
+	* cp-tree.c (build_member_type): Deleted.
+	* cp-typeck.c, cp-decl.c, cp-init.c: All callers of
+	`build_member_type' now call `build_offset_type'.
+	* cp-typeck.c (convert_arguments): An argument that's an OFFSET_REF
+	must be resolved by `resolve_offset_ref'.  The OFFSET_REF case in
+	expand_expr does not do the right thing for G++ yet.
+
+	* cp-decl.c (grokdeclarator): Take CONSTP and VOLATILEP into account
+	when building METHOD_TYPEs.
+	(start_function): Ditto.
+
+	* cp-method.c (build_decl_overload): Change interface to take DNAME
+	instead of NAME.  Also, special-case handling of the default
+	operator new and operator delete for the std. signatures.
+	* cp-*.c: All callers changed.
+
+	* cp-class.c (build_vtable_entry): Rewrite built-in limit check to
+	work on platforms where SIZETYPE is unsigned.
+
+Mon Mar  2 08:49:16 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.c (m88k_debugger_offset): Delete warning.
+
+	* m88k.h (OVERRIDE_OPTIONS): Set `m88k_cpu' based on `target_flags'.
+
+	* m88k.md (cmpsi insn): Delete alternative that complements the
+	compare string for a swapped compare (it's wrong and unnecessary).
+	(cpu attribute): Define.
+
+	From Jyrki Kuoppala:
+	* pc532.h, pc532-mach.h, pc532-min.h, xm-ps532-min.h: New files.
+	* configure (ns32k-pc532-mach*, ns32k-pc532-minix*): New alternatives.
+
+	* dbxout.c (dbxout_type): Don't invoke dbxout_type_methods if
+	there are none.
+
+	* vax.c (print_operand_address): Allow REG+TERM.
+
+	* c-typeck.c (process_init_constructor): Reuse space for error
+	message strings.
+
+Mon Mar  2 02:54:48 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* seq386gas.h: New file, for Sequent using 386 & GAS.
+
+	* xm-i386sco.h: New file.
+
+	* optabs.c (ldexp): New function.  Used if host ldexp is broken.
+
+	* configure (i386-sequent-bsd*): Use seq386gas.h if --gas.
+	(i386-*-sco*): The host file is now xm-i386sco.h.
+
+	* i386.md (SImode and HImode logical compare): If we are only
+	testing one byte of a mem, use a byte test opcode.
+	(bit test patterns): Likewise when emitting test opcodes.
+
+Sun Mar  1 14:47:31 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* longlong.h (_IBMR2 udiv_qrnnd): Switch off due to overflow problems.
+
+Sun Mar  1 11:19:55 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (force_to_mode): New function.
+	(make_field_assignment): Rework code that handles fixed-position
+	fields to make it both much more general and much simpler.
+
+	* m68k.md: Add missing insns for using byte operations with
+	STRICT_LOW_PART; add was missing commutative equivalent and
+	most operations other than add and subtract were missing.
+
+	* varasm.c (assemble_start_function): Add missing arg to call to
+	dbxout_begin_function.
+
+	* fold-const.c (const_binop): Make minor source change to work
+	around bug in IBM RT PC compiler.
+
+Sun Mar  1 05:01:34 1992  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* cp-typeck.c (build_modify_expr): When wrapping NEWRHS in a
+	SAVE_EXPR, call `break_out_cleanups' first.
+
+Sat Feb 29 23:19:20 1992  Jim Wilson  (wilson@cygnus.com)
+
+	* reload.c (find_reloads): Reset preferred_class to NO_REGS after
+	substituting a reg_equiv_address for a pseudo reg.
+
+	* unroll.c (precondition_loop_p): Fix misplaced paren when checking
+	for MODE_FLOAT rtx.
+
+Sat Feb 29 13:59:54 1992  Michael Tiemann  (tiemann@cygnus.com)
+
+	* cp-typeck.c (build_modify_expr): To complete 24 Feb change,
+	COND_EXPRs must evaluate LHS in conditional slot if LHS has side
+	effects.  Otherwise the SAVE_EXPRs in lhs will only be evaluated
+	once, even though they are referenced on both branches of the
+	conditional.
+
+Sat Feb 29 13:32:35 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
+
+	* README.X11: Add warning to not use gas when compiling PIC code.
+
+	* fixincludes: Allow TAB as well as SPC before symbols to change.
+	Don't change "sun" if it's part of a multiword name that contains
+	underscores.
+	Make intermediate dir, if needed, when doing special-case fixes.
+	Use previously fixed file, if it exists, as source for all special
+	fixes.  Do less copying when making special fixes.
+	Ignore errors when chmod'ing a file that might not exist.
+	* fixinc.svr4: Preserve whitespace around "#" when fixing #else and
+	#endif.
+	Allow TAB as well as SPC before symbols to change.
+	Combine "sun" cases as in fixincludes.
+
+Sat Feb 29 11:10:55 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (movstrsi): Print opcode as "movsl" so that seq386.h can
+	change it into smovl.
+
+Sat Feb 29 09:15:51 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* function.c (expand_function_end): Allocate rtl that points to
+	trampoline permanently.
+
+	* reload1.c (gen_input_reload): If one operand of a PLUS is a MEM,
+	move it into a reg and add the other (makes code agree with comments).
+
+	* explow.c (eliminate_constant_term): Rework so it does not directly
+	add integer values; call simplify_binary_operation instead.
+	Second arg is now pointer to rtx, not int.
+	Assume constant is always second operand of PLUS.
+	(memory_address): Pass rtx pointer to eliminate_constant_term.
+	* halfpic.c (half_pic_address_p): Likewise.
+	* mips.c (simple_memory_operand, mips_address_cost): Likewise.
+	(mips_debugger_offset): Likewise.
+	* expr.c (expand_expr, case PLUS_EXPR): Likewise.
+	Don't add INTVALs; use simplify_binary_operation instead.
+	Remove obsolete OLD_INDEXING code.
+	Put a MULT in the first operand of the PLUS.
+
+	* combine.c (combinable_i3pat): Don't combine if I3DEST is a hard
+	reg in a non-valid mode.
+
+Sat Feb 29 09:14:19 1992  Eric Youngdale (youngdale@v6550c.nrl.navy.mil)
+
+	* vms.h (ASM_OUTPUT_COMMON): Use SIZE instead of ROUNDED bytes.
+	(DO_GLOBAL_CTORS_BODY): Do not call fflush(stdout).
+
+	* gcc.texi: Update GLOBAL[DEF,REF,VALUE] documentation.
+
+	* make-l2.com: Remove call to test_gcc2.
+
+Sat Feb 29 02:52:59 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (main): Rename envvars to CPLUS_INCLUDE_PATH and
+	OBJCPLUS_INCLUDE_PATH.
+
+	* m68k.h (TRANSFER_FROM_TRAMPOLINE): Use `move', not `mov'.
+
+Fri Feb 28 19:39:09 1992  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
+
+	* fixincludes: Don't change symbols that already start with `_'
+	into `__symbol__'.  Merge all of the sun* substitutions so they
+	don't fight each other.
+	Comment out junk after #elses and #endifs, to prevent warnings
+	when -pedantic is given.
+
+Fri Feb 28 13:42:05 1992  Jim Wilson  (wilson@cygnus.com)
+
+	* sched.c (schedule_insns): Don't update value of reg_live_length
+	when it is negative, because negative values are special.  Earlier
+	fix Dec 17 disabled the fprintf call, but not the assignment.
+
+	* unroll.c (copy_loop_body): After incrementing the base reg for a
+	split DEST_ADDR giv, must subtract the const_adjust from the base
+	reg to get its true current value.
+
+	* loop.c (maybe_eliminate_biv_1): When handling COMPARE, verify
+	that mult_val is positive, which makes the code match the comment,
+	and surrounding code.
+
+	* sparc.c (legitimize_pic_address): Always test reload_completed
+	in addition to reload_in_progress.
+
+	* sched.c (schedule_block): Don't reorder any USE insns at the end
+	of a function.  Exclude them all from scheduling.
+
+	* c-typeck.c (build_array_ref): Check for when `ar' is an
+	error_mark_node and don't emit a second error message for that node.
+
+	* Makefile.in: Correct misc typos in comments or spacing.
+	(mostlyclean): Update names of files to delete.
+
+	* Makefile.in (install-man): Also install cccp man page.
+	(uninstall): Also delete cccp man page.  Don't delete protoize and
+	unprotoize man pages twice.
+
+	* Makefile.in (libgcc2.a): Delete unnecessary -fstrength-reduce -O
+	flags on gcc command lines, superseded by LIBGCC2_CFLAGS.
+
+	* Makefile.in (config.status): Verify that file does not exist
+	before printing an error and failing.  Prevents problem with Sun's
+	KEEP_STATE feature.
+
+Fri Feb 28 05:15:58 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* stmt.c (expand_computed_goto): Call emit_queue.
+
+	* function.c (assign_parms): Don't generate convert whose operand
+	is register that is not valid in its mode.
+
+	* reload.c (find_reloads_toplev): Don't do anything with paradoxical
+	SUBREGs if BYTE_LOADS_ZERO_EXTEND.
+
+Thu Feb 27 09:59:09 1992  Jeffrey A Law  (law at b115.super.org)
+
+	* toplev.c (main): Enable caller-saves for all machines at
+	optimization levels of -O2 or higher.
+	* mips.h (OPTIMIZATION_OPTIONS): toplev.c will turn on
+	caller-saves at -O2 now.  Do not do it here.
+	* sparc.h (OPTIMIZATION_OPTIONS): Likewise
+
+Thu Feb 27 06:47:31 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cp-call.c: Move some extern declarations to file level.
+
+	* emit-rtl.c (init_emit_once): Cast VOIDmode to int in array index.
+
+	* reorg.c (mark_target_live_regs): Don't make recursive call if
+	function being compiled has infinite loop.
+
+	* cse.c (fold_rtx, case 'o'): New case to support folding LO_SUM.
+
+	* global-alloc.c (global_alloc): When calling reload, pass the
+	result of get_insns instead of basic_block_head[0].
+
+	* c-typeck.c (process_init_constructor): Don't check array index
+	against limits if array bounds weren't specified.
+
+	* gcc.c (link_command_spec): Put back -s.
+
+	* gcc.c (find_a_file): Add missing paren in init of file_suffix.
+
+	* i386sun.h (LIB_SPEC): Insert missing blank.
+
+	* sun386.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Add #undef.
+
+	* sparc.h (LINK_SPEC): Correct comment.
+
+	* sun3.h, i386sun.h (LINK_SPEC): Don't force -Bstatic if -g.
+
+	* mips-news.h (ASM_SPEC): Add missing "}".
+
+	* Makefile.in (install-native): Don't include install-proto.
+	(.y.c): Suppress default rule for using Yacc.
+
+	* combine.c (apply_distributive_law, case SUBREG): Check that word
+	numbers are the same.
+	Don't change a single-word operation into a multi-word operation.
+	Put all checks on SUBREGs in one place.
+	(gen_lowpart_for_combine): Use correct word number when making
+	explicit SUBREG.
+
+	* README.SCO: Obsolete file deleted.
+
+Wed Feb 26 21:23:02 1992  Jim Wilson  (wilson@cygnus.com)
+
+	* sparc.md (DImode sethi): Correctly handle CONST_DOUBLE, was
+	wrong endian.
+	(DImode lo_sum): Don't output CONST_DOUBLES as 64 bit constants,
+	just output the low 32 bits.
+
+	* unroll.c (find_splittable_givs): For combined address givs, save
+	the increment amount in add_val.
+	(copy_loop_body): For combined address givs, increment by the
+	amount calculated by find_splittable_givs, not by the amount that
+	the giv it was combined with gets incremented by.
+
+	* expr.c (clear_pending_stack_adjust): Check flag_no_inline, not
+	optimize, to determine whether functions declared inline will be
+	inlined.
+
+	* dbxout.c: Delete all #ifndef DBX_DEBUGGING_INFO stubs.  None of
+	them are needed.
+
+	* hp800.c, hp800.h: Fix typos in comments.
+
+Wed Feb 26 02:39:52 1992  Michael Tiemann  (tiemann at rtl.cygnus.com)
+
+	* cp-call.c (build_method_call): If conversion of INSTANCE_PTR
+	yields error_mark_node, return error_mark_node immediately.
+
+Tue Feb 25 23:40:01 1992  Mike Stump  (mrs at cygnus.com)
+
+	* tree.c (array_type_nelts): Fix documentation, really nelts-1
+	* cp-tree.c cp-tree.h cp-init.c (expand_vec_init): Fixed
+	multi-dimensional array inits.
+
+Mon Feb 24 00:03:23 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-tree.c (build_cplus_new): Set TREE_SIDE_EFFECTS bit on
+	NEW_EXPR.
+
+	* cp-typeck.c (build_modify_expr): Handle WITH_CLEANUP_EXPRs
+	specially when they appear in expressions (not initializations).
+	Also handle COND_EXPRs on the right-hand-side specially (in case one
+	of the COND_EXPR's branches is a WITH_CLEANUP_EXPR).
+
+Sun Feb 23 15:11:27 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl2.c (finish_anon_union): Make RTL for ANON_UNION_DECL based
+	on MAIN_DECL.
+
+	* cp-decl.c (lookup_tag): Deal with the fact that `clear_anon_tags'
+	may have been run.
+
+	* cp-decl.c (cplus_expand_expr_stmt): Give line number for usage
+	whcih incurs warning message.
+
+Sat Feb 22 20:49:45 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (init_decl_processing,auto_function): New approach to
+	defining the default functions `operator new' and `operator delete'.
+	* cp-init.c (init_init_processing): Rest of changes here.
+	* libgcc2.c (_builtin_{new,delete,New}): Gone.
+	* libgcc2.c (_new_handler): New name for section that defines the
+	default new handler.
+
+Sat Feb 22 02:09:55 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.0 released.
+
+	* gcc.c (do_spec_1): Handle SPACE_AFTER_L_OPTION.
+	* hp320.h (SPACE_AFTER_L_OPTION): Defined.
+	Note: for 2.1, try making a space there on all systems.
+
+	* i386mach.h (perform_*): New macros, copied from i386rose.h.
+
+	* Makefile.in (distclean): New target.
+	(realclean): Avoid duplication with self or with distclean.
+	(gcc.xtar.Z): Depend on gcc.xtar.
+	(gcc.xtar): Fixes in copying files.
+
+	* expr.c (do_store_flag): Don't correct CODE before where it is set.
+
+	* cp-parse.y (stmt): Pass pushcase_range all the args it wants.
+
+Fri Feb 21 18:14:52 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (distribute_notes): Correctly handle the case of a
+	REG_DEAD note for a multi-word hard register when not all of
+	the words are used.
+
+Fri Feb 21 16:47:32 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Change Meissner version # to 12.
+	(half_pic support): Move the halfpic support to halfpic.h which is
+	included in the decrose case, and nop the support in other MIPS
+	platforms.
+	(OPTIMIZATION_OPTIONS): Move setting caller-saves to -O2.
+	(OBJECT_FORMAT_COFF, EXTENDED_COFF): Define unless OSF/rose.
+	(INITIAL_FRAME_POINTER_OFFSET): Always recalculate the frame size,
+	don't rely on cached values.
+
+	* mips.c (half_pic support): Move the halfpic support to halfpic.c,
+	which is only compiled for OSF/rose.
+	(expand_block_move): Use copy_addr_to_reg instead of copy_to_reg in
+	case either the source or destination is an integer constant
+	converted to an appropriate pointer type.
+	(mips_debugger_offset): Use a local variable to hold function
+	result.
+
+	* decrose.h (toplevel): Include halfpic.h for halfpic support.
+	(PTRDIFF_TYPE): Change to 'int' to match current include files.
+	(WCHAR_TYPE): Change to 'unsigned int' to match include files.
+	(INIT_SECTION_ASM_OP): Delete, since the OSF/rose assembler doesn't
+	support a true initialization section.
+
+	* encrose.h (PTRDIFF_TYPE): Change to 'int' to match current include
+	files.
+	(WCHAR_TYPE): Change to 'unsigned int' to match include files.
+
+	* t-decrose (EXTRA_OBJS): Define as halfpic.o to provide halfpic
+	support.
+	(CONFIG2_H): Treat halfpic.h as another config file.
+	(halfpic.o): Add dependencies.
+
+	* halfpic.h (new file): Common include file for systems needing the
+	OSF/rose half-pic shared library support.
+
+	* halfpic.c (new file): Common support file for systems needing the
+	OSF/rose half-pic shared library support.  Currently these are stub
+	functions.
+
+Fri Feb 21 16:07:02 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-parse.y (get_current_declspecs): New function
+	(needed for naming sections).
+
+Fri Feb 21 01:34:08 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dwarfout.c (location_or_const_value_attribute): Use DECL_RTL again.
+	Seems to be safer for the moment.
+	* function.c (instantiate_decls): Don't instantiate DECL_INCOMING_RTL.
+
+	* dwarfout.c (output_mem_loc_descriptor): Handle CONST like SYMBOL_REF.
+
+	* collect2.c (errno): Declare if not macro.
+
+	* dbxout.c [MIPS]: Include gstab.h, not stab.h.
+
+	* dbxout.c (dbxout_symbol): No longer flush leading _ for C++ syms.
+
+	* cp-parse.y (.hush_warning): Set $$.
+
+	* gstdarg.h: Handle _HIDDEN_VA_LIST as in gvarargs.h.
+
+Thu Feb 20 07:41:29 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* vax.c (reg_or_nxmem_operand): New function.
+	(split_quadword_operands): Add missing return type (void).
+	* vax.md (jlbc/jbc/jlbs/jbs): Handle QImode operands properly.
+
+	* caller-save.c (set_reg_live): Use mode of SUBREG to see how many
+	hard regs are written.
+
+	* combine.c (simplify_shift_const, case IOR, AND, XOR): Perform
+	logic computation in RESULT_MODE, not mode of VAROP.
+
+Wed Feb 19 18:32:05 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* hp320.h (PRINT_OPERAND): Support codes '$' and '&'.
+
+	* reload1.c (reload): Add cast of enum in index.
+
+	* vms.h (CPP_PREDEFINES): Define __GNUC__ as 2.
+
+Wed Feb 19 21:43:36 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* dwarfout.c (output_mem_loc_descriptor):  Deleted useless blank line.
+	(output_mem_loc_descriptor) Added code to handle CONSTs in DECL_RTL
+	expressions.
+	(dwarfout_finish):  Added code to put a null string at the end of
+	the terminating .debug_macinfo section.
+
+Tue Feb 18 18:34:13 1992  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* cccp.c (main): Fix typo in comment or spacing.
+	* dbxout.c (dbxout_block): Likewise.
+	* expr.c (convert_move): Likewise.
+	* reload1.c (emit_reload_insn): Likewise.
+	* rtl.h (REG_NOTES): Likewise.
+	* sun4o3.h: Likewise.
+	* ultrix.h (CPP_PREDEFINES): Likewise.
+	* toplev.c (flag_no_common): Likewise.
+	* stmt.c (layout_type): Likewise.
+	* gcc.c (is_linker_dir, lookup_compiler): Likewise.
+
+	* sched.c (schedule_block): Comment code handling USE insns as
+	obsolete.
+
+Tue Feb 18 14:44:49 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c++: Run gcc in same dir as c++ was in, if exists there.
+	Use `exec' to run it.
+	New var `havefiles'; special message if no input files specified.
+	Pass through any unrecognized options.
+
+	* g++: Now a link to c++.
+
+Tue Feb 18 04:54:52 1992  david d [zoo] zuhn  (zoo at lynx.spa.umn.edu)
+
+	* protoize.c (main): added support for -p flag, to specify which
+	gcc is the one to call for -fgen-aux-info support.
+
+Tue Feb 18 07:29:23 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): Don't clobber OTHER_INSN's PATTERN if
+	we aren't able to change the insn.
+
+	* romp.md (bit_insv): Add missing CLOBBER when making pattern to
+	match mftb; likewise for the DEFINE_INSN.
+
+Tue Feb 18 01:03:41 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* rs6000.h (bss_section): Set `in_section' correctly.
+
+	* expmed.c (synth_mult): Count second shift for alg_compound.
+	Count extra shift for lea case.
+	* m68k.h (RTX_COSTS): Reduce cost of multiply.
+
+	* function.c (instantiate_decls): Instantiate DECL_INCOMING_RTL.
+
+Mon Feb 17 19:17:50 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* a29k.md (divmodsi4, udivmodsi4): Don't use reg 180 explicitly.
+	Instead use 'q' constraint letter.
+
+Mon Feb 17 16:15:02 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* global-alloc.c (global_alloc): Always call `reload'.
+
+Mon Feb 17 10:38:38 1992  Jim Wilson  (wilson at sphagnum.cygnus.com)
+
+	* a29k.md (movdi define_split): Use DImode in operand_subword
+	calls, not DFmode.
+
+Mon Feb 17 08:20:33 1992  Michael Tiemann  (tiemann at mole.gnu.ai.mit.edu)
+
+	* varasm.c (assemble_external): Check that DECL is some sort of
+	_DECL before referencing its DECL_RTL.
+
+Sun Feb 16 13:05:36 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-call.c (build_method_call): Add call to `assemble_external' in
+	case this is the first use of FUNCTION.
+	* cp-class.c (build_vfn_ref): Ditto for VTBL.
+	* cp-decl2.c (write_vtable_entries): Ditto for FN.
+	* cp-init.c (build_offset_ref): Ditto for T.
+	* cp-typeck.c (build_function_call_real): Ditto for FUNCTION.
+	* cp-method.c (hack_identifier): Ditto for VALUE.  Also remove
+	action that made call to `assemble_external' when !TREE_USED (VALUE).
+
+	* cp-lex.c (do_identifier): Remove call to `assemble_external' when
+	implicitly declaring ID.
+
+	* cp-parse.y (primary): Simplify the rules for calling
+	`assemble_external'.
+
+	* cp-decl.c (finish_function): For destructors, don't call
+	expand_expr_stmt if EXPRSTMT is VOID_ZERO_NODE.
+
+	* cp-typeck.c (default_conversion): Parallel Jan 21 change in
+	c-typeck.c.
+
+Sun Dec 16 23:31:54 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* dwarfout.c (fundamental_type_code):  Deleted gunk for handling
+	OFFSET_TYPEs. (They are *not* fundamental types).
+	(fundamental_type_code):  Fixed typo.
+	(location_attribute, const_value_attribute):  Changed to take one
+	rtx parameter rather than one tree parameter.
+	(location_or_const_value_attribute):  Changed to use DECL_INCOMING_RTL
+	rather than DECL_RTL for formal parameters.  Also changed calls to
+	location_attribute and const_value_attribute to provide the rtl
+	parameter.
+	(fund_type_attribute):  Changed to accept an actual fundamental type
+	code as a parameter directly.  Also changed all calls correspondingly.
+	(type_attribute):  Separated tests for ERROR_MARK and for VOID_TYPE
+	and added comments.
+	(output_unspecified_parameters_die):  Changed to take one tree param
+	and to generate *both* an AT_name and an AT_type attribute when the
+	input parameter represents of function definition.  Also adjusted
+	all calls correspondingly.
+
+Sun Feb 16 00:54:10 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes: Add #ifndef around size_t declaration in types.h.
+
+	* varasm.c (assemble_external): Do nothing if arg isn't a decl.
+
+	* Makefile.in (cp-parse.c): Update "expect" msg.
+
+	* next.h (CPP_SPEC): Rename -bsd to -strict-bsd.
+
+	* Makefile.in (mostlyclean): Add ld, mips-tfile, mips-tdump.
+
+	* protoize.c (directory_specified_p): Don't match files in subdirs.
+
+	* xm-rs6k-m.h: Renamed from xm-rs6000-mach.h.
+	* configure (rs6000-*-mach*): Changed accordingly.
+
+	* collect2.c (handler): No error msg here.  Just resend signal.
+	(write_c_file): Arg to write_list... is pointer.
+	(do_wait): Fix typo.
+	(scan_prog_file for non-OSF): Preserve all underscores.
+
+	* Makefile.in (install-collect2): Install gcc in libsubdir.
+
+Sat Feb 15 15:26:03 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* varasm.c (decode_reg_name): Empty string is not a reg number.
+
+	* fold-const.c (merge_component_references): NE tests against
+	mismatched constants forces 1, not 0, as value.
+
+	* i386gas.h (ASM_OUTPUT_OPCODE): Convert repz to repe.
+
+	* collect2.c: Get rid of PROTO macro; use non-prototype decls.
+	Don't include gstddef.h (had conflicts).  Use gstdarg.h, not stdarg.h.
+	(xcalloc, xmalloc): Add casts.
+	(do_wait): Avoid macros WTERMSIG, WEXITSTATUS missing on some machines.
+
+	* cp-typeck.c (default_conversion): Don't use initial value if BLKmode.
+
+	* objc-actions.c (finish_objc): Fix typos in last change.
+
+	* c-aux-info.c, dbxout.c, cccp.c (errno): Declare, if not a macro.
+
+	* i386.md (QI bit test recognizer): Split into separate patterns
+	for memory and register args.  Make a scratch reg for memory.
+
+Fri Feb 14 23:39:58 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* tree.c (get_identifier): Improve -Wid-clash message.
+
+Fri Feb 14 16:22:48 1992  Michael Collison  (collison at osf.org)
+
+	* i386rose.h (CPP_SPEC): Define the macros LANGUAGE_OBJECTIVE_C and
+	LANGUAGE_C_PLUS_PLUS if we are compiling Objective C or C++.
+	(INIT_SECTION_ASM_OP): Define as .init.
+	(CC1PLUS_SPEC): Define it.
+	(LINK_LIBGCC_SPECIAL): Define this to work around linker bug.
+
+Fri Feb 14 00:38:15 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (protoize.o, unprotoize.o): g++-include is under libdir.
+
+	* Makefile.in (enquire.o): Make the command one long line.
+
+	* gcc.c (do_spec_1): Omit relative prefixes from -L'ing
+	only if RELATIVE_PREFIX_NOT_LINKDIR is defined.
+	* rs6000.h (RELATIVE_PREFIX_NOT_LINKDIR): Defined.
+
+	* varasm.c (assemble_external): Test TREE_EXTERNAL.
+
+	* jump.c (follow_jumps): If can't find chain end, return orig label
+
+	* mot3300.h (PRINT_OPERAND): Always print 16 hex digits for a double.
+
+	* objc-actions.c (build_module_descriptor) [NEXT_OBJC_RUNTIME]: Ret 0.
+	(finish_objc): Value 0 from build_module_descriptor means no ctor.
+	When referencing a class_name symbol, don't output a .globl for it.
+	(finish_objc): Put artificial refs in text section.
+
+	* cccp.c (pedwarn_with_file_and_line): Handle -w, -W.
+
+Fri Feb 14 07:44:08 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.c (notice_update_cc): sCOND opcodes don't change the flags.
+	Don't record test or compares involving stack-like regs, since
+	final can't omits tests or compares involving such regs correctly.
+
+	* i386.c (seq,sne,beq,bne): These opcodes use the state of
+	cc_status from before the curren insn.
+
+	* reg-stack.c (stack_reg_mentioned_p): Don't make static.
+
+Fri Feb 14 06:27:48 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): Disable "if (...) {... x = C;} if (x) ..."
+	optimization; there doesn't seem to be a way to fix it.
+
+Thu Feb 13 18:06:06 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* seq386.h (ASM_OUTPUT_OPCODE): New macro. Change "movs" into
+	"smov" at the start of a string move mnemonic - Sequent as(1)
+	doesn't handle the former.
+
+Thu Feb 13 17:21:26 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (finish_struct): Use pedwarn for pedantic warning.
+	(grokdeclarator): Likewise.
+	* c-parse.y (component_decl_list2): Likewise.
+
+Thu Feb 13 22:11:36 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (make_extraction): Default modes to byte and register
+	size, as appopriate, when the bitfield insn doesn't exist.
+
+	* a29kunix.h (LINK_SPEC): Pass default option file to gld.
+	(LINK_LIBGCC_SPECIAL): Define to work around gld bug.
+
+	* explow.c (copy_to_suggested_reg): Try getting mode from TARGET.
+
+	* rs6000.h (ASM_FILE_END): New macro.
+	(EXTRA_SECTIONS): New section read_only_private_data.
+	(EXTRA_SECTION_FUNCTIONS): New function read_only_private_data_section.
+	(SELECT_RTX_SECTION): Always make non-toc data private, read-only.
+	(SELECT_SECTION): Put read-only data in appropriate sections.
+
+	*  jump.c (jump_optimize): Place branch in correct place when
+	optimizing "if (...) {... x = C;} if (x) ...".
+	(redirect_jump): Ensure jump's UID is within range of jump chain.
+
+	* a29k.c (output_prologue): Correctly set LR1 when more than 64
+	registers are needed.
+
+Wed Feb 12 22:22:46 1992    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* make-cccp.com: Define link as a local symbol to avoid 
+	possible conflict with a user defined global symbol.
+
+	* make-cc1.com: Likewise.
+
+Thu Feb 13 11:05:07 1992  Michael Meissner  (meissner at osf.org)
+
+	* mips.c (make_temp_file): Store created filename into a static
+	file-scope variable, not an auto.
+	(mips_asm_file_end): Use the appropriate filename in printing
+	errors.
+
+Thu Feb 13 01:15:00 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (skip_if_group): Skip comments after the #.
+
+	* cccp.c (macarg): Don't assume stringify will compress spaces.
+	(macroexpand): In stringify, compress space only outside tokens.
+
+	* cexp.y (exp1): Use pedwarn for comma in #if.
+
+	* cp-decl.c (push_binding_level, pop_binding_level):
+	Change `inline' to `__inline'.
+
+	* combine.c (make_compound_operation): Undo previous change.
+
+Wed Feb 12 18:47:47 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* function.c (instantiate_virtual_regs_1, case IF_THEN_ELSE):
+	Don't special case; allow all operands to be processed.  The last
+	two operands are nontrivial on the Vax.
+
+Wed Feb 12 18:58:48 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (do_spec_1): Only absolute prefixes turn into -L's.
+	(link_command_spec): Handle LINK_LIBGCC_SPECIAL.
+
+Wed Feb 12 18:38:29 1992  Chris Smith  (csmith at convex.com)
+
+	* convex.h (DEFAULT_CALLER_SAVES): define again, bug is fixed.
+	* convex.h (BRANCH_COST): Define as 0, so we won't use complex
+	alternatives to branches (whose expansions contain branches
+	on convex).
+
+Wed Feb 12 17:23:57 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config.sub: Accept just `hppa' for machine.
+
+	* Makefile.in (Install-collect2): New target.
+
+Wed Feb 12 13:55:24 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (relax_delay_slots): Don't convert jump to return here.
+
+	* configure (a29k-ultra-*): Deleted.
+	(a29k-*-bsd*): Merged with a29k-ultra-*.
+	(romp-*-mach*): Fixed typo in xmake_file name.
+	* xm-a29kunix.h: Renamed from xm-a29k-ult.h.
+	* x-a29kunix: New file.
+
+	* reload.c (find_reloads): Don't use class from preference if it
+	is a single-register class.
+
+Wed Feb 12 13:03:16 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.h (FUNCTION_BOUNDARY, ASM_OUTPUT_ALIGN): Pack code tightly
+	when compiling crtstuff.c (flag_inhibit_size_directive).
+
+Wed Feb 12 10:34:09 1992  Michael Meissner  (meissner at osf.org)
+
+	* decrose.h (*_SPEC): Compress some whitespace in the specs.  Also,
+	simpify which LANGUAGE_xxx names are defined, to be the ones uses by
+	the system(s).
+	* decstatn.h (*_SPEC): Likewise.
+	* iris.h (*_SPEC): Likewise.
+	* mips.h (*_SPEC): Likewise.
+	* mips-bsd.h (*_SPEC): Likewise.
+	* mips-news.h (*_SPEC): Likewise.
+	* mips-sysv.h (*_SPEC): Likewise.
+
+Wed Feb 12 10:34:09 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* caller-save.c (insert_save_restore): Properly check for insns that
+	reference CC0.
+
+Wed Feb 12 03:17:00 1992  Chris Smith  (csmith at convex.com)
+
+	* convex.h (DEFAULT_CALLER_SAVES): don't define, to sidestep a bug.
+	* convex.md (ffssi2): Comment out.
+
+Wed Feb 12 00:08:42 1992    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* make-libgcc2.com: Do not save .s file.
+
+	* vms.h: Wrap #include <stdio.h> in #ifdef L__main/endif
+
+Tue Feb 11 21:58:42 1992    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* libgcc2.c (DO_GLOBAL_DTORS_BODY): New macro.
+
+	* make-l2.com: New file to build libgcc2 on VMS.
+
+	* vms.h (DO_GLOBAL_CTORS_BODY): Replacement definition.
+
+	* vms.h (DO_GLOBAL_DTORS_BODY): Likewise.
+
+	* make-cccp.com: Define bison and rename as local symbols to avoid 
+	possible conflict with user defined global symbols.
+
+Tue Feb 11 22:17:32 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* sched.c (attach_deaths): Don't treat PIC offset table register
+	specially; flow.c doesn't.
+
+	* combine.c (make_compound_operation, case AND): We can have
+	a (and (subreg (lshiftrt ..) ..) ..); handle same as without SUBREG.
+ 
+	* Makefile.in (HOST_CLIB, HOST_ALLOCA, HOST_MALLOC, HOST_OBSTACK): New
+	variables to override.
+	(USE_HOST_*, HOST_LIBDEPS): Use HOST_PREFIX and new variables.
+	(HOST_LIBS): Use HOST_CLIB.
+
+Tue Feb 11 21:32:07 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (install-common-headers): Copy byteorder.h to
+	compilation dir.
+
+	* config.sub: Allow unicos as operating system.
+
+	* m88kv4.h (INIT_SECTION_ASM_OP): Add #progbits.
+
+	* vax.h (DYNAMIC_CHAIN_ADDRESS): New macro.
+
+	* c++: Propagate quoted args properly.
+
+Tue Feb 11 16:35:01 1992  Jim Wilson  (wilson at cygnus.com)
+
+	* fixincludes: Define TERM to `unknown', to ensure that it is
+	valid.  Otherwise, ex may fail.
+	* fixinc.svr4: Likewise.
+
+Tue Feb 11 18:04:32 1992  Michael Meissner  (meissner at osf.org)
+
+	* decrose.h (CPP_SPEC): Define the macros LANGUAGE_OBJECTIVE_C and
+	LANGUAGE_C_PLUS_PLUS if we are compiling Objective C or C++.
+	Silicon Graphics in particular uses LANGUAGE_C_PLUS_PLUS.
+	* decstatn.h (CPP_SPEC): Likewise.
+	* iris.h (CPP_SPEC): Likewise.
+	* mips-bsd.h (CPP_SPEC): Likewise.
+	* mips-news.h (CPP_SPEC): Likewise.
+	* mips-sysv.h (CPP_SPEC): Likewise.
+
+	* decstatn.h (CPP_PREDEFINES): Eliminate __<name> versions, since
+	gcc will do these automatically.  Eliminate LANGUAGE_C, since it is
+	handled in CPP_SPEC.
+
+Tue Feb 11 15:38:27 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* flow.c (find_basic_blocks): Don't delete labels used in non-jumps.
+
+	* vms.h (DO_GLOBAL_CTORS_BODY): Modify the return address
+	only the first time __main is called.
+
+	* fixinc.svr4: Change headers to test __STRICT_ANSI__ instead of
+	testing __STDC__ != 0.
+
+	* fixinc.svr4 (mman.h): Fix backward __STDC__ conditional.
+	Don't add declarations of munmap and mprotect.
+
+	* varasm.c (output_constant): Allow empty constructor for any type.
+
+	* dwarfout.c (ASM_OUTPUT_DWARF_DATA8): Just one definition;
+	test WORDS_BIG_ENDIAN "at run time".
+
+Tue Feb 11 09:00:01 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads): Don't substitute in MATCH_DUPs if we
+	are not generating replacements.
+
+Tue Feb 11 08:45:14 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88kv4.h ({CTORS,DTORS}_SECTION_ASM_OP): Fix typo.
+
+Mon Feb 10 22:34:47 1992  Chris Smith  (csmith at convex.com)
+
+	* convex.h(HARD_REGNO_NREGS): define correctly for 64-bit regs
+
+Mon Feb 10 21:50:23 1992  Michael Meissner  (meissner at osf.org)
+
+	* mips.h (MIPS_VERSION): Change Meissner version # to 11.
+	(CPP_SPEC): Define the macros LANGUAGE_OBJECTIVE_C and
+	LANGUAGE_C_PLUS_PLUS if we are compiling Objective C or C++.
+	Silicon Graphics in particular uses LANGUAGE_C_PLUS_PLUS.
+	(FP_DBX_FIRST): Change the test so that stabs in ECOFF uses the
+	value 38, in addition to stabs in GAS.
+
+	* mips.md (all function units): Make the function units simpler, and
+	not depend on the cpu type, to work around a memory hungry
+	genattrtab, which attempts to grow the data segment to than 32
+	megabytes.
+
+Mon Feb 10 16:34:11 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* convex.h (REAL_VALUE_TRUNCATE): Obsolete definition deleted.
+
+	* config.sub (convex-*): These are BSD, not sysv.
+
+	* dbxout.c (have_used_extensions): New var.
+	(dbxout_type, dbxout_type_fields, dbxout_symbol):
+	Set have_used_extensions when use an extension.
+	(dbxout_symbol): Don't use `Tt' extension unless extensions
+	have been used.
+
+Mon Feb 10 12:28:59 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* xm-a29k-ult.h: Fix typo in placement of copyright notice.
+
+Mon Feb 10 05:36:45 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_type): Don't use GDB extensions if they are empty.
+
+Mon Feb 10 00:10:20 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-class.c (finish_struct): Use DECL_CHAIN, not TREE_CHAIN to walk
+	through the list of methods identified by a visibility declaration.
+
+	* cp-cvt.c (convert_pointer_to): No longer need to abort if BINFO is
+	not a TREE_VEC or AGGR_TYPE node.
+
+	* cp-parse.y (stmt): Improve error handling for try/except.
+
+	* cp-class.c (add_method): If we create RTL for a copy of METHOD,
+	copy the RTL to METHOD's DECL_RTL slot.
+
+	* cp-method.c (dump_type): Print `const' and/or `volatile' for
+	VOID_TYPE and REAL_TYPEs, too.
+
+Sun Feb  9 21:07:45 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* varasm.c (assemble_integer): Pass third arg in recursive calls.
+	Act appropriately if word-by-word loop doesn't finish.
+
+	* Makefile.in (bootstrap*): Don't override value of ALLOCA.
+
+	* dbxout.c (dbxout_symbol, dbxout_parms): Do leaf function remap
+	only if LEAF_REG_REMAP and only in leaf functions.
+
+Sun Feb  9 16:46:27 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-init.c (maybe_adjust_addr_for_delete): Build final COND_EXPR
+	with TREE_TYPE (addr).
+
+Sun Feb  9 14:20:49 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.h (rs6000_{bss,private_data,read_only}_section_name):
+	Add declarations.
+	(rs6000_text_section_asm_op): Deleted.
+	(ASM_FILE_START): Initialize section names and enter bss section once.
+	(EXTRA_SECTIONS): Add `private_data' and `bss';
+	delete `global_variable'..
+	(read_only_data_section): Don't form name here.
+	(global_variable_section): Deleted.
+	(private_data_section, bss_section): New functions.
+	(ASM_DECLARE_FUNCTION_NAME): Don't write function name with [PR].
+	(ASM_OUTPUT_POLL_PROLOGUE): No longer needed.
+	(SELECT_{RTX_,}SECTION): Just calls data_section or
+	private_data_section.
+	(ASM_OUTPUT_LOCAL): Put in bss section.
+	(TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Now a constant.
+	* rs6000.c (rs6000_text_section_asm_op): Deleted.
+	(rs6000_{bss,private_data,read_only}_section_name): Add definitions.
+	(rs6000_gen_section_name): New function.
+
+Sun Feb  9 08:29:21 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.h (REGNO_REG_CLASS): Use a lookup table: AIX can't handle
+	complex tertiary expressions.
+	(GO_IF_LEGITIMATE_ADDRESS): Simplify slightly for the AIX
+	compiler.
+
+	* i386.c (regclass_map): New variable.  Lookup array for
+	REGNO_REG_CLASS.
+
+Sat Feb  8 01:20:33 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cp-parse.y (yyprint): Test __GNUC__, not __GNU__.
+	Use __inline, like everywhere else.
+
+	* a29k.h, romp.h (OVERRIDE_OPTIONS): Deleted.
+	(OPTIMIZATION_OPTIONS): Defined, instead.
+	* rs6000.h (OPTIMIZATION_OPTIONS): New macro.
+	(OVERRIDE_OPTIONS): Don't change optimization.
+
+	* final.c (leaf_renumber_regs_insn): No longer static.
+	* dbxout.c (dbxout_symbol, dbxout_parms): Call that.
+
+	* c-decl.c (lookup_name): Do nothing special if type is error mark.
+	(grokdeclarator): Ignore putative type name whose type is error mark.
+	* c-parse.y (primary): If var type is error mark, return error mark.
+
+	* c-typeck.c (build_array_ref): Return early if arg is error mark.
+
+	* Makefile.in (test-protoize): Rule deleted.
+
+	* stmt.c (emit_case_nodes): Handle just-left-subtree case
+	like just-right-subtree--delete mysterious code that tests cost_table.
+
+	* varasm.c (decode_reg_name): Accept decimal number as reg name.
+
+	* c-decl.c (finish_decl): If pop_obstacks goes to perm obstack,
+	call permanent_allocation.
+
+	* gcc.c (link_command_spec): Use -lgcc, not libgcc.a.
+
+Fri Feb  7 16:56:17 1992  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* rs6000.h (DOLLARS_IN_IDENTIFIERS): Define to zero, because the
+	assembler does not accept dollar signs.
+
+Fri Feb  7 15:36:40 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (mostlyclean): Fix name of tmp-proto.1.
+
+	* configure: Delete excess space in assignment to srcdir.
+
+	* cp-decl2.c (DOLLARS_IN_IDENTIFIERS): Default now 1, as in C.
+
+	* i386gas.h (ASM_OUTPUT_LOOP_ALIGN): New macro.
+	(ASM_OUTPUT_ALIGN_CODE): Use 16-byte boundary on 486.
+
+	* m68k.h (TRANSFER_FROM_TRAMPOLINE): Use operands for the memrefs
+	to avoid dependence on assembler syntax.
+
+Fri Feb  7 10:26:32 1992  Michael Meissner  (meissner at osf.org)
+
+	* Makefile.in (EXTRA_OBJS): New variable for extra object files
+	needed when linking cc1, cc1plus, and cc1objc.
+
+Fri Feb  7 07:34:03 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (set_label_offsets, reload_as_needed): Recompute
+	num_not_at_initial_offset when we pick up offsets from offsets_at.
+
+	* unroll.c (unroll_loop): Copy initial and final values to avoid
+	sharing.
+	
+	* cse.c (simplify_relational_operation): Complete last change by
+	correctly handling <= and >=.
+
+Thu Feb  6 23:57:02 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Invert sense of warning about
+	initialized extern vars, since in C++, const has funny semantics.
+
+Thu Feb  6 15:12:02 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cse.c (simplify_relational_operation): Test properly for floating
+	equality; don't deduce this from < and >.
+
+	* xm-mips.h (alloca): Don't define or declare if MIPS_OVERRIDE_ALLOCA.
+	* xm-irix4.h (MIPS_OVERRIDE_ALLOCA): Defined.
+
+	* m68k.h (TRANSFER_FROM_TRAMPOLINE): Use explicit reg var
+	to avoid dependence on register name syntax.
+
+	* mot3300.h (PUT_SDB_START_DIM, PUT_SDB_NEXT_DIM, PUT_SDB_LAST_DIM):
+	New macros.
+	(PUT_SDB_DIM): Deleted.
+	(PRINT_OPERAND): Handle %$ and %&.
+	(ASM_OUTPUT_OPCODE): Handle f%$move and f%&move.
+
+	* gstdarg.h: If not __GNUC__, use system's stdarg.h.
+
+Thu Feb  6 22:36:36 1992    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* vms.h (DEFAULT_GDB_EXTENSIONS): Define as 0.
+
+Thu Feb  6 13:32:37 1992  Michael Meissner  (meissner at osf.org)
+
+	* mips.h (MIPS_VERSION): Set Meissner version # to 10.
+	(flag_half_pic, mips_branch_likely): New global variables.
+	(call_memory_operand): New function declaration.
+	(half_pic_encode_section_info): Likewise.
+	(mips_constant_address_p): Likewise.
+	(mips_debugger_offset): Likewise.
+	(CC1_SPEC): Make OSF/1 -pic-xxx switches to -mhalf-pic, which is
+	currently undergoing development.
+	(DEBUGGER_AUTO_OFFSET): Emit correct information if frame pointer is
+	omitted.
+	(DEBUGGER_ARG_OFFSET): Likewise.
+	(TARGET_SWITCHES): Add -mabicalls and -mhalf-pic switches.
+	(PIC_OFFSET_TABLE_REGNUM): Define as the GP register ($28).
+	(EXTRA_CONSTRAINT): Add 'S' constraint for half-pic references.
+	(CONSTANT_ADDRESS_P): Call mips_constant_address_p.
+	(ENCODE_SECTION_INFO): Reorder test to test optimize first, and to
+	call half_pic_encode_section_info if half pic.
+	(PREDICATE_CODES): Add call_memory_operand.
+
+	* mips.c (flag_half_pic): New global variable to indicate to produce
+	half-pic output for OSF/rose.
+	(mips_branch_likely): New global variable to indicate the branch
+	should use the branch likely form of the instruction.
+	(mips_sw_reg_names): Use $fp instead of fp, since regdef.h no longer
+	defines fp.
+	(call_memory_operand): New function to return TRUE if the argument
+	is a valid MEM for a call instruction.
+	(mips_move_1word): Emit comment in la of half-pic addresses as a
+	temporary flag to put the right code down.
+	(mips_constant_address): New function to determine if something is a
+	constant address or not.  Add stub code for -mhalf-pic.
+	(override_options): Set flag_half_pic if -mhalf-pic.
+	(override_options): Mark %? as valid for print_operand.
+	(mips_debugger_offset): New function to correct the offset for
+	variables and arguments if the frame pointer has been omitted.
+	(print_operand): %? now emits a 'l' if mips_branch_likeley is set.
+	(mips_asm_file_start, function_prologue): If -mabicalls, emit the
+	pseudo ops that the Pyramid System V.4 port seems to want.
+	(compute_frame_size): Reserve space for saving GP if -mabicalls.
+	(half_pic_encode_section_info): Stub function for encoding whether
+	or not to generate a half pic reference.
+
+	* mips.md (type attribute): Add pic attribute.
+	(cpu attribute): New attribute to get the CPU type.
+	(branch_likely attribute): New attribute to say whether or not we
+	can use branch likely instructions.
+	(define_delay): Note that we can annull false branches if -mips2.
+	(memory function unit): Add pic in addition to load.
+	(various function units): Use the cpu attribute.
+	(branch patterns): Support branch likely instructions if -mips2.
+	(call, call_internal): Use call_memory_operand instead of
+	memory_operand.  If -mhalf-pic put function address in a register.
+	(call_value, call_value_internal): Likewise.
+
+	* decrose.h (INIT_SECTION_ASM_OP): Define as .init.
+
+Thu Feb  6 10:07:17 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.c (preserve_registers): Change to walk the epilogue delay
+	insns in the forward rather than reverse order (for reorg.c change).
+
+Thu Feb  6 02:54:28 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cse.c (simplify_binary_operation, case PLUS): Don't make
+	a (const (plus X Y)) with X a CONST_INT.
+
+	* fixincludes: Simplify egrep command.
+
+Thu Feb  6 01:11:28 1992  Mark Eichin  (eichin at cygnus.com)
+
+	* cp-lex.c (process_next_inline): if we get a "parse error at end of
+	saved function text", set yychar to something that
+	restore_pending_input will digest (if it thinks input is still
+	pending, it will abort, but we've already reported the problem to
+	the user.)
+
+Wed Feb  5 18:42:56 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (fill_simple_delay_slots): When filling delay slots by
+	searching backward, put each new insn we find at the head of the
+	delay list instead of at the tail.
+
+	* cse.c (fold_rtx): When associating operations, avoid infinite
+	recursion if the new expression contains our operand.
+
+Wed Feb  5 21:18:06 1992  Mark Eichin  (eichin at cygnus.com)
+
+	* cp-decl.c (globalize_nested_type): If the type isn't found at all,
+	this is an anonymous forward reference, so permit it.
+	Abort if type is already globally defined.
+
+Wed Feb  5 18:01:12 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* varasm.c, hp800.h, i386.h, m88k.h, mips.h, romp.h, vms.h:
+	(ENCODE_SECTION_INFO): Renamed from ENCODE_SEGMENT_INFO.
+
+	* sparc.md (nonlocal_goto): Copy static chain into
+	virtual_stack_vars_rtx, not frame pointer itself.
+	(nonlocal goto return recognizer): Jump to %o0+0.
+
+	* toplev.c (main): Fix test for -Wid-clash.
+
+Wed Feb  5 16:58:15 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* dwarfout.c (dwarfout_init):  Add two words containing the starting
+	and ending address of the .text section for this compilation unit to
+	the special initial entry in the .debug_srcinfo section.
+
+Tue Feb  4 14:51:16 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_symbol): Handle DBX_OUTPUT_CONSTANT_SYMBOL.
+	(dbxout_block): Handle DBX_OUTPUT_CATCH.
+
+	* cccp.c (lookup_import, add_import, do_include):
+	Use bcmp and bcopy to access st_ino and ->inode fields.
+
+	* dbxout.c (dbxout_init): Pass syms to DBX_OUTPUT_STANDARD_TYPES.
+
+	* fold-const.c (operand_equal_p): Check that modes match.
+	(comparison_equiv_p): New function.
+	(fold): Use that when converting ?: to min_expr or max_expr.
+
+	* c-common.c (c_expand_expr_stmt): Test for ERROR_MARK as type.
+
+Tue Feb  4 12:03:26 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* stmt.c (expand_end_case): Don't crash if function called
+	is not an ADDR_EXPR.
+
+Tue Feb  4 14:17:22 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expr.h ({float[sd]i[sd]f,fix[sd]f[sd]i,fixuns[sd]f[sd]i}_libfunc):
+	New declarations.
+	* optabs.c: Define them.
+	(expand_float, expand_fix): Use them instead of making a new
+	SYMBOL_REF each call.
+	(init_optabs): Initialize them.
+
+Tue Feb  4 00:27:35 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (protoize.1, unprotoize.1): Rename temp files < 14 chrs.
+
+	* cccp.c (skip_if_group): Make unknown cmd name a pedantic warning.
+
+Mon Feb  3 18:10:41 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* romp.h (LEGITIMATE_CONSTANT_P, ENCODE_SEGMENT_INFO): Use
+	SYMBOL_REF_FLAG.
+
+	* x-romp-mach: New file.
+	* configure (romp-*-mach*): New alternative.
+
+Mon Feb  3 16:43:55 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cp-typeck.c (warn_for_assignment): Print arg num in origin 1.
+
+	* sparc.md (nonlocal_goto trap recognizer): Fix opcode spelling.
+
+	* function.c (fix_lexical_addr): Properly search for correct display.
+
+	* romp.h (OVERRIDE_OPTIONS): Don't set flag_omit_frame_pointer.
+
+Mon Feb  3 11:11:58 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* gcc.c (@c++-cpp-output): Delete extraneous "}}}" at the end of the
+	rule.
+
+Mon Feb  3 11:38:19 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* dwarfout.c (dwarfout_init):  Generate an initial 2-word entry in the
+	.debug_srcinfo section containing the addresses of the starts of the
+	.line and .debug_sfnames sections.  Generate it after the initial entry
+	for the .line section.
+
+	* dwarfout.c [DWARF_TIMESTAMPS]: Ensure time_t and time declared.
+	(dwarfout_init):  Make third word of initial .debug_srcinfo entry be
+	the compilation date/time if DWARF_TIMESTAMPS is defined, or else -1.
+
+	* dwarfout.c (dwarfout_init):  Output compilation directory name as
+	the first thing in the .debug_sfnames section.
+
+Mon Feb  3 04:12:51 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* Makefile.in (install-dir): `parent' is a shell variable.
+
+Mon Feb  3 09:43:51 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.h (EXTRA_SECTIONS): Use init and fini sections from svr3.h,
+	but only when using svr3.h.
+
+Sun Feb  2 19:50:29 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.h (ADDRESS_COST): New macro.
+
+Sun Feb  2 17:08:47 1992  Michael Meissner  (meissner at osf.org)
+
+	* mips.c (simple_memory_operand): Don't recognize references to
+	variables in .sdata or .sbss, which has the effect of not putting
+	stores into delay slots.  This fixes a bug and also doesn't temp the
+	MIPS linker from trying to put 4 instructions into the delay slot
+	when it rewrites the function as a PIC function.
+
+Sun Feb  2 16:58:11 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Do ON_EXIT last.
+
+	* Makefile.in (install-dir):  Create the parent of mandir if nec.
+
+	* real.h (REAL_VALUE_TRUNCATE): sizeof says what cast to float does.
+
+	* dbxout.c (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY): New parameter macro.
+	(DBX_OUTPUT_MAIN_SOURCE_FILENAME, DBX_OUTPUT_SOURCE_FILENAME):
+	(DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
+	These are used in place of ASM_...
+	* newpbb.h (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Macro renamed.
+	(DBX_OUTPUT_SOURCE_FILENAME): Likewise.
+	* next.h (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY): Macro renamed.
+	(DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
+
+Sun Feb  2 12:51:54 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-typeck.c (build_component_ref_1): Call `compute_visibility'
+	with a BASETYPE_PATH, not a TREE_LIST.
+
+	* cp-class.c (build_vtable_entry): Apologize if we cannot build a
+	proper vtable because of builtin liminations.
+
+Sun Feb  2 07:30:08 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c (combine_reloads): Don't combine two reloads with different
+	secondary reloads; copy secondary reload to combined reload.
+
+	* cse.c (cse_main): PIC_OFFSET_TABLE_REGNUM is not clobbered by calls
+	if -fpic or -fPIC.
+	* reorg.c (mark_target_live_regs): Likewise.
+	* sched.c (attach_deaths): Likewise.
+
+	* flow.c (find_basic_blocks): Don't separate a CALL_INSN from
+	following CLOBBER insns.
+
+	* function.c (use_variable, use_variable_after): Don't interpret
+	reference to internal arg pointer as variable-sized object.
+	(expand_function_start, expand_function_end): Add USE for virtual
+	arg pointer if stupid alloc and it is not the real arg pointer.
+
+	* flow.c (insn_dead_p, mark_set_1, mark_used_regs): Don't treat
+	ARG_POINTER_REGNUM specially if it isn't fixed.
+	* sched.c (attach_deaths): Likewise.
+	* reorg.c (mark_target_live_regs): Likewise; also make set of regs
+	clobbered on call agree with cse and flow.
+
+	* function.c (fix_lexical_addr): Rework to look for AP references
+	using internal_arg_pointer; make some related cleanups.
+	* expr.c (expand_expr, case VAR_DECL, SAVE_EXPR): Treat
+	inline_function_decl just like current_function_decl.
+	* stmt.c (expand_end_bindings): When restoring arg pointer, restore
+	into the virtual form so we will subtract the proper offset, since
+	the saved value includes the offset.
+
+Sat Feb  1 14:41:34 1992  Ken Raeburn  (Raeburn@Cygnus.COM)
+
+	* cp-pt.c (end_template_decl): For method template, no longer call
+	popclass; it isn't needed any more.  If after processing template
+	we're not at the global binding level, throw away any other binding
+	levels, rather than aborting.  Also deleted some other unused code.
+
+Sat Feb  1 09:13:47 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* xm-rs6000-mach.h, rs6000-mach.h: New files.
+	* configure (rs6000-*-mach): New option.
+
+Sat Feb  1 00:57:24 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.c: Include tree.h
+	(symbolic_operand): New predicate function.
+	(symbolic_reference_mentioned_p): New function.
+	(legitimize_pic_address,emit_pic_move): New functions.
+	(function_prologue): Delete unused variable nregs.
+	If the PIC reg is used, save the old contents and initialize with
+	a pointer to the GOT.
+	(simple_386_epilogue): Count the PIC reg if it is used.
+	(function_epilogue): Delete unused variable "insn".  Restore the
+	original contents of the PIC reg if it was used.
+
+	(output_pic_addr_const): New function to handle PIC symbol
+	reference suffixes.
+	(print_operand_address): Use that if flag_pic is true.
+	(print_operand): Likewise.  Don't print a prefix in front of any
+	constant if the 'P' code is used.
+
+	(output_387_binary_op): abort if the op is not one we handle.
+
+	(maximum_field_alignment): New variable.
+	(handle_pragma_token): New function.  Handle `weak' and `pack'.
+
+	* i386.h (CONDITION_REGISTER_USAGE): New macro.  Mark PIC reg as
+	fixed and call used if flag_pic is true.
+	(PIC_OFFSET_TABLE_REGNUM): New macro.
+	(FUNCTION_PROFILER): Output PIC compatible code if flag_pic.
+	(INITIAL_ELIMINATION_OFFSET): Count the PIC reg if it is used.
+
+	(GO_IF_LEGITIMATE_ADDRESS): If flag_pic is true, reject bare
+	label or symbol references, but allow constant pool references.
+	In all cases, don't bother to check for a constant as the first
+	operand of a PLUS.
+	(LEGITIMIZE_ADDRESS): Call legitimize_pic_address for symbolic
+	references if flag_pic is true.  In all cases, HImode regs are not
+	valid memory pointers.
+	(LEGITIMATE_PIC_OPERAND): New macro.
+	(SYMBOLIC_CONST): New macro.
+	(ENCODE_SEGMENT_INFO): New macro to notice static variables.
+	(CONST_COSTS): Symbolic constants cost more if flag_pic is true.
+
+	* i386.md (movsi): Use define_expand.  Call emit_pic_move for
+	symbolic constants if flag_pic is true.
+	(divmodM4,udivmodM4): Change predicates so that only regs are
+	allowed in operands that can't be a mem.  Avoids reload
+	congestion.
+	(indirect_jump): Allow any reg or mem as operand, not just reg 0.
+	(casesi): New insn, only used if flag_pic is true.
+	(call,call_pop,call_value,call_value_pop): Use define_expand to
+	record if this function ever emits a call, which will implicitly
+	use the PIC address register.
+
+	* svr4.h (SELECT_SECTION): Any item whose initial value involves
+	linker relocation must go in the data section if flag_pic is true.
+
+	* i386v4.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output in PIC style.  If
+	flag_pic is false, ADDR_DIFF_VECs are not output and this is not
+	used.
+	(JUMP_TABLES_IN_TEXT_SECTION): New macro.
+
+	(WEAK_ASM_OP,DEF_ASM_OP): New macros.
+	(maximum_field_alignment): New variable.  Declare here.
+	(PCC_BITFIELD_TYPE_MATTERS): New macro.  Value depends on
+	maximum_field_alignment.
+	(BIGGEST_FIELD_ALIGNMENT): New macro.  Likewise.
+	(HANDLE_PRAGMA): New macro.
+	(ASM_OUTPUT_ALIGNED_LOCAL): New macro.
+
+Sat Feb  1 00:15:41 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* flow.c (flow_analysis, find_basic_blocks):
+	If have nonlocal labels, calls end basic blocks.
+	Each call can jump to each nonlocal label.
+	Pass extra arg to find_basic_blocks.
+	* function.c (nonlocal_label_rtx_list): New function.
+
+	* dbxout.c (dbxout_init): Vars wd and wd_gotten moved to top level
+	and renamed to cwd and cwd_gotten.
+
+	* c-decl.c (start_function): -Wmissing-prototypes warns if static
+	function was previously used without a prototype.
+
+	* loop.c (find_and_verify_loop): Initialize uid_loop_num[0].
+	(loop_optimize): Give up fast if no loops.
+
+	* stmt.c (expand_end_bindings): Don't adjust fp in nonlocal goto hndlr
+	if there is a nonlocal_goto insn.
+
+	* Makefile.in (cccp.o): Use just libdir in GPLUSPLUS_INCLUDE_DIR.
+
+	* gcc.c (do_spec_1): Supply missing arg in some recursive calls.
+
+Fri Jan 31 21:50:03 1992  Jeffrey A. Law  (law at wombat.gnu.ai.mit.edu)
+
+	* m68k.h (OVERRIDE_OPTIONS): -fPIC is only supported on the 68020
+	and later cpus.  Give an error if -fPIC is tried on a 68000.
+
+Fri Jan 31 21:39:33 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* flow.c (find_auto_inc): If emitting a move insn in front of the
+	first insn in a block, update basic_block_head.
+
+	* caller-save.c (init_caller_save): Correctly check for case where the
+	save or restore insns aren't recognized.
+
+Fri Jan 31 21:02:35 1992  Mark Eichin  (eichin at cygnus.com)
+
+	* cp-decl.c (pushtag): when calling pushdecl, if we're in a
+	  class_binding_level just do a pushdecl_class_level. Otherwise
+	  pushdecl gets called multiple times on class-nested enums, which
+	  short circuits the name list in the global_binding_level.
+
+Fri Jan 31 00:14:20 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* stmt.c (expand_goto): Use nonlocal_goto pattern if it exists.
+	* sparc.md (nonlocal_goto): New pattern.
+	Also nameless pattern for the special trap insn.
+
+	* gcc.c (S_ISDIR): Add default definition.
+
+	* function.c (expand_function_end):
+	Set up arg_pointer_save_area at start of function.
+
+	* c++: Accept -nostdlib, not -nostinc.
+
+	* va-sparc.h: If GCC v1, define __extension__ as nothing.
+	* va-i860.h, va-pyr.h, va-spur.h: Likewise.
+
+	* cp-class.c (finish_struct): Fill in DECL_ALIGN of vtable field.
+
+	* regclass.c (reg_class_record):
+	Don't follow indirect loops in constraints.
+
+	* function.c, expr.h (current_function_internal_arg_pointer): New var.
+	* function.c (assign_parms): Set it.
+	(push_function_context, pop_function_context): Save and restore it.
+	* expr.c (expand_builtin): Use it.
+	* function.h (struct function): New slot to save it in.
+
+	* cse.c (cse_main): Calls do clobber arg pointer if not fixed.
+
+	* hp320.h (HAVE_ATEXIT): New definition.
+
+	* Makefile.in (ALL_CPPFLAGS): New variable.
+	Use in all compile steps instead of CPPFLAGS.
+	(X_CPPFLAGS, T_CPPFLAGS): New vars, used in ALL_CPPFLAGS.
+	* x-vax (X_CPPFLAGS): Use this instead of X_CFLAGS.
+
+	* stmt.c (expand_end_bindings): Fix typo.
+
+Fri Jan 31 12:15:09 1992  Ron Guilmette  (rfg ay ncd.com)
+
+	* dwarfout.c (LINE_LAST_ENTRY_LABEL): Definition added.
+	(dwarfout_finish):  Put a label on the last .line section entry.
+	(dwarfout_finish):  Make first word of final .debug_srcinfo record
+	contain the offset of the final .line section entry.
+
+Fri Jan 31 10:31:44 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* cp-tree.c (__eprintf): Make definition match assert.h
+	declaration.
+
+Thu Jan 30 23:17:11 1992  Per Bothner  (bothner at cygnus.com)
+
+	* c++:  The flags -c, -S, or -E suppress passing -lg++
+	to gcc.  (Otherwise, gcc prints a warning.)
+
+Thu Jan 30 21:10:02 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* dwarfout.c (dwarfout_init):  Fix generation of initial .debug_aranges
+	entry to be Dwarf Version 1 compliant.
+
+Thu Jan 30 15:51:27 1992  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* i386sun.h (LINK_SPEC): Delete useless %{-Bstatic} term.
+	* sun2o4.h (LINK_SPEC): Likewise.
+	* sun3.h (LINK_SPEC): Likewise.
+	* sparc.h (LINK_SPEC): Delete useless %{Bstatic} term.
+
+	* cccp.c (default_include): Delete use of obsolete
+	NO_STANDARD_INCLUDE_DIR macro.
+	* protoize.c (default_include): Likewise.
+
+	* Makefile.in (libgcc1.null): Delete dummy.o and dummy.c.
+
+Thu Jan 30 15:34:06 1992  Michael Meissner  (meissner at osf.org)
+
+	* gstdarg.h: Include va-mips.h on MIPS systems.
+
+	* va-mips.h (va_start): Provide alternate definition when included
+	via stdarg.h.
+	(va_arg): Use __alignof(...) instead of sizeof(...) to determine
+	whether or not to dword align the argument pointer.
+
+Thu Jan 30 13:06:36 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (install-common): Get c++ and g++ from srcdir.
+
+	* i860.h (FIXED_REGISTERS): Arg pointer is no longer fixed.
+
+	* assert.h (__eprintf): Add const to string args in GCC ANSI case.
+
+	* Makefile.in (cccp.o, protoize.o, unprotoize.o):
+	Define LOCAL_INCLUDE_DIR based on $(prefix).
+
+	* stmt.c (expand_end_bindings): Arg pointer needs no special
+	treatment if not fixed.
+
+	* cp-parse.y, c-lex.c (yyerror):
+	Avoid sign-extension of characters in error messages.
+
+Thu Jan 30 11:39:56 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* dwarfout.c (dwarfout_finish):  Fix generation of .debug_pubnames
+	terminating entry to be 4-bytes of zero followed by a null string.
+
+Thu Jan 30 09:30:19 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.c (ccr_bit): Fix typo causing reference to possibly
+	undefined operand.
+
+	* rs6000.h (ASM_SPEC): Remove until new AIX assembler is available.
+	(ASM_OUTPUT_POOL_PROLOGUE): Add missing "." in csect name.
+	(ENCODE_SEGMENT_INFO): Deleted.
+	(ASM_OUTPUT_EXTERNAL): Move code from ENCODE_SEGMENT_INFO here,
+	using permalloc instead of putting name into saveable_obstack.	
+	Re-enable macro.
+	(ASM_OUTPUT_EXTERNAL_LIBCALL): Re-enable.
+
+Wed Jan 29 21:50:26 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.h (ASM_SPEC): Add -u, now require new /bin/as for AIX.
+	(ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): No longer needed.
+
+	* rs6000.h (ENCODE_SEGMENT_INFO): New macro; add [RW] or [DS] to name.
+	(RS6000_OUTPUT_BASENAME): New macro.
+	(ASM_OUTPUT_*): Use it instead of assemble_name when required.
+	(ASM_OUTPUT_POOL_PROLOGUE): Remove trailing [RW] or [DS].
+	* rs6000.c (print_operand, case 'z'): New case, for name in CALL_INSN.
+	(output_toc): Use RS6000_OUTPUT_BASENAME instead of assemble_name
+	for toc entry name.
+	* rs60000.md (call): Use %z.
+
+Wed Jan 29 17:17:42 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-init.c (build_member_call): Fix bug involving static members
+	that are function pointers.
+
+Wed Jan 29 13:25:18 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* gcc.c (do_spec_1): For %D, only add -L options that are relevant.
+	(is_linker_dir): Determine if a -L option is relevant.
+
+Wed Jan 29 00:57:55 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure: Turn ns32k alternatives back on.
+
+	* Makefile.in (getopt.o, getopt1.c): Join two lines into one.
+
+	* x-i386v4, x-i860v4 (GCC_CFLAGS): Add missing `-B./'.
+
+	* reload.c (find_dummy_reload, push_reload): Don't reuse dying input
+	reg as a reload if it is a fixed reg.
+
+	* c-tree.h (C_MISSING_PROTOTYPE_WARNED): Deleted since unused.
+
+Wed Jan 29 00:42:34 1992  Tim Moore  (moore at fast.cs.utah.edu)
+
+	* hp800.c (print_operand): Handle INSN_ANNULLED_BRANCH_P in '*'
+	operand type.
+	* hp800.h (DEFAULT_GDB_EXTENSIONS): Define as 0.
+	* hp800.md (cmpsi): Change arith_operand to arith5_operand.
+	(bCC patterns): Delete pattern that matches a compare with a
+	constant first operand. Change arith_operand to arith5_operand.
+	(fp branches): Change type to cbranch.
+
+	* function.c (assign_parms): Set current_function_arg_offset_rtx
+	correctly for ARGS_GROW_DOWNWARD.
+	* gstdarg.h: Include va-hp800.h.
+	* va-hp800.h: Complete rewrite.
+
+Tue Jan 28 17:04:38 1992  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* varasm.c (make_decl_rtl): Delete unused var `i'.
+
+	* c-convert.c (convert_to_pointer):
+	Abort if no integer type is as wide as a pointer.
+
+	* gcc.c (default_compilers, .i case): Add error message for -pg
+	and -fomit-frame-pointer incompatibility.
+
+	* Makefile.in (install-common): Install c++ and g++ shell scripts in
+	bindir.
+
+Tue Jan 28 15:44:10 1992  Michael Collison  (collison at osf.org)
+
+	* x-encrose (OLDCC): changed to $(GNU_ROSE_BIN)/gcc
+
+	* ns32k.h: Added trampoline code.
+
+Tue Jan 28 14:19:52 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rtl.def (UNSPEC, UNSPEC_VOLATILE): New RTL codes.
+	* cse.c (canon_hash): UNSPEC_VOLATILE operations are volatile.
+	* loop.c (invariant_p): Likewise.
+	* reorg.c (mark_referenced_resources): Likewise.
+	* sched.c (sched_analyze_2): Likewise.
+	* rtlanal.c (volatile_refs_p, side_effects_p, may_trap_p): Likewise.
+	(reg_referenced_p): Support UNPEC and UNSPEC_VOLATILE.
+
+Tue Jan 28 11:50:35 1992  Michael Meissner  (meissner at osf.org)
+
+	* mips.c (toplevel): Add include of <ctype.h>, since isdigit is
+	used.
+
+Tue Jan 28 05:47:08 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (xref_tag): Addition to eichin's Jan 25 change.  If REF
+	is extant, and it's seen in the global scope outside of
+	CLASS_BINDING_LEVEL, set its IDENTIFIER_GLOBAL_VALUE if NULL.
+
+	* cp-class.c (pushclass): Forcibly remove any remnants of incomplete
+	type that was previously pushed.
+
+	* cp-decl.c (various places): Remove all error messages about C++
+	constructs being invalid in C language context; extern "C" is a
+	linkage specifier--no more.
+
+	* cp-method.c (dump_type_prefix,dump_type): Never need to output
+	`unsigned' since its always part of an unsigned integer type name.
+	(build_overload_name): Change test for unsigned to use
+	`unsigned_type' instead of examining TREE_UNSIGNED.
+
+	* cp-call.c (ideal_candidate): Don't convert PARMS in place if
+	BASETYPE is NULL_TREE.
+
+Tue Jan 28 02:21:31 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (grokdeclarator): Use `auto' for nested fn fwd decls.
+
+	* g++: New file.
+
+	* fixincludes:
+	Convert machine names in #if's to have underscores.
+	Fix specific files stdlib.h, locale.h, hsfs/... for Sunos 4.1.
+	* fixinc.svr4: Convert machine names in #if's to have underscores.
+
+	* gcc.c (do_spec_1): For %D, also make -L's for startfile_prefix.
+	Also append the machine
+
+	* fold-const.c (fold_convert): Properly handle real-to-real case.
+
+	* configure (i486-*-sysv4*): New alternative.
+
+Tue Jan 28 00:37:24 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* dwarfout.c (location_attribute):  Fix handling of objects which
+	were optimized out of existance for Dwarf Version 0 compliance.
+
+Tue Jan 28 00:42:57 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* Makefile.in (mostlyclean): Delete stack dump files too.
+
+Mon Jan 27 18:26:27 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.h (HAVE_ATEXIT, NO_DOLLAR_IN_LABEL): Now defined.
+
+Mon Jan 27 13:32:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* libgcc2.a (L_exit): Declare __CTOR_LIST__ and __DTOR_LIST__
+	with length 2; get rid of __CTOR_END__ and __DTOR_END__.
+	(L_ctor_list, L_dtor_list): New library members.
+
+	* cccp.c (main): Add terminating null, then call trigraph_pcp.
+
+	* fixincludes, fixinc.svr4: Fail unless an arg was given.
+	* Makefile.in (install-fixincludes): Pass output dir as argument.
+
+	* Makefile.in: Renamed libgcc[12] to libgcc[12].a.
+	Likewise for tmplibgcc[12].
+
+	* toplev.c (rest_of_decl_compilation): Treat all fcns as if external.
+
+	* Makefile.in (TAGS): Do the work in srcdir.
+	Include c-parse.h in files to move.
+
+Mon Jan 27 10:54:24 1992  Jim Wilson  (wilson at sphagnum.cygnus.com)
+
+	* cccp.c (get_filename): Don't pass -1 file descriptor to close.
+
+Mon Jan 27 00:26:33 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (start_function): Preserve TREE_TYPE of RESULT_DECL, in
+	case we have a named return value.
+	(finish_function): Restrict the cases under which we build
+	`no_return_label'.  Use CURRENT_FUNCTION_RETURN_VALUE to eliminate
+	the generation of needless cleanups when functions end with a return
+	stmt.  No longer zeros out CLEANUP_LABEL.  Also, call `emit_jump'
+	instead of `expand_null_return' in case NO_RETURN_LABEL is
+	non-NULL.
+
+	* cp-decl2.c (grokfield): Don't specially hack static member
+	function names.
+
+	* cp-except.c (cplus_expand_raise): Test correct predicate that we
+	have a non-null value return.
+	(cplus_expand_{throw,reraise}): Ditto.
+
+	* cp-typeck.c (c_expand_return): Handle case where named return
+	value has incomplete type.
+
+Sun Jan 26 20:50:55 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-parse.y (LC): Fix rule to use `push_obstacks_nochange'.
+	(structsp): Use `pop_obstacks'.
+
+Sun Jan 26 17:39:15 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-parse.y (LC): Use push_obstacks_nochange and always call
+	end_temporary_allocation.
+	(structsp, template_instantiate_once): After LC, use pop_obstacks.
+
+	* c-decl.c (grokdeclarator):
+	Static function decl within a function is not external.
+
+Sun Jan 26 08:14:53 1992  Michael Meissner  (meissner at osf.org)
+
+	* mips.h (MIPS_VERSION): Bump meissner version # to 9.
+	(enum processor_type): Delete PROCESSOR_R2000, since a r2000
+	schedules just like a r3000.
+	(mips_isa, mips_isa_string, mips_cpu_string): New global variables.
+	(MD_EXEC_PREFIX): If not defined, define as "/usr/lib/cmplrs/cc/".
+	(TARGET_SWTICHES macros): Move setting the processor from
+	TARGET_SWITCHES to TARGET_OPTIONS.  Also, delete the -mfixed-ovrfl
+	switch, and move -mwc8/-mwc16 to not use any bits, since we can't
+	support these in GCC 2.00.  Readjust the positions the bits are in.
+	(TARGET_OPTIONS): Define to add switches -mcpu=x to set which
+	processor type to schedule for, and -mipsx to specify the
+	instruction set architecture level.
+	(BRANCH_LIKELY_P): New macro, true if MIPS ISA >= 2.
+	(HAVE_64BIT_P): New macro, true if MIPS_ISA >= 3.
+	(HAVE_SQRT_P): New macro, true if MIPS_ISA >= 2.
+	(BRANCH_COST): Define as 2 if r4000/r6000, 1 otherwise.
+	(ASM_OUTPUT_SKIP): Eliminate OSF/1 gas work around.
+
+	* mips.c (mips_isa, mips_isa_string, mips_cpu_string): New global
+	variables.
+	(print_options): Print CPU and ISA level.
+	(override_otpions): Handle TARGET_OPTIONS setting cpu and ISA.
+	(override_options, print_operand): %: is no longer supported, since
+	-mfixed-ovfl is eliminated.
+
+	* mips.md (type attribute): Add fsqrt.
+	(all define_function_units): Redo, to add full r6000 and r4000
+	support, and to use the default case in case another processor type
+	is added.  Also, tests against PROCESSOR_R2000 eliminated.
+	(add, subtract patterns): Delete use of %:.
+	(sqrtdf2, sqrtsf2): Define if the MIPS ISA >= 2.
+
+	* decrose.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define these to
+	use the defaults on the OSF/1 reference platform.
+	(i386rose.h): Likewise.
+
+Sun Jan 26 07:58:00 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): Don't call insert_regs on a SUBREG.
+	When scanning table for SUBREG assignment, ignore invalid entries.
+
+	* cse.c (cse_insn): When looking for first non-deleted entry in
+	table, start by scanning backwards from the deleted entry.
+
+	* function.c (assign_parms): Set current_function_return_rtx
+	unconditionally.
+	(expand_function_start): Don't set it here.
+
+Sat Jan 25 06:44:16 1992  Mark Eichin  (eichin at cygnus.com)
+
+	* cp-decl.c (set_identifier_local_value): New function. Clone of
+	set_identifier_type_value, but uses level->shadowed instead. Only
+	used in pushdecl, where the non-global install was previously
+	setting the local value directly which "stuck" and didn't get
+	cleared the next time through.
+	(pushdecl): use set_identifier_type_value so that the local value
+	actually gets erased when we leave this level. Changed code that
+	checks for global_binding_level to recognize that if
+	class_binding_level is set, we're not in the global one.
+	(poplevel_class): restore shadowed list too, like poplevel does.
+	(print_binding_level): added no_print_functions and
+	no_print_builtins variables to eliminate clutter while trying to
+	debug binding level problems.
+
+Fri Jan 24 18:03:36 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* tree.c (pop_momentary): Don't reference freed stack entry.
+
+Fri Jan 24 14:20:05 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-parse.y (stmt): Call `define_case_label' for default label.
+	* cp-decl.c (current_function_return_value): New variable.
+	(define_{case_}label): Clear CURRENT_FUNCTION_RETURN_VALUE.
+	* cp-typeck.c (c_expand_return): Set CURRENT_FUNCTION_RETURN_VALUE.
+
+	* cp-tree.c (lang_printable_name): Use DECL_RING, and don't free
+	the printable name for CURRENT_FUNCTION_DECL.
+
+Fri Jan 24 14:17:30 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gvarargs.h: If _ANSI_H, undef _VA_LIST_.
+
+	* c-typeck.c (pointer_int_sum): Don't distribute * into pointer diff.
+
+	* hp320.h (MD_STARTFILE_PREFIX): Defined.
+	(STANDARD_STARTFILE_PREFIX): Deleted.
+
+Fri Jan 24 09:30:41 1992  Fred Fish  (fnf at fishpond)
+
+	* assert.h (__eprintf):  Declare as prototype for __STDC__
+
+Fri Jan 24 05:28:53 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (jump,indirect_jump,tablejump): Don't output an align
+	directive here: let the following BARRIER do it.
+
+Thu Jan 23 11:54:11 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* i486v4.h:  New file.
+
+Thu Jan 23 20:34:22 1992  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* fixinc.svr4: Surround uses of ${INPUT} with "" instead of ''
+	so that it will get expanded.
+
+Thu Jan 23 17:50:13 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (qty_mode): New variable.
+	(reg_rtx): Deleted.
+	(hard_regs_in_table, regs_invalidate_by_call): New variables.
+	(new_basic_block): Clear hard_regs_in_table.
+	(delete_reg_equiv): New name for reg_invalidate; don't update reg_tick.
+	(mention_regs): Don't set reg_rtx.
+	Update reg_tick for all registers in a multi-register hard register
+	reference.
+	(insert_regs): Don't do anything special with SUBREG.
+	Only insert register in a class if it is the same mode.
+	Don't set reg_rtx; set qty_mode instead.
+	(insert): Update hard_regs_in_table.
+	Get constant equivalence in proper mode.
+	(merge_equiv_classes): Call delete_reg_equiv.
+	(invalidate): Call delete_reg_equiv and update reg_tick.
+	Invalidate all parts of multi-word hard regs and invalidate
+	any multi-word hard reg overlapping what we are to invalidate.
+	Only look at constant in proper mode.
+	(remove_invalid_refs): Use refers_to_regno_p.
+	(invalidate_for_call): New function.
+	(canon_hash, refers_to_mem_p, fold_rtx, equiv_constant): Look at
+	constant in proper mode.
+	(cse_rtx_addr_varies_p, cse_process_notes): Likewise.
+	(exp_equiv_p): Likewise.
+	Check reg_tick for all parts of multi-word hard register.
+	(canon_reg): Don't use reg_rtx; get register from regno_reg_rtx or
+	build hard reg in proper mode.
+	(record_jump_equiv): Split into two pieces.
+	(record_jump_cond): Second part of record_jump_equiv; make recursive
+	call to some equivalences if args are SUBREGs.
+	(cse_insn): Only replace register with equivalent if proper mode;
+	don't use reg_rtx.
+	Call invalidate_for_call.
+	Don't avoid call to gen_lowpart for hard register.
+	Make a SUBREG if gen_lowpart_if_possible fails for SUBREG
+	assignment.
+	(invalidate_from_clobbers): Update reg_tick of SP; invalidate
+	REG entry in table, if present; use stack_pointer_rtx.
+	(cse_main): Don't allocate reg_rtx.
+	Initialize regs_invalidated_by_calls.
+	(cse_basic_block): Allocate qty_mode.
+
+	* rs6000.h (ADDITIONAL_REGISTER_NAMES): Add so we can disambiguate
+	fixed and floating registers.
+
+	* rs6000.md (ashrdi3): Reject all but constant shift counts.
+
+	* jump.c (simplejump_p): Don't access PATTERN unless we know it is
+	a JUMP_INSN.
+
+	* combine.c (get_last_value): Don't do a recursive call for a 
+	paradoxical SUBREG.
+
+	* jump.c (jump_optimize): In "if (...) x = a; else x = b;", 
+	don't move "x = b;" if it has non-trivial REG_NOTES.  Also, allow
+	B to be any constant, not just a CONT_INT.
+
+	* stor-layout.c (layout_type): Handle alignment for arrays the same
+	as we do for records and unions.
+
+	* calls.c (expand_call): Ignore `const' on void functions.
+
+	* i860.c: Include recog.c.
+	Remove many explicit declaration of vars from include files.
+	(i860_compare_op[01]): Define these here.
+	* i860.h (i860_compare_op[01]): Add declarations.
+	* i860.md (compare, branch): Rework to use define_expand for cmpxx.
+	Compare just saves operands in i860_compare_op[01].  Branch emits
+	both insns using the saved operands.
+
+	* i860.h (PREFERRED_RELOAD_CLASS): Handle FP registers and constants.
+	(SECONDARY_INPUT_RELOAD_CLASS): We need a scratch register to copy
+	an integer constant to a floating-point register.
+	* i860.md (addsi3, subsi3): Allow use of floating registers.
+
+Thu Jan 23 13:33:40 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* i386v4.h (CPP_PREDEFINES): Don't define X86.
+
+	* c-lex.c (readescape): Warn for \a and \x if warn_traditional.
+	Handle \v as vertical tab regardless of -traditional.
+
+	* fixincludes, fixinc.svr4: Make LIB absolute, near the beginning.
+
+	* fixincludes: Simplify egrep command while matching the same lines
+	(plus occasional additional lines).
+
+	* function.c (fixup_memory_subreg): New arg UNCRITICAL.  Calls changed.
+
+	* gcc.c (process_command): Handle LPATH like LIBRARY_PATH.
+
+	* svr3.h (ASM_LONG): Deleted.
+
+	* gvarargs.h: Ignore _VA_LIST_ if _ANSI_H_;
+	don't define _VA_LIST_ if already defined.
+
+Thu Jan 23 09:10:52 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88kluna.h (includes): Include aoutos.h.
+
+Thu Jan 23 09:10:52 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* va-i860.h (__savereg): Fix typo.
+
+	* i860.h (PREDICATE_CODES):  Added definition.
+
+	* i386v4.h (ASM_FILE_START):  Definition added which generates
+	.version directive.
+
+Wed Jan 22 23:15:45 1992    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+
+	* make-cc1.com: Predefine symbols for "rename" and "bison"; always
+	generate c-parse.h when generating c-parse.c.
+
+Wed Jan 22 20:01:11 1992  Per Bothner  (bothner at cygnus.com)
+
+	* sdbout.c (sdbout_record_type_name):  Use typedef names
+	for C++.  (A kludge.)
+	* sdbout.c (sdbout_one_type):  Emit base classes as
+	dummy fields, just like dbxout.c when not using gdb extensions.
+
+Wed Jan 22 20:01:11 1992  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* fixincludes: Surround uses of ${INPUT} with "" instead of ''
+	so that it will get expanded.
+
+	* gcc.c (default_compilers): For c++, define __GNUG__ to 2, and
+	pass -trigraphs.
+
+	* cccp.1, cpp.1, gcc.1, g++.1: Delete more RCS variables.
+
+Wed Jan 22 19:02:06 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (simplify_shift_const, case ASHIFT): If we will
+	be suppressing a sign extension because the upper bits are
+	already the same, verify that the operand is in the same
+	mode as we will be doing the shift; don't ignore a SUBREG
+	inside the inner SHIFT.
+
+Wed Jan 22 09:25:07 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* c-typeck.c (comp_target_types): Make decl static.
+	Don't forget to return the value.
+	(function_types_compatible_p, comptypes): Initialize `val'.
+
+Tue Jan 21 13:29:50 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cross-make (ALL): Override with definition it here.
+	* configure: Don't edit its value explicitly here.
+
+	* crtstuff.c (__do_global_ctors): Include DO_GLOBAL_CTORS_BODY
+	in crtend.o, not in crtbegin.o.
+
+	* svr3.h: Prepare to use with i386.
+	(PCC_BITFIELD_TYPE_MATTERS): Definition deleted.
+	This pertains to the individual cpu types.
+	(ASM_SHORT, ASM_LONG, ASM_DOUBLE): Likewise.
+	(DBX_DEBUGGING_INFO): Undef this.
+	(DBX_REGISTER_NUMBER): Deleted the #undef.
+	(STARTFILE_SPEC, LINK_SPEC, LIB_SPEC): Deleted.
+	* i860v3.h (STARTFILE_SPEC, LINK_SPEC, LIB_SPEC): New definitions.
+
+	* att386.h: Coexist with svr3.h.
+	(ASM_FILE_START): Deleted.
+	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
+	(ASM_BYTE_OP, NO_DOLLAR_IN_LABEL): Likewise.
+	(ASM_OUTPUT_LABELREF): Undef before defining.
+	(ASM_FILE_START_1): Undef before defining.
+	(EXTRA_SECTION_FUNCTIONS): Deleted.
+	(BSS_SECTION_FUNCTION): New macro; defines bss_section.
+
+	* i386v.h, aix386.h: Include svr3.h.
+	(SCCS_DIRECTIVE, ASM_OUTPUT_IDENT): Deleted.
+	(TARGET_MEM_FUNCTIONS): Deleted.
+	(SDB_DEBUGGING_INFO, DBX_DEBUGGING_INFO): Deleted.
+
+	* Support constructors and destructors on svr3.  From james@bigtex.
+	* i386v.h, aix386.h (STARTFILE_SPEC): Use crtbegin.o after crt1.o.
+	(LIB_SPEC): Use crtend.o before crtn.o.
+	(CTORS_SECTION_ASM_OP, ASM_OUTPUT_CONSTRUCTOR): New macros.
+	(INIT_SECTION_ASM_OP): Likewise.
+	* svr3.h (DTORS_SECTION_ASM_OP): New macros.
+	(DO_GLOBAL_CTORS_BODY): New macro.
+	(EXTRA_SECTIONS,EXTRA_SECTION_FUNCTIONS): Use .init and .fini
+	sections in addition to .bss.
+	({INIT,FINI}_SECTION_FUNCTION): New macros for *_section functions.
+	({CTORS,DTORS}_SECTION_FUNCTION): Macros deleted.
+	(ASM_OUTPUT_CONSTRUCTOR): Deleted.
+	(ASM_OUTPUT_DESTRUCTOR): Use ASM_LONG.
+	(INT_ASM_OP): Deleted.
+
+	* c-typeck.c (default_conversion): Don't use initial value if BLKmode.
+	If do use the initial value, update `type'.
+
+	* arm.h (STRUCTURE_SIZE_BOUNDARY): New definition.
+
+	* stor-layout.c (layout_type): Ignore MAX_FIXED_MODE_SIZE for integers.
+
+	* ultrix.h (SIZE_TYPE): Use `unsigned int'.
+	* Makefile.in (install-common): Add missing -f in rm.
+	(install-fixincludes): Install the README file.
+
+	* fixincludes: Don't match on size_t, etc., since we don't actually
+	change them.
+
+Mon Jan 20 23:22:45 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-call.c (ideal_candidate): Don't see two functions as ambiguous
+	if one is argument-by-argument equivalent or better than another.
+
+Mon Jan 20 14:08:06 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* toplev.c (strip_off_ending): Add ".ada".
+
+Mon Jan 20 13:53:15 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* protoize.c (xfree): No longer static.
+
+	* gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Allow tm.h to override.
+
+	* final.c (leaf_renumber_regs_insn): Do just the pattern of an insn.
+
+	* pyr.h (PCC_BITFIELD_TYPE_MATTERS): Defined.
+	(STRUCTURE_SIZE_BOUNDARY): Deleted.
+
+	* mips.c: Clean up spacing around square brackets.
+
+	* c-typeck.c (convert_arguments):
+	Get rid of feature to convert to a tagless union type.
+	(common_type): Add pedantic warning.
+	(comptypes, function_types_compatible_p): Return 2 meaning warn.
+	(comp_target_types): Do the warning here.
+	(type_lists_compatible_p): New function.
+
+Sun Jan 19 17:32:19 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (emit_reload_insns): Fix typos when checking for secondary
+	icode.
+
+Sun Jan 19 15:28:53 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* global-alloc.c (global_alloc): If LEAF_REGISTERS, those are the
+	regs that cost nothing to save, for setting regs_already_used.
+
+	* expr.c (expand_builtin): Preserve function value reg
+	around the call to __builtin_saveregs.
+
+	* configure (mips-sgi-irix4*, mips-sgi-irix*): Set install_with_cp.
+
+	* c-decl.c (start_function):
+	Check properly for `static' function in handling -Wmissing-prototypes.
+
+	* libgcc2.c (__main): Omit this fn if INIT_SECTION_ASM_OP.
+
+Sun Jan 19 13:23:13 1992  Fred Fish  (fnf at sunfish)
+
+	* amix.h (ASM_OUTPUT_ASCII):  Override version in svr4.h.
+
+Sun Jan 19 13:16:56 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-search.c (lookup_field): Accept IS_AGGR_TYPE_CODE, not
+	just == RECORD_TYPE.
+
+	* cp-class.c (finish_struct): Clear a tentative setting of
+	DECL_BIT_FIELD.
+
+	* cp-decl.c (start_decl): Don't call `pushclass' for incomplete
+	CONTEXT.
+
+	* cp-typeck.c (comp_target_types): Call `comp_target_parms' with
+	STRICT == 0, not -1.
+	(build_conditional_expr): Check that the target types of TYPE1 and
+	TYPE2 are aggr type before calling `common_base_type'.
+
+Sun Jan 19 04:10:16 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* configure: Fix typo inserting INSTALL=cp into makefile.
+
+Sat Jan 18 12:06:58 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-lex.c (build_with_cleanup): Delete obsolete function.
+	* cp-tree.c (break_out_cleanups): New function.
+	* cp-decl.c (cplus_expand_expr): Call `break_out_cleanups'.
+	* cp-typeck.c (build_compound_expr): Ditto.
+
+	* cp-call.c (convert_harshness): Make any inheritance relationship
+	preferable to a void* conversion.
+	* cp-tree.h (CLASSTYPE_MAX_DEPTH): New macro.
+	* cp-class.c (finish_struct_bits): Set CLASSTYPE_MAX_DEPTH.
+
+	* cp-cvt.c (build_up_reference): Don't return in ARRAY_REF case,
+	since we may need to adjust the return value for complex
+	inheritance.
+
+	* cp-decl2.c (lang_f_options): Add recognizers for -f{no-}builtin,
+	-f{no-}ident, and -ansi.  Also, remove unnecessary "no-*" forms.
+
+	* cp-init.c (emit_base_init): If PEDANTIC, don't let base
+	initializers leak up the hierarchy.
+
+	* cp-parse.y (structsp): Disable gratuitous error message.
+
+	* cp-call.c (convert_harshness): Don't overlook PENALTY when
+	signed/unsigned differences are noted (in both POINTER_TYPE and
+	REFERENCE_TYPE cases).
+
+	* toplev.c (strip_off_ending): Grok ".ii" endings (C++ preprocessed
+	files).
+
+	* cp-typeck.c (build_component_ref): Add special handler when
+	COMPONENT is the CLASSTYPE_VFIELD name for BASETYPE.
+
+Sat Jan 18 08:29:58 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): Don't make constant pool entries in MODE_CC modes.
+
+Sat Jan 18 00:28:48 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (install-common): Fix typo installing gcc.
+	
+	* crds.h, isi.h, newpbb.h, tti68k.h: Add #error because -m68000
+	will cause a crash (I think), to ask people what to do.
+
+	* gmicro.h (ASM_FILE_START): Don't do anything.
+	(TARGET_DEFAULT): Turn on the bitfield flag.
+	(TARGET_SWITCHES): Get rid of the bitfield options.
+
+	* c-lex.c (readescape): No warning for \?.
+
+	* protoize.c (munge_compile_params): Fix cast that sets compile_params.
+	(xmalloc, xrealloc): No longer static.
+	* Makefile.in (protoize, unprotoize): Add LIBDEPS as deps.
+
+	* va-i860.h (va_arg): Use __extension__ to suppress pedantic warning.
+	* va-sparc.h, va-spur.h, va-pyr.h: Likewise.
+
+	* x-irix4.h: New file.
+	* config.sub: Don't convert irix to sysv.
+	* configure (mips-sgi-irix4*): New configuration.
+	(mips-sgi-irix*): Renamed from mips-sgi-sysv*.
+
+	* gcc.c (process_command):
+	Handle the standard_exec_prefix* before the md_*_prefix.
+
+	* i386.h, ns32k.h (PCC_BITFIELD_TYPE_MATTERS): Defined.
+
+	* Makefile.in (libgcc1.null): Depend on GCC_PASSES.
+
+	* cccp.c (lookup_import, add_import): VMS kludges so they compile.
+	(hack_vms_include_specification): Add forward declaration.
+
+	* stor-layout.c (layout_record): Handle BITFIELD_NBYTES_LIMITED
+	just like one of the things done for PCC_BITFIELD_TYPE_MATTERS.
+
+	* x-next, x-i386mach: Deleted.
+	* t-libc-ok: New file.  Define just LIBGCC1.
+	* configure (i386-*-mach, m68k-next-*): Use t-libc-ok.
+
+	* t-svr4 (FIXINCLUDES): Defined.
+	* t-m88kv4 (FIXINCLUDES): Defined.
+	* t-svr3 (EXTRA_PARTS): Defined.
+	* t-i386sco (EXTRA_PARTS): Defined.
+
+	* configure (sparc-*-sysv4*): New alternative.
+
+	* configure (install_with_cp): New flag an alternative can set.
+	If host sets it, add INSTALL=cp to Makefile.
+	Set this for any system V, and for m68k-crds-unos.
+
+Sat Jan 18 23:15:08 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* va-i860.h (va_list): Made __reg_base field type long* to avoid
+	compilation errors.
+	(__savereg): Add explicit cast to (__va_saved_regs *).
+
+Fri Jan 17 15:09:34 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.h (FUNCTION_BOUNDARY): Do larger alignments for i486.
+	(ASM_OUTPUT_ALIGN_CODE): Same here.
+	(ASM_OUTPUT_LOOP_ALIGN): But not here - do word aligns as before.
+
+	(enum reg_class): Delete classes ADREG and BREG - neither used nor
+	useful.  Add classes FP_TOP_REG and FP_SECOND_REG.
+	(REG_CLASS_NAMES): Likewise.
+	(REG_CLASS_CONTENTS): Likewise.
+	(REGNO_REG_CLASS): Reflect that change.
+	(REG_CLASS_FROM_LETTER): Likewise.  Add "t" and "u" constraints.
+	(CLASS_MAX_NREGS): New classes use only 1 hard reg for any mode.
+
+	(CONST_OK_LETTER_P): Document uses of letters.
+
+	* reg-stack.c: Add comments describing rules for asm statements
+	involving stack-like regs.
+	(asm_regs): Delete unused variable.
+	(fatal_for_asm): Delete unused function.
+
+	(get_asm_operand_lengths): New function.
+	(constrain_asm_operands): New function.  Like constrain_operands,
+	but records some information about the matched alternative.
+
+	(record_asm_reg_life): New function.
+	(record_reg_life): If INSN is an asm statement, decode operands
+	and pass to record_asm_reg_life.
+	(record_reg_life_pat): Abort if any asm is seen here.
+
+	(subst_asm_stack_regs): New function.
+	(subst_stack_regs): If INSN is an asm statement, decode operands
+	and pass to subst_asm_stack_regs.  When handling REG_UNUSED notes,
+	emit the pops in the right order.
+
+	(change_stack): New argument to insert any new insns before INSN
+	instead of after.  All callers changed.
+
+	(emit_swap_insn): Abort if the reg is not found in REGSTACK.
+
+	* Makefile.in (reg-stack.o): Depends on insn-config.h.
+
+Fri Jan 17 16:38:32 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* toplev.c, flags.h (in_system_header): Declare here.
+	* c-lex.c, cp-lex.c (in_system_header): Not here.
+	* toplev.c (rest_of_compilation): Don't warn of unused static function
+	if definition is in a system header.
+
+	* gcc.c (do_spec_1): Add missing arg in recursive call.
+	(link_command_spec): Don't pass -s, -S, -u*, -X, -Y*.
+
+Fri Jan 17 12:51:28 1992  Jim Wilson  (wilson at cygnus.com)
+
+	From Tiemann:
+	* rtlanal.c (reg_set_between_p): Call `reg_set_p' with INSN, not the
+	body of INSN so that CALL_INSNs are properly handled.
+	* explow.c (find_next_ref): Ditto.
+
+	* hp800.h, hp800.md: Delete RCS Header variables.
+
+	* reg-stack.c (replace_reg): Change `abort' to `abort ()'.
+
+Fri Jan 17 14:30:14 1992  Michael Meissner  (meissner at osf.org)
+
+	* caller-save.c (insert_save_restore): Don't pass a CODE_LABEL to
+	reg_mentioned_p when the machine has a condition code, since
+	CODE_LABEL's don't have the same format as normal INSN's do.
+
+Fri Jan 17 13:24:33 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* Makefile.in (unprotoize.o): Use the rm -f option.
+
+	* cp-lex.c (check_newline): Define `used_up' as in c-lex.c.
+	(in_system_header): Define as in c-lex.c.
+
+Fri Jan 17 08:14:04 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (delete_from_delay_slot): Pass correct length to
+	emit_delay_sequence.
+
+	* genattrtab.c (substitute_address): Handle IF_THEN_ELSE in addition
+	to COND.
+
+	* expr.c (expand_builtin, case BUILT_IN_STRLEN): Correct args in
+	expand_expr call.
+
+Fri Jan 17 17:33:40 1992  James Van Artsdalen  (james@raid)
+
+	* x-i386v4 (CCLIBFLAGS): Delete macro.
+	(GCC-CFLAGS): Delete macro.  Prevented Makefile.in from working.
+
+Thu Jan 16 17:03:27 1992  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* Makefile.in (cleanconfig): Also delete tconfig.h.
+
+	* varasm.c (assemble_external): Only call ASM_OUTPUT_EXTERNAL once
+	for each symbol.
+	(assemble_external_libcall): Fix minor typo in spacing.
+
+	* toplev.c (main): Force error if invalid -W option is used.
+
+Thu Jan 16 13:35:13 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88kdgux.h (CPP_PREDEFINES): Added __CLASSIFY_TYPE__ back and
+	noted when it would be useful.
+
+	* m88k.h (ASM_FILE_END, ASM_OUTPUT_ASCII): Override svr4.h.
+
+Thu Jan 16 12:37:16 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* svr4.h (SVR4): Add this back.
+
+	* cccp.c (lookup_import): Use bcmp to compare inodes.
+
+	* cccp.c (main): Handle -idirafter option.
+
+	* m68kv4.h, m88kv4.h, i386v4.h, sparcv4.h, i860v4.h (CPP_PREDEFINES): 
+	Add __svr4__ in case user programs want to distinguish.
+
+	* cp-lex.c (check_newline): Changes like Jan 12 changes in c-lex.c.
+
+	* Makefile.in (install-fixincludes): Renamed from `includes'.
+	Move comments so some shells are happier.  Dep. on install-headers.
+
+	* m88kdgux.h (CPP_PREDEFINES): Add __svr4__.  Remove __CLASSIFY_TYPE__.
+	Add some assertions.
+
+	* c-decl.c (init_decl_processing): Don't give arg type for abort, etc.
+	Always declare strlen, etc., so -O doesn't alter the warnings.
+	* expr.c (expand_builtin): Open-code str* or mem* or ffs if -O.
+
+	* c-decl.c (start_function): Fix backwards test for -W* options.
+
+	* protoize.c (GUESSPATHLEN): Treat POSIX like USG--and use just 200.
+
+	* cccp.c (deps_output): Break line iff string is empty.
+	(do_include): Fix up the deps_output calls.
+
+	* vax.c (print_operand_address): Handle form index + (reg+offset).
+
+	* m88k.h (TARGET_VERSION): Don't use __DATE__.
+
+	* gcc.c (default_compilers): Typos in c++-cpp-output case.
+
+Thu Jan 16 12:25:51 1992  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* loop.c (get_condition): In HAVE_cc0 code, generate a zero with
+	CONST0_RTX instead of just using const0_rtx.
+
+	* cse.c (cse_isnsn): A CALL_INSN clobbers all fixed regs except
+	for ap, fp, and sp.
+
+Thu Jan 16 08:03:40 1992  Tom Wood  (wood at dg-rtp.dg.com)
+	
+	* c-decl.c (finish_enum): Compute the precision properly if the
+	maximum value is negative.
+
+Thu Jan 16 07:40:29 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reorg.c (try_merge_delay_insns, fill_slots_from_thread): Have
+	update_block put the phantom insn before THREAD.
+	(update_block): Update block status if WHERE, not INSN, is block head.
+
+Thu Jan 16 00:28:14 1992  Ron Guilmette  (rfg ay ncd.com)
+
+	* i860.c (output_fp_move_double):  Fixed typo.
+
+	* protoize.c (GUESSPATHLEN, pointer_type, const_pointer_type):
+	moved definitions declarations out of conditional region.
+	(string_list_cons, shortpath, munge_compile_params):  Added casts.
+	(find_extern_def):  Fixed string literal to avoid trigraph.
+	(find_rightmost_formals_list):  Fixed to avoid unreached code warnings.
+
+	* svr4.h (ASM_OUTPUT_ASCII):  Fixed typo.
+
+Wed Jan 15 21:58:01 1992  Jeffrey A Law  (law at b117b.super.org)
+
+	* sparc.h (SELECT_RTX_SECTION): When generating PIC, place symbolic
+	operands in the data section.
+
+Wed Jan 15 21:45:09 1992  Michael Meissner  (meissner at osf.org)
+
+	* collect2.c (main): Pass any -b<xx>, -B<xx>, -m<xx>, -f<xx>, and
+	-V<xx> options to gcc instead of the linker, in order to allow
+	target switches that affect the size of pointers and search paths to
+	be passed through.
+	(main, choose_temp_base): Use TMPDIR environment variable, and the
+	P_tmpdir macro if defined to locate directory to put temp files.
+	(whole file): Reorganize so that all of the OSF/rose stuff goes at
+	the end of the file, rather than being scattered throughout.
+	(main, scan_prog_file): Invoke scan_prog_file twice, once on each
+	output of ld.
+	(scan_prog_file, read_file, write_file):  On the second invocation,
+	rewrite the object file in place, adding a load command to put
+	__main in the list of initializer functions.  This allows users
+	to put constructors and destructors into shared libraries.
+	(scan_prog_file): Move debug stuff and error routines to separate
+	functions.
+
+Wed Jan 15 17:59:02 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (can_combine_p): Don't combine if DEST is still a field
+	assignment after we've tried to expand it.
+
+Wed Jan 15 16:01:13 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* regclass.c (fix_register): Don't match a null register name.
+	* varasm.c (decode_reg_name): Likewise.
+
+	* i386.h (HI_REGISTER_NAMES): Give the eliminable arg pointer a
+	null name.
+
+Wed Jan 15 13:40:50 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gcc.c (default_compilers): Pass -lang-asm, not -lang-asmc, to cpp.
+
+	* gcc.c (process_command): Don't dump md_exec_prefix in specs.
+	Use the md_... prefixes only if no -b.
+
+Wed Jan 15 13:35:09 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* i386v4.h (RETURN_IN_MEMORY):  Definition added.
+	(CPP_PREDEFINES):  Added -DX86 (needed for some system headers).
+	(ASM_OUTPUT_DWARF_STRING):  Deleted.
+	(ASM_OUTPUT_ASCII):  Added specialized definition for i386/svr4.
+
+	* svr4.h (SVR4):  Deleted useless define.
+	(ASM_FILE_END):  Added definition.
+	(ESCAPES, STRING_LIMIT, STRING_ASM_OP, ASM_OUTPUT_LIMITED_STRING):
+	(ASM_OUTPUT_ASCII):  Generic svr4 definitions added.
+
+	* m68kv4.h (CPP_PREDEFINES):  Don't define SVR4.
+	* sparcv4.h (CPP_PREDEFINES):  Don't define SVR4.
+	(ASM_OUTPUT_ASCII): Deleted obsolete definition.
+
+	* xm-svr4.h (SVR4):  Removed useless definition.
+	(POSIX):  Added definition for protoize.c.
+
+	* i860b.h (ASCII_DATA_ASM_OP, ASM_OUTPUT_ASCII): Moved from i860.h.
+	* i860v3.h (ASCII_DATA_ASM_OP):  Added OS-specific definition.
+	* i860v4.h (ASCII_DATA_ASM_OP, ASM_OUTPUT_ASCII):
+	Deleted (now in svr4.h).
+
+	* fixinc.svr4:  Replaced all occurances of {1,\} in sed command
+	string with functional equivalents (to avoid bogus results).
+
+	* c-lex.c (readescape): Pass thru escaped x, a, and v if -traditional.
+	(readescape): Pedantic warning for \?, \(, \{, and \[.
+
+	* dwarfout.c: Updated copyright.
+	(fundamental_type_code):  Abort for all non-fundamental types.
+	(type_is_fundamental):  Return 0 for all non-fundamental types.
+	(containing_type_attribute, output_ptr_to_mbr_type_die): New functions.
+	(output_pointer_type_die, output_reference_type_die):  Added calls to
+	equate_type_number_to_die_number.
+	(output_type):  Handle OFFSET_TYPE correctly.
+	(output_type):  Ignore LANG_TYPE (for now).
+
+Wed Jan 15 09:30:08 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* All cp-* files: Remove calls to `cleanup_after_call'.
+
+	* cp-method.c (fndecl_as_string): Add a missing space when printing
+	the return type.
+
+	* cp-typeck.c (build_modify_expr): Treat arrays specially in both
+	INIT_EXPR and NOP_EXPR cases.  Also, if we take the address NEWRHS
+	when it's not a SAVE_EXPR, build a new NEWRHS using that address. 
+	* cp-tree.c (lvalue_p): Handle WITH_CLEANUP_EXPR case.
+
+	* cp-decl.c (grokvardecl): Don't get tripped up by static class
+	members of incomplete type.
+
+Wed Jan 15 09:12:51 1992  Jeffrey A. Law  (law at wombat.gnu.ai.mit.edu)
+
+	* m68k.c (legitimize_pic_address): Re-enable code which was
+	mistakenly #ifdef'd out.
+
+Wed Jan 15 08:12:18 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads): Check for insn not recognized.
+
+	* caller-save.c (reg_{save,restore}_code): New variables.
+	(init_caller_save): Set them.
+	(insert_save_restore): Just make SET for pattern of insn and set
+	code from reg_{save,restore}_code.
+	(save_call_clobbered_regs): Put restore insns before JUMP_INSN that
+	ends basic block, but after any other insn that ends the block.
+
+	* sdbout.c (sdbout_symbol): Treat (mem (reg SP)) the same
+	as (mem (reg FP)).
+
+	* reorg.c (mark_referenced_resources): Fix typo in last change.
+	(emit_delay_sequences): Update chain correctly when previous or
+	next insn is also a SEQUENCE.
+
+Wed Jan 15 08:10:29 1992  Chris Smith  (cks at bach.convex.com)
+
+	* t-convex: Use collect2 to link.
+	* convex.h: remove assembly output defines for old collect2.
+	* convex.h: define vprintf and wait macros for pcc mode boot of
+	collect2.
+
+	* convex.h (ASM_OUTPUT_DOUBLE_INT): define.
+
+	* convex.h (DEFAULT_GDB_EXTENSIONS): define as 0 until GDB version 4
+	port is available.
+
+	* convex.c (ap_reload_needed): Fix comment.
+
+Wed Jan 15 07:08:25 1992  Tom Wood  (wood at dg-rtp.dg.com)
+
+	* m88k.h (CONST_SECTION_FUNCTION): Trivial definition for targets
+	not based on svr[34].h (m88k-luna).
+
+	* m88k.h (PREDICATE_CODES): Use it.
+
+	* m88k.md (casesi_enter): Don't use bsr.n with -fno-delayed-branch.
+	* m88k.h (ASM_OUTPUT_CASE_END): The lda goes here when bsr is used.
+
+	* m88k.c (legitimize_address): When converting a symbol_ref for
+	PIC, add a REG_EQUAL note.
+
+Wed Jan 15 06:22:34 1992  Michael Meissner  (meissner at osf.org)
+
+	* mips.h (MIPS_VERSION): Bump Meissner version # to 8.
+	(fcmp_op): Add function declaration.
+	(TARGET_FLOAT64): Support for -mfp64 switch to support the R4000 FR
+	psw bit, which doubles the number of floating point registers.
+	(TARGET_SWITCHES): Likewise.
+	(HARD_REGNO_NREGS): Likewise.
+	(CLASS_FCMP_OP): New bit for classifing floating point compares.
+	(PREDICATE_CODES): Add cmp2_op and fcmp_op support.
+
+	* mips.c (various): Move extern declarations from inside of
+	functions to outside all functions.
+	(fcmp_op): Match comparison operators for floating point.
+	(mips_move_2words): Add -mfp64 support.
+	(override_options): Likewise.
+	(compute_frame_size): Likewise.
+	(override_options): Set up for fcmp_op.
+	(gen_conditional_branch): Redo floating point compares/branches, so
+	that it is like the rest of the compiler expects -- set cc0 to a
+	compare operator, instead of the exact test required, and put the
+	smarts in the branch operators to generate both the test and the
+	branch.
+
+	* mips.md (cmpdf_eq, cmpdf_lt, cmpdf_le): Delete.
+	(cmpsf_eq, cmpsf_lt, cmpsf_le): Delete.
+	(cmpdf_internal): New define insn to match FP compares.
+	(cmpsf_internal): Likewise.
+	(branch_fp_true1, branch_fp_true2): Likewise.
+	(branch_fp_false1, branch_fp_false2): Likewise.
+	(branch_fp_true, branch_fp_false): New define_insns to match the
+	branch part of FP compares.
+
+Wed Jan 15 01:42:39 1992  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* unroll.c (copy_loop_body): New parameter copy_notes_from, to
+	correct problem with bad debug info generated for preconditioned
+	loops.
+	(unroll_loops): Fix calls of copy_loop_body to pass new parameter.
+
+Wed Jan 15 01:01:39 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* gcc.c (main): Don't use TARGET_VERSION.
+	(endfile_spec, switches_need_spaces): New vars, initted from macros.
+	(set_spec, process_command): Read and write those vars.
+	(do_spec_1, process_command): Use the new vars, not the macros.
+	(SWITCHES_NEED_SPACES): New default macro definition.
+
+	* Makefile.in (install-common): Install driver as gcc-$(target).
+
+	* gstddef.h (wchar_t): Check for _T_WCHAR.
+
+	* stmt.c (pushcase, pushcase_range): Return 5 if jump into stack level.
+	* c-parse.y, objc-parse.y (stmt): Print error msg for that.
+	* cp-parse.y: Likewise.
+
+Tue Jan 14 23:25:37 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* dwarfout.c: Include <string.h> if USG *or* POSIX.
+	(TREE_UID): Deleted.
+	(current_funcdef_number): Replacement for TREE_UID.
+	(dwarfout_file_scope_decl):  Increment
+	current_funcdef_number after each funnction definition is processed.
+	(pending_sibling_stack_depth): Renamed globally to pending_siblings.
+	(pending_sibling_stack_size): Renamed to pending_siblings_allocated.
+	(PENDING_SIBLING_STACK_INCREMENT): Renamed PENDING_SIBLINGS_INCREMENT.
+	(pending_types_list, pending_types_allocated, pending_types,
+	PENDING_TYPES_INCREMENT, fake_containing_scope): New vars/macros.
+
+	* dwarfout.c (total_ft_entries): Renamed to ft_entries_allocated.
+	(valid_ft_entries): Renamed to ft_entries.
+	(FT_ENTRIES_INCREMENT):  Definition added.
+	(lookup_filename):  Expand filename table (when needed)
+	by adding FT_ENTRIES_INCREMENT more table elements rather than
+	doubling current size.
+	(dwarfout_init):  Allocate initial filename table.
+
+	* dwarfout.c (INSN_LABEL_FMT, FUNC_END_LABEL_FMT): Use decimal format.
+
+	* dwarfout.c (member_attribute):  Rewritten for proper C++ support.
+	(output_array_type_die, output_set_type_die, output_entry_point_die,
+	output_enumeration_type_die, output_global_subroutine_die,
+	output_global_variable_die, output_inline_subroutine_die,
+	output_local_variable_die, output_member_die, output_pointer_type_die,
+	output_reference_type_die, output_string_type_die,
+	output_structure_type_die, output_local_subroutine_die,
+	output_subroutine_type_die, output_typedef_die, output_union_type_die):
+	Added calls to member_attribute (for C++).
+
+	* dwarfout.c (inline_attribute):  Test for TREE_INLINE in here.
+	(output_global_subroutine_die, output_local_subroutine_die):
+	Don't test for TREE_INLINE here.
+
+	* dwarfout.c (output_formal_types):  Fixed to handle METHOD_TYPE
+	nodes and to output all related type DIEs last (for SDB).
+	(type_ok_for_scope, output_pending_types_for_scope, pend_type):
+	Functions added to support C++.
+	(output_type, output_decl):  Added `containing_scope'
+	parameter to handle C++ nested types.
+	(output_type):  Don't output the type unless it's OK
+	for the current DIE chain (i.e. unless it's OK for the current scope).
+	(output_type):  Output completed non-global tagged types
+	right away even if not finalizing.
+	(output_type):  Use correct method to get head of chain
+	of C++ function members.
+	(output_decl):  Skip first item on chain of DECL_ARGUMENTS
+	for a FUNCTION_DECL whose type is a METHOD_TYPE.
+	Suppress output of type DIEs for formal parms of a FUNCTION_DECL
+	until after all TAG_parameter DIEs have been output (for SDB
+	compatability).
+	Output DIEs for any LABEL_DECL nodes attached to outermost BLOCK of
+	a FUNCTION_DECL.
+	Handle LABEL_DECL nodes.
+
+	* dwarfout.c (dwarfout_file_scope_decl):  Un-pend all pending file-
+	scope types after each file-scope declaration is output.
+	(output_decls_for_scope):  Un-pend all pending local types
+	at end of each local scope.
+
+Tue Jan 14 16:40:39 1992  Tim Moore  (moore at fast.cs.utah.edu)
+
+	* calls.c (expand_call): If ARGS_GROW_DOWNWARD, make slot_offset
+	negative and set highest_outgoing_arg_in_use to needed + 1.
+	(store_one_arg): If ARGS_GROW_DOWNWARD deal with negative slot_offset.
+
+Tue Jan 14 20:01:59 1992  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* sparc.h (TARGET_SUN_ASM, TARGET_GNU): Delete support for
+	obsolete and undocumented flags -msun-asm and -mgnu.
+	* sparc.md: Likewise.
+
+Tue Jan 14 19:36:21 1992  Tim Moore  (moore at fast.cs.utah.edu)
+
+	* xm-hp800.h (hpux8): define.
+	* hp800.h (LINK_SPEC): Conditionalize on hpux8.
+	(STACK_BOUNDARY): Define for snake.
+	(CALL_USED_REGISTERS): Shift register is special.
+	(HARD_REGNO_MODE_OK): Don't allow modes smaller that SImode in fp
+	registers.
+	(reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Eliminate
+	GENERAL_OR_FP_REGS, GENERAL_OR_SNAKE_FP_REGS classes.
+	(FUNCTION_ARG): Handle snake fp arguments.
+	(ASM_DOUBLE_ARG_DESCRIPTORS): define.
+	(ASM_DECLARE_FUNCTION_NAME): Use above macro to get around hpux
+	8.0 change.
+	* hp800.md (movsi, movdi): Add ! and * to constraints of anonymous
+	define-insns to discourage SImode values in fp registers. Don't
+	modify the stack pointer when moving between general and fp registers.
+	(mulsi): Take out pattern that matches a degenerate multiplication
+	by 1; it doesn't seem to be needed and causes problems.
+	(sar_sub): Change so that const_int isn't the first argument of
+	the comparison.
+	* hp800.c (output_fp_move_double): As above, don't modify the
+	stack pointer when moving between general and fp registers. 
+	(output_block_move): Don't make one CONST_INT rtx and store
+	different integer values in it; cons up a "new" one for each value.
+	(output_floatsisf2, output_floatsidf2): Fix typos.
+	(output_arg_descriptor): Conditionalize for HPUX 8.0.
+
+Tue Jan 14 14:38:09 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-typeck.c (build_unary_op): Call readonly_warning_or_error if
+	ARG is TREE_READONLY (in addition to the type being TYPE_READONLY).
+
+	* cp-init.c (maybe_adjust_addr_for_delete): If the adjustment needs
+	to be done, zero out the storage that held part of the cookie.
+
+Tue Jan 14 13:12:48 1991  Ron Guilmette  (rfg at ncd.com)
+
+	* c-decl.c (poplevel):  Set TYPE_CONTEXT for each tagged type
+	except inside function declaration parm list.
+	(grokdeclarator):  Set TYPE_CONTEXT for tagged type in decl parm list.
+	(pushtag):  Don't set TYPE_CONTEXT for tagged types here.
+
+Tue Jan 14 06:46:37 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* global-alloc.c (global_alloc): Count multi-word pseudos correctly
+	in local_reg_n_refs.
+	(find_reg): Evict pseudos that overlap the register we take, not just
+	that start with that register.
+
+	* a29k.c (a29k_debug_reg_map): New variable.
+	(output_prologue): Initialize it.
+	* a29k.h (DBX_REGISTER_NUMBER): Use that map.
+
+	* ultrix.h (WCHAR_TYPE): Make definition be a known type.
+
+	* final.c (final_scan_insn): Call DBR_OUTPUT_SEQEND before we
+	clear `final_sequence', so it can call dbr_sequence_length.
+
+	* reload1.c (reload): Clear insn_needs once we know we have
+	reloads, instead of always.
+	Don't skip processing of reloads for CALL_INSNs when caller-save
+	needs a spill register.
+
+	* flow.c (mark_used_regs, case RETURN): Insert missing test for global
+	registers.
+
+	* reorg.c (mark_referenced_resources): Mark asm's as volatile
+	when appropriate.
+
+	* integrate.h (struct inline_remap): New field const_equiv_map_size.
+	* integrate.c (expand_inline_function): Set it; make larger map.
+	(subst_constants): Don't reference out-of-range entry in equiv map.
+	* unroll.c (unroll_loop): Set const_equiv_map_size.
+
+See ChangeLog.4 for earlier changes.
diff --git a/gcc/ChangeLog.6 b/gcc/ChangeLog.6
new file mode 100644
index 0000000..9bd9de0
--- /dev/null
+++ b/gcc/ChangeLog.6
@@ -0,0 +1,8173 @@
+
+Sat Oct 31 15:19:54 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.3 released.
+
+	* Makefile.in (install-libobjc): New target.
+	($(srcdir)/gcc.dvi, $(srcdir)/cpp.dvi): New targets.
+	(extraclean): rm *diff, *lose, config/*lose.
+	(mostlyclean): rm config/core.
+
+	* objc-actions.c (OBJC_SELECTORS_WITHOUT_LABELS): Define by default.
+
+Fri Oct 30 20:11:52 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.c (output_move_double): Undo 10/25 change.  Handle case
+	where part of a dest reg is used in a src mem rtx, without using
+	stack.
+
+Fri Oct 30 18:52:57 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump meissner version number to 28.
+
+	* mips.md (addsi3, subsi3): Don't allow -32768 as the second
+	operand, the assembler complains if the instruction fills a delay
+	slot.
+
+Fri Oct 30 16:11:37 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* combine.c (simplify_shift_const):
+	For a subreg, require subreg_lowpart_p and not paradoxical.
+
+	* Makefile.in (install-fixincludes): Ignore dirs that don't exist.
+
+Thu Oct 29 20:15:44 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gvarargs.h, gstdarg.h [4.3 net 2]: If _VA_LIST_, is undefined
+	then va_list is already declared.
+
+	* i386gas.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): 
+	Override, if NO_UNDERSCORES.
+
+Thu Oct 29 17:30:52 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* flow.c (life_analysis): Mark FP live at end of function.
+	* reload1.c (reload): If FP was eliminated, remove it from
+	being live in any basic block.
+
+	* varasm.c (output_constant_pool): Labels can be deleted by being
+	turned into NOTEs, not just have INSN_DELETED_P.
+
+Thu Oct 29 16:15:47 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gstdarg.h: Use _ANSI_STDARG_H_, not _ANSI_STDARG_H.
+
+	* gstddef.h [4.3 net 2]: If _SIZE_T_, etc. are undefined
+	then type is already declared.
+
+	* m68k.c (print_operand_address) [MOTOROLA !SGS]:
+	Don't subtract 2 in the address displacement.
+
+Thu Oct 29 14:36:23 1992  Michael Meissner  (meissner@osf.org)
+
+	* libgcc2.c (__builtin_vec_new): #undef NULL before including
+	stdio.h to prevent redeclaration message.
+	(pyramid __enable_execute_stack): Ditto.
+
+	* i386rose.h (YES_UNDERSCORES): Define.
+	(ASM_OUTPUT_LABELREF): Don't redefine.
+
+	* mips.h (ASM_FINAL_SPEC): If cross compiling, don't invoke
+	mips-tfile by default.
+
+	* decrose.h (ASM_FINAL_SPEC): If cross compiling, don't invoke
+	mips-tfile by default.
+
+	* mips-tdump.c, mips-tfile.c:  Handle the case where CROSS_COMPILE
+	is defined more gracefully.
+
+Thu Oct 29 12:10:16 1992  Tim Moore  (moore at defmacro.cs.utah.edu)
+
+	* combine.c (make_extraction): Fix paren error in if for INNER is reg.
+
+Thu Oct 29 13:49:03 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* xm-mipsbsd.h: Really delete file.
+
+Thu Oct 29 02:48:28 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* dwarfout.c, arm.c, m88k.c: Include "assert.h" instead of <assert.h>.
+
+Thu Oct 29 00:43:00 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gstddef.h [4.3 net 2]: Force inclusion of ansi.h.
+	Undef _SIZE_T_, _PTRDIFF_T_, _WCHAR_T_ at end.
+
+	* Makefile.in (libgcc2.a, libgcc1.a): Use || to exit if cp fails.
+	(install-float-h-cross): Use fi, not done.
+	Write float.h in $(tmpdir), not in `.'.
+	(tmpdir): New variable.
+
+	* i386gas.h (NO_UNDERSCORES): Test was backwards.
+	(SDB_DEBUGGING_OUTPUT): Defined.
+
+Wed Oct 28 16:33:34 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gstdarg.h, gvarargs.h:
+	On Net 2 system, don't test, define or undef _VA_LIST_.
+	Use _ANSI_H_, __BSD_NET2__ and ____386BSD____ to test for this.
+
+	* i386bsd.h (CPP_PREDEFINES): Add ____386BSD____.
+
+	* c-decl.c (pushdecl): Allow redeclaring builtin as any sort of static.
+
+	* Makefile.in (install-cross-tools): Fix typo.
+	(all.build): Dep on xgcc instead of $(GCC_PASSES).
+
+Wed Oct 28 15:25:42 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.c (print_operand): When AS_BUG_FLDCR is defined, use alternate
+	fldcr form.
+	* m88kdgux.h (AS_BUG_FLDCR): Define to accomodate 4.30 assembler bug.
+
+	* m88kv3.h (CPP_PREDEFINES): Add -Dunix.
+
+	* m88kdolph.h (SDB_ALLOW_FORWARD_REFERENCES): Don't override.
+
+Wed Oct 28 05:34:11 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* reload1.c (gen_input_reload): In PLUS, if OP0 and OP1 are the
+	same, use RELOADREG when generating the addition.
+
+	* reload.c (find_reloads_address): When copying memref after we've
+	made recursive calls on it, copy any replacements we made.
+
+	* combine.c (can_combine_p): Don't substitute an expression
+	containing a register that will be clobbered in I3.
+
+	* objc/core.c, objc/hash.c: Include tconfig.h, not config.h.
+	Include gstdarg.h.
+	* objc/object.m: Include tconfig.h, not config.h.
+	Include gstdarg.h before stdio.h.
+	* objc/objc.h: Don't include gstdarg.h here.
+	* objc/objc-proto.h (CLASS_LOCATION_SHIFT): Use HOST_BITS_PER_LONG,
+	not BITS_PER_WORD.
+	(setClassNumber, getClassNumber): `info' field is long, not int.
+
+Wed Oct 28 10:54:50 1992  Michael Meissner  (meissner@osf.org)
+
+	* libgcc2.c (L_caps_new): Properly close comment.
+
+Wed Oct 28 05:50:10 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pa.md (mulsi): Input predicates back to srcsi_operands.
+	Don't handle constants specifically for TARGET_SNAKE, but call
+	force_reg to put them in registers.
+	(indexed addressing mode patterns): Remove the patterns with
+	unscaled index.  Switch off patterns that never match.
+
+	* longlong.h (file header): Add comment describing sdiv_qrnnd.
+	(__hppa sub_ddmmss): Swap input operands.
+
+	* gcc.c (process_command): Check that we have enough arguments.
+
+Wed Oct 28 00:40:18 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure (i[34]86-*-sysv*): Take note of $stabs.
+	* i386gas.h (SDB_DEBUGGING_INFO): #undef deleted.
+	(DBX_DEBUGGING_INFO): Definition deleted.
+	* i386gstabs.h: New file.
+
+	* Makefile.in (mostlyclean): Don't delete tmp-limits.h.
+
+	* i386vgas.h: File deleted.
+
+Tue Oct 27 15:35:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* libgcc2.c: Include stdio.h.
+	[__GNU_LIBRARY__] (write): Defined.
+
+	* Makefile.in (install-cross-tools): When handling $(tooldir)/include,
+	do all cd's starting from build directory.
+
+	* i386gas.h (NO_UNDERSCORES): Don't define, if YES_UNDERSCORES.
+	* i386linux.h (YES_UNDERSCORES): Defined.
+
+Tue Oct 27 14:17:43 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* configure (i[34]86-*-linux): Set broken_install.
+	* x-linux (INSTALL): Delete.
+	* x-iris (INSTALL): Delete.
+
+Tue Oct 27 13:39:22 1992  Tim Moore  (moore@hal.gnu.ai.mit.edu)
+
+	* pa.h (ASM_GLOBALIZE_LABEL): Give function symbols CODE type,
+	others DATA type.
+
+Mon Oct 26 16:40:43 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_c_cast): Don't warn about size change between
+	pointer and integer if the value is constant.
+
+	* Makefile.in (libobjc.a): If ln fails, copy libobjc.a.
+
+Mon Oct 26 16:21:11 1992  Tim Moore  (moore@defmacro.cs.utah.edu)
+
+	* pa.h (EXPORT_PARMS, ASM_DECLARE_FUNCTION): Blow away usage of
+	EXPORT_PARMS.  BUGGY_GAS isn't a problem any more.
+	(TEXT_SPACE_P, FUNCTION_NAME_P): New macros.
+	(ENCODE_SECTION_INFO): Use TEXT_SPACE_P.
+	(STRIP_NAME_ENCODING): Strip a '*' which might preceed a '@'.
+	(ASM_OUTPUT_EXTERNAL): Give only function labels a CODE type.
+	(ASM_OUTPUT_LABELREF): Use FUNCTION_NAME_P.
+	* pa.c (hppa_encode_label): Change function name encoding to
+	preserve leading '*' if there is one.
+	(function_label_operand): Use FUNCTION_NAME_P macro.
+
+Mon Oct 26 14:39:46 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	From Tim Moore:
+	* function.c (locate_and_pad_parm): In ARGS_GROW_DOWNWARD case,
+	don't pad to argument alignment if where_pad is downward.
+
+Mon Oct 26 11:21:36 1992  Chris Smith  (csmith@convex.com)
+
+	* convex.h (SHIFT_COUNT_TRUNCATED): Undefine.
+
+Mon Oct 26 07:48:35 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (print_operand, new 'L'): New case.
+	* alpha.md (movhi/movqi patterns): For long constants, use 'i'
+	constraint instead of 'K'; use "%L1" in template.
+
+	* configure (alpha): Set use_collect2.
+
+Mon Oct 26 04:19:24 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xm-alpha.h: Declare calloc.
+
+Sun Oct 25 17:19:52 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* function.c (fixup_var_refs_insns): Don't call delete_insn if not -O.
+	Make a NOTE_INSN_DELETED instead.
+
+Sun Oct 25 11:57:04 1992  Chris Smith  (csmith@convex.com)
+
+	* convex.h (target_flags): prevent -mnoc2 from clearing
+	TARGET_INDIRECTS.
+	(TARGET_INDIRECTS): Always on.
+
+Sun Oct 25 16:56:18 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* calls.c (expand_call): Don't call convert_to_mode if we obtained
+	VALUE in the proper mode; VALUE might be a CONST_INT.
+
+Sun Oct 25 03:18:03 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (gen_push_operand): No longer static.
+
+	* i386.c (output_move_double): Divert first word via the stack
+	if it's a register used in the input operand.
+	* i386.md (movdi): Delete the `&' from constraint.
+
+Sat Oct 24 21:41:00 1992  Chris Smith  (csmith@convex.com)
+
+	* convex.md (movstrictsi): Correct output constraint is + not =.
+
+Sat Oct 24 14:10:43 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* news.h (FUNCTION_EPILOGUE): Fix typos.
+
+	* cccp.c (get_lintcmd): Length of `LINTLIBRARY' is 11.
+
+Sat Oct 24 13:22:09 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* arm.md (DImode patterns): Add `&' to target operand constraints.
+
+	* Makefile.in (setting version variable): Prepend $(srcdir) to
+	version.c.
+
+	From Wilson:
+	* longlong.h (sparclite): Use machine independent USItype instead
+	of explicit types.
+
+Sat Oct 24 10:35:18 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.md (movdi): Tests were in wrong order.
+
+	* rs6000.h (LEGITIMIZE_ADDRESS): Indexed addresses are not valid
+	for DImode and TImode; GO_IF_LEGITIMATE_ADDRESS knows this.
+
+	* Makefile.in (mostlyclean): Add missing semicolon.
+
+	* a29k.c (a29k_set_memflags, a29k_set_memflags_1): New functions.
+	* a29k.md (movqi, movhi, reload_{in,out}{qi,hi}): Use them.
+
+	* alpha.c (get_aligned_mem): Copy memory flags to new MEM.
+	(alpha_set_memflags, alpha_set_memflags_1): New functions.
+	* alpha.md (movqi, movhi, reload_{in,out}{qi,hi}): Use new
+	functions.
+
+	* alpha.h (ASM_FILE_START): Stop at blank in version string.
+
+Sat Oct 24 04:35:16 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload1.c (emit_reload_insns): If not -O, Don't try find_equiv_reg.
+	(choose_reload_regs): If not -O, don't inherit reloads.
+
+Fri Oct 23 18:07:10 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* news.h (FUNCTION_EPILOGUE):
+	If no frame ptr, increment stack ptr to free up the local space.
+
+	* gcc.c (process_command): Discard after first space in spec_version.
+
+	* print-tree.c (print_node): Always output `>' to match `<'.
+
+	* Makefile.in (version): Use sed to extract.
+	Ignore excess after space.
+	(install-fixincludes): Fix typo in last change.
+
+	* configure (i386-ibm-aix*): Use aix386ng.h if not --with-gas.
+	* aix386ng.h: New file.
+
+Fri Oct 23 15:14:49 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* sdbout.c (sdbout_symbol): Return if a symbol's DECL_NAME is
+	empty, since we won't be able to make a symtab of it.
+
+	* convex.h (P_tmpdir): Remove definition.
+	* xm-convex.h: Put it here.
+
+Fri Oct 23 10:27:34 1992  Michael Meissner  (meissner@osf.org)
+
+	* i386rose.h (ASM_OUTPUT_LABELREF): Define so that external
+	identifiers have leading underscores in front of them.
+
+	* mips-tfile.c (parse_stabs_common): Allow stabs with line numbers
+	of 0.  These come from g++ for compiler generated functions that
+	take arguments.
+
+Fri Oct 23 07:49:12 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+ 	* romp.c (output_fpops): Add SYMBOL_REF and LABEL_REF cases to
+	constants handled.
+
+Fri Oct 23 01:58:12 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* flow.c (find_basic_blocks): Check for LABEL_REF_NONLOCAL_P
+	in label_value_list.
+	* jump.c (mark_jump_label): Copy LABEL_REF_NONLOCAL_P from
+	LABEL_REF into REG_LABEL note.
+
+	* toplev.c (push_float_handler): Declare arg old_handler.
+
+	* t-next (OTHER_FIXINCLUDES_DIRS): Defined.
+
+	* Makefile.in (OTHER_FIXINCLUDES_DIRS): New variable, normally empty.
+	(install-fixincludes): Run fixincludes on those dirs.
+	* fixincludes: Convert //-style comments to /*...*/ style.
+
+	* loop.c (record_biv): Clear total_benefit field of new iv_class.
+	(get_condition):
+	Verify op 2 of source is label_ref before looking within.
+
+Thu Oct 22 21:17:53 1992  Tim Moore  (moore at defmacro.cs.utah.edu)
+
+	* varasm.c (STRIP_NAME_ENCODING): New macro to decode a symbol name
+	munged by ENCODE_SECTION_INFO. 
+	(assemble_start_function, assemble_variable): Use STRIP_NAME_ENCODING.
+	* pa.h (STRIP_NAME_ENCODING): New definition.
+
+Thu Oct 22 17:53:37 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (mostlyclean): Clean objc subdir only if it exists.
+
+	* news.h (FUNCTION_PROLOGUE): Do allocate local stack space
+	when no frame pointer.
+
+Thu Oct 22 15:21:27 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* i960.h (FUNCTION_VALUE): Simplify, just return reg 0.
+	* i960.c (i960_function_value): Delete.
+
+Thu Oct 22 09:42:50 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips-tfile.c (parse_stabs_common): Ignore stab line numbers
+	of 0, since the G++ front end generates them.  Check whether
+	line numbers can fit within the index field, and if not report
+	an error.
+
+	* mips.c (function_arg): Align passed structures to double word
+	boundary if structure has double word alignment.
+
+	* mips.h (STACK_DYNAMIC_OFFSET): Do not define this macro in order
+	to work around a bug.
+
+Thu Oct 22 08:00:43 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gstdarg.h, gvarargs.h: Treat _AIX and _M_UNIX like __svr4__.
+
+	* i386gas.h (NO_UNDERSCORES): Defined.
+
+	* next.h (INCLUDE_DEFAULTS): Put in GPLUSPLUS_INCLUDE_DIR,
+	GCC_INCLUDE_DIR, LOCAL_INCLUDE_DIR, STANDARD_INCLUDE_DIR.
+	Don't define at all if cross-compiling.
+
+	* tree.c (copy_node): Copy the excess bytes--don't clear them.
+
+Thu Oct 22 06:40:55 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* a29k.h (TARGET_SWITCHES): Add missing complementary switches:
+	-mno-stack-check and -mstorem-bug.
+
+	* a29k.md (long constant split): Use gen_lowpart instead of making
+	a SUBREG directly.
+
+	* arm.h (STORE_FLAG_VALUE): Remove bogus definition.
+
+Thu Oct 22 03:04:28 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.c (prologue_marked): New variable.
+	(m88k_end_prologue): Output the epilogue mark here if the start of
+	the epilogue passed the end of the prologue.
+	(m88k_begin_epilogue): Don't output the epilogue mark if the end
+	of the prologue hasn't been processed yet.
+
+Thu Oct 22 03:20:40 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* function.c (put_var_into_stack): When we operate on a pseudo
+	that holds the address, use proper modes.
+
+	* combine.c (make_extraction): Use is_mode, not inner_mode,
+	for BYTES_BIG_ENDIAN adjustment to offset for non-bitfield case.
+	Update is_mode when stripping subreg from around a mem.
+
+	* m68k.h (GO_IF_INDEXABLE_BASE): Allow LABEL_REF only if jump table.
+
+Wed Oct 21 18:55:24 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gstdarg.h: Check and define _ANSI_STDARG_H along with _STDARG_H.
+
+Wed Oct 21 11:41:39 1992  Tom Wood  (wood at gen-rtx)
+
+	* toplev.c (push_float_handler, pop_float_handler): New functions.
+	* fold-const.c (real_value_truncate):
+	Use them, in case another handler is already in effect.
+
+Wed Oct 21 22:08:31 1992  H.J. Lu  (hlu@yardbird.eecs.wsu.edu)
+
+	* Makefile (all.build): Add target $(GCC_PASSES) for xgcc. 
+	* build-make (CC): Defined.
+	(CROSS_GCC_FLAGS): Deleted.
+	(HOST_CC): Delete -V option; CC supplies that.
+
+Wed Oct 21 12:34:39 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	From Wilson:
+	* longlong.h (sparclite udiv_qrnnd): Remove comma before
+	__AND_CLOBBER_CC.
+
+Wed Oct 21 12:24:24 1992  Michael Meissner  (meissner@osf.org)
+
+	* decrose.h (WORD_SWITCH_TAKES_ARG): Add -pic-names.
+	(CC1_SPEC): If -pic-names, pass -mhalf-pic to cc1.
+
+	* i386rose.h (WORD_SWITCH_TAKES_ARG): Add -pic-names.
+	(CC1_SPEC): If -pic-names, pass -mhalf-pic to cc1.
+
+Wed Oct 21 07:34:16 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure (alpha): Only accept OSF/1.
+
+	* alpha.h (ASM_FILE_START): Change .verstamp ident for BL9.
+	* alpha.md (div/mod): Change calling sequence to agree with BL9.
+
+	* expr.c (do_store_flag): Ensure we don't get confused when
+	emit_store_flag fails and an operand has a QUEUED.
+
+Wed Oct 21 02:53:58 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cexp.y (integer_overflow): Do nothing unless pedantic.
+
+Tue Oct 20 17:02:15 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* README, sparc.h, flow.c, regs.h: Change global-alloc.c to global.c.
+
+	* i960.md (call, call_value): Use 'd' not 'r' constraint for scratch.
+
+	* gcc.c (WORD_SWITCH_TAKES_ARG): Handle -Ttext and -Tbss in
+	addition to -Tdata.
+	* i960.h (WORD_SWITCH_TAKES_ARG): Delete, now unnecessary.
+	* next.h (WORD_SWITCH_TAKES_ARG): Add -Tbss.
+	* sparc.h, sun2.h, sun3.h (WORD_SWITCH_TAKES_ARG): Add -Ttext and
+	-Tbss.
+
+Tue Oct 20 16:49:57 1992  Ron Guilmette (rfg at netcom.com)
+
+	* dwarfout.c (dwarfout_file_scope_decl): Generate DIEs for
+	built-in non-fundamental types.
+
+Tue Oct 20 14:58:18 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-actions.c (handle_impent, handle_class_ref): Use __
+	to start the generated names, not period.
+
+Tue Oct 20 14:38:30 1992  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	* cp-method.c (fndecl_as_string): Undo change of Sep 14th for
+	emitting a space after the return type of a fn.
+
+	Wed Oct  7 16:01:55 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-lex.c (readescape): No warning if digits in \x are all 0's.
+
+Tue Oct 20 06:50:28 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (force_operand): Clarify comment to say what it can return.
+	* integrate.c (copy_rtx_and_substitute): Don't assume force_operand
+	on an address returns a REG; it might be a SUBREG.  Use force_reg.
+
+Tue Oct 20 04:54:01 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* tree.c (make_node, copy_node):
+	Don't assume node length is multiple of int.
+
+Mon Oct 19 18:14:56 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* genrecog.c (write_tree): For type SPLIT, check subroutine return
+	values for non-zero value not positive value.
+
+Mon Oct 19 16:11:04 1992  Michael Meissner  (meissner@osf.org)
+
+	* c-typeck.c (print_table, scan_table): Add support for XPG4's %S
+	and %C formats for printing/reading wide characters.  %lc and %ls too.
+
+Mon Oct 19 17:58:18 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* arm.c (output_epilogue): Restore sp's value if no frame pointer.
+
+	From Wilson:
+	* pa.h (WORD_SWITCH_TAKES_ARG): Delete sparc related cruft.
+
+Mon Oct 19 14:49:03 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-parse.y (primary): Don't try building a CALL_EXPR or
+	converting types if $$ is an error_mark.
+
+Mon Oct 19 14:01:02 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.h (SECONDARY_INPUT_RELOAD_CLASS): Require a temporary for a
+	pic address with a large constant term.
+	* m88k.md (reload_insi): New pattern.
+	(addsi3 pattern for large constants): Delete.  Causes reload trouble.
+	* m88k.c (emit_move_sequence): Add scratch register.  All callers
+	changed.
+	(legitimize_address): Add scratch register.  All callers changed
+	to pass zero instead of gen_reg_rtx result.  Allocate another temp
+	register for -fPIC case.  Use scratch register for pic cases with
+	a large constant term.
+
+	* m88k.h (FUNCTION_PROFILER_LENGTH, FUNCTION_BLOCK_PROFILER_LENGTH,
+	BLOCK_PROFILER_LENGTH, REG_PUSH_LENGTH, REG_POP_LENGTH): Added.
+	(ADJUST_INSN_LENGTH): Account for profiling code.
+
+Mon Oct 19 16:46:52 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (libobjc.a): Don't mkdir objc if dir exists.
+
+	* expr.c (store_field): If trying to sign-extend a constant,
+	use value_mode as the mode.
+
+Mon Oct 19 10:59:20 1992  Michael Meissner  (meissner@osf.org)
+
+	* xm-umips.h (index): Define to be strchr.
+	(rindex): Define to be strrchr.
+
+	* mips-tdump.c (index, rindex): Undefine these, since the MIPS
+	include files have a field spelled index.
+
+Mon Oct 19 03:34:04 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (mostlyclean): Delete libobjc.a.
+	(libobjc.a): Create the objc subdir.
+
+Sun Oct 18 17:52:05 1992  Arne H. Juul	(arnej@lise.unit.no)
+
+	* objc/Makefile: Add .SUFFIXES .m and .m.o rule to keep non-GNU
+	make happy.
+
+	* Makefile.in (libobjc.a): Remove libobjc.a in current directory
+	before attempting to hardlink it or make will fail in later stages.
+	(sublibobcj.a): Don't use $(MAKEFLAGS) for objc subdir stuff.
+
+Sun Oct 18 06:00:27 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* cse.c (canon_reg): Don't call validate_change if INSN is zero.
+
+Sun Oct 18 01:09:02 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* i860.h (PRINT_OPERAND): For `h', always use OPERAND_HIGH_ADJ_PART
+	even for integer constant addresses.
+
+	* final.c (output_addr_const): Always use FILE, not asm_out_file.
+
+	* cccp.c (collect_expansion): Don't add whitespace at end
+	if inside a string and not traditional.
+	(rescan): At end of string, if inside macro, always keep scanning.
+
+	* expr.c (store_field): If signed bitfield and want value, sign extend.
+
+Sat Oct 17 21:11:09 1992  H.J. Lu  (hlu@yardbird.eecs.wsu.edu)
+
+	* Makefile.in (all.build): New rule for making gcc with a
+	cross-compiler.
+	(install.build): New target.
+	(line 271): Add `####build overrides'.
+	(gen*.o): Depend on hconfig.h, not config.h.
+	($(HOST_PREFIX_1)rtl.o, $(HOST_PREFIX_1)print-rtl.o,
+	 $(HOST_PREFIX_1)rtlanal.o, $(HOST_PREFIX_1)obstack.o,
+	 $(HOST_PREFIX_1)malloc.o): Add final `h' to the regexp to replace.
+
+	* configure: If $host == $taget, but $host != $build, merge
+	`build-make' and emit `build = $build'.
+	* build-make: New file for making gcc with a cross-compiler.
+
+Sat Oct 17 19:24:31 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (process_init_constructor): When initializing a union,
+	handle the case of an empty init list.
+
+	* reload.c (find_reloads_address): Redo last change: copy the mem
+	in the same way it's usually done.
+
+	* Makefile.in (gcc.xtar): Fix typo in last change.
+	(mostlyclean): Don't use $(MAKEFLAGS) for objc subdir stuff.
+
+Sat Oct 17 19:15:16 1992  John Wroclawski  (jtw@pmws.lcs.mit.edu)
+
+	* decstatn.h (SIZE_TYPE): Fix typo.
+
+Sat Oct 17 17:46:08 1992  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	* cp-method.c: Don't try to include string.h or strings.h.
+	* cp-decl.c: Ditto.
+
+Sat Oct 17 13:50:49 1992  Fred Fish  (fnf@fishpond.cygnus.com)
+
+	* fixinc.svr4 (string.h):
+	Remove #defines for other compiler's builtin functions.
+
+Sat Oct 17 00:39:30 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* protoize.c: Add #undef getopt after getopt.h.
+
+	* gstdarg.h, gvarargs.h (va_list) [__SVR4_2__]:
+	Don't set or test _VA_LIST.
+
+	* gstddef.h: Do nothing if _ANSI_STDDEF_H already defined.
+
+Fri Oct 16 11:39:06 1992  H.J. Lu  (hlu@yardbird.eecs.wsu.edu)
+
+	* emit-rtl.c (gen_lowpart_common): Fix typo in last change.
+
+Fri Oct 16 22:35:15 1992  Eric Youngdale (youngdale@v6550d.nrl.navy.mil)
+
+	* make-cc1.com: Correct previous patch.
+
+Fri Oct 16 20:07:12 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-actions.c (start_class):
+	For an INTERFACE_TYPE, push to permanent obstack.
+	(build_message_expr): Use TYPE_MAIN_VARIANT when comparing types.
+
+	* Makefile.in (libobjc.a): Don't use $(MAKEFLAGS).
+	Add braces around shell variable references.
+	(collect2): Delete file before linking it.
+	* objc/Makefile (all): Don't use $(MAKEFLAGS).
+	(VPATH): Get rid of ../ since srcdir now absolute.
+
+Fri Oct 16 14:23:25 1992  Michael Meissner  (meissner@osf.org)
+
+	* decstatn.h (all defines): Protect all defines with an #ifndef,
+	to allow dec-osf1.h to selectively override macros.
+
+Fri Oct 16 10:44:47 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* Makefile.in (libobjc.a):  Compute srcdir1 without changing
+	directories.  Use srcdir1 to locate objc/Makefile.  Put quotes
+	around all potential multi-word values.  Recompute GCC_FOR_TARGET.
+	(sublibobjc.a): Use same text as libobjc.a.
+	(mostlyclean): Use $(MAKE) and srcdir1 for objc action.
+	* objc/Makefile (SUBDIR_INCLUDES): Don't use ../$(srcdir).
+	(all): Use $(MAKE).
+
+Fri Oct 16 04:16:36 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* function.c (find_fixup_replacement): Renamed from find_replacement.
+
+	* varasm.c (output_addressed_constants): Handle NON_LVALUE_EXPR.
+
+Fri Oct 16 02:25:17 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.md (call define_expands): If TARGET_LONG_CALLS, then force
+	the address of the function into a register.
+	* pa.h (TARGET_SWITCHES): New switch "-mlong-calls".
+	* pa.c (call_operand_address): Only allow registers if
+	TARGET_LONG_CALLS.
+
+Fri Oct 16 00:21:57 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (libobjc.a): Get directories right, using shell vars
+	thisdir1, srcdir1.  Put quotes around $(GCC_CFLAGS).  Use $(MAKE).
+
+Thu Oct 15 17:07:18 1992  Mike Stump  (mrs@hal.gnu.ai.mit.edu)
+
+	* configure, config.sub, config/elxsi.{c,h,md}, config/xm-elxsi.h,
+	config/x-elxsi: Add support for new 64 bit CPU, called Elxsi.
+
+Thu Oct 15 16:55:22 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (alpha_builtin_saveregs): Fix bug in last change.
+
+	* fold-const.c (distribute_bit_expr): Test for BIT_{AND,IOR}_EXPR.
+
+	* cse.c (cse_insn): Add missing call to apply_change_group.
+
+Thu Oct 15 15:09:45 1992  Michael Meissner  (meissner@osf.org)
+
+	* t-mips (CCLIBFLAGS, LIBGCC2_CFLAGS): Delete, so that libgcc.a is
+	built with the -G 8 option, instead of -G 0, so that the linker
+	doesn't complain when linking in libg++.a.
+	* t-decstatn (CCLIBFLAGS, LIBGCC2_CFLAGS): Ditto.
+
+Thu Oct 15 14:30:25 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* mips-tfile.c (parse_def): Allow spaces in arguments for C++.
+	Correct test for null when searching for end of name.
+
+Thu Oct 15 11:55:51 1992  Tim Moore  (moore@defmacro.cs.utah.edu)
+
+	* pa.c (compute_frame_size): Take an fregs_live parameter instead
+	of setting the static variable save_fregs.
+	(output_function_prologue): Initialize save_fregs to 0 and pass to
+	compute_frame_size.
+	* pa.h (INITIAL_FRAME_POINTER_OFFSET): Pass extra null parameter
+	to compute_frame_size.
+
+Thu Oct 15 08:40:07 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.h (TARGET_FPREGS): New flag.
+	(TARGET_SWITCHES): Remove temporary -mfp and add -msoft-float and
+	-mfp-regs.
+	(TARGET_DEFAULT): Set to -mfp-regs -mno-soft-float.
+	(CONDITIONAL_REGISTER_USAGE): Use TARGET_FPREGS.
+	(FUNCTION_VALUE, FUNCTION_ARG, LIBCALL_VALUE): Use integer registers
+	for FP items if -mno-fp-regs.
+	* alpha.c (alpha_builtin_saveregs): Store integer regs twice instead
+	of storing the FP regs if -mno-fp-regs.
+
+	* fold-const.c (fold): Add missing test in case when we
+	distribute a NOP_EXPR into a COND_EXPR and try to pull it back
+	out again.
+
+Thu Oct 15 08:11:00 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* fold-const.c (simple_operand_p): Don't regard global or static
+	variables as simple.
+	(fold_truthop): Only require the RHS to be simple.
+
+	* m88k.h (CPP_SPEC): Add -D__m88110__ when -m88110 is in effect,
+	similarly for -m88100.
+	* m88kdgux.h (CPP_SPEC): Ditto.
+	* m88kluna.h (CPP_PREDEFINES): Drop -Dmc88100.
+	(CPP_SPEC): Reproduce the predefine -Dmc88100 when -m88100 is in
+	effect.  Otherwise, supply -D__mc881x0__ when -m881x0 is in effect.
+
+Thu Oct 15 02:09:49 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (get_inner_reference):
+	If flag_volatile, treat every INDIRECT_REF as volatile.
+
+	* collect2.c (main): If COLLECT_GCC is a relative name, use it anyway.
+
+	* x-next: New file.
+	* configure (m68k-next-*): Use that.
+
+	* Changes from NeXT:
+
+	* libgcc2.c [L_ctors] (__CTOR_LIST__, __DTOR_LIST__):
+	Initialize these default definitions if __NeXT__.
+
+	* gvarargs.h [__NeXT__]: Define _VA_LIST_ if _ANSI_STDARG_H_ was
+	defined; then define _ANSI_STDARG_H_.
+
+	* gstddef.h (_ANSI_STDDEF_H): Define, along with _STDDEF_H.
+
+	* next.h (INCLUDE_DEFAULTS): New macro.
+
+	* cp-method.c (index, rindex): Delete declarations.
+	(build_overload_value): Cast result of index.
+
+	* cccp.c (cplusplus_comments): New var.
+	(main): Set it according to options.
+	(rescan, handle_directive, skip_if_group, validate_else):
+	(skip_to_end_of_comment, macarg1, discard_comments): 
+	Use cplusplus_comments to enable C++ comment syntax.
+
+Wed Oct 14 11:34:58 1992  Chip Salzenberg  (chip@tct.com)
+
+	* libgcc2.c (__gcc_bcmp): Don't depend on signedness of `char'.
+
+Wed Oct 14 18:52:28 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sched.c (sched_note_set): Set subreg_p for anything except a
+	paradoxical subreg.
+
+	* configure (sparc-*-solaris2): Use xm-spc-sol2.h not xm-spcv4.h.
+
+	* reload.c (find_reloads): Don't let an operand have a numbered
+	constraint that makes it match itself.
+
+Wed Oct 14 10:38:31 1992  Tim Moore  (moore@defmacro.cs.utah.edu)
+
+	* pa.md (sCC patterns): Comparison operator should have SImode,
+	not CCmode.
+	(indexed addressing mode patterns): New patterns to use indexed
+	addressing if possible.
+	* pa.c 	(output_and): Do handle (const_int 0) as an operand; it
+	seems to occur in unoptimized compilation.
+	* pa.h 	(REGNO_OK_FOR_FP_P): Logic bug.
+	* va-pa.h : When __GNUC__ == 1, don't include the gcc 1 varargs
+	file (va-hp9k8.h).  Instead, the definitions are explicitly defined
+	here.  This avoids multiple typedefs of va_list.
+	* xm-pa.h (HAVE_VPRINTF) Define in HPUX 8.0.
+
+	* pa.md	(mulsi): Use the hardware multiply instruction, xmpyu, if
+	TARGET_SNAKE. 
+	(umulsidi3): New pattern.
+	(reload_insi, reload_outsi, reload_indi, reload_outdi): New
+	patterns.  These are needed because SImode and DImode pseudoregs
+	may be allocated (or reloaded) in floating point registers for
+	multiplication. That means that their addresses, which were
+	legitimate for SImode and DImode, aren't valid any more.
+	(movsi, movhi, movqi, movdf, movdi, movsf): Pass null scratch
+	operand to emit_move_sequence. 
+	(fp SImode load and store patterns): Move before main movsi
+	pattern. 
+	(fp DImode load and store patterns) New patterns.
+	(movhi, movqi patterns): Support moves to/from fp registers.
+	(movdf pattern): Ensure at least one operand is a register.
+	* pa.c 	(emit_move_sequence): Take reload scratch register
+	argument, deal with reloads of SImode and DImode mems into
+	floating point registers, handle function_label_operand moves.
+	(secondary_reload_class): A scratch register is needed if
+	reloading a function_label_operand address (probably doesn't
+	happen) or an SImode or DImode value into/out of a floating
+	point register.
+	* pa.h 	(reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
+	REG_CLASS_FROM_LETTER): Define a new register class
+	FP_OR_SNAKE_FP_REGS, used only be reload_{in,out}{si,di}. 
+	(HARD_REGNO_MODE_OK): Allow all integer modes in Snake floating
+	point registers.  QImode and HImode pseudoregs may end up there
+	when using xmpyu.
+
+	* pa.md	(pic symbolic address pattern): New pattern.
+	(movsi, movdi patterns): Remove some * constraints from fp registers.
+	(pic label address pattern): Fix typo.
+	(function_label_operand patterns): New patterns for loading a
+	label address in HPUX 8.0.
+	* pa.c (finalize_pic): No real initialization is necessary for pic.
+	(output_function_prologue): Save r19, the pic offset table
+	register.  If profiling, save and restore the structure value
+	return register (r28) around the call to mcount.
+	(hppa_encode_label, function_label_operand): New functions.
+	Record if a label is a code label so it can be treated specially
+	in HPUX 8.0.
+	* pa.h (TARGET_SHARED_LIBS): New flag.  Generate code that can be
+	linked with HPUX 8.0 shared libraries.
+	(TARGET_SWITCHES): New flags: -mshared-libs and -mno-shared-libs.
+	(PIC_OFFSET_TABLE_REGNUM): This is really r19.  The preliminary
+	docs from HP were wrong.	
+	(ASM_DECLARE_FUNCTION_NAME): Specify "ENTRY" param in .EXPORT
+	directive.
+	(ENCODE_SECTION_INFO): Encode function labels.
+	(ASM_OUTPUT_LABELREF): Deal with function labels.
+	(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Don't do anything for
+	now; their only use (saving stuff during profiling) interacts in a
+	wierd way with required assembler directives at the start of a
+	function.  Instead, do the save and restore in the function
+	prologue.
+	(hppa_encode_label): Declare.
+	* pa-hpux.h, pa-ghpux.h (TARGET_DEFAULT): Link against shared
+	libraries.
+	(LINK_SPEC): Don't link against shared libraries if debugging or
+	profiling. 
+	* pa1-hpux.h, pa1-ghpux,h (TARGET_DEFAULT): Link against shared
+	libraries. 
+
+Wed Oct 14 10:17:49 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (gcc.xtar): Copy the objc subdir.
+	(mostlyclean): Run the mostlyclean target in the objc subdir.
+	(objc-runtime, libobjc.a, sublibobjc.a): New targets.
+	(objc, objective-c): Dep on objc-runtime.
+
+	* objc/*: New files.
+
+Wed Oct 14 07:17:19 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.md (smax, smin): Fix typo in output strings.
+
+	* a29k.c (const_16_operand, const_24_operand): Fix typo in declaration
+	of MODE.
+	(gpc_reg_or_immediate_operand, and_operand, add_operand): Likwise.
+
+Wed Oct 14 00:12:16 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (RTX_COST): Fix spacing typo.
+
+Tue Oct 13 21:51:05 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* a29k.md (call, call_value): Don't use call_operand, since
+	checking for recursive calls at this point is not safe.
+
+Tue Oct 13 18:52:17 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-type2.c (my_friendly_abort): Tell them to write to bug-g++.
+
+Tue Oct 13 18:16:12 1992  Chris Smith  (csmith@convex.com)
+
+	* convex.h (P_tmpdir): define to use /tmp.
+	(RETURN_POPS_ARGS): correct definition to return size.
+	(ASM_IDENTIFY_GCC): output something between gcc2_compiled and
+	first function to keep gcc2_compiled out of assembler stabs.
+
+	* convex.md (adddi3, ordi3, xordi3): check sign of CONST_INT
+	operands before using as immediates; these insns are word only.
+	(ashrdi3): don't use negative shift counts.
+
+	* convex*.h (CPP_SPEC): define __NO_INLINE_STDLIB
+
+	* xm-convex.h: remove temporary workaround from OS 8.0.
+
+Tue Oct 13 14:10:15 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* cp-lex.c (check_newline): Verify that main_input_filename is
+	valid before using it.
+
+Tue Oct 13 19:08:54 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* a29k.c: Now includes reload.h.
+	(spec_reg_operand): Validate mode and know that some regs support
+	MODE_PARTIAL_INT and some MODE_INT.
+	(call_operand, reload_memory_operand, a29k_get_reloaded_address)
+	 New functions.
+	(in_operand): Allow constants with MODE_PARTIAL_INT.
+	(out_operand): Allow special registers with any mode.
+	Any MEM a word or wider is valid.
+	(extend_operator): Deleted.
+	(secondary_reload_class): A pseudo is the same as memory; we need
+	BP_REGS for multi-word memory or for bytes and halfword if -mndw.
+	(print_operand): Delete %X; add %m.
+	(print_operand, case 'F'): Check for SYMBOL_REF.
+	* a29k.h (PROMOTE_MODE, ADJUST_COST): New macros.
+	(CALL_USED_REGISTERS): LR0 is call-used.
+	(HARD_REGNO_MODE_OK): Handle MODE_PARTIAL_INT and the special
+	registers that can only hold those modes.
+	(MODES_TIEABLE_P): Clean up and handle MODE_PARTIAL_INT modes.
+	(enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add new
+	classes LR0_REGS, FC_REGS, and CR_REGS.
+	(REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
+	(PREDICATE_CODES): Update for new and deleted predicates.
+	* a29k.md: Use GEN_INT when appropriate.
+	(define_attr type): New types for SQRT.
+	(call patterns): Use SCRATCH for LR0.
+	Use new predicate call_operand so that some integers can be
+	used as addresses; fix CALLI so it doesn't accept constant.
+	(EXBYTE, EXTHW, INBYTE, INHW): Use ZERO_EXTEND instead of AND
+	when combine will make it.
+	Use PSImode for BP value and don't reference BP explicitly.
+	Clean up define_expands for these operations.
+	(rotlsi3): Use PSImode pseudo for FC.
+	(sign_extend): Sign extension insns clobber BP.
+	({load,store}_multiple): Use PSImode pseudo for CR.
+	(MTSR): Add pattern for TRUNCATE from SImode to PSImode.
+	(sqrtsf2, sqrtdf2, movpsi): New patterns.
+	(load/store bytes/halfword): Clean up to accept temporaries as
+	input and use PSImode when required.
+	(movhi, movqi): Allocate temporaries here.
+	(reload_inqi, reload_outqi, reload_inhi, reload_outhi): New
+	patterns.
+	(movdf, movdi, movti): Use SCRATCH for BP register.
+	(reload_{in,out}{df,di,ti}): New patterns.
+
+Tue Oct 13 16:52:33 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixinc.svr4 (sys/stream.h, sys/strsubr.h): Delete spurious `extern'
+	in various structure definitions.
+
+	* rtlanal.c (single_set): Fix typo in REG_UNUSED check.
+
+	* cse.c (simplify_binary_operation): Insure that folded >> extends
+	the sign even if the host bootstrap compiler doesn't.
+
+	* final.c (output_asm_insn): Advance over the = when processing %=.
+
+	* fixincludes (stdio.h): Fix va_list when preceeded by a *.
+
+Tue Oct 13 14:52:57 1992  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	* spc-sol2.h (STARTFILE_SPEC): Add crtbegin.o.
+	(LIB_SPEC): Add crtend.o for running ctors/dtors.
+	* t-sol2 (EXTRA_PARTS): Add crtbegin.o and crtend.o for C++.
+	(FIXINCLUDES): Deleted.
+	* configure (sparc-*-solaris2*): Set fixincludes here.
+
+Tue Oct 13 20:15:45 1992  Eric Youngdale (youngdale@v6550d.nrl.navy.mil)
+
+	* make-cc1.com: Simplify extraction of YYEMPTY from cp-parse.c.
+	Generate c-parse.y, objc-parse.y from c-parse.in if required.
+	Pat Rankin did some of this.
+
+Tue Oct 13 14:06:45 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.md (in_branch_delay): Allow fpload and fpstore.
+
+	* collect2.c (main): Only install a signal handler for signals
+	that already have handlers.
+	(fork_execute): Don't ignore signals before calling do_wait.
+
+	* i960.md: Change 'f' constraint for dest to '*f' if it is not the
+	only alternative.  Add '*f' dest constraints to all patterns where
+	it is valid but was previously missing.
+
+	* i960.h (OVERRIDE_OPTIONS): Enable function inlining.
+	* i960.c (g14_save_reg): Delete variable.
+	(i960_output_call_insn): Add two new parameters arg_pointer and
+	scratch_reg.  Save/set/restore g14 if necessary.
+	(i960_expand_call): Delete function.
+	* i960.md (call, call_value): No longer call i960_expand_call,
+	instead call call_internal/call_value_internal pattern.
+	(call_internal, call_value_internal): Rewrite patterns to pass new
+	args to i960_output_call_insn.
+
+	* sparc.md (movstrsi+1): Add `+' to constraints for clobbered inputs.
+
+	* i960.c (i960_output_call_insn):  Emit bx instead of b, callx
+	instead of callj.
+
+	* sparc.c (sparc_frw_output_function_prologue): Frame pointer base
+	must be same as for regular sparc code.
+
+Tue Oct 13 06:02:03 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* loop.c (loop_optimize): Verify that max_uid_for_loop is still
+	larger than the uid of any insn.  Increase the number of exit
+	blocks from 4 to 32 per loop.
+	(find_and_verify_loops): Stop trying to relocate exit blocks when
+	allocating a new label would exceed max_uid_for_loop.
+
+	* combine.c (subst): Don't change a conditional branch into a
+	conditional move.
+
+	* m88k.md (ext shift patterns): No longer needed.
+
+	* m88k.c (mostly_false_jump): Recognize a sequence properly.
+ 
+Mon Oct 12 22:31:37 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (LEGITIMIZE_ADDRESS): Fix typo.
+
+Tue Oct 13 00:14:09 1992  H Lu  (hlu@eecs.wsu.edu)
+
+	* Makefile.in (install-common): Put - on cmd that handles protoize.
+	(gcc.o, cccp.o): Define TOOLDIR for the compilation.
+	(all HOST_PREFIX_1 targets): Fix typos.
+
+	* x-linux (cpp.a, linux.a, cc1.a, cc1plus.a, gcc.a): Targets deleted.
+	(LD, ALIBS, STANDARD_STARTFILE_PREFIX, GPLUSPLUS_INCLUDE_DIR):
+	Vars deleted.
+
+	* i386linux.h: Delete NO_JUMPTABLE conditional and contents.
+	(GPLUSPLUS_INCLUDE_DIR): Defined.
+	(STARTFILE_SPEC): Changed.
+
+	* gen*.c: Include hconfig.h, not config.h.
+
+Mon Oct 12 16:25:22 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure.bat, vmsconfig.com: Make hconfig.h.
+
+	* vax.h (PRINT_OPERAND): Detect `double' constants by DFmode,
+	since VOIDmode means an integer.
+
+	* mips.h (DEBUG_REGISTER_NAMES): New macro definition.
+	* print-rtl.c (reg_names):
+	Make it static.  Use DEBUG_REGISTER_NAMES if that's defined.
+	* regclass.c (reg_names): Reinstate the definition here.
+
+	* fixinc.svr4: Delete excess fi in fixing stat.h.
+
+Mon Oct 12 08:10:37 1992  James Van Artsdalen  (jrv@goldman.gnu.ai.mit.edu)
+
+	* Makefile.in (install-fixincludes): Only delete an existing
+	syslimits.h if we install limits.h over it.
+
+	* i386.h (PRINT_REG): Undo Oct 11 change.
+	(DEBUG_PRINT_REG): New macro, used from print-rtl.c.
+
+	* conditions.h (CC_NOT_SIGNED): New macro.
+	* final.c (alter_cond): If CC_NOT_SIGNED, convert signed
+	conditions to unsigned.
+
+	* i386.md (cmpstrM patterns): Compare strings of unsigned chars,
+	not strings of signed chars.
+
+Mon Oct 12 06:31:13 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): Save DEST of NI2PAT before calling
+	recog_for_combine, which might make it a PARALLEL.
+
+	* emit-rtl.c (gen_lowpart_common): Allow MODE_PARTIAL_INT where
+	MODE_INT is allowed.
+
+	* combine.c (try_combine): Properly call single_set when validating
+	the result of a define_split.
+
+Mon Oct 12 00:24:29 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* calls.c (calls_alloca): Don't look within DECL_INITIAL if it's 0.
+
+	* varasm.c (simplify_subtraction): New function.
+	* rtl.h (simplify_subtraction): Declared.
+	* final.c (output_addr_const): Call it.
+
+	* print-rtl.c (DEBUG_PRINT_REG): Renamed from PRINT_REG.
+	(print_rtx): Use DEBUG_PRINT_REG.
+
+Sun Oct 11 16:27:53 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu.edu)
+
+	* genrecog.c (merge_trees): When splitting, remember to clear DUPNO
+	in addition to the other things we can test.
+
+	* recog.c (general_operand, immediate_operand, const_double_operand):
+	Allow CONST_INT with MODE_PARTIAL_INT.
+	(nonmemory_operand): Likewise.
+
+Sun Oct 11 07:53:39 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* xm-i38v4.h,xm-aix386.h (USE_C_ALLOCA): New macro.  Define if not
+	using GNU C's builtin alloca.
+
+	* i386.c (notice_update_cc): Only set CC_IN_80387 for float compares.
+
+	* i386.h (PRINT_REG): Make register name arrays static within this
+	macro.
+
+Sun Oct 11 01:41:06 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* jump.c (jump_optimize): Don't optimize jumps to store-flag insns
+	when BLKmode values are being compared.
+
+Sat Oct 10 16:51:08 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* print-rtl.c (print_rtx): Print hard reg name as well as number.
+	(PRINT_REG): New macro with default definition.
+	(reg_name): Moved here.
+	* regclass.c (reg_name): Deleted.
+
+Sat Oct 10 02:27:14 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386sco.h (TARGET_DEFAULT): New macro - don't make TARGET_IEEE_FP
+	default for SCO.
+
+Sat Oct 10 04:52:06 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* function.h (struct function): New fields const_rtx_hash_table,
+	const_rtx_sym_hash_table, first_pool, last_pool, pool_offset.
+	* function.c (pop_function_context, push_function_context):
+	Call {save,restore}_varasm_status.
+	* varasm.c: Include function.h.
+	(restore_varasm_status, save_varasm_status): New fns.
+	(init_const_rtx_hash_table): Allocate the hash tables in obstack.
+	(force_const_mem): Don't use CONST_DOUBLE_MEM for nested fns.
+	(clear_const_double_mem): Do nothing for nested fns.
+	* Makefile.in (varasm.o): Dep on function.h.
+
+Fri Oct  9 18:16:18 1992  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	* cp-decl.c (duplicate_decls): Only find out if olddecl is a
+	friend after we know it's not a TREE_LIST.
+
+Fri Oct  9 18:10:19 1992  Jim Wilson  (wilson@geech.gnu.ai.mit.edu)
+
+	* sparc.c (sparc_type_code): Return reasonable result for COMPLEX_TYPE.
+
+Fri Oct  9 14:33:26 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* reorg.c (start_of_epilogue_needs): New variable.
+	(mark_target_live_regs): Add in start_of_epilogue_needs when
+	NOTE_INSN_EPILOGUE_BEG is scanned.
+	(dbr_schedule): Compute start_of_epilogue_needs and update
+	end_of_function_needs to include sets by all instructions
+	following NOTE_INSN_EPILOGUE_BEG.
+
+	* m88k.md (return): Always available once reload has completed.
+	(epilogue): Use a return insn rather than an indirect jump.
+
+Fri Oct  9 12:36:54 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* spc-sol2.h (DBX_DEBUGGING_INFO): Defined.
+
+	* function.c (aggregate_value_p): Return 1 if regs we would use
+	are not all call-clobbered.
+
+	* stmt.c (POPSTACK): Pop discarded elts off all the stacks as we go.
+
+Fri Oct  9 07:30:14 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reorg.c (mark_target_live_regs): Fix bug in last change.
+
+	* combine.c (subst, case SUBREG): Don't make a new REG for
+	stack, frame, or arg pointer.
+	* emit-rtl.c (gen_lowpart_common, gen_highpart, operand_subword):
+	Likewise.
+
+	* local-alloc.c (optimize_reg_copy_1): Tighten up code to properly
+	handle the case when SRC or DEST is a multi-word hard register
+	and only some parts of the register are set or used.  Also, avoid
+	updating register status for DEST if we can't do the optimization.
+
+	* jump.c (jump_optimize): Only use a REG as a target.
+
+	* alpha.c (alpha_builtin_saveregs): Don't use value of NREGS greater
+	than 6 when computing ARGSIZE.
+
+	* va-alpha.h (va_arg): Put parens around all uses of __VA arg.
+
+Thu Oct  8 18:45:00 1992  Arne H. Juul  (arnej@lise.unit.no)
+
+	* Makefile.in (install-common-headers): added missing 'then'
+
+Thu Oct  8 15:52:22 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (SELECT_RTX_SECTION): Rename macro from obsolete name
+	SELECT_SECTION_MODE.
+
+	* i386rose.h (whole file): Remove #ifdef before #undef of macros.
+	(LEGITIMATE_CONSTANT_P): Define, so that when half-pic is on,
+	half-pic addresses are not considered legitimate.
+	(SELECT_RTX_SECTION): If putting a half-pic pointer that is
+	loaded, put the pointer into the data section, rather than the
+	readonly_data_section.
+	(SELECT_SECTION): Define.
+	(ASM_OUTPUT_DOUBLE): If not cross compiling, emit double as two
+	longs, otherwise emit .double directive.
+	(ASM_OUTPUT_FLOAT): If not cross compiling, emit float as long,
+	otherwise emit .float directive.
+	(perform_fixdfsi): Copy arg to memory variable.
+	(SIZE_TYPE): Define to be long unsigned int.
+	(PTRDIFF_TYPE): Define to be int.
+	(WCHAR_TYPE)L: Define to be unsigned int.
+
+	* i386.md (movsi): Remove obsolete half-pic code.
+	(call insns): For half-pic insns, force address into register.
+
+Thu Oct  8 14:22:05 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (install-common-headers): Fix dir in chmods for assert.h.
+
+	* va-i860.h (__savereg, va_arg): Put uses of __va in parens.
+
+	* vax.h (PRINT_OPERAND): Define new code, D.
+	* vax.md (movdi): Use D code for operand 1.
+
+Thu Oct  8 13:23:25 1992  Jeffrey A. Law  (law@mole.gnu.ai.mit.edu)
+
+	* pa.md (fp_alu function unit, case fpcc): Fpcc instructions use
+	the fpalu unit.  In the most common case their result will be used
+	in a ftest instruction.  Minimum distance between the fcmp and 
+	ftest instruction is 4.
+
+Thu Oct  8 06:41:15 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* function.c (assign_parms): Provide a safe value for
+	DECL_INCOMING_RTL in case of syntax errors.
+
+	* dwarfout.c (dwarfout_init, dwarfout_finish): Don't output labels
+	or .debug_aranges entries for .data1 and .rodata1 as these
+	sections aren't currently used.
+
+Thu Oct  8 04:44:17 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reorg.c (mark_target_live_regs): Look at USE insns made by
+	update_block when scanning forward past target.
+	(mark_target_live_regs, dbr_schedule): Use GET_RTX_CLASS.
+
+	* cse.c (PATHLENGH): Change from 20 to 10 to speed up compilations.
+
+Thu Oct  8 03:07:33 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fold-const.c (invert_truthvalue): Never alter ARG.
+
+	* Makefile.in (TAGS): Exclude =*.[chy] from tags table.
+
+	* c-lex.c (yylex): For floats, use REAL_VALUES_LESS to distinguish
+	underflow from overflow.  Delete special case for 0.0.
+
+Wed Oct  7 16:25:19 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* dwarfout.c (dwarfout_{begin,end}_function): New functions.
+	(body_{begin,end}_attribute): New functions.
+	(dwarf_attr_name): Print AT_body_begin and AT_body_end.
+	(output_{local,global}_subroutine_die): Output the new attributes.
+	* dwarf.h (enum dwarf_attribute): Add At_body_begin and AT_body_end.
+	* final.c (final_scan_insn): Call dwarfout_begin_function.
+	(final_end_function): Call dwarfout_end_function.
+
+	* m88k.h (FASTEST_ALIGNMENT): Define as 8 for -m88110 otherwise 4.
+	(CONSTANT_ALIGNMENT, DATA_ALIGNMENT): Base on FASTEST_ALIGNMENT.
+	* m88k.md (movstrsi): No predicate is needed for the source or
+	destination.
+	* m88k.c (best_from_align): Add a target processor dimension for
+	-m88000, -m88110, and -m88100.
+	(expand_block_move): Choose method and limits based on -m88xxx option.
+	(block_move_no_loop): Extend to allow DImode.
+	* m88k-move.sh: Add the modules moveDI96x and moveDI41x through
+	moveDI47x.
+	* t-m88k, t-m88kluna, t-m88ksvr4: New modules added to MOVE_ASM.
+
+	* m88k.c (output_call): Use different syntax for GAS.
+
+	* m88k.h (READONLY_DATA_SECTION): Don't override svr4.h
+	(ASM_OUTPUT_CASE_LABEL): For svr4, use .rodata.
+
+Wed Oct  7 15:47:19 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure (i486-ncr-sysv4): Use i386v4.h.
+	(i386-*-sysv4, i386-*-linux, i386-*-sysv): Handle 486 too.
+	(i486-*-sysv4, i486-*-linux): Deleted.
+	* i486v4.h, i486linux.h: Files deleted.
+
+Wed Oct  7 12:40:00 PDT 1992  Ron Guilmette (rfg at netcom.com)
+
+	* populate (progname):  Just the basename of $0 please.
+	(target_dir):  Use abs_target_dir and rel_target_dir for clarity.
+	(source_dir):  Use abs_source_dir and rel_source_dir for clarity.
+	(*):  List input and output dirs on startup.
+	(*):  Don't be so verbose; Don't echo names of output dirs/files as
+	they are created.
+
+	* fixinc.svr4 (<sys/signal.h>):  Fix types of SIG_DFL, SIG_ERR,
+	SIG_IGN, and SIG_HOLD.
+	(<sys/stat.h>): Turn definitions of stat, lstat, fstat, and mknod
+	into ANSI syntax and add __ to variables used.
+
+	* c-parse.in (component_decl_list):  Do pedwarn for missing semicolon
+	after last field decl.
+
+Wed Oct  7 09:49:34 1992  Michael Meissner  (meissner@osf.org)
+
+	* decstatn.h (LINK_SPEC): Don't define if it is already defined,
+	ie dec-osf1.h has included decstatn.h.
+
+	* dec-osf1.h (MACHINE_TYPE): Redefine to say DEC OSF/1 instead of
+	ultrix.
+
+Wed Oct  7 03:50:11 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure (target_cpu_default): Var renamed from target_default.
+	Set it to 2, for a 486.  Define TARGET_CPU_DEFAULT macro.
+
+	* i386.h (TARGET_CPU_DEFAULT): Add default definition.
+	(TARGET_SWITCHES): Include that in the default.
+
+	* toplev.c (main): Recover correctly from invalid -Wid-clash option.
+
+	* cccp.c (finclude): Set fp->buf earlier, so it's freed on error.
+
+	* Makefile.in (install-common-headers): Avoid ! operator, for assert.h.
+
+Tue Oct  6 20:21:21 1992  Jim Wilson  (wilson@geech.gnu.ai.mit.edu)
+
+	* unroll.c (copy_loop_body, JUMP_INSN case): Delete abort in the
+	code for setting the JUMP_LABEL field.
+
+Tue Oct  6 19:29:19 1992  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	* cp-call.c (build_overload_call_real): If `functions' is an
+	ADDR_EXPR (as with operator new and delete), give the name of its
+	argument as the error fn.
+
+Tue Oct  6 14:15:15 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure: Correct conditional in setting build_xm_file.
+
+	* function.c (get_first_block_beg): New function.
+
+	* cross-make (assertdir): Override usual definition.
+	* Makefile.in (install-common-headers): chmod assert.h in proper dir.
+	Use $(assertdir).
+	(assertdir): New variable.
+	(install-dir): Create dir $(includedir).
+	(includedir): Make this /usr/local/include.
+
+Tue Oct  6 12:05:35 1992  Jeffrey A. Law  (law@mole.gnu.ai.mit.edu)
+
+	* pa.md (memory function unit, load case): Loads take two cycles,
+	not one.
+
+Tue Oct  6 07:56:05 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pa.md (adddi3): Fix typo.
+
+Tue Oct  6 04:03:40 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* m68k.c (floating_exact_log2, standard_68881_constant_p): 
+	(standard_sun_fpa_constant_p): Use REAL_VALUE_FROM_CONST_DOUBLE.
+	(print_operand): Likewise.
+
+Mon Oct  5 18:39:29 1992  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	* tree.h (TREE_VIA_PROTECTED): Set protected_flag, not static_flag.
+
+Mon Oct  5 18:27:08 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in ($(srcdir)/INSTALL): Add -D INSTALLONLY.
+
+Mon Oct  5 14:46:08 1992  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	* cp-parse.y (unary_expr): Use the `new' rule when looking for
+	something like `new(foo) char[10]'.
+
+	* cp-decl.c (grokparms): Don't call digest_init on default args.
+
+Mon Oct  5 02:21:06 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload1.c (allocate_reload_reg): Always check for asm
+	on failure instead of simply aborting.
+
+	* optabs.c (init_optabs): Use cabs as the only libcall for abs.
+
+Mon Oct  5 03:10:14 1992  Mark Eichin  (eichin at tweedledumber.cygnus.com)
+
+	* c++ (numargs): $# was used after set was called; instead, save
+	$# in $numargs and use that value instead.
+
+Sun Oct  4 12:34:00 PDT 1992  Ron Guilmette  (rfg at netcom.com)
+
+	* dwarfout.c (hard-reg-set.h):  Included to get decl of `reg_names'.
+	(PRINT_REG):  Default definition added.
+	(dwarf_last_decl):  Variable declaration added.
+	(output_reg_number):  New function; handle -fverbose-asm reg printing.
+	(output_mem_loc_descriptor, output_loc_descriptor):  Call it.
+	(output_decl):  Set `dwarf_last_decl' each time this fn is called.
+	* i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Declared.
+	(PRINT_REG):  Definition moved from i386.c.
+	* i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Not static.
+	(PRINT_REG):  Definition moved to i386.h.
+
+Sun Oct  4 00:53:37 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (shadow_tag_warned): Use pedwarn for useless keyword.
+
+	* c-lex.c (readescape): No warning if digits in \x are all 0's.
+
+Sat Oct  3 14:37:39 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* optabs.c (expand_complex_abs): New function.
+	* expr.h (expand_complex_abs): Add declaration.
+
+Sat Oct  3 07:29:09 1992  Michael Meissner  (meissner@osf.org)
+
+	* configure (mips-dec-osf1): Use x-dec-osf1 instead of x-decstatn.
+
+	* x-dec-osf1 (new file): Like x-decstatn, except that INSTALL is
+	installbsd -c.
+
+Sat Oct  3 05:04:43 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* toplev.c (rest_of_decl_compilation): Don't call
+	dwarfout_file_scope_decl as this causes duplicates.
+
+Sat Oct  3 01:35:23 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* explow.c (allocate_dynamic_stack_space) [MUST_ALIGN]:
+	Always add to size, always round up to STACK_BOUNDARY,
+	always round the address.
+
+	* rtl.h (gen_realpart, gen_imagpart): Declared.
+
+Fri Oct  2 20:03:53 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* emit-rtl.c (gen_realpart, gen_imagpart): New functions.
+	* optabs.c (expand_unop, expand_binop): Use them.
+	* expr.c (expand_expr): Use them.
+
+	* cccp.c (main): Handle -U before -D (and -A).
+
+	* assert.h: Add magic comment at beginning.
+	* Makefile.in (includedir): New variable.
+	(USER_H): assert.h removed from value.
+	(install-common-headers): Install assert.h separately, in includedir,
+	but not if file exists and lacks the magic comment.
+
+	* reload1.c (reload): Move test for failure to find any group
+	to after the loop over i.  Also check that all the regnos fit
+	below FIRST_PSEUDO_REGISTER.
+
+	* expr.c (expand_expr):
+	For ABS_EXPR, give expand_unop the operand's mode.
+
+Fri Oct  2 14:58:06 PDT 1992  Ron Guilmette  (rfg at netcom.com)
+
+	* i386v4.h (DBX_REGISTER_NUMBER):  Don't abort here on pseudo-regs.
+	* dwarfout.c (output_mem_loc_descriptor, output_loc_descriptor):
+	Catch cases of bogus DECL_RTL values involving pseudo-regs (for all
+	target systems) and print an annoying message if we ever see such a
+	case.
+
+Thu Oct  1 17:23:08 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips-tfile.c (various): Rename some of the index variables and
+	fields to indx, so that it doesn't conflict with the BSD
+	index function, which may be #define'd to strchr.  However, the
+	MIPS symbol table has a field called index, so #undef index and
+	rindex, and write our own functions local_index and local_rindex.
+
+	* mips-bsd.h (CPP_PREDEFINES): Add single underscore in front of
+	each of the defines, for RISC-OS 5.0 compatibility.
+
+	* mips-sysv.h (CPP_PREDEFINES): Add single underscore in front of
+	each of the defines, for RISC-OS 5.0 compatibility.
+
+	* mips-svr4.h (CPP_PREDEFINES): Add single underscore in front of
+	each of the defines, for RISC-OS 5.0 compatibility.
+
+	* mips.h (CPP_PREDEFINES): Add single underscore in front of each
+	of the defines, for RISC-OS 5.0 compatibility.
+
+	* mips.c (override_options): Only call setvbuf to make stderr line
+	buffered for -mstats on Ultrix, and OSF/1.
+
+Thu Oct  1 15:18:55 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* reload1.c (emit_reload_insns): Add a case to handle
+	SECONDARY_MEMORY_NEEDED in the SECONDARY_OUTPUT_RELOAD_CLASS code.
+	* sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Also need a temp reg
+	when loading HImode and QImode values from memory to FP_REGS.
+	(SECONDARY_OUTPUT_RELOAD_CLASS): New macro.  Define this to handle
+	HImode and QImode stores from FP_REGS to memory similar to above.
+
+Thu Oct  1 13:36:52 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (rescan): If traditional, recognize # only at bol.
+
+	* expr.c (expand_expr): Just return the lowpart or highpart.
+
+	* configure (i386-*-linux, i486-*-linux): New alternatives.
+	* i386linux.h, i486linux.h, xm-linux.h: New files.
+
+	* optabs.c (expand_unop): Handle complex negate and abs val.
+	(init_optabs): Set up libcalls for complex abs.
+	(init_complex_libcalls): New function.
+
+Thu Oct  1 22:58:45 1992  Eric Youngdale (youngdale@v6550d.nrl.navy.mil)
+
+	* make-cc1.com: Extract line containing "#define YYEMPTY" from
+	cp-parse.c, and append to cp-parse.h (a la Makefile.in).
+
+	* cccp.c (main) [VMS]: Use .obj, not .o, in dependencies output.
+
+Thu Oct  1 17:15:49 1992  Chip Salzenberg  (chip@tct.com)
+
+	* c-common.c (declare_function_name): __FUNC__ variables
+	are compiler-created, so set DECL_SOURCE_LINE to zero.
+	* c-decl.c (pushdecl): Internally generated vars can be
+	detected with DECL_SOURCE_LINE of zero, not DECL_IGNORED_P.
+
+Thu Oct  1 13:07:21 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.c (emit_move_sequence): When making a reference to the data
+	space before reload, emit an insn sequence which is much more 
+	likely to create "addil" instructions rather than "ldil; add" 
+	sequences.  Doing so greatly reduces the chance of running into a
+	HPUX linker bug when compiling kernels.
+
+	* pa.h (TARGET_KERNEL): New switch "-mkernel" which forces gcc to
+	avoid "ldil; add" sequences when %r29 and instead generate "addil"
+	sequences.  This avoids a HPUX linker bug when compiling kernels.
+	* pa.md (add high part and dp register): Split into two patterns,
+	one for normal code, one for kernels.  Kernel version only allows
+	"r1" as the destination register.
+
+	* pa.h (LEGITIMIZE_ADDRESS, SYMBOL_REF case): Emit a sequence
+	which will cause "addil" instructions to be emitted instead of 
+	"ldil; add" sequences.
+
+Thu Oct  1 01:09:05 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-parse.in, cond.awk: New files.
+	* Makefile.in (c-parse.y, objc-parse.y): Construct from c-parse.in.
+	(gcc.xtar): Depend on c-parse.y, objc-parse.y.
+	(realclean): Delete c-parse.y, objc-parse.y.
+
+	* explow.c (allocate_dynamic_stack_space): If STACK_DYNAMIC_OFFSET
+	or STACK_POINTER_OFFSET, always round address up to BIGGEST_ALIGNMENT.
+
+	* gstddef.h: If _ANSI_H_, undef _PTRDIFF_T_, _SIZE_T_, _WCHAR_T.
+
+	* gvarargs.h: In the first part (instead of va-*.h), define
+	__gnuc_va_list, as in gstdarg.h.  Always use __gunc_va_list
+	as basis for defining va_list.
+	Move interaction with BSD-NET2 down to where va_list itself is defined.
+
+	* cccp.c (do_include): Delete unreachable goto after '"' case.
+
+Thu Oct  1 16:57:22 1992  Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
+
+	* dpx2g.h (NO_DOLLAR_IN_LABEL): Undef because gas understands dollars
+	in labels and gdb expects them if configured for gas.
+	(STARTFILE_SPEC): Include huge.o to be compatible with native cc.
+	(ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
+	(CTOR_LISTS_DEFINED_EXTERNALLY, DO_GLOBAL_DTORS_BODY):
+	(STARTFILE_SPEC): Conditionally redefine for a collectless version
+	of gcc if USE_COLLECT2 is not defined.
+
+	* dpx2.ifile: New ld command file to support not using collect2.
+
+Wed Sep 30 17:08:32 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* libgcc2.c (__eprintf): Do nothing if inhibit_eprintf is defined.
+
+	* pbd.h, spc-sol2.h, tower.h (NO_UNDERSCORES): Deleted.
+
+	* Makefile.in (install-fixincludes): rm syslimits.h before installing.
+	Install it with cp.  Add an else-part to the if that installs it.
+
+	* c-decl.c (start_enum): Push obstacks, switch to permanent if global.
+	(finish_enum): Pop obstacks.
+	(store_parm_decls): When clearing ->names, clear out the values
+	from the identifiers, restore shadowed values, and clear ->shadowed.
+
+	* c-decl.c (grokdeclarator): Don't warn of const or volatile function
+	in a system header file.
+
+	* sdbout.c: Don't use system syms.h on hpux.
+
+	* cccp.c (do_xifdef): Skip all kinds of whitespace, in bof test.
+
+Wed Sep 30 15:09:10 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.md (orcc peephole): Don't accept FP reg for operand 0.
+
+Wed Sep 30 00:47:48 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gstdarg.h, gvarargs.h: Use <...> to include va-*.h.
+
+	* c-decl.c (start_struct): Push the obstacks.
+	Switch to permanent if at top level.
+	(finish_struct): Pop them.
+
+	* c-decl.c (store_parm_decls): If we have (erroneously) a prototype
+	and old-style parm decls, throw away the old-style parm decls.
+
+	* configure: Default $build after $host.  Canonicalize all three
+	config names before the main dispatch and save in $canon_host, etc.
+	Write these into config.status and on terminal at the end.
+
+Tue Sep 29 18:41:54 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* unroll.c (find_splittable_givs): recog_memoized failure return
+	is -1 not 0.
+
+Tue Sep 29 22:19:48 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+
+	* config.sub (os handling): Recognize `linux' as a valid os.
+
+Tue Sep 29 16:05:47 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* limitx.h: Use <...> in #include.
+
+	* Makefile.in (ENQUIRE_CFLAGS): Remove -DNO_SC.
+
+Tue Sep 29 10:14:27 1992  Richard Kenner  (kenner@.vlsi1.ultra.nyu.edu)
+
+	* optabs.c (expand_binop): Convert X - C to X + (-C).
+
+Mon Sep 28 22:44:17 1992  Jim Wilson  (wilson@cygnus.com)
+
+	* reload.c (find_reloads_address): If tem != ad, then create a new
+	mem to hold it and store it back into memrefloc.
+
+Mon Sep 28 10:44:55 1992  Chip Salzenberg  (chip@tct.com)
+
+	* regclass.c: Fix comment syntax after #endif.
+
+Mon Sep 28 17:15:22 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gstdarg.h (va_arg, va_start): Explicitly cast to __gnuc_va_alist.
+
+Mon Sep 28 17:12:04 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* unroll.c (copy_loop_body, JUMP_INSN case): When invert jump
+	insn, must first construct new insn before trying to invert it,
+	so that validate_change will work properly.
+
+	* unroll.c (find_splittable_givs): Pass mem_mode not mode to
+	memory_address_p.
+
+	* unroll.c (copy_loop_body, JUMP_INSN case): When setting
+	JUMP_LABEL field, verify that what we think is a label actually
+	is.  If it isn't then map the old JUMP_LABEL to find the new one.
+
+	* sparc.md (orcc peephole): Don't allow FP regs to match pattern.
+
+	* i960.md (indirect_jump):  Use bx instead of b*, and accept any
+	address_operand instead of just a register operand.
+
+	* i960.c (i960_round_tree): Correct conversion of bits to bytes to
+	round up to nearest byte.
+	(i960_round_align): Likewise.
+
+Mon Sep 28 15:54:18 1992  Michael Meissner  (meissner@osf.org)
+
+	* dec-osf1.h (LINK_SPEC): Fix typo.
+
+Mon Sep 28 08:15:02 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.md (subsi3): Remove last change.
+	(allocate_stack): Go back to calling subsi3.
+
+Mon Sep 28 02:41:32 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* optabs.c (expand_binop): Use get_insns, not gen_sequence.
+
+	* c-typeck.c (build_unary_op): Address of nested fcn isn't constant.
+
+	* libgcc2.c (__builtin_new): Avoid passing 0 to malloc.
+
+	* m68k.md (indirect_jump): Use address_operand as predicate.
+
+	* c-decl.c (finish_decl): Do the pop_obstacks sooner, when it's
+	time to start allocating in the ambient context's obstack.
+	Don't call permanent_allocation unless got back to permanent obstack.
+
+Sun Sep 27 13:06:19 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (assign_parms): If PROMOTE_FUNCTION_ARGS is defined, 
+	see if the incoming register should be used in a wider mode.
+	(expand_function_start): Likewise for return value if
+	PROMOTE_FUNCTION_RETURN is defined.
+	* calls.c (struct arg_data): New field unsignedp.
+	(expand_call): Handle PROMOTE_FUNCTION_ARGS and
+	PROMOTE_FUNCTION_RETURN.
+
+	* alpha.h (FUNCTION_VALUE): Promote mode for return value.
+
+	* alpha.h (BYTE_LOADS_SIGN_EXTEND): Define.
+
+	* rs6000.md (subsi3): Don't bother calling negate_rtx for constant;
+	we shouldn't be called with a constant.
+	(maskir patterns): Don't mention an operand before it is used;
+	use operand number 1 for operand with '0' constraint.
+	(allocate_stack): Use reg_or_short_operand for predicate of
+	allocation amount; use negate_rtx and always make a PLUS.
+
+	* romp.h (EXTRA_CONSTRAINT, case 'Q'): Check for MEM instead of
+	calling memory_operand.
+	(SHIFT_COUNT_TRUNCATED): No longer define this.
+
+Sat Sep 26 18:14:15 1992  Michael Meissner  (meissner@osf.org)
+
+	* config.sub (os handling): Recognize riscos as an operating
+	system.
+
+	* configure (dec-osf1): Use x-decstatn for xmake_file.
+	(mips computers): Handle RISC-OS 5 vs. RISC-OS 4 configuration
+	changes -- RISC-OS 5. passes -non_shared by default.
+
+	* mips-5.h (new file): RISC-OS rev 5 config file.
+	* mips-5bsd.h (new file): RISC-OS rev 5, bsd 4.3 config file.
+	* mips-5g4.h (new file): RISC-OS rev 5, svr4 + stabs config file.
+	* mips-5gbsd.h (new file): RISC-OS rev 5, bsd 4.3 + stabs config file.
+	* mips-5gdb.h (new file): RISC-OS rev 5 + stabs config file.
+	* mips-5gsysv.h (new file): RISC-OS rev 5 svr3 + stabs config file.
+	* mips-5svr4.h (new file): RISC-OS rev 5 svr4 + stabs config file.
+	* mips-5sysv.h (new file): RISC-OS rev 5 svr3 config file.
+
+	* dec-osf1.h (LINK_SPEC): Pass -non_shared to linker unless
+	-shared was passed.
+	(SIZE_TYPE): Define as long unsigned int.
+	(PTRDIFF_TYPE): Define as int.
+	(WCHAR_TYPE_SIZE): Define as SHORT_TYPE_SIZE.
+
+	* decrose.h (MACHINE_TYPE): Shorten verbage.
+
+	* i386rose.h (TARGET_VERSION): Print appropriate information.
+
+	* xm-mips.h (HAVE_VFPRINTF, HAVE_PUTENV): Define on DEC OSF/1.
+
+	* mips.c (siginfo): Print just current filename, and function
+	being compiled.
+
+	* mips-tfile.c (Size_t): Use long unsigned on OSF/1.
+	(toplevel): Don't define rindex and index on OSF/1.
+
+Sat Sep 26 17:46:57 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
+
+	* arm.md (comment before extendhisi2): Remove the lie.
+	(zero_extendhisi2): Rewrite to work if op0 == op1.  Use
+	gen_lowpart in preparation code.
+	(extendqisi2, extendhisi2): Likewise.
+	(extendqihi2): Expand.
+
+	* arm.md (restorehi): Rewrite for correctness, efficiency, and
+	clarity. Avoid generating insns involving truncate.  Generate
+	needed pseudos in preparation statements.
+	(storehi): Likewise.
+	(storeinthi): Likewise.
+	(movhi): Call gen_storehi, gen_restorehi, gen_storeinthi according
+	their new definitions.  Use force_reg to put address in register.
+
+	* m68k.md (indirect_jump): Use %a0 for output, and p for constraint.
+
+Sat Sep 26 02:42:42 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload1.c (eliminate_regs_in_insn): Rerecognize if move insn
+	becomes a non-move.
+
+	* Makefile.in (install-fixincludes):
+	Use - when making syslimits.h; fix if-statement syntax.
+
+	* jump.c (jump_optimize): When handling dispatch table that always
+	goes to the same place, verify previous insn exists.
+
+	* c-typeck.c (common_type): Renable code to merge qualifiers
+	given two pointers to compatible types.
+
+Sat Sep 26 12:02:38 PDT 1992  Ron Guilmette  (rfg at netocm.com)
+
+	* dwarfout.c (location_attribute): If DECL_RTL looks like (MEM pseudo),
+	treat that variable as optimized away.
+
+Fri Sep 25 19:48:46 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (explicit_flag_signed_bitfields): New variable.
+	(c_decode_option): Set that for -f[un]signed-bitfields.
+	(grokdeclarator): If that's set, and -fsigned-bitfields,
+	disregard -traditional when handling bitfield signedness.
+
+	* configure: Handle --build option.  Make link hconfig.h.
+	* Makefile.in: In the targets such as $(HOST_PREFIX_1)rtl.o,
+	use sed to make them include hconfig.h instead of config.h.
+	(distclean): Add command to delete hconfig.h.
+
+Fri Sep 25 19:56:35 1992  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	* cp-search.c (compute_visibility): Don't mess with the context.
+
+	* cp-decl.c (grokdeclarator): Return value from do_friend
+	properly; this shouldn't have gone in yet.
+
+Fri Sep 25 02:23:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (initializer_constant_valid_p): Really use endtype.
+
+	* cccp.c (do_include): "Concatenate" multiple "strings" in #include.
+
+	* vmsconfig.com: Renamed from configure.com.
+
+	* next.h (CPP_PREDEFINES): Define __ARCHITECTURE__.
+
+	* dbxout.c (dbxout_symbol): For anonymous enum, output type anyway.
+
+Fri Sep 25 01:33:36 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* function.h (struct function): Add epilogue_delay_list field.
+	* function.c (push_function_context): Save epilogue_delay_list.
+	(pop_function_context): Restore epilogue_delay_list.
+
+	* sparc.md (nonlocal_goto): Force operands[0] to be a register.
+
+	* va-sparc.h (va_arg): Add 3 more (void *) casts to avoid warnings
+	with -Wcast-align.
+
+	* sparc.c (SF_MODES): Accept all single word or smaller integer
+	modes not just SImode.  These are needed for fix/float conversions.
+
+	* sched.c (sched_analyze_2, PRE_DEC case): Call sched_analyze_2 in
+	addition to sched_analyze_1.
+
+	* va-i960.h (va_start):  Must access anonymous arg as offset from
+	start of argument block.
+
+	* i960.md (movdi, movti, movdf, movtf): Make store zero to memory
+	a separate case, only accept offsettable memory addresses, and call
+	adj_offsettable_operand to calculate subword addresses.
+
+	* i960.c (i960_output_ldconst): Pass missing xoperands argument to
+	output_asm_insn call.
+
+	* a29k.md (movti):  Split CONST_INTs into 4 moves, and force all
+	other constants to memory.
+
+Thu Sep 24 21:51:46 1992  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	Complete Cygnus<-->FSF merge.
+
+	Thu Sep 24 17:05:27 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-decl.c (pushdecl): Use a friendly abort rather than an assert.
+	(grokparms): Pass whether init is set or not for the initialized
+	parameter to grokdeclarator.
+
+	Wed Sep 23 22:09:44 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-class.c (finish_struct), cp-decl2.c (warn_nonvdtor),
+	cp-tree.c (layout_basetypes), cp-tree.h (warn_nonvdtor):  Re-enable
+	warnings for non-virtual destructors in some situations.
+
+	Wed Sep 23 15:42:33 1992  Mike Stump  (mrs@cygnus.com)
+
+	Wed Sep 23 16:31:27 1992  Michael Meissner  (meissner@osf.org)
+
+	* cp-decl.c (duplicate_decls): Cast bcopy arguments to char * to
+	avoid warning on OSF/1.
+
+	Wed Sep 23 11:36:44 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-decl.c (start_method): Give the name of the class if a method's
+	being defined again, rather than say "aggregate scope". 
+	* cp-decl2.c (grokfield, grokbitfield, groktypefield): Ditto.
+
+	Tue Sep  1 22:55:59 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* cp-cvt.c (convert_to_integer): Prefer unsigned
+	arithmetic if the output type is unsigned and is no more precise than
+	the computation type.  This avoids unnecessary sign extension.
+
+	Tue Sep 15 20:26:18 1992  John F Carr  (jfc at Athena.MIT.EDU)
+
+	* cp-pt.c (tsubst): Don't call layout_type near start of function
+	with T.  const and volatile attributes don't affect the memory
+	structure of the type, and T may not yet be a valid argument for
+	layout_type (for example, if it is an uninstantiated template).
+	Individual switch cases will call layout_type if necessary.
+
+	Mon Sep 21 15:59:22 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-decl.c (pushdecl): Check if DECL_SOURCE_LINE is non-zero, not
+	if DECL_IGNORED_P is set, when checking for shadowing.  We no longer
+	need DECL_IGNORED_P on builtin types.
+	(record_builtin_type): Don't set DECL_IGNORED_P for a builtin type.
+
+	* cp-decl.c (start_decl): When working with virtual functions,
+	always use the node's DECL_CLASS_CONTEXT.
+	* cp-method.c (hack_identifier): Ditto.
+	* cp-search.c (compute_visibility): Ditto.
+
+	* cp-decl.c (grokdeclarator): Don't allow a member to be declared
+	extern.
+
+	* cp-decl.c (grokdeclarator): Return a void_type_node if we're
+	looking at a friend (even after calling do_friend).
+	(pushdecl): Disable some code that's untested and
+	doesn't necessarily help DWARF right now.
+	(finish_function): Always emit debugging info for the
+	return type of a function.
+	(pushdecl): Don't change the DECL_CONTEXT of virtual
+	methods.
+	(finish_enum): Always output debugging info for enums.
+	(grokdeclarator): It's an error if we're doing an init of an extern
+	at the top level.  If we are at the top level, just warn.
+
+	* cp-typeck.c (comp_target_parms): Check if strict is non-zero, not
+	just > 0.
+	(build_function_call_real): Don't return an error-mark node when
+	they call "main" from within the fn, it's only a pedantic warning.
+	(pointer_int_sum): Reword warning when using a ptr-to-mem in arith.
+
+	* cp-tree.c (layout_basetypes): Make record_align and const_size
+	unsigned.
+
+	Mon Sep 21 14:53:43 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-tree.h (flag_no_ident): Add extern decl for cp-lex.c.
+
+	* cp-decl.c (duplicate_decls): Save the DECL_UID and DECL_FRIEND_P
+	info from olddecl.  Otherwise, they'd get clobbered when newdecl's
+	contents get copied into olddecl.
+
+	* cp-lex.c (check_newline): Delete pedantic error about using #ident,
+	since cccp.c already gives a warning.  In the case that
+	ASM_OUTPUT_IDENT is defined, only actually spit it out if flag_no_ident
+	is not set.
+
+	Sat Sep 19 14:53:31 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	Sat Sep 19 11:37:11 1992  John F Carr  (jfc at Athena.MIT.EDU)
+
+	* cp-decl.c (finish_decl):  Don't call
+	CLASSTYPE_DECLARED_EXCEPTION if TYPE is error_mark_node, to avoid
+	referencing a nonexistent field.
+
+	Fri Sep 18 14:06:06 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-parse.y (component_decl): Remove sorry about not implementing
+	methods in anonymous unions---they're illegal, and we generate an
+	error elsewhere to that effect.
+
+	* cp-decl.c (start_method): Make the error message about a
+	duplicated member a little more informative.
+
+	Fri Sep 18 12:28:13 1992  Brendan Kehoe  (brendan at rtl.cygnus.com)
+
+	* cp-parse.y: Define YYDEBUG if SPEW_DEBUG is defined.
+	(debug_yytranslate): YYDEBUG will always be defined, no need to test. 
+
+	Fri Sep 18 10:46:19 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-parse.y (unary_expr): When parsing delete, first complain if
+	it's a non-pointer, then check if it's a pointer with the value zero.
+	Also be sure not to call build_delete if that's the case.
+
+Thu Sep 24 18:03:07 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Set Meissner version # to 27.
+	(STRUCT_VALUE_REGNUM): Delete macro.
+	(STRUCT_VALUE): Define as 0, so that structure return addresses
+	are passed as the first argument.  This fixes various codegen
+	problems with functions returning structures.
+
+	* mips.c (init_cumulative_args): Don't advance arg pointer if
+	function returns a structure.
+
+Thu Sep 24 12:38:31 1992  Torbjorn Granlund  (tege@wombat.gnu.ai.mit.edu)
+
+	* pa.h (REGISTER_MOVE_COST): Fix typo.  Use `||' instead of `|'.
+	(REG_CLASS_FROM_LETTER): Don't handle 'r' constraints here.
+	* pa.c (clobbered_register): Delete.
+	(srcsi_operand): Return 1 also for things matching
+	depi_cint_operand.
+	(secondary_reload_class): Replace.
+	* pa.md (ldo/ldil SImode and HImode recognizers): Use
+	"const_int_operand" for operand 1 and simplify final condition. 
+	Remove `n' constraint.
+	(depi SImode and HImode recognizers): Remove `n' constraint.
+	(plus:SI ... high ... splitter): Don't overwrite input, go via
+	clobber operand instead.
+	(many patterns): Replace `in' constraint with just `i'.
+	(movstrsi): Don't do (clobber (match_scratch)), use explicit
+	pseudos instead, generated in preparation C code.  Don't call
+	force_not_mem for operand 2.
+	(movstrsi recognizer): Add `&' to operand 3.
+	(andsi3): Fix typo.
+	(iorsi3): Fix typo.
+	(load-shift-16): New optimizer.
+	(load-shift optimizers): Set "type" attr.
+
+Thu Sep 24 15:17:38 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* toplev.c (lang_options): Add Objc options.
+
+	* configure.bat: Use xgcc, not gcc.
+
+Thu Sep 24 06:30:47 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-lex.c (yylex, case '"'): Initialize arg pased to readescape.
+
+	* genattrtab.c (length_used): New variable.
+	(walk_attr_value): Set it when we have (eq_attr "length" ...).
+	(write_const_num_delay_slots): Value is 1 unless LENGTH_USED is set.
+
+	* reorg.c (mark_set_resources, case CC0): Set RES->CC if IN_SEST.
+
+	* regclass.c (forbidden_inc_dec_class, in_inc_dec): New variables.
+	(regclass): Don't alloca the costs twice.
+	Initialize forbidden_inc_dec_class.
+	For regs that have inc-dec, ignore forbidden classes.
+	(record_address_regs): Update in_inc_dec.
+
+Thu Sep 24 02:36:00 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* syslimits.h: New file, includes system's limits.h.
+	* limitx.h: Include syslimits.h instead of system's limits.h.
+	* Makefile.in (USER_H): Add syslimits.h.
+	(install-fixincludes): If we fix system's limits.h, install that
+	as syslimits.h
+
+	* c-lex.c (readescape): New arg ignore_ptr.
+	(yylex): Pass new arg, handle result that comes back.
+
+Wed Sep 23 19:26:42 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads_address): Properly check for constant address.
+
+	* cse.c (simplify_unary_operation, case SIGN_EXTEND): Use
+	HOST_BITS_PER_WIDE_INT, not HOST_BITS_PER_INT.
+
+	* fold-const.c (fold_convert): Add missing cast to HOST_WIDE_INT.
+
+	* jump.c (jump_optimize): Tighten up test for when we can't
+	delete a set of CC0.
+	Don't insert insns between set and use of CC0.
+
+	* final.c (shorten_branches): Correctly access insn needing delay slot.
+
+	* combine.c (significant_bits, num_sign_bit_copies): Handle SUBREGs
+	made for promoted variables.
+
+	* reorg.c (fill_simple_delay_slots): Don't make copy of insn that
+	references CC0.
+
+	* romp.md (define_attr "type"): New type "ibranch".
+	(define_attr "length"): Set length for "ibranch" type.
+	(define_attr "in_delay_slot"): Add new type "ibranch";
+	for "branch", only has delay slot if length is 4.
+	(define_attr "cc_type"): Add new type "ibranch".
+	(indirect branches): Now type "ibranch".
+
+	* alpha.c (alpha_gp_dead_after): Return 0 if not optimizing.
+
+Wed Sep 23 00:11:35 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gvarargs.h: Finish changing _ANSI_H to _ANSI_H_.
+
+Tue Sep 22 23:39:06 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* i386mach.h (perform_fixdfsi): Copy arg to memory variable.
+
+Tue Sep 22 14:54:38 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* loop.c (basic_induction_var): Inside PLUS, when looking for promoted
+	var, make sure it's a REG.
+
+Tue Sep 22 12:21:11 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump Meissner version # to 26.
+	(REG_PARM_STACK_SPACE): Use UNITS_PER_WORD instead of 4, and
+	substract FIRST_PARM_OFFSET.
+	(FIRST_PARM_CALLER_OFFSET): Delete unused macro.
+
+	* mips.c (init_cumulative_args): Print types of fntype and the
+	return type if -mdebuge.
+
+	* decrose.h (CPP_SPEC): Eliminate defining various builtin
+	functions with -D<name>=__builtin_<name>, if neither -fbuiltin nor
+	-fno-builtin were passed.
+	(CC1_SPEC): Eliminate passing -fno-builtin to the compiler if
+	neither -fbuiltin nor -fno-builtin were passed.  Eliminate
+	%{save-temps: } since gcc no longer gives an unknown switch
+	message if it is used.
+
+	* i386rose.h (CPP_SPEC): Eliminate defining various builtin
+	functions with -D<name>=__builtin_<name>, if neither -fbuiltin nor
+	-fno-builtin were passed.
+	(CC1_SPEC): Eliminate passing -fno-builtin to the compiler if
+	neither -fbuiltin nor -fno-builtin were passed.  Eliminate
+	%{save-temps: } since gcc no longer gives an unknown switch
+	message if it is used.
+	(MASK_HALF_PIC): Move bit mask to 0x40000000, to allow for i386.h
+	to define more switches without overlapping our private switch.
+	(TARGET switches): Add -mdebugb to debug half-pic code.
+	(OPTIMIZATION_OPTIONS): Only set flag_gnu_linker FALSE always, and
+	flag_inline_functions if -O3.  In particular never set
+	-fomit-frame-pointer which currently messes up debugging.
+	(GO_IF_LEGITIMATE_ADDRESS): Define i386-osfrose version that deals
+	with half-pic.
+	(OVERRIDE_OPTIONS): Define to initialize half-pic.
+	(ASM_FILE_END): Define to dump out half-pic variables if needed.
+
+	* t-i386rose (EXTRA_OBJS): Define as halfpic.o.
+	(CONFIG2_H): Add $(srcdir)/halfpic.h.
+	(halfpic.o): Add dependencies.
+
+Tue Sep 22 03:12:01 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload1.c (choose_reload_regs): When setting reg_has_output_reload,
+	loop over multiple regs only for hard reg.  Set reg_is_output_reload
+	in separate loop.
+
+Mon Sep 21 12:22:24 1992  Jeffrey A. Law  (law@mole.gnu.ai.mit.edu)
+
+	* reorg.c (mark_set_resources, case REG): A register is set iff
+	"in_dest" is nonzero.
+
+Mon Sep 21 14:16:10 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
+
+	* combine.c (make_extraction): Make test whether to use AND or
+	{SIGN,ZERO}_EXTRACT depend on UNSIGNEDP.
+
+Mon Sep 21 08:26:55 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload): If we can't get a register that we know won't
+	interfere with groups, get one that might instead of giving up.
+
+	* reload1.c (reload): Print the needs to the dump file.
+
+Mon Sep 21 02:45:19 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* function.c (put_var_into_stack): Check REG != 0 before dereference.
+
+Sun Sep 20 16:58:05 1992  Fred Fish  (fnf at fishpond.cygnus.com)
+
+	* x-svr4:  New generic SVR4 host makefile fragment.
+	* x-i386v4:  File deleted.
+	* x-ncr3000:  Get alloca using ALLOCA, not libucb.a.
+	* configure (i386-*-sysv4*):  Use x-svr4, not x-i386v4.
+	* configure (i486-*-sysv4*):  Use x-svr4.
+
+Sun Sep 20 21:18:15 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* combine.c (subst): Set and compare extend_op with 0, not NULL.
+
+	* cse.c (find_comparison_args): New args PMODE1, PMODE2.
+	(fold_rtx, record_jump_equiv): Use them to get modes of comparison.
+	(fold_rtx): Associate MINUS with nested PLUS.
+
+	* seq386.h (LPREFIX): Overridden as `.L'.
+	(ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
+
+Sun Sep 20 05:53:20 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): Always call set_significant on new
+	patterns, so don't call just in split case.
+
+	* combine.c (subst): Move sign extension inside arithmetic
+	when we have a constant computation inside another computation.
+
+	* emit-rtl.c (emit_insn_after_with_line_notes): New function.
+	* jump.c (jump_optimize): Delete insns that set registers that
+	are not used elsewhere.
+	Fix some bugs in "if (...) x = a; else x = b;" code.
+	Remove uses of reorder_insns.
+	Add code to make scc insns for "if (...) x = exp;" if EXP is simple
+	enough.
+	Optimize "if (...) x = b;" if jumps very expensive; don't use a REG
+	as the older value of X since it doesn't help and can hurt.
+	Correctly place generated insns in above case.
+
+	* reload.c (find_reloads, find_reloads_toplev): Treat
+	BYTE_LOADS_SIGN_EXTEND just like BYTE_LOADS_ZERO_EXTEND.
+	* combine.c (subst, simplify_and_const_int, significant_bits):
+	Likewise.
+	(num_sign_bit_copies, case MEM): New case for BYTE_LOADS_SIGN_EXTEND.
+	(num_sign_bit_copies, case SUBREG): Handle just like significant_bits.
+
+Sat Sep 19 15:55:31 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (combine_instructions): Clear significant_valid 
+	at end of combine pass for a function.
+	(find_split_point, case MEM): See if first operand of the PLUS
+	that makes up an address is complex.
+	(subst): Add missing arg to recursive calls when IF_THEN_ELSE
+	is an arg of an operator.
+	(subst, case IF_THEN_ELSE): Generalize code to propagate comparison
+	result into arms by using known_cond.
+	If an arm is the first operand of the comparison, make it the
+	true arm.
+	Remove unneeded comparison when arms are identical.
+	Try to convert IF_THEN_ELSE to ABS, (neg (abs X)), [US]MIN, [US]MAX.
+	Convert (if_then_else (ne A 0) (OP X C) X) to (OP X (mult A C)).
+	(subst, case SET): If we don't have conditional moves,
+	convert IF_THEN_ELSE into logical operations.
+	(subst, case AND): Always make conditional moves, even if we
+	don't support them on the machine.
+	(known_cond, extended_count): New functions.
+	(gen_binary): For commutative operations, put constant last.
+
+	* combine.c (try_combine): The insns made by a DEFINE_SPLIT might
+	contain a PARALLEL and the call to recog_for_combine might add it.
+
+	* combine.c (simplify_comparison, case ASHIFT): Fix typo.
+
+	* combine.c (try_combine): When removing REG_UNUSED note,
+	update reg_n_deaths.
+	Likewise, when making new REG_DEAD notes for distribute_notes.
+	(remove_death, move_deaths): Update reg_n_deaths.
+	(distribute_notes): When placing second REG_DEAD or REG_UNUSED note or
+	ignoring such a note, update reg_n_deaths.
+
+	* rtl.h (SUBREG_PROMOTED_{VAR,UNSIGNED}_P): New macros.
+	* tree.h (DECL_MODE, DECL_RTL): Update comments.
+	* expr.h (PROMOTE_MODE): Provide default definition.
+	* expr.c (convert_move, convert_to_mode): Strip off a SUBREG made
+	for variables with promoted modes.
+	(store_expr): Store into variables with promoted modes by
+	doing the appropriate extension operation.
+	(expand_expr, case VAR_DECL): Generate SUBREGs for promoted objects.
+	(expand_expr, case SAVE_EXPR): Likewise for SAVE_EXPRs.
+	(expand_increment): Handle increment of promoted objects.
+	* function.c (fixup_var_refs{,_insns}): Add new parms for promoted
+	mode and signedness; all callers changed.
+	Insert mode conversions when required.
+	(fixup_var_refs_1): Add new parms for mode and signedness;
+	handle SUBREGs for promoted values.
+	(assign_parms): Promote the mode of parameters when useful for
+	the target machine.
+	* function.h (struct var_refs_queue): Remove unused field ORIGINAL.
+	Add new fields PROMOTED_MODE and UNSIGNEDP.
+	* integrate.c (expand_inline_function): Convert actual to formal's
+	mode (in case formal was promoted).
+	* loop.c (basic_induction_var): Add new parameter P.
+	Check for bivs that are set over multiple insns and also
+	allow a SIGN_EXTEND to be used; remove check for MINUS since
+	we don't make MINUS with a constant 2nd operand any more.
+	* optabs.c (expand_binop, expand_unop): Don't make SUBREG for promoted
+	variables as operands.
+	* stmt.c (tail_recursion_args): Use mode of DECL_RTL, not
+	DECL_MODE.
+	(expand_decl): Promote modes of scalar variables when useful on
+	target.
+	* unroll.c (find_splittable_regs): If any BIV update isn't
+	simple, don't split it.
+	(final_giv_value): Look for biv updates by matching insns; don't
+	try to reparse the insn.
+	* rs6000.h (PROMOTE_MODE): New macro.
+
+	* rtlanal.c (reg_set_last): Allow old value to be a SUBREG.
+
+	* rs6000.c (print_operand, case 'h', 'H', 'w'): Minor cleanups.
+	* rs6000.h (BRANCH_COST): Increase from 2 to 3.
+	* rs6000.md (smax, smin, umax, umin): Add define_splits.
+
+	* alpha.h (PROMOTE_MODE): New macro.
+	(REG_ALLOC_ORDER): Put $0 in front of $21-$16.
+	(CONST_OK_FOR_LETTER): Change meanings of N, O, and P.
+	(BRANCH_COST): Increase from 3 to 4.
+	(PREDICATE_CODES): Add new predicates reg_or_cint_operand and
+	sext_add_operand.
+	* alpha.md (addsi3): subl can be used to sign-extend addition of
+	small negative constants.
+	(negsi2): Add pattern for (sign_extend (neg ..)).
+	(and pattern): Fix typo in constraint.
+	(ashldi3): Use new definition of constant letters.
+	(smax, smin, umax, umin): Add define_splits.
+	(compares): Can compare constant with zero by adding negative of
+	constant.
+	(store insns): Can store 0 into memory in both integer and FP.
+	* alpha.c (sext_add_operand, reg_or_cint_operand): New function.s
+	(print_operand, case 'r', case 'R'): Clean up code; use CONST0_RTX.
+
+	* rtl.c (note_insn_name): Fix typo: had NOT_INSN_DELETED_LABEL.
+
+	* jump.c (delete_insn): Don't change labels to NOTEs if we would
+	not really have deleted them.
+
+	* genconfig.c (walk_insn_part, case IF_THEN_ELSE): Refine when
+	HAVE_CMOVE_FLAG gets set.
+
+Sat Sep 19 14:52:05 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload.c (find_reloads): Always use >= with FIRST_PSEUDO_REGISTER.
+
+	* i386mach.h (SIZE_TYPE): Defined.
+
+Sat Sep 19 04:57:06 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (sCOND patterns): Don't allow a MEM in the SET_DEST,
+	because these insns can't have input reloads, and a MEM might need
+	an input address reload.
+
+	* fold-const.c (fold_convert): Avoid using conversion of unsigned
+	to floating; offset value by hand to fit in signed type.
+
+Sat Sep 19 00:50:32 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* integrate.c (subst_constants): Do substitute in address of MEM dest.
+
+	* reload1.c (init_reload): Fix typo.
+
+Fri Sep 18 21:09:15 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* libgcc2.c: Declare _exit as volatile.
+
+	* function.c (assign_parms): Set MEM_IN_STRUCT_P right in stack slots.
+
+Fri Sep 18 15:58:15 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* fixincludes: Don't look for *.h symlinks if the host doesn't
+	have symlinks.
+
+Fri Sep 18 17:34:27 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.md (call_internal): If the memory address to call is really
+	a constant integer, load it up into $at and do the call from
+	there.
+	(call_value_internal): Ditto.
+
+Fri Sep 18 03:48:17 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.c (m88k_volatile_code): New variable.
+	(print_operand): Track volatile memory references and output a
+	serializing instruction before a load when necessary.
+	* m88k.h (TARGET_SWITCHES): Add -m{no,}serialize-volatile.
+	(OVERRIDE_OPTIONS): -m88110 and -m88000 imply -mserilize-volatile.
+	(ADJUST_INSN_LENGTH): Volatile memory operantions may be longer.
+	(CC_STATUS_INIT): Reset m88k_volatile_code to the unknown state.
+	* m88k.md (load store patterns): Prepend loads and stores with %V
+	and %v to track the type and address of the access.
+
+	* m88k.c (m88k_version, m88k_version_0300): New variables.
+	* m88k.h (TARGET_OPTIONS): Generalize to -mversion-STRING.
+	(OVERRIDE_OPTIONS): Compute m88k_version_0300.
+	* m88k.md (call_movstrsi_loop): Renamed from call_block_move_loop.
+	Use call-value for the block move patterns.
+
+	* m88kdgux.h (PERFERRED_DEBUGGING_TYPE): Compute based on
+	m88k_version.
+	(CPU_DEFAULT): Make it -m88000.
+
+	* m88k.h: Don't use #elif
+
+Fri Sep 18 01:08:55 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (install-common-headers): Don't copy byteorder.h.
+
+Thu Sep 17 20:06:22 1992  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	Complete 13th Cygnus<-->FSF merge.
+
+	Thu Sep 17 13:15:15 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	Do some much-needed housecleaning of the C++ front-end.
+	* cp-call.c (ideal_candidate): Move `p2' down inside #if 0'd (only)
+	section that actually uses it.  Delete unused variable `buf'.
+	(build_method_call): Delete unused variable `dtor_specd'.
+	* cp-class.c (finish_struct): Delete unused variable `basetype'.
+	* cp-cvt.c (convert_to_aggr): Add missing argument decl for `protect'.
+	(convert_pointer_to): Delete unused variable `form'.
+	* cp-decl.c: Include string.h/strings.h for strncpy() decl.
+	Add decls for init_* fns.  Delete unused decl `push_overload_decl_1'.
+	Don't use `c_function_varargs', C++ doesn't need it.
+	(push_binding_level): Add missing argument decls for
+	`tag_transparent' and `keep'.
+	(lookup_tag): Add missing argument decl for `tags_transparent'.
+	(lookup_name): Add missing argument decl for `prefer_type'.
+	(start_decl): Delete unused variables `classname' and `tmpl'.
+	(grokvardecl): Add missing argument decl for `initialized'.
+	(grokdeclarator): Delete unused variable `t'.
+	* cp-decl2.c (get_temp_name): Delete unused variable `temp'.
+	(finish_table): Delete unused variable `publicp'.
+	(finish_builtin_type): Add missing argument decl for `len'.
+	(finish_file): Delete unused variables `asm_out_file' and
+	`init_function_name'.
+	* cp-except.c (ansi_exception_object_lookup): Add missing
+	argument decl for `type'.
+	(cplus_expand_throw): Delete unused variables `cname', `name',
+	and `raise_id'.
+	* cp-init.c: Delete unneeded forward decl of `init_init_processing'.
+	(build_new): Delete unused variable `alignment'.
+	(expand_vec_init): Add missing argument decl for `from_array'.
+	(build_vec_delete): Delete unused variable `rval'.
+	* cp-input.c (feed_input): Add missing argument decl for `len'.
+	* cp-lex.c: Delete unused variable `nextlastiddecl'.
+	(check_newline): Delete unused variable `tmp'.  Place `asm_out_file'
+	inside a conditional for ASM_OUTPUT_IDENT.
+	(real_yylex): Delete unused variable `typename_scope_in_progress'
+	and unused labels `relex' and `reswitch'.
+	* cp-method.c: Include string.h/strings.h for strncpy() decl.
+	(new_text_len): Deleted.
+	(dump_type_prefix): Delete unused variables `print_struct' and `name'.
+	(dump_tyupe): Delete unused variable `print_struct'.
+	(type_as_string): Delete unused variable `spaces'.
+	(do_inline_function_hair): Delete unused variable `cname'.
+	(flush_repeats): Delete unused variable `rval'.
+	(build_t_desc_overload): Delete unused variable `i'.
+	(build_opfncall): Add missing argument decl for `flags'.
+	(hack_identifier): Add missing argument decl for `yychar'.
+	* cp-parse.y (template_instantiate_once): Delete unused
+	variables `id' and `members'.
+	* cp-search.c (lookup_field): Add missing argument decl for `want_type'.
+	(tree_needs_constructor_p): Add missing argument decl for `i'.
+	(dfs_debug_mark): Delete unused variable `pending_vtables'.
+	(dfs_get_vbase_types): Delete unused variable `basetype'.
+	* cp-spew.c (init_spew): Delete unused variables `pc' and
+	`chars_following_typename'.
+	(yylex): Delete unused variables `dk' and `tmp'.  Move decl of `t2' down
+	to the block that actually uses it.
+	* cp-tree.c (build_cplus_staticfn_type): Delete unused variable `ptype'.
+	(propagate_binfo_offsets): Delete unused variables `t' and `basetype'.
+	(layout_basetypes): Delete unused variable `binfo'.
+	(array_type_nelts_total): Delete unused variable `index_type'.
+	* cp-tree.h: Add many decls.
+	* cp-typeck.c (comp_array_types): Add missing argument decl
+	for `strict'.
+	(build_compound_expr): Delete unused variable `tmp'.
+	(convert_for_initialization): Delete unused label `converted'.
+ 
+	Wed Sep 16 12:51:10 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-decl.c (init_decl_processing): Enable code to add sin and cos
+	as built-in functions.
+
+	* cp-decl.c (duplicate_decls): Enable code to preserve the DECL_UID
+	of olddecl.
+
+	* cp-search.c (lookup_nested_fields): Make sure we're climbing along
+	a chain of nested types, and nothing else.
+
+	Tue Sep 15 17:38:34 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-search.c (lookup_nested_fields): New function.
+	* cp-tree.h: Declare it.
+	* cp-decl.c (lookup_name): Call it if there's no class-local
+	definition.  (It could be nested.)
+	* cp-lex.c (do_identifier): Call lookup_nested_field() if necessary.
+
+	Tue Sep 15 12:37:16 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	Mon Aug 24 14:58:02 1992  Chip Salzenberg  (chip at animal)
+
+	* cp-typeck.c (build_conditional_expr): Determine constness
+	and volatility with TREE_... tests instead of TYPE_... tests.
+
+	Mon Sep 14 18:00:35 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-decl.c (grokdeclarator): Remove redundant (and broken)
+	test for multiple destructors in a class.
+
+	Fri Jul 31 19:09:10 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-cvt.c (convert_to_integer): Push truncation inside COND_EXPR.
+
+ 	Mon Sep 14 17:52:45 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-class.c (finish_struct): Always write all structure types,
+	even if they're defined in a "#pragma interface" header file.
+	Otherwise, XCOFF debugging info is messed up.
+
+	Mon Sep 14 17:39:32 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-class.c (finish_struct):  ``Actually, I don't understand
+	this code.  What is it supposed to do?''  --Niklas Hallqvist
+
+	Mon Sep 14 17:27:23 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-decl.c (finish_decl):  Don't dump core if a decl is anonymous.
+	A decl is at the global binding level if DECL_CONTEXT is null.
+	(grokdeclarator):  Don't globalize a type if its first mention
+	is in a parameter.  It's okay to initialize a function in a
+	non-global scope.
+
+	Tue Sep 15 12:15:26 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-typeck.c (c_expand_return): Emit a warning when they try to
+	return the address of a local variable.
+
+	* cp-decl.c (finish_method): Make sure it's indeed nested before
+	checking for the qualified name.
+
+	Mon Sep 14 18:59:25 1992  Mike Stump  (mrs@cygnus.com)
+
+	Wed Sep  2 11:04:24 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-decl.c (init_decl_processing): Add sin and cos as built-in
+	functions.  Fix type of __builtin_constant_p.
+
+	* cp-lex.c (readescape): For \x, don't include leading 0's in count.
+
+	* cp-typeck.c (build_unary_op): For ADDR_EXPR, just set
+	TREE_CONSTANT if staticp, but don't clear TREE_CONSTANT.
+
+	Mon Sep 14 18:54:41 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-parse.y (permanent_obstack):  Move to top of file.
+
+	Mon Sep 14 18:50:19 1992  Mike Stump  (mrs@cygnus.com)
+
+	Mon Sep 14 16:39:10 1992  Chip Salzenberg  (chip@tct.com)
+
+	[ Changes propagated from diffs to c-* in 920911 snapshot. ]
+
+	* cp-decl.c (duplicate_decls): Set DECL_INLINE in newdecl so it
+	is copied into olddecl.  Don't set DECL_EXTERNAL in olddecl.
+	Preserve DECL_UID and DECL_FRIEND_P of olddecl.
+
+ 	* cp-typeck.c (build_binary_op_nodefault): Don't assume that a
+	target integer fits in a HOST_WIDE_INT when checking shift widths.
+
+	Mon Sep 14 18:15:42 1992  Mike Stump  (mrs@cygnus.com)
+
+	Mon Aug 24 14:32:03 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-parse.y (reserved_declspecs): Warn if storage class occurs here.
+	(declmods): Warn if storage class is not first.
+
+	Mon Sep 14 16:59:53 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-method.c (fndecl_as_string): Don't output an extra space when
+	printing the return type of a function.
+
+	Mon Sep 14 16:01:53 1992  Mike Stump  (mrs@cygnus.com)
+
+	Fri Jun 12 18:07:00 1992  Niklas Hallqvist  (niklas@appli.se)
+
+	* cp-parse.y (structsp, named_class_head_sans_basetype):  Call
+	overload_template_name in the case of template specializations so
+	that something like:
+
+	template<class T> struct C { C(); };
+	struct C<int> { C(); };
+
+	works.
+
+	Mon Sep 14 15:51:22 1992  Mike Stump  (mrs@cygnus.com)
+
+	Fri Apr 10 13:20:56 1992  Niklas Hallqvist  (niklas@appli.se)
+
+	* cp-spew.c (spew_debug): exported this flag for use in cp-decl.c
+	(template_type_seen_before_scope): new global containing contextual
+	information for the parser, making the compiler grok nested types in
+	template classes.
+	(shift_tokens): Guard bcopy calls against moves of zero size.
+	(yylex): Handle nested types in template classes.
+
+	* cp-parse.y (scoped_typename): Handle nested types in template
+	classes.
+	(template_type): Likewise.
+	(base_class.1): Likewise.
+	(member_init): Likewise.
+	(scoped_baseclass): New rule for handling of nested types in
+	template classes.
+
+	* cp-decl.c (xref_defn_tag): Conditionalized debug printout on
+	spew_debug (defined in cp-spew.c).
+	(binding_levels_sane): void function returned value.
+
+	Mon Sep 14 15:41:28 1992  Mike Stump  (mrs@cygnus.com)
+
+	Mon Sep 14 17:26:18 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-parse.y (unary_expr), cp-call.c (build_scoped_method_call):
+	NEVER use `maybe_adjust' feature in destructors.  It's unsafe.
+
+	Mon Sep 14 15:12:34 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-decl.c (finish_method): Complain when a qualifier is used as
+	part of a member declaration.
+
+	Mon Sep 14 11:47:30 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl2.c (groktypefield):  Revert Wed Aug 19 14:47:08 1992
+	change as it breaks template constructor declarations.  Gez, this
+	code is horribly complex, and the comments are wrong.  Note,
+	template constructor definitions are broken in the same way, as
+	declarations were with this patch in.
+
+	Fri Sep 11 14:09:01 1992  Mike Stump  (mrs@cygnus.com)
+
+	Fri Sep 11 10:34:45 PDT 1992  Ron Guilmette  (rfg at netcom.com)
+
+	* cp-decl.c (duplicate_decls):  For file-scope redefinitions, note
+	that the variable was previously *defined* at some specific (earlier)
+	point.
+
+	Fri Sep 11 13:49:55 1992  Mike Stump  (mrs@cygnus.com)
+
+	Tue Sep  8 21:39:35 PDT 1992  Ron Guilmette  (rfg at netcom.com)
+
+	* cp-decl2.c (finish_file):  Don't pass `1's as the `functionbody'
+	flag to `poplevel' when getting ready to finishing up the per-
+	compilation-unit constructors and destructors.
+
+	Fri Sep 11 13:28:02 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (grokdeclarator):  Upgrade local externs with
+	initializations to be errors, instead of warnings.
+
+	Fri Sep 11 13:03:52 1992  Mike Stump  (mrs@cygnus.com)
+
+	Thu Sep 10 09:40:56 PDT 1992  Ron Guilmette  (rfg at netcom.com)
+
+	* cp-decl.c (grokdeclarator):  Given an error if *either* a `static'
+	or an `extern' specifier is attached to a defining declaration of a
+	static data member.
+
+	Wed Sep  9 19:46:43 1992  Mike Stump  (mrs@cygnus.com)
+
+	* c++: Makes sure echo -nostdinc does not eat the -nostdinc.
+
+	Tue Sep  8 13:42:35 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-typeck.c (common_type, case FUNCTION_TYPE): An empty argument
+	list is represented as a void_type_node; make sure we check for
+	that, and not just an empty TYPE_ARG_TYPES list on either side.
+
+	Tue Sep  8 02:31:05 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-tree.c (layout_basetypes, make_binfo):  Added support for
+	debugging information about virtual base class pointers.
+
+	Mon Sep  7 15:34:58 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-decl2.c (temp_name_p): Deleted function, never used anywhere.
+
+	Sun Sep  6 23:09:29 1992  John F Carr  (jfc at Athena.MIT.EDU)
+
+	* cp-typeck.c (convert_arguments): Ignore arguments which are
+	ERROR_MARK_NODE to avoid crashes trying to reference fields which
+	are not present.
+
+	Mon Sep  7 12:34:09 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-decl.c (clear_anon_tags): Do assignment of B after we've seen
+	if we're to work on an anonymous aggregate.  No need to make the
+	assignment for nearly every aggr we ever declare. 
+
+	Sun Sep  6 17:51:47 1992  Mike Stump  (mrs@cygnus.com)
+
+	Sun Sep  6 13:12:16 1992  John Carr (jfc@Athena.MIT.EDU)
+
+	* cp-decl.c (pushdecl, finish_decl, store_return_init,
+	finish_function), cp-decl2.c (constructor_name, finish_file),
+	cp-except.c (cplus_expand_reraise), cp-init.c (emit_base_init,
+	expand_aggr_init_1), cp-typeck.c (build_modify_expr,
+	c_expand_asm_operands, c_expand_return): Include rtl.h and eliminate
+	unneeded casts.
+
+	* cp-decl2.c (grokbitfield): Use NULL_TREE instead of NULL.
+
+	* cp-decl2.c (finish_file): Don't try and not use stdio.h.
+
+	* cp-except.c (cplus_expand_reraise): emit_move_insn takes 2
+	arguments, not three.
+
+	Sat Sep  5 12:04:06 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-decl.c (finish_function): Undo change of Mon Aug 17 16:28:48
+	1992; it resulted in lots of unnecessary and incorrect warnings.
+
+	* cp-lex.c (do_identifier): For nested classes, check if a variable
+	being sought is actually in the scope of an enclosing class.  If it
+	is, and the variable's non-static, bail.
+
+	* cp-decl.c (grok_enum_decls):  Tighten up some code that was pretty
+	twisty.
+
+	* cp-class.c (start_struct): Delete; it was #if 0'd out anyway (C++
+	doesn't need it), and is an old hold-over from c-decl.c.
+
+	* cp-class.c (minus_one_node): Delete, it's not used.
+	(init_class_processing): Delete init of minus_one_node.
+
+	* cp-spew.c (yylex): Check return of resolve_scope_to_name to
+	be NULL_TREE.
+	(frob_identifier): Likewise.
+	(hack_more_ids): Likewise.
+
+	* cp-cvt.c (convert_to_real): Use REAL_VALUE_ATOF to make 0.
+
+	Fri Sep  4 19:23:17 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (grok_ctor_properties):  When looking for copy
+	constructors, ignore the first argument since it is the in$chrg
+	parameter for the object to copy from.
+
+	Fri Sep  4 14:35:31 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-cvt.c (build_up_reference):  Prevent the compiler from dumping
+	core on semantic errors.
+
+Thu Sep 17 17:28:13 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (initializer_constant_valid_p): Warn about address
+	arithmetic destined for a type that's too narrow.
+	New argument ENDTYPE.
+
+	* limitx.h: Don't include-next if _LIBC_LIMITS_H_ defined.
+
+Thu Sep 17 20:45:16 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* cexp.y (parse_escape): Diagnose '\x' with no digits.
+	Diagnose integer overflow when parsing \x escapes.
+
+Thu Sep 17 11:52:53 1992  Michael Meissner  (meissner@osf.org)
+
+	* gcc.c (SIGNED_CHAR_SPEC): Use #if rather than ?: in default defn.
+
+Thu Sep 17 14:53:51 1992  Tim Moore  (moore@defmacro.cs.utah.edu)
+
+	* pa.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Fix double integer
+	argument alignment.
+	(SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_SIZE): Define.
+	* pa-hpux.h, pa-ghpux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
+	WCHAR_SIZE): Define for hpux.
+	* x-pa, t-pa : New files.
+	* configure (hppa cases): add definitions for xmake_file and
+	tmake_file.
+
+Wed Sep 16 22:22:15 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.c (print_operand): Don't abort if error: might have been a
+	user asm.
+
+	* i386.md (addsi3,ashlsi3): Handle the case where the stack
+	pointer appears as an index reg.
+
+Wed Sep 16 21:22:23 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cse.c (fold_rtx): For SUBREG, actually test subreg_lowpart_p in the
+	code to handle narrowing subregs.  And exclude binary ops like DIV
+	where truncating the args is not valid.
+
+	* libgcc2.c (__CTOR_LIST__, __DTOR_LIST__): Moved to separate member.
+	* Makefile.in (LIB2FUNCS): Added _ctors.
+
+Wed Sep 16 23:28:41 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* cexp.y (parse_number): Warn about '9' in octal constants.
+	Commonize overflow detection for various radices.
+
+Wed Sep 16 19:33:37 1992  Torbjorn Granlund  (tege@mole.gnu.ai.mit.edu)
+
+	* pa.md (casesi): Use emit_jump_insn to emit casesi0 pattern.
+	(xorsi3): Remove `r' from output template.
+	(movstrsi recognizer): Add `+' to operand 0 & 1 constraints.
+
+Wed Sep 16 14:53:51 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Set Meissner version # to 25.
+
+	* mips.c (gen_int_relational): Eliminate all vestiages of
+	figuring out whether the comparison will always be true or false.
+	Let the optimizer figure it out.
+	(gen_conditional_branch): Ditto.
+	(function_epilogue): Print correct number of half-pic pointers
+	and references.
+	(prev_half_pic_refs): New static variable.
+	(prev_half_pic_ptrs): New static variable.
+
+Tue Sep 15 16:10:47 PDT 1992  Ron Guilmette  (rfg at netcom.com)
+
+	* toplev.c (rest_of_decl_compilation):  Call `dwarfout_file_scope_decl'
+	immediately for actual *definitions* of file-scope variables (and
+	file-scope typedefs too).
+
+Tue Sep 15 20:56:31 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* fixincludes (EXINIT): Clear it to avoid problems with bad values.
+	* fixinc.svr4 (EXINIT): Likewise.	
+
+	* print-tree.c (print_node): Don't print blank line for null
+	fields in a TREE_VEC.
+
+	* cccp.c (macroexpand): Don't output another error message if have
+	already output error message returned from macarg.
+
+	* c-decl.c (grokparms): Copy parm list if it isn't permanent,
+	instead of copying it if temporary allocation has been turned off.
+
+	* final.c (only_leaf_regs_used): Check for global_regs.
+
+	* c-parse.y (typespec): Don't warn if pedantic when typeof used.
+
+	* c-tree.h (lang_identifier): Add limbo_value field for out of
+	scope block level extern declarations.
+	(IDENTIFIER_LIMBO_VALUE): New define, to access that field.	
+	* c-decl.c (print_lang_identifier): Print value of limbo field.
+	(pushdecl): Check an extern decl against both previous global and
+	previous limbo declarations.  For global declarations, clear limbo
+	value field.  For block level extern declarations, set limbo field
+	if zero.
+	(grokdeclarator): If this is a block level extern, then allocate
+	it on the permanent obstack, not the temporary obstack.
+
+Tue Sep 15 15:42:24 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* tree.c (int_fits_type_p): Negative ints never fit unsigned
+	types, and unsigned ints with top-bit-set never fit signed types.
+	* c-lex.c (yylex): Integer constant is unsigned for purposes of
+	int_fits_type_p so that it compares huge constants properly.
+
+Tue Sep 15 14:44:51 1992  Michael Meissner  (meissner@osf.org)
+
+	* i386.md (string move, string compare): Always issue cld
+	instruction before doing a rep string move, so that we are
+	guaranteed that the bytes are moved/compared correctly.
+
+Tue Sep 15 00:09:06 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gstdarg.h: (va_arg): Cast ptr to void *, then to TYPE *.
+	* va-i960.h, va-m88k.h, va-mips.h, va-pa.h, va-pyr.h, va-sparc.h:
+	Likewise.
+
+	* rtl.c (ftell): Declaration deleted.
+
+Mon Sep 14 15:17:09 1992  Michael Meissner  (meissner@osf.org)
+
+	* configure (arg processing): Add --with-stabs switch.
+	(all mips configurations, except decrose): If --with-stabs, use
+	the configuration file that emits stabs as the debug debug
+	configuration, rather than the native MIPS ECOFF format.
+
+Mon Sep 14 13:28:29 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
+
+	* configure (option case statement): Index with `$next_arg' instead
+	of `next_arg'.  Clean up order and indentation for switches.
+	(several places): Remove space around assignment `='.
+	(usage printing): Don't use `-n' for echo (SysV lossage).
+	Print config.status with `tail +2'.
+
+Mon Sep 14 23:46:19 1992 Paul Eggert (eggert@twinsun.com)
+
+	* c-lex.c (yylex): Warn about integers so large that they are unsigned.
+
+	* cexp.y (parse_number): Diagnose integer constants that are too large.
+	Diagnose duplicate `l' and `u' suffixes.  Diagnose ` 0x ' and ` 0a '.
+	Warn about integer constants that are so large that they are unsigned.
+
+Mon Sep 14 10:26:34 1992  Charles Hannum  (mycroft@hal.gnu.ai.mit.edu)
+
+	* reload1.c (init_reload): Fix typo in last change.
+
+Mon Sep 14 01:17:58 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload1.c (init_reload): For reg+reg+const, try various regs.
+
+Sun Sep 13 01:08:06 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* cexp.y (exp): Detect signed integer overflow.
+	Replace `(unsigned)' with `(unsigned long)'.  When
+	evaluating << and >>, compute the correct answer without shifting
+	by more than HOST_BITS_PER_LONG, or by a negative quantity.
+	(integer_overflow, left_shift, right_shift): New functions.
+
+Sun Sep 13 02:00:52 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
+
+	* arm.md: Clean up indentation.
+
+	* pa.c (output_load_address): Removed.  Nothing uses it.
+	* pa.md (high:DI recognizer): Add return \"\".
+	* pa.md (sCC, bCC expanders): Remove constraints.
+	* pa.md (and-with-immediate optimizer): New pattern.
+	* pa.md (ior-with-immediate optimizer): New pattern.
+	* pa.c (consec_zeros_p, and_operand, ior_mask_p, ior_operand,
+	output_and, output_ior): New functions.
+	* pa.h (output_and, output_ior): Declare.
+	* pa.h (CONST_OK_FOR_LETTER_P): Add 'O' and 'P'.
+	* pa.c (compute_xdepi_operands_from_integer): New function.
+	Some code come from output_zdepi.
+	(output_zdepi): Removed.
+	(depi_cint_operand): New name for zdepi_operand.
+	* pa.md (adddi3): Extend to handle CONST_INT.
+	* pa.md (movstrsi): Change `!= 4' => `< 4' in test for alignment.
+	* pa.md (negsi2): Don't use @ for just one output template.
+	* pa.md (and-not patterns): Make them canonical.  Put operands in
+	the right order.
+	* pa.md (casesi): Rewrite.  Used to be buggy and slow.
+	* pa.md (several patterns): Make sure # of attribute alternatives
+	match # of constraint alternatives.
+	Return assembler output template instead of calling output_asm_insn.
+	Don't write to operands[n] for n >= max operand number in the
+	pattern, use xoperands instead.
+
+Sat Sep 12 15:06:57 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* regclass.c (record_reg_classes):
+	Ignore leading % when examining constraint.
+	Don't bypass usual cost computation when a pseudo "matches"
+	a non-pseudo in matching operands.
+
+	* c-lex.c (yylex): If integer value overflows so highword is negative, 
+	it needs unsigned long long.
+
+Fri Sep 11 21:09:53 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* sys-types.h (va_alist): Supply `int' as the type to define it as.
+
+Fri Sep 11 12:39:39 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.md	(non-[cf]branch define_delay): Use a single delay description
+	for the delay slots in "branch", "call", and "milli" insns.
+	(fbranch define_delay): fbranches have a single delay slot which
+	may be nullified when the branch is taken (regardless of direction
+	or distance to the target.)
+	(in_branch_delay attribute): Disallow fbranch insns explicitly. 
+	(floating point branches): Use "fbranch" attribute for these insns.
+	Update output template to properly handle nullification.
+
+Fri Sep 11 10:34:45 PDT 1992  Ron Guilmette  (rfg at netcom.com)
+
+	* c-decl.c (duplicate_decls):  For file-scope redefinitions,
+	error message distinguishes previous definitions from mere decls.
+
+Fri Sep 11 01:07:11 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-convert.c (convert_to_integer): Don't pass truncation thru lshift
+	if shift count >= width of narrower type.  Instead, just use 0.
+
+	* we32k.h (SIZE_TYPE): Defined.
+
+Fri Sep 11 00:03:45 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* c-decl.c (finish_struct): Don't assume that a target integer
+	fits in a HOST_WIDE_INT when checking bit-field widths.
+	* c-typeck.c (build_binary_op): Likewise, when checking shift widths.
+
+Thu Sep 10 22:23:10 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* optabs.c (expand_binop):
+	Convert op1 of shift libcall to word_mode.
+
+Thu Sep 10 18:14:36 1992  Tim Moore  (moore@defmacro.cs.utah.edu)
+
+	* final.c (shorten_branches): Do shorten branches with delay slots
+	if the number of delay slots is constant.
+	* genattrtab.c (write_const_num_delay_slots): New function;
+	creates const_num_delay_slots ().
+	(main): Call it.
+	* genattr.c (main): Write declaration for const_num_delay_slots ().
+
+Thu Sep 10 17:33:42 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.md (all move patterns): Do not allow memory to memory or
+	non-zero constant to memory moves to be generated, which causes
+	reload to generate the load/store using spilled registers, and
+	does not allow for efficient CSE or scheduling to be done.
+
+	* dec-gosf1.h, iris4g.h: New files.
+
+Thu Sep 10 12:46:17 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
+
+	* pa.md (casesi): Add `&' to constraint for clobber operand.
+
+	* optabs.c (expand_binop): Fix typo, `mode' => `methods'.
+
+Thu Sep 10 00:21:05 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* optabs.c (expand_binop): Delete #ifdef GPC; complex code now uncond.
+
+	* optabs.c (init_fixtab): Fix typo for fix_truncdfqi2.
+
+Wed Sep  9 13:25:53 PDT 1992  Ron Guilmette  (rfg at netcom.com)
+
+	* c-common.c (declare_function_name):  Allow for anonymous function.
+
+Wed Sep  9 15:56:09 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (mostlyclean): Delete xlimits.h.
+
+	* final.c (output_addr_const):
+	If 2nd arg of MINUS is negative integer, put it in parens.
+
+Wed Sep  9 10:10:30 1992  Michael Meissner  (meissner@osf.org)
+
+	* va-mips.h (va_arg): Handle structures larger than 8 bytes.
+	(all macros): Put __ in front of all macro arguments.
+
+Wed Sep  9 00:45:02 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* sol2-crt1.asm (.nope): Really store into environ.
+
+	* libgcc2.c (__gcc_bcmp): New function, in cond on L__gcc_bcmp.
+	* Makefile.in (LIB2FUNCS): Add L__gcc_bcmp.
+
+	* expr.c (expand_expr): Support IN_EXPR.
+
+Tue Sep  8 20:04:43 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* c-convert.c (convert_to_integer): When optimizing LSHIFT_EXPR	and
+	RSHIFT_EXPR, do compares at tree level.
+
+	* tree.c (build_index_type, build_index_2_type): Don't pass
+	HOST_WIDE_INT to routine expecting an int.  Don't pass negative
+	value even if hash code is INT_MIN.
+
+Tue Sep  8 17:35:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_type_fields): Handle nameless subrecords for Pascal.
+	(dbxout_type): Handle CHAR_TYPE, BOOLEAN_TYPE. FILE_TYPE, SET_TYPE.
+
+	* news.h (ASM_OUTPUT_OPCODE): Deleted.
+
+	* c-parse.y (stmt): In for stmt, put proper lineno before increment.
+	Don't call position_after_white_space.
+
+Tue Sep  8 06:31:17 1992  Michael Meissner  (meissner@osf.org)
+
+	* cp-typeck.c (constant_print_warning): Deleted.
+
+Tue Sep  8 05:26:19 1992  Mike Stump  (mrs@hal)
+
+	Tue Aug 18 23:56:16 1992  Ron Guilmette  (rfg at netcom.com)
+
+	* tree.h (BINFO_VPTR_FIELD):  Added to support debugging
+	information about virtual base class pointers.
+
+Mon Sep  7 19:39:45 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* c-typeck.c (constant_print_warning): Deleted.
+	* c-common.c: Moved here.
+
+Mon Sep  7 17:03:07 1992  Paul Eggert (eggert@twinsun.com)
+
+	* fold-const.c (fold): Check abs for constant integer overflow.
+
+Mon Sep  7 01:31:42 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-common.c (check_case_value): Call constant_expression_warning.
+
+	* cse.c (simplify_binary_operation): For DIV by 0, do nothing.
+
+	* c-decl.c (duplicate_decls): Set DECL_INLINE in newdecl
+	so it is copied into olddecl.
+
+Sun Sep  6 08:53:46 1992  Fred Fish  (fnf at fishpond)
+
+	* m68k.md (fsglmul pattern): If FSGLMUL_USE_S, opcode has .s, not .x.
+	* amix.h (FSGLMUL_USE_S): Defined.
+
+Sun Sep  6 17:42:33 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.md (indirect_jump): Annul the next instruction if the delay
+	slot could not be filled instead of emitting a nop.
+
+	* pa.c (output_function_prologue): Undo Aug. 13 change.
+	If profiling, then this function makes calls.  Reflect this in
+	CALLINFO.
+	(output_function_epilogue): If profiling, then be restore "rp" here.
+
+	* pa.md (use_milli_regs attribute): Deleted, not necessary anymore.
+	All references deleted.
+	* pa.c (use_milli_regs): Deleted.
+
+Sun Sep  6 17:11:00 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
+
+	* arm.h (MOVE_MAX): Define as 4.
+
+	* ns32k.c (hard_regno_mode_ok): Don't abort if unknown mode,
+	return 0 instead.  Declare argument MODE as `enum machine_mode'.
+
+	* i860.h (HARD_REGNO_MODE_OK): Allow BLKmode.
+
+Sun Sep  6 16:57:12 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (init_expr_once): Don't try HARD_REGNO_MODE_OK on VOIDmode
+	or BLKmode.
+
+Sun Sep  6 14:27:57 1992  Michael Meissner  (meissner@osf.org)
+
+	* cp-typeck.c (constant_expression_warning): New fn from c-typeck.c.
+
+Sun Sep  6 09:11:46 PDT 1992  Ron Guilmette  (rfg at netcom.com)
+
+	* c-decl.c (duplicate_decls): Don't set DECL_EXTERNAL in olddecl.
+	Preserve DECL_UID of olddecl.
+
+Sun Sep  6 03:37:21 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (cmpstrsi): Rewrite expander to handle operands correctly.
+
+Sat Sep  5 22:55:53 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): Make change missing from last modification
+	to splitting code.
+
+Sat Sep  5 19:21:03 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* stor-layout.c (layout_type): Caller must give size of FILE_TYPE.
+
+Sat Sep  5 16:34:50 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
+
+	* arm.c (before functions): Remove xmalloc decl.
+	(arm_asm_output_label): Cast value from xmalloc.
+
+	* arm.md (storehi): Use match_operand for operand 0.
+	Use gen_lowpart to change mode of operand 0.
+	(storeinthi): Use match_operand for operand 0.
+	Change output code to reassign operand 0.
+	(truncsihi2, truncsiqi2, trunchiqi2): Remove these patterns.
+
+Sat Sep  5 02:39:37 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* news.h (ASM_OUTPUT_OPCODE): Defined.
+
+Sat Sep  5 18:52:21 1992  Jukka Virtanen  (jtv@kampi.hut.fi)
+
+	* stor-layout.c (layout_type): Handle BOOLEAN_TYPE, CHAR_TYPE,
+	and FILE_TYPE for Pascal. 
+	(fixup_signed_type): New function.
+
+	* optabs.c (init_optabs): Use __gcc_bcmp, not real bcmp.
+	(expand_unop): Handle NEG for complex modes.
+	(expand_binop): Likewise.
+	(expand_complex_binop): New function.
+
+	* expr.c (emit_move_insn): When moving word by word,
+	mark the whole thing as a libcall block.
+	(group_insns): New function.
+	(expand_expr):
+	Implement COMPLEX_EXPR, REALPART_EXPR, IMAGPART_EXPR, CONJ_EXPR.
+
+	* print-tree.c (print_node): Handle BOOLEAN_TYPE and CHAR_TYPE.
+	* emit-rtl.c (gen_highpart): New function.
+
+Fri Sep  4 23:20:59 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* i860.md (mulsi3_big): Use low half of result.
+	Use offset 1 in subregs in actual fmlow insn.
+	(fmlow pattern): Split this into alternatives for big and little end.
+
+	* regclass.c (record_reg_class): For matching operands, handle
+	case where the earlier one is not a pseudo like the case
+	where the later one is not a pseudo.
+
+Fri Sep  4 17:24:11 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
+
+	* pa.c (output_move_double): Use %R to store at auto-incr/decr
+	addr.  Split incr and decr cases for store.
+
+Fri Sep  4 03:49:05 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (main): No program should return the error_count!
+	Return 2 if failure due to signal, 1 if just errors.
+	(execute): Increment signal_count.
+
+	* move-if-change: Undo previous change.
+
+	* c-decl.c (grokparms): Copy arg type list to savable obstack if nec.
+
+Fri Sep  4 19:40:32 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* c-typeck.c (constant_expression_warning): Now works;
+	it reports signed integer overflow in constant expressions,
+
+	* fold-const.c (left_shift_overflows, same_sign, overflow_sum_sign):
+	New macros.
+	(add_double, div_and_round_double, lshift_double, mul_double,
+	neg_double, const_binop, fold): Check for signed integer overflow.
+	Propagate overflow flags from operands to result.
+	(const_binop, fold_convert): Use pedwarn for overflow warnings.
+	Say `constant expression', not `constant folding', for user's sake.
+
+Thu Sep  3 22:28:41 1992  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	Complete 12th Cygnus<-->FSF merge.
+
+	Thu Sep  3 12:29:24 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	These changes are propagated from changes to c-*.c.
+
+	Mon Aug 17 16:28:48 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-decl.c (finish_function): Test only can_reach_end for the
+	warning about reaching the end of a non-void function.
+	(grokdeclarator): When promoting an argument, retain unsignedness
+	if traditional or if promoted type is not really getting wider.
+
+	* cp-parse.y (datadef): For empty declaration, use pedwarn.
+
+	Mon Aug 17 17:08:11 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-cvt.c (convert): When converting to variant of same type, fold.
+
+	Wed Aug 19 16:58:41 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-typeck.c (default_conversion): Convert enumeral types to
+	appropriate _signed_ type unless -traditional.
+
+	Tue Aug  4 13:11:36 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-cvt.c (convert): If main variants match, 
+	but the type is not identical, make a NOP_EXPR.
+
+	* cp-decl.c (warn_redundant_decls): Declared.
+	(duplicate_decls): Optionally warn about redundant declations.
+	(pushdecl): Never reuse global fcn decl in place of local extern;
+	just copy some info from it.
+	(init_decl_processing): __builtin_saveregs returns void *.
+	(store_parm_decls, finish_function, start_method, finish_method):
+	Compare TYPE_MAIN_VARIANT against void_type_node.
+
+	* cp-decl2.c (warn_redundant_decls): Defined.
+	(lang_decode_option): Decode -Wredundant-decls.
+
+	* cp-typeck.c (build_conditional_expr): Don't use type1 as
+	temporary variable; set result_type directly.
+
+	Tue Aug  4 12:04:17 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-tree.h (C_PROMOTING_INTEGER_TYPE_P):  Defined.
+	* cp-class.c (finish_struct):  Use it.
+	* cp-decl.c (duplicate_decls, grokdeclarator):  Ditto.
+	(grokparms, start_function):  Ditto.
+	* cp-typeck.c (self_promoting_args_p, default_conversion):  Ditto.
+	* cp-parse.y (primary): Set TREE_CONSTANT in the NOP_EXPR for an enum.
+
+	Tue Aug  4 09:17:32 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-decl.c (duplicate_decls, grokdeclarator, grokparms): 
+	Use TYPE_MAIN_VARIANT when comparing against specific types.
+	(build_enumerator): Use STRIP_TYPE_NOPS.
+	(start_function): Force main() to return "int", not just any
+	integral type.
+
+	* cp-typeck.c (self_promoting_args_p, default_conversion): 
+	Use TYPE_MAIN_VARIANT when comparing against specific types.
+	(unsigned_type, signed_type): If type is not known, return it
+	unchanged instead of returning its TYPE_MAIN_VARIANT.
+	(build_binary_op_nodefault): Use TYPE_MAIN_VARIANT when
+	comparing against specific types.  Also use STRIP_TYPE_NOPS.
+	Also copy error messages from equivalent code in c-typeck.c.
+
+	* cp-parse.y (primary): Wrap a NOP_EXPR around an enum value.
+
+	Wed Sep  2 18:06:47 1992  Mike Stump  (mrs@cygnus.com)
+
+	Wed Sep  2 17:33:59 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-decl.c (grokdeclarator):  Default friends to being PUBLIC.
+
+	Tue Sep  1 12:33:01 PDT 1992  Ron Guilmette  (rfg at netcom.com)
+
+	* cp-init.c (do_friends):  Always return `void_type_node'.
+
+	* cp-decl.c (grokparms): Call digest_init on default arguments for
+	formal parameters.
+
+	* cp-decl.c (xref_tag): The BINFO records describing individual
+	inheritances aren't shared in the lattice.
+
+	Tue Sep  1 12:27:17 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-call.c (convert_harshness, compute_conversion_costs):  The
+	READONLY flag for a const object could be down in the type of the
+	reference.
+
+	* cp-call.c (compute_conversion_costs):  Don't ignore the cost of
+	converting the first argument, if it is not a method.  Fixes Mon Aug
+	31 22:32:34 change.
+
+	Tue Sep  1 11:58:52 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-tree.h (THIS_NAME):  Use the name ``this'' instead of the more
+	cryptic name ``$t''.
+
+	Mon Aug 31 22:32:34 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-init.c (build_member_call):  When forming method calls that use
+	a qualified name, convert the instance pointer to the type implied
+	by the qualification.  Base::member_func(); converts this to be a
+	(Base *).
+
+	* cp-call.c (compute_conversion_costs):  Don't penalize conversion
+	of the instance pointer on method calls, as they could be pointers
+	to base classes.
+
+	Mon Aug 31 18:34:33 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-decl.c (start_function): When a friend function is being
+	defined, put it in (lexical) scope of the class in which it appears.
+
+	Mon Aug 31 09:57:27 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-typeck.c (build_modify_expr): For assignments to member
+	variables like "X::i", call resolve_offset_ref to get the lhs; all
+	the code and checking was in there, it just wasn't being used.
+
+	* cp-class.c (finish_struct_methods): Give the name of the class
+	in question when reporting that all its member functions are
+	private.
+
+	Sun Aug 30 08:34:03 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-decl2.c (setup_vtbl_ptr): Disable the code, until problems can
+	be worked around.
+
+	Sat Aug 29 10:34:10 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-init.c (emit_base_init): Undo Sat Jan 18 12:06:58 change by
+	tiemann that incorrectly makes -pedantic initialization of virtual
+	base classes 1 or more levels deep impossible.
+
+	Sat Aug 29 10:03:07 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-class.c (finish_struct): Allow extern "C" functions to be
+	friends.
+
+	Sat Aug 29 04:43:22 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-parse.y (used_extern_spec), cp-decl.c (start_decl,
+	start_function): Make sure extern in extern "C" (fndef | datadef)
+	applies to only one decl. Fixes problem introduced on Thu Aug 20
+	16:11:58.
+
+	Thu Aug 27 09:33:13 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Name operators properly when
+	complaining about trying to declare it as a method when not in a
+	class.
+
+	* cp-decl.c (grok_reference_init): Forbid volatile->const refs,
+	and vice-versa.  Also make the tests apply to all types, not just
+	aggregates.  (Now fully compliant with ANSI C++ June 5 1996 WP
+	section 8.4.3.5.)
+
+	* cp-decl.c (shadow_tag): Don't allow a function to be a member of
+	an anonymous union.
+
+	* cp-class.c (finish_struct): For a type that's nested within a
+	class, use the class value itself when checking a typedef that uses
+	that new nested type.
+
+	Wed Aug 26 20:24:07 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* cp-decl.c (decls_match): When converting from a
+	pseudo-METHOD_TYPE for a static member fn, handle the static
+	function being both in the new and old declarations.
+	(revert_static_member_fn): New function.
+
+	* cp-call.c (build_method_call): Put out proper line number for
+	error with the use of a private constructor.
+
+	* cp-decl.c (grokdeclarator): If a storage class is erroneously
+	specified for an operator, print the operator's name out properly in
+	the error message (e.g., print `+' instead of `__pl').
+
+	* cp-decl.c (grokdeclarator): Allow neither constructors nor
+	destructors to be declared const or volatile.
+
+	* cp-decl.c (grok_op_properties): New argument VIRTUALP.
+	Use it to disallow declaring new or delete as virtual.  Also
+	use coerce_new_type() and coerce_delete_type() to
+	sanity-check overloading of new and delete.
+	(grokfndecl): Give grok_op_properties if the decl is virtual.
+	(start_method): Likewise.
+
+	* cp-tree.c (lvalue_p, ADDR_EXPR case): Casts to references are
+	lvalues.
+
+Thu Sep  3 02:46:44 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* caller-save.c (setup_save_areas): Don't look at WORDS_BIG_ENDIAN.
+
+	* fixincludes: If we find a link pointing to ., make a similar
+	link to ., not a link to an absolute name.
+	(stdio.h): Change stdio.h to use stdarg.h to get va_list.
+
+	* cexp.y: Comment syntax fix.
+
+Thu Sep  3 01:48:16 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
+
+	* we32k.md (casesi): Use match_dup for second mention of operand 4.
+
+Wed Sep  2 06:58:32 1992  Michael Meissner  (meissner@osf.org)
+
+	* gcc.c (default_compilers): Add missing comma between strings, so
+	that traditional compilers can compile gcc.c.
+	(main): Don't pass strcpy or strlen a NULL pointer if some of the
+	spec strings in default_compilers are NULL.
+	(validate_all_switches): Don't dereference a NULL pointer if some of
+	the spec strings in defalut_compilers are NULL.
+
+	* gcc.c (main): Use new loop var J to avoid conflict with I.
+
+Wed Sep  2 19:09:02 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* caller-save.c (init_caller_save): If we were unable to
+	find a simple insn which meets all its constraints to save
+	and restore with a single insn in a mode, then set 
+	regno_save_mode to VOIDmode to insure that this mode is never
+	used to caller-save the	current register.
+
+Wed Sep  2 12:34:39 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* caller-save.c (insert_save_restore): Correct test for
+	determining whether multiple registers can be saved.
+
+	* sparc.md (SImode ldd peepholes): Add `f' to constraints.
+
+	* sparcv4.h (HANDLE_PRAGMA): Delete.
+	* sparc.c (handle_pragma_token): Delete.
+
+	* config/spc-sol2.h: Change the location of the Sun bundled C 
+	compiler in MD_STARTFILE_PREFIX (for backup defaults).
+
+Wed Sep  2 09:11:16 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.h (MOVE_MAX): Express in bytes not bits.
+
+	* m88k.c (output_ascii): Output known escape characters and don't
+	terminate the constant if an octal escape is used.
+
+Wed Sep  2 06:38:37 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (make_compound_operation, case ASHIFTRT): Add new
+	code to handle (ashiftrt (neg (ashift FOO C1) C2)) just like we
+	currently handle (ashiftrt (OP (ashiftrt FOO C1) C2) C2).
+
+Wed Sep  2 00:15:42 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (install): Add semicolon to make an empty command.
+
+	* reload.c (find_reloads): If have any earlyclobbers, don't let any
+	reloads overlap with them.  Make everything RELOAD_OTHER.
+
+	* move-if-change: Give status 1 if file is unchanged.
+
+	* Makefile.in (SYSTEM_HEADER_DIR): New variable.
+	(xlimits.h): New target, broken out from install-limits-h.
+	Look in SYSTEM_HEADER_DIR for system's limits.h.
+	(start.encap): Dep on xlimits.h.
+	(install-limits-h): Install xlimits.h already made.
+	* cross-make (SYSTEM_HEADER_DIR): Overridden.
+
+	* x-i386sco (X_CFLAGS): Deleted.
+	* x-i386sco4: New file, like old x-i386sco.
+	* configure (i386-*-sco3.2v4*): Use x-i386sco4.
+
+	* t-sol2 (gmon.o): Find gmon-sol2.c in config.
+
+	* c-typeck.c (process_init_constructor): Fix bugs in previous change.
+
+Tue Sep  1 23:51:19 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* gcc.c (default_compilers, ".C" and ".ii"): Pass `+e*' into cc1plus.
+	(process_command): Allow +e[012] to be passed down into cc1plus.
+	* cp-decl.c (lang_decode_option): The options `+e0' thru `+e2' will
+	be coming in prefixed as `-+e'.
+
+Tue Sep  1 20:09:29 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* print-tree.c (print_node): Avoid 1 << (HOST_BITS_PER_INT - 1),
+	which overflows.  Use unsigned % to compute HASH.
+
+Tue Sep  1 17:23:28 1992  Tim Moore  (moore@hal)
+
+	* pa.h (CPP_SPEC, TARGET_SWITCHES): new flags: -mnosnake,
+	-mpa-risc-1-0, -mpa-risc-1-1.
+	(ASM_DECLARE_FUNCTION_NAME): Emit argument descriptors for all
+	general registers if current_function_varargs.
+
+Tue Sep  1 11:27:08 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* sparc.c (handle_pragma_token): Only use if HANDLE_SYSV_PRAGMA
+	isn't defined.  (We'll be getting the fn from c-pragma.c, then.)
+
+Sat Aug 29 13:44:21 PDT 1992  Ron Guilmette  (rfg at netcom.com)
+
+	* tree.h (current_block):  Decl deleted.
+	(set_block):  Declared.
+	* stmt.c (expand_fixup):  Create a BLOCK node (via pushlevel/poplevel)
+	to represent an artificial scope containing all of the fixup code.
+	Also emit NOTE_INSN_BLOCK_BEG/NOTE_INSN_BLOCK_END for that block.
+	(fixup_gotos):  Declaration of NEWBLOCK deleted.
+	Call `set_block' to use the BLOCK made in expand_fixup.
+	Deleted code to insert NEWBLOCK into block hierarchy.
+	* c-decl.c, cp-decl.c (current_block):  Function deleted.
+	(set_block):  New function.
+	(poplevel): If using a previously created block,
+	don't insert it into the parent level.
+	* emit-rtl.c (emit_insns_after): Update last_insn if nec.
+
+Tue Sep  1 10:53:58 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
+
+	* pa.c (output_move_double): Use `ldo' for immediate adds (instead
+	of `addi' with bad syntax).
+	(output_load_address): Likewise.
+
+Tue Sep  1 02:41:13 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* tree.h (struct tree_type): Make `align' field an int.
+
+	* c-tree.h (IDENTIFIER_LIMBO_VALUE): New macro.
+	(struct lang_identifier): New field limbo_value.
+
+Mon Aug 31 12:59:22 PDT 1992  Ron Guilmette  (rfg at netcom.com)
+
+	* tree.c (make_node): Fix typo in July 6 change:
+	assignment of DECL_IN_SYSTEM_HEADER was inserted in bad place.
+
+Mon Aug 31 21:28:08 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sched.c (sched_analyze_2): Remove an explicit dependence between
+	an insn that uses CC0 and the immediately previous insn
+	(SCHED_GROUP_P represents the dependence).
+	(schedule_block): Only check sets_cc0_p on an insn.
+
+Mon Aug 31 15:32:13 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (struct compiler): spec field is now array of 4 elements.
+	(read_specs): Clear the entire new element of compilers.
+	(lookup_compiler): Copy all of spec array.  Check element 0 for @.
+	(main): Concatenate all elements of compiler spec.
+	(validate_all_switches): Validate from all elements of compiler spec.
+	(default_compilers): Split CPP commands into separate strings.
+
+Mon Aug 31 10:06:16 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* caller-save.c (restore_referenced_regs): When restoring a
+	referenced hard register, use CEIL instead of a truncating divide
+	to determine the maximum number of registers to restore.
+	(insert_save_restore): Document maxrestore parameter.
+	(CEIL): Define.
+
+Mon Aug 31 04:02:21 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fold-const.c (const_binop): Delete special case for mult by 3.
+
+	* toplev.c (lang_options): Add terminating zero.
+
+	* configure.bat: Remove version number from initial message.
+
+Sun Aug 30 17:22:11 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* cccp.c (do_pragma): In prev. change, really use U_CHAR *, not char *.
+
+	* aix386.h, i386gas.h, i386sun.h, i386v.h, i386v4.h, i386vgas.h,
+	seq386.h  (TARGET_DEFAULT,VALUE_REGNO,FUNCTION_VALUE_REGNO):
+	Move from here,
+	* unx386.h (TARGET_DEFAULT,VALUE_REGNO,FUNCTION_VALUE_REGNO):
+	To here.
+	(TARGET_DEFAULT): Make TARGET_IEEE_FP default on.
+	(VALUE_REGNO): Test for MODE_FLOAT instead of specific modes.
+	(VALUE_REGNO,FUNCTION_VALUE_REGNO): MODE_FLOAT return reg depends on
+	TARGET_FLOAT_RETURNS_IN_80387.
+
+	* i386.h (TARGET_FLOAT_RETURNS_IN_80387): New macro.
+	(TARGET_SWITCHES): Add "no-80387", "no-soft-float",
+	"fp-ret-in-387", and "no-fp-ret-in-387".
+	Change no* switches to no-*.
+	(CONDITIONAL_REGISTER_USAGE): Make 387 regs fixed if the 387 is not
+	used at all.
+	(REG_CLASS_FROM_LETTER): Constraint letters 'f', 't' and 'u' are
+	NO_REGS if the 387 is not used.
+	(TRAMPOLINE_TEMPLATE): Use GEN_INT to generate const_int rtx.
+
+	* x-i386v4: New file.
+	(CLIB): Get alloca from libucb.a.
+	* configure (i386-*-sysv4*): Use x-i386v4.
+
+Sun Aug 30 15:32:54 1992  Dennis Glatting  (dglattin at trirex.com)
+
+	* objc-actions.c (create_builtin_decl): Set TREE_STATIC.
+	Don't set DECL_EXTERNAL or TREE_PUBLIC.
+
+Sun Aug 30 03:08:48 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-parse.y (initlist): Handle ranges of array elements.
+	* c-typeck.c (process_init_constructor): Handle ranges.
+
+	* fixincludes: When link points to a dir $dirname outside $INPUT,
+	copy that dir into $LIB/root$dirname.  Translate the link itself
+	into a link to that new dir.  Make a file DONE in each treetop dir
+	so no treetop is scanned twice.  Improve progress messages.
+
+Sat Aug 29 22:41:49 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.h (ASM_FILE_START): Object file version number now 8.0.
+
+	* alpha.h (ADJUST_COST): New macro.
+	* alpha.c (alpha_adjust_cost): New function.
+	* alpha.md: Adjust function unit delays and more precisely
+	describe function units.
+	
+	* alpha.h (CONST_OK_FOR_LETTER_P): Add new letters `O' and `P'.
+	* alpha.c (print_operand, case 'P'): New case.
+	* alpha.md (ashldi3): Special-case shifts by 1, 2, and 3 bits to
+	use arithmetic instructions.
+	Add pattern for sign-extending shifts by 1, 2, and 3 bits.
+
+	* alpha.h (INITIALIZE_TRAMPOLINE): Use Pmode when appropriate.
+	(FUNCTION_MODE): Use Pmode.
+
+	* alpha.md (div/mod): Indicate that reg 27 is clobbered too.
+
+	* alpha.md (cmov): Add define_split for if_then_else/plus case.
+
+	* expr.c (emit_library_call): Pass correct number of args to
+	convert_to_mode.
+
+	* expr.c (emit_block_move): Eliminate unnecessary test against
+	HOST_BITS_PER_WIDE_INT.
+
+	* optabs.c (expand_{binop,unop}): Don't make invalid
+	paradoxical SUBREGs.
+
+	* genattrtab.c (RTL_HASH, attr_rtx): Avoid warnings by casting
+	pointers to HOST_WIDE_INT instead of int.
+
+
+Sat Aug 29 15:35:58 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* toplev.c (lang_options): New table.
+	(main): Recognize all language-dependent options of any language
+	and always treat them as language-specific and valid.
+
+	* c-decl.c (c_decode_option): -fnotraditional really undoes
+	-ftraditional.  Handle -fno-traditional also.
+
+Sat Aug 29 00:34:01 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reg-stack.c (record_reg_life): Mark an unused reg as such, even
+	if it appears in SET_SRC.
+
+Fri Aug 28 17:40:49 1992  John F Carr  (jfc at Athena.MIT.EDU)
+
+	* tree.c (chainon): Check for op2 being the last elt of the chain.
+
+Fri Aug 28 13:26:56 PDT 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* cccp.c (do_pragma): Use rindex, not strrchr.
+
+	* tree.h (BLOCK_END_NOTE):  Macro definition added.
+	(struct tree_block):  `end_note' field added.
+	* stmt.c (last_block_end_note):  New variable.
+	(remember_end_note):  New function.
+	(expand_end_bindings): Save NOTE_INSN_BLOCK_END in last_block_end_note.
+	* c-decl.c, cp-decl.c (poplevel):  Call `remember_end_note' for each
+	newly created BLOCK node.
+	* integrate.c (adjust_copied_decl_tree):  New function.
+	(save_for_inline_copying):  When making copies of NOTE_INSN_BLOCK_END
+	notes, stash a "forwarding" pointer in the original to point to the
+	copy.  Also, when all BLOCKs & insns for a function have been copied,
+	call `adjust_copied_decl_tree' to fixup the end_note pointers in the
+	copied BLOCKs.
+
+Fri Aug 28 13:25:59 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (do_pragma): In prev. change, use U_CHAR *, not char *.
+
+Fri Aug 28 09:11:56 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.h (ADJUST_COST): Add definition.
+
+Thu Aug 27 18:27:02 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* c-decl.c (init_decl_processing): Add sin and cos as built-in
+	functions.
+	* expr.c (expand_builtin): Likewise.
+
+	* expr.h (sin_optab,cos_optab): Declare optabs for sin and cos.
+	* optabs.c (sin_optab,cos_optab): Define them.
+	(init_optabs): Initialize them.
+
+	* tree.h (BUILT_IN_SIN,BUILT_IN_COS): New builtin codes.
+
+	* reg-stack.c (record_note_if_dead): Delete function.
+	(record_reg_life_pat): Rewrite to handle any sort of pattern.
+	(record_reg_life): Change interface to record_reg_life_pat.
+
+	(stack_reg_life_analysis): Don't assume that MODE_FLOAT values are
+	always returned in a float reg.
+
+	(subst_stack_regs_pat): Add support for sin and cos insns.
+
+	* i386.c (all gen_rtx (CONST_INT) references): Use GEN_INT to
+	generate const_int rtx.
+	(legitimize_pic_address): Pass NULL_RTX instead of "0" as pointer.
+
+	* i386.md (all patterns): Use GEN_INT instead of gen_rtx to get
+	const_ints.
+	Avoid double-negative "! NON_*" constructs for clarity.
+	Pass NULL_PTR as null parameter instead of 0.
+
+	(sqrtM2): Patterns are only valid if IEEE FP or -ffast-math.
+	(sinM2,cosM2): New patterns.
+	(zero_extract test): New pattern.
+	(movstrsi): Rewrite expander to handle operands correctly.
+
+Thu Aug 27 16:58:09 1992  Michael Meissner  (meissner@osf.org)
+
+	* genattrtab.c (MAX_DIGITS): New macro to gauge how much space we
+	need to reserve when printing integers.
+	(expand_delays): Use sizeof and MAX_DIGITS to properly size the
+	strings when calling attr_printf.
+	(expand_units): Ditto.
+	(encode_units_mask): Ditto.
+	(make_numeric_value): Ditto.
+	(oballoc): New macro, to allocate from the hash_obstack.
+	(convert_const_symbol_ref): Call oballoc instead of xmalloc.
+	(get_attr_value): Ditto.
+	(fill_attr): Ditto.
+	(make_length_attrs): Ditto.
+	(gen_attr): Ditto.
+	(gen_insn): Ditto.
+	(gen_delay): Ditto.
+	(gen_unit): Ditto.
+	(find_attr): Ditto.
+	(main): Ditto.
+
+Thu Aug 27 14:47:16 1992  Mike Stump  (mrs@mole.gnu.ai.mit.edu)
+
+	* cp-decl.c (curent_block, struct binding_level, poplevel): Copy
+	Tue Aug 25 16:29:47 and Wed Aug 26 01:56:30 changes in c-decl.c by
+	rms.
+
+Thu Aug 27 01:32:11 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* c-lex.c, cp-lex.c (readescape): DEL isn't printable.
+	* c-typeck.c (check_format): Likewise.
+
+Wed Aug 26 20:42:36 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-lex.c (readescape): For \x, don't include leading 0's in count.
+
+	* c-decl.c (init_decl_processing): Fix type of __builtin_constant_p.
+
+	* expr.c (emit_block_move): When trying movstrMM, cvt size to mode MM.
+
+	* c-parse.y (stmt): For computed goto, convert arg to void *.
+
+	* fold-const.c (fold): Do A op C1 ? A : C2 opt only for INTEGER_TYPEs.
+
+Wed Aug 26 20:19:56 1992  Mike Stump  (mrs@wombat.gnu.ai.mit.edu)
+
+	* cp-decl.c (insert_block, delete_block): New functions.
+	* cp-parse.y (primary, using compstmt): Call delete_block instead
+	of clearing TREE_USED.
+
+	11th Cygnus<-->FSF merge.
+
+	Wed Aug 26 12:02:41 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-decl.c (finish_function):  Don't core dump when a conversion is
+	ambiguous.
+
+	Tue Aug 25 16:32:42 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-init.c (build_new), cp-typeck.c (build_c_cast): Handle ``new
+	type ( ... )'' better.  Default constructors and better error
+	checking.
+
+	Tue Aug 25 01:21:48 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl2.c (finish_file):  Mark " @%$#@!" as being internal.
+
+	Mon Aug 24 16:40:15 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* cp-lex.c (check_newline): For `#pragma implementation', use
+	strcmp to check if it was done at the top level, rather than relying
+	on the pointers being the same.
+
+	Mon Aug 24 20:48:16 1992  Mike Stump  (mrs@cygnus.com)
+
+	Fri Aug 21 14:19:27 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* cp-decl2.c (grokclassfn): Mark the artificial `this' parameter as
+	"artificial".
+
+	Thu Aug 20 22:59:16 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-spew.c (arbitrate_lookup): Make sure the type name in an
+	argument list followed by &, or &) is seen as a type name, even when
+	there is an enumeration constant with the exact same name.
+
+	Thu Aug 20 21:58:30 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-search.c (get_first_matching_virtual): Don't core dump when a
+	declaration of a static member is seen with the same name as a base
+	class virtual function.
+
+	Thu Aug 20 21:20:31 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (finish_function): Don't core dump on parse errors.
+
+	Thu Aug 20 20:52:43 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-method.c (build_component_type_expr): Don't core dump on parse
+	errors.
+
+	Thu Aug 20 18:31:58 1992  Mike Stump  (mrs@cygnus.com)
+
+	Mon Aug 17 17:08:11 1992  Chip Salzenberg  (chip@tct.com)
+
+	Copy some changes from the C front-end:
+
+	* cp-type2.c (process_init_constructor): Warn about partly bracketed
+	initializers.
+	* cp-typeck.c (build_component_ref): Don't warn for compound and
+	conditional expressions when pedantic.  These are valid in ANSI C.
+
+	Thu Aug 20 16:11:58 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (start_decl), cp-parse.y (have_extern_spec): extern "C"
+	int i; is only a declaration, but a definition, make it so.
+
+	Thu Aug 20 14:46:39 1992  Mike Stump  (mrs@cygnus.com)
+
+	Thu Aug 20 02:36:39 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* cp-lex.c (cons_up_default_function): Use DECL_SOURCE_LINE = 0 for
+	compiler generated things, not DECL_IGNORED_P.
+
+	Thu Aug 20 13:13:45 1992  Mike Stump  (mrs@cygnus.com)
+
+	Wed Aug 19 13:09:45 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* cp-decl.c (grokdeclarator): Propagate some changes from the C
+	front-end to deal with variable sized arrays.
+
+	Wed Aug 19 16:55:43 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-cvt.c (convert_to_reference): Improve wording on error message.
+	* cp-method.c (type_as_string), cp-pt.c
+	(mangle_class_name_for_template), cp-xref.c (GNU_xref_decl): Delete
+	first argument to type_as_string as it is not needed anymore.
+
+	Wed Aug 19 15:29:02 1992  Mike Stump  (mrs@cygnus.com)
+
+	Wed Aug 19 13:09:45 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* cp-decl.c (kept_level_p): Update from C frontend.
+
+	Wed Aug 19 14:47:08 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl2.c (groktypefield): Old style conversion operators
+	are being desupported.  Conversion operators much have an
+	`operator' in front of them.
+
+	Wed Aug 19 01:57:04 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-call.c (ideal_candidate): Fix bug introduced on Jan 21
+	7:24:21.  Warn about ambiguous function calls with multiple
+	same cost conversions.
+
+	Wed Aug 19 00:08:18 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (grok_enum_decls):  Remove invalid error message.
+
+	Mon Aug 17 18:59:18 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-cvt.c (convert_to_reference, convert,
+	build_type_conversion_1, build_type_conversion), cp-init.c
+	(build_dynamic_new), cp-typeck.c (build_modify_expr_1,
+	convert_for_initialization): Always use constructor_name, and
+	never TYPE_IDENTIFIER (type) and similar things.
+	* cp-init.c (expand_aggr_init_1): Try TYPE_HAS_CONSTRUCTOR
+	before wasting time trying build_method_call.
+	* cp-xref.c: Don't include memory.h.
+
+	Mon Aug 17 15:10:21 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-init.c (expand_aggr_init_1): Check for ambiguous
+	conversion.  One through constructor and the other through a
+	user defined conversion operator.
+
+	Mon Aug 17 11:51:27 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-call.c (convert_harshness): When an argument is T, a T&
+	should be choosen over a const T& when selecting overloaded
+	functions.
+
+	Mon Aug 17 01:37:06 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-call.c (build_method_call): The second argument to
+	operator delete is sometimes magically deleted.
+	* cp-decl.c (init_decl_processing, grokfndecl): Global
+	operator delete never has two arguments.
+
+	Wed Aug  5 18:54:19 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-class.c (finish_struct), cp-tree.c (layout_basetypes):
+	Make sure VFIELD_BASEs are aligned.  This fixes a really
+	annoying problem that causes code that uses complex
+	inheritance hierarchies that have virtual bases to get a
+	segmentation fault.
+
+	Wed Aug  5 12:35:07 1992  Mike Stump  (mrs@cygnus.com)
+
+	Wed Aug  5 08:10:34 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* cp-tree.c (__eprintf): `line' is unsigned.
+	* cp-lex.c: Include stdlib.h and locale.h if needed.
+	* cp-typeck.c (mark_addressable): Use DECL_EXTERNAL not
+	TREE_EXTERNAL.
+
+	Wed Aug  5 03:20:07 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-class.c (finish_struct_methods): Check to make sure
+	operator delete is not overloaded.
+	* cp-decl.c (grokfndecl): Check to make sure operator delete
+	is declared properly.
+
+	Tue Aug  4 16:52:28 1992  Mike Stump  (mrs@cygnus.com)
+
+	Mon Aug  3 22:55:04 1992  Michael Meissner  (meissner@osf.org)
+
+	* cp-decl.c (grokdeclarator): Make sure const and volatile get
+	put on the type built when building reference types.
+	* cp-parse.y (attrib):  tree_cons takes three arguments, not
+	two.
+	* cp-tree.h:  Add hash_chainon, build_virtual_init,
+	build_vbase_delete, build_vbase_vtables_init.
+	* cp-typeck.c (build_modify_expr_1. build_modify_expr):
+	build_unary_op takes three arguments, not two.
+	
+	Tue Aug  4 16:07:57 1992  Mike Stump  (mrs@cygnus.com)
+
+	Sat Aug  1 16:52:20 1992  John Carr  (jfc@Athena.MIT.EDU)
+
+	* cp-decl.c ():  Make sure the base type of an ARRAY_TYPE is
+	layedout before using it.
+
+Wed Aug 26 17:04:45 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* tree.h (current_block): Declared.
+
+Wed Aug 26 15:42:11 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	Major rework to have caller-saves emit load/store double insns when
+	possible and to avoid useless resaving of registers restored for
+	source accesses only.
+	* caller-save.c (toplevel): All arrays are multi-dimensional to
+	hold information for multiple save/restore insns.  New variable
+	hard_regs_need_restore.
+	(choose_hard_reg_mode): New argument `nregs' indicating how many
+	hard registers are desired.  All callers changed.
+	(init_caller_save): Change initialization to handle multiple
+	register saves.  A call-used register can not be live across
+	if we can not find a single register mode to save it in.
+	(multiple register saves are optional)
+	(init_save_areas): Change initialization of regno_save_mem to
+	handle multiple register saves.
+	(setup_save_areas): Allocate space for consecutive hard registers
+	in aligned consecutive memory locations.   When allocating space
+	for consecutive hard registers, also initialize regno_save_mem
+	for each hard register stored as a single word.
+	(save_call_clobbered_regs): Initialize hard_regs_need_restore.
+	Set hard_regs_need_restore to hard_regs_saved after crossing
+	a call.  Also recompute n_regs_saved.  At the end of a basic block
+	we need only restore registers in hard_regs_need_restore.
+	(set_reg_live, clear_reg_live): Do the right thing for 
+	hard_regs_need_restore and hard_regs_saved.
+	(restore_referenced_regs): Just return if X is a clobber.
+	Test hard_regs_need_restore to determine when to restore a hard
+	register from the save area.
+	(insert_save_restore): Now returns the number of extra registers
+	saved/restored.  New argument `maxrestore' which constrains how
+	many hard registers should be restored.  All callers changed.
+	Do stores of consecutive registers with double store insns if
+	possible.  Else do them with single word insns. Likewise for
+	loads, except constrained by maxrestore.  Set hard_regs_saved
+	and hard_regs_need_restore appropriately to minimize useless
+	saves into the save area.  Test against	hard_regs_need_restore
+	when trying to restore multiple regs and similarly test against
+	hard_regs_saved when storing multiple regs. 
+
+
+Wed Aug 26 14:24:28 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (LINK_SPEC): Pass -shared, -non_shared on to linker.
+	* mips-bsd.h (LINK_SPEC): Ditto.
+	* mips-n5.h (LINK_SPEC): Ditto.
+	* mips-svr4.h (LINK_SPEC): Ditto.
+	* mips-sysv.h (LINK_SPEC): Ditto.
+	* iris.h (LINK_SPEC): Ditto.
+	* dec-osf1.h (LINK_SPEC): Ditto.
+
+	* dec-osf1.h (DECSTATION): Don't define, since decstatn.h which is
+	included defines it.
+	(OBJECT_FILE_COFF): Undefine, since the DEC OSF/1 ldfcn doesn't
+	look like the coff version.
+
+	* decstatn.h (LINK_SPEC): Don't define if already defined.
+
+Wed Aug 26 13:56:08 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* reorg.c:  Enhance to fill the last delay slot of a call with an
+	unconditional jump.
+	(fill_simple_delay_slots): Look for the case of a call/branch
+	first.  If this applies, record the jump as `last_delay_insn'.
+	Later, don't look for additional delay insns if the last one has
+	alreay been filled. 
+	(mark_target_live_regs): A sequence may end in an unconditional
+	branch.
+
+	* m88k.md (define_function_unit): Correct and simplify memory unit
+	specification. 
+
+Wed Aug 26 01:56:30 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (poplevel): Store into BLOCK iff it is non-null.
+
+Tue Aug 25 23:24:45 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sched.c: Add #ifdef INSN_SCHEDULING around variables only used
+	by schedule_insns.
+	(INSN_QUEUE_SIZE): Delete default definition.
+
+	* optabs.c, expr.c: Partially undo Mar 7 change.  Only call
+	emit_library_call with no_queue == 1 for const functions.
+
+	* sparc.c (SF_MODES): Allow SImode in fp registers.
+	(output_floatsisf2, output_floatsidf2, output_floatsitf2): Delete.
+	* sparc.h: Delete declarations of the above 3 functions.
+	* sparc.md (float*, fix*): Rewrite to match hardware; take/put
+	integer input/output from/to fp register instead of memory or
+	general register.  Delete 6 now obsolete combiner patterns.
+
+Tue Aug 25 16:40:15 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* cccp.c (do_pragma): Warn if `#pragma implementation "foo.h"' is
+	invoked	after "foo.h" has been included.
+
+Tue Aug 25 16:29:47 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* stmt.c (struct goto_fixup): New field context.
+	(fixup_cleanups): Function deleted.
+	(fixup_gotos): Put the fixup in a block, and put that block
+	into its proper place.  Use sequences, not reorder_insns.
+
+	* c-decl.c (current_block): New function.
+	(struct binding_level): New field this_block.
+	(poplevel): Use this_block if nonzero, rather than making new BLOCK.
+
+	* sched.c (INSN_QUEUE_SIZE): Add default definition.
+
+Tue Aug 25 15:19:26 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* sched.c (schedule_block): Add a virtual cycle counter CLOCK.
+	Pass CLOCK to schedule_insn.	    
+	Compute the tail in the scheduling loop, not before it.
+	Enable the stall code that advances the insn queue.  
+	Select the insn to schedule and block others with schedule_select.
+	(adjust_priority): Renamed from launch_link.
+	(schedule_insn): Renamed from launch_links.
+
+	* genattrtab.c (struct attr_desc): Add unsigned_p field.
+	(struct function_unit_op): Add issue_delay, conflict_exp, and
+	issue_exp fields.  Drop busyexp field.
+	(struct function_unit): Add needs_blockage_function,
+	needs_range_function, issue_delay, and max_blockage fields.  Drop
+	costexp, and busy delay fields.
+	(enum operator): Add POS_MINUS_OP, EQ_OP, MIN_OP, RANGE_OP.
+	(operate_exp): Implement new ops.
+	(make_internal_attr): Set unsigned_p based on the value of SPECIAL.
+	(write_attr_get): Function is unsigned when unsigned_p is true.
+	(write_attr_valueq): Write hex value of large constants in a comment.
+	(simplify_by_exploding): Check for EXP having no EQ_ATTR expressions
+	and for all values as the default.
+	(find_and_mark_used_attributes): Add TERMS and NTERMS parameters.
+	(max_attr_value): Allow IF_THEN_ELSE.
+	(simplify_knowing, write_complex_function, extend_range): New
+	functions.
+	(gen_unit): Use local variables to name the fields.  Change the
+	meaning of busy-delay to issue-delay.
+	(expand_units): Compute issue_exp.  Write attributes for computing
+	`<name>_unit_blockage' and `<name>_unit_blockage_range' functions.
+	Compute max_blockage, and the needs_*_function values.
+	(write_function_unit_info): Write blockage function and conflict cost
+	functions using write_complex_function.  Write new function_unit_desc
+	fields.
+	* genattr.c (extend_range, init_range): New functions.
+	(write_units): Add blockage_function, blockage_range_function,
+	max_blockage and max_issue_delay fields to struct function_unit_desc.
+	Drop max_busy_cost field.  Write #defines for min/max blockage,
+	issue delay, multiplicity, and simultaneity and for BLOCKAGE_BITS
+	and INSN_QUEUE_SIZE.
+	(main): Compute the new values.
+	* sched.c (insn_queue): Use INSN_QUEUE_SIZE.
+	* rtl.def (define_function_unit): Update documentation.
+
+	* sched.c (insn_units, insn_blockage, insn_tick, unit_last_insn,
+	unit_tick, unit_n_insns): New variables.
+	(schedule_insns): Allocate and initialize insn_tick, insn_units, and
+	insn_blockage.
+	(insn_unit, blockage_range, clear_units, prepare_unit, schedule_unit,
+	actual_hazard_this_instance, actual_hazard, potential_hazard,
+	schedule_select): New functions.
+	(schedule_block): Add dependencies to force insns to remain in order
+	at the end of a block rather than relying on having the scheduler
+	issue them in priority order. 
+
+	* sched.c (insn_cost): Add LINK and USED parameters.  All callers
+	changed.  Supply an ADJUST_COST interface.
+	(insn_cost): Make a dependence from a USE insn free.
+	(priority): Clear the link cost adjustment bits.
+	* rtl.h (LINK_COST_ZERO, LINK_COST_FREE): New macros.
+
+	* genattrtab.c (expand_units): Use the normalized values of the
+	unit's CONDEXP and BUSYEXP.
+
+	* a29k.md (define_function_unit): Change meaning to ISSUE-DELAY.
+	* i960.md (define_function_unit): Change meaning to ISSUE-DELAY.
+	* m88k.md (type attribute, movdi movdf insns): Add loadd.
+	(unit attribute): Delete.
+	(function units): Correct simultaneity values.  Break out
+	independent units.  Add conflict matrix for the 88100 load double.
+	* mips.md (define_function_unit): Change meaning to ISSUE-DELAY.
+	* pa.md (define_function_unit): Change meaning to ISSUE-DELAY.
+	* sparc.md (define_function_unit): Change meaning to ISSUE-DELAY.
+	Merge FP_MUL, FP_DIV, and FP_SQRT into one function unit.
+
+	* jump.c (delete_computation): Derived from delete_jump.
+	(delete_jump): Use delete_computation.
+
+Tue Aug 25 13:42:19 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* final.c (final_scan_insn): If 2 consec line notes have same line num,
+	can omit one.
+
+Tue Aug 25 13:38:19 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Set Meissner version # to 24.
+	(ASM_FINAL_SPEC): Use %U to get the last file name created with
+	%u, rather than %u.
+	(ARG_POINTER_REGNUM): Use the hardwired register $0 as the
+	argument pointer, instead of the frame pointer, to allow the frame
+	pointer to be the same as the stack pointer after the initial
+	stack allocations.  This is to allow GCC generated code to be
+	linked against MIPS shared libraries.  The linker rearranges the
+	code, and needs to have a frame pointer, if used, to be the same
+	as the stack.  The argument pointer is always eliminated in favor
+	of the stack pointer or frame pointer.
+	(FRAME_GROWS_DOWNWARD): Don't define this any more.
+	(STARTING_FRAME_OFFSET): Locals start after the stack area to pass
+	arguments to called functions.
+	(STACK_DYNAMIC_OFFSET): If function is a leaf function, but calls
+	__builtin_alloca, assume a default argument area, so the MIPS
+	linker doesn't think a second frame pointer is created.
+	(INITIAL_FRAME_POINTER_OFFSET): Don't define, since we use
+	elimination instead.
+	(ELIMINABLE_REGS): Define to eliminate both the stack pointer and
+	frame pointer, since they are now separate.
+	(CAN_ELIMINATE): Ditto.
+	(INITIAL_ELIMINATION_OFFSET): Ditto.
+	(ELIGIBLE_FOR_EPILOGUE_DELAY): Don't allow variables based off of
+	the argument pointer, in addition to frame and stack pointers.
+	(MUST_SAVE_REGISTER): Add in GP_REG_FIRST to 31, in case we ever
+	change the base of the gp registers.
+	(MIPS_STACK_ALIGN): Use ~7, instead of 0xfffffff8.
+
+	* mips.c (number_functions_processed): Delete variable, nobody
+	uses it anymore.
+	(mips_debugger_offset): Add support for the frame pointer being
+	the same as the stack pointer, instead of being the same as the
+	argument pointer.  Abort if the address is not based on any of the
+	stack, frame, or argument pointers.
+	(print_operand_address): Add checks for the arg pointer not being
+	eliminated.
+	(function_prologue): Ditto.
+	(mips_expand_prologue): Ditto.
+	(function_epilogue): Ditto.
+	(mips_expand_epilogue): Ditto.
+	(function_epilogue): Strip leading '*' if it exists from
+	current_function_name when printing statistics.  Delete increment
+	of number_functions_processed.
+	(compute_frame_size): Don't base extra_size on the macro
+	STARTING_FRAME_OFFSET.  If function is a leaf function, but calls
+	__builtin_alloca, allocate an arg area, so that the MIPS linker
+	will not complain about creating a second frame pointer.  Move the
+	argument save area beneath local variables.
+
+	* decrose.h (ASM_FINAL_SPEC): Use %U to get the last file name
+	created with %u, rather than %u.
+
+	* gcc.c (do_spec_1): Add %U to return the last name generated with
+	%u.  This is for use with mips-tfile, to find the generated object
+	file.
+
+
+Mon Aug 24 18:09:34 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_unary_op): For ADDR_EXPR, just set TREE_CONSTANT
+	if staticp, but don't clear TREE_CONSTANT.
+
+Mon Aug 24 13:52:13 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* gcc.c (process_command): Don't set verbose_flag if they make a
+	typo (e.g., `-v-E'); only when it's exactly "-v".
+
+Mon Aug 24 06:49:16 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (subst): When moving operation inside IF_THEN_ELSE,
+	make a new rtx instead of using SUBST due to sharing.
+
+	* combine.c (simplify_comparison): Correct test for sign extension
+	when trying to widen comparison.
+
+Sun Aug 23 18:58:33 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fold-const.c (fold): Avoid the normal STRIP_NOPS on arg of NOP_EXPR.
+
+Sun Aug 23 15:32:03 PDT 1992  Ron Guilmette  (rfg at netcom.com)
+
+	* stmt.c (expand_end_bindings):  Generation of NOTE_INSN_BLOCK_END
+	moved down so that it occurs after call to `expand_cleanups'.
+
+Sun Aug 23 16:24:32 1992  Michael Meissner  (meissner@osf.org)
+
+	* decrose.h (CPP_SPEC): Don't define strcmp as __builtin_strcmp in
+	the case neither -fbuiltin nor -fno-builtin were defined.
+	* i386rose.h (CPP_SPEC): Ditto.
+
+Sun Aug 23 02:03:41 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* libgcc2.c (__builtin_new): Cast the result of malloc.
+
+	* toplev.c: Fix typo in prev change.
+
+	* c-decl.c (insert_block, delete_block): New functions.
+	* c-parse.y (primary, using compstmt): Call delete_block
+	instead of clearing TREE_USED.
+	* expr.c (expand_expr): For BIND_EXPR, call insert_block on the block.
+	
+Sat Aug 22 14:12:02 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure: Use absolute pathname in value of INSTALL.
+
+Sat Aug 22 06:42:39 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* emit-rtl.c (insn_emit_once): Provide a zero constant for CC modes.
+
+Fri Aug 21 18:33:30 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* reorg.c (fill_simple_delay_slots): Always try to fill empty
+	delay slots with insns from beyond the delay insn, even if
+	optimize_skip was attempted.
+	(fill_simple_delay_slots): When filling with insns from after the
+	delay insn, make sure to always account for the sets and
+	references in the delay insn.
+
+Fri Aug 21 16:47:06 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* sparc.c (print_operand): Use output_operand_error for unknown code.
+
+	* c-typeck.c (build_conditional_expr): Use TREE_READONLY and
+	TREE_THIS_VOLATILE, not TYPE_...
+
+Fri Aug 21 14:02:20 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reload.c (find_dummy_reload): Restore original RTX instead of
+	passed IN rtx.
+
+Fri Aug 21 07:53:12 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* optabs.c (expand_binop): If, e.g., mulqi3 doesn't exist, try
+	mulqihi3.
+
+	* rs6000.h (FUNCTION_ARG): Don't make an EXPR_LIST if making a libcall.
+
+	* combine.c (subst): Move up test for too many restarts.
+	If we restart, clear OP0_MODE since we don't know it.
+
+Fri Aug 21 02:11:43 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* emit-rtl.c (emit_insns_after): New function.
+
+Fri Aug 21 01:53:04 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.md (call_value+1): For non-dynamic calls, use the "call"
+	attribute, set length to 1, and fix output template to work
+	properly with delay slots.
+
+	* pa.md (address and use_call_clobbered attributes): Deleted,
+	these attributes are useless.  All references deleted.
+	(call define delay): Use "in_branch_delay" as the condition since
+	"call" delay slots and unconditional "branch" delay slots allow the
+	same type of insns. 
+	(in_call_delay conditional): Deleted.
+	(branch define delay): Do not define an annul-if-true delay slot.
+	It is useless for an unconditional branch.
+	(all delay branch conditionals): Make sure "call", "dyncall", "multi",
+	and "milli" insns are explicitly disallowed in delay slots.
+
+	* pa.c (output_mul_insn): Delete nop after branch in template,
+	conditionally emit a nop if the delay slot was not filled. (via %#)
+
+	* pa.c (output_function_prologue): Handle profiling in a function
+	without a frame pointer.
+
+Thu Aug 20 16:16:40 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* va-m88k.h (__INT_VARARGS_H): Define this to avoid trouble on DG/UX.
+
+Thu Aug 20 11:07:26 1992  Michael Meissner  (meissner@osf.org)
+
+	* final.c: Move include of stdio.h before output.h.
+
+Thu Aug 20 01:08:55 1992  Pat Rankin  (rankin at eql.caltech.edu)
+
+	Support for bootstrapping cpp & cc1 with VAX C under VMS.
+
+	* xm-vax-vms.h (USE_C_ALLOCA,NO_STAB_H): Define for VAXC.
+	(bcopy,bzero,bcmp,index,rindex): Define as ANSI/SYSV counterparts.
+	(QSORT_WORKAROUND, qsort): New macros, for avoiding buggy
+	qsort in VAXCRTL library.
+	(check_for_full_enumeration_handling,...): Use macros to shorten
+	several external names which are longer than 31 characters to
+	avoid warnings about truncation.
+	(unlink): Remove redundant definition.
+	* vax.c (not_qsort): New function.
+	* cccp.c (toplevel: create_definition): Move forward declaration
+	past the definition of struct macrodef.
+	(strncat): New function.
+	(bcopy, bzero, bcmp): Remove #if VMS code--always use inline C loops.
+	* genrecog.c, reload1.c: Compare enums (preds. codes, mem_mode)
+	explicitly to 0 in conditionals to work-around a VAXC bug that
+	disallows enum as arguments to && and || operators.
+	* getpwd.c (getpwd): Add alternative defn for VMS.
+	* toplev.c (environ): Make declaration conditional.
+	(main: -g debugging setup): Get rid of \ in #if condition.
+	* make-cccp.com,make-cc1.com (CC,CFLAGS,LIBS): Add commented command
+	variants for bootstrapping gcc-cpp and gcc-cc1 with VAXC.
+	* make-cccp.com (alloca): Build alloca.obj from alloca.c if LIBS needs it.
+
+	Not yet installed:
+
+	* machmode.h (FILE_TYPE): For VMS, make sure FILE_TYPE is not
+	defined as a macro, so that VAXC's <stdio.h> won't break tree.h.
+	* genemit.c (gen_exp): #if VAXC, output a newline in front of
+	gen_rtx calls, to prevent excessively long lines in insn-emit.c.
+
+Thu Aug 20 11:32:18 1992  Michael Tiemann  (tiemann@mole.gnu.ai.mit.edu)
+
+	* cp-tree.h: Fix incorrect comment about "$this" needing to
+	be lexicographically less than any other identifier.
+
+Thu Aug 20 05:37:00 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* a29k.md (load_multiple): Operand 2 should be a MATCH_OPERAND.
+	(store_multiple_{,no_}bug): Likewise.
+
+ 	* reorg.c (mark_set_resources): Fix two bugs in last change.
+
+	* expr.c (init_expr_once): Set direct_load and direct_store if SOME
+	hard register can be loaded or stored; not just if the first one
+	we pick can be.
+
+Thu Aug 20 01:40:43 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* combine.c, emit-rtl.c, final.c, gcc.c, genattrtab.c, mips-tfile.c:
+	Put include of stdio.h after GCC header files
+	(for i860-stardent-sysv4).
+	* tree.c: Likewise.
+
+	* fixincludes (stdio.h): Rename va_list to __va_list__ to coexist
+	with gvarargs.h.
+
+Wed Aug 19 21:06:49 1992  Jim Wilson  (wilson@cygnus.com)
+
+	* cccp.c (finclude): Increment indepth before calling
+	trigraph_pcp, so that warning uses the correct file name.
+
+Wed Aug 19 07:07:41 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (force_to_mode): Add missing test of and_optab.
+
+	* genconfig.c (have_cmove_flag): New variable.
+	(walk_insn_part): Add new parm NON_PC_SET_SRC; all callers change.
+	Look for IF_THEN_ELSE in a SET_SRC that isn't setting PC and
+	set have_cmove_flag if so.
+	(main): Define HAVE_conditional_move if have_cmove_flag is non-zero.
+	* combine.c (subst, case AND): Only make IF_THEN_ELSE if conditional
+	moves exist.
+
+	* cse.c (find_comparison_args): Look for comparison operations
+	if the second arg is 0 in any mode.
+	(record_jump_cond): Don't make classes equivalent for floating-point
+	equality comparison.
+
+	* local-alloc.c (alloc_qty_for_scratch, block_alloc): Provide
+	alternate code in some cases when REGISTER_CONSTRAINTS is not
+	defined.
+	(requires_inout_p): Only used when REGISTER_CONSTRAINTS is defined.
+
+	* reorg.c (mark_set_resources): Add new parm IN_DEST; add callers
+	changed.
+	Rework to scan an entire insn to look for auto-inc operations.
+
+	* unroll.c (copy_loop_body): Add missing declaration of EXIT_LABEL
+	parameter.
+
+	* function.c (instantiate_decl): New function.
+	(instantiate_decls{,_1}): Call it.
+
+	* combine.c (simplify_comparison): Add a few more cases where we can
+	do the comparison in a wider mode.
+
+	* combine.c (distribute_notes, REG_EQUAL): Don't put back a note
+	with a non-constant expression since it may no longer be valid.
+
+Tue Aug 18 23:07:33 1992  Mike Stump  (mrs@cygnus.com)
+
+	* expr.c (expand_expr): The first expansion of a TARGET_EXPR
+	is marked by DECL_RTL (slot) being filled in AND TREE_OPERAND
+	(exp, 1) being wiped-out with a NULL_TREE, not just the
+	DECL_RTL (slot) being filled in.
+
+Tue Aug 18 00:07:23 1992  Dennis P. Glatting  (dglattin@trirex.com)
+
+	* objc-actions.c
+	(build_selector_translation_table): NULL-terminate the
+	selector list.  Mark _OBJC_SELECTOR_REFERENCES_decl as static,
+	not extern.
+
+Tue Aug 18 21:38:46 1992  Mike Stump  (mrs@hal)
+
+	* xcoffout.c (assign_type_number):  Skip decls with no name.
+
+	* expr.c (expand_expr): When expanding TARGET_EXPRs, make sure
+	that they are only expanded once, after the first expansion,
+	the rtl can be used without further expansions.
+
+Tue Aug 18 12:58:33 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* x-i386sco (X_CFLAGS): Defined.
+
+	* stmt.c (expand_return): Call emit_queue in ignore-the-value case.
+	(expand_end_bindings): Check DECL_IN_SYSTEM_HEADER for unused warnings.
+
+	* combine.c (simplify_comparison):
+	Rearrange conditional in SUBREG case.
+
+Tue Aug 18 06:49:43 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* cccp.c (HOST_WIDE_INT): Copy definition from machmode.h.
+    
+	* c-typeck.c (parser_build_binary_op): Replace the assignment of CLASS.
+
+	* configure (Makefile edits): Make the edits independent.
+	* Makefile.in (sed marker): Use the order {target, host, cross-make}.
+
+Tue Aug 18 00:15:12 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (parser_build_binary_op):
+	For Z<Y<Z warning, test class of CODE; don't use TREE_CODE (result).
+
+	* cccp.c (pcfinclude): Use HOST_WIDE_INT for rounding a pointer.
+
+Mon Aug 17 14:57:18 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (digest_init): Test TREE_TYPE (inside_init) is
+	nonzero before testing anything else about it.
+
+	* i860.md (mulsi3): Use emit_insn on results of gen fcns.
+	Return with DONE.
+
+Mon Aug 17 11:50:23 1992  Mark Eichin  (eichin@cygnus.com)
+
+	* cccp.c (do_include): If search_start is NULL, complain that
+	we had nowhere to look.
+
+Mon Aug 17 14:53:46 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* function.c (assign_parms):  When copy arg passed by invisible
+	reference to pseudo reg, don't use nominal_mode.
+
+	* i960.c (i960_address_cost): Don't abort for invalid addresses.
+
+Mon Aug 17 14:29:33 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (digest_init):
+	Use TYPE_MAIN_VARIANT comparing type of inside_init.
+
+Mon Aug 17 10:32:08 1992  Michael Meissner  (meissner@osf.org)
+
+	* genattrtab.c (simplfy_with_current_value): Return 'exp' to
+	caller instead of random value.
+	(convert_set_attr_alternative): Delete unused variable newexp.
+	(simplify_cond): Delete unused variable spacer.
+	(make_alternative_compare): Delete unused variable alternative.
+	(optimize_attr): Delete unused variable nextie.
+	(main): Delete unused variable av.
+	(simplify_by_alternatives): #if 0, since the only caller is also
+	#ifdef'ed away.
+	(copy_rtx_unchanging): #if 0 variables that are only used inside
+	of other code under #if 0.
+
+Mon Aug 17 07:37:41 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* a29kunix.h (LINK_SPEC): Add %s for default.ld.
+	(LINK_LIBGCC_SPECIAL): No longer needed.
+	(ASM_FILE_STARY): Add shared data section.
+	(SHARED_SECTION_ASM_OP): New macro.
+	(OVERRIDE_OPTIONS): If -fshared-data, add -fno-common.
+
+	* alpha.c (alpha_function_needs_gp): New variable.
+	(output_prolog): Set it.
+	Write label after LDGP if function has recursive call and needs GP.
+	(current_function_operand, divmod_operator, alpha_gp_dead_after):
+	New functions.
+	(print_operand, case 'E', 'F'): New cases.
+	(alpha_need_gp): Just test for type of LDSYM, not CALL_INSN.
+	* alpha.h (GO_IF_LEGITIMATE_ADDRESS): Allow a SYMBOL_REF for
+	the current function as a valid address.
+	* alpha.md (divXi3, udivXi3, modXi3, umodXi3): New patterns.
+	(cmov): Add pattern for addq/cmov for signed divide by power of 2.
+	(call): Omit GP restore if it is dead.
+	Add patterns for recursive calls.
+	(branch): Change type of everything but calls to IBR.
+	(unaligned_storehi): Fix numbering of operands.
+	* xm-alpha.h (malloc, realloc, sbrk): Declare as void * if __STDC__.
+
+	* libgcc2.c (builtin_new): Remove declaration of malloc.
+
+	* expmed.c (expand_mult): Bound second synth_mult cost by cost of
+	algorithm from first call.
+
+	* expmed.c (expand_divmod): When doing logical operations, the size
+	of COMPUTE_MODE should be used, not MODE.
+
+	* combine.c (struct undo, struct undo_int): Replace non-portable
+	usage with some unions.
+	(SUBST, SUBST_INT, undo_all, gen_rtx_combine): Make consistent
+	with new definitions.
+
+	* fold-const.c (fold): Move conversion back outside of COND_EXPR
+	if moving it inside didn't help anything.
+
+	* fold-const.c (div_and_round_double): Change some more ints
+	to HOST_WIDE_INTs.
+
+	* jump.c (jump_optimize): Allow SUBREG in many places where REG
+	is allowed.
+
+	* expr.c (expand_expr, case COMPONENT_REF): Don't actually do
+	extraction from memory if we want address.
+
+	* expr.c (emit_block_move): Fix problems in last change.
+
+Mon Aug 17 03:37:10 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* collect2.c (is_ctor_dtor): Don't collect cfront init fcns.
+
+	* Makefile.in (GCC_FOR_TARGET): Put -B./ here.
+	(GCC_CFLAGS): Not here.
+
+Sun Aug 16 10:38:10 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
+
+	* ns32k.c (print_operand_address): Fix typo.
+
+Sat Aug 15 20:23:39 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (PTR_INT_TYPE): Don't define this.
+	(pcfinclude): Use int, not PTR_INT_TYPE.
+
+Sat Aug 15 11:10:07 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (ASM_FINAL_SPEC): For output of as when -c is not used, use
+	%u rather than %g so each object filename will be unique.
+	* decrose.h (ASM_FINAL_SPEC): Ditto.
+
+	* x-decrose (CLIB, X_CFLAGS): Don't link in libbsd.a, instead use
+	-Dvfork=fork on the command line.
+	* x-encrose (CLIB, X_CFLAGS): Ditto.
+	* x-i386rose (CLIB, X_CFLAGS): Ditto.
+
+Sat Aug 15 06:36:15 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cccp.c: Remove declaration of malloc and realloc.
+
+	* combine.c (get_last_value): Don't go past a CODE_LABEL when
+	searching for a value.
+
+	* expr.c (convert_move): Copy SUBREG to REG in one more case.
+
+	* expr.c (do_jump*): Always do comparison in object's signedness
+	now that combine can remove extraneous sign extends.
+
+Sat Aug 15 00:52:08 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes (ansi_compat.h): Replace this with an empty file.
+
+	* gcc.c (process_command): In second loop over all switches,
+	don't increment I for switches that don't have separate arguments.
+
+	* cccp.c: Don't ever include stddef.h.
+	(append_include_chain): Avoid using size_t.
+	(initialize_builtins): Output defn of __WCHAR_TYPE__ just once.
+
+	* ns32k.md (movstrsi1): Renamed from movstrsi.
+	(movstrsi): New define_expand.
+
+Fri Aug 14 18:51:57 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sched.c (attach_deaths_insn): Don't call attach_deaths for CLOBBERs.
+
+Fri Aug 14 18:47:22 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* genattr.c (write_units): Write #defines for the number of
+	function units, the min/max ready cost and min/max busy delay.
+	Add max_busy_cost field to struct function_unit_desc.
+
+	* genattrtab.c (simplify_by_exploding, find_and_mark_used_attributes,
+	unmark_used_attributes, add_values_to_cover, increment_current_value, 
+	test_for_current_value, simplify_with_current_value,
+	simplify_with_current_value_aux): New functions.
+	(struct function_unit): Add max_busy_cost, {min,max}_busy_delay.
+	(expand_units): Use simplify_by_exploding to simplify the
+	function_units_used attribute.  Compute the ready cost attributes
+	as a COND in numeric order.
+	(gen_unit): Compute {min,max}_ready_cost and {min,max}_busy_delay.
+	(write_function_unit_info): Determine if there is only one busy
+	delay value by comparing the minimum and maximum busy delay.
+	Write the initializer for function_units in numeric order.
+	Write out the maximum busy delay field.
+
+	* genattrtab.c (attr_desc): Add negative_ok field.
+	(find_attr, make_internal_attr): Initialize negative_ok.
+	(check_attr_value): Allow negative values for CONST_STRING for
+	numeric attributes with negative_ok.
+	(encode_units_mask): Change the encoding of the function_units_used
+	result.
+
+	* gcc.c (do_spec_1): Add %u.
+	(default_compilers): For output of as when -c is not used, use %u
+	rather than %g so each object filename will be unique.
+
+	* cexp.y, cccp.c, gcc.c (NULL_PTR): Use the same definition as
+	rtl.h and tree.h.
+
+Fri Aug 14 20:53:00 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* c-decl.c (grokdeclarator): Remove duplicate diagnostic for
+	initialized parameters; start_decl already does this.
+
+	* c-common.c (truthvalue_conversion): Optionally warn if an
+	unparenthesized assignment is used as a truth value.
+	* c-parse.y, objc-parse.y (expr_no_commas):
+	Mark assignments for warning.
+
+Fri Aug 14 14:45:39 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* vax.md (casesi1): Renamed from casesi.
+	(casesi): New trivial define_expand invokes casesi1.
+	(movstrhi, movstrhi1): Analogous change.
+
+Fri Aug 14 14:36:52 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* reload.c (find_reloads): Ignore `%' in the last operand after
+	warning.
+
+Fri Aug 14 07:41:34 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* genflags.c (num_operands): MATCH_PARALLEL also represents an operand.
+
+	* jump.c (invert_exp, redirect_exp): No longer static.
+	Clean up order of declarations at start of file and remove
+	extraneous decls.
+	* unroll.c (copy_loop_body): Don't assume (pc) can be on either
+	leg of jump; use invert_exp and redirect_exp instead.
+
+	* alpha.c, alpha.h, alpha.md, xm-alpha.h, x-alpha, va-alpha.h:
+	New files.
+	* config.sub: Add "alpha".
+	* configure: Likewise.
+	* Makefile.in (USER_H): Add va-alpha.h and sort names.
+	* gstdarg.h, gvarargs.h: Call va-alpha.h for Alpha.
+
+	* rtl.def (MATCH_PAR_DUP): New RTL code.
+	* genconfig.c (walk_insn_part): Treat it just like MATCH_OP_DUP.
+	* genemit.c (max_operand_1): Likewise.
+	(gen_exp): Treat it like MATCH_PARALLEL here.
+	* genextract.c (walk_rtx): Treat it like MATCH_DUP.
+	* genoutput (scan_operands): Likewise.
+	* genpeep.c (match_rtx): Likewise.
+	* genrecog.c (add_to_sequence): Likewise.
+	* a29k.md, rs6000.md ({load,store}_multiple): Use MATCH_PAR_DUP.
+
+	* cse.c (fold_rtx): Fix typo in two FLOAT_STORE_FLAG_VALUE tests.
+
+	* flow.c (life_analysis, propagate_block, dump_flow_info): Add more
+	missing casts to REGSET_ELT_TYPE.
+
+	* expr.c (movstr_optab): New variable.
+	(init_expr_once): Initialize it.
+	(emit_block_move): Rework code that generates movstrxx insns to
+	check predicates and use an optab.
+
+	* cse.c (simplify_unary_operation): Remove "else".
+
+Fri Aug 14 07:41:05 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
+
+	* c-decl.c, cse.c, fold-const.c, integrate.c, obstack.h, protoize.c,
+	reload1.c, stmt.c, tree.c, tree.h: Phicks speling erours.
+
+Fri Aug 14 03:21:17 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-convert.c (convert): When converting to variant of same type, fold.
+
+	* varasm.c (assemble_variable): Change error message for unknown size.
+
+	* c-parse.y (declmods): Don't warn for multiple storage classes
+	all at the beginning.  This is either good practice or an error.
+
+Thu Aug 13 19:43:13 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* c-decl.c (finish_decl): Avoid cascading messages for tentative
+	definitions with incomplete types.
+
+	* c-typeck.c (process_init_constructor): Warn about partly
+	bracketed initializers.
+
+Thu Aug 13 17:18:49 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (handle_directive): Output macro name if dump_names.
+
+	* m68k.h: Delete junk line inserted by mistake in last patch.
+
+Thu Aug 13 16:46:58 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* regclass.c (regclass): Don't scan the constraints if there aren't
+	any operands.  Don't look for a commutative constraint in the last
+	operand.
+
+	* function.c (contains): Return the number of insns.
+	(reposition_prologue_and_epilogue_notes): Count all the prologue and
+	epilogue insns.
+
+Thu Aug 13 15:20:24 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* m68k.h (TARGET_SWITCHES): Make -m68040 set 01007 not 01000.
+
+	* sparc.h (CPP_SPEC): For -mv8, define __sparc_v8__ not __sparcv8__.
+	* longlong.h (__sparclite__): Define umul_ppmm, udiv_qrnnd, and
+	count_leading_zeros for this sparc architecture variant.
+	(__sparc_v8__): Changed from __sparc8__.
+
+	* c-typeck.c (build_component_ref): Don't warn for compound and
+	conditional expressions when pedantic.  These are valid in ANSI C.
+
+Thu Aug 13 11:37:57 1992  Jeffrey A. Law  (law@mole.gnu.ai.mit.edu)
+
+	* pa.c (output_function_prologue): Restore "rp" after the call to
+	mcount.
+
+Thu Aug 13 06:54:50 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
+
+	* pa.md (movsf recognizer): Output `fcpy,sgl', not `fcpy'.
+	From Jeff Law:
+	* pa.md (zdepi in HImode): Move this pattern after the standard
+	movhi patterns.
+
+Wed Aug 12 11:45:15 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (ASM_FINAL_SPEC): For output of as when -c is not used,
+	use %g, rather than %b, because the file is going to be deleted
+	anyway (sync up with gcc.c Aug 4 changes).  Patch from Jim Meyering.
+
+	* decrose.h (ASM_FINAL_SPEC): Ditto.
+
+Wed Aug 12 03:23:30 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes (finding all .h files): Look for links as well as
+	ordinary files.
+
+	* m68k.h (TARGET_68040): Test for 01000 or 0400.
+	(TARGET_SWITCHES): Rename -m68040 to -m68020-40.
+	Rename -m68040-only to -m68040.
+
+	* hp2bsd.h (TARGET_DEFAULT): Make value 0.
+
+Tue Aug 11 04:23:35 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* fold-const.c (operand_equal_p): Make it clear that this function
+	tests for indistinguishable values, not for equality as computed by
+	`=='; the distinction is important for IEEE NaNs and -0.0.
+
+Tue Aug 11 13:10:47 1992  Fred Fish  (fnf at fishpond)
+
+	* config.sub (amigaunix/amix):  Use sysv4 as os.
+	* configure (m68k-*-amix*):  Change to m68k-cbm-sysv4* and
+	eliminate fixincludes and broken_install.
+
+Tue Aug 11 15:42:58 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* function.c (identify_blocks): Handle case where no block nodes
+	exist.  Use xmalloc not alloca for block_vector.
+	(reorder_blocks): New argument top_block.  Handle case where no
+	block nodes exist.  Always clear BLOCK_SUBBLOCKS (block) when
+	adding it to the block tree.
+	(all_blocks): Handle case where vector is zero. Store current
+	block at offset 0 in vector, not n_blocks.  Don't count current
+	block twice in n_blocks.
+	* function.h (identify_blocks): Declare.
+	(rtx, tree): Move undefs to the very end.
+	* loop.c (loop_optimize): Delete uses of loop_number_first_block,
+	loop_number_last_block, loop_number_block_level.  Correct call of
+	find_loop_tree_blocks.  Add call to unroll_block_trees.
+	* loop.h (loop_number_first_block, loop_number_last_block,
+	loop_number_block_level): Delete declarations.
+	* stmt.c: Likewise.
+	(find_loop_tree_blocks): Completely rewritten to use
+	identify_blocks.
+	(unroll_block_trees): Completely rewritten to use reorder blocks.
+	* unroll.c (unroll_loop): Delete call to unroll_block_trees.
+
+	* unroll.c (copy_loop_body): Only copy VTOP note if it will end up
+	before a loop exit test.
+
+Tue Aug 11 09:21:47 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump meissner version # to 23.
+	(CONST_CODES): Remove declaration for eliminate_constant_term
+	from inside of local {}'s.
+	(SELECT_SECTION_MODE): Remove declaration of variable
+	mips_section_threshold  from inside of local {}'s.
+	(SELECT_SECTION): Ditto.
+
+	* mips.c (toplevel): Remove declarations for all of the gen_xxx
+	functions used, since insn-flags.h contains them.
+
+	* mip.md (fixuns_truncdfsi2): Remove extern declarations.
+	(fixuns_truncsfsi2): Ditto.
+	(movsi_unaligned, movsi_ulw, movsi_usw): Ditto.
+	(seq, sne, sgt, sle, sgtu, sleu): Ditto.
+
+Tue Aug 11 02:51:25 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes (memory.h): Fix versions 1.2 and 1.3 as well as 1.4.
+
+	* configure: Improve err msg for unknown config.
+
+Tue Aug 11 04:02:51 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* fold-const.c (fold):  Don't fold (A op B ? A : C) if A is IEEE
+	floating point, because A might be -0.0 or NaN.
+
+	* c-typeck.c (parser_build_binary_op): Warn about expressions like
+	`1<=i<=N'.
+
+Mon Aug 10 22:11:50 1992  Michael Meissner  (meissner@osf.org)
+
+	* reload1.c (emit_reload_insns): Use gen_rtx to create a secondary
+	reload insn, not gen_reg_rtx.
+
+Mon Aug 10 06:23:23 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
+
+	* pa.md (Recognizer for zdepi_operand in HImode): New pattern.
+	(Recognizer for zdepi_operand in SImode): Call output_zdepi for
+	output.
+	(shift patterns and recognizers): Handle 32 bit ints and truncate
+	them for output.
+	* pa.c (output_zdepi): New function (contents from pa.md).
+	* pa.h (output_zdepi): Declare.
+
+Sun Aug  9 17:10:24 1992  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* configure.com: Rename vms to vax-vms; split long lines.
+	* make-l2.com: Assemble libgcc2 routines twice, preserving
+	lowercase function names the second time.
+
+Sun Aug  9 00:50:46 PDT 1992  Ron Guilmette  (rfg at netcom.com)
+
+	* final.c (final_scan_insn):  Call dwarfout_begin_block and
+	dwarfout_end_block even for -g1.
+
+Sun Aug  9 18:10:33 1992  Michael Meissner  (meissner@osf.org)
+
+	* genflags.c (gen_insn): Treat 'call_pop' and 'call_value_pop' like
+	'call' and 'call_insn'.
+
+	* i386.h (LEGITIMIZE_ADDRESS): Emit_move_insn only takes two
+	arguments, not three.
+
+Sat Aug  8 10:26:02 1992  Michael Meissner  (meissner@osf.org)
+
+	* cp-tree.h (hash_chainon): Provide declaration.
+	(build_virtual_init): Ditto.
+	(build_vbase_delete): Ditto.
+	(build_vbase_vtables_init): Ditto.
+
+	* genflags.c (insn_name_ptr): Define, so that we can link in
+	print-rtl.c for debugging.
+	(call_obstack, normal_obstack): New obstacks to remember call
+	insns, and normal insns, so that we can emit the prototypes later.
+	(max_id_len): New variable to record the maximum identifier
+	length.
+	(num_operands): New function to return the number MATCH_OPERAND's
+	and MATCH_OPERATOR's in an insn tree.
+	(gen_proto): New function to print out a prototype for an insn.
+	(gen_nonproto): New function to print out a declaration without a
+	prototype.
+	(gen_insn): Don't emit function declarations here, just save the
+	insn on either the call_obstack if it is call or call_value, or
+	normal_obstack otherwise.
+	(main): Initialize call_obstack, normal_obstack.  After all insns
+	are processed, emit function declarations with and without
+	prototypes, depending on whether NO_MD_PROTOTYPES, and
+	CALL_MD_PROTOTYPES are defined.
+
+	* rtl.h (PROTO): If not defined, define to either expand
+	prototypes or just expand to (), depending on whether or not, the
+	host compiler supports ANSI C.
+	(NULL_PTR): Define as void * if we have prototypes.
+	(all function declarations): Add prototypes for all functions
+	where it is feasible to do so, using the PROTO macro.
+	(force_reg): Add declaration.
+	(eliminate_constant_term): Ditto.
+	(output_constant_def): If tree.h has been included, add prototype.
+	(immed_real_const): Ditto.
+	(immed_real_const_1): Ditto.
+	(make_tree): Ditto.
+
+	* tree.h (PROTO): If not defined, define to either expand
+	prototypes or just expand to (), depending on whether or not, the
+	host compiler supports ANSI C.
+	(NULL_PTR): Define as void * if we have prototypes.
+	(all function declarations): Add prototypes for all functions
+	where it is feasible to do so, using the PROTO macro.  Do not
+	define prototypes for build_binary_op, or build_indirect_ref,
+	since GNU C and GNU G++ have different numbers of arguments.  Do
+	not define prototypes for make_tree, since it takes a rtx as the
+	argument, and rtl.h is included after tree.h.
+
+Sat Aug  8 07:36:19 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* cp-lex.c: Include stdlib.h and locale.h if needed.
+	(errno): Declare only if it isn't a macro.
+	* cp-tree.c (__eprintf): `line' is unsigned.
+	* cp-typeck.c (mark_addressable): Use DECL_EXTERNAL not TREE_EXTERNAL.
+
+Fri Aug  7 00:16:28 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (read_specs): Cast args of xmalloc and read to unsigned.
+
+	* final.c (final_scan_insn): Use ASM_OUTPUT_ADDR_DIFF_ELT
+	and ASM_OUTPUT_ADDR_VEC_ELT only if defined.
+
+Thu Aug  6 22:00:13 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sched.c (true_dependence): An unchanging read is guaranteed
+	independent of a store only if the store is not unchanging.
+	(anti_dependence): Added comment about unchanging reads.
+	(sched_analyze_2): Don't ignore unchanging reads, they may be
+	dependent on unchanging writes.
+
+ 	* sparc.md: Correct DEFINE_SPLITs added Jul 27.  They would
+	overwrite the input register if it was the same as the result reg.
+
+Thu Aug  6 16:25:48 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (ASM_FILE_START): If profiling IMPORT "_mcount" instead of 
+	"__gcc_mcount".
+
+	* These changes allow the PA to make use of the BSS subspace.  They
+	require you to use the HPUX assembler or a fixed version of pa-gas
+	(available soon on jaguar.cs.utah.edu).
+	* pa.h (TARGET_SWITCHES): New switch "no-bss" which forces gcc not
+	to make use of the bss subspace.  (For compatability with old buggy
+	versions of pa-gas.)
+	(ASM_FILE_START): Add $BSS$ subspace.
+	(BSS_SECTION_ASM_OP): New macro which tells the assembler to switch
+	to the bss subspace.
+	(EXTRA_SECTIONS): Define in_bss as an extra section.
+	(EXTRA_SECTION_FUNCTIONS): Define "bss_section" function to switch
+	into the bss subspace.
+	(ASM_OUTPUT_COMMON): If !TARGET_NO_BSS, then place commons into the
+	bss subspace.
+	(ASM_OUTPUT_LOCAL): Likewise.
+
+Thu Aug  6 13:04:16 1992  Tim Moore  (moore@defmacro.cs.utah.edu)
+
+	* gvarargs.h : Check hp800 symbol too for the hppa case.
+	* va-pa.h : Rewrite to be compatible with hpux.
+	* pa.c (hppa_builtin_saveregs): Rewrite.
+	(secondary_reload_class): Bug fix.
+	(arith32_operand): New function.
+
+Wed Aug  5 11:23:05 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.h (EXTRA_SECTIONS, svr3): Delete empty definitions for
+	CTORS_SECTION_FUNCTION and DTORS_SECTION_FUNCTION.  Add in_ctors
+	and in_dtors.
+
+Tue Aug  4 23:54:15 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (default_compilers): For output of as when -c is not used,
+	use %g, rather than %b, because the file is going to be deleted
+	anyway.
+
+Tue Aug  4 20:30:12 1992  Michael Meissner  (meissner@osf.org)
+
+	* cp-decl.c (grokdeclarator): Call build_type_variant to set const
+	and volatile flags, since build_reference_type does not take those
+	arguments.
+
+	* cp-parse.y  (attribute processing): Correctly call tree_cons with
+	three arguments, passing NULL_TREE for the chain argument.
+
+	* cp-tree.h (hash_chainon): Add declaration for this function.
+	(build_virtual_init): Ditto.
+	(build_vbase_delete): Ditto.
+	(build_vbase_vtables_init): Ditto.
+
+	* cp-typeck.c (build_modify_expr_1): Pass 0 as third argument to
+	build_unary_op.
+	(build_modify_expr): Ditto.
+
+Tue Aug  4 18:10:46 1992  Mike Stump  (mrs@wombat.gnu.ai.mit.edu)
+
+	* cp-tree.h, tree.h:  Moved definitions of TREE_VIA_* into tree.h for
+	consistency.
+
+Tue Aug  4 17:35:32 1992  Mike Stump  (mrs@albert.gnu.ai.mit.edu)
+
+	Complete 10th FSF <---> Cygnus merge.
+
+	Tue Aug  4 12:58:59 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (pushtag): Don't set DECL_IGNORED_P for binding
+	layer markers, use only DECL_SOURCE_LINE == 0, as otherwise,
+	it messes up dbxout.c.
+
+	Tue Aug  4 11:59:36 1992  Mike Stump  (mrs@cygnus.com)
+
+	Tue Aug  4 13:43:55 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-method.c (hack_identifier): Remove redundant call of
+	assemble_external.
+
+	Tue Aug  4 10:23:02 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-decl.c (pushdecl): Any kind of DECL should be good enough
+	at global scope, not just a TEMPLATE_DECL.
+
+	Sun Aug  2 21:12:55 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* cp-tree.c: change definition of __eprintf to match libgcc2.c and
+	assert.h
+
+	Fri Jul 31 16:53:26 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-tree (break_out_calls): Only make ony copy of a node on
+	's' and 'e' nodes.  Handle 'r' just like 's' and 'e' because
+	nodes of type 'r' can be of different sizes (the old code
+	would do the wrong thing for a COMPONENT_REF).
+
+	Thu Jul 30 11:46:14 1992  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* cp-init.c (emit_base_init): Set transparent basetypes (those w/o
+	ctors) as marked if we need to walk up the tree to find a ctor.
+
+	Wed Jul 29 03:25:51 1992  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): In SCOPE_REF case, sort out visibility
+	declarations from other declarations, since the compiler will
+	ultimately handle them differently.  This is a part of the solution
+	to p525.
+	(finish_method): Tentative (and probably wrong) fix for carrying
+	along inline methods delcared within a class that really belong to
+	nested classes of the class.  This may be more of the solution to
+	p525.
+
+	* cp-init.c (build_offset_ref): Use IDENTIFIER_TYPE_VALUE of CNAME
+	when CURRENT_CLASS_DECL is 0.
+
+	* cp-class.c (finish_struct): Don't give errors for TYPE_DECLs in a
+	struct that are really only meant for FIELD_DECLs.
+
+	Tue Jul 28 23:36:58 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (grok_op_properties):  Do not core dump on parse errors.
+
+	Tue Jul 28 22:43:12 1992  Mark Eichin  (eichin@cygnus.com)
+
+	* cp-pt.c (end_template_instantiation) YYDEBUG is now defined in
+	cp-parse.h -- so don't assume that it's -2 (since under byacc it is
+	-1 anyway.) iomanip.C compiles again.
+
+	Tue Jul 28 22:33:46 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-typeck.c (build_c_cast):  Allow cast to array type in
+	some situations to be more compatible with Cfront.
+
+	Tue Jul 28 22:05:14 1992  Mark Eichin  (eichin@cygnus.com)
+
+	* cp-parse.y (print_parse_statistics): don't reference TOKEN_LENGTH
+	or REDUCE_LENGTH unless GATHER_STATISTICS is set. (YYDEBUG alone is
+	not a sufficient condition.)
+
+	Tue Jul 28 19:18:30 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-tree.c (break_out_calls): Don't do anything special to
+	SAVE_EXPRs, as they cannot contain calls that would need
+	breaking out.  This fixes a problem introduced on Jul 15, by
+	Ron Guilmette.
+
+	Mon Jul 27 16:55:52 1992  Mike Stump  (mrs@cygnus.com)
+
+	* c++:  Fix errors introduced by rms.  Bullet-proof handling
+	of arguments with funny things in them such as newlines,
+	spaces, tabs, single quotes, double quotes, etc...
+
+	Mon Jul 27 15:03:23 1992  Ken Raeburn  (raeburn@cygnus.com)
+
+	* cp-init.c (build_vec_delete): Extract size of type even for
+	destructorless types, so value can be computed to pass to delete
+	operator.
+
+	* Bludgeon interface/implementation code into leaving templates
+	alone, until we've figured out how to handle their interaction
+	properly:
+	* cp-parse.y (template_instantiate_once): Temporarily set interface
+	flags to `unknown' while processing member templates.
+	* cp-decl.c (grokfndecl): Even if class vtable is getting written
+	out, regardless of interface setting of class and write_virtuals
+	flag, don't force virtual destructor of template class to be public.
+	* cp-tree.h (struct pending_inline): New field `interface'.
+	* cp-lex.c (do_pending_inlines): Restore interface flags from stored
+	values, rather than calling extract_interface_info.
+	(process_next_inline): Likewise, if more pending inlines exist; else
+	do call extract_interface_info.
+	(reinit_parse_for_method): Save away interface flags.
+	(cons_up_default_function): Ditto.
+	* cp-pt.c (instantiate_template): Set saved interface flag to
+	`unknown'.
+	(end_template_instantiation): Set CLASSTYPE_INTERFACE_UNKNOWN.
+
+	* cp-pt.c (instantiate_member_templates): Deleted some unused code.
+
+	* cp-decl.c (grokfndecl): Make class methods public if
+	`implementation' pragma is set.
+
+	* cp-pt.c (pending_templates): No longer exported.
+	(add_pending_template): Ditto.
+	* cp-parse.y (primary): Don't check it; always call
+	do_pending_templates.
+
+	Fri Jul 24 14:22:39 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (init_decl_processing, finish_function),
+	cp-method.c (build_decl_overload, build_opfncall), cp-init.c
+	(build_x_delete, build_delete, build_vec_delete):  Add support
+	for two argument delete to support ARM 12.5.  In some cases,
+	the argument is smaller than it should be.
+
+	Thu Jul 23 08:12:16 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-lex.c:  Update wide character handling from c-lex.c and make
+	the type of multicharacter constants be int per ANSI C++ WP.
+
+	* cp-decl.c (init_decl_processing, grokdeclarator), cp-lex.h,
+	gplus.gperf, cp-lex.c (init_lex), cp-decl2.c (groktypefield),
+	cp-method.c (build_overload_name): Add support for wchar_t as a
+	distinct type to conform to x3j16 working paper.
+	* cp-hash.h: Regenerated.
+
+	Wed Jul 22 17:41:08 1992  Mark Eichin  (eichin@cygnus.com)
+
+	* cp-parse.y (structsp): note_got_semicolon was called before
+	finish_struct (which always clears the got_semicolon bit.) However,
+	note_got_semicolon was only called if yychar==';', without checking
+	for YYEMPTY.
+
+	Tue Jul 21 22:59:32 1992  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* cp-typeck.c (mark_addressable): If we have a recursive call to an
+	otherwise inline function, clear TREE_EXTERNAL so the whole function
+	is written to the asm file.
+
+	Tue Jul 21 05:31:10 1992  Ken Raeburn  (raeburn@cygnus.com)
+
+	* cp-tree.h (start_type_method): Deleted unused declaration.
+
+	* cp-pt.c (tsubst): Fix propagation of qualifiers in several cases.
+
+	* cp-pt.c (tsubst, case FUNCTION_DECL): Look for matches that differ
+	only in return type.
+
+	* cp-pt.c (tsubst, case FUNCTION_DECL): Rewrite name of
+	type-conversion operators, in case the target type involves a
+	template parameter.
+
+	Mon Jul 20 03:35:44 1992  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* cp-class.c (add_virtual_function): Don't crash if
+	CURRENT_CLASS_TYPE is NULL_TREE.
+	* cp-decl2.c (grokfield): Ditto.
+
+Tue Aug  4 15:36:07 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (finish_decl): Don't do expand_decl_init for FUNCTION_DECL.
+
+	* c-typeck.c (build_conditional_expr): Merged const and volatile flags
+	of incoming types.
+
+Tue Aug  4 11:15:47 1992  Chip Salzenberg  (chip@tct.com)
+
+	* c-decl.c (finish_struct):  If bit field is of an unsigned
+	type that promotes to int, promote it unsigned if traditional
+	or if it is the same size as int.
+	(start_function):  Ditto for function return value.
+	* c-typeck.c (default_conversion):  Ditto -- fix bug that
+	promotes short to unsigned if sizeof(short) == sizeof(int).
+
+Tue Aug  4 15:12:51 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* svr3.h (USING_SVR3_H): Define.
+	* svr4.h (USING_SVR4_H): Define.
+	* aoutos.h (USING_AOUTOS_H): Define.
+	* m88k.h (EXTRA_SECTIONS): Base on the above defines.
+
+Tue Aug  4 14:22:44 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* dbxout.c: Include output.h.
+
+Tue Aug  4 00:21:06 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (install-common): Install protoize and related files
+	if they were compiled.
+	(install-proto): Target deleted.
+	(dbxout.o): Depend on output.h.
+
+Mon Aug  3 02:04:03 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (finish_function): Test only can_reach_end for the warning
+	about reaching the end of a non-void function.
+	(poplevel): If apparently nested inline function has
+	DECL_ABSTRACT_ORIGIN, don't output it; propagate TREE_ADDRESSABLE.
+	(pushdecl): When copying inline details into an extern decl,
+	copy DECL_RESULT, TREE_ASM_WRITTEN.  Set DECL_ABSTRACT_ORIGIN.
+
+	* c-parse.y (datadef): For empty declaration, use pedwarn.
+	* objc-parse.y (datadef, mydecl): Likewise.
+
+	* Makefile.in (install-cross-tools): Install nm from tooldir.
+
+	* varasm.c: Include real.h.
+	* sparcv4.h: Don't include real.h.
+
+	* flow.c (mark_used_regs): Do recurse in setting of global hard reg.
+	Do set reg_next_use for global hard reg.
+
+	* objc-parse.y (reserved_declspecs, declmods): Change as in c-parse.y.
+
+Mon Aug  3 03:24:17 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* c-parse.y (reserved_declspecs): Warn if storage class occurs here.
+	(declmods): Warn if storage class is not first.
+
+Sun Aug  2 21:44:34 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (gen_rtx, case REG): Don't use frame_pointer_rtx or
+	arg_pointer_rtx if reload is in progress.
+
+	* jump.c (jump_optimize): When replacing jumps with logical
+	expressions, use preserve_subexpressions_p.
+
+	* calls.c (expand_call): Use HOST_WIDE_INT instead of int when
+	comparing a pointer to an integer constant.
+	* flow.c (find_use_as_address): Likewise; also when returning int.
+	* integrate.c (expand_inline_function): Cast -1 to (HOST_WIDE_INT)
+	first.
+
+	* cse.c (canon_hash): Use HOST_WIDE_INT instead of int when casting
+	pointers to integers.
+	* print-tree.c (print_node): Likewise.
+	* tree.c (TYPE_HASH): Likewise.
+	* varasm.c (const_hash, SYMHASH): Likewise.
+
+	* toplev.c: (main): Don't cast pointers to int unnecessarily.
+
+	* tree.c: Include function.h after tree.h.
+
+	* rtl.h (NOTE_BLOCK_NUMBER): Change definition to simpler form.
+	(SET_NOTE_BLOCK_NUMBER): Deleted.
+	(xrealloc, oballoc, permalloc): Declare here as well as in tree.h.
+	* function.c (identify_blocks, reorder_blocks): Don't use
+	SET_NOTE_BLOCK_NUMBER.
+
+	* varasm.c (struct addr_const): Use HOST_WIDE_INT for OFFSET.
+
+	* combine.c (reg_sign_bit_copies): New variable.
+	(combine_instructions): Initialize it.
+	(set_significant): Set it.
+	(try_combine): Set subst_low_cuid immediately before calling `subst'
+	to the INSN_CUID of the lowest insn involved in the call.
+	Change XOR with out-of-range constant to (not (xor ...)).
+	Call both split_insns and find_split_point; pass extra parm to
+	find_split_point.
+	Record I2DEST's value if I2 now sets it; similarly for I1DEST.
+	(find_split_point): Add new arg INSN.
+	If AND'ing with a large single-bit constant and we only care about
+	equality with zero, replace with bit extraction.
+	Make two shifts for ZERO_EXTRACTs unless very narrow.
+	(subst): Move RESTART label earlier.
+	If we have a simple operation applied to IF_THEN_ELSE, move
+	the operation inside the two arms.
+	(subst, case SUBREG): Use force_to_mode.
+	(subst, case NOT): Change (not (xor X C)) to (xor X ~C).
+	(subst, case NEG): Remove optimization of (neg (abs X)); redundant.
+	Convert (neg (xor A 1)) to (plus A -1) if A is known to be 0 or 1.
+	(subst, case IF_THEN_ELSE): Simplify if an arm contains a register
+	being tested by substiting the known value.
+	Put constant integer in last arm is can reverse comparison.
+	(subst, case SET): Use gen_lowpart_for_combine.
+	(subst, case AND): Make IF_THEN_ELSE when appropriate.
+	(subst, case IOR): (ior A C) can sometimes be just C.
+	(subst, case XOR): Go back and restart when canonicalizing.
+	(subst, case ABS): Use num_sign_bit_copies.
+	(make_extraction): Call force_to_mode.
+	(make_compound_operation): Look at optabs rather that explicitly
+	checking for operations and assuming we have SImode.
+	Handle (ashiftrt (OP (ashift foo C1) C3) C2).
+	(force_to_mode): Only change mode of arithmetic if optab says we
+	have operation in that mode.
+	Remove unneeded ASHIFTRT; add handling for IF_THEN_ELSE.
+	(significant_bits, case NEG): Call num_sign_bit_copies.
+	(significant_bits, case ABS, case [US]{MIN,MAX}, IF_THEN_ELSE): New.
+	(num_sign_bit_copies): New function.
+	(simplify_shift_const): Remove ASHIFTRT if value is known -1 or 0.
+	Use num_sign_bit_copies to simplify (ashiftrt (ashift ...) ...)
+	and (ashiftrt (neg ...) ...).
+	Remove now redundant case when VAROP is a PLUS.
+	(simplify_comparison): If A is known to be -1 or 0, A != -1 is A == 0.
+	Simplify unsigned tests that really check the sign bit.
+	(simplify_comparison, case ASHIFTRT): Convert to LSHIFTRT if 
+	equality comparison with zero.
+	(get_last_value): Check if the desired register is set in the
+	insn before the one whose INSN_CUID is subst_low_cuid.
+
+	* expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Add missing
+	call to TREE_CODE.
+
+	* reload1.c (reload): Set reload_in_progress earlier.
+
+	* fold-const.c (optimize_bit_field_compare): Correct bogus use of
+	types in expressions; always do computation in a type wide enough
+	for the result.
+
+Sun Aug  2 01:30:22 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-parse.y (attrib): Copied from c-parse.y.
+
+Sat Aug  1 13:34:49 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-pragma.c (HANDLE_PRAGMA_WEAK): Define only if SET_ASM_OP defined.
+
+	* vax-vms.h: Renamed from vms.h.
+	* xm-vax-vms.h: Renamed from xm-vms.h.
+	* configure (vax-*-vms): Change file names.
+
+Sat Aug  1 16:13:09 1992  Mark Eichin  (eichin@cygnus.com)
+
+	* config/spc-sol2.h (ASM_OUTPUT_DWARF_STRING): redefinition was
+	incorrect, and uneeded; while Solaris as doesn't support .string, it
+	does support .asciz, and sparcv4.h takes care of including that
+	definition.
+
+Fri Jul 31 08:19:41 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu
+
+	* combine.c (try_combine): Correctly handle implicit deaths of
+	I2DEST and I1DEST.
+
+	* cexp.y: Add declaration for xmalloc.
+
+	* cccp.c: Add declarations for malloc and realloc.
+	Include stddef.h when __STDC__ is defined.
+	(PTR_INT_TYPE): New macro.
+	(pcfinclude): Use it.
+
+	* c-decl.c (init_decl_processing): __builtin_return_address,
+	__builtin_frame_address, and __builtin_saveregs all return void *.
+
+	* reload.c (find_reloads_address_1): Convert another push_reload
+	call into a call to find_reloads_address_part.
+
+	* reload1.c (gen_input_reload): Correct order of insns emitted
+	when using secondary memory.
+
+	* reload1.c (reload_as_needed): Add missing semicolon after macro.
+
+	* combine.c (distribute_notes, case REG_DEAD): If a register used
+	exactly twice is referenced in both I2 and I3, show it is used 3 times.
+
+	* final.c (output_operand): Abort if X is a pseudo.
+
+	* cse.c (exp_equiv_p, case CONST_INT): Use INTVAL instead of XINT.
+
+	* expr.c (convert_move): Put FROM into a register if it is a SUBREG.
+	(For extension case.)
+
+Fri Jul 31 08:19:05 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* function.c (reposition_prologue_and_epilogue_notes): Search for
+	the notes without using basic_block_end[0] or basic_block_head[N-1].
+
+Fri Jul 31 08:18:18 1992  Michael Meissner  (meissner@osf.org)
+
+	* reorg.c (get_branch_condition): Return 0 if all tests fall through.
+
+Fri Jul 31 02:28:02 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* glimits.h: Renamed from limits.h.
+	* Makefile.in (LIMITS_H): Deleted.
+	(install-limits-h): Use glimits.h, not limits.h.
+	* libgcc2.c: Include glimits.h.
+
+Thu Jul 30 09:54:07 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.h (FUNCTION_BOUNDARY, ASM_OUTPUT_ALIGN_CODE): Pack code
+	more tightly for the m88110.
+
+	* m88k.md (cpu attribute): List m88100 first for more efficient
+	code in insn-attrtab.c.
+
+	* m88k.md (rotate/and split pattern): Fix typo.
+
+Thu Jul 30 00:02:45 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* i860mach.h: New file.
+	* configure (i860-*-mach*): New alternative.
+
+	* svr3.h (BSS_SECTION_FUNCTION): New macro.
+	(CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Enable these.
+	* tower-as.h (BSS_SECTION_FUNCTION): Deleted.
+	* dpx2.h (EXTRA_SECTION_FUNCTIONS): Deleted.
+	* att386.h (BSS_SECTION_FUNCTION): #undef before defining.
+
+	* i860v3.h (USE_CONST_SECTION): #undef before defining.
+
+Wed Jul 29 20:04:55 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.md (cmpsi): Delete 'J' constraint.
+
+Wed Jul 29 00:38:45 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-lex.c (yylex): When traditional, convert 0x80000000 to -0x80000000.
+
+	* gcc.c (link_command_spec): Accept -static but do nothing with it.
+
+	* loop.c (move_movables): When testing whether a reg contains
+	the function address of a call_insn in a libcall block,
+	use reg_referenced_p, to ignore destinations.
+
+	* stor-layout.c (layout_record): Take account of
+	maximum_field_alignment when using the field's alignment.
+
+	* c-parse.y (attrib): Fix previous change--the missing arg
+	was the last arg.
+
+	* fixincludes: Don't repeat the directory-link-chasing loop
+	more than twice.  Combine $prevdirs with $dirs--they had same value.
+	Properly discard $d itself from the output of find.
+	Find the links to directories by finding each link
+	and testing it with test.  Add $newdirs into $files.
+
+Tue Jul 28 12:46:31 1992  Michael Meissner  (meissner@osf.org)
+
+	* c-common.c (decl_attributes): Call layout_decl with two arguments.
+
+	* c-parse.y (attribute processing): Correctly call tree_cons with
+	three arguments, passing NULL_TREE for the purpose argument.
+
+	* emit-rtl.c (make_insn_raw): Eliminate unused argument pat_formals,
+	and modify all callers.
+	(make_jump_insn_raw): Ditto.
+
+	* reorg.c (fill_slots_from_thread): Function follow_jumps only takes
+	one argument.
+	(relax_delay_slots): Ditto.
+
+Tue Jul 28 16:04:43 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dpx2g.h (ASM_OUTPUT_IDENT): #undef it.
+
+	* c-decl.c (duplicate_decls): Handle warn_redundant_decls here.
+	But don't warn if function definition follows a declaration.
+	(pushdecl): Don't handle it here.
+	(grokparms): Don't warn about non-prototype decl in system header.
+
+	* c-convert.c (convert): If main variants match, 
+	but the type is not identical, make a NOP_EXPR.
+
+Tue Jul 28 10:06:18 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* mips.md: Correct use of `*' in constraints.  Put it before each
+	letter to ignore, not each group to ignore.
+
+Tue Jul 28 01:23:35 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_parms): Do something for structures
+	passed by invisible reference, and living in memory.
+
+	* gstddef.h (wchar_t): Alternate typedef for C++.
+
+	* Makefile.in (extraclean): Delete config/ChangeLog.
+
+	* m68k.md (probe): Use %a0 to output the address.
+
+Mon Jul 27 20:08:21 1992  Mike Stump  (mrs@hal)
+
+	* c++:  Fix errors introduced by rms.  Bullet-proof handling of
+	arguments with funny things in them such as newlines, spaces, tabs,
+	single quotes, double quotes, etc...
+
+Mon Jul 27 17:38:52 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.md: Add DEFINE_SPLITs to optimize logic operation with
+	certain immediate values.
+
+	* sparc.md: Correct inconsistent operand constraints in peepholes.
+
+	* sparc.h (ASM_LONG, ASM_SHORT, ASM_BYTE_OP):  Definitions added.
+	(ASM_OUTPUT_DOUBLE):  Use REAL_VALUE_TO_TARGET_DOUBLE to convert.
+	(ASM_OUTPUT_FLOAT):  Use REAL_VALUE_TO_TARGET_SINGLE to convert.
+	(ASM_OUTPUT_INT):  Use ASM_LONG pseudo-op.
+	(ASM_OUTPUT_SHORT):  Use ASM_SHORT pseudo-op.
+	(ASM_OUTPUT_CHAR):  Use ASM_BYTE_OP pseudo-op.
+	(ASM_OUTPUT_BYTE):  Use ASM_BYTE_OP pseudo-op.
+
+Mon Jul 27 17:10:19 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gstdarg.h (va_arg): Don't use +=; no need to set AP twice.
+
+Sun Jul 26 14:21:13 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* final.c (final_scan_insn): Align jump table only if
+	READONLY_DATA_SECTION.  Otherwise, the table is in the text section.
+
+	* collect2.c (dup2): Defined, if NO_DUP2.
+
+	* plexus.h: New file.
+	* m68k.c (output_function_prologue): Make a probe instruction
+	if NEED_PROBE if nonzero.
+	* configure (m68k-plexus-sysv*): New alternative.
+
+	* c-convert.c (convert): Succeed if TYPE is the main variant
+	of the given type.
+	* c-typeck.c (build_conditional_expr): Compare using TYPE_MAIN_VARIANT.
+
+	* c-decl.c (duplicate_decls): Copy old RTL *before* make_var_volatile.
+
+Sat Jul 25 21:45:44 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (pushdecl): Never reuse global fcn decl in place of
+	local extern; just copy some info from it.
+
+Sat Jul 25 06:14:58 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* expmed.c (expand_divmod): Eliminate the generation of branches
+	when possible.
+
+Sat Jul 25 04:34:09 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes (X11/Xmu/Xmu.h): Fix this or X11/Xmu.h,
+	whichever exists.
+
+Sat Jul 25 00:41:12 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* c-parse.y (datadecl): Diagnose empty declarations in old-style
+	function headers.
+	* c-decl.c (shadow_tag_warned): New function.
+
+	* c-lex.c (yylex): Diagnose `1.0fl'.  Issue just one
+	diagnostic for `1e1000000f'.
+
+Fri Jul 24 19:25:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_symbol): Distinguish implicit C++ typedefs
+	from explicit C typedefs for structs, using DECL_SOURCE_LINE.
+
+	* c-decl.c (duplicate_decls): Use TYPE_MAIN_VARIANT even for compares
+	with void_type_node.
+	(grokdeclarator, get_parm_info, store_parm_decls): Likewise.
+
+Fri Jul 24 10:07:13 PDT 1992  Ron Guilmette (rfg at ncd.com)
+
+	* dwarfout.c (is_tagged_type):  New function added.
+	(member_attribute):  Use it.
+	(type_ok_for_scope):  Rewritten to eliminate serious bugs.
+	(output_type):  Call `output_pending_types_for_scope' at the end of
+	struct/union types (which are themselves scopes in C++).
+
+Fri Jul 24 13:36:46 1992  Michael Meissner  (meissner@osf.org)
+
+	* dbxout.c (toplevel): Include defaults.h to get the definition of
+	ASM_STABD_OP.
+
+	* Makefile.in (dbxout.o): Add defaults.h dependent.
+
+	* i386rose.h (CC1_SPEC): Remove MIPS switches accidently left in.
+
+Thu Jul 23 09:49:43 PDT 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* dwarfout.c (is_body_block):  Rewritten for greater saftey.
+	(output_block):  Fixed to deal correctly with non-inlined blocks.
+
+Thu Jul 23 15:37:23 1992  Jeffrey A Law  (law at schirf.cs.utah.edu)
+
+	* flow.c (propagate_block): Change "struct foo" to "struct sometimes".
+
+Thu Jul 23 15:10:51 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.h (ASM_OUTPUT_CASE_LABEL): Change to readonly section if the
+	table contains addresses.
+	(JUMP_TABLES_IN_TEXT_SECTION): True by default.
+
+Thu Jul 23 13:54:27 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.c (large_int): Use HOST_WIDE_INT type to hold INTVAL.
+	(gen_int_relational): Ditto.
+	(gen_conditonal_branch): Don't emit any insns if the result is
+	always false, and emit a normal jump if the result is always true.
+
+	* mips.c (mips_move_1word): Count LABEL_REF's as a memory
+	reference.  Rework half-pic load of symbols, to not expect movsi
+	to have converted the load address into a load, and for CONST's,
+	do the addition after the pointer is loaded.
+
+	* mips.md (type attribute, movsi3): Eliminate 'pic' attribute,
+	just use 'load' instead.
+	(fix_truncdfsi2): Make this a define_insn, instead of a
+	define_exapnd and an insn, and use match_scratch to allocate the
+	two scratch registers.  Adjust length costs, so that they match
+	the current code the assembler produces.
+	(fix_truncsfsi2): Ditto.
+	(movsi): Don't convert load of half-pic addresses and CONST's into
+	the real load.  It causes more problems than it solves.  Adjust
+	cost of half-pic addresses to be 2, not 4.
+
+	* mips-tfile.c (parse_def): Allow spaces in names, since C++
+	templates produce things like: #.def SMANIP<long unsigned int>; ...
+	(parse_stabs_common): Code from Lisa Repka, to handle symbol +/-
+	offset, and to look up things in the external string table, if the
+	name is not found in the local string table.
+
+Wed Jul 22 13:08:33 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* sparc.md (movdf+1): Use new 'T' and 'U' constraints to 
+	determine when an ldd or std will have a length of 1, and
+	therefore is eligible for use in some delay slots.
+	(uncond_branch): New attribute used for unconditional branches.
+	All unconditional branch patterns changed.
+	(define_delays and delay slot attributes): Do not allow
+	uncond_branch instructions in delay slots.  Do not allow fpload or
+	fpstore operations in a conditional branch delay slot.  Allow 
+	fpload and fpstore in call, unconditional branch, and annuled
+	conditional branch delay slots.
+	
+	* sparc.c (registers_ok_for_ldd_peep, addrs_ok_for_ldd_peep):
+	Functions renamed from registers_ok_for_ldd and
+	memory_ok_for_ldd respectively.  All callers changed.
+	(register_ok_for_ldd): New function to determine if a register is
+	a pseudo or the first register in a hard register pair.
+	(mem_aligned_8): No longer static.  Return 0 instead of aborting
+	when presented an rtx which is not a MEM.
+	(eligible_for_epilogue_delay): Use in_uncond_branch_delay since
+	this in an unconditional branch.
+	
+	* sparc.h (EXTRA_CONSTRAINT) Add new 'T' and 'U' constraints
+	which check for aligned accesses to memory and register pairs.
+
+Wed Jul 22 11:22:37 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump meissner version number to 22.
+	(extern declarations): Add declarations for asm_file_name,
+	call_used_regs, langguage_string, save_argv, version_string,
+	mips_{begin,end,expand}_{pro,epi}logue, simple_epilogue_p,
+	{address,const_{double,int},general,{,non}immediate}_operand,
+	memory_address_p, {{,non}memory,register,scratch}_operand,
+	abort_with_insn, debug_rtx, fatal_io_error, get_frame_size,
+	offsettable_address_p, output_address, permalloc,
+	reg_mentioned_p, abort, atoi, getenv, mktemp, and
+	mips_expand_{epi,pro}logue.
+	(*_REGNUM): Add in GP_REG_FIRST in case registers are ever
+	renumbered.
+	(struct mips_frame_info): Add num_gp, num_fp fields.
+	(SECONDARY_MEMORY_NEEDED): Define, return 1 unless -mdebugh if
+	moving between FP <-> GP registers.
+
+	* mips.c (extern declarations): Move most of the declarations to
+	mips.h, except for those of type 'rtx' or 'tree', since not all
+	files include rtl.h and tree.h.  Add more declarations for gen_xxx
+	functions that are now used.
+	(reg_or_0_operand): Add default case for switch on enumeration, to
+	allow compiling with -Wall.
+	(simple_memory_operand): Ditto.
+	(mips_count_memory_refs): Ditto.
+	(mips_move_1word): Ditto.
+	(mips_move_2words): Ditto.
+	(mips_address_cost): Ditto.
+	(map_test_to_internal_test): Ditto.
+	(mips_move_1word): Align asm comments in loading negative ints.
+	(mips_move_1word): Use GEN_INT macro to generate CONST_INT's.
+	(mips_move_2words): Ditto.
+	(gen_int_relational): Ditto.
+	(block_move_load_store): Ditto.
+	(block_move_loop): Ditto.
+	(expand_block_move): Ditto.
+	(block_move_load_store): #if 0, not currently used.
+	(block_move_sequence): Ditto.
+	(compute_frame_size): Fill in num_gp and num_fp fields.
+	(simple_prologue_p): Rename from null_prologue.
+	(save_restore_insns): New function to emit appropriate save and
+	restore operations for prologue/epilogue -- only prologue used at
+	present.
+	(function_prologue): Move generation of instructions to
+	mips_expand_prologue.
+	(mips_expand_prologue): Generate appropriate insns for the
+	prologue of the function.
+	(mips_expand_epilogue): Generate appropriate insns for the
+	epilogue of the function -- not called at present.
+
+	* mips.md (ashldi3_internal): Add `&' constraint to operand 0.
+	(ashrdi3_internal): Add `&' constraint to operand 0.
+	(return): Turn this into a define expand that wraps a return and a
+	USE reg:31 inside of a parallel.
+	(return_internal): Insn form of return instruction.
+	(prologue): New define expand to generate the necessary
+	instructions for the function prologue.
+	(mov{si,hi,qi}): Split the integer move INSNs into two groups,
+	those that support -mdebugh and allow ints to be in floating
+	point registers, and those that don't allow it.
+
+Tue Jul 21 21:27:43 1992  Mike Stump  (mrs@albert.gnu.ai.mit.edu)
+
+	* Complete 9th Cygnus <---> FSF merge.
+
+	Tue Jul 21 03:17:05 1992  Mark Eichin  (eichin@cygnus.com)
+
+	* cp-lex.c (process_next_inline): when bailing out on a parse error,
+	throw away nextchar as well in case it got set. 
+
+	Tue Jul 21 05:31:10 1992  Ken Raeburn  (raeburn@cygnus.com)
+
+	* cp-pt.c (tsubst, case FUNCTION_DECL): If the context class has a
+	null method vector, don't look inside it for its size.
+
+	Thu Jul 16 16:02:55 1992  Per Bothner  (bothner@rtl.cygnus.com)
+
+	* cp-typeck.c (convert_for_assignment):  If assigning (void*)
+	to a normal pointer, emit a warning, not an error.  There is
+	a lot of existing code (including libg++ and converted C
+	code) that expects to be able to assign from (void*).
+
+	Tue Jul 14 06:59:38 1992  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* cp-decl.c (finish_function): Call destructors correctly when
+	baseclasses are replicated in the inheritance hierarchy.
+
+	Mon Jul 13 05:16:10 1992  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* cp-typeck.c (build_modify_expr): If we split a COND_EXPR in order
+	to perform the assignment in each arm, convert the rhs of each
+	branch according to RESULT_TYPE.
+
+	* cp-typeck.c (convert_for_assignment): Treat null_pointer_node
+	specially when converting to non-void pointers.
+
+	* cp-class.c (modify_vtable_entries): In the loop that modifies
+	vtable entries for each non-virtual baseclass, correctly handle
+	cases where BASE is an ambiguous baseclass for BASE_CONTEXT.
+
+	Sun Jul 12 01:32:31 1992  Mike Stump  (mrs@cygnus.com)
+
+	Wed May 27 01:33:24 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* cp-type2.c (store_init_value), cp-typeck.c
+	(build_modify_expr, convert_arguments,
+	build_binary_op_nodefault, convert_for_assignment), cp-parse.y
+	(member_init, template_def, datadef, stmt): changed some
+	pedantics into !traditionals and reworded error messages.
+
+	Sun Jul 12 01:11:53 1992  Mike Stump  (mrs@cygnus.com)
+
+	Jul 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* cp-decl.c (finish_function): Set BLOCK_SUPERCONTEXT for the
+	outermost scopes of functions to point to the associated
+	FUNCTION_DECL nodes.
+
+	Fri Jul 10 17:52:36 1992  Ken Raeburn  (raeburn@cygnus.com)
+
+	* cp-decl.c (struct binding_level): New field pseudo_global
+	indicates that this binding level should be treated like the global
+	binding level in some respects.
+	(declare_pseudo_global_level, pseudo_global_level_p): Set and test
+	routines.
+	(push_overloaded_decl): Don't forget overloads in pseudo-global
+	binding levels.
+	* cp-pt.c (tsubst, case FUNCTION_DECL): Search for an existing decl
+	before creating a new one.
+	(overload_template_name): Make new level pseudo-global.
+	(type_unification): Indicate failure for unknown_type_node.
+	(unify): Likewise.
+
+	Wed Jul  8 01:59:03 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (lookup_name, grokvardecl, grokdeclarator),
+	cp-call.c (build_field_call), cp-seach.c (lookup_field),
+	cp-typeck.c (build_component_ref), cp-lex.c (do_identifier),
+	cp-init.c (expand_member_init, build_member_call,
+	build_offset_ref):  lookup_field now has 4 arguments.
+
+	Wed Jul  8 01:14:43 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-parse.y (primary): Call to lookup_name needs 2 arguments.
+
+	Tue Jul  7 21:14:05 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-method.c (build_overload_name): Handle INTEGER_TYPEs
+	cleanly and uniformly.	
+
+	Tue Jul  7 09:19:52 1992  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* cp-call.c (build_method_call): If `convert_to_pointer' returns
+	error_mark_node, return that without doing any more work.
+
+	Thu Jul  2 15:42:28 1992  Mike Stump  (mrs@cygnus.com)
+
+	Thu Jul  2 18:08:42 1992  Chip Salzenberg  (chip at tct.com)
+
+	* cp-typeck.c (convert_arguments): Don't assume that error
+	message will be short enough for fixed-length buffer.
+
+	Wed Jul  1 19:52:59 1992  Mike Stump  (mrs at cygnus.com)
+
+	Wed Jun  3 12:57:57 1992  Brendan Kehoe  (brendan@cs.widener.edu)
+
+	* cp-decl2.c (grokbitfield): Only do width checking on properly
+	parsed bitfields.
+
+	Wed Jul  1 18:58:17 1992  Mike Stump  (mrs at cygnus.com)
+
+	Wed May 27 01:33:24 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* cp-lex.c (readescape), cp-parse.y (unary_expr, maybecomma_warn,
+	component_decl_list, stmt), cp-type2.c (digest_init), cp-typeck.c
+	(c_sizeof, build_function_call_real, convert_arguments,
+	build_binary_op_nodefault, pointer_int_sum, pointer_diff,
+	build_unary_op, c_expand_return): change some warnings to
+	pedwarns.  Put in new pedwarns, change wording of messages so that
+	they are more readable.  Don't issue some warnings when
+	traditional is given.
+
+	Wed Jul  1 13:56:30 1992  Mike Stump  (mrs at cygnus.com)
+
+	Wed Apr 29 23:37:00 1992  Niklas Hallqvist  (niklas at appli.se)
+
+	* cp-decl.c (finish_decl): make sure destructors are called for
+	objects in a file.
+
+	Wed Jul  1 11:12:05 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-lex.c: extract YYEMPTY out of the parser generated .c
+	file and put in the parser .h so that cp-lex.c does not have
+	to define it.
+
+	Mon Jun 29 12:58:59 1992  Mike Stump  (mrs at cygnus.com)
+
+	Mon Jun 29 15:20:48 1992  Chip Salzenberg  (chip at tct.com)
+
+	* cp-cvt.c (convert_to_integer): Don't add a NOP_EXPR in cases
+	where we can simply change the type of the entire tree.
+
+	Mon Jun 29 10:56:56 1992  Mike Stump  (mrs at cygnus.com)
+
+	* c++: Makes sure -lg++ comes before -lm since libg++ uses
+	things from libm.
+
+	Mon Jun 22 13:47:42 1992  Mike Stump  (mrs at cygnus.com)
+
+	Sun Jun 21 14:06:41 1992  Brendan Kehoe  (brendan at cs.widener.edu)
+
+	* cp-typeck.c (convert_for_initialization): Only try to convert a
+	rhs that was parsed properly.
+
+	Mon Jun 22 13:31:40 1992  Jim Wilson  (wilson at sphagnum.cygnus.com)
+
+	* cp-parse.y (primary): Clear the TREE_USED flag of a block tree
+	put in a BIND_EXPR.
+
+	Sun Jun 21 09:59:58 1992  Michael Tiemann  (tiemann at rtl.cygnus.com)
+
+	* cp-type2.c (build_scoped_ref): Use SCRATCH for head of typelist,
+	rather than calling alloca.
+
+	Fri Jun 19 16:23:02 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-pt.c (unify): Type unification of things that do not have a
+	valid IDENTIFIER_TEMPLATE fail instead of core dumping.	
+
+	Wed Jun 17 13:36:04 1992  Michael Tiemann  (tiemann at rtl.cygnus.com)
+
+	* cp-pt.c (tsubst): Don't try to substitute into error_mark_node.
+
+	* cp-decl.c (grokparms): Convert initializers that have
+	TREE_READONLY_DECL_P set into their constant equivalents.
+
+	Tue Jun 16 19:09:23 1992  Mike Stump  (mrs at cygnus.com)
+
+	Wed Jun  3 12:57:57 1992  Brendan Kehoe  (brendan at cs.widener.edu)
+
+	* cp-decl.c (grokdeclarator): Disallow virtual functions in unions.
+
+	Tue Jun 16 18:11:45 1992  Mike Stump  (mrs at cygnus.com)
+
+	Wed Jun  3 12:57:57 1992  Brendan Kehoe  (brendan at cs.widener.edu)
+
+	* cp-class.c (finish_struct): Forbid local classes to have static
+	members.
+
+	Mon Jun 15 21:44:08 1992  Mike Stump  (mrs at cygnus.com)
+
+	Tue Jun  2 09:26:34 1992  Brendan Kehoe  (brendan at cs.widener.edu)
+
+	* cp-init.c (build_new): Don't allow the use of new on a reference.
+
+	Mon Jun 15 20:52:08 1992  Mike Stump  (mrs at cygnus.com)
+
+	Tue Jun  2 09:26:34 1992  Brendan Kehoe  (brendan at cs.widener.edu)
+
+	* cp-decl.c (grokparms): Don't allow a local variable to be used
+	in a default argument expression.
+
+	Mon Jun 15 18:54:28 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-decl.c (finish_decl): Add an error message for uninitialized
+	const objects like const int a;.
+
+	Mon Jun 15 16:05:22 1992  Mike Stump  (mrs at cygnus.com)
+
+	Not sure if it is strictly necessary for the C++ front end, but...
+
+	Sun May 31 15:31:46 1992  Brendan Kehoe  (brendan at cs.widener.edu)
+
+	* cp-typeck.c (self_promoting_args_p): Allow the arg type to be
+	null (copied from Oct 16, 1991 change by Wood).
+
+	Fri Jun 12 16:42:05 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-typeck.c (build_binary_op_nodefault): Conditionalize code that 
+	deals with the comparison of non-distinct object types, thus avoiding
+	a core dump.
+
+	Fri Jun 12 10:23:17 1992  Mike Stump  (mrs at cygnus.com)
+
+	Wed Jun 10 19:20:29 1992  Brendan Kehoe  (brendan at cs.widener.edu)
+
+	* cp-tree.c (break_out_calls): Begin at 1 less than the length of
+	the length of the tree code, not the length itself, for generic
+	expressions and those with side-effects.
+
+	Thu Jun 11 17:43:55 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-init.c (expand_default_init): New function to handle the
+	details of default copy constructors and other magic in one place.
+
+	* cp-init.c (expand_aggr_init_1): Implement default constructors
+	more fully.
+
+	Thu Jun 11 17:16:54 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-call.c (build_method_call): Don't produce an error message if
+	we are looking up things speculatively.
+
+	Thu Jun 11 10:58:47 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-call.c (convert_harshness): Penalize const arguments passed
+	into non-const parameters.
+
+	Thu Jun 11 10:02:52 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-typeck.c (build_c_cast): Implement more reference casts so
+	that one can cast a base reference to a derived reference.
+
+Tue Jul 21 15:28:36 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.h (SECONDARY_MEMORY_NEEDED): Define to force reload to 
+	handle any copy between GENERAL_REGS and FP_REGS.  
+
+	* sched.c (schedule_block): Give some insns high priorities,
+	instead of excluding them from scheduling, to ensure that they end
+	up at the end of the block after scheduling.
+
+	* i960.c (i960_output_ldconst): Use REAL_VALUE_FROM_CONST_DOUBLE
+	instead of pointer indirection to extract double from CONST_DOUBLE.
+
+Tue Jul 21 14:05:34 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* svr4.h (HANDLE_SYSV_PRAGMA): Defined.
+
+	* sol-crt*.asm: Renamed from sol-crt*.s, and put in config.
+	* t-sol2 (crt*.o): Changed accordingly.  Also use $(AS).
+
+	* gbl-ctors.h (ON_EXIT): Test HAVE_ATEXIT before sun.
+
+Mon Jul 20 18:56:02 1992  Fred Fish  (fnf at fishpond)
+
+	* svr4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): New macro--default definition.
+	(ASM_OUTPUT_CASE_LABEL): Use that.
+	* m68ksgs.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Do the swbeg here.
+	(ASM_OUTPUT_CASE_LABEL): Use that.
+
+	* configure (m68k-*-amix*):  Use fixinc.svr4 and install.sh.
+
+	* x-amix (ENQUIRE_CFLAGS):  Remove; obsolete.
+
+	* amix.h (TRANSFER_FROM_TRAMPOLINE):  Remove #undef.
+
+Mon Jul 20 17:45:46 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_source_line): New function.
+	* final.c (output_source_line): Use that.
+
+	* configure (sparc-*-sunos5*): New alias.
+	(sparc-*-solaris2*): Use t-sol2.
+
+	* i860.md (mulsi3_little, mulsi3_big): New define_expand patterns.
+	(mulsi3): Just use one of them.
+
+	* Makefile.in (install-fixincludes): Pass second and third args.
+
+Mon Jul 20 16:07:12 1992  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): change _c$main_args to
+	uppercase instead of relying on gas to make the case translation
+
+Sun Jul 19 00:04:16 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-tree.h (C_PROMOTING_INTEGER_TYPE_P): New macro.
+	* c-decl.c (duplicate_decls, grokdeclarator, finish_struct): 
+	Use C_PROMOTING_INTEGER_TYPE_P to decide whether a type promotes.
+	(start_function): Likewise.
+	* c-typeck.c (default_conversion): Use C_PROMOTING_INTEGER_TYPE_P
+	to decide whether a type should promote.
+	(self_promoting_args_p, self_promoting_type_p): Likewise.
+
+	* c-aux-info.c (gen_type): For array type, state the size.
+
+	* final.c (output_addr_const): Handle ZERO_EXTEND and SIGN_EXTEND.
+	* expr.c (expand_expr, NOP_EXPR case): If EXPAND_INITIALIZER,
+	generate ZERO_EXTEND or SIGN_EXTEND; don't emit insns.
+
+	* function.c (assign_parms): Use const0_rtx as DECL_RTL and as
+	DECL_INCOMING_RTL if tmode of parm is void.
+
+	* jump.c (mark_jump_label): Don't make REG_LABEL for nonlocal label.
+	* loop.c (add_label_notes): Don't make REG_LABEL for nonlocal label.
+	(rtx_renumbered_equal_p): Use == to compare nonlocal labels.
+
+	* rtl.h (LABEL_REF_NONLOCAL_P): New macro.
+	* expr.c (expand_expr): Set LABEL_REF_NONLOCAL_P for nonlocal labels.
+	* reload1.c (set_label_offsets): Ignore nonlocal labels.
+
+	* c-parse.y (primary): Set TREE_CONSTANT in the NOP_EXPR for an enum.
+
+	* Solaris changes from Cygnus:
+
+	* fixinc.svr4: take a third argument indicating where files to be
+	copied in should come from (useful when not building in source
+	directory).  
+	Set TERM to dumb so ex won't hang (by zoo).
+	* fixincludes: Take the same new argument.
+
+	* gmon-sol2.c: New file.
+	* t-sol2: New file.
+	* sol2-crt1.s, sol2-crti.s, sol2-crtn.s: New files.
+
+	* xm-spcv4.h (ONLY_INT_FIELDS): Define, if __GNUC__.
+
+	* sparc.h (FUNCTION_PROFILER):  Use ASM_OUTPUT_INTERNAL_LABELREF.
+	(FUNCTION_BLOCK_PROFILER):  Mark with FIXME that it needs work.
+	(ASM_OUTPUT_INTERNAL_LABELREF):  Define.
+	* spc-sol2.h: Entire file is new except for
+	defining MD_STARTFILE_PREFIX.
+	* dbxout.c (dbxout_block): obey DBX_BLOCKS_FUNCTION_RELATIVE
+	(dbxout_init):  Use ASM_IDENTIFY_GCC_AFTER_SOURCE if defined.
+
+	* sparc.h (CONSTANT_ALIGNMENT): Add parens for Sun compiler.
+
+Sun Jul 19 11:03:56 1992  Fred Fish  (fnf at fishpond)
+
+	* i386v4.h (real.h): Remove apparently unnecessary inclusion.
+	* i386v4.h (HANDLE_SYSV_PRAGMA):  Replaces HANDLE_PRAGMA.
+
+Sat Jul 18 20:37:37 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_binary_op): Don't set shorten for signed division.
+
+	* final.c (end_final): Align the table of addresses.
+
+Fri Jul 17 23:49:28 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cexp.y: Include stdio.h.
+
+Fri Jul 17 06:17:34 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* cp-tree.h (DECL_THIS_EXTERN): Renamed from DECL_EXTERNAL.
+	* cp-pt.c, cp-decl.c: Rename DECL_EXTERNAL -> DECL_THIS_EXTERN and
+	then rename TREE_EXTERNAL -> DECL_EXTERNAL.
+
+Fri Jul 17 05:59:26 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (instantiate_decls{,_1}): Don't do instantiation
+	here if the address is mode-dependent.
+
+	* libgcc2.c: Include tconfig.h instead of tm.h.
+	Include machmode.h.
+	(__do_global_dtors): Cast to widest integer type, then narrow, to
+	avoid warning if int is narrower than pointer.
+	* Makefile.in (libgcc2.a): Includes machmode.h.
+
+	* cse.c (cse_insn): Allow paradoxical SUBREGs in the table.
+
+	* reload.c (secondary_memlocs{,_elim}): New variables.
+	(get_secondary_mem, clear_secondary_mem): New function.
+	(push_reload): 	Convert SUBREG of hard reg to new hard reg.
+	Call get_secondary_mem when needed.
+	(find_reloads): Clear secondary_memloc_elim for each insn.
+	* reload1.c (reload): If SECONDARY_MEMORY_NEEDED, check for frame
+	size changed.
+	Call clear_secondary_mem.
+	(emit_reload_insns, gen_input_reload): Use memory when required to
+	do reload.
+	* reload.h (get_secondary_mem): Declare.
+
+	* cccp.c (NULL_PTR): Define as void * if STDC.
+
+	* rs6000.md (negdi2): Corrected name; used to be negdi3.
+
+	* combine.c (subst, case SET): Put code to move SUBREG after
+	code that calls make_compound_operation.
+	(make_extraction): Don't check for INNER a REG except for in dest.
+	Fix typo checking for REG.
+	(make_compound_operation): Get the result in the same mode it
+	used to be.
+
+	* reload.c (push_reload): If a SUBREG requires a secondary reload
+	but the inner expression doesn't, reload the inner expression
+	instead.
+
+Fri Jul 17 02:20:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (process_command): Handle `-Wl,' and `-Wa,'.
+	(do_spec_1): Handle %Y.
+	(default_compilers): Use %Y in assembler commands.
+
+	* function.c (assign_parms): In last change, test mode in parm type.
+
+Thu Jul 16 15:03:25 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* loop.c (find_and_verify_loops): Ignore jumps to missing labels,
+	when using P.
+
+	* c-typeck.c (build_binary_op): Improve shift warning messages.
+
+	* x-dpx2 (AS): Use $(GAS).
+	(GAS): New variable.
+
+	* mot3300.h (ASM_OUTPUT_CASE_END): Deleted.
+
+	* function.c (assign_parms): If arg was passed by invisible
+	reference, copy it to a pseudo if appropriate.
+
+	* dwarfout.c (pure_or_virtual_attribute):
+	Add #if 0 around use of DECL_ABSTRACT_VIRTUAL_P.
+
+Wed Jul 15 16:29:05 PDT 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* dwarfout.c (BLOCK_INLINE_FUNCTION):  Obsolete definition deleted.
+	(block_ultimate_origin):  New function.
+	(output_block):
+	Local var `have_significant_locals' renamed to `must_output_die'.
+	(output_block):  Rewritten to handle abstract & concrete instances of
+	blocks of inline functions.
+	(output_decls_for_scope):
+	Don't bump `next_block_number' for abstract blocks.
+
+	* toplev.c (rest_of_compilation): Call `dwarfout_file_scope_decl' for
+	both types of "abstract" instances of inline functions.
+
+	* tree.def (BLOCK):  Use new tree code category letter 'b' for BLOCKs.
+	* tree.h (struct tree_block):  New struct type definition added.
+	(BLOCK_VARS, BLOCK_TYPE_TAGS, BLOCK_SUBBLOCKS, BLOCK_HANDLER_BLOCK):
+	Changed to reference fields of the new `struct tree_block' type.
+	(BLOCK_ABSTRACT_ORIGIN, BLOCK_ABSTRACT):  Definitions added.
+	(union tree_node):  Added `struct tree_block' as a new variant.
+	* tree.c (typedef tree_node_kind):  Added new kind, i.e. `b_kind'.
+	(tree_node_kind_names):  Added string name for new kind `b_kind'.
+	(make_node, copy_node, stabilize_reference_1):
+	Handle case 'b' (for BLOCK nodes).
+	(make_node):  Don't try to deal with BLOCKs when doing a type 'e' node.
+	* print-tree.c (print_node):
+	Handle type 'b'; delete code for BLOCK from 'e' case.
+	Handle fields BLOCK_ABSTRACT_ORIGIN and BLOCK_ABSTRACT.
+	* calls.c (calls_alloca):  Don't return 0 automatically if the expr
+	given is headed by a type 'b' node.
+	* cp-tree.c (break_out_calls):  Add case for decl nodes.
+	Added case to catch BLOCK nodes (and to abort).
+	* integrate.c (copy_decl_tree):  Set BLOCK_ABSTRACT_ORIGIN in new
+	instance block if not already set.
+	(expand_inline_function): Set BLOCK_ABSTRACT_ORIGIN for outermost
+	scope to point to progenitor (abstract inline) FUNCTION_DECL node.
+	(integrate_decl_tree):  Set BLOCK_ABSTRACT_ORIGIN for inlined instance
+	BLOCKs.
+	(set_block_origin_self, set_decl_origin_self, set_block_abstract_flags,
+	set_decl_abstract_flags):  New functions.
+	(output_inline_function):  Call `set_decl_origin_self' for each fndecl
+	which is about to have an out-of-line instance generated for it.
+
+Wed Jul 15 15:08:00 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-convert.c (convert_to_integer): Push truncation inside COND_EXPR.
+
+	* optabs.c (emit_cmp_insn): Always do protect_from_queue on x, y, size.
+	(expand_float, expand_fix): Likewise.
+	* expmed.c (expand_shift, expand_set_flag):
+	Call protect_from_queue before convert_to_mode.
+	* expr.c (convert_move): Don't call protect_from_queue.
+	(emit_block_move): Protect SIZE.
+
+	* explow.c (allocate_dynamic_stack_space) [SETJMP_VIA_SAVE_AREA]:
+	Always call round_push; we can't rely on alignment of size.
+
+Wed Jul 15 06:47:11 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu)
+
+	* combine.c (try_combine): Verify that I2DEST is a register before
+	trying to change its mode.
+
+Tue Jul 14 15:13:28 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* c-decl.c (finish_struct): Handle nested struct redefinitions.
+	* stor-layout.c (layout_record): Handle NULL dsize.
+
+Tue Jul 14 21:31:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (duplicate_decls, pushdecl, grokdeclarator): 
+	(store_parm_decls, combine_parm_decls, finish_function):
+	Use TYPE_MAIN_VARIANT when comparing against specific non-void types.
+	* c-typeck.c (self_promoting_args_p, self_promoting_type_p):
+	(signed_type, unsigned_type, default_conversion, check_format):
+	(build_binary_op, c_expand_start_case): Likewise.
+
+Mon Jul 13 14:57:34 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (finish_function): Fix braino validating ret type of main.
+
+	* expr.c (expand_builtin): Refer to errno at rtl level only.
+	* sparc.h (TARGET_EDOM, GEN_ERRNO_RTX): New macros.
+
+Mon Jul 13 06:35:53 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* expr.c (expand_builtin):
+	For fsqrt, always use the special insn, then test for nan.
+
+Mon Jul 13 08:45:34 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.md: Constraint fixes from Torbjorn.
+
+	* jump.c (jump_optimize): In `x = a; if (...) x = b;' allow both a
+	and b to be non-zero if jumps are very expensive.  Also allow a
+	and b to be constants where all the set bits in a are also set in
+	b when jumps are merely expensive.
+
+Sun Jul 12 17:43:03 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* genpeep.c (match_rtx): Sometimes use %ld when printing an XWINT.
+
+	* regclass.c (record_reg_classes): If OP is a REG, use it's mode
+	in case the mode in MATCH_OPERAND is VOIDmode.
+
+Sun Jul 12 13:03:54 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes: Replace the code that finds all directories
+	so that it looks for subdirs of dir reached via symlinks.
+
+	* cp-tree.h (IDENTIFIER_VIRTUAL_P): Macro moved here.
+	* tree.h (IDENTIFIER_VIRTUAL_P): Deleted from here.
+
+	* rtl.h (NOTE_BLOCK_NUMBER, SET_NOTE_BLOCK_NUMBER): New macros.
+	(NOTE_DECL_NAME, NOTE_DECL_CODE, ...): #if 0'd.
+	* function.c (identify_blocks, reorder_blocks): New functions.
+	(all_blocks, blocks_nreverse): New functions.
+
+	* isi.h: Deleted the #error; file should work now.
+	(LIB_SPEC): Use -lg only once.
+	(STRUCTURE_SIZE_BOUNDARY): Defined.
+
+	* protoize.c (process_aux_info_file): Set must_create before jumping to
+	start_over.  Don't clear must_create at start_over.  Don't test
+	source file mod time for SYSCALLS.
+
+	* machmode.h (GET_MODE_NUNITS): Avoid division by zero.
+
+Sat Jul 11 22:21:47 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-parse.y (primary): Don't test TREE_EXTERNAL;
+	call assemble_external regardless.
+
+	* tree.h (DECL_INLINE, DECL_NONLOCAL, DECL_REGISTER, DECL_EXTERNAL):
+	Renamed from TREE_INLINE, TREE_NONLOCAL, TREE_REGDECL, TREE_EXTERNAL.
+	All uses changed.
+
+	* xm-hp320.h (USG): Define it.
+
+Sat Jul 11 21:43:56 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump meissner version number to 21.
+
+	* mips.md (andsi3, iorsi3, xorsi3): Make predicates match the
+	actual machine, since combine can now recreate the bitfields, and
+	doesn't do multiple logical operations when setting more than one
+	bitfield in a word.
+
+	* objc-actions.c (xmalloc, free): Don't provide extern decls for
+	these, since tree.h and rtl.h both now provide them.
+
+	* cp-lex.c (real_yylex): Declare a variable i, since a for loop
+	uses it as an index.  Remove an extra '(' from a build_int_2 call.
+
+Sat Jul 11 13:13:03 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* varasm.c: Get rid of default definitions of ASM_OUTPUT_CONSTRUCTOR
+	and ASM_OUTPUT_DESTRUCTOR.
+
+	* c-aux-info (affix_data_type): Don't be fooled by names starting
+	with `const' or `volatile'.	
+
+	* c-typeck.c (digest_init): Deal with nested {...} for scalar.
+
+	* loop.c, reload1.c: Include stdio.h before config.h.
+
+	* toplev.c (rest_of_compilation): Save and restore DECL_ARGUMENTS.
+
+Fri Jul 10 22:42:34 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* tree.c (build_real_from_int_cst): Truncate when folding to float.
+	(real_value_from_int_cst): Do not treat the topmost bit
+	of an unsigned long long value as a sign bit.
+
+	* cse.c (simplify_binary_operation): Don't optimize 0.0/x to 0.0
+	if IEEE floating point is used, because x might be negative or NaN.
+
+Fri Jul 10 15:37:42 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+    	* genpeep.c (match_rtx): Handle `w' elts of rtx.
+
+	* Makefile.in (INTERNAL_CFLAGS): Add -DIN_GCC.
+
+Fri Jul 10 18:56:22 1992  Eric Youngdale (youngdale@v6550d.nrl.navy.mil)
+
+	* cccp.c (finclude): Clean error msf if file_size_and_mode fails.
+
+Fri Jul 10 13:44:46 1992  Howard Chu  (hyc@hanauma.jpl.nasa.gov)
+
+	* fx2800.h (LINK_LIBGCC_SPECIAL): Defined.
+	(DBX_OUTPUT_STANDARD_TYPES): Check that DECL_NAME(decl) exists
+	before trying to get its IDENTIFIER_POINTER.
+
+Thu Jul  9 20:56:01 1992  Per Bothner  (bothner@rtl.cygnus.com)
+
+	* dbxout.c (dbxout_type_methods):  Fix minimal_debug so
+	that it skips a redundant class name prefix, as intended.
+	It now expects the length digits that precede the class name.
+
+Thu Jul  9 18:23:12 1992  Torbjorn Granlund  (tege@wombat.gnu.ai.mit.edu)
+
+	* Makefile.in, libgcc2.c, longlong.h: Rename udiv_using_sdiv to
+	udiv_w_sdiv.
+
+Thu Jul  9 18:10:40 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* tree.h (STRIP_TYPE_NOPS): New macro.
+	* c-decl.c (build_enumerator): Use STRIP_TYPE_NOPS.
+	* c-typeck.c (default_conversion): Use STRIP_TYPE_NOPS.
+	(build_binary_op, build_function_call): Likewise.
+	* c-common.c (check_case_value): Use STRIP_TYPE_NOPS.
+
+	* mot3300.h (ASM_OUTPUT_CASE_END): New macro.
+	* m68k.c (switch_table_difference_label_flag): New variable.
+
+	* i860.md (QI and HI bte/btne patterns): Deleted.
+
+Thu Jul  9 06:09:20 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* c-typeck.c (default_conversion): Don't use STRIP_NOPS.
+
+	* print-rtl.c: Missing merge from 64-bit changes.
+	(print_rtx): Add new case 'w'.
+
+Wed Jul  8 14:35:39 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes, fixinc.svr4: Error if no argument.
+
+	* tree.c (integer_zerop, integer_onep, integer_all_onesp):
+	(integer_pow2p, real_zerop, real_onep, real_twop): Use STRIP_NOPS.
+	* expr.c (do_store_flag): Likewise.
+	* varasm.c (output_constructor): Likewise.
+	* c-decl.c (finish_struct, build_enumerator): Likewise.
+	* c-typeck.c (default_conversion, build_binary_op): Likewise.
+	(build_function_call): Likewise.
+
+	* integrate.c (integrate_decl_tree): Get rid of arg functionbody;
+	it was always 0.
+
+	* mot3300.h: Fix typo.
+
+	* final.c (leaf_renumber_regs_insn): Handle new 'w' format.
+
+Wed Jul  8 15:18:33 PDT 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* tree.h (DECL_ABSTRACT_ORIGIN, DECL_ABSTRACT):  Definitions added.
+	(struct tree_decl):  New fields `abstract_origin' & `abstract_flag'.
+	(struct tree_decl):  Field `from_inline_flag' deleted.
+	(DECL_FROM_INLINE):  Definition revised to check DECL_ABSTRACT_ORIGIN.
+	* integrate.c (copy_decl_list):  New function added.
+	(save_for_inline_copying): Call `copy_decl_list' for formal parameters.
+	Set DECL_ABSTRACT_ORIGIN for fndecl to point to itself.
+	(copy_decl_tree):  Use `copy_decl_list' rather than just `copy_list'.
+	(integrate_parm_decls, integrate_decl_tree):  Set DECL_ABSTRACT_ORIGIN
+	to point to the progenitor.
+	* print-tree.c (print_node):  Print the value of DECL_ABSTRACT_ORIGIN
+	rather than the value of DECL_FROM_INLINE.
+
+	* dwarfout.c (output_inlined_enumeration_type_die): New function.
+	(output_inlined_structure_type_die, output_inlined_union_type_die):
+	New functions added.
+	(output_entry_point_die, output_formal_parameter_die,
+	output_global_subroutine_die, output_global_variable_die,
+	output_label_die, output_lexical_block_die,
+	output_inlined_subroutine_die, output_local_variable_die,
+	output_local_subroutine_die):
+	Fixed to handle inline abstract & concrete (i.e. inlined) instances.
+	(output_inlined_subroutine_die): Deleted.
+	(output_label_die):  Don't permit the rtx associated with a named
+	user-declared label to be marked as INSN_DELETED_P.
+	(output_tagged_type_instantiation):  New function added.
+	(output_decl):  Call `output_tagged_type_instantiation'.
+	Don't generate a pubnames label for anything marked as DECL_ABSTRACT.
+	(output_die):  Generate the proper kind fo DIE for each of the four
+	possible combination of {normal, inlined} {variable, parameter}.
+	(dwarfout_file_scope_decl):  Don't generate pubnames entries if
+	strictly abstract.
+
+	* dwarfout.c (ordering_attribute):  Only def if USE_ORDERING_ATTRIBUTE
+	is defined.
+	(output_array_type_die): Only call ordering_attribute if it is defined.
+	(name_and_src_coords_attributes):  Don't make it inline.
+	Do make it static linkage.
+	(const_value_attribute):  Catch invalid kinds of rtx nodes
+	by aborting for the default case in switch.
+
+	* dwarfout.c (output_ptr_to_mbr_type_die):  Make it static linkage.
+	(output_formal_types):  Make sure that `formal_type' is initialized.
+	(output_type):  Add a default case for switch.
+	(output_decl):  Don't suppress DIEs for the initial (artificial)
+	arguments for C++ static member functions.
+
+	* dwarfout.c (ceiling, field_type, simple_type_align_in_bits,
+	simple_type_size_in_bits, field_byte_offset):  New functions added.
+	(data_member_location_attribute):  Use new routine `field_byte_offset'
+	to calculate the offset value for the AT_location attribute.
+	(byte_size_attribute):  Use new routine `field_type' to get the
+	actual type for any FIELD_DECL.  Also, use `simple_type_size_in_bits'
+	to avoid potential problems with ERROR_MARKs when computing the size
+	of a FIELD_DECL.
+	(bit_offset_attribute):  Rewritten to use `field_byte_offset' when
+	determining the start of the "containing object".
+
+	* integrate.c (expand_inline_function):  Integrate parameters before
+	locals to get debugging information in the proper order.
+	(integrate_decl_tree):  Don't do a redundant pushlevel/poplevel for
+	the outermost scope (i.e. when level==0)... just use the one created
+	by `expand_inline_function'.
+
+	* calls.c (calls_alloca): For BLOCK, walk subblocks and vars by hand.
+
+Wed Jul  8 13:31:19 1992  Michael Meissner  (meissner@osf.org)
+
+	* cp-decl.c (print_binding_level): Fix typo, where 'lbl' was used
+	instead of 'lvl'.
+
+	* objc-actions.c (build_shared_structure_initializer): Correct call
+	to build_int_2 which had only one argument, instead of two.
+
+Wed Jul  8 06:37:40 1992  Torbjorn Granlund  (tege@sics.se)
+
+	* gstdarg.h, gvarargs.h: Test `__hppa__' instead of `__hp9000s800__'.
+
+	* romp.md (zero_extendhisi2): Remove unneeded constraint.
+
+	* rs6000.md (zero_extendhisi2): Remove unneeded constraint.
+	(lu/stu): Use %0 instead of %1 in assembler insns.
+	(call_value): Add missing "=" in constraint.
+
+Wed Jul  8 06:30:20 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.md (floatsidf): Correctly handle case when SImode operand
+	overlaps the first DFmode register.
+
+	* fold-const.c (distribute_bit_expr, range_test, fold_truthop):
+	Use TRUTH_AND_EXPR instead of BIT_AND_EXPR so invert_truthvalue works.
+
+	* c-decl.c (grokdeclarator): Strip all NOP_EXPRs from SIZE.
+
+	* integrate.c: Do 64-bit changes (this file omitted the last time).
+	Replace use of NULL and 0 in functions args with NULL_RTX.
+	(copy_rtx_and_substitute, subst_constants): Handle "w" rtl
+	operand class.
+
+	* rs6000.h (LINK_SPEC): Support -static.
+
+	* tree.c (make_node, copy_node, make_tree_vec, tree_cons, build1):
+	Clear or copy tree nodes in a consistent manner, referencing
+	every byte of the node.
+
+	* regclass.c: Initialize REG_CLASS_CONTENTS into an array of
+	ints, then copy into a HARD_REG_SET to avoid conditionalization
+	of REG_CLASS_CONTENTS on 64-bit machines.
+
+	* c-common.c (check_case_value): Strip the NOP_EXPR added by
+	the grammar.
+	* stmt.c (pushcase, pushcase_range): Don't do it here.
+
+	* c-lex.c (yylex): Ensure TOTAL_PARTS is wide enough to store a
+	constant as wide as we can store in an INTEGER_CST.
+	(LONG_LONG_TYPE_SIZE): Deleted; no longer needed.
+
+Tue Jul  7 15:50:38 1992  Chip Salzenberg  (chip@tct.com)
+
+	* x-i386sco (XCFLAGS): Omit flags specific to "rcc".
+	(CC, OLDCC): Put them here instead.
+
+Tue Jul  7 18:57:10 1992  Mike Stump  (mrs@wombat.gnu.ai.mit.edu)
+
+	The below entries should make DWARF debugging a little bit easier.
+
+	* cp-decl.c (pushdecl): IDENTIFIER_GLOBAL_VALUE should not be _DECL
+	nodes but rather TYPE_DECLs.
+
+	* cp-decl.c (pushtag): Mark binding layer markers as internal.
+
+	* cp-class.c (finish_struct): Propagate internal mark on binding
+	layer markers.
+
+	* cp-decl2.c (finish_file): Don't name things that should not be
+	named.
+
+	* cp-method.c (decl_as_string): New back-end routine for
+	substitute_nice_name.
+
+	* cp-decl2.c (substitute_nice_name): New function used to create
+	reasonable DECL_NAMEs from cyrptic ones.
+
+	* cp-decl2.c (grokclassfn): Use substitute_nice_name.
+
+Tue Jul  7 14:04:01 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (emit_move_insn): Don't try subwords for a single word.
+
+	* gcc.c (find_a_file, putenv_from_prefix):
+	Handle value of 2 in require_machine_suffix.
+	(process_command): Supply 2 for standard_exec_prefix{,_1}.
+
+	* gstdarg.h: Undefine _BSD_VA_LIST if we define va_list.
+
+	* cccp.c (append_include_chain): Fix setting of first_bracket_include.
+
+	* loop.c (init_loop): Use word_mode, not SImode.
+
+	* x-dpx2: New file.
+	* x-dpx2200, x-dpx2300: Files deleted.
+	* configure (m68k-bull-sysv*): Fatal error unless --with-gas.
+	Always use x-dpx2.
+
+	* libgcc2.c (XFtype): Turn off definition; not used.
+	(TFtype): Define only if needed.
+
+Tue Jul  7 11:57:44 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* tahoe.md (call_value): Add `=' to output operand constraint.
+	* arm.md (call_value): Likewise.
+	* gmicro.md (negsf2, negdf2, abssf2, absdf2): Likewise.
+	(peephole for moving returned value to fp reg): Likewise.
+
+	* longlong.h (SI_TYPE_SIZE):  Renamed from LONG_TYPE_SIZE.
+
+	* longlong.h (machine independent code): #define udiv_qrnnd to call
+	__udiv_using_sdiv if we have sdiv_qrnnd but not udiv_qrnnd.
+	* libgcc2.c (__udiv_using_sdiv): New function.
+	* Makefile.in (LIB2FUNCS): Add __udiv_using_sdiv.
+
+Mon Jul  6 23:28:29 1992  Mike Stump  (mrs@wombat.gnu.ai.mit.edu)
+
+	* cp-dem.c, cp-lex.c, cp-method.c, cp-xref.c:  Do not include
+	string.h or strings.h.
+
+Mon Jul  6 18:32:31 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (operand_subword): Avoid conditionals in macro arg.
+
+	* Changes to support execution on 64-bit machines.
+	* machmode.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, HOST_PTR_PRINTF):
+	Provide default definitions.
+	(MAX_SHORT): New macro.
+	(GET_MODE_BITSIZE): Cast result and shift constant to HOST_WIDE_INT.
+	* rtl.h (union rtunion_def): Add field rtwint.
+	(XWINT): New accessor macro.
+	(INTVAL): Use XWINT, not XINT.
+	(exact_log2, floor_log2, plus_constant, plus_constant_for_output):
+	Now macros that cast arg to HOST_WIDE_INT.
+	(NULL, NULL_PTR): Provide default definitions.
+	(GEN_INT): New macro.
+	(get_integer_term): Now returns HOST_WIDE_INT.
+	* tree.h (NULL, NULL_PTR): Provide default definitions.
+	(INT_CST_LT, INT_CST_LT_UNSIGNED): Cast to HOST_WIDE_INT.
+	(struct tree_int_cst): Pieces of constant are HOST_WIDE_INT, not
+	long.
+	(exact_log2, floor_log2, build_int_2): Now macros, like rtl.h.
+	* real.h (REAL_VALUE_TYPE, union real_extract): Use HOST_WIDE_INT,
+	not long.
+	(CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XWINT instead of XINT.
+	* rtl.def (CONST_INT): Operand type now "w".
+	(CONST_DOUBLE): Change operands from type "i" to "w".
+	* basic-block.h (REGSET_ELT_BITS): Always use HOST_BITS_PER_WIDE_INT.
+	(REGSET_ELT_TYPE): New macro; same as HOST_WIDE_INT.
+	* expr.h (ARGS_SIZE_RTX): Use NULL_RTX in expand_expr call.
+	(plus_constant): Remove duplicate declaration.
+	* hard-reg-set.h (HARD_REG_SET): Only scalar type we use
+	is HOST_WIDE_INT; array is array of HOST_WIDE_INT.
+	* loop.h (struct induction): Field CONST_ADJUST is now HOST_WIDE_INT.
+	(loop_n_iterations): Now unsigned HOST_WIDE_INT.
+	(loop_iterations): Returns HOST_WIDE_INT.
+	* c-parse.y, cexp.y, c-decl.c, c-lex.c, c-typeck.c, caller-save.c:
+	Change 0 or NULL when passed as a parameter that should be a pointer
+	to NULL_TREE, NULL_RTX, or NULL_PTR, as appropriate.
+	* calls.c, cccp.c, combine.c, cp-lex.c, cse.c, dbxout.c: Likewise.
+	* dwarfout.c, emit-rtl.c, explow.c, expmed.c, expr.c: Likewise.
+	* final.c, flow.c, fold-const.c, function.c, gcc.c: Likewise.
+	* genattrtab.c, genpeep.c, genrecog.c, global-alloc.c: Likewise.
+	* jump.c, local-alloc.c, optabs.c, recog.c, reg-stack.c: Likewise.
+	* regclass.c, reload.c, reload1.c, reorg.c, rtl.c: Likewise.
+	* rtlanal.c, sched.c, sdbout.c, stmt.c, stor-layout.c: Likewise.
+	* toplev.c, unroll.c, varasm.c, loop.c, xcoffout.c: Likewise.
+	* caller-save.c, combine.c, cp-class.c, cp-decl.c, cp-method.c:
+	Cast and declare objects used to refer to wide values as HOST_WIDE_INT.
+	Use HOST_BITS_PER_WIDE_INT instead of HOST_BITS_PER_INT.
+	* cp-pt.c, cp-type2.c, cp-typeck.c, cse.c, dbxout.c: Likewise.
+	* dwarfout.c, emit-rtl.c, explow.c, expmed.c, expr.c: Likewise.
+	* final.c, fold-const.c, genattrtab.c, recog.c, reg-stack.c: Likewise.
+	* regclass.c, reload.c, sched.c, stmt.c, stor-layout.c: Likewise.
+	* loop.c, toplev.c, unroll.c, varasm.c: Likewise.
+	* caller-save.c, combine.c, flow.c, global-alloc.c, reorg.c, sched.c:
+	When refering to regsets, use type REGSET_ELT_TYPE.
+	* calls.c, combine.c, emit-rtl.c, explow.c, expmed.c, expr.c, final.c:
+	Use GEN_INT macro when making CONST_INTs.
+	* function.c, jump.c, loop.c, optabs.c, recog.c, reload1.c: Likewise.
+	* unroll.c: Likewise.
+	* cp-decl.c, cp-ptree.c, print-tree.c: Use HOST_PTR_PRINTF when
+	printing pointer values.
+	* cccp.c, cexp.y, gcc.c (NULL, NULL_PTR): Provide default definition.
+	* c-common.c (NULL): Remove definition from here.
+	* c-decl.c (NULL): Likewise.
+	(finish_struct): Ensure high-order part of width is zero.
+	* cp-decl.c (finish_enum): Likewise.
+	* c-lex.c (yylex): Call build_int_2 in more portable way.
+	(yyprint): Print constant different ways, depending on host parameters.
+	* final.c (output_asm_insn, output_addr_cont): Likewise.
+	* genattrtab.c (write_test_expr): Likewise.
+	* print-tree.c (print_node_brief, print_node): Likewise.
+	* cp-decl.c (xref_tag): Remove explicit reference to modes.
+	* cp-method.c (build_overload_value): Likewise.
+	* cp-lex.c (real_yylex): Make accumulating bits for constant 
+	more portable.
+	* cse.c (uid_cuid): Now pointer to int instead of to short.
+	(exp_equiv_p): Change ifs on GET_RTX_FORMAT to a switch.
+	Add format code of "w".
+	* emit-rtl.c (gen_rtx): Add format code of "w".
+	* jump.c (rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
+	* loop.c (rtx_equal_for_loop_p): Likewise.
+	* reload.c (operands_match_p): Likewise.
+	* rtl.c (copy_rtx, copy_most_rtx): Likewise.
+	* rtlanal.c (rtx_equal_p): Likewise.
+	* sched.c (rtx_equal_for_memref_p): Likewise.
+	* explow.c (plus_constant_wide): Formerly plus_constant; argument
+	is HOST_WIDE_INT.
+	(plus_constant_for_output_wide): Similarly.
+	* fold-const.c: Use MAX_SHORTS for dimension of array of shorts.
+	* genattrtab.c (NULL_ATTR): New macro.
+	(attr_rtx): Use XWINT, not XINT, for CONST_INT.
+	Add case "w".
+	(check_attr_test, write_test_expr, main): Use XWINT, not XINT,
+	for CONST_INT.
+	* genemit.c (gen_exp): Use "NULL_RTX" instead of "0" when
+	emitting null.
+	Use GEN_INT and proper width when emitting a CONST_INT.
+	Abort if trying to write a CONST_DOUBLE.
+	* genrecog.c (struct decision): Add new fields TEST_ELT_ZERO_WIDE
+	and ELT_ZERO_WIDE.
+	(add_to_sequence, not_both_true, merge_trees, write_tree_1):
+	Use new fields.
+	* global-alloc.c (INT_BITS, INT_TYPE): Use HOST_WIDE_INT for type
+	of conflict matrix.
+	* loop. (loop_n_iterations): Now HOST_WIDE_INT.
+	* recog.c: Remove redundant declarations of plus_constant_for_output
+	and copy_rtx.
+	* rtl.c: Declare atol if needed.
+	(rtx_format): Add code for "w".
+	(read_rtx): Read code "w" field with atol if required.
+	(init_rtl): Fields of CONST_DOUBLE are now type "w".
+	* rtlanal.c (get_integer_term): Returns HOST_WIDE_INT.
+	* cccp.c, toplev.c: Error function args are HOST_WIDE_INT (kludge).
+	* toplev.c (exact_log2_wide): Renamed from exact_log2 and now has
+	arg of type HOST_WIDE_INT.
+	(floor_log2_wide): Similarly.
+	* tree.c (permalloc): Type of SIZE arg is int, not long.
+	(build_int_2_wide): Renamed from build_int_2 and has args of
+	type HOST_WIDE_INT.
+	* unroll.c (loop_iterations): Now returns HOST_WIDE_INT.
+	* varasm.c (immed_double_const): Arguments are now HOST_WIDE_INT.
+
+Mon Jul  6 14:56:26 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-common.c (decl_attributes): Don't set DECL_PACKED on VAR_DECL.
+
+	* Makefile.in (GCC_CFLAGS):
+	Use CROSS_GCC_CFLAGS instead of -B for tooldir.
+	* cross-make (CROSS_GCC_CFLAGS): Define as -B for tooldir.
+
+	* c-decl.c (finish_function): If return type of `main' is not `int',
+	warn instead of doing DEFAULT_MAIN_RETURN.
+
+	* collect2.c, dwarfout.c, halfpic.c: Don't incude string.h.
+
+	* c-decl.c (duplicate_decls): Let char *foo () match void *foo ()
+	only if one of them came from a system header file.
+
+	* stmt.c (pushcase): Fix typo.
+
+	* Makefile.in (ALLOCA_FINISH): Make default `true'.
+
+	* cccp.c (main): Clear first_bracket_include for -I-.
+	Set first_system_include for first system header directory.
+	(is_system_include): Start search at first_system_include.
+
+Mon Jul  6 12:58:27 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cccp.c (INCLUDE_LEN_FUDGE): Defined.
+	(append_include_chain): New function.  Adds directory(ies)
+	to include chain and updates value of max_include_len.
+	(main, path_include): Use append_include_chain.
+	(do_include): Use INCLUDE_LEN_FUDGE.
+
+	* tree.h (DECL_IN_SYSTEM_HEADER): Defined.
+	(struct tree_decl): Add in_system_header_flag.
+	* c-common.c (declare_function_name): For __FUNCTION__
+	and __PRETTY_FUNCTION__, set DECL_IN_SYSTEM_HEADER instead
+	of TREE_USED to supress `unused' warnings.
+	* c-decl.c (duplicate_decls): Merge DECL_IN_SYSTEM_HEADER flag.
+	* print-tree.c (print_node): Display TREE_RAISES and
+	DECL_IN_SYSTEM_HEADER flags.
+	* toplev.c (compile_file): Do not warn if an unused DECL
+	has DECL_IN_SYSTEM_HEADER set.
+	(rest_of_compilation): Do not set TREE_USED on static
+	functions defined in system headers; this will be taken
+	care of with DECL_IN_SYSTEM_HEADER.
+	* tree.c (make_node): Set DECL_IN_SYSTEM_HEADER on permanent
+	decls defined in system headers.
+	* objc-actions.c (build_module_descriptor,add_objc_decls):
+	Set DECL_IN_SYSTEM_HEADER instead of TREE_USED on compiler-
+	created decls.
+
+Mon Jul  6 10:17:30 1992  Michael Collison  (collison at osf.org)
+
+	* i386.h  (SUBTARGET_SWITCHES):
+	Incoporate SUBTARGET_SWITCHES into TARGET_SWITCHES.
+	(HALF_PIC_P, HALF_PIC_NUMBER_PTRS, HALF_PIC_NUMBER_REFS,
+	HALF_PIC_ENCODE, HALF_PIC_DECLARE, HALF_PIC_INIT,
+	HALF_PIC_ADDRESS_P, HALF_PIC_PTR, HALF_PIC_FINISH):
+	Define these as stubs if not OSF/1 platform.
+	* i386.md (movsi): Recognize half-pic moves.
+
+Mon Jul  6 11:16:47 1992  Tim Moore  (moore@defmacro.cs.utah.edu)
+
+	* pa.h (ASM_DECLARE_FUNCTION_NAME): Fix typo
+
+Mon Jul  6 08:48:51 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* m68k.md (swapsi): Add `+' operand constraints.
+	(insert to memory recognizer): Add `+'.
+	(peephole for moving returned value to fp reg): Add `='.
+
+Sun Jul  5 16:34:24 1992  John F Carr  (jfc at Achates.mit.edu)
+
+	* vax.md (addsi3): Code generation improvements (whether to use movab).
+
+	* vax.md (andsi3, andhi3, andqi3): If one of the source operands
+	is a constant, complement that operand instead of a register or
+	memory operand.
+
+Sun Jul  5 13:16:15 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): When splitting using a DEFINE_SPLIT,
+	update the number of sets of the destination if it is being set
+	twice.  Also update reg_significant.
+
+Sun Jul  5 13:14:50 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c++: Fix typo testing $quote for nullness.
+
+	* cse.c (simplify_binary_operation): Don't put sum of two symbolic
+	addresses into a CONST.
+
+	* m68kv4.h (ASM_OUTPUT_ALIGNED_COMMON): #undef this.
+	(ASM_OUTPUT_ALIGNED_LOCAL): #undef this.
+	(ASM_OUTPUT_ASCII): New overriding definition.
+	(ASM_OUTPUT_CASE_END): New overriding definition.
+
+	* c-typeck.c (convert_arguments): No -Wconversion warning
+	if the function wants an enumeral type.
+
+	* tek6000.h, tek6100.h, tek6200.h: New files.
+	* configure (ns32k-tek6100-bsd, ns32k-tek6200-bsd): New alternatives.
+	* config.sub: utek is synonym for bsd.
+
+	* Makefile.in (alloca.o): Add -c.
+
+	* Makefile.in (start.encap): Use LIBGCC1, not LIBGCC1_TARGET.
+	(GCC_CFLAGS): Find executables in $(tooldir)/bin, not $(tooldir).
+	(libgcc1.cross): New target.
+	(all.cross, cross-test): Depend on libgcc.a.
+	* cross-make (LIBGCC1): Use libgcc1.cross.
+
+	* Makefile.in (USER_H): va-hp800.h changed to va-pa.h.
+	(install-common): Fix typo.
+
+	* stmt.c (pushcase, pushcase_range): Use STRIP_NOPS on the values.
+
+	* x-amix, x-i860v4, x-ncr3000, x-sparcv4: Undo last change.
+	* x-i386v4, x-m68kv4: Files deleted.
+	* configure (i386-*-sysv4, i486-*-sysv4, m68k-*-sysv4):
+	Corresponding changes.
+
+	* c-decl.c (duplicate_decls): Don't warn about disagreement in `inline'
+	except when non-inline fn is made inline after a call or definition.
+
+Sun Jul  5 10:25:22 PDT 1992  Ron Guilmette (rfg at ncd.com)
+
+	* c-decl.c (grokdeclarator):  Make `long long long' an error, not a
+	warning.  Make duplicate qualifiers do pedwarn, not warning.
+
+	* c-decl.c (pushdecl):  Always create a new (variant) ..._TYPE node
+	for each new TYPE_DECL node created.
+
+	* libgcc2.c (UQItype, SItype, USItype, DItype, UDItype, SFtype, DFtype,
+	XFtype, TFtype):  Typedefs added.
+	(SI_TYPE_SIZE):  Renamed globally from LONG_TYPE_SIZE.
+	Define names for ANSI C types to `bogus_type' over the range of lines
+	where we must always use the new mode-related types.  Undef them again
+	at the end of that range (so we can used the ANSI types again), and
+	then define the mode-related type names to `bogus_type' to insure
+	those are not used from then on.
+
+	* libgcc2.c, longlong.h (DIstruct):  Renamed globally from  `longlong'.
+	(DIunion): Renamed globally from  `long_long'.
+	Universally use the new mode-related type names for all functions
+	and macros which expect, yield, or otherwise rely on operands to be
+	of certain GCC-defined machine modes.
+
+Sun Jul  5 11:11:00 1992  Torbjorn Granlund  (tege@wombat.gnu.ai.mit.edu)
+
+	* pa.h: (TARGET_VERSION): Print " (hppa)".
+	* pa.md (zdepi recognizer): Add attribute.
+	(recognizers for SImode load and store with fpregs): Add `=' to
+	operand 0.
+
+Sat Jul  4 15:02:19 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure (mips-*-sysv4): Don't set use_collect2.
+
+	* c-parse.y (primary): Wrap a NOP_EXPR around an enum value.
+
+	* libgcc2.c (__builtin_saveregs for i860): Test __svr4__, not SVR4.
+	* va-i860.h: Test __svr4__.
+
+	* c-decl.c (finish_function): Set BLOCK_SUPERCONTEXT of outer block.
+
+	* x-m88kv3: File deleted.
+
+	* x-sparcv4 (X_CFLAGS): Add -dn.
+
+	* reorg.c: Move the #ifdef DELAY_SLOTS after the #includes.
+
+Sat Jul  4 14:16:33 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (SUBST): Ensure we don't call something that can make
+	a new undo entry in the middle of our making one.
+
+Sat Jul  4 12:17:55 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (cp-parse.c): Append YYEMPTY to cp-parse.h, not ...y.
+
+	* cse.c (simplify_unary_operation): Add aborts in zero_extend
+	and sign_extend cases, explaining how they might need to be changed.
+
+	* i960.h (WORD_SWITCH_TAKES_ARG): Fix typo.
+
+	* x-amix, x-sparcv4, x-i860v4, x-i386v4, x-ncr3000:
+	Add -static to X_CFLAGS.
+	* x-m68kv4: New file.
+	* isc.h (HANDLE_SYSV_PRAGMA): Defined.
+
+Sat Jul  4 15:18:33 PDT 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* xm-spc-sol2.h: New file.
+
+	* tree.h (DECL_UID):  Definition added.
+	(struct tree_decl):  `uid' field added.
+	* tree.c (DECL_UID):  Initialize this uniquely for each new ..._DECL.
+
+	* rtl.h (NOTE_INSN_DELETED_LABEL):  Definition added.
+	* rtl.c (note_insn_name): Add entry for NOTE_INSN_DELETED_LABEL.
+	* final.c (final_scan_insn):  Call `dwarfout_label' for each
+	`NOTE_INSN_DELETED_LABEL'.
+	* jump.c (delete_insn):  Don't really delete CODE_LABELs corresponding
+	to user-declared lables... Turn them into NOTE_INSN_DELETED_LABELs
+	instead.
+
+	* dwarf.h (AT_abstract_origin):  Renamed from AT_specification.
+	* dwarfout.c (dwarf_attr_name):  Likewise.
+	(dwarf_tag_name, dwarf_attr_name, dwarf_stack_op_name,
+	dwarf_typemod_name, dwarf_fmt_byte_name):  Use normal DWARF prefixes
+	for string names of unrecognized values.
+	(is_block_body):  New function added.
+	(DECL_NAME_FMT):  Definition added.
+	(equate_decl_number_to_die_number, abstract_origin_attribute,
+	pure_or_virtual_attribute):  New functions added.
+	(src_coords_attribute):  Only define this is DWARF_DECL_COORDINATES
+	is defined.
+
+	* populate: New file.
+
+	* function.c (instantiate_decls): Delete #if 1.
+
+	* flags.h, toplev.c, dbxout.c (use_gnu_debug_info_extensions):
+	Renamed from `use_gdb_dbx_extensions'.
+
+	* toplev.c (main):  Added support for -gdwarf+ and for -gxcoff+.
+
+Sat Jul  4 08:39:47 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.c (m88k_end_prologue): Reset frame_laid_out here.
+	(m88k_expand_prologue): Not here.
+
+	* m88k.h (IDENT_ASM_OPT, ALIGN_ASM_OPT, ASM_OUTPUT_CASE_LABEL):
+	Override svr4.h.
+
+Fri Jul  3 12:40:27 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* fold-const.c (fold_convert): When converting a floating point
+	constant to integer, warn about out-of-range values after truncating
+	to integer, not before.
+
+Fri Jul  3 19:34:07 1992  Mike Stump  (mrs@hal)
+
+	* Makefile.in ($(srcdir)/cp-parse.c): extract YYEMPTY out of the
+	parser generated .c file and put in the parser .h so that cp-lex.c
+	does not have to define it.
+
+	* cp-tree.c (__eprintf): Third argument line is now unsigned,
+	completes Ron's Jul 2 change.
+
+Fri Jul  3 15:03:30 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure: Set FIXINCLUDES in Makefile based on sysv4 or not.
+	* x-amix (ENQUIRE_CFLAGS, FIXINCLUDES): Deleted.
+
+	* config.sub: Recognize i486 like i386.
+
+	* defaults.h (ASM_FORMAT_PRIVATE_NAME, ASM_OUTPUT_ADDR_VEC_ELT):
+	(ASM_OUTPUT_ADDR_DIFF_ELT, ASM_STABD_OP): New default definitions.
+	* final.c: Include defaults.h.
+	(ASM_STABD_OP): Deleted.
+	* Makefile.in (final.o) Depend on defaults.h.
+
+	* Makefile.in (toplev.o): Use MAYBE_TARGET_DEFAULT.
+	* configure: Set MAYBE_TARGET_DEFAULT for some targets.
+	Use 3, if target is i486...
+	Recognize i486 as well as i386 for most targets.
+
+	* x-hp320g (LIBGCC1, AR, RANLIB, RANLIB_TEST, LIBCONVERT): Deleted.
+	* t-hp320g (LIBGCC1, AR, RANLIB, RANLIB_TEST, LIBCONVERT): Defined.
+	* t-svr4 (FIXINCLUDES): Deleted.
+
+	* Makefile.in (ENQUIRE_CFLAGS): Add -DNO_LONG_DOUBLE_IO.
+
+	* fold-const.c (BRANCH_COST): Add default definition.
+
+	* cp-tree.h: Declare intQI_type_node, etc.
+	* cp-decl.c: Declare intQI_type_node, etc.
+	(init_decl_processing): Initialize those nodes.
+
+Thu Jul  2 15:18:33 PDT 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* amix.h (ASM_OUTPUT_CASE_END, ASM_OUTPUT_ALIGNED_LOCAL):  Output
+	tabs before SET_ASM_OP.
+
+	* Makefile.in (dwarfout.o):  Dependency on defaults.h added.
+
+	* sparcv4.h: Include real.h.
+	(SET_ASM_OP): Undef it.
+
+	* svr4.h (IDENT_ASM_OP):  Added generic svr4 definition.
+	(ASM_FILE_END, ASM_OUTPUT_IDENT):  Use IDENT_ASM_OP.
+	(ALIGN_ASM_OP):  Added generic svr4 definition.
+	(ASM_OUTPUT_CASE_LABEL):  Added generic svr4 definition.
+
+	* i860.c (strict_single_insn_op_p, relop): Deleted.
+	* i860.h (ASM_OUTPUT_CASE_LABEL):  Fixed definition to use
+	ASM_OUTPUT_ALIGN and ASM_OUTPUT_INTERNAL_LABEL.
+	* i860b.h, i860v3.h (TARGET_VERSION):  Definitions added.
+	* i860v3.h (CPP_PREDEFINES):  Predefine __svr3__ rather than SVR3.
+
+	* c-decl.c (named_labels):  Change linkage to static.
+
+	* assert.h (__eprintf): Declare 3rd arg as unsigned.
+
+	* cccp.c (do_include): Don't do fprintf's if inhibit_warnings.
+	Renamed system_header_p to angle_brackets.  Use is_system_include.
+	(is_system_include): New function.
+	(redundant_include_p) : Renamed from lookup_include.
+
+	* c-common.c (type_for_size):  If no ANSI type matches, check for
+	matches with built-in mode-releated types.
+	(type_for_mode):  Likewise.
+	* c-decl.c:  Added declarations for mode-related internal type nodes.
+	(init_decl_processing):  Initialize the new type nodes.
+	* c-tree.h:  Added declarations for mode-related internal type nodes.
+	intQI_type_node, etc.
+
+	* c-lex.c (yylex): For integers, rename shorts to parts.
+	Let the number of them be variable.  Simplify overflow testing.
+	Don't use long long types unless ll was specified.
+	Don't warn twice.
+
+Thu Jul  2 20:30:20 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
+
+	* gstdarg.h: #ifdef _STDARG_H, not __STDARG_H.
+
+Thu Jul  2 18:18:07 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* global.c: Renamed from global-alloc.c.
+
+Thu Jul  2 15:36:25 1992  Torbjorn Granlund  (tege@wombat.gnu.ai.mit.edu)
+
+	* pa.c (zdepi_operand): New function.
+	(emit_move_sequence): Use it.
+	* pa.md: New pattern to recognize cases where zdepi can be used to
+	load immediate constant.
+	(insv): Allow obvious immediate values.
+	(insv + 1): New recognizer for non-obvious immediate values.
+
+Thu Jul  2 15:13:15 1992  Michael Meissner  (meissner@osf.org)
+
+	* halfpic.c (half_pic_encode): Consider variables which are 'common'
+	variables to need pic fixup.  Move the debug code, so that it prints
+	for all calls, and calls debug_tree also.
+	(half_pic_address): When doing eliminate_constant_term on a CONST,
+	do a XEXP (addr, 0) to get to the real address.
+
+	* decrose.h (CPP_SPEC, CC1_SPEC): If neither -fbuiltin nor
+	-fno-builtin are passed, pass -fno-builtin, and renable the string
+	and memory builtins via macros.  This is to support compiling the
+	OSF/1 kernel which has a prototyped exit function which takes three
+	arguments.  With no -pic switches, default to using shared libs.
+
+	* i386rose.h (CPP_SPEC, CC1_SPEC): If neither -fbuiltin nor
+	-fno-builtin are passed, pass -fno-builtin, and renable the string
+	and memory builtins via macros.  This is to support compiling the
+	OSF/1 kernel which has a prototyped exit function which takes three
+	arguments.  Turn off pic support until the 386 backend supports it.
+
+	* x-i386rose (SHLIB): Use -pic-none instead of -L${BUILD}/usr/ccs/lib.
+
+	* x-decrose (SHLIB): Use -pic-none instead of -L${BUILD}/usr/ccs/lib.
+
+	* mips.md (movsi): Rewrite handling of half-pic code so that load
+	address of symbol + value is handled.
+	(branch_zero): Don't allow branch comparing constant to 0.
+
+Thu Jul  2 06:26:38 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.md (blockage insn): Renamed from profiler.
+	(epilogue insn): Don't provide this if a return insn will suffice.
+	(m88k_end_epilogue): If the last insn isn't a barrier, print a return.
+	* m88k.c (null_prologue): Renamed from null_epilogue.
+
+	* m88k.c (condition_value): New function.
+	* m88k.md (compare word insns): New insns and define_split
+	patterns to take advantage of recent fold_truthop change.
+
+	* m88k.h (ADDITIONAL_REGISTER_NAMES): Represent the condition code
+	register as (reg:CC 0).  Give it the names "cc" and "psr".
+	* m88k.md (superoptimizer sequences): New define_split patterns.
+	(add/sub with carry): New insns.
+	(add/sub DImode, ffssi2): Clobber the condition code register.
+
+Wed Jul  1 13:37:37 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gstddef.h Don't define macros associated with size_t unless we
+	actually want to declare size_t.  Likewise for ptrdiff_t and wchar_t.
+
+	* Makefile.in (install-common): Depend on xgcc, g++, c++, EXTRA_PARTS.
+	Don't delete specs from libsubdir unless it exists in build dir.
+
+	* va-pa.h: Renamed from va-hp800.h.
+	* gstdarg.h, gvarargs.h: Use new name.
+
+	* news3.h, news3gas.h: New files.
+	* configure (m68k-sony-newsos3*): New alternative.
+
+	* romp.h (SIZE_TYPE): Defined.
+
+	* configure: Support --exec-prefix.  Simplify handling
+	detached arguments of options.
+
+	* isc.h, and other related files:
+	waiting for entries from karl@cs.umb.edu.
+
+Wed Jul  1 12:04:53 1992  Ron Guilmette (rfg at ncd.com)
+
+	* c-decl.c (grokdeclarator):  Don't mark file-scope register variables
+	as TREE_PUBLIC.
+
+Wed Jul  1 12:04:53 1992  Karl Berry (karl@cs.umb.edu)
+
+        * i386iscgas.h (SIZE_TYPE, PTRDIFF_TYPE): Define these, since we
+        need to override GCC's defaults.
+
+        * configure (i386-*-isc): Use different files if we have gas.
+        * t-i386iscgas, i386iscgas.h, isc.h: New files
+        * i386isc.h: Include isc.h.  Most of contents moved to isc.h.
+        * bsd386.h (ASM_OUTPUT_LABELREF) [NO_UNDERSCORES]: do not prepend an
+        underscore in this case.
+        * i386gas.h (CPP_SPEC): if -posix, do -D_POSIX_SOURCE.
+
+Wed Jul  1 09:13:44 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* fold-const.c (fold_truthop): Renamed from merge_component_references.
+	(simple_operand_p): New function.
+	(range_test): Change JCODE parameter to the unconditional operation.
+	(fold_truthop):  When branches are expensive, try to evaluate the
+	RHS unconditionally.  Compute local variables as late as possible.
+
+	* m88k.h (HANDLE_SYSV_PRAGMA): Replaces HANDLE_PRAGMA.
+	* m88k.c (m88k_handle_pragma_token): Deleted.
+
+Tue Jun 30 15:32:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (duplicate_decls): If newdecl for builtin function
+	has same return mode as the builtin, keep the builtin
+	but use newdecl's return type.
+
+	* i386.md (lshrdi3_const_int): Fix typo in shr insn.
+
+	* Makefile.in (GCC_CFLAGS): Add `-B$(tooldir)/'.
+
+	* i386sun.h, rs6000-mach.h, sparc.h, sun2o4.h, sun3.h (LINK_SPEC):
+	Inhibit the default -e if -r or -nostdlib.
+
+	* c-decl.c (lookup_label): Call label_rtx.
+
+	* c-parse.y (primary): Rearrange and clean up.  In C_DECL_ANTICIPATED
+	case, always call assemble_external and set TREE_USED.
+
+Mon Jun 29 22:27:49 1992  Mike Stump  (mrs@wombat.gnu.ai.mit.edu)
+
+	* cccp.c, cp-dem.c, dbxout.c, cp-lex.c, cp-xref.c, cp-method.c,
+	dwarfout.c, c-typeck.c, mips-tfile.c, protoize.c, collect2.c: Make
+	the compiler more consistent by using index and rindex everywhere
+	instead of sometimes using strchr and strrchr.
+
+Mon Jun 29 22:20:13 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* regclass.c (regclass): Restore some accidentally-deleted code.
+
+Mon Jun 29 12:48:05 1992  Nobuyuki Hikichi  (hikichi@sra.co.jp)
+
+	* collect2.c (MY_ISCOFF): New macro.
+	(scan_prog_file): Use that instead of ISCOFF.
+
+	* mips.c (override_options) [MIPS_NEWS]: Call setlinebuf.
+
+Mon Jun 29 12:48:05 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (do_spec_1): For %I, pass -iprefix, not -imacros.
+
+	* c-common.c (decl_attributes): For `packed' on VAR_DECL,
+	set DECL_PACKED and DECL_ALIGN.
+
+	* configure: Update usage message.
+	(m68k-sony-newsos*, mips-sony-newsos*): New synonyms.
+
+	* fold-const.c (merge_component_references):
+	Make sure the four fields correspond in the proper order.
+
+	* c-lex.c (check_newline): Support HANDLE_SYSV_PRAGMA.
+	(handle_sysv_pragma): New function.
+	* c-pragma.c: New file.
+	* stor-layout.c (maximum_field_alignment): New variable.
+	(layout_decl): Use it.
+	* Makefile.in (C_OBJS, OBJC_OBJS): Add c-pragma.o
+	(c-pragma.o): New rule.
+
+	* i386.c (handle_pragma_token): Function deleted.
+	* i386v4.h (HANDLE_PRAGMA): Deleted.
+
+	* g++: Reestablish symlink to c++.
+	Delete the testing of $TRACE--this could confuse people.
+	Delete spurious assignment of $version.
+
+	* tree.h (DECL_PACKED): Store this in regdecl_flag.
+
+	* Makefile.in (LIB2FUNCS): Change _builtin_New to _caps_New.
+	* libgcc2.c: Change L_builtin_New to L_caps_New.
+
+	* dbxout.c (dbxout_symbol): Pass 3 args to eliminate_regs.
+	Call alter_subreg for subregs.  Delete subreg case later on.
+	Don't bother with reg_renumber--any pseudo reg is clearly
+	a variable that was not allocated.
+	* sdbout.c (sdbout_symbol): Call alter_subreg for subregs.
+	Don't bother with reg_renumber--any pseudo reg is clearly
+	a variable that was not allocated.
+
+	* sequent.h (SIZE_TYPE): Defined.
+	(LINK_LIBGCC_SPECIAL): Fix typo.
+
+Mon Jun 29 12:04:57 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* toplev.c (rest_of_compilation): Thread the prologue and epilogue
+	code immediately after reloading is done.
+	* sched.c (schedule_insns): Reposition the prologue and epilogue
+	notes as needed.
+	* reorg.c (dbr_schedule): Ditto.
+	* rtl.h (NOTE_INSN_PROLOGUE_END, NOTE_INSN_EPILOGE_BEGIN): New notes.
+	* rtl.c (note_insn_name): Record them.
+	* function.c (record_insns, contains, thead_prologue_and_epilogue_insns,
+	reposition_prologue_and_epilogue_notes): New functions.
+	* final.c: Include insn-flags.h.
+	(profile_after_prologue): New function.
+	(final_start_function): Use profile_after_prologue here when we
+	don't HAVE_prologue.
+	(final_scan_insn): Use profile_after_prologue when we scan
+	NOTE_INSN_PROLOGUE_END.  (This happens when we do HAVE_prologue.)
+	Perform machine specific actions when the prologue-end and
+	epilogue-begin notes are scanned.
+	(final_scan_insn, BARRIER): Align only when something follows.
+	* Makefile.in (final.o): Depends on insn-flags.h.
+
+	* m88k.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE): Define.
+	(DELAY_SLOTS_FOR_EPILOGUE, ELIGIBLE_FOR_EPILOGUE_DELAY): Delete.
+	* m88k.md (prologue, epilogue, profiler, locate1, locate2): New
+	patterns for representing prologues and epilogues.
+	* m88k.c (delay_slots_for_epilogue, eligible_for_epilogue_delay,
+	ok_for_epilogue_p): Delete epilogue delay slot functions.
+	(m88k_begin_prologue m88k_end_prologue m88k_expand_prologue): New
+	functions replacing m88k_output_prologue.
+	(m88k_begin_epilogue m88k_end_epilogue m88k_expand_epilogue): Ditto.
+	(preserve_registers): Delete epilogue delay slot mechanism and
+	change to output insns.
+	(emit_add, emit_ldst): New functions.
+
+Sun Jun 28 23:06:04 1992  Brendan Kehoe  (brendan@cs.widener.edu)
+
+	* Makefile.in (bootstrap, bootstrap2, bootstrap3): In each
+	passage of CC, use xgcc, not gcc.
+	* dostage2, dostage3: Likewise.
+
+Sun Jun 28 09:48:18 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (duplicate_decls): If have char *foo () and
+	void *foo (...), make just a pedwarn.  Add locals oldtype, newtype.
+	* c-typeck.c (self_promoting_args_p): No longer static.
+
+	* flow.c (regno_uninitialized): Return 0 for global reg var.
+
+	* c-typeck.c (initializer_constant_valid_p):
+	Allow CONVERT_EXPR if its operand is allowable. 
+	(build_c_cast): For cast to union, make a CONSTRUCTOR.
+
+	* sparc.c (SPARC_STACK_ALIGN): Add default definition.
+
+	* c++: Use `set "$@"' to modify arguments.
+	Use a case to decide how to set $gcc.
+	$quote is now empty for false and the option name for true.
+	Error at end if $quote is nonempty.
+	$speclang is now the -x option itself.
+	Move the -v case above the -* case.
+
+	* limitx.h: Add #ifndef.
+	* limity.h: New file.
+	* Makefile.in (install-limits-h): Append limity.h to the end.
+
+	* c-typeck.c (digest_init): Don't push spellings here (for union case).
+	(process_init_constructor): Fix errors for field not found.
+	(build_c_cast): Fold casts to union type.
+
+	* xm-vms.h (XREF_FILE_NAME): Fix typo.
+
+	* i386sun.h (SIZE_TYPE): Defined.
+
+	* Makefile.in (alloca.o): Delete the rm command.
+	Use -Demacs explicitly in compilation command.
+	(ALLOCA_FLAGS, ALLOCA_FINISH): Empty by default.
+	* x-pa-hpux, x-rs6000, x-rs6k-mach, x-dpx2200, x-dpx2300:
+	(ALLOCA_FLAGS, ALLOCA_FINISH): Deleted.
+	* x-dpx2200, x-dpx2300 (AS): Deleted.
+
+	* configure: Set broken_install for V.4.
+	(i386-*-aix, ns32k-*-genix, i386-*-isc, i386-*-sco): 
+	(i386-*-sco3.2v4, m88k-dg-dgux): Set broken_install.
+	(m88k-*-sysv): Don't use x-m88kv3.
+	* x-m88kv3: File deleted.
+	* x-aix386, x-dpx2200, x-dpx2300, x-genix, x-i386isc, x-i386sco:
+	* x-i386v, x-i386v4, x-i860v3, x-i860v4, x-m88kdgux, x-m88kdolph:
+	* x-m88kv4, x-ncr3000, x-sparcv4, x-xenix (INSTALL): Deleted.
+
+Sun Jun 28 08:44:32 1992  Michael Meissner  (meissner@osf.org)
+
+	* regclass.c (record_address_regs): Make the function static to
+	agree with the forward declaration.
+
+	* mips.h (LINK_LIBGCC_SPECIAL): Define.
+
+Sun Jun 28 06:14:56 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (direct_load, direct_store): New variables.
+	(init_expr_once): New function.
+	(convert_move, convert_to_mode): Don't let gen_lowpart make a MEM in
+	a mode that can't be directly copied to or from memory.
+	(store_field): Don't directly store into memory in a mode that
+	can't be used in a single insn.
+	(expand_expr, case COMPONENT_REF): Likewise, for load.
+	* toplev.c (compile_file): Call init_expr_once.
+
+	* cse.c (fold_rtx, case SUBREG): If we can find nested SUBREGs
+	with an inner register in the mode we want, get rid of all the
+	SUBREGs provided they are all within a word.
+
+	* cp-call.c, cp-class.c, cp-decl.c, cp-edsel.c, cp-lex.c: Don't
+	declare xmalloc and free here.
+	* cp-methods.c, cp-pt.c, cp-search.c, flow.c, integrate.c: Likewise.
+	* loop.c, opjc-actions.c, reload1.c, reorg.c, rtl.c: Likewise.
+	* stmt.c, tree.c, varasm.c: Likewise.
+	* toplev.c (xmalloc, xrealloc): Declare return types correctly.
+	* rtl.h, tree.h: Declare xmalloc and free here.
+	
+	* expmed.c (emit_store_flag): Keep the last target around if we
+	should preserve subexpressions.
+
+Sat Jun 27 07:11:28 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): See if we have a CONST_INT that is already in
+	a register in a wider mode.
+
+	* regclass.c: Major rework of regclass pass to do a better job of
+	setting up register preferences and replace the "preferred or
+	nothing" method with a class that should be used if the preferred 
+	class cannot be allocated.
+	(MEMORY_MOVE_COST): Default value is 4, not 2.
+	(move_cost, may_move_cost): New arrays.
+	(init_reg_sets): Initialize them.
+	(struct costs): Replaces struct savings.
+	(costs): Replaces savings.
+	(op_costs): New array.
+	(altclass): Replaces preferred_or_nothing.
+	(reg_alternate_class): New function; replaced reg_preferred_or_nothing.
+	(regclass): Major rework.  Use new recording methods; make two
+	passes if -fexpensive-optimizations; and refine REGNO_POINTER_FLAG
+	and loop_depth setting.
+	(record_reg_class): New function; replaces reg_class_record.
+	(copy_cost): New function.
+	(record_address_regs): Major changes.  New parameters and simplified
+	and more efficient algorithm for chosing base vs. index regs.
+	* rtl.h (reg_alternate_class): Declare it.
+	* Makefile.in (regclass.o): Now includes reload.h and real.h.
+	* flow.c (dump_flow_info): Call reg_alternate_class instead of
+	reg_preferred_or_nothing.
+	* reload.c (find_reloads): Likewise.
+	(n_occurrences): No longer static.
+	* local-alloc.c: Use register alternate class instead of 
+	preferred_or_nothing uniformly; change qty_preferred_or_nothing
+	to qty_alternate_class.
+	* global-alloc.c (global_alloc, retry_global_alloc): Call
+	reg_alternate_class instead of reg_preferred_or_nothing.
+	(find_reg): Change ALL_REGS_P argument to ALT_REGS_P.
+	Use alternate register class instead of ALL_REGS if can't allocate
+	in preferred class.
+
+	* cccp.c (install): Accept separate arguments for integer and
+	pointer hash values; don't assume the sizes are the same.
+	All callers changed.
+
+	* rtl.c (copy_rtx, copy_most_rtx): Add new case for 'u'.
+
+	* tree.c (make_node): Clear all of common area, in particular, flags.
+
+	* c-tree.h, cp-tree.h: Add declaration of truthvalue_conversion.
+
+Sat Jun 27 06:21:18 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.md (type attributes): Delete unused mbit and mfp types.
+	(ffsi2 insn): Define.
+	(negdf2 and absdf2 insns): Improve.
+
+	* fold-const.c (range_test): Fix the misordered test.  Fail if VAR
+	isn't an integer.
+
+Sat Jun 27 00:54:44 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (link_command_spec): No %D if LINK_LIBGCC_SPECIAL.
+	* sequent.h (LINK_LIBGCC_SPECIAL): Defined.
+
+	* vax.h (PRINT_OPERAND): For SFmode, use 0f, not 0d or 0g.
+
+	* ns32k.h (NS32K_DISPLACEMENT_P): Correct the range limits.
+	* ns32k.c (print_operand_address): REG_OK_FOR_INDEX_P wants an rtx.
+
+Fri Jun 26 08:55:03 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* fold-const.c (range_test): New function.
+	(merge_component_references): Look for range tests as well.
+
+	* va-m88k.h: Same changes as other va-*.h files below.  Make this
+	work when <stdio.h> and others are included on DG/UX.
+
+Fri Jun 26 08:17:33 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (safe_from_p): Handle 0 in TREE_VALUE of a TREE_LIST.
+	(store_constructor: Ignore empty links in element chain.
+
+Fri Jun 26 07:06:19 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-convert.c (convert_to_integer): Don't add a NOP_EXPR in cases
+	where we can simply change the type of the entire tree.
+
+	* cse.c (find_best_addr): Look for equivalents of a REG that is
+	the first operand of an address that is a binary operator whose
+	second operand is a CONST_INT.
+
+	* stmt.c (expand_end_bindings): Don't save argument pointer if it
+	will be eliminated in favor of the frame pointer.
+
+	* combine.c (try_combine): When using define_split to split an
+	insn, first try to put the pseudo-register into the mode of
+	the destination since it is the most likely to be the correct mode.
+
+	* combine.c (make_compound_operation): Treat PLUS and MINUS
+	the same when passing down the code to the next level; for
+	consistency, an ASHIFT inside either gets turned into a MULT.
+
+	* fold-const.c (optimize_bit_field_compare): Delete dead
+	assignment which can sometimes reference an undefined variable.
+
+	* genoutput.c (gen_split): Initialize n_alternatives.
+
+	* romp.md (movdf): Fix typo in operand_subword call in define_split.
+
+Fri Jun 26 04:38:37 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Make stdarg mechanism work with libc.
+	* va-hp800.h, va-i860.h, va-i960.h, va-mips.h, va-pyr.h, va-sparc.h):
+	Don't define or declare va_list; declare __gnuc_va_list.
+	But only declare it once.
+	Define other things only if _STDARG_H or _VARARGS_H.
+	Declare va_end as well as defining it.
+	* gstdarg.h: Likewise.
+	If __need___va_list was defined, then undef it
+	and don't define _STDARG_H.
+	For all machines, declare va_list from __gnuc_va_list
+	but only if _STDARG_H is defined.
+
+	* gvarargs.h: Test _ANSI_H_, not _ANSI_H.
+
+Thu Jun 25 23:24:02 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* ns32k.c (print_operand):
+	Change NO_IMMEDIATE_PREFIX_IF_SYMBOLIC conditional to #ifdef.
+
+	* genoutput.c (gen_split): Set d->n_alternatives.
+
+	* Makefile.in (test-protoize-simple): Expect just 400 lines.
+	(install-common-headers): When comparing srcdir with ., use pwd.
+
+Tue Jun 16 22:11:12 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* Makefile.in (enquire.o): Don't delete/copy enquire.c, just use
+	the copy in the source directory.
+
+Tue Jun 25 23:52:27 1992  Howard Chu  (hyc@hanauma.jpl.nasa.gov)
+
+	* libgcc2.c (__builtin_saveregs): Use SVR4 code on Alliant FX2800,
+	but with BSD function-naming convention.
+
+	* va-i860.h: Use SVR4 definitions of __va_saved_regs and va_list
+	on Alliant FX2800.
+
+	* fx2800.h (I860_REG_PREFIX, ASM_COMMENT_START): Deleted.
+	(DBX_NO_EXTRA_TAGS, BSS_ASM_OP): Deleted.
+	(ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Deleted.
+	(ASM_FILE_START): Just call output_file_directive.
+
+Thu Jun 25 06:49:15 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (process_init_constructor): Strip NON_LVALUE_EXPR
+	from specified array index.
+
+	* configure (i386-*-bsd*, i386-*-mach*): Don't set tmake_file.
+	They used to use t-libc-ok.
+
+	* input.h (struct file_stack): Revert prev. change.
+
+Thu Jun 25 06:33:52 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* stmt.c (expand_end_case): Add CASE_VALUES_THRESHOLD.
+	* m88k.h (CASE_VALUES_THRESHOLD): Define.
+
+Thu Jun 25 06:13:39 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* explow.c (plus_constant, case PLUS): Remove obsolete code;
+	use recursive call in case remaining operand is one we handle.
+
+Wed Jun 24 19:15:14 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (subst, case PLUS): If adding two things with no bits
+	in common, convert to IOR.
+
+	* expr.c (do_jump, case BIT_AND_EXPR, COMPONENT_REF): Don't narrow
+	comparison unless byte accesses are not slow and we have a
+	comparison in the new mode.
+
+Wed Jun 24 14:29:09 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-parse.y (primary): If built-in decl has not had
+	an official declaration, print warning.
+	* c-decl.c (builtin_function): Set C_DECL_ANTICIPATED for
+	user-visible names.
+	* c-tree.h (C_DECL_ANTICIPATED): New macro.
+
+	* fixincludes: Make some symlinks in the `multimedia' subdir.
+
+	* i386.c: Change #error to just error.
+
+	* protoize.c: Normalize error message syntax.
+	(process_aux_info_file): Don't delete .X file if it existed before.
+	(explicity compare modtime with .c file.
+
+Wed Jun 24 14:10:35 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.c (sparc_frw_compute_frame_size): New function, for flat
+	register window model support.
+	(sparc_frw_save_restore): Likewise.
+	(sparc_frw_output_function_prologue): Likewise.
+	(sparc_frw_output_function_epilogue): Likewise.
+	(sparc_frw_epilogue_delay_slots): Likewise.
+	(sparc_frw_eligible_for_epilogue_delay): Likewise.
+
+Tue Jun 23 22:36:12 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (rescan): Recognize # only when reading directly from a file.
+
+	* input.h (struct file_stack): Add member `fd'.
+
+	* regclass.c (regno_first_uid, regno_last_uid): Make elements ints.
+	(reg_scan): Allocate and clear them as ints.
+	* regs.h: Fix the declarations.
+
+	* Create driver executable with name xgcc; rename to gcc in installing.
+	(xgcc): Target renamed.
+	(GCC_FOR_TARGET, GCC_PASSES, start.encap, specs, gcc-cross):
+	(install-common, install-collect2): Rename in deps, commands or value.
+	(install-collect2): Always get driver from xgcc whether cross or not.
+
+Tue Jun 23 00:00:35 1992  Brendan Kehoe  (brendan@cs.widener.edu)
+
+	* toplev.c (strip_off_ending): Also strip off .C and .cxx.
+
+Tue Jun 23 18:58:43 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* genrecog.c (add_to_sequence): Don't ignore mode of first operand
+	of a MATCH_OPERAND or MATCH_DUP_OP rtl.
+	* sparc.md (scc): Use noov_compare_op instead of normal_compare_op.
+
+	* function.c (expand_function_start): When not optimizing, don't
+	put static chain pointer in a pseudo register.
+
+	* sparc.c (print_operand): For '*', only annul branch if
+	optimizing, to avoid dbx bug.  Add '(' to handle unoptimized case.
+	* sparc.h (PRINT_OPERAND_PUNCT_VALID_P): Add '('.
+	* sparc.md (jump): Add '%(' to pattern.
+
+	* c-decl.c (store_parm_decls): Change type of void parameter to
+	error_mark_node.
+
+	* configure (m68k-*-sysv4*): Use xm-m68kv.h not xm-m68kv4.h.
+
+	* configure: Add -prefix option.
+
+	* vax.c (split_quadword_operands): Declare paramater n.
+
+	* i960.h (WORD_SWITCH_TAKES_ARG): Add -aux-info.
+
+	* xcoffout.c (xcoffout_declare_function): Cast alloca result to char *.
+
+	* c-convert.c (convert_to_integer): Don't pass truncation past
+	shift that is larger than the size being truncated to.
+
+Tue Jun 23 06:15:47 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* optabs.c (expand_binop, expand_unop): Try widening before trying
+	to make a library call.
+
+	* stmt.c (expand_return): Add missing emit_queue call in tail
+	recursion case.
+
+	* cse.c (simplify_unary_operation): Add SIGN_EXTEND and
+	ZERO_EXTEND to the operations we handle for wide results.
+
+	* expr.c (emit_block_move): Convert size operand to mode that will
+	be passed to emit_library_call.
+
+Tue Jun 23 00:41:03 1992  Paul Eggert  (eggert@shadow)
+
+	* objc-parse.y (stmt): Fix mispelling for "label" in message.
+
+	* cccp.c: (deps_file, pipe_closed): Deleted.
+	(main): Do not open deps_file until needed.
+	Check error status of dep_stream and stdout more carefully.
+
+Tue Jun 23 00:21:05 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (protoize.1, unprotoize.1): Rules deleted.
+	(install-man, proto, realclean): Don't operate on them.
+	* proto-man: File deleted.
+
+	* protoize.c (main): Support -v as alias for -V.
+
+Mon Jun 22 21:50:01 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (compare, compare3): Discard error output from second
+	tail.  If it fails, don't compare that file.
+
+	* Makefile.in (stamp-proto): Move the touch command last.
+
+	* cccp.c (finclude): Use xmalloc, not alloca, for file contents.
+
+	* stmt.c (check_for_full_enumeration_handling): For a case range,
+	consider all values in the range as handled.  Also, check both ends
+	for being in the enumeration.
+
+	* ns32k.h (NS32K_DISPLACEMENT_P): Wide displacement range applies to
+	all models.
+
+Mon Jun 22 20:29:47 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* expr.h (*_libfunc):  Added missing extern declarations of libfuncs
+	to handle operations on/for TFmode and XFmode operands.
+	* expr.c (convert_move):  Added missing code to handle moves (with
+	conversion) from/to TFmode and XFmode operands.
+	* optabs.c (*_libfuncs):  Added missing definitions of libfuncs
+        to handle operations on/for TFmode and XFmode operands.
+	(emit_float_lib_cmp):  Added missing code to handle XFmode and TFmode
+	comparisons.
+	(init_fixtab):  Added missing code to handle fixing (and trunc'ing)
+	of XFmode and TFmode operands to various sizes of ints.
+	(init_floattab):  Likewise, but for "float" operations from ints to
+	either XFmode or TFmode.
+	(expand_float):  Likewise.
+	(expand_fix):  Likewise.
+	(init_libfuncs, init_integral_libfuncs, init_floating_libfuncs): New
+	functions added to initialize whole hunks of various optabs with
+	appropriate `libfunc' field values.
+	(init_optabs):  Use `init_integral_libfuncs' or `init_floating_libfuncs'
+	wherever a group of consecutive optab entries need to all have their
+	`libfunc' fields initialized.
+	(init_optabs):  added missing code to handle all operations on/of
+	XFmode and TFmode operands.
+
+Mon Jun 22 06:40:32 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* rs6000.h (MEMORY_MOVE_COST): Increase to 6, from 4.
+	(enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add new reg
+	classes SPEC_OR_GEN_REGS and NON_FLOAT_REGS.
+
+	* rs6000.h (EXTRA_CONSTRAINT): Don't use indirect_operand; instead
+	check explicitly.
+
+	* rs6000.md (divmod): Use "2" constraint instead of using "q"
+	twice.
+	(tablejump): Constraint of "r" should be "l".
+
+	* emit-rtl.c (init_emit): Show that all pointers into the frame are
+	pointer registers.
+
+Mon Jun 22 04:20:26 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* va-sparc.h (va_arg): Rename local identifiers to start with __.
+
+Sun Jun 21 14:51:42 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fold-const.c (real_value_truncate): New function.
+	All calls to REAL_VALUE_TRUNCATE changed to use this function.
+
+	* reload1.c (reload): Record which insn attains each maximum need.
+	If can't find a spill, call spill_failure and return 1.
+	(spill_failure): New subroutine.
+	* global-alloc.c (global_alloc): Return 1 if reload returned 1.
+	* toplev.c (rest_of_compilation): If they return nonzero, give up
+	compiling this function.
+
+	* c-decl.c (duplicate_decls): Never warn if redeclaring
+	a predeclared function.  Use the new declaration's types
+	but keep any predeclared volatile flag.
+	If redeclaring builtin function, use new declaration's type.
+	If an old decl becomes volatile, fix the DECL_RTL.
+	* varasm.c (make_var_volatile): New function.
+
+	* configure (mips-sony-bsd): Use xm-mips.h.
+	* xm-mipsbsdn.h: File deleted.
+
+	* protoize.c (process_aux_info_file): Simplify logic for calling
+	gen_aux_info_file.  Get rid of the label `retry'.
+
+	* m68ksgs.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP):
+	Override for sgs syntax.
+
+Sun Jun 21 14:06:41 1992  Brendan Kehoe  (brendan@cs.widener.edu)
+
+	* va-sparc.h (va_arg): Use a character array of size TYPE for
+	`d' in the union, and return its dereference as TYPE.
+
+Sun Jun 21 14:04:36 1992  Wilson Tien  (wtien at urbana.mcd.mot.com)
+
+	* m68k.c (print_operand_address) [MOTOROLA]: Use .w and .l, not :w, :l.
+
+Sat Jun 20 06:32:11 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* stor-layout.c (get_best_mode): If SLOW_BYTE_ACCESS is true, return
+	widest mode (but no wider than UNITS_PER_WORD) that meets all
+	the conditions.
+
+	* combine.c (make_extraction): Always ensure we have a SUBREG when
+	we make a STRICT_LOW_PART.
+
+	* varasm.c (const_hash, compare_constant_1, record_constant_1):
+	Handle case when TREE_VALUE of a constructor is zero.
+	(output_constant): Use CONSTRUCTOR_ELTS.
+
+	* cse.c (cse_insn): Memory is not invalidated by a constant
+	subroutine call.
+	(delete_dead_from_cse): Correctly check for being within a
+	libcall block.
+
+	* cse.c (canon_reg): Call validate_change with IN_GROUP equal to 1.
+	(cse_insn): Call apply_change_group after canon_reg.
+	When canonicalizing, call validate_change with IN_GROUP equal to
+	one and also call when canon_reg would.
+
+	* combine.c (subst, shift cases): Use force_to_mode in
+	SHIFT_COUNT_TRUNCATED case.
+
+	* rs6000.md: Add new pattern to split move of large constant.
+
+	* cse.c (delete_dead_from_cse): Really delete insn instead of 
+	turning it into a NOTE.
+
+	* romp.md (shift patterns): Use QImode for count operand.
+
+Sat Jun 20 06:31:21 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* a29k.md (storehinhww): Use inhw not inbyte.
+
+Thu Jun 18 16:01:56 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* protoize.c (WIFEXITED, WEXITSTATUS): Delete unused macros.
+
+	* combine.c (subst): If comparison operator has floating-point
+	result, adjust the value returned by simplify_relational_operation
+	accordingly.
+	* integrate.c (subst_constants): Likewise.
+	* loop.c (get_condition): Likewise.
+	* cse.c (fold_rtx): Likewise.
+	When returning TRUE or FALSE, handle comparisons returning
+	floating-point.
+	(find_comparison_args): Handle comparisons returning FP values;
+	only look at STORE_FLAG_VALUE for comparisons returning integers.
+
+	* combine.c (try_combine, subst): Pass both comparison arguments
+	to SELECT_CC_MODE.
+	* i386.h, i960.h, i960.c, mips.h, pa.h, pa.c, rs6000.h:
+	Add second argument to SELECT_CC_MODE.
+	* sparc.h, sparc.c: Likewise.
+
+	* cse.c (insert_regs): Make a quantity for the register in a 
+	SUBREG if it doesn't have one.
+	(fold_rtx, case SUBREG): Always try to find a constant equivalent
+	for a SUBREG; try for CONST_DOUBLE as well.
+	(cse_insn): Call insert_regs on DEST if it is a SUBREG.
+
+Thu Jun 18 15:01:29 1992  Mike Stump  (mrs@albert.gnu.ai.mit.edu)
+
+	* c++: Allow for better quoting and -v handling.
+
+Thu Jun 18 14:49:20 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+    For RMS:
+	* varasm.c: Declare text_section and readonly_data_section.
+
+	* dpx2.h (CPP_SPEC): Define __HAVE_68881__ unless -msoft-float.
+	DPX/2 machines all have a 68882.
+
+	* x-i386sco (RCCFLAGS): Use -DNULL=0 to avoid suurious warnings
+	from rcc.
+
+	* seq386.h (SIZE_TYPE): The Sequent running Dynix uses int for size_t.
+
+Thu Jun 18 14:36:41 1992  Mike Stump  (mrs@albert.gnu.ai.mit.edu)
+
+	Merge in Cygnus sources...
+
+	Fri Jun  5 15:00:55 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-typeck.c (build_c_cast): When casting, propagate const'ness
+	from cast type.  When casting to a reference to T, really just
+	cast to T.
+
+	* cp-cvt.c (build_up_reference): Make a copy of a node before
+	changing it.  Only propagate the const bit if we are not
+	subverting it.
+
+	Fri Jun  5 14:36:19 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-cvt.c (build_up_reference): When casting away const on
+	references, do not report an error.
+
+	Fri Jun  5 13:26:11 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-init.c (build_new): Handle new placement with arrays.
+
+	Thu Jun  4 08:26:44 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-search.c (compute_visibility): DERIVED_FROM_P had its
+	arguments reversed, switched them to be in the right order.
+	Fixes visibility on protected members.
+
+	Wed Jun  3 14:45:40 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-parse.y (unary_expr): Make it illegal to use delete on
+	a pointer to a const object.  With help from Brendan Kehoe.
+
+	Wed Jun  3 13:25:26 1992  Ken Raeburn  (Raeburn@Cygnus.COM)
+
+	* cp-parse.y (template_instantiate_once): Set
+	CLASSTYPE_GOT_SEMICOLON to eliminate messages about missing
+	semicolons.
+
+	* cp-decl.c (start_function): Don't emit error message for missing
+	semicolon after class decl; that syntax (declaring both class and
+	function returning that type) should be legal.  Do emit a warning if
+	it's not an anonymous name.
+
+	Mon Jun  1 18:08:09 1992  Mike Stump  (mrs at cygnus.com)
+
+	Sat May 30 15:38:54 1992  Brendan Kehoe  (brendan@cs.widener.edu)
+
+	* cp-decl.c (grokdeclarator): Don't allow main to be static.
+
+	Mon Jun  1 17:52:24 1992  Mike Stump  (mrs at cygnus.com)
+
+	Sat May 30 15:38:54 1992  Brendan Kehoe  (brendan@cs.widener.edu)
+
+	* cp-decl.c (poplevel): Use DECL_INITIAL to detect undef label
+	instead of DECL_SOURCE_LINE.
+
+	Mon Jun  1 17:22:54 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-parse.y (unary_expr): Don't allow old placement syntax(with {})
+	nor dynamic with new (with ()) new placement syntax.  Completes May 27
+	fix.
+
+	Mon Jun  1 13:57:28 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-type2.c (digest_init): Trailing '\0' is never ignored in
+	initializations using strings in ANSI draft C++ unlike ANSI C.
+
+	Mon Jun  1 07:18:13 1992  Michael Tiemann  (tiemann at rtl.cygnus.com)
+
+	* cp-decl.c (pushdecl): Re-fix May 12 change regarding DECL_CONTEXT.
+	* cp-call.c (build_method_call): Go back to using DECL_CONTEXT
+	instead of DECL_CLASS_CONTEXT.  DECL_CONTEXT says when a function
+	was first declared virtual in a class, which is needed information
+	in case the virtual function comes from a virtual baseclass (because
+	the derived class won't have a vtable entry for that function (if it
+	has a vtable at all!)).
+
+	Wed May 27 17:05:50 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-parse.y (unary_expr): Handle new placement syntax, desupport
+	the old placement syntax with a pedwarn.
+
+	Tue May 26 17:30:28 1992  Mike Stump  (mrs at cygnus.com)
+
+	Thu May 21 17:13:38 1992  Michael Tiemann  (tiemann at cygnus.com)
+
+	* cp-decl.c (grok_enum_decls): Allow reference to nested enums from
+	other classes for NICHL.
+
+	Tue May 26 15:31:30 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-*.[chy]: Always include "assert.h" and not <assert.h> to
+	be consistent.
+
+	Tue May 26 10:07:02 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-parse.y (return_init): Fix simple typo that caused '='
+	initialized named return values to fail.
+
+	Mon May 25 11:42:18 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-parse.y (component_decl): Handle anonymous unions as before,
+	except check to make sure it is really an anonymous union.
+
+	Sat May 23 23:37:38 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-tree.c (layout_basetypes): Don't core dump on erroneous input.
+
+	Sat May 23 22:04:31 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-typeck.c (c_expand_start_case): build_type_conversion can
+	return a NULL_TREE, so don't try and find a code or type of it.
+
+	Wed May 20 09:09:08 1992  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* cp-call.c (build_method_call): Use DECL_CLASS_CONTEXT, not
+	DECL_CONTEXT to find the class in which FUNCTION was declared (for
+	non-virtual calls).
+
+	Tue May 19 02:08:39 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-parse.y (component_decl): Remove some bogus code that
+	prevents empty nested union definitions from compiling.
+
+	Tue May 19 01:08:23 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-decl.c (grokfndecl): Propagate volatile from type of
+	function out to the decl for the function.
+
+	Mon May 18 17:19:39 1992  Mike Stump  (mrs at rtl.cygnus.com)
+
+	* cp-search.c (get_binfo): Since unions cannot participate in
+	inheritance relationships, return 0 instead of aborting.
+
+	Fri May 15 13:37:40 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-parse.y (template_type_name): Handle
+	template<class T> class task { friend task<T>* preempt(task<T>*); };
+	syntax.
+
+	* cp-pt.c (lookup_template_class): Ditto.
+
+	Thu May 14 22:54:17 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-tree.c (layout_basetypes): Don't warn about non-virtual
+	destructors unless the user asks with -Wall.
+
+	Thu May 14 22:38:54 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-type2.c (build_functional_cast): exp may be an error_mark_node,
+	don't crash when it is.
+
+	Thu May 14 18:56:26 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-decl.c (hack_incomplete_structures): Test for underflow
+	before decreamenting n_incomplete in current_binding_level, since
+	it is unsigned.	
+
+	Tue May 12 15:52:49 1992  Mike Stump  (mrs at cygnus.com)
+
+	Mon May 11 14:10:50 1992  Ron Guilmette (rfg at ncd.com)
+
+	* cp-decl.c (poplevel): Reconciled with recent changes made to the
+	`poplevel' routine in c-decl.c.  The changes here cause LABEL_DECL
+	nodes to be attached (as the BLOCK_VARS chain) to the BLOCK node
+	which represent the outermost scope of the function.
+
+	Mon May 11 12:35:44 1992  Ron Guilmette  (rfg at ncd.com)
+
+	* cp-class.c (finish_struct): Check DECL_CONTEXT to see if it is
+	any sort of a type (e.g. struct *or* union) rather than just
+	checking it to see if it's a RECORD_TYPE.
+	* cp-decl.c (pushdecl): Set DECL_CONTEXT of pushed ..._DECL node,
+	just as is done in c-decl.c.
+	(pushdecl): Delete useless variable `cntxt'.
+	(finish_decl): Set TREE_USED rather than DECL_FROM_INLINE in order
+	to prevent "unused" warnings.
+	(finish_function): Check DECL_CONTEXT to see if it is a type.
+	(finish_function): Fixed indentation problem.
+	* cp-gc.c (build_m_desc): Check DECL_CONTEXT to see if it is a type.
+	* cp-init.c (build_virtual_init): Fix indentation.
+	* cp-lex.c (store_pending_inline): Check DECL_CONTEXT to see if it
+	is a type.
+	* cp-pt.c (tsubst, do_pending_expansions): Check DECL_CONTEXT to see
+	if it is a type.
+	* cp-typeck.c (mark_addressable): Check DECL_CONTEXT to see if it is
+	any sort of a type (e.g. struct *or* union) rather than just
+	checking it to see if it's a RECORD_TYPE.
+
+	Tue May 12 08:52:06 1992  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* cp-typeck.c (build_component_ref): Call `break_out_cleanups'.
+	Also clean up indentiation.
+
+	Mon May 11 23:14:04 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-decl.c (pushtag): Handle structure tags in the same way as the
+	C front-end.  This completes a change that rms put in on 3/12/92 and
+	I put in the Cygnus tree on 3/13/92 and Mark Eichin took back out on
+	3/18/92.
+
+	Sun May  3 00:29:59 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-lex.c (copy_lang_decl, store_pending_inline): Cast
+	arguments to bcopy to be char *.
+
+	Fri May  1 12:22:31 1992  Michael Tiemann  (tiemann@cygnus.com)
+
+	* cp-init.c (expand_aggr_init, expand_vec_init): When comparing
+	array types, use `comptypes' instead of ==, since two array types
+	may be structurally identical but not == if one was defaulted from
+	an initializer.
+
+	Wed Apr 29 01:25:25 1992  Mike Stump  (mrs at cygnus.com)
+
+	* cp-init.c (do_friend): Check that PREVIOUS_DECL is non-NULL.
+
+Thu Jun 18 14:15:07 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pa.md (insv): Use `+' for operand 0 constraint.
+
+Thu Jun 18 13:39:22 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump Meissner version # to 20.
+	(final_prescan_insn): Add declaration.
+	(FINAL_PRESCAN_INSN): Just call final_prescan_insn.
+	(CONST_OK_FOR_LETTER_P): Rewrite some tests, so that they will
+	work on host systems with 64 bit integers.
+
+	* mips.c (large_int): Rework, so that we don't get funny boundary
+	conditions on systems with 64 bit integers.
+	(mips_move_1word): Just use li to load constants that can be done
+	with lui, instead of issuing the lui, since the GAS bug that
+	generated two instructions has been fixed.
+	(final_prescan_insn): Move the checking for filling the delay
+	slots here from the FINAL_PRESCAN_INSN macro.
+
+	* mips.md (andsi3, iorsi3, xorsi3): Make the constraints match
+	the real machine (the predicate still is more general in order
+	to optimize bitfields at the expense of not CSE'ing large
+	constants used in logical ops, and making reload load it into
+	a scratch register).  Don't use $1 as a temporary register any
+	more.
+
+	* varasm.c (decode_reg_name): If `memory' return -4.
+
+	* stmt.c (expand_asm_operands): If `memory' is used as a clobbered
+	register, emit a (clobber (const_int 0)) to force the compiler not
+	to cache memory values in registers across the assembly
+	instruction(s).
+
+	* mips-tfile.c (read_line): Semicolons within strings are not
+	counted as statement separators.
+
+	* collect2.c (scan_prog_file, OSF/rose case): Cast pointer arguments
+	to bcopy to generic * to avoid warnings.
+
+Thu Jun 18 12:04:53 1992  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
+
+	* c++: If given -v with no file args, don't pass the libraries to
+	gcc.
+
+Thu Jun 18 10:34:22 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* expr.c (expand_builtin, BUILT_IN_FSQRT): Emit queue of increment
+	instructions before starting a sequence that may get thrown away.
+
+See ChangeLog.5 for earlier changes.
diff --git a/gcc/ChangeLog.7 b/gcc/ChangeLog.7
new file mode 100644
index 0000000..784fe4f
--- /dev/null
+++ b/gcc/ChangeLog.7
@@ -0,0 +1,10376 @@
+Sun Jun 20 13:37:00 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.4.5 released.
+
+	* c-common.c (decl_attributes): If first_arg_num is 0, no error for it.
+
+	* Makefile.in (extraclean): Delete *.gz, and other diff and tar files.
+
+Sun Jun 20 18:09:50 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* calls.c (expand_call): In last change, preserve the temp slot.
+
+Sat Jun 19 19:55:43 PDT 1993  Ron Guilmette  (rfg@netcom.com)
+
+	* dwarfout.c (type_main_variant): New function.
+	Use it in place of TYPE_MAIN_VARIANT everywhere in dwarfout.c.
+
+	* c-decl.c (grokdeclarator):  Avoid the use of macros for ..._TYPE
+	nodes in cases where a parameter's type is error_mark_node.
+
+Sat Jun 19 03:57:57 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.4.4 released.
+
+	* toplev.c (compile_file): For static decl never defined,
+	use just warning, not pedwarn.
+
+	* dbxout.c (dbxout_type): Reinstall #if 0 around code for
+	outputting structure types, that confused GDB.
+
+Fri Jun 18 20:06:35 1993  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): adjust stack pointer by 4 prior
+	to calling C$MAIN_ARGS, otherwise POSIX edition of that routine dies.
+
+Fri Jun 18 14:21:14 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (clean): Delete objc-headers subdir.
+
+	* config/m68k/m68k.h (TARGET_SWITCHES): For -m68020, -m68000 and
+	-msoft-float, turn off 01400 bits.
+
+	* Makefile.in (gcc.xtar.gz): Renamed from gcc.tar.z.
+	(dist): Change the dependency.
+	(mostlyclean): Delete tmp-gcc.xtar.gz.
+
+	* c-iterate.c (save_exprs): New variable.
+	(collect_iterators): Don't process a SAVE_EXPR twice.
+	(iterator_expand): Clear save_exprs.
+
+	* Makefile.in (gcc.info, cpp.info): Actually cd to srcdir.
+
+	* configure (clipper-intergraph-clix*): Use install-headers-cpio.
+
+Fri Jun 18 13:37:16 1993  Michael Meissner  (meissner@osf.org)
+
+	* mips.c (output_block_move): Don't abort if one of the input
+	registers is allocated as a scratch register, just use fewer
+	scratch registers.
+
+Fri Jun 18 00:25:16 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i386/i386.c (call_insn_operand): Require constant address
+	be a general_operand.
+	(expander_call_insn_operand): New fn (what call_insn_operand was).
+	* config/i386/i386.md (call_pop, call, call_value_pop, call_value)
+	(untyped_call): Use expander_call_insn_operand.
+
+Thu Jun 17 17:58:11 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/pa/pa.md (decrement_and_branch_until_zero):
+	Pattern disabled.
+
+Thu Jun 17 13:34:20 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* unroll.c (calculate_giv_inc): Add new variables increment_total
+	and tries, and new label retry, to handle case where increment is
+	two add instructions.
+
+Thu Jun 17 12:13:53 1993  Minh Tran-Le  (mtranle@paris)
+
+	* config/i386/aix386ng.h: Changes for non-GAS gcc.
+	(ASM_FILE_START_1): Always output .noopt because /bin/as is buggy.
+	Added #undef to {INIT,FINI,CTORS,DTORS}_SECTION_ASM_OP, ... when
+	not using GAS.
+	(CONST_SECTION_FUNCTION): Override svr3 default.
+	(EXTRA_SECTION_FUNCTIONS): Override svr3 default.
+	(OBJECT_FORMAT_COFF): Added define for collect2.
+	(MY_ISCOFF): For collect2 to handle aix and svr3 object file.
+	
+	* config/i386/aix386.h (USE_GAS): New define.
+
+Thu Jun 17 00:26:38 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reg-stack.c (stack_result_p): New function.
+	(stack_reg_life_analysis): Use that.
+
+	* final.c (output_addr_const): Don't insert a leading space
+	in the CONST_DOUBLE_HIGH != 0 case.
+
+Thu Jun 17 00:09:19 1993  Jeff Law  (law@snake.cs.utah.edu)
+
+	* pa.h (LEGITIMATE_CONSTANT_P): Reject function addresses for now.
+
+Wed Jun 16 20:14:10 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-typeck.c (build_unary_op): Make sure it's the global fn `main'
+	before complaining about taking the address of it.
+
+Wed Jun 16 16:24:31 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i386/xm-sysv4.h (SMALL_ARG_MAX): Defined.
+
+	* c-typeck.c (check_format): Don't crash if cur_type is an error_mark.
+	Handle identifier_node as the TYPE_NAME.
+
+Mon Jun 14 16:09:24 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* calls.c (expand_call): If PCC_STATIC_STRUCT_RETURN and TARGET
+	is zero, copy result from static location.
+
+        * cse.c (invalidate_skipped_set): Promote "nonscalar" to "all".
+
+Mon Jun 14 16:01:34 1993  Karl Berry  (karl@cs.umb.edu)
+
+	* fixincludes (stdio.h math.h ctype.h sys/{limits.h,fcntl.h,dirent.h}):
+	Fix STDC/POSIX and other things for Interactive	Unix 2.2 or later.
+
+Mon Jun 14 04:41:38 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload.c (make_memloc): Don't reuse a memloc.
+
+Sun Jun 13 16:01:37 1993  Jeff Law  (law@snake.cs.utah.edu)
+
+	* pa.md (iorsi3): Explicitly set length to 1.
+	(andsi3, lshrsi3, rotrsi3, rotlsi3): Likewise.
+	(ashift and ashiftrt by const_int_operand): Likewise.
+	((and (ashift)) optimizer): Likewise.
+
+Sun Jun 13 20:23:04 1993  Stephen Moshier  (moshier@world.std.com)
+
+	* real.c (ltoe, ultoe, eifrac, euifrac): Handle 64-bit longs.
+	(SFMODE_NAN, DFMODE_NAN, XFMODE_NAN, TFMODE_NAN): New macros
+	permit definitions of NaN patterns to be overridden in tm.h.
+
+Sun Jun 13 12:55:22 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (start_function): Avoid a null-reference on CTYPE.
+
+Sun Jun 13 08:22:30 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case COND_EXPR): Fix typo; const1_rtx should
+	be const0_rtx when ignoring expression.
+
+Sun Jun 13 00:15:00 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* genopinit.c (optabs): For strlen_optab, don't look for `2' in name.
+
+Sat Jun 12 20:23:04 1993  Stephen Moshier  (moshier@world.std.com)
+
+	* real.c (ereal_from_float, ereal_from_double): New functions.
+	* real.h (REAL_VALUE_FROM_TARGET_SINGLE): New macro.
+	(REAL_VALUE_FROM_TARGET_DOUBLE): Likewise.
+	* emit-rtl.c (gen_lowpart_common): Use those macros if REAL_ARITHMETIC.
+
+Sat Jun 12 13:44:00 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sched.c (add_dependence): Reject CODE_LABELs when searching for
+	last insn of a sched group.
+
+Sat Jun 12 08:06:25 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* m68k.md (movqi): Handle copying an address register to or
+	from memory when the address uses the address register.
+
+Sat Jun 12 00:17:06 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cse.c (record_jump_cond): Look up op1 again after inserting op0.
+
+Fri Jun 11 21:50:16 1993  John F Carr  (jfc@Athena.mit.edu)
+
+	* rs6000.md (movsf, movdf): Handle a move from an integer register
+	before reload.  This can happen if the user uses asm to put a floating
+	point variable in an integer register.
+
+Fri Jun 11 20:04:43 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.c (rs6000_gen_section_name): Only replace last period
+	in filename with section name and correct calculation of
+	string length.
+
+	* recog.c (constrain_operands): Correctly ignore MATCH_OPERATOR
+	operands.
+
+	* reload1.c (eliminate_regs_in_insn): Don't use a later elimination
+	than eliminate_regs would use.
+
+	* c-decl.c (finish_decl): Don't modify DECL_INITIAL of a PARM_DECL.
+
+Thu Jun 10 23:48:01 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* genextract.c (main): Use __volatile__, not volatile.
+
+Thu Jun 10 16:21:08 1993  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h (SUBTARGET_SWITCHES): Add -m{,no-}ident.
+	(ASM_SPEC): Pass -v to assembler if used.
+	(OVERRIDE_OPTIONS): Don't allow -fpic if using the OSF/rose object
+	format.
+	(ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_NAME): If using ELF,
+	 emit a .type pseudo op that says the label is either an object or
+	 a function.
+	 (ASM_DECLARE_FUNCTION_SIZE): Copy from svr4.h.
+	 (SCCS_DIRECTIVE): Define.
+	 (ASM_FILE_END): Unless -mno-ident, emit a .ident directive that
+	 identifies GCC and whether several switches are used.
+
+	 * i386/osfelf.h (ASM_SPEC): Pass -v to assembler if used.
+	 (OBJECT_FORMAT_ROSE): Undefine.
+
+Thu Jun 10 16:20:24 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* expmed.c (MAX_BITS_PER_WORD): Define earlier.
+	(shift_cost, shiftadd_cost, shiftsub_cost): Use MAX_BITS_PER_WORD.
+
+Thu Jun 10 12:56:18 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sched.c (sched_analyze_2): Don't ignore USE insns when creating
+	dependencies.
+	(sched_analyze): Likewise.
+
+Wed Jun  9 12:58:51 1993  Michael Meissner  (meissner@osf.org)
+
+	* configure (i386-*-osfelf): Add new configuration for OSF/1 using
+	the ELF object file format.
+
+	* i386/osfelf.h (new file): New config file for OSF/1 with ELF.
+	Include osfrose.h and redefine things as needed.
+
+	* i386/osfrose.h (SUBTARGET_SWITCHES): Add -melf, -mrose, and
+	-mno-rose switches.
+	(HANDLE_SYSV_PRAGMA): Define.
+	(IDENTIFIER_PREFIX, IDENTIFIER_SUFFIX): Remove unused macros.
+	(CPP_PREDEFINES): Add -Acpu(i386) -Amachine(i386) -Asystem(unix).
+	(CPP_SPEC): Define __ROSE__ if compiling for OSF/rose and __ELF__
+	if compiling for the ELF object format.
+	(CC1_SPEC): Pass -mrose if no object format switch.
+	(DWARF_DBX_REGISTER_NUMBER): Map registers according to the
+	debugging format.
+
+Wed Jun  9 13:21:03 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Mon Jun  7 18:01:31 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-search.c (is_subobject_of_p, lookup_field, lookup_fnfields):
+	Because virtual bases don't necessarily share the same binfo, use
+	the binfo hierarchy of TYPE_BINFO of any virtual bases, when
+	performing hiding checks.  Fixes problem introduced on Thu Mar 25
+	23:09:27 1993.  The symptom is the compiler reports non ambiguous
+	members as being ambiguous.
+
+	Wed Jun  2 11:53:24 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-search.c (lookup_fnfields_here): Use TYPE_MAIN_VARIANT on
+	context types before comparing.  Fixes const member functions not
+	being found in templates.
+
+Tue Jun  8 19:44:23 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (finish_function): Move setting of the DECL_RESULT's
+	context and calling setjmp_protect after poplevel, so we have a
+	valid DECL_INITIAL for the fndecl (not an error_mark_node).
+
+Tue Jun  8 13:14:27 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* configure: Added gas support for m88k-* targets.
+
+	* t-luna-gas t-dgux-gas t-m88k-gas: New files in config/m88k.
+
+Tue Jun  8 14:51:44 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* loop.c (move_movables): Delete REG_EQUAL notes that describe a
+	non loop invariant value.
+
+	* sparc.c (call_operand, call_operand_address): Accept any address
+	not just REG rtx.
+
+Tue Jun  8 18:47:39 1993  Torbjorn Granlund  (tege@nada.kth.se)
+
+	* sparc.h: (RTX_COSTS): Make cost of MULT depend on TARGET_V8.
+
+	* pa.h (CPP_SPEC): Fix typo: define __hp9000s700.
+
+Tue Jun  8 06:16:30 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* m88k.h (HARD_REGNO_REGS, HARD_RENO_MODE_OK, MODES_TIEABLE_P):
+	Restrict use of 88110 extended registers to floating point.
+
+Mon Jun  7 15:42:10 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* math-68881.h (atan2): For x <= 0, lump y == 0 with y > 0
+	to get the right result in 0, -1 case.
+
+Mon Jun  7 17:50:25 1993  Jeff Law  (law@snake.cs.utah.edu)
+
+	* pa.h (RTX_COSTS): Cost of MULT also depends on 
+	TARGET_DISABLE_FPREGS.
+
+	* pa.h (ASM_OUTPUT_INT): Always emit special "plabel" relocation for
+	function labels.
+
+Sun Jun  6 16:31:59 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (translate_options): Don't assume option_map[j].arg_info != 0.
+
+	* config/vax/vax.h (PRINT_OPERAND): Prefix constant by `$'.
+
+Sun Jun  6 00:44:48 1993  Torbjorn Granlund  (tege@nada.kth.se)
+
+	* m88k.md (fix_truncdfsi2): Destination is general register, source
+	general or extended register.
+	(fix_truncsfsi2): Likewise.
+
+Sun Jun  6 00:20:25 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+
+	* objc-act.c (encode_type): Add cases for DImode, encoded
+	as 'q' and 'Q' respectively.
+
+Sat Jun  5 14:02:36 1993  James Van Artsdalen  (james@bigtex.cactus.org)
+
+	* c-decl.c (pushdecl): Copy DECL_FRAME_SIZE for inline function decls.
+
+	* stmt.c (check_for_full_enumeration_handling): Don't create a
+	default label if all enumeration literals are covered by cases.
+
+Sat Jun  5 04:49:19 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* function.c (uninitialized_vars_warning): Change warning text.
+	(setjmp_args_warning): Likewise.
+
+	* c-typeck.c (convert_for_assignment): Allow conversion to union type
+	for pointer if the pointer could convert to the union member.
+
+Fri Jun  4 18:09:47 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* integrate.c (expand_inline_function): Always copy a SUBREG as an
+	argument into a REG.
+
+Fri Jun  4 05:52:28 1993  Torbjorn Granlund  (tege@nada.kth.se)
+
+	* pa.h (RTX_COSTS): Make cost of MULT depend on TARGET_SNAKE.
+
+	* expmed.c (synth_mult): Move code to add or subtract at
+	leftmost 1-bit to before factoring code to decrease the allowed cost
+	quickly.  Restrict it to handle only odd numbers.
+	(init_expmed): Limit mult_cost to make synth_mult run faster.
+
+Fri Jun  4 23:18:35 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+
+	* objc/sendmsg.c (objc_msg_sendv): Pass a dummy va_list, not 0,
+	to objc_error.
+
+Fri Jun  4 16:12:43 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* byteorder.h: Use new-style function definitions, so that this
+	file is both valid C and C++.
+
+Fri Jun  4 00:59:31 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/mips/svr4-5.h (CPP_PREDEFINES): 
+	Add _MIPS_SZINT _MIPS_SZLONG _MIPS_SZPTR.
+
+Thu Jun  3 23:48:39 1993  Jeff Law  (law@snake.cs.utah.edu)
+
+	* pa.c (output_function_epilogue): If the last insn in the
+	current function is a (volatile) call, then emit an extra
+	nop after the call so that RP will point to a valid instruction.
+
+Thu Jun  3 18:52:24 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/nextstep.h (INCLUDE_DEFAULTS): Use same order as cccp.c.
+	Add CCC_INCLUDE_DIR with /ansi and /bsd concatenated.
+
+	* varasm.c (immed_real_const_1): Check explicitly for NaNs.
+
+Thu Jun  3 14:37:25 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* combine.c (num_sign_bit_copies): At end, return 1 is nonzero has
+	the high bit set.
+
+Wed Jun  2 17:27:31 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* loop.c (record_initial): Reject insns that store into subregs.
+
+Tue Jun  1 12:46:48 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.4.3 released.
+
+	* just-fixinc: New file.
+
+	* config/convex/convex.h [_IEEE_FLOAT_] (LINK_SPEC):
+	Use ___gcc_cleanup, not __gcc_cleanup.
+
+Tue Jun  1 07:41:26 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.md (ffs): Delete pattern containing nonexistant instruction.
+
+	* alpha.md (extendsidi2): Correctly do operation when in FP
+	registers and, since expensive, don't have FP regs as a preference.
+
+Tue Jun  1 00:09:46 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes (signal.h): Fix typo in last change.
+
+	* configure: Add missing dash in patterns for mips-*-riscos...
+	In riscos 5 patterns, use fixinc.mips.
+
+	* fixinc.mips: New file.
+
+	* config.sub: Handle 386bsd.
+
+Mon May 31 23:47:00 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/vax/vax.md (untyped_call, blockage): New patterns,
+	basically copied from m68k.md.
+
+Mon May 31 21:46:08 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* romp.c (output_epilog): Don't crash if TYPE_SIZE of an arg is
+	not set.
+
+Mon May 31 00:15:20 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/mips/x-sony (OLDCC): Fix typo.
+
+	* config/mips/bsd-4.h, bsd-5.h, svr3-4.h, svr3-5.h, svr4-4.h, svr4-5.h:
+	(STANDARD_INCLUDE_DIR): Renamed from SYSTEM_INCLUDE_DIR.
+	* config/mips/bsd-5.h, svr3-5.h, svr4-5.h (LINK_SPEC):
+	Delete excess close brace.
+
+	* pa.md (decrement_and_branch_until_zero):
+	Reverse all conditions in reload cases.
+
+	* Version 2.4.2 released.
+
+Sun May 30 21:14:42 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* integrate.c (expand_inline_function): Increment map->const_age
+	before copying REG_NOTES.
+
+	* sparc.c (sparc_builtin_saveregs): Don't set first_reg to zero
+	for varargs.
+
+Sun May 30 23:58:52 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc/Makefile (copy-headers): chmod the headers, not the dir.
+
+	* Makefile.in (objc-headers): Don't dep on force.
+	Touch objc-headers so copy is not repeated at install time.
+
+	* final.c (shorten_branches): Conditionalize last change
+	on SHORTEN_WITH_ADJUST_INSN_LENGTH.
+
+	* pa.h (SHORTEN_WITH_ADJUST_INSN_LENGTH): Defined.
+
+Sun May 30 13:53:30 1993  Jeff Law  (law@snake.cs.utah.edu)
+
+	* final.c (shorten_branches): Call ADJUST_INSN_LENGTH during the
+	shortening phase.
+
+	* pa.c (output_cbranch): In forward/long branch case, only
+	nullify if the delay slot was empty or if the delay slot
+	was explicitly nullified.
+	(output_bb): Likewise.
+	
+	* pa.h (ADJUST_INSN_LENGTH): Call pa_insn_adjust_length.
+
+	* pa.h (INSN_SETS_ARE_DELAYED): Do not call get_attr_type with a 
+	CLOBBER insn.
+	(INSN_REFERENCES_ARE_DELAYED): Likewise.
+
+	* pa.md (call insns and expanders): Do not explicitly clobber %r31.
+
+	* pa.c (pa_insn_adjust_length): Rework.  Add code to handle
+	millicode calls with unfilled delay slots and inline block moves.
+	(compute_movstrsi_length): New function to compute the length of
+	a movstrsi pattern.
+	(output_cbranch): Long branches with unfilled delay slots can
+	always nullify the following instruction if their delay slot
+	was not filled.
+
+Sun May 30 18:58:22 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* mips.c (function_arg_partial_nregs): For BLKmode values, fits in
+	remaining register if total size <= MAX_ARGS_IN_REGISTERS, not <.
+
+Sun May 30 17:45:06 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* emit-rtl.c (operand_subword): Shift by (HOST_BITS_PER_WIDE_INT / 2),
+	not by 32.
+
+	* reload1.c (reload): If only non-group need is unfilled, see if
+	regs spilled for earlier classes can satisfy it.
+
+	* config/mips/iris4loser.h (ASM_SPEC): Add unconditional -O0.
+
+Sat May 29 15:19:57 1993  Jeff Law  (law@snake.cs.utah.edu)
+
+	* pa.md (movdf for const_double): Handle loading
+	a CONST_DOUBLE into general registers.
+	(movsf for const_double): Likewise.
+
+	* pa.c (singlemove_string): Handle SFmode CONST_DOUBLE 
+	as a source operand.
+
+Sat May 29 14:14:30 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (operand_subword): Correctly handle case when
+	REAL_VALUE_TO_TARGET_DOUBLE is used on a 64-bit machine.
+
+Sat May 29 12:15:43 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes (signal.h): Don't mung #endif if nonwhite stuff precedes.
+
+	* rtl.h: Undef PC.
+
+Fri May 28 19:01:39 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure (i[34]86-*-isc*): If gas and not stabs, use isccoff.h.
+
+	* final.c (shorten_branches): Do not call insn_current_length
+	with an insn which has a non-varying length.  Use insn_lengths
+	instead.
+
+	* c-typeck.c (process_init_constructor): Never set current_index
+	itself--always store into current_index_node.
+
+	* dbxout.c (dbxout_type): Add missing `;' for array with no domain.
+
+Fri May 28 16:47:54 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+        * cse.c (fold_rtx): Correct check for associating shifts and
+        ending up with a shift count too large; convert to the
+        largest valid for ASHIFTRT and don't fold all others.
+
+	* combine.c (make_compound_operation, case ASHIFTRT): Fix typo.
+	Was using C1 where C2 is needed.
+
+Fri May 28 17:50:38 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* integrate.c (expand_inline_function): When copy REG_NOTES, must
+	also call subst_constants.
+
+	* gcc.c (process_command): When GCC_EXEC_PREFIX is defined and
+	tooldir is relative, add it to search path in addition to standard
+	directory rather than instead of.
+
+Fri May 28 00:50:53 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/arm/arm.h (GO_IF_LEGITIMATE_INDEX): Check explicitly for
+	upper and lower bounds of valid INDEX.
+
+	* genopinit.c (insn_name_ptr): Declare as variable.
+	(optabs): Fix typo in floatuns case.
+
+Thu May 27 12:13:55 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (simplify_and_const_int, case IOR, XOR, NOT): Don't
+	create constant wider than mode of VAROP.
+
+Thu May 27 20:41:18 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure (i[34]86-ibm-aix*): Set fixincludes.
+	(i[34]86-*-sco*): Don't test --with-gas, just --with-stabs.
+
+Wed May 26 16:05:05 1993  Michael Collison  (collison@osf.org)
+
+	* jump.c (jump_optimize): Insert missing GET_MODE call.
+
+Wed May 26 18:40:09 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* i960.md (ashlsi3): Use shlo instead of shli.
+
+Wed May 26 00:34:33 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/nextstep.h (INCLUDE_DEFAULTS): Undo previous change.
+
+	* Makefile.in (gcc.xtar.z): Renamed from gcc.xtar.Z.  Use gzip.
+	(dist): Depend on gcc.xtar.z.
+	(mostlyclean): Delete temp-gcc.xtar.z.
+
+	* Version 2.4.1 released.
+
+	* c-lex.c (readescape): Don't complain for \% unless pedantic.
+
+	* config/mips/mips.h (ASM_SPEC): If -noasmopt, pass -O0.
+	* config/mips/iris3.h: Likewise.
+
+	* config/mips/iris4loser.h: New file.
+	* config/mips/iris4gl.h: New file.
+	* configure (mips-sgi-iris4loser): New alternative.
+
+Tue May 25 18:05:50 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* dbxout.c (dbxout_block) [DBX_BLOCKS_FUNCTION_RELATIVE]:
+	Get function name from DECL_RTL not from DECL_ASSEMBLER_NAME.
+	* config/sparc/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
+
+	* m68k/sun3.h (FUNCTION_VALUE, FUNCTION_VALUEX): Ifdef out.
+
+	* c-typeck.c (convert_for_assignment): When allowing mixing of
+	signed and unsigned pointers, compare unsigned types not type sizes.
+
+Tue May 25 00:08:42 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* nextstep.h (INCLUDE_DEFAULTS): Delete /NextDeveloper/Headers/ansi
+	and /NextDeveloper/Headers/bsd.
+
+	* regclass.c (regclass): Fix paren error.
+
+	* c-decl.c (finish_decl): If type is laid out, but decl is not,
+	call layout_decl.
+
+	* protoize.c (include_defaults): Update to match cccp.c.
+	* Makefile.in (stamp-proto):
+	Pass LOCAL_INCLUDE_DIR based on local_prefix.
+
+	* stmt.c (expand_asm_operands): Detect constants as outputs.
+
+Mon May 24 18:25:23 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* collect2.c (main): Use TARGET-gcc, not gcc-TARGET.
+
+	* reload1.c (delete_output_reload): Don't delete output reload
+	if cannot_omit_stores is set for that pseudo.
+	(reload): Init and clear cannot_omit_stores.
+	(eliminate_regs): Set cannot_omit_stores.
+
+	* configure (i[34]86-*-sco3.2v4*): Test --with-stabs, not --with-gas.
+
+Mon May 24 14:10:59 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* integrate.c (expand_inline_function): Set MEM_IN_STRUCT_P for
+	return value if needed.
+
+Mon May 24 13:10:07 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-call.c (convert_harshness): Don't dereference a null parm.
+
+	* cp-method.c (dump_init): Don't try to print out the first operand
+	of a TARGET_EXPR if it's not there.
+
+Mon May 24 10:13:26 1993  Mike Stump  (mrs@poseidon.cygnus.com)
+
+	* expr.c (expand_expr): Finish Tue Aug 18 23:07:33 1992 change.  It
+	didn't handle the target != 0 case, now it does.
+
+Mon May 24 00:30:50 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_expr, TARGET_EXPR case):
+	Handle case where DECL_RTL is nonzero.
+
+	* configure (i[34]86-*-isc*): Use install-headers-cpio.
+
+	* genopinit.c (optabs): Add backslashes to prevent SCCS confusion.
+	* config/m68k/tower-as.h (CONSTRUCTOR_NAME_FORMAT): Likewise.
+
+	* combine.c (subst): For subreg-of-constant, don't gen_lowpart
+	if it's a big-endian machine and constant is multi-word.
+
+	* gstddef.h (size_t) [__GNUG__]: Don't typedef it if it's
+	already defined as a macro.
+
+	* config/i386/x-aix (CLIB): Defined.
+	* config/i386/aix386.h (STARTFILE_SPEC, LINK_SPEC): New overrides.
+	* config/i386/xm-aix.h: Undef TRUE and FALSE before #include.
+	* config/i386/aix386ng.h (STARTFILE_SPEC, LINK_SPEC): Don't use
+	crtbegin.o, crtend.o, crtn.o, libp.a.  Use gcrt0.0, not gcrt1.o.
+	(ENDFILE_SPEC): Use crtn.o.
+	(CPP_PREDEFINES): Delete _AIX, AIX, and _I386.  Add ps2, unix.
+	(CPP_SPEC): Add _AIX, _I386, _MBCS.  Handle -posix.
+	(ASM_SPEC): Turned off.
+	* config/i386/t-aix: New file.
+	* configure (i[34]86-ibm-aix*): Use t-aix if using gas.
+
+	* config/i386/sco4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE):
+	New override definitions.
+
+	* toplev.c (compile_file): Undo previous changes (that were to call
+	assemble_zeros whenever DBX_DEBUGGING_INFO is defined).
+
+Sun May 23 16:31:38 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/nextstep.h (INCLUDE_DEFAULTS): Fix missing comma.
+
+	* config/i386/x-aix (FIXINCLUDES): Defined.
+	* fixinc.ps2: New file.
+
+Sun May 23 14:51:06 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+
+	* objc/objc.h (objc_protocol): New field `class_pointer'.
+
+	* objc/init.c (__objc_init_protocols): Call recursively
+	on super protocols.  Make local var `proto_class' static.
+
+Sun May 23 00:49:17 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (BISONFLAGS): Remove -v since output file names are long.
+
+	* reload1.c (choose_reload_regs): If inheriting a spill reg,
+	and reload_out has a wider mode, just copy from that spill reg,
+	don't use it for the reload.
+
+	* reload.c (push_reload): Fix NULL arg in last change.
+
+	* config/m88k/x-tekXD88 (AR_FLAGS): Defined.
+
+Sat May 22 14:49:59 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/mips/mips.h (ASM_SPEC): If -noasmopt, don't pass -O2.
+	* config/mips/iris3.h: Likewise.
+
+	* config/nextstep.h (INCLUDE_DEFAULTS): Put /usr/include/bsd last.
+
+	* config/alpha/alpha.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): 
+	Use hex if infinite, nan, or minus zero.
+
+	* real.c (target_isnan): Use GET_REAL macro to get argument.
+	(ereal_to_int): Fix potentially wrong-endian argument passed to eisnan.
+
+Fri May 21 14:24:01 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/nextstep.h (INCLUDE_DEFAULTS): Add /usr/include/bsd.
+
+	* cccp.c (default_include): Put TOOL_INCLUDE_DIR after
+	LOCAL_INCLUDE_DIR in non-cross case.
+
+	* real.c (emdnorm): Fix typo affecting roundoff behavior in XFmode.
+
+	* config/m68k/amix.h (CPP_PREDEFINES): Add -D__svr4__.
+	(ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL):
+	New override definitions.
+
+	* collect2.c (main) [CROSS_COMPILE]: Use TARGET-TOOL for full_...
+
+	* collect2.c (main): For -debug, if ..._file_name is a null pointer,
+	say so instead of crashing.
+
+	* m68k.md (cmpxf2 recognizer): Test SGS_CMP_ORDER, not HPUX_ASM.
+
+	* c-common.c (constant_expression_warning)
+	(overflow_warning, convert_and_check): Change pedwarn to warning.
+
+	* reload.c (push_reload): When IN is a subreg of a multiword reg
+	that uses a funny number of registers, and SUBREG_WORD is nonzero,
+	and IN must match an output, reload both the reg and the subreg.
+
+	* protoize.c (add_symbol, unexpand_if_needed, abspath): 
+	Supply missing arg to savestring.
+
+	* Makefile.in (info, dvi): New targets.
+
+Fri May 21 10:28:41 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-pt.c (subst): Don't use a method's arguments unless it has some.
+
+Fri May 21 11:51:20 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+
+	* objc/sarray.h (sarray_get): Add #ifdef case for
+	!defined(PRECOMPUTE_SELECTORS) and OBJC_SPARSE2.
+	* objc/sarray.c (sarray_at_put): Likewise.
+	
+Fri May 21 00:51:10 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure (mips-*-ultrix*): Renamed from mips-dec-ultrix*.
+
+Thu May 20 23:16:43 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload1.c (choose_reload_regs): Handle earlyclobbers
+	when inheriting from reg_last_reload_reg.
+
+Thu May 20 13:59:16 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* Makefile.in (install-dir): Fix syntax, make tooldir before assertdir.
+
+Thu May 20 08:52:30 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gstddef.h [_ANSI_H_]: Handle __need_size_t and __need_wchar_t.
+
+	* fixincludes (Fixing CTRL): Reject CTRL or _CTRL following digit.
+
+	* enquire.c (F_check): Check NO_LONG_DOUBLE_IO.
+
+Wed May 19 23:18:55 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i386/x-isc3 (X_CFLAGS): Delete -DPOSIX_JC.
+
+	* real.c (e24toe, e53toe, e64toe): Fix sign in conversions
+	of -infinity.  Do eclear before einfin.
+
+Wed May 19 15:37:20 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* va-sparc.h (va_dcl): Restore accidentally deleted __builtin_va_alist
+	declaration.
+
+	* objc-act.c (handle_class_ref): Call assemble_constant_align
+	before output_constant.
+	* varasm.c (assemble_constant_align): New function.
+
+Wed May 19 13:40:01 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i860/x-sysv4 (X_CFLAGS): Deleted.
+
+	* configure (i[34]86-*-isc*): If version is 3, use x-isc3.
+	* config/i386/x-isc3: New file.
+
+Mon May 19 21:47:49 1993  Jeff Law  (law@snake.cs.utah.edu)
+
+	* Fix calling convention for indirect calls on the PA.
+	* calls.c (expand_call): Declare and set current_call_is_indirect.
+	(emit_library_call, emit_library_call_value): Likewise.
+	* function.c (assign_parms): Likewise.
+	* pa.h (TARGET_SHARED_LIBS): Define as 1.
+	(FUNCTION_ARG): If this is a call through a function pointer, then
+	the caller passes all arguments in general registers.
+
+	* pa.h (FUNCTION_ARG_REGNO_P): Account for registers which may
+	be unavailable on particular cpu models.  Fix indentation.
+
+Wed May 19 13:13:42 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+        * loop.c (scan_loop): Treat pseudo duplicated for exit tests just
+        like we treat user vars in seeing if we can move a SET.
+
+	* combine.c (set_nonzero_bits_and_sign_copies, nonzero_bits):
+	If we have a positive constant that is negative in the mode
+	it is being used in, treat it as negative.
+	* rs6000.h, alpha.h (SHORT_IMMEDIATES_SIGN_EXTEND): Define.
+
+	* emit-rtl.c (operand_subword): Reject cases when BITS_PER_WORD
+	is greater than HOST_BITS_PER_INT unless OP is const0_rtx.
+
+Tue May 18 16:31:06 1993  Torbjorn Granlund  (tege@nada.kth.se)
+
+	* pa.h (INITIALIZE_TRAMPOLINE): Make 2:nd flush, end_addr,
+	at the last real insn in the trampoline.
+
+Tue May 18 13:35:43 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (assertdir): use $(tooldir)/include for this.
+	(install-dir): Always create assertdir and tooldir.
+
+	* config/arm/arm.md (add/asl recognizer): Use space, not #, after asl.
+	Shuffle operands differently.
+
+	* objc-act.c (synth_module_prologue): Set TREE_PUBLIC in umsg_decl.
+
+	* Makefile.in (infodir): New variable.
+	(install-dir): Create that dir.
+	(install-info): New rule.
+	(install-normal): Depend on install-info.
+
+	* fixincludes: Use $file. rather than $file.sed 
+	when $file is or might be more than 10 characters long.
+
+	* config/i386/isc.h (LIB_SPEC): Handle -posix before -shlib.
+
+	* config/mips/x-sony: New file.
+	* configure (mips-sony-bsd*): Use x-sony.
+
+	* Makefile.in (local_prefix): Do not default from $(prefix).
+
+Tue May 18 09:28:02 1993  Chris Smith (csmith@convex.com)
+
+	* convex.c (replace_pushes, emit_ap_optimizations): Delete.
+
+Mon May 17 18:07:53 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixinc.svr4 (ieeefp.h): Delete definitions of __mips and __m68k.
+
+Mon May 17 17:00:00 1993  DJ Delorie (dj@ctron.com)
+
+	* configure.bat: Fix sed for version.c to handle both with
+	and without spaces correctly (MS-DOS).
+
+Mon May 17 12:26:55 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* rtl.c (init_rtl): Correct number of 'w's in CONST_DOUBLE format.
+
+Mon May 17 00:07:50 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.4.0 released.
+
+	* Makefile.in (extraclean): Remove junk from objc subdir.
+
+	* fixinc.svr4 (ieeefp.h): Delete definitions of __i860 and __m88k.
+
+	* mips/iris4.h (ASM_OUTPUT_ASCII): New overriding definition.
+
+	* pa.h (INITIALIZE_TRAMPOLINE): Pass both the starting and ending
+	addresses of the trampoline to the cacheflush pattern.
+	* pa.md (cacheflush): Flush the cache entries associated with
+	both the starting and ending addresses of the trampoline.
+
+	* gvarargs.h, gstdarg.h [__svr4__ __i860__]:
+	Define _VA_LIST only if not defined already.
+
+Mon May 17 00:40:36 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386/sysv4.h (BIGGEST_FIELD_ALIGNMENT, PCC_BITFIELD_TYPE_MATTERS):
+	Deleted.  Now handled by HANDLE_SYSV_PRAGMA.
+	(HANDLE_SYSV_PRAGMA): Deleted: already defined by svr4.h.
+
+Sun May 16 19:25:38 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* unroll.c (initial_reg_note_copy, final_reg_note_copy): New functions.
+	(copy_loop_body): Use new function to copy REG_NOTES.
+
+Sun May 16 13:03:58 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (extraclean): Delete junk in subdirs of config.
+	(distclean): Delete {c,cplus,objc}-parse.output.
+
+	* reorg.c (find_end_label): Update insn after calling emit_jump_insn.
+
+	* fixinc.svr4 (ieeefp.h): Delete `#define __sparc' also.
+
+Sun May 15 01:37:19 PDT 1993  Ron Guilmette  (rfg@netcom.com)
+
+	* fixinc.svr4 (ieeefp.h): Delete `#define __i386' line.
+
+Sat May 15 10:11:01 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* math-68881.h: Add conditional against multiple inclusion.
+
+	* gvarargs.h [__svr4__ __i860__] (_VA_LIST): Do define.
+	* gstdarg.h: Likewise.
+
+	* toplev.c (compile_file): If support dbx output,
+	always output 0 at start of text section.
+
+	* cp-tree.h (error_not_base_type): Fix typo in decl.
+
+Sat May 15 09:08:23 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_assignment): Fix error in last change.
+
+	* rs6000.md (movqi, movhi, movsi): Make sure that address returned
+	from force_const_mem is valid.
+
+	* i860.h (INITIALIZE_TRAMPOLINE): Don't make improper SUBREGs
+	and ensure that CXT and FNADDR are in registers.
+
+	* convex.c (insert_ap_loads): Initialize AP_IS_LIVE to 0 at
+	start of both loops, not just first one.
+
+	* convex.h (REGNO_REG_CLASS): Don't call abort; it will cause
+	a compilation error as written and isn't done elsewhere.
+
+	* combine.c (set_nonzero_bits_and_sign_copies): Don't record
+	data for a a pseudo that is undefined on entry to a function.
+	When a pseudo is clobbered, show we don't know anything about it.
+
+	* expr.c (expand_assignment): Always return a result that has
+	the mode of TO.
+
+	* rs6000.c (rs6000_makes_calls): If profiling, say we make calls.
+
+Sat May 15 00:38:22 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* va-mips.h (va_arg) [__MIPSEB__]:
+	After incrementing, subtract the rounded size, not the size proper.
+
+	* config/i860/x-sysv4 (X_CFLAGS): Defined.
+	(GCC_CFLAGS): Definition deleted.
+
+	* final.c (output_addr_const): Don't printing leading zeros.
+
+Sat May 15 06:18:43 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reload1.c (reload): Don't start 2-group unless it could be finished.
+
+Sat May 15 12:23:58 1993  Torbjorn Granlund  (tege@nada.kth.se)
+
+	* alpha.c (output_prolog): Change (sp) to ($30).
+
+	* pa.h (TRAMPOLINE_TEMPLATE): Change .long to .word; split into
+	two lines.
+
+Fri May 14 18:09:31 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (option_map): Renamed --version to --use-version.
+
+Fri May 14 17:20:21 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* xcoffout.c (N_DSLINE, N_BSLINE): Delete definitions.
+	(stab_to_sclass): Use ifdefs to test for presence of N_MAIN,
+	N_BSLINE, N_DSLINE, N_BINCL, N_EINCL, N_EXCL, N_M2C, N_SCOPE.
+
+	* sched.c (split_hard_reg_notes): Handle 0th sub register, and
+	multiple register kills.
+	(update_flow_info): For multi-word hard regs, use
+	split_hard_reg_notes to add all REG_DEAD notes, instead of just
+	the additional ones due to splitting.
+
+Fri May 14 16:12:28 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure (hppa1.1-*-hpux*): Use CPIO for headers, just like
+	other HPUX configs.
+	(hppa1.1-*-hpux8.02*): Likewise.
+
+Fri May 14 16:35:22 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* reorg.c (fill_slots_from_thread): If try_split split new_thread,
+	update it to the new value.
+
+Fri May 14 13:42:39 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* configure (hp700-hpux8.02): New target.
+	* pa1-oldas.h: New target for 1.1 machines running HPUX 8.02.
+
+Fri May 14 13:23:51 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* integrate.c (expand_inline_function): Set map->integrating.
+	(copy_rtx_and_substitute, case MEM): Don't copy RTX_UNCHANGING_P
+	when doing function inlining.
+	* integrate.h (struct inline_remap): Add integrating field.
+	* unroll.c (unroll_loop): Clear map->integrating.
+	* stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
+
+Fri May 14 12:28:51 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (default_conversion):
+	Don't replace iterator with its initial value.
+
+	* config/i386/svr3gas.h: Added two pages at end, with macros
+	copied from config/svr3.h and i386/sysv3.h.
+
+	* config/m68k/tower-as.h (PRINT_OPERAND): Handle CODE == '/'.
+	* hp320.h, mot3300.h, news.h, crds.h: Likewise.
+
+Fri May 14 15:44:45 1993  Kresten Krab Thorup  (krab@xiv.iesd.auc.dk)
+
+        * objc/init.c (__objc_init_protocols): Don't complain if a
+	protocol object is attempted resolved twice.  
+
+Fri May 14 00:51:38 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (CPP_SPEC): Correct specs so that _PA_RISC1_1 is only
+	defined when generating code for 1.1 machines regardless of the
+	default target.
+
+Thu May 13 21:47:55 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.md (fix_truncdfsi2, fixuns_truncdfsi2, trunc_call): Fix
+	typo in mode of FIX and UNSIGNED_FIX rtl.
+
+	* reorg.c (reorg_redirect_jump): New function.
+	Call it in most places instead of redirect_jump.
+
+Thu May 13 17:01:05 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* caller-save.c (restore_referenced_regs): New variable saveregs
+	which is number of regs to save at a time, instead of numregs,
+	which is total number of registers to save.
+
+Thu May 13 08:28:22 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (OBJC, OBJECTIVE-C): Don't depend on objc-runtime.
+
+	* dbxout.c (dbxout_parms): Don't output a parm if it's a mem
+	that has a constant address.
+
+	* config/pa/x-pa (TAROUTOPTS): Overridden.
+	* config/m68k/x-hp320,x-hp320g (TAROUTOPTS): Overridden.
+
+	* Makefile.in (TAROUTOPTS): New variable.
+	(install-headers-tar): Use TAROUTOPTS.
+
+	* 3b1.h, 3b1g.h, altos3068.h, crds.h, hp2bsd.h, hp310.h:
+	* isi-nfp.h, pbb.h, plexus.h, sun2.h, sun3n.h, tower.h:
+	(LONG_DOUBLE_TYPE_SIZE): Redefine as 64.
+
+	* objc/runtime.h: Include gstdarg.h before stdio.h.
+
+	* Makefile.in (libobjc.a): Depend on EXTRA_PARTS.
+
+Wed May 13 18:33:26 1993  Torbjorn Granlund  (tege@nada.kth.se)
+
+	* arm.h: Declare output_arithmetic_with_immediate_multiply.
+
+        * arm.md (combined mult/arithmetic recognizers): Switch on.
+	Add special pattern for reload.
+
+	* arm.md (restorehi): Use SImode for address.
+	(storehi): Use SImode for address and address computation.
+	(storeinthi): Likewise.
+
+Wed May 12 22:47:35 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/m68k/sun3.h, sun2os4.h (ASM_OUTPUT_FLOAT_OPERAND):
+	Output as hex, unless CODE is 'f'.
+	* altos3068.h, next.h (ASM_OUTPUT_FLOAT_OPERAND): Likewise.
+
+Wed May 12 14:18:36 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* m88k.h (REG_OK_FOR_BASE_P REG_OK_FOR_INDEX_P): Don't
+	use extended registers for base or index.
+
+Wed May 12 14:48:00 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* unroll.c (copy_loop_body): Delete May 10 change.
+
+Tue May 11 20:20:41 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* tree.c (real_value_from_int_cst): Use temporary variable `e' to
+	work around bugs in 386 PCC.
+
+Tue May 11 16:50:54 1993  Michael Meissner  (meissner@osf.org)
+
+	* mips/iris3.h, mips/mips.h, mips/news4.h, mips/nws3250v4.h,
+	mips/ultrix.h (ASM_SPEC): Pass appropriate -g<n> switch to the
+	assembler for -gstabs<n>, -gstabs+<n>, -ggdb<n>, and -gcoff<n>
+	switches.
+
+	* local-alloc.c (block_alloc): Don't dereference a NULL pointer.
+
+Tue May 11 12:09:37 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* tree.c (build_array_type): Delete the code to set TYPE_MAIN_VARIANT.
+	* c-decl.c (complete_array_type): Likewise.
+
+Tue May 11 11:40:14 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.c (emit_move_sequence): Handle secondary reloads for loads of
+	FP registers from constant expressions.
+
+	* pa.h (CONSTANT_ADDRESS_P): Accept symbolic addresses during
+	and after reload.
+
+Tue May 11 07:26:06 1993  Richard Kenner  (kenner@mole.gnu.ai.mit.edu)
+
+	* reorg.c (mostly_true_jump): Jump is forward if TARGET_LABEL is
+	zero; don't try to get INSN_CODE of zero.
+
+Tue May 11 00:44:09 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* tree.c (build_array_type):
+	Don't change TYPE_MAIN_VARIANT if incomplete (domain not known).
+
+	* real.c (enan): Add forward decl.
+
+Mon May 10 20:32:12 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* unroll.c (copy_loop_body): Copy REG_NOTES during main loop
+	instead of afterwards.
+
+Mon May 10 17:36:31 1993  Richard Kenner  (kenner@vlxisi1.ultra.nyu.edu)
+
+	* alpha.c (output_epilog): Fix minor error in instructions used
+	to restore stack pointer.
+
+Mon May 10 15:59:41 1993  Michael Meissner  (meissner@osf.org)
+
+	* mips-tfile.c (parse_def): Do not execute a division by 0 when
+	processing a doubly dimensioned array whose outer bound was 0 or
+	not specified.
+
+Mon May 10 12:14:07 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* m88k.h (TRAMPOLINE_TEMPLATE): Fixed invalid bsr insn.
+
+Mon May 10 11:55:18 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* protoize.c: Don't include string.h.
+	(strcat, strcpy, strcmp, strncpy, strncmp): Decls deleted.
+	(dupnstr): Don't use return value of strncpy.
+	(dupstr): Function deleted; callers changed to use savestring.
+
+	* tree.c (change_main_variant): New function.
+	(build_array_type): Use that to set the TYPE_MAIN_VARIANT.
+	* c-decl.c (complete_array_type): Call change_main_variant.
+
+Mon May 10 11:53:02 1993  Steve Chamberlain  (sac@wookumz.gnu.ai.mit.edu)
+
+	* sh.md (movstrsi): Take alignment into account.
+	* sh.c (shift_value_ok): Can't shift by negative values.
+
+Mon May 10 11:49:48 1993  Michael Meissner  (meissner@osf.org)
+
+	* va-mips.h (va_arg): Use __alignof__ instead of __alignof.
+
+	* cp-decl.c (finish function): Add missing ';'.
+
+Mon May 10 00:54:16 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc/runtime.h: Include gstdarg.h, not stdarg.h.
+
+	* libgcc2.c (__floatdisf): Use DFtype for intermediate values.
+
+	* tree.c (real_value_from_int_cst):
+	If I is unsigned, use REAL_VALUE_FROM_UNSIGNED_INT.
+
+	* config/m68k/m68k.c (output_move_double): Use operand 0 to get SIZE.
+
+	* reload.c (find_equiv_reg): Set goal_mem_addr_varies
+	for all but true constant addresses.
+
+Sun May  9 17:53:52 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/sparc/sparc.h (SIZE_TYPE): Deleted.
+
+	* fixincludes: When finding SIZE_TYPE, cd to ${LIB} to run cc.
+	(memory.h): Don't try to read it if it doesn't exist.
+
+	* real.c (NAN): Define for support of Not-a-Number bit patterns.
+	(make_nan): New function outputs a NaN in requested machine mode.
+	(eisnan, eiisnan, enan, einan, eiisinf, eiinfin): New functions.
+	(earith, etrunci, etruncui, ereal_negate, ereal_ldexp,
+	real_value_truncate, esub, eadd, emul, ediv, eremain):
+	Return NaN arg back to caller.
+	(eroundi, eroundui, ereal_to_int): NaN to integer returns -1
+	and a warning.
+	(target_isnan): Check for NaN.
+	(eneg): No-op if NaN.
+	(eisneg, eisinf): False if NaN.
+	(emovi, emovo): Handle NaN conversions.
+	(esub, eadd): Infinity minus infinity = NaN and INVALID warning.
+	(ediv): 0/0, inf/inf = NaN and INVALID warning.
+	(emul): 0 * inf = NaN and INVALID warning.
+	(e24toe, e53toe, e64toe): Generate e-type NaN for NaN input.
+	(etoe24, etoe53, etoe64): Output NaN in appropriate machine mode.
+	(ecmp): Unordered compare returns -2.
+	(etoasc): NaN produces ASCII string "NaN".
+	(asctoe): Unrecognizable input produces e-type NaN.
+	(eremain): x REM y = NaN if y = 0 or x = infinity.
+
+	* real.c (mtherr): Don't put newlines in error message string.
+
+	* real.h (REAL_VALUES_LESS): True if return value of ereal_cmp is -1.
+
+Sun May  9 17:34:06 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (finish_function): Don't do anything if we haven't got a
+	current_function_decl.
+
+	* cp-pt.c (tsubst): Don't assert if IN_DECL is null.
+	(coerce_template_parms): Likewise.
+
+	* cp-type2.c (process_init_constructor): Fix argument passing to
+	initializer_constant_valid_p.
+
+Sun May  9 10:47:05 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (complete_array_type):
+	Make maxindex -1 for empty constructor.
+
+	* i860.c (call_insn_operand): New funcion.
+	* i860.md (call, call_value): Copy fn address to safe reg if necessary.
+	(call, call_value matchers): Use call_insn_operand as predicate.
+
+	* config/mips/mips.c (call_insn_operand): New function.
+	* config/mips/mips.md (call_internal1, call_value_internal1):
+	Use call_insn_operand as predicate.
+	(call, call_value): Copy fn address to safe reg if necessary.
+
+	* config/m68k/m68k.md (mulhisi3, umulhisi3 matchers):
+	Restrict range of constants allowed.
+
+Sun May  9 13:31:35 1993 CET  Kresten Krab Thorup  (krab@iesd.auc.dk)
+
+        * objc/hash.h, objc/objc.h, objc/sarray.h (gstddef.h): 
+        Conditionally include gstddef.h or stddef.h by IN_GCC.
+
+Sun May  9 00:51:33 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload.h: Fix unterminated comment.
+
+	* objc-act.c (string_section): Delete comma before close-brace.
+
+Sat May  8 23:49:50 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i386/i386.c (call_insn_operand): New function.
+	* i386.md (call matchers): Use call_insn_operand.
+	(call expanders): If address uses a virtual reg or arg pointer reg,
+	copy it.
+
+Sat May  8 23:19:11 1993  Kaveh R. Ghazi  (ghazi@caip.rutgers.edu)
+
+	* configure (m88k-tektronix-sysv3): New target.
+	* config/m88k/tekXD88.h: New file.
+	* config/m88k/tekXD88.ld: New file.
+	* config/m88k/x-tekXD88: New file.
+
+Sat May  8 10:40:54 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i386/i386.md (call insn matchers):
+	Use %a to print a mem's non-constant address;
+	don't try to print the address by itself.
+
+	* config/i386/next.h (ASM_GENERATE_INTERNAL_LABEL)
+	(ASM_OUTPUT_INTERNAL_LABEL): Don't include a `.' in the label name.
+	(LPREFIX): Likewise.
+
+	* m68k.c (print_operand): For CONST_DOUBLE, treat VOIDmode like DImode.
+
+	* expmed.c (init_expmed): Supply missing arg to rtx_cost.
+
+	* config/convex/convex.h (LINK_LIBGCC_SPECIAL_1):
+	Define this instead of LINK_LIBGCC_SPECIAL.
+
+Sat May  8 14:43:27 1993  Torbjorn Granlund  (tege@nada.kth.se)
+
+	* m68k.md (umulsidi3 expand + two matchers): Rewrite.
+	Old patterns misused subreg and matched wrong immediate values.
+	Use const_int_operand and constraint `n' for the immediate arg.
+	(mulsidi3 patterns): Likewise.
+
+Sat May  8 07:06:14 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+        * i386/sco.h (VALUE_REGNO, HARD_REGNO_MODE_OK): Add missing #undef.
+        * i386/sco.h, i386/sequent.h (HARD_REGNO_MODE_OK): Properly check
+        for floating-point registers.  Register 16 is AP and not floating.
+
+Fri May  7 19:43:49 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-typeck.c (default_conversion): Disable change of Apr 13th for
+	now, since it seems to behave incorrectly in some cases.
+
+Fri May  7 17:38:22 1993  Michael Meissner  (meissner@osf.org)
+
+	* configure (all MIPS options): If --with-gnu-as is used, don't
+	build mips-tfile or mips-tdump.  If --with-gnu-ld is used, don't
+	say we need collect2.
+	(config.sub run): Explicitly invoke /bin/sh to run script, in case
+	config.sub had it's execute bits turned off.
+
+	* mips/t-mips-gas: New target file, used when the GNU assembler is
+	used instead of the MIPS assembler.
+
+Fri May  7 17:41:00 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (float.h-nat): Use tmp-float.h as intermediate file.
+
+Fri May  7 13:42:06 1993  Mike Stump  (mrs@poseidon.cygnus.com)
+
+	* cp-search.c (mi_ventry): Change into a struct to make code more
+	readable and to shut up compilers about valid ANSI C code.
+
+Fri May  7 13:15:40 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (reg_class): Add new NON_SHIFT_REGS class.
+	(REG_CLASS_NAMES): Name new class "NON_SHIFT_REGS".
+	(REG_CLASS_CONTENTS): Initialize NON_SHIFT_REGS.
+
+	* loop.c (strength_reduce): Handle case where loop_end is the
+	end of the current function.
+
+Fri May  7 05:50:39 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload.c (push_reload): Don't use IN as the reload reg in in-out
+	reload if it is set elsewhere in the insn.
+
+Fri May  7 04:48:25 1993  Chris Smith  (csmith@convex.com)
+
+	* x-convex (CCLIBFLAGS): Build libgcc1 with -tm c1 so it can't
+	cause executables to become c2-only.
+
+	* xm-convex.h: Remove workarounds for OS 8.0 no longer needed.
+	(bcopy, bzero): Define to use memcpy and memset, to get them inlined.
+
+	* convex[123*].h (CC1_SPEC, CPP_SPEC, LIB_SPEC): Move to convex.h.
+
+	* convex.h (TARGET_FLAGS): Add -mvolatile-[no]cache.
+	(TARGET_FLAGS, LONG_TYPE_SIZE): add -mlong{32,64}.
+	(target_cpu): Define, enumeration for targets to use instead of flags.
+	(TARGET_C34, TARGET_C38): Add.  These don't schedule the same as C2.
+	(OVERRIDE_OPTIONS): Call init routine in convex.c.
+	(CPP_SPEC, ASM_SPEC, LINK_SPEC): If originally bootstrapped with 
+	an ieee compiler, produce an ieee gcc.
+	(LINK_LIBGCC_SPECIAL): Define, to avoid searching old libgcc.a
+	versions during bootstrap.
+	(STACK_BOUNDARY): Change from 32 to 64 -- odd-word aligned
+	longwords are slow on c34.
+	(FUNCTION_PROLOGUE): Make frame size a multiple of 8, not 4.
+	(FUNCTION_EPILOGUE): Output a 0 to terminate c34 icache prefetch.
+	(INITIAL_FRAME_POINTER_OFFSET): Make a multiple of 8.
+	(REG_ALLOC_ORDER): Define.  Put S0 (the return register) last.
+	(HARD_REGNO_MODE_OK): Rewrite to make clearer.
+	(MODES_TIEABLE_P): Rewrite to make clearer.
+	(PREFERRED_RELOAD_CLASS): Rewrite to make clearer.
+	(S0_REGNUM, A0_REGNUM): Define.
+	(*_REGNUM): Write in terms of [AS]0_REGNUM instead of absolute numbers.
+	(enum reg_class, etc): Add SI_REGS == S_REGS + INDEX_REGS.
+	(REGNO_REG_CLASS, REG_CLASS_FROM_LETTER, REGNO_OK_FOR_*_P): Use tables.
+	(CONST_OK_FOR_LETTER_P): Change.  New def passes any const_int,
+	rejects any const_double.
+	(CONST_DOUBLE_OK_FOR_LETTER_P): Change.  New defs are 'G' == low
+	word all zeros, 'H' == high word all signs.
+	(EXTRA_CONSTRAINT): New. 'Q' == volatile memref.  Used to generate
+	cache-bypass instructions when -mvolatile-nocache is set.
+	(RETURN_POPS_ARGS): Change, always true.
+	(FUNCTION_ARG_ADVANCE): Count args, not # words of args.
+	(FUNCTION_ARG): Return arg count to the final VOIDmode FUNCTION_ARG
+	hack that supplies "next arg register" to be stored in call insn.
+	(TRAMPOLINE_TEMPLATE): Use instruction notation rather than constants.
+	(INITIALIZE_TRAMPOLINE): Use gen_call_pop.
+	(LEGITIMATE_CONSTANT_P): Rewrite to make clearer.
+	(GO_IF_LEGITIMATE_ADDRESS): Do not use indirect addressing -- with
+	insn scheduling, two loads can be faster and can't be slower.
+	(SLOW_BYTE_ACCESS): Define unless C2.  Memory access to bytes is
+	not actually slow, but faster processors don't forward partial
+	word writes to word reads, and setting SLOW_BYTE_ACCESS
+	makes the code consistently use word ops where possible.
+	(CONST_COSTS): Const_DOUBLE cost is zero -- if it appears, it is
+	immediate and therefore free.
+	(RTX_COSTS): areg+const is free (via indexing).
+	(RTX_COSTS): Provide target-dependent values for *,<<,>>
+	(ADDRESS_COST): Zero.  Indirect addresses are no longer used.
+	(ADJUST_COST): Define.
+	(TARGET_FLOAT_FORMAT): Define as VAX_FLOAT_FORMAT.  Also
+	accurately describes the semantics (not the bit pattern)
+	of convex ieee mode.
+	(REAL_VALUE_ATOF): Define, to prevent real.c from constructing
+	vax dfloats.  Apparently it doesn't do gfloat.
+	(CHECK_FLOAT_VALUE): Call convex.c.
+	(ASM_FILE_START): Output appropriate .fpmode pseudo op.
+	(ASM_IDENTIFY_GCC): Ouput a zero after gcc2_compiled to keep it
+	from hiding the real name from profilers and adb.
+	(ASM_OUTPUT_DOUBLE, _FLOAT): Use hex to avoid /bin/as conversion 
+	errors.
+	(ASM_DECLARE_FUNCTION_NAME): Define; call convex.c.
+	(PRINT_OPERAND, _ADDRESS): Call convex.c.
+	(EXIT_BODY): Define for libgcc2.  Call atexit handler if present.
+	
+	convex.md: Add scheduling info.
+	(movxx): One of the operands must be a register.
+	(movdf, movdi):	Add anonymous patterns that can load an arbitrary 
+	const_double by doing two immediate loads.  This is not superior
+	to loading it from memory, and can be worse, so LEGITIMATE_CONSTANT_P
+	still rejects these constants, but the patterns are still useful
+	so rtx folding can produce arbitrary results.
+	(floatunsdidf, floatunsdisf): Add patterns that avoid double rounding.
+	(floatunssidf, floatunssisf): Add patterns that mimic gcc's default
+	method, to keep SI cvts from promoting to the above DI cvts.
+	(fix_truncdfsi2): Use cvtd.l even if cvtd.w is available -- on c34
+	cvtd.w is microcoded and slower.
+	(addqi3, subqi3, mulqi3): can do immediate with word insn.
+	(subsi3): use sub/neg to get reverse subtract (reduces reg shuffling).
+	(udivsi3): give up on having sign_expand_binop do this; people keep
+	breaking it.  Manually extend unsigned SI to signed DI, then divide.
+	(xshfxx3): The options rank differently on different machines, so 
+	spell them all out and enable the appropriate ones under TARGET_Cxx.
+	(sqrtxx2): Put under flag_fast_math.
+	(sinxx2, cosxx2): I don't know why these exist, but they do, so supply
+	them.  The other microcoded intrinsics are in convex math.h.
+	(txtxx): Remove, no longer necessary.
+	(cmpdi): Add alternative to fake "eq.l #0,sk" with "neg.l sk,scratch".
+	(cmpqi): Omit, seems to produce marginally better cse than the old way.
+	(cmpsf): Avoid compare against 0.0 in ieee mode, since -0.0 is 
+	possible and would confuse old ucode.
+	(movstrsi): Add.
+	(anon): Add patterns to pick up on dbra optimizations and implement the
+	sub/test part.  (This optimizes out the compare against 0.)
+	(call, call_value): Use _pop form instead, and let convex.c replace
+	the pushes with fp stores.
+	(end): Put local variable list back.
+
+	convex.c (init_convex): New. Fill in tables used by convex.h.
+	(psw_disable_float): New.  Turn off float exception enables to
+	make the environment more ieee-like.
+	(set_cmp): Change name to output_cmp.
+	(gen_cmp): Change name to output_condjmp.  Add handling for
+	`neg.x' as a fake `eq.x #0' and for optimized-out compares
+	that read the carry of a preceding decrement.
+	(simplify_for_convex): New.  Replace addr-(-const) with
+	addr+const so /bin/as will like the notation.
+	(expand_movstr): New.  Generate pipelined load/store sequence.
+	(asm_declare_function_name): New. Output arg count for debuggers.
+	(print_operand): Moved from convex.h.  Add %u and %v to fetch
+	subwords of a CONST_DOUBLE, %z to use in replacing shift by mul.
+	(print_operand_address): Moved from convex.h.
+	(outfloat): New, call REAL_VALUE_TO_DECIMAL.
+	(replace_arg_pushes): New.  Replace sp by fp if possible; this does
+	not allow us to get rid of sp but stores are faster than pushes on
+	new machines.
+	(emit_ap_optimizations): New.  Do simple live analysis of arg pointer
+	register and eliminate dead reloads.
+	
+	math-convex.h: removed.
+	fixinc.convex: new file.
+
+Thu May  6 22:54:43 1993  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* config/we32k/we32k.h (ASM_OUTPUT_ASCII): 
+	Cast PTR to unsigned char *.
+	* config/clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
+
+Thu May  6 20:20:41 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (build_enumerator): Strip any no-op casts off the
+	value before we try to do anything with it.
+
+	* cp-call.c (convert_harshness): Take volatility, in addition to
+	constness, into account when figuring out the penalty for the
+	type under question.
+
+	* cp-decl.c (grokdeclarator): Undo unneeded change of Apr 6 when we
+	returned the type of the local typedef, instead of the typedef itself.
+
+Thu May  6 19:21:34 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* reload1.c (eliminate_regs, case {PRE,POST}_{INC,DEC}): Account
+	for PUSH_ROUNDING.
+
+Thu May  6 18:17:19 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i386/sequent.h (DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC):
+	Override the usual definitions.
+
+	* objc/hash.h, objc/objc.h, objc/runtime.h, objc/sarray.h:
+	Use gstddef.h, with doublequotes.
+
+Thu May  6 15:58:18 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: More fixes for IRIX 4.0.1.  Rather than replacing
+	[^A-Z]CTRL, replace [^A-Z_]CTRL and [^A-Z]_CTRL.  Also patch
+	"//" in elf_abi.h which the sed script breaks.
+
+Thu May  6 13:58:39 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* clix.h: Include "clipper/clipper.h" instead of "clipper.h".
+	* config.sub (os): Add -clix*.
+	* configure (clipper-intergraph-clix): Add clipper/ filename prefixes.
+
+	* c-typeck.c (pointer_diff): Error if op1 is pointer to incomplete
+	type.
+
+	* fixinc.svr4 (sys/varargs.h): Replace.
+
+Thu May  6 11:58:28 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload1.c (forget_old_reloads_1): Accept and ignore 2nd arg.
+	(reload_as_needed): Pass that second arg.
+
+	* c-parse.in: For Objc, expect just 20 conflicts.
+
+	* objc-act.c (OBJC_GEN_METHOD_LABEL): Do use CAT_NAME.
+
+	* config/i386/i386.md (extendsidi2): Use cdq or cltd, not cwtl.
+
+        * configure (i[34]86-*-bsd): Don't use collect2.
+
+	* c-typeck.c (convert_for_assignment): Don't use convert_and_check
+	when handling arithmetic types here.
+
+	* c-common.c (truthvalue_conversion): Turn off Apr 29 change.
+
+Thu May  6 05:44:23 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_equiv_reg): Don't look inside a CONST_DOUBLE;
+	use operand_subword instead.
+
+	* varasm.c (record_constant): Properly make the header of
+	a struct constant_descriptor.
+
+	* function.c (walk_fixup_memory_subreg): Add new arg UNCRITICAL.
+	(fixup_var_refs_insn): Call with UNCRITICAL of 1 when processing
+	REG_NOTES.
+
+	* integrate.c (expand_inline_function): Don't call convert_to_mode
+	unless we need to; some converstions of VOIDmode objects can
+	mess them up.
+
+	* expmed.c (store_split_bit_field): Properly handle VALUE when
+	it is a CONST_DOUBLE.
+
+	* fold-const.c (decode_field_reference): Don't do anything for
+	non-integral fields.
+
+	* cse.c (simplify_binary_operation, simplify_relational_operation):
+	Check for MODE_CC modes, not just CCmode.
+
+Thu May  6 00:54:40 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+
+        * objc/class.c, objc/hash.c: Change calloc to __objc_xcalloc.
+        * objc/objects.c (class_create_instance): bzero new instances
+
+	* objc/sendmsg.c (__objc_send_initialize, class_add_method_list):
+	Allow multiple +initialize methods per class.
+
+Wed May  5 21:40:04 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i386/sequent.h (LINK_LIBGCC_SPECIAL): #if 0.
+
+	* toplev.c (main): Improve error message in previous change.
+
+Wed May  5 19:36:15 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* combine.c (combinable_i3pat): Do not make REG_DEAD notes for
+	the stack pointer, frame pointer, or arg pointer.
+
+Wed May  5 17:57:30 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i386/sequent.h (LINK_LIBGCC_SPECIAL): Defined.
+
+Wed May  5 00:01:57 PDT 1993  Ron Guilmette  (segfault!rfg@netcom.com)
+
+	* expr.h: Fix comment typos.  emit_block_move decl was hidden.
+
+	* toplev.c (main): If C++ for Dwarf requested, warn and turn it off.
+
+Wed May  5 21:48:24 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+
+	* objc-act.c (check_methods_accessible): Handle interface types. 
+
+Wed May  5 14:37:42 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c: (optimize_bit_field_compare): Add missing arg
+	to const_binop.
+
+	* reg-stack.c (record_asm_reg_life): Don't abort for asm that
+	doesn't match its constraints.
+
+	* combine.c (num_sign_bit_copies, case SUBREG): Properly compute
+	the number of sign bit copies of SUBREGs of promoted objects.
+
+	* optabs.c (add_equal_note, expand_binop, expand_unop): Make
+	copy of operands for REG_EQUAL note to avoid sharing RTL if
+	called later than RTL generation.
+	(emit_libcall_block, expand_fix): Likewise.
+	* expr.c (convert_move): Likewise, though probably not
+	called after RTL generation.
+
+Wed May  5 14:11:12 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Only quote argument to _IO[A-Z]*, not first item in
+	parentheses.  Added patches for IRIX 4.0.1 header files to undo
+	some inappropriate changes.
+
+Wed May  5 11:34:59 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* toplev.c (flag_defer_pop): Initialize to 0.
+	(main): Set it to 1 if optimizing.
+
+Wed May  5 06:38:47 1993  Tom Wood  (wood@hal.gnu.ai.mit.edu)
+
+	* configure (i[34]86-next-*, m68k-next-*): collect2 isn't needed.
+
+Tue May  4 14:21:11 1993  Kresten Krab Thorup  (krab@xiv.iesd.auc.dk)
+
+        * objc/objc.h, objc/runtime.h: Remove inclusion of memory.h
+        * objc/objc.h, objc/hash.h, objc/runtime.h: Remove inclusion of
+        gstddef.h 
+
+        * objc/Makefile (OBJC_H): Add typedstream.h 
+
+        * objc/Object.h: Add includes objc/objc.h and objc/typedstreams.h 
+        objc/Object.h: Removed `minimal' definitions.  Includes objc.h
+        instead.  
+        * objc/archive.c: Add include "typedstream.h"
+
+        * objc/typedstream.h: New file.  Contents moved from
+        objc/objc-api.h.
+
+        * objc/objc.h (IvarList, Ivar, SymTab, Module, Method,
+        Category, Super, objc_method_description, objc_protocol_list):
+        Data definitions moved to objc/objc-api.h
+
+        * objc/archive.c: Change malloc into __objc_xmalloc
+
+        * objc/objc.h, objc/sendmsg.c: Remove any code for hash lookup
+        * objc/cache.h: File removed
+
+        * objc/objc-api.h (class_create_instance, object_copy,
+        object_dispose): Definitions moved to objc/objects.c 
+
+        * objc/objc.h: Remove declarations for library functions.
+        * objc/Object.m (-conformsTo:): Bugfix: Also ask superclasses.
+
+Tue May  4 23:46:37 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (start_decl): Give an error, not a sorry, when they try
+	to declare a template on a VAR_DECL or a TYPE_DECL.
+
+	* cp-type2.c (process_init_constructor): If we have a VAR_DECL
+	that's static in the class, don't try to use it when we're working
+	on an initializer-list; it has no business being there.
+
+	* cp-cvt.c (convert_pointer_to): Only call get_base_distance et al.
+	on RECORD_TYPEs, not on UNION_TYPEs.
+
+	* cp-decl.c (grokdeclarator): Don't try to divine the name of the
+	incomplete type for a field decl.
+
+Tue May  4 19:55:29 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* combine.c (distribute_notes, REG_DEAD case): Handle hard
+	registers which partially overlap the destination of the insn.
+
+Tue May  4 17:59:10 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.md (casesi0): Remove incorrect fix from April 23.
+	* pa.h (CASE_DROPS_THROUGH): Define.
+
+Tue May  4 13:22:21 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* t-dgux: Fixed name of link script.
+
+Tue May  4 11:15:40 1993  Steve Chamberlain  (sac@wookumz.gnu.ai.mit.edu)
+
+	* sh.md (arith patterns): Rework constraints.
+	* sh.h (ASM_OUTPUT_CASE_LABEL): Ensure jump table is aligned.
+	* sh.c (arith_reg_operand): New constraint. (dump_constants):
+	Force out a constant table if necessary.
+
+Mon May  3 20:41:00 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* tree.c (build_array_type): The main variant of an array type
+	should always be an array whose element type is the main variant.
+
+Mon May  3 19:27:04 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* lite.h (CPP_PREDEFINES): Delete -Dsun and -Dunix.
+
+	* combine.c (make_extraction): Move BYTES_BIG_ENDIAN !=
+	BITS_BIG_ENDIAN offset correction after the offset calculation.
+	* elxsi.h, mips.h (BITS_BIG_ENDIAN): Define to zero.
+
+	* c-decl.c (grokdeclarator, ARRAY_REF case): Build array type, and
+	then build the variant array type.
+
+	* sparc.md (floatsitf2): Output fitoq not fitox.
+
+	* i960.md (scc pattterns): Add missing mode to conditional operators.
+	* i960.c (output_function_profiler): Add missing newlines in strings.
+
+	* c-common.c (truthvalue_conversion): Don't optimize subtract of
+	reals when target uses IEEE arithmetic.
+
+	* c-parse.in: Delete cond.awk reference.
+	* cond.awk: Delete file.
+
+Mon May  3 16:58:55 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (digest_init): Check size properly for wide-string.
+
+	* Makefile.in (TEXI2DVI): New variable.
+	(cpp.dvi, gcc.dvi): Use it.
+
+Mon May  3 16:29:38 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-search.c (lookup_nested_field): Pass complain down as the value
+	for lookup_field's `protect' argument.  This will help avoid
+	incorrect visibility errors when we're parsing things.
+
+Mon May  3 21:02:22 1993  H.J. Lu  (hlu@yardbird.eecs.wsu.edu)
+
+	* config/i386/linux.h (FUNCTION_PROFILER, ASM_OUTPUT_ADDR_DIFF_ELT):
+	Remove PIC stuff.  We wait for the ELF support in gas and binutils.
+	(LINK_SPEC): Defined for -v.
+
+Mon May  3 06:41:56 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc/Makefile (copy-headers): Put `-' on mkdir command.
+
+Sun May  2 09:28:43 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (macroexpand): Treat `foo ( )' as 0 args if foo wants 0 args.
+
+Sun May  2 07:37:45 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (eliminate_regs, case SUBREG): Leave the SUBREG when
+	the inner object is a pseudo on machines that extend byte
+	loads (to be consistent with reload.c).
+	* reload.c (push_reload): Allow non-paradoxical SUBREGs of MEM
+	on machines that extend byte loads.	
+
+Sun May  2 08:57:33 1993  Michael Meissner  (meissner@osf.org)
+
+	* real.c (EDOM, ERANGE): Do not define since errno.h was
+	previously included.
+
+Sun May  2 08:28:15 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cse.c (record_jump_cond): Use mode of op0 or op1, not MODE,
+	when testing for narrowing or widening subregs.
+
+Sat May  1 10:10:44 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/nextstep.h (WORD_SWITCH_TAKES_ARG): Fix typo.
+
+	* cse.c (simplify_binary_operation): Reject CCmode in  A & (~A) -> 0.
+
+	* cccp.c (macroexpand): If just whitespace between parens,
+	treat it as one argument.
+
+Sat May  1 11:02:22 1993  H.J. Lu  (hlu@yardbird.eecs.wsu.edu)
+
+	* Makefile.in (libobjc.a): Depend on $(USE_COLLECT2)
+
+	* objc/Makefile (xforward): Add `else true;' for Ultrix 4.2 make.
+
+Sat May  1 06:49:51 1993  Tom Wood  (wood@next.com)
+
+	* objc-act.c (build_ivar_reference): Warn when a class method
+	refers to an instance variable.
+
+Fri Apr 30 22:37:56 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-lex.c (yylex): Avoid invalid shift for erroneous empty char const.
+
+	* combine.c (subst, case COMPARE): Use SELECT_CC_MODE even if HAVE_CC0.
+
+Fri Apr 30 12:40:23 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* configure, install.texi: Updated -local configuration option.
+
+Fri Apr 30 15:20:10 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.h (LONG_DOUBLE_TYPE_SIZE): Ifdef out.
+
+Fri Apr 30 14:53:43 1993  Doug Evans  (dje@wookumz.gnu.ai.mit.edu)
+
+	* config.sub: Fix syntax error.
+
+Fri Apr 30 12:00:24 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Fix #endif comments for Ultrix 4.2.
+
+Fri Apr 30 10:45:53 1993  Steve Chamberlain  (sac@wookumz.gnu.ai.mit.edu)
+
+	* sh.c, sh.h, sh.md, t-sh, xm-sh.h: New files for Hitachi SH.
+	* configure (sh-hitachi-hms): New configuration.
+	* config.sub: Accept sh, hms.
+
+Thu Apr 29 22:20:20 1993  Jeff Law  (law@kahlua.cs.utah.edu)
+
+	* cse.c (cse_insn): Reset the INSN_CODE for conditional
+	or computed jumps which have been converted into simplejumps.
+
+Thu Apr 29 14:30:25 PDT 1993  Ron Guilmette  (rfg@netcom.com)
+
+	* c-common.c (truthvalue_conversion):  Specific error message when the
+	"truthvalue" of a struct, union, or array type operand is needed.
+
+Thu Apr 29 21:42:26 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Thu Apr 29 12:27:59 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): When complaining about a field having
+	an incomplete type, tell them what type it was, and what template
+	instantiation was involved, if we can.
+
+	Wed Apr 28 11:50:28 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (grokfndecl): New argument `publicp', to say if we
+	should set TREE_PUBLIC on the node for the caller.
+	(grokfndecl): Pass the new arg down appropriately.
+
+	* cp-pt.c (instantiate_template): If it's a static member fn, revert
+	it into a FUNCTION_TYPE and chop off the this pointer.
+	* cp-decl.c (revert_static_member_fn): Make non-static.
+	* cp-tree.h (revert_static_member_fn): Add prototype.
+
+	* cp-lex.c (reinit_parse_for_block): Bump the size of BUF for the
+	pre-parsed line directive to 16, so we can hold the max # of digits
+	in a signed int (10).
+
+Thu Apr 29 19:26:21 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/mips/mips.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
+	Definitions put into #if 0.
+
+	* c-typeck.c (build_conditional_expr): Do default_conversion
+	before testing for ERROR_MARK.
+
+	* cse.c (simplify_binary_operation): Don't return const0_rtx
+	or constm1_rtx for IOR, AND, XOR in CCmode.
+	(simplify_relational_operation): Don't do anything if op0 has CCmode.
+
+	* Makefile.in (install-normal): Move install-libgcc
+	after $(INSTALL_HEADERS).
+
+Thu Apr 29 17:09:59 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* gcc.c (is_directory): Renamed from is_linker_dir and added
+	linker argument.  If not checking linker directory, check whether
+	directory exists only if SMALL_ARG_MAX not defined.
+	(putenv_from_prefixes): Don't add directories for which
+	is_directory returns 0.
+	* config/i386/xm-sco.h (SMALL_ARG_MAX): Define.
+
+Thu Apr 29 15:30:09 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.md (shadd for reload): Fix constraint to match the output
+	pattern.
+
+Thu Apr 29 15:05:05 1993  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* we32k.md (float_extend:DF recognizer): Add missing arg to
+	output_asm_insn.
+        (float_truncate:SF recognizer): Likewise.
+
+Thu Apr 29 10:18:36 1993  Kresten Krab Thorup  (krab@wombat.gnu.ai.mit.edu)
+
+	* objc/xforward.c: File renamed from objc/_forward.c.
+	* objc/Makefile: Updated accordingly.
+
+Thu Apr 29 12:10:49 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* real.c: Deleted casts to void.
+
+	* real.c (emdnorm, eifrac, euifrac, mtherr): Replace
+	unconditional `pedwarn' by `warning' conditional on `extra_warnings'.
+	(toe24, todec): Use ERANGE to flag overflow on (non-IEEE)
+	machines that do not have infinity.
+	(etoasc): Check explicitly for overflow of leading decimal digit.
+	(asctoeg): Test for, and immediately reject, out-of-bounds
+	decimal exponent inputs.
+	(at top level): Include errno.h; reference errno,
+	warning, extra_warnings.
+
+	* Makefile.in (tooldir): Use exec_prefix, not prefix.
+	(gcc.o): Likewise for TOOLDIR_BASE_PREFIX.
+
+	* config/convex/convex.c (output_call):
+	Add missing arg to output_asm_insn.
+
+	* gcc.c (default_compilers): Inhibit -D__OPTIMIZE__ if -O0.
+
+	* config/m68k/m68k.md (movxf): Add pattern for soft-float moves.
+
+	* config/m68k/m68k.c (output_move_double): Support XFmode moves.
+
+Thu Apr 29 00:09:34 1993  Kresten Krab Thorup  (krab@wombat.gnu.ai.mit.edu)
+
+	* objc/init.c (__objc_exec_class): Added check for selectors = 0
+
+	Undid the following changes:
+
+	* objc/_forward.c: File removed
+	* objc/argframe.h, objc/af-sparc.h: New files
+	* objc/Makefile (ARGFRAME_H): New macro
+	* objc/Makefile (_forward, fflags): Targets removed
+	* objc/msgsend.c (objc_msg_sendv): Changed to use argframe macros
+	* objc/Object.[hm], objc/runtime.h, objc/objc-api.h,
+	objc/msgsend.c: Changed type name arglist_t to af_frame.
+
+Thu Apr 29 00:04:11 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (CONDITIONAL_REGISTER_USAGE): %r19 is fixed
+	if flag_pic is true.
+	* pa.c (emit_move_sequence): After legitimizing a PIC
+	address make sure to copy it from the temporary register
+	into the final destination.
+
+Wed Apr 28 18:15:57 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (HARD_REGNO_MODE_OK): Allow 1.0 FP registers to hold modes
+	which are smaller than 4 bytes.
+
+Wed Apr 28 16:40:38 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
+
+	* Makefile.in (distdir): Copy subdirectories of config/ too, except RCS
+
+Wed Apr 28 16:19:18 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
+
+	* Makefile.in (extraclean): Delete *.z as well.
+
+Wed Apr 28 15:10:33 1993  Michael Meissner  (meissner@osf.org)
+
+	* mips/mips.h (MIPS_VERSION): Set Meissner version # to 40.
+	(OPTIMIZATION_OPTIONS): Set -mgpopt if -O other than -O0.
+	(CC1_SPEC): Don't pass -mgpopt here.
+
+	* mips/osfrose.h (CC1_SPEC): Don't pass -mgpopt here.
+
+	* mips/osfrose.h, i386/osfrose.h (ASM_IDENTIFY_LANGUAGE): If the
+	language is C, do not put anything out, to not confuse kernel
+	debuggers and the like.
+
+Wed Apr 28 07:31:20 1993  Kresten Krab Thorup  (krab@wombat.gnu.ai.mit.edu)
+
+	* objc/argframe.h (__AF_ARG_ADDR): Removed .curr_off from
+	definition. (__AF_ARG_ADVANCE): Removed __AF_CUM_OFF around CUM. 
+
+	* objc/runtime.h (_objc_error): Declaration added.
+
+Wed Apr 28 06:17:02 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-lex.c, cp-lex.c (yylex): Don't use unsigned comparison
+	to also check for < 0; do it explicitly.
+	* combine.c (force_to_mode, simplify_comparison): Cast to
+	unsiged HOST_WIDE_INT instead of unsigned int.
+	* cse.c (simplify_binary_operation, case SMAX): Likewise.
+	* expr.c (emit_block_move): Likewise.
+
+	* convert.c (convert_to_integer): When we want to return zero, 
+	be sure we honor any side-effects in our operand.
+
+Tue Apr 27 22:25:29 1993  Kresten Krab Thorup  (krab@xiv.iesd.auc.dk)
+
+	* objc/_forward.c: File removed
+	* objc/argframe.h, objc/af-sparc.h: New files
+	* objc/Makefile (ARGFRAME_H): New macro
+	* objc/Makefile (_forward, fflags): Targets removed
+	* objc/msgsend.c (objc_msg_sendv): Changed to use argframe macros
+	* objc/Object.[hm], objc/runtime.h, objc/objc-api.h,
+	* objc/msgsend.c: Changed type name arglist_t to af_frame.
+
+Tue Apr 27 16:29:45 1993  Tom Wood  (wood@next.com)
+
+	* nextstep.h (NeXT_OBJC, STANDARD_EXEC_PREFIX): Delete.
+	* i386/next.h: Use gas.h instead of bsd.h.
+	(ASM_GENERATE_INTERNAL_LABEL): Define.
+
+Tue Apr 27 12:20:08 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* reorg.c (dbr_schedule): Do not run the delay slot scheduling
+	pass if the current function has no insns other than the prologue
+	and epilogue.
+  
+	* pa.c (hppa_expand_epilogue): Emit a "blockage" insn
+	to keep the stack and frame pointer adjustments at the
+	end of the epilogue.
+	* pa.md (blockage): New pattern.
+
+Tue Apr 27 10:59:33 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): New macro.  Like old
+	WORD_SWITCH_TAKES_ARG, but added idirafter, iprefix, iwithprefix.
+	(WORD_SWITCH_TAKES_ARG): Use DEFAULT_WORD_SWITCH_TAKES_ARG.
+	* config/i386/osfrose.h, config/m68k/sun2.h, config/m68k/sun3.h,
+	config/mips/osfrose.h, config/sparc/sparc.h, config/svr4.h,
+	config/nextstep.h (WORD_SWITCH_TAKES_ARG): Rewrote to use
+	DEFAULT_WORD_SWITCH_TAKES_ARG.
+
+Tue Apr 27 07:38:47 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu
+
+	* Makefile.in (stmp-int-hdrs): No longer depends on gsyslimits.h.
+	Don't make include/syslimits.h here since we want to test the
+	limits.h made by fixincludes, not by the later part of this rule.
+	(stmp-fixinc): Depends on gsyslimits.h.
+	Make include/syslimits.h here.
+
+	* alpha.c (alpha_emit_set_const, output_{pro,epi}log): Generate
+	insns to load constants into a register using a method that works
+	on a 32-bit machine as well.
+
+Tue Apr 27 09:26:04 1993 CET  Kresten Krab Thorup  (krab@xiv.iesd.auc.dk)
+
+	* objc/Makefile (fflags): -x test changed to -s test 
+
+        * objc/Makefile: CFLAGS changed to GCC_CFLAGS
+
+        * objc/Object.h: No longer includes objc.h  Instead, a minimal set
+        of definitions is provided here.
+
+        * objc/Object.h, Object.m, cache.h, class.c, init.c, misc.c,
+        objc-api.h, objc.h, objects.c, sendmasg.c: Usage of Class_t and
+        MetaClass_t eliminated. Now using Class* and MetaClass* only.
+
+        * objc/objc.h: Does no longer include stdio.h and stdarg.h.   Minimal
+        set of definition, which is provided by Object.h is placed in
+        preprocessor conditionals __object_INCLUDE_GNU.  Definitions of
+        MetaClass_t and Class_t removed.  Class and MetaClass are no
+        longer defines, but typedefs.
+
+Tue Apr 27 01:40:50 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Mon Apr 26 20:45:07 1993  Mike Stump  (mrs@poseidon.cygnus.com)
+
+	* cp-init.c (expand_recursive_init_1): Make sure we use the binfo's
+	version of a binfo, rather than someone elses, as the second
+	parameter to build_virtual_init must be the exact binfo we want so
+	that it may get the right vtable.
+
+	Mon Apr 26 12:58:23 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-type2.c (my_friendly_abort): Rephrase to try to help encourage
+	people to send bug reports in, and not just say, "Hey, the compiler
+	told me to report an internal error. Bye!".
+
+	* cp-decl.c (grokdeclarator): Forbid declaring an array of references.
+
+	* cp-parse.y (unary_expr): Forbid doing sizeof on a function.
+
+	* cp-typeck.c (build_unary_op): Pedwarn if they try to do pre/post
+	increment/decrement on an enum.
+
+	* cp-method.c (build_opfncall): Reorganize things to properly look
+	for a postfix operator ++/--, without taking the fastest way out of
+	the search, which could lose.
+
+	* cp-search.c (compute_visibility): Check for a member fn
+	manipulating its own members before checking the basetype_path.
+
+	* cp-pt.c (lookup_template_class): Instead of dying in the case
+	where D1 has a local value but no global or class value, return an
+	error_mark_node.
+
+	* cp-pt.c (lookup_template_class): Don't assert if IN_DECL is null,
+	since we pass it down that way from the parser.
+	(coerce_template_parms): Likewise.
+	* cp-parse.y (template_type): Let template_type_seen_before_scope be
+	an error_mark if necessary, so we can intelligently handle things
+	later rather than give useless syntax errors.
+
+	Sat Apr 24 17:12:17 1993  Mike Stump  (mrs@poseidon.cygnus.com)
+
+	* cp-pt.c (tsubst): When we go back for a second pass, make sure we
+	start over with the list of methods.  Fixes problem introduce on
+	Sat Mar 20 12:29:37 1993.
+
+Mon Apr 26 18:48:18 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold): Signedness matters for comparisons and
+	right shifts.
+
+	* xm-alpha.h (ONLY_INT_FIELD): Define again; this time say why.
+
+	* tree.h (INTEGRAL_TYPE_P, FLOAT_TYPE_P): New macros.
+	* fold-const.c: Use INTEGRAL_TYPE_P and FLOAT_TYPE_P.
+
+	* protoize.c (other_variable_style_function): Properly test for
+	the presence of the string "...".
+
+	* c-decl.c (pushdecl): Don't make a copy of type of error_mark_node.
+
+Mon Apr 26 18:15:03 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa-hpux.h (LINK_LIBGCC_SPECIAL): Delete.
+	(RELATIVE_PREFIX_NOT_LINKDIR): Delete.
+	* pa-ghpux.h, pa-hpux7.h, pa-gux7.h: Likewise.
+
+Mon Apr 26 16:57:03 1993  Michael Meissner  (meissner@osf.org)
+
+	* mips-tdump.c (CODE_MASK): Define if running on an alpha instead
+	of a MIPS.
+	(MIPS_IS_STAB): Ditto.
+	(MIPS_MARK_STAB): Ditto.
+	(MIPS_UNMARK_STAB): Ditto.
+	(tfile): New global, holds result of -t option, to skip global
+	header.
+	(malloc, calloc, realloc, free): Don't declare on alpha.
+	(print_sym_hdr): Make sure all arguments are properly cast to int
+	or long, depending on whether the format is %ld or %d.
+	(read_tfile): Don't look at magic number, instead use -t option to
+	determine whether to skip the global header or not.
+	(main): Process -t option.
+
+Mon Apr 26 17:47:10 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+
+        * Objective C portability cleanup 
+	* objc/Object.c (-hash, -error): Cast changed to size_t
+	* objc/archive.c, objc/misc.c, objc/sendmsg: Argument to strlen
+	casted to char* everywhere. 
+	* objc/class.c (__objc_resolve_class_links): Unused variable
+	class1 removed. 
+	* objc/class.c (class_pose_as): Unused variable node removed.
+	* objc/hash.c, objc/init.c: extra parenthesis around assignment
+	conditionals. 
+	* objc/Makefile, objc/hash.h, objc/runtime, objc/sarray.h: IN_OBJC
+	changed to IN_GCC.
+	* objc/init.c: Unused local variable object_class removed. Cast of
+	pointer to int changed to size_t.
+	* objc/list.h (list_free): No longer declared inline.
+	* objc/objc-api.h, objc-runtime.h: Now includes memory.h.
+	* objc/objc.h: Added declarations for malloc and friends, IN_OBJC
+	changed to IN_GCC.  Type of info member of objc_class changed to
+	unsigned long. 
+	* objc/objects.c, objc/api.h, objc/sarray.h: Changed usage of
+	bcopy to memcpy.
+	* objc/sendmsg (__objc_print_dtable_stats): Returntype changed to
+	void. 
+
+Mon Apr 26 07:55:03 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* sparc.h (ASM_OUTPUT_LONG_DOUBLE): New macro.
+	* sysv4.h (ASM_OUTPUT_LONG_DOUBLE): Likewise.
+
+Mon Apr 26 08:45:18 1993  Kresten Krab Thorup  (krab at xiv.iesd.auc.dk)
+
+        * objc/hash.h, objc/init.c, objc/objc.h, objc/sarray.c,
+        objc/sarray.h, objc/selector.c, objc/sendmsg.c: Change unsigned
+        int to size_t when casting pointer type to integer.
+        * objc/sarray.h (struct soffset): Changed to add up to sizeof 
+        (size_t) in stead of sizeof (unsigned int).
+        * objc/hash.h: Include stddef.h
+        * objc/_forward.h: int changed to size_t.
+
+        * objc/Object.m, objc/archive.c, objc-api.h: Take out archiving
+        support for alpha.  
+
+        * objc/Makefile: (IN_OBJC): new #define used to control inclusion
+        of gstdarg or stdarg for the runtime.   objc/objc.h,
+        objc/runtime.h, objc/sarray.h: Updated to use the above. 
+
+Sun Apr 25 21:50:16 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-lex.c (yylex): Re-incorporate changes to redo converting
+	float values to desired type.
+
+Sun Apr 25 18:11:24 1993  Ron Guilmette  (rfg@netcom.com)
+
+	* rtl.h (NOTE_INSN_FUNCTION_BEG): Make non-zero.
+	* rtl.c (note_insn_name): Re-order for above.
+
+	* dwarfout.c (output_decl):  Check for DECL_INITIAL == NULL_TREE
+	rather than DECL_EXTERNAL != 0 when trying to see if we have a
+	mere function declaration rather than a function definition.
+	(dwarfout_file_scope_decl):  Likewise.  Also, don't bother checking
+	TREE_USED for file-scope functions, since it isn't 100% accurate
+	until the end of compilation anyway.
+
+Sun Apr 25 17:07:44 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.c (mem_aligned_8): Delete ifdefed out code.  Add support
+	for TARGET_UNALIGNED_DOUBLES.
+	* sparc.h (TARGET_HOPE_ALIGN, TARGET_FORCE_ALIGN): Delete.
+	(TARGET_UNALIGNED_DOUBLES): Define.
+	(TARGET_SWITCHES): Delete hope-align, force-align.  Add
+	unaligned-doubles and no-unaligned-doubles.
+	(ROUND_REG): Delete.
+	(FIRST_PARM_OFFSET, FUNCTION_ARG_ADVANCE, FUNCTION_ARG,
+	FUNCTION_INCOMING_ARG, FUNCTION_ARG_PARTIAL_NREGS,
+	FUNCTION_ARG_BOUNDARY): Delete force-align support.
+	(LONG_DOUBLE_TYPE_SIZE): Define to 128.
+
+	* sched.c (create_reg_dead_note): Rewrite so as to conserve
+	registers killed not number of REG_DEAD notes.
+	(schedule_block): Change comments about dead_notes variable.
+
+	* sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Make %f0/%f1
+	the last float registers allocated.
+
+	* sparc.c (output_load_address, output_size_for_block_move,
+	output_block_move): Ifdef out.
+	* sparc.md (movstrsi): Comment out.
+
+	* sparc.c (output_function_epilogue): Emit 'nop' instead of
+	'sub %sp,-0,%sp' when the frame is empty.
+	* sparc.md (movdf): Add a define split.
+
+	* expmed.c (extract_fixed_bit_field): Adjust BITPOS so that it
+	fits inside MODE before adjusting OFFSET to get an aligned address.
+
+Sun Apr 25 06:28:56 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* varasm.c (make_decl_rtl): If a variable has an asm operand that
+	refers to, e.g., fp, make a distinct RTL for it.
+
+	* c-decl.c (init_decl_processing): Last arg to __builtin_apply
+	is size_t, not int.
+
+	* c-lex.c (yylex): Don't warn about floating point out of 
+	range if target floating-point format is IEEE.
+
+	* romp.h (SIZE_TYPE): Deleted.
+
+Sat Apr 24 16:46:41 1993  Stephen L. Moshier  (moshier@world.std.com)
+
+	* c-lex.c (forget_protocol_qualifiers): Cast enums to ints before
+	comparing.
+
+Sat Apr 24 13:08:56 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (INITIALIZE_TRAMPOLINE): Pass a register operand, not
+	a memory operand to "cacheflush".
+	* pa.md (cacheflush): Rework pattern and output template to avoid
+	using REG+D addressing.
+
+Sat Apr 24 11:15:02 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* flow.c (mark_used_regs): Use proper type for {all,some}_needed.
+	* cse.c (invalidate): Likewise for in_table.
+
+	* tree.h (build_binary_op, build_indirect_ref, build_unary_op):
+	Delete declarations; these are part of the front ends.
+
+	* objc-act.c (HASHFUNCTION): Cast pointers to widest int type.
+
+Sat Apr 24 02:48:37 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Cygnus<->FSF merge.
+
+	Fri Apr 23 11:08:25 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-call.c, cp-class.c, cp-decl.c, cp-except.c, cp-init.c,
+	cp-parse.y, cp-pt.c, cp-search.c, cp-type2.c, cp-typeck.c,
+	cp-xref.c: Fix many bugs in types of fn args & such.
+
+	* cp-decl.c (grokdeclarator): When dealing with a class-local
+	typedef, only call poplevel when the current_binding_level isn't
+	what we marked as being the local_binding_level.
+
+	* cp-decl.c (grokdeclarator): Call pushdecl_class_level, not
+	pushtag, to put a class-local typedef into its proper scope.
+	Also disable the warning about a typedef hiding the previous
+	one, since the cp-class.c change now diagnoses that problem.
+	* cp-class.c (delete_duplicate_fields_1): Also check for duplicated
+	type names.
+
+	* cp-lex.c (yyerror): Delete extern decl of input_redirected.
+
+	* cp-parse.y (primary): If the global value for a scoped identifier
+	ends up being an ADDR_EXPR, call assemble_extern on its argument,
+	not on the ADDR_EXPR itself.  Fixes the IMPORT problem on the PA.
+
+	* cp-typeck.c (build_modify_expr_1): Put in missing `else'.
+
+	Wed Oct  7 16:00:29 1992  Chip Salzenberg  (chip@tct.com)
+
+	Change propagated from the C front-end.
+	* cp-decl.c (shadow_tag): Use pedwarn for useless keyword.
+
+	Wed Oct  7 17:51:36 PDT 1992  Ron Guilmette (rfg at netcom.com)
+
+	* cp-type2.c (digest_init):  Handle union initializers which are
+	"raw" constructors.
+	(process_init_constructor):  Renamed `erred' to `erroneous' (as in
+	the C front end).
+	(process_init_constructor):  Added code to handle union initializers.
+
+	Fri Oct 23 16:29:45 1992  Chip Salzenberg  (chip@tct.com)
+
+	Change propagated from the C front-end.
+	* c-typeck.c (process_init_constructor): When initializing a union,
+	handle the case of an empty init list.
+
+	Tue Dec  1 21:35:36 1992  Niklas Hallqvist  (niklas at della.appli.se)
+
+	* cp-call.c (convert_harshness): Add support for ellipsis matching
+	when dealing with function pointers (or references) in argument
+	lists.
+	(rank_for_overload): Ditto.
+	(compute_conversion_costs): Ditto.
+	(*_HARSHNESS): Ditto
+	* cp-class.h (struct candidate): Ditto.
+
+	Mon Jan  4 11:46:19 1993  Chip Salzenberg  (chip@tct.com)
+
+	Changes propagated from the C front-end.
+	* cp-typeck.c (c_sizeof, c_sizeof_nowarn, c_size_in_bytes):
+	Call force_fit_type with end result.
+
+	Sat Jan 30 01:23:22 1993  Niklas Hallqvist  (niklas at della.appli.se)
+
+        * cp-class.c (finish_struct): See to that static members whose
+	type is the class they're declared in gets a correct mode.  This
+	is a completion of the Jan 23rd change.
+
+	Mon Feb  1 09:40:11 1993  Niklas Hallqvist  (niklas at della.appli.se)
+
+	* cp-search.c (compute_visibility): Add support for  anonymous
+	unions nested in classes.
+
+	Tue Feb  2 16:06:10 1993  Chip Salzenberg  (chip@tct.com)
+
+	Eliminate signed integer overflow in specbits:
+	* cp-lex.h (RID_BIT_TYPE): New typedef for RID_... bits.
+	(RIDBIT): New convenience macro for RID_... bits.
+	* cp-decl.c (grokvardecl, grokdeclarator): Declare specbits
+	to be RID_BIT_TYPE.  Use RIDBIT instead of "1<<RID_...".
+
+	Mon Feb 15 10:45:12 1993  Niklas Hallqvist  (niklas@della.appli.se)
+
+	* cp-method.c (build_typename_overload): Identifiers built by this
+	function needs the IDENTIFIER_OPNAME_P slot set.
+
+	Wed Apr 21 11:25:15 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (lookup_nested_type): When dealing with types that are
+	local to a nested class's member fn, make sure to hand back a TYPE_DECL
+	instead of a RECORD_TYPE.
+
+	Tue Apr 20 20:17:42 1993  Mike Stump  (mrs@poseidon.cygnus.com)
+
+	* cp-spew.c (yylex): Add `typespec (ID::*ID)[' and `typespec
+	(ID::*ID)(' to list of things that parse as declarators.
+
+	Mon Apr 19 15:05:21 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-search.c (report_ambiguous_mi_virtuals): If is never an error
+	to have same named class members at declaration time, ambiguities
+	are now caught at use sights.
+
+	Fri Apr 16 13:59:28 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-method.c (build_opfncall): If they didn't declare a postfix
+	operator ++ or --, then fall back and use the prefix one.
+	* cp-decl.c (grokfndecl): Forbid an operator ++/-- with its second
+	argument as anything other than an int.
+
+	* cp-lex.c (set_yydebug): Add extern decl of yydebug.
+
+	Fix enums in nested classes.
+	* cp-search.c (lookup_nested_field): New argument `complain', to
+	control if we should emit an error about assignment to a member of
+	an enclosing class or not.  Also, if ID ends up being an error_mark,
+	set it to a NULL so we don't try to do nasty things later---better
+	to assume we didn't find anything at all.
+	* cp-tree.h (lookup_nested_field): Add new arg to prototype.
+	* cp-decl.c (lookup_name): Pass if prefer_type is -2 into
+	lookup_nested_field, since there are cases (e.g., nested enums) when
+	we still need to look here.
+	* cp-lex.c (do_identifier): Pass complain arg as 1 into
+	lookup_nested_field.
+
+	Thu Apr 15 11:23:18 1993  Mike Stump  (mrs@poseidon.cygnus.com)
+
+	* cp-search.c (report_ambiguous_mi_virtuals): Pass pointers to
+	arrays, not pointers to first elements in the array in call to
+	rank_mi_virtuals.
+
+	* cp-lex.c (do_identifier), cp-parse.y: move
+	undeclared_variable_notice to where it is really used.
+
+	* cp-lex.c (do_identifier): Improve error message.
+
+	Tue Apr 13 17:04:12 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-typeck.c (default_conversion): OFFSET_REFs may not always have
+	a TREE_CODE (TREE_TYPE (x)) of OFFSET_TYPE, but they always will
+	have a TREE_CODE (x) of OFFSET_REF.
+
+	Fri Apr  9 20:26:32 1993  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-lex.c (real_yylex): Use MAP_CHARACTER translate incoming
+	character set.  See c-lex.c ChangeLog entry for more details.
+
+	Thu Apr  8 15:30:58 1993  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-search.c (lookup_field): When looking something up, if
+	want_type is set, and what we find is ambiguous make sure we set
+	errstr to 0, even when rval is already NULL_TREE.
+
+	Thu Apr  8 11:40:16 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-tree.h (lookup_name_current_level): Add prototype.
+
+	Tue Apr  6 13:36:00 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): When we see `typedef enum ...' inside
+	a class, properly grok the tag instead of giving two bogus errors.
+	(lookup_name_current_level): Don't make it static, and delete its
+	prototype.
+
+	* cp-lex.h (enum rid): Move RID_UNUSED1 to the end, so that RID_AUTO
+	will be 30, not 31.  We're at the limit, the next time a new rid is
+	added to this, we have to re-implement it to avoid integer overflows.
+
+	Sat Apr  3 12:16:23 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-init.c (emit_base_init): init can be NULL_TREE when dealing
+	with arrays, guard against it.
+
+Fri Apr 23 19:33:58 1993  Tor Egge  (tegge@pvv.unit.no)
+ 
+ 	* reorg.c (relax_delay_slots): Make sure target_label is set.
+ 
+Fri Apr 23 19:19:06 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (shadow_tag_warned): Let warned have three values, so that
+	a mere warning doesn't prevent a pedwarn.  Don't skip the error call
+	at the end on accounted of warned.
+
+	* c-decl.c (push_parm_decl): Turn off warning when parameter
+	shadows typedef.
+
+Fri Apr 23 16:41:54 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.md (casesi0): Indicate that the PC is set to the 
+	out-of-range label if the index is not valid.
+
+Fri Apr 23 14:00:48 1993  Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
+
+	* i386/svr3dbx.h, i386/svr3gas.h: Reflect new directory structure.
+	* i386/t-svr3dbx: New file to install the required ld ifiles
+	automatically.
+	* configure (i[34]86-...): Use t-svr3dbx if configured --with-stabs.
+
+Fri Apr 23 13:53:31 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* reload1.c (emit_reload_insns): Advance following_insn if it is a
+	clobber, not if the next insn is a clobber.
+
+Fri Apr 23 13:44:12 1993  Joey Pruett  (joey@tessi.com)
+
+	* protoize.c (scan_for_missed_items): Add keywords: else, do, case.
+
+Fri Apr 23 06:52:25 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold, case REALPART_EXPR, IMAGPART_EXPR): Avoid using
+	build_{unary,binary}_op since the calling sequences depend on
+	the front-end.
+	* expr.c (expand_expr, case OFFSET_REF): Likewise.
+	* convert.c (convert_to_integer, convert_to_complex): Likewise.
+
+	* c-typeck.c (readonly_warning): Correctly check for assignments
+	to iterators.
+
+Thu Apr 22 07:44:40 1993  Tom Wood  (wood@next.com)
+
+	* c-lang.c, objc-act.c (maybe_objc_comptypes): Undo the previous
+	change and make the undecided return value from 2 to -1 to avoid
+	confusion with the values used by comptypes.
+	(objc_comptypes): Ditto.  When two record types are being
+	compared, and none of the typed object cases applies, return -1 to
+	indicate no decision.
+	* c-typeck.c (comptypes): Only pass along a known return value
+	from maybe_objc_comptype.
+	(comp_target_types): If maybe_objc_comptypes computed a known
+	answer, return it.  Don't recurse for Objective-C.
+
+	* nextstep.h (ASM_FILE_START): Don't output a .file directive.
+	That's used by the assembler for error reporting.
+
+Wed Apr 21 17:45:50 1993  Ron Guilmette  (rfg at netcom.com)
+
+	* dwarfout.c (location_or_const_value_attribute):  Fixed to use
+	DECL_INCOMING_RTL for PARM_DECLs only when DECL_RTL isn't usable,
+	and even then, only when it actually points to the right place.
+
+	* integrate.c (integrate_parm_decls):  Copy the DECL_ARG_TYPE value
+	from the PARM_DECL being cloned into the DECL_ARG_TYPE field of the
+	clone.
+
+	* dwarf.h (AT_lo_user, AT_hi_user):  Fix defined values to be correct
+	according to final DWARF V1 spec.
+
+Tue Apr 20 20:32:57 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* function.c (assign_parms): Use mode of type, not BLKmode.
+
+Tue Apr 20 18:37:12 1993  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* configure (rs6000-ibm-aix*): Put cases in proper order.
+
+Mon Apr 19 15:27:16 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* calls.c (expand_call): New FUNCTION_ARG_CALLEE_COPIES macro.
+	* function.c (assign_parms): Ditto.
+
+Sat Apr 17 17:44:59 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.h (FUNCTION_ARG_PADDING): Add parens to make clearer.
+	(MUST_PASS_IN_STACK): Don't allow machine to override (none
+	currently do).
+	Don't force in stack if wrong padding when padding isn't needed.
+
+	* basic-block.h (reg_basic_block): Now int *, not short *.
+	* flow.c (uid_block_number): Likewise.
+	(flow_analysis): Allocate uid_block_number and reg_basic_block
+	as array of ints.
+	* combine.c (reg_last_set_label, reg_last_set_table_tick, label_tick):
+	Use int, not short, for counting labels.
+	(combine_instructions): Allocate these vars as arrays of ints.
+	* jump.c (same_regs): Now arrays of ints.
+	(thread_jumps): all_reset also array of ints, and allocate as ints.
+	* reg-stack.c (block_number, BLOCK_NUM, reg_to_stack): Use ints,
+	not shorts to count blocks.
+
+Sat Apr 17 03:27:48 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-parse.in (unary_expr): Delete the alternate REALPART and IMAGPART
+	rules with explicit parens.  Make the simple REALPART and IMAGPART
+	rules contain cast_expr.
+
+	* c-decl.c (finish_struct): Promote unsigned bitfield to signed int
+	if the field isn't as wide as an int.
+
+Fri Apr 16 21:42:49 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* calls.c (expand_call): Check warn_inline before complaining about
+	not being able to inline a fn declared inline.
+	* flags.h (warn_inline): Add extern decl.
+
+Fri Apr 16 20:27:57 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.md (blockage): Use unspec_volatile #1; #0 is IMB.
+
+	* local-alloc.c (qty_n_refs): Make int, like reg_n_refs.
+	(qty_first_reg, reg_next_in_qty): Make int, not short.
+	(local_alloc): Allocate these as arrays of ints.
+	(block_alloc, qty_compare_1): qty_order is now array of ints.
+
+Fri Apr 16 20:27:16 1993  Tom Wood  (wood@next.com)
+
+	* a29k.h (FUNCTION_VALUE_REGNO_P): True only for the first register
+	in the group.
+
+	* alpha.md, romp.md, rs6000.md (untyped_call, blockage): New patterns.
+
+Fri Apr 16 17:53:21 1993  Ron Guilmette  (rfg at netcom.com)
+
+	* reload1.c (last_spill_reg): Add missing "int".
+
+Fri Apr 16 16:55:16 1993  Doug Evans  (dje@wookumz.gnu.ai.mit.edu)
+
+	* Makefile.in (objc-headers): Ensure objc dir exists.
+
+Fri Apr 16 16:40:49 1993  Michael Meissner  (meissner@osf.org)
+
+	* mips/mips.h (MIPS_VERSION): Set Meissner revision number to 39.
+	(SELECT_SECTION): Do not put items with relocation into .rdata.
+	(INITIALIZE_TRAMPOLINE, TRANSFER_FROM_TRAMPOLINE): Allow these
+	macros to be overidden.
+
+	* mips/iris3.h (INITIALIZE_TRAMPOLINE, TRANSFER_FROM_TRAMPOLINE):
+	Provide versions of these that does not rely on using mprotect.
+
+	* mips/t-mips, mips/t-osfrose, mips/t-ultrix, i386/t-osfrose:
+	Delete extra dependencies.
+
+	* i386/osfrose.h (SELECT_SECTION): Do not put items with
+	relocation into .text if -pic-lib.
+
+Fri Apr 16 01:09:53 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i386/xm-isc.h (REAL_VALUE_ATOF): Define only if
+	not REAL_ARITHMETIC.
+
+Thu Apr 15 07:25:00 1993  Tom Wood  (wood@next.com)
+
+	* objc-act.c (IS_ID, IS_PROTOCOL_QUALIFIED_ID, IS_SUPER): New type
+	checking macros.
+	(objc_comptypes, build_message_expr, gen_declspecs): Use them.
+
+	* objc-act.c (gen_declarator): Don't use strcpy's return value.
+
+	* objc-act.c (build_message_expr): Allow any type that matches
+	objc_class_type.
+
+	* objc-act.c (get_class_reference): We already have a name.
+
+	* objc-act.c (receiver_is_class_object): Use STRIP_NOPS.  Search
+	cls_ref_chain.
+
+Thu Apr 15 07:25:00 1993  Michael Meissner  (meissner@osf.org)
+
+	* objc-act.c (build_objc_string): Use TREE_SET_CODE instead of
+	assigning to TREE_CODE.
+	(build_objc_string_object): Ditto.
+
+Wed Apr 14 17:51:50 1993  Holger Teutsch  (holger@hotbso.rhein-main.de)
+
+	* clipper.h (FRAME_POINTER_REQUIRED, FRAME_POINTER_OFFSET):
+	Frame pointer is no longer required for leaf functions.
+	(OPTIMIZATION_OPTIONS): Define.
+
+	* clipper.c (clipper_frame_size): New function.
+	(output_function_pro/epilogue): Support omitting frame pointer.
+
+	* clipper.md (cmpsi): Use `cmpq' for small immediate values.
+	(addsi3): Use `loada' for `reg1 = reg2  + immed'.
+
+Wed Apr 14 15:23:24 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* print-tree.c (print_node): Use (struct rtx_def *), not (rtx).
+
+Wed Apr 14 13:46:36 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i860/i860.md (floatsidf2): Add missing arg to REAL_VALUE_ATOF.
+
+	* c-parse.in: Improve error message for sym undeclared at top level.
+
+Wed Apr 14 12:06:08 1993  Tom Wood  (wood@next.com)
+
+	* c-lang.c, objc-act.c (maybe_objc_comptypes): Return 0
+	(incompatible) rather than 2 (similar enough) as the default.
+	This was an inadvertent change in the Objective-C merge.
+
+	* objc-act.c (get_class_reference): Call add_class_reference for
+	the GNU runtimes.
+
+Wed Apr 14 03:49:21 CDT 1993  Paul Burchard  (burchard@geom.umn.edu)
+
+        * objc/Object.h, objc/Object.m, (-awake);
+        objc/archive.c (__objc_finish_read_root_object):
+        Corrected name of method -awake: to -awake for compatibility.
+
+Wed Apr 14 10:58:29 1993  Kresten Krab Thorup  (krab@xiv)
+
+        * objc/Object.m, objc/Object.h (+streamVersion:): New method.
+        * objc/archive.c (objc_get_stream_class_version): New function.
+
+Tue Apr 13 17:23:22 1993  Ron Guilmette  (rfg at netcom.com)
+
+	* c-decl.c (pop_label_level, combine_parm_decls): Correct args
+	in error calls.
+	* c-typeck.c (error_init, pedwarn_init): Cast alloca result to char *.
+	* calls.c (expand_call): Last arg of emit_stack_save is NULL_RTX.
+	(store_one_arg): Fourth arg to emit_push_insn is NULL_RTX.
+	* collect2.c (main, scan_prog_file): Don't call signal on signal
+	names that aren't defined.
+	* dbxout.c (dbxout_symbol): Last arg to eliminate_regs is NULL_RTX.
+	* fold-const.c (size_int): NUMBER is unsigned so don't test
+	for negative.
+	(optimize_bit_field_compare, all_ones_mask_p): Add missing
+	last arg to force_fit_type call.
+	* gcc.c (putenv): Make result type void.
+	(main): Don't call signal for undefined signal names.
+	* genextract.c (main): Remove extra arg to printf call.
+	* print-tree.c (print_node_brief, print_node): Properly cast
+	arg when printing ints or rtx.
+	* rtl.h, tree.h (xmalloc): Don't use prototype for now.
+	* sched.c (sched_analyze_1): Extra arg in anti_dependence call.
+	* toplev.c (main): Don't call signal for undefined signal names.
+	* varasm.c (make_var_volatile): Return type is void.
+	(assemble_string): First arg is not pointer to unsigned.
+	* sparc.h (LEGITIMIZE_ADDRESS): Last arg to force_operand is NULL_RTX.
+	* sparc.md (movXX): Third arg to emit_move_sequence is NULL_RTX.
+	(movsi): Add missing return after abort.
+
+Tue Apr 13 14:09:00 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (digest_init): Don't call default_conversion before
+	convert_for_assignment.
+	(parser_build_binary_op): Make NOP_EXPR, not NON_LVALUE_EXPR.
+
+        * dbxout.c (dbxout_type): Re-enable debugging output for anonymous
+        structures in C++.
+
+Tue Apr 13 08:44:55 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+
+       * objc-act.c, toplev.c (-Wprotocol): added
+       * objc-act.c (flag_warn_protocol): New variable
+       (check_methods_accessible): New function
+       (check_protocol): Use check_methods or check_methods_accessible
+       depending on flag_warn_protocol to check protocol conformance.
+
+       * objc-act.c (start_class): For class implementations Assign
+       SUPER_CLASS_NAME from interface specification if not present.
+
+Tue Apr 13 06:48:20 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.md (sminsf, smindf, smaxsf, smaxdf): Should be minsf, etc.
+
+	* genattrtab.c (clear_struct_flag): Add void return type defn.
+	(count_subs_rtx): Add int return type and add definition.
+	(simplify_test_exp): Delete debugging junk.
+	(do_nothing): Delete.
+
+	* tree.def (QUAL_UNION_TYPE): New tree code.
+	* tree.h (DECL_QUALIFIER): New access macro for decl.initial.
+	* calls.c, dbxout.c, dwarfout.c, expr.c, function.c, print-tree.c:
+	Treat QUAL_UNION_TYPE like UNION_TYPE when seeing if aggregate. 
+	* sdbout.c, stmt.c, varasm.c: Likewise.
+	* expr.c (get_inner_reference): Don't blow up if a FIELD_DECL
+	hasn't been filled in.
+	(expand_expr, case COMPONENT_REF): Likewise.
+	* stor-layout.c (layout_union): Handle QUAL_UNION_TYPE.
+	(layout_type): Call layout_union for QUAL_UNION_TYPE and
+	treat it like UNION_TYPE elsewhere.
+
+Tue Apr 13 06:08:16 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* fold-const.c (div_and_round_double): Don't mix HOST_WIDE_INT * and
+	unsigned HOST_WIDE_INT * parameters; some compilers complain.
+
+Mon Apr 12 22:14:03 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+
+	* objc/list.h, objc/runtime.h: Removed declarations of library
+	functions.  objc/list.h, objc/objc.h, objc/objc-api.h,
+	objc/runtime.h, Object.m, Protocol.m:  Changed to double quote
+	includes.  Removed includes of stddef.h, objc-archive.h and
+	stdlib.h.  
+
+	* objc/objc-archive.h: File deleted.  Contents embedded in objc-api.h
+	* objc/objc-archive.c: File renamed to archive.c
+	* objc/objc-class.c: File renamed to class.c
+	* objc/objc-init.c: File renamed to init.c
+	* objc/objc-misc.c: File renamed to misc.c
+	* objc/objc-msg.c: File renamed to sendmsg.c
+	* objc/objc-object.c: File renamed to objects.c
+	* objc/objc-sel.c: File renamed to selector.c
+	* objc/Makefile (OBJC_H, OBJC_O): Updated accordingly
+
+Mon Apr 12 22:05:58 1993  Tom Wood  (wood@next.com)
+
+	* Makefile.in (objc-act.o): Add dependencies.
+
+Mon Apr 12 20:52:00 1993  Kresten Krab Thorup  (krab@spiff.gnu.ai.mit.edu)
+
+	* objc-act.c (_OBJC_SELECTOR_REFERENCES_decl): Variable renamed to
+	_OBJC_SELECTOR_TABLE_decl.  Name of selector table renamed from
+	"_OBJC_SELECTOR_REFERENCES" to "_OBJC_SELECTOR_TABLE" to avoid
+	conflict with NeXTSTEP linker.
+
+	* Makefile.in (stmp-int-hdrs): Added dependency objc-headers.
+	(objc-headers): New target.
+
+	* objc/Makefile (_forward, fflags): Made targets error prone.
+	(objc-msg.o, _forward): Use explicit path instead of $<.
+
+Mon Apr 12 19:49:55 1993  Tom Wood  (wood@next.com)
+
+	* objc-act.h (CLASS_PROTOCOL_LIST, PROTOCOL_LIST,
+	PROTOCOL_FORWARD_DECL, TYPE_PROTOCOL_LIST): Rearrange use of type
+	members to avoid use of noncopied_parts.
+	* objc-act.c (get_static_reference, get_objcect_reference,
+	start_protocol): Make a tree vector for new protocol types.
+	(start_class): The tree vector for class types is longer.
+
+	* m68k/next.h (ASM_OUTPUT_FLOAT_OPERAND): Use CODE.
+
+
+Mon Apr 12 15:46:21 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* Makefile.in (install-common): Delete $(bindir)/$(target)-gcc
+	before trying to install it.
+
+	* i960.h (CONSTANT_ALIGNMENT): Only increase alignment of string
+	constants.
+
+	* gcc.c (library_prefix): Delete variable.
+	(process_command): Delete uses of library_prefix.
+	(do_spec_1, D case): Delete use of library_prefix.
+
+	* explow.c (emit_stack_save): At end, call validize_mem when
+	inside sequence.
+
+	* c-typeck.c (internal_build_compound_expr): When pedantic, don't
+	simplify a COMPOUND_EXPR, so that it won't be mistaken for an
+	lvalue or an integer constant expression.
+	* fold-const.c (fold, COMPOUND_EXPR case): Likewise.
+
+Mon Apr 12 15:24:05 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.c (print_operand): Sort all cases in alphabetical order.
+	(print_operand, case 'G'): New case.
+	(output_epilog): Know that "GNU Obj-C" is the language string
+	for Objective-C.
+	* rs6000.md (adddi3/subdi3): Allow immediate constants.
+
+	* configure (rs6000-ibm-aix*): Make AIX 3.2 the default.
+
+	* README.RS6000: Replaced file to discuss assembler for AIX 3.2 and
+	problems with NLS support.
+
+	* combine.c (record_value_for_reg): Properly set SUBST_LOW_CUID
+	for last change; otherwise won't get best value.
+
+Mon Apr 12 13:23:59 1993  Jeffrey A. Law (law@schirf.cs.utah.edu)
+
+	* jump.c (jump_optimize, clause for `x=a; if (...) x=b;'):
+	Do this regardless of BRANCH_COST if HAVE_conditional_move
+	defined.
+
+Mon Apr 12 17:15:43 1993  Kresten Krab Thorup  (krab at xiv)
+
+        * objc/hash.h: Deleted #include "mutext.h"
+        * objc/Object.m, objc/Object.h (-read:, -write:): added.
+        * objc/Object.m, objc-api.h: Stripped anything added by
+        kane@cc.purdue.edu which is not considered "minor changes".
+        * objc/objc.h: now "#include"s objc-archive.h
+        * objc/objc-msg.c (__objc_init_install_dtable,
+        __objc_install_dtable_for_class): Call to
+        __objc_resolve_class_links moved to the latter.
+        * objc/objc-msg.c (__objc_responds_to): Function added
+        * objc/objc-archive.c (objc_write_reference): added
+
+Sat Apr 10 18:07:46 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+
+        * objc/Makefile: Cleaned up for inclusion in gcc distribution.
+        Target copy-headers added.
+
+Sun Apr 11 06:40:16 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* toplev.c (strip_off_ending): Add .atr for Ada.
+
+	* reorg.c (add_to_delay_list): Clear any cached block information
+	for INSN.
+
+	* stor-layout.c (layout_record): After copying the offsets of a
+	field that is an anonymous union to the offsets of the fields
+	of that union, zero the offset of the anonymous field in case
+	it is used to access the inner fields.
+
+	* combine.c (make_compound_operation, case xSHIFTRT):
+	Clean up code so more readable and don't restrict to case
+	where C2 >= C1.
+	Pass correct (inner) code to recursive call.
+	(make_compound_operation, case SUBREG): Pass the code of our
+	operand to recursive call, not SUBREG, and make another recursive
+	call after calling force_to_mode.
+
+Sun Apr 11 11:16:48 1993  John F Carr  (jfc@Athena.mit.edu)
+
+	* combine.c (can_combine_p):  Don't move an UNSPEC_VOLATILE.
+
+Sun Apr 11 01:32:39 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expmed.c (expand_divmod): When adjusting op0 for trunc_div or
+	trunc_mod, using shifts (not branches), make a new pseudo for the
+	result.  Don't use target for adjusted_op0.
+
+Sat Apr 10 10:57:09 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* xm-alpha.h (ONLY_INT_FIELDS): No longer needed.
+
+	* alpha.c (alpha_sa_size): Need to save $26 if it is used or
+	if any other register is saved, but not just because a stack
+	space is needed.
+	(output_prolog): Add code to probe the stack if we allocate more
+	than 4096 bytes; required by chapter 7 (for threads).
+	Know when to save $26.
+	(output_epilog): Know when to restore $26.
+	* alpha.md (add/sub): Correct predicates and constraints for
+	sNaddX and addX insns; we can use sNsubX and subX to add small
+	negative constants.
+	Don't split addition to SP since we want to update it just once.
+	(beq, bne): Use subtract, not compare for ints; it's more efficient.
+	(define_split for comparisons): Always prefer add/sub if it will work.
+	(probe_stack, allocate_stack): New patterns.
+
+Fri Apr  9 20:03:38 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* c-typeck.c (free_tree_list): New variable.
+	(digest_init): Set free_tree_list.
+	(process_init_constructor): Use add_double to do arithmetic with
+	double integers instead of using fold/build to to arithmetic in
+	type of array index.  Use free_tree_list when available instead of
+	generating a new tree_list.
+
+Fri Apr  9 19:05:31 1993  Tom Wood  (wood@next.com)
+
+	* c-lex.h (RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_ONEWAY,
+	RID_ID): New Objective-C keywords.
+	* c-parse.gperf: Incorporate the Objective-C keywords from
+	objc-parse.gperf and add the new keywords.
+	* objc.gperf: Deleted.
+	* c-lex.c: Use -N when running gperf so the keyword table can be
+	accessed.  Ran gperf and replaced that section.
+	(forget_protocol_qualifiers, remember_protocol_qualifiers): New
+	functions to modify the keyword table so that `in', `out', `inout',
+	`bycopy', and `oneway' are keywords only in protocol declarations.
+	(init_lex): Initialize the new keywords.  Forget the protocol
+	qualifiers, and only make `id' a keyword when compiling an
+	Objective-C module.
+	(yylex): Treat @ as the start of an identifier (keyword), but
+	recognize Objective-C string constants (@"...").
+	* c-parse.in: Add support for Objective-C protocols, classes, and
+	strings.
+	(initlist): Don't include labeled array elements in the
+	Objective-C grammer.  These look like messages and preclude the
+	use of messages in initializers.
+	(recognize_objc_keyword): Deleted.  The keywords are now in
+	c-parse.gperf.
+	* c-tree.h: Add declarations for functions in objc-act.c.
+	(doing_objc_thang): Declare here.
+	* c-decl.c (grokfield): Check for statically allocated objects.
+	* c-lang.c (is_class_name, maybe_objc_method_name,
+	build_objc_string): New functions.
+	(maybe_objc_comptypes): Add REFLEXIVE parameter.
+	* c-typeck.c (comptypes, convert_for_assignment): Check for
+	Objective-C protocols (non-reflexive use of maybe_objc_comptypes).
+	(comp_target_types): Rewrite so that maybe_objc_comptypes checks
+	protocols when processing an Objective-C module.  For C modules,
+	the code path is unchanged.
+	(convert_for_assignment): Improve the error message for
+	incompatible message arguments.
+	* objc-act.h, objc-act.c: Add support for protocols, classes, and
+	strings.  Update the runtime targets for the new GNU runtimes as
+	well as existing NeXT runtimes.
+	* toplev.c (lang_options): Add -fgnu-runtime and -fnext-runtime.
+
+	* configure (i[34]86-next-*): New configuration.
+	* config.sub: Default to bsd if vendor is next.
+	* i386/next.h, i386/next.c, i386/x-next, i386/t-next,
+	i386/xm-next: New files.
+	* m68k/next.h, m68k/next.c: Move machine independent portions to
+	nextstep.h and nextstep.c.  Update to NeXTSTEP 3.0 and 3.1.
+	* nextstep.h, nextstep.c: New files.
+
+	Dumped Kresten's latest objc-runtime into the objc directory.
+	This needs work.
+
+	* objc/core.c, objc/objc-proto.h, objc/object.h, objc/object.m,
+	objc/record.h: Deleted.
+
+	Thu Apr  1 11:02:49 1993  Kresten Krab Thorup  (krab at xiv)
+
+	* objc/list.h (list_remove_head): added case for one element list. 
+	* objc-init.c (__objc_exec_class): changed objc_get_class to
+	objc_lookup_class.  (thanks to mccallum@cs.rochester.edu)
+
+	Thu Mar 30 11:04:11 1993  Kresten Krab Thorup  (krab at xiv)
+
+	* Protocol.m, objc/Protocol.h: added
+	* objc.h (struct objc_protocol): added
+	* objc-init.c (__objc_init_protocols): added
+	(__objc_exec_class): added code for initializing protocols
+	* objc-class.c (__objc_class_add_protocols): added
+
+	Thu Mar 25 17:09:40 1993  Kresten Krab Thorup  (krab at xiv)
+
+	* configure, Makefile.in: added
+	* Makefile.in (install): added
+
+	Wed Mar 24 14:32:14 1993  Kresten Krab Thorup  (krab at xiv)
+
+	* objc/objc.h: Define objc_msg_lookup inline if optimization is
+	turned on.  objc-actions.c changed accordingly.
+
+	Tue Mar 23 18:02:04 1993  Kresten Krab Thorup  (krab at eos)
+
+	* sarray.c, objc/sarray.h: Structure of `sarray' changed
+	eliminating one indirection.  This affects most functions.
+
+	Mon Mar 29 1993  Christopher J. Kane  (kane@rock-opera)
+
+	* objc-object.c (_objc_object_alloc, _objc_object_dispose,
+	_objc_object_copy): moved to objc-misc.c, init to 0.
+	: deleted file.
+
+	* Object.m (-perform:, -perform:with:, -perform:with:with:): check
+	return value of objc_msg_looup before using it.
+	(-name, -doesNotRecognize:, -error:): changed class_get_class_name
+	to object_get_class_name.
+	(+readFrom:): added check for class name length.
+
+	* objc-api.m (class_create_instance, object_copy, object_dispose):
+	moved from objc-object.c, inline'd
+
+	Sun Mar 28 1993  Christopher J. Kane  (kane@prelude)
+
+	* objc-api.h (several inline functions): rewritten to
+	use new CLS_ISCLASS and CLS_ISMETA macros.
+	(object_is_metaclass): added.
+
+	* objc.h (_objc_alloc, _objc_dealloc, _objc_realloc,
+	_objc_copy, objc_trace): removed (not used).
+	(class_get_class_number, class_set_class_number): removed.
+	(CLS_ISCLASS, CLS_ISMETA): check for nil parameter.
+
+	Sat Mar 27 1993  Christopher J. Kane  (kane@toccata)
+
+	* Object.m: method comments added.
+	(-transmuteClassTo:): removed error message.
+	(+error:): removed.
+	(-error:): added +error: functionality.
+	(+readFrom:): changed objc_get_class to objc_lookup_class.
+	(+readFrom:): added class_set_version.
+
+	* objc-api.h (object_get_class, object_get_super_class,
+	object_get_meta_class, object_is_class,
+	object_is_instance, _objc_error): added.
+
+	* objc.h (_objc_error): moved to objc-api.h.
+
+	Fri Mar 26 1993  Christopher J. Kane  (kane@toccata)
+
+	* objc-api.h: function comments added.
+	(class_set_class_number, class_get_class_number, METHOD_NULL,
+	class_add_method_list, objc_msg_lookup_super): moved to
+	objc.h.
+	(objc_msg_sendv): removed.
+	
+	* Object.h, Object.m (-isMetaClass): added.
+	(+free, +name, +respondsTo:, +respondsTo:): removed.
+	(+class, +superClass, +metaClass): removed.
+
+	* Object.m (-storeOn:): added variable class_encoding.
+	(+readFrom:): replaced constant '#' with _C_CLASS.
+	(-descriptionForMethod): changed descriptionForInstanceMethod: message
+	to class_get_instance_method.
+	(-class): now calls object_get_class.
+	(-superClass): now calls object_get_super_class.
+	(-metaClass): now calls object_get_meta_class.
+
+	Wed Mar 24 1993  Christopher J. Kane  (kane@rock-opera)
+
+	* objc-api.h (METHOD_NULL): new define.
+	(method_get_argsize, method_get_imp, class_get_super_class,
+	class_get_meta_class, class_get_instance_size): new
+	functions.
+
+	* Object.m (-isStructuredLike:, CLASS, IMP2): removed.
+	(#include <objc/objc.h>): removed.
+	(includes <stdio.h>, <stdarg.h>, <errno.h>): replaced w/ extern decls.
+	(+poseAs:): implemented.
+	(-transmuteClassTo:): now returns previous class.
+	(-performv::): changed constant 96 to method_get_argsize.
+	(-perform:, -perform:with:, -perform:with:with:): removed casts.
+	(-storeOn:, +readFrom:): replaced "strlen("#")" with "1".
+	(-isKindOfClassNamed:, -isMemberOfClassNamed:, -error:,
+	+error:): check for NULL.
+	(many methods): changed pointer indirections to function calls.
+	(+instancesRespondTo:, -respondsTo:, -methodFor:
+	+instanceMethodFor:): simplified.
+
+	* Object.h, Object.m (-changeClass:): renamed to -transmuteClassTo:.
+	(+initialize, -isClass, -isInstance): added.
+
+	* Object.h: redundant #defines, typedefs removed; comments modified.
+	(+readFrom:, -readFrom:, -storeOn:) added.
+	(-perform:with:): duplicate declaration removed.
+
+Fri Apr  9 17:42:11 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config.sub: Accept i370, mvs.
+	For i370-ibm*, assume mvs by default.
+	Later, likewise, for i370-*.
+	For -mvs*, assume ibm as default vendor.
+
+	* c-lex.c (yylex): Use MAP_CHARACTER if it's defined.
+
+	* cccp.c (no_precomp): Make it 1 by default.
+
+Fri Apr  9 17:15:00  DJ Delorie (dj@ctron.com)
+
+	* configure.bat: Updated to handle current Makefile
+	and new config/i386/go32.h.
+
+	* config/i386/go32.h: New file.
+
+	* config/i386/xm-dos.h: Define MKTEMP_EACH_FILE and
+	NO_PRECOMPILES.
+
+Fri Apr  9 15:11:25 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in: Install as $(target)-gcc, not gcc-$(target).
+
+	* fixincludes: Avoid inserting #ifndefs in limits.h if they are
+	already there (solves HP/UX problem).
+
+Thu Apr  8 21:36:11 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c: Include hard-reg-set.h.
+	(reg_nonzero_bits): Should be unsigned.
+	(reg_last_set_{mode,nonzero_bits,sign_bit_copies}): New variables.
+	(combine_instructions): Allocate and initialized them.
+	(nonzero_bits, num_sign_bit_copies, case REG): Use new variables
+	to get information on regs we've seen before.
+	(record_value_for_reg): Set new variables for register being modified.
+	(record_dead_and_set_regs): Invalidate regs clobbered by CALL_INSN.
+	* Makefile.in (combine.o): Includes hard-reg-set.h.
+
+	* expr.c (do_store_flag, case GT_EXPR, LE_EXPR): Don't
+	confuse highest unsigned value with -1.
+
+	* combine.c (force_to_mode, case xSHIFT): Don't narrow the
+	mode unless we can be sure that the shift count is smaller
+	than the size of the mode.
+
+	* ns32k.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
+	Add new register class GEN_AND_FLOAT_REGS.
+
+Thu Apr  8 18:42:27 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (c-parse.y, objc-parse.y): Use sed, not awk.
+
+	* c-decl.c (finish_enum): Store layout results into variant types.
+
+	* flow.c (mark_set_1): Clear reg_next_use at the proper place.
+
+Thu Apr  8 10:50:00 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (LIBGCC2_INCLUDES, LIBGCC2_DEPS): New variables,
+	with empty values, to be overriden by t-* files.
+	(LIBGCC2_CFLAGS): Use LIBGCC2_INCLUDES.
+	(libgcc2.ready): Depend on LIBGCC2_DEPS.
+	(stmp-int-hdrs): New target, all of old stmp-headers except
+	float.h.
+	(stmp-headers): Depend on stmp-int-hdrs, and just install float.h.
+
+Thu Apr  8 06:58:27 1993  Michael Meissner  (meissner@osf.org)
+
+	* c-tree.h (require_complete_type, lookup_name_current_level): Add
+	prototypes.
+
+	* tree.h (require_complete_type, lookup_name_current_level): Remove
+	prototypes, these are defined in c-typeck.c and c-decl.c, and
+	lookup_name_current_level is declared static in cp-decl.c.
+
+Wed Apr  7 14:37:41 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* flow.c (mark_set_1): Clear reg_next_use for all kinds of regs.
+
+Wed Apr  7 09:18:20 1993  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h (GO_IF_LEGITIMATE_ADDRESS): Allow -fpic again to
+	mean System V.4 semantics.
+	(CC1_SPEC): -fpic and -fPIC turn off OSF/rose shared library
+	support.
+
+Tue Apr  6 18:07:20 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (start_function):
+	Inhibit missing prototype warning for `main'.
+
+Tue Apr  6 17:23:34 1993  Bill Cox  (bill@cygnus.com)
+
+	* tree.h (require_complete_type, lookup_name_current_level): Add
+	prototypes.
+
+Tue Apr  6 15:09:42 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* va-sparc.h (va_arg): Cast argument pointer to (char *).
+
+	* unroll.c (loop_iterations): When computing comparison_value, use
+	reg_set_p to identify instructions that modify it.
+
+	* sparc.md (lshldi3, lshrdi3): Define.
+
+	* Makefile.in (STAGESTUFF): Add insn-opinit.c, stamp-opinit, and
+	genopinit.
+
+	* cccp.c (do_include): For missing header file, if -M, don't
+	output dependencies, and warning not error if no dependency is
+	needed.
+
+	* c-common.c (decl_attributes, format case): Error if num_arg does
+	not point to a string type argument, or if first_arg_num not the
+	anonymous argument.
+
+	* function.c (init_function_start): Always set
+	current_funtion_returns_pcc_struct if PCC_STATIC_STRUCT_RETURN defined.
+
+	* sparc.md (movdi): End by returning the last template; otherwise
+	we return junk for a template.
+
+	* README.ALTOS: Comment as possibly obsolete.
+	* README.ENCAP: Delete.
+	* install.texi: Delete references to COFF encapsulation.
+
+	* tree.h: Add more prototypes.
+
+Tue Apr  6 12:01:17 1993  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump Meissner version number to 38.
+	(PUT_SDB_*): If -mgas, don't put # in front of directives.
+	(MIPS_DEFAULT_GVALUE): If not define, define as 8, which is the
+	default -G xx value to use.
+
+	* mips.c (override_options): Set mips_section_threshold to
+	MIPS_DEFAULT_GVLAUE if -G xx not used.
+
+	* mips/osfrose.h (DWARF_DEBUGGING_INFO): Define.
+	(MIPS_DEFAULT_GVALUE): If mips assembler, the value is 8,
+	otherwise it is 0.
+
+	* i386/osfrose.h (DWARF_DEBUGGING_INFO): Define.
+	(PREFERRED_DEBUGGING_TYPE): Define as DBX_DEBUG.
+
+Mon Apr  5 20:47:44 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* Represent prologue and epilogue as RTL on the PA
+	* pa.md (prologue, epilogue): New define_expands.
+	(return_internal, call_profiler): New define_insns.
+	* pa.h  (FIXED_REGISTERS): %r4 is no longer fixed.
+	(CALL_USED_REGISTERS): %r4 is no longer CALL_USED either.
+	(REG_ALLOC_ORDER): Move %r4 up in the allocation order.
+	(DELAY_SLOTS_FOR_EPILOGUE): Delete.
+	(ELIGIBLE_FOR_EPILOGUE_DELAY): Delete.
+	* pa.c (print_stw, print_ldw): Delete.
+	(eligible_for_epilogue_delay): Delete.
+	(hppa_epilogue_delay_slots): Delete.
+	(store_reg, load_reg, set_reg_plus_d): New helper functions.
+	(output_function_prologue): Only emit assembler pseudo-ops
+	to denote the start of a function.  Place the correct
+	value into hp_profile_label_name if profiling.
+	(output_function_epilogue): Only emit assembler pseudo-ops
+	to deonte the end of a function.
+	(hppa_expand_prologue): New function to emit all prologue
+	code as RTL.
+	(hppa_expand_epilogue): Likewise for the epilogue.
+	(compute_frame_size): Update to account for using %r4 as an
+	allocatable register if the frame pointer was eliminated.
+
+Mon Apr  5 06:57:35 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case SAVE_EXPR): Pass promoted type to
+	store_expr.
+
+Mon Apr  5 03:26:06 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload1.c (emit_reload_insns): Cast enum array index to int.
+
+	* expr.c (store_constructor): Properly compute size of array
+	when clearing the whole array.
+
+Mon Apr  5 02:54:54 1993  Per Bothner  (bothner@hal.gnu.ai.mit.edu)
+
+	* c-decl.c (lookup_name_current_level):  Make non-static.
+
+Sun Apr  4 20:09:19 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (HARD_REGNO_MODE_OK): Do not accept integer modes
+	greater than 32 bits in 1.0 FP registers.
+	* pa.md (movdi patterns): Do not accept 1.0 FP registers.
+	(floatunsdisf, floatunsdidf expanders): Disable unless TARGET_SNAKE.
+	(floatdisf2, floatdidf2 patterns): Likewise.
+	(fix_truncdisf2, fix_truncdidf2): Likewise.
+
+	* pa.md (dbra pattern): Extend to allow any 5 bit increment,
+	any comparison operator for the compare against zero, and
+	no longer require the REG_NONNEG note.
+
+	* pa.h (EXTRA_CONSTRAINT): Refine 'T' constraint to not accept
+	pseudos which did not get hard registers and to not use 
+	short_memory_operand.
+	* pa.c (short_memory_operand): Delete.
+	(emit_move_sequence): Do not use short_memory_operand when testing 
+	for secondary reloads for FP loads/stores.
+	* pa.md (movsi for FP regs): Delete special case patterns.
+	(movdi for FP regs): Likewise.
+	(movsi main recognizer): Allow fp<->memory copies.
+	(movdi main recognizer): Likewise.
+
+Sun Apr  4 18:56:25 1993  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pa.h (FUNCTION_OUTGOING_VALUE): Remove.
+	(FUNCTION_VALUE_REGNO_P): Return regs depend on TARGET_SNAKE.
+
+Sun Apr  4 17:47:43 1993  John F Carr  (jfc@Athena.mit.edu)
+
+	* reorg.c (get_jump_flags):  Check for LABEL == 0 before using
+	LABEL.
+
+Sun Apr  4 16:38:04 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* mips-tfile.c: Change "illegal" to "invalid" in error messages.
+	(parse_stabs_common): Allow nonzero ignored fields in .stabs/.stabn.
+
+	* calls.c (expand_call) [PCC_STATIC_STRUCT_RETURN]:
+	Always set pcc_struct_value if aggregate_value_p returns 1.
+
+	* Makefile.in (alloca.o): Delete -Demacs from command.
+
+Sun Apr  4 11:19:07 PDT 1993  Ron Guilmette  (rfg at netcom.com)
+
+	* dwarfout.c (type_attribute): Use the TYPE_MAIN_VARIANT of the
+	given type when calling `user_def_type_attribute'.
+
+Sun Apr  4 07:57:18 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* optabs.c: Include reload.h.
+	* Makefile.in (optabs.o): Show includes reload.h.
+
+	* alpha.c (output_prolog): Need LDGP even for static procedure.
+
+	* alpha.c (alpha_builtin_saveregs): Adjust for fact that
+	virtual_incoming_args_rtx includes pretend size.
+	* alpha.h (SETUP_INCOMING_VARARGS): Likewise.
+
+	* alpha.h (LINK_SPEC): Don't pass -O2 to ld; it seems to be broken.
+
+	* reorg.c (rare_destination): New function.
+	(mostly_true_jump): Refine to use more info about destination
+	and fallthrough; now returns -1 for very unlikely branches.
+	(fill_eager_delay_slots, relax_delay_slots): Allow -1 return
+	from mostly_true_jump.
+
+Sun Apr  4 03:09:23 1993  Richard Stallman  (rms@churchy.gnu.ai.mit.edu)
+
+	* gstdarg.h [__svr4__]: Test only _VA_LIST_ to avoid dup typedef.
+	(This used to be if __SVR4_2__.)
+
+	* config/m68k/m68k.c (floating_exact_log2): Initialize r1.
+
+Sat Apr  3 20:01:05 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.c (hppa_legitimize_address): Use Pmode consistently.
+
+Sat Apr  3 17:35:11 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (emit_reload_insns): Don't update the status of a
+	register from an input reload if it also has an output reload.
+
+	* expr.c (store_expr): Call size_binop instead of doing the
+	same thing with fold and build.
+
+	* combine.c (simplify_comparison, case PLUS): Generalize
+	simplification of (eq (plus A B) C).
+	(simplify_comparison, case MINUS): Add corresponding cases.
+
+Fri Apr  2 19:11:46 1993  Richard Stallman  (rms@geech.gnu.ai.mit.edu)
+
+	* c-parse.in (expr_no_commas, from ASSIGN op):
+	Store ERROR_MARK as the original code.
+
+Fri Apr  2 07:49:03 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload_reg_used_for_inherit): New variable.
+	(clear_reload_reg_in_use): New function.
+	(allocate_reload_reg): Don't consider an inherited register as
+	one that we should share in the first pass.
+	Don't mark a register in use until we are sure it will fit.
+	(choose_reload_regs): Mark spill regs used for inheriting.
+	When we decide we can no longer use a register, show it isn't
+	being used.
+
+	* genopinit (optabs): Fix typo in name for "fix" pattern.
+
+Thu Apr  1 21:24:04 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Cygnus<->FSF merge.
+
+	Thu Apr  1 17:20:05 1993  Mike Stump  (mrs@sphagnum.cygnus.com)
+
+	* cp-decl.c (start_method): Never allow circularities in
+	TREE_CHAINs, as otherwise the compiler will core dump.  This happens
+	when a method is redeclared improperly at leat.
+
+	Thu Apr  1 12:06:03 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-typeck.c (convert_for_assignment): Check if `rhs' is an
+	error_mark_node before looking to see if it's of OFFSET_TYPE.
+
+	* cp-decl.c (grokvardecl): Don't use declarator unless it's non-null
+	when looking for a redefinition.
+
+	* cp-typeck.c (convert_for_initialization): Check if `rhs' is a
+	TREE_LIST before looking for its value.
+
+	* cp-init.c (expand_default_init): Don't clear DECL_REGISTER.
+
+	Wed Mar 31 17:57:50 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-spew.c (yylex, case IDENTIFIER): If identifier_typedecl_value
+	returns a NULL_TREE, then set `lastiddecl' to be `trrr'.
+	* cp-lex.c (identifier_typedecl_value): Instead of internal error 62
+	when we don't have a match for `type', return a NULL_TREE since our
+	callers will know what to do in that case.
+
+	* cp-tree.h (IDENTIFIER_TYPEDECL_VALUE): Deleted.
+	(identifier_typedecl_value): Deleted first prototype, kept second.
+	* cp-tree.c (list_hash_lookup_or_cons): Call the function for
+	identifier_typedecl_value, don't use the macro.
+	* cp-spew.c (yylex): Likewise.
+
+	Wed Mar 31 14:43:50 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-cvt.c (convert_from_reference): Make sure we set
+	TREE_SIDE_EFFECTS if we need to.  Cures duplicate evaluations in
+	things like: foo.mem(g++) = class_c; where foo.mem returns a
+	reference to a class object.
+
+	Wed Mar 31 13:32:38 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-method.c (report_type_mismatch): Arguments are numbered
+	starting from 1 now.
+
+	Tue Mar 30 17:21:18 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (grokfndecl): When re-using an old decl in place of a
+	new decl, make sure to wipe out the DECL_CHAIN slot, as otherwise
+	this creates a circularity, causing an infinite loop in the compiler
+	later.
+
+	Tue Mar 30 14:14:53 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl2.c (check_classfn): Say which class when giving an error
+	about arglist mismatches or missing members.
+
+	* cp-decl.c (grokdeclarator): For class-local typedefs, call pushtag
+	to make sure the identifier is in scope properly.
+
+	Mon Mar 29 18:05:22 1993  Mike Stump  (mrs@cygnus.com)
+
+	lookup_fnfields hacking...  Corrects some problems found with Thu
+	Mar 25 23:09:27 1993 vtable fixes.
+
+	* cp-init.c (build_offset_ref): When looking for the component,
+	have lookup_fnfields do the ambiguity checking, as we know it works
+	much better than anything here.
+	* cp-method.c (hack_identifier): If a name is ambiguous, go ahead
+	and report the error.
+	* cp-search.c (lookup_fnfields): Refine semantics and document
+	semantics with respect to ambiguities and returning error_mark_node.
+	Also, extend to be able to find all virtual functions.
+	* cp-search.c (get_virtuals_named_this): Remove unused second
+	argument.  Arrange for call to lookup_fnfields to find all virtual
+	functions, even if they are hidden.
+	* cp-search.c (get_first_matching_virtual): Removed unused second
+	argument to get_virtuals_named_this.
+
+	Mon Mar 29 16:42:58 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-method.c (dump_init): If the init value is an enum, then use
+	its tag in the error message, instead of its value.
+
+	* cp-typeck.c (build_binary_op_nodefault): Delete spurious warning
+	about comparision between signed/unsigned (matches C front-end).
+
+	Fri Mar 26 16:30:57 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-parse.y (GCC_ASM_KEYWORD): New token.
+	(asm_keyword): New rule.
+	(extdef, maybeasm, simple_stmt): Use the rule instead of ASM_KEYWORD.
+	(maybe_type_qual): Don't warn about use of asm.
+	* gplus.gperf (__asm, __asm__): Token is GCC_ASM_KEYWORD.
+	* cp-spew.c (init_spew): Add GCC_ASM_KEYWORD.
+
+	* cp-typeck.c (build_unary_op): Fix a bug so errors about ++/-- on
+	invalid pointer types actually get emitted.  Don't restrict it to
+	when PEDANTIC is set, and use type_as_string to say what type is
+	being operated on.
+
+	Fri Mar 26 01:21:43 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Don't set TREE_PUBLIC for friends.
+
+	Fri Mar 26 01:09:34 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (pushdecl): Give a pedwarn, not a regular warning, when
+	we shadow a formal parameter.
+
+	* cp-init.c (expand_default_init): Get rid of spurious abort call.
+
+	Thu Mar 25 23:09:27 1993  Mike Stump  (mrs@cygnus.com)
+
+	Major vtable re-vamp.
+
+	* cp-call.c (build_method_call): Reword and improve error messages.
+	* cp-class.c (modify_vtable_entries), cp-class.c (finish_struct),
+	cp-init.c (init_vfields), cp-tree.c (virtual_member, virtual_offset),
+	cp-tree.h: Remove third argument to binfo_value, as it is unneeded.
+	* cp-class.c (finish_base_struct): Unshare base class binfos.
+	* cp-decl.c (finish_function): Fixup second argument to
+	build_virtual_init, so as to make it unambiguous.
+	* cp-init.c (build_virtual_init): Use second argument to get the
+	vtable, not the first, as the second is more specific.
+	* cp-search.c (is_subobject_of_p, hides, lookup_fnfields_here): New
+	routines.
+	* cp-seach.c (lookup_field, lookup_fnfields_1): Re-implement.  The
+	new implementation allows for better ambiguity checking (10.1.1),
+	and implements most hiding (10p4).
+	* cp-tree.c (binfo_value): Re-implement.
+	* cp-typeck.c (build_component_ref): Propagate error_mark_nodes up.
+
+Thu Apr  1 19:38:53 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* reorg.c (redundant_insn_p): Stop searching for a redundant
+	insn if an INSN or JUMP_INSN with delayed effects is 
+	encountered.
+
+Thu Apr  1 12:00:01 1993  Michael Meissner  (meissner@osf.org)
+
+	* real.c (toplevel): Add 'extern' keyword in forward declaration
+	of arrays without bounds to silence warnings from the MIPS
+	compiler.
+
+	* i386/osfrose.h (LONG_DOUBLE_TYPE_SIZE): Undef this to protect
+	against long double going to 80 bits until the OSF libraries are
+	ready to handle it.
+
+	* mips/mips.md (untyped_call): Rewrite code so that the MIPS
+	compiler will not issue statement not reached warning messages.
+
+Thu Apr  1 07:28:11 1993  James Van Artsdalen  (james@bigtex.cactus.org)
+
+	* expr.c (emit_push_insn, expand_assignment): Fix typo in last change.
+
+Thu Apr  1 02:31:16 1993  Per Bothner  (bothner@hal.gnu.ai.mit.edu)
+
+	* emit-rtl.c (init_emit):  Clear sequence_stack.  Otherwise,
+	if we're in a sequence when starting a nested function
+	expand_function_end () will end all the sequences.
+
+Thu Apr  1 02:11:10 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (LIB2FUNCS): Add _fixunsxfdi, _fixxfdi, _floatdixf,
+	_fixunsxfsi.
+
+	* libgcc2.c (XFtype): Do define it, if LONG_DOUBLE_TYPE_SIZE == 96.
+	(__fixunsxfdi): New function, if LONG_DOUBLE_TYPE_SIZE == 96.
+	(__fixxfdi, __floatdixf, __fixunsxfsi): Likewise.
+
+Wed Mar 31 20:05:19 1993  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (CLASS_UNITS): Fix typo in previous change, patch from
+	ian@cygnus.com.
+
+Wed Mar 31 17:18:27 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* toplev.c (compile_file): Call incomplete_decl_finalize_hook
+	only if nonzero.
+
+Wed Mar 31 00:59:50 1993  Gerald Baumgarnter  (gb@cs.purdue.edu)
+
+	* toplev.c (compile_file): Only call `*incomplete_decl_finalize_hook'
+	if the `decl' in question is a VAR_DECL.
+
+Wed Mar 31 15:27:41 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (CONSTANT_ADDRESS_P): Fix typo in last change.
+
+Wed Mar 31 15:11:12 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* clipper/clipper.h, convex/convex.h, elxsi/elxsi.h, fx80/fx80.h,
+	gmicro/gmicro.h, h8300/h8300.h, i386/i386.h, i386/osfrose.h,
+	i860/i860.h, i960/i960.h, m68k/m68k.h, m88k/m88k.h, mips/mips.h,
+	pa/pa.h, pyr/pyr.h, romp/romp.h, rs6000/rs6000.h, sparc/sparc.h,
+	spur/spur.h, tahoe/tahoe.h, vax/vax.h, we32k/we32k.h
+        (CONSTANT_ADDRESS_P): Define with body of `CONSTANT_P', but leave
+	out CONST_DOUBLE.
+
+Wed Mar 31 11:28:21 1993  James Van Artsdalen  (james@bigtex.cactus.org)
+
+	* reg-stack.c (emit_swap_insn): Don't link cc0 insns: emit swap
+	after cc0 user.
+
+Wed Mar 31 07:00:45 1993  Richard Kenner  (kenner@apple-gunkies.gnu.ai.mit.edu)
+
+	* expr.c (expand_expr, case ADDR_EXPR): Allow taking the
+	address of any object; used in call-by-reference situations.
+
+	* tree.c (next_type_uid): Move definition to reasonable place.
+	(copy_node): Make new DECL_UID and TYPE_UID as comments say.
+
+	* expr.c (emit_block_move, emit_push_insn, expand_assignment):
+	Size passed to memcpy/bcopy is SIZETYPE, not Pmode.
+
+	* cse.c (simplify_binary_operation, case MULT): When testing for
+	floating-point equality, make sure we do so inside a region
+	protected from traps.
+	* i386.c (standard_80387_constant_p): Likewise.
+
+	* alpha.h (INITIAL_ELIMINATION_OFFSET): Subtract
+	current_function_pretend_args_size from OFFSET for AP.
+
+	* alpha.h (LINK_SPEC): New definition.
+
+	* cse.c (insert_regs): If a REG already is in a class but not
+	in the mode we want, don't do anything to the classes.
+
+Wed Mar 31 02:02:29 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gvarargs.h [__svr4__]: Test only _VA_LIST_ to avoid dup typedef.
+	(This used to be if __SVR4_2__.)
+
+	* local-alloc.c (optimize_reg_copy_1): Don't increment n_calls
+	specially if P is a call_insn.
+
+	* convert.c (convert_to_real): Pass mode arg to REAL_VALUE_ATOF.
+
+Tue Mar 30 17:07:33 1993  Stephen L. Moshier  (moshier@world.std.com)
+ 
+	* real.c: This is a new C file to implement floating point
+	REAL_ARITHMETIC, target machine bit patterns for cross-compilation,
+	and REAL_VALUE_ATOF for decimal input constants in long double
+	XFmode as well as lower precisions.
+ 
+	* real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_TARGET_DOUBLE)
+	(REAL_VALUE_TO_TARGET_SINGLE): New macros.
+
+	* real.h: If REAL_ARITHMETIC is defined or if LONG_DOUBLE_TYPE_SIZE
+	is 96, then define REAL_VALUE_ macros to invoke functions in real.c.
+
+	* real.h (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT):
+	New macros truncate toward zero to integer value but
+	return REAL_VALUE_TYPE.
+
+	* real.h (REAL_VALUE_TO_DECIMAL): New macro defaults to
+	fprintf if no REAL_ARITHMETIC, otherwise uses real.c for
+	binary to decimal conversion.  Use in ASM_OUTPUT_ macros.
+ 
+	* Makefile.in (real.o): New target.
+	(OBJS): Add real.o.
+ 
+	* c-lex.c (yylex): Convert real decimal constants directly
+	to the precision specified by the letter at the end of the number.
+	Pass mode arg to REAL_VALUE_ATOF to specify precision.
+	Move the "out of range of double" error check.
+
+	* cp-lex.c (yylex): Redo converting float values to desired type.
+
+	* final.c (split_double) :  Use REAL_VALUE macros to extract ints
+	from float mode CONST_DOUBLEs.
+ 
+	* emit-rtl.c (operand_subword): Use REAL_VALUE_TO_TARGET_SINGLE
+	to convert to target float.
+	If REAL_ARITHMETIC is defined, let real.c handle incompatible host
+	and target floating point bit patterns.
+	(init_emit_once): Add machine_mode argument to REAL_VALUE_ATOF.
+ 
+	* fold-const.c (real_value_truncate): If REAL_ARITHMETIC, replace
+	by routine of same name in real.c.
+	target_isinf, target_isnan, target_negative): Likewise.
+	(const_binop): Delete `register' from decls using REAL_VALUE_TYPE.
+	(fold_convert): Use REAL_VALUE_TO_INT.
+ 
+	* rtl.c: Include real.h to get the definition of REAL_VALUE_TYPE.
+ 
+	* varasm.c (assemble_real): Case TFmode and XFmode invoke
+	ASM_OUTPUT_LONG_DOUBLE.
+ 
+	* optabs.c (expand_fix): Initialized REAL_VALUE_TYPE
+	confuses some compilers.
+
+	* cse.c (simplify_binary_operation): real_value_truncate
+	returns REAL_VALUE_TYPE.
+	Convert rtx_code into tree_code for argument to REAL_ARITHMETIC.
+
+	* cse.c (simplify_unary_operation): Use new ..._RNDZINT macros
+	instead of casting value of REAL_VALUE_FIX_TRUNCATE
+	and REAL_VALUE_UNSIGNED_FIX_TRUNCATE.
+
+	* explow.c (rtx_to_tree_code): New function.
+
+	* rtl.h (rtx_to_tree_code): Declare.
+
+	* m68k/m68k.c (standard_68881_constant_p): Initialize REAL_VALUE_TYPE
+	binary constants from decimal values.  Use REAL_VALUE_... macros.
+	(standard_sun_fpa_constant_p): Likewise.
+	(print_operand, floating_exact_log2): Use REAL_VALUE_... macros.
+	(init_68881_table): New function.
+
+	* m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Set to 96, for XFmode support.
+	(ASM_OUTPUT_LONG_DOUBLE_OPERAND) New macro.
+	(ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE): Use REAL_VALUE_... macros.
+	(ASM_OUTPUT_DOUBLE_OPERAND): Likewise.
+	(ASM_OUTPUT_FLOAT_OPERAND): Likewise.  Also, new argument CODE.
+	(ASM_OUTPUT_FLOAT): Delete special def for CROSS_COMPILE.
+	(ASM_OUTPUT_LONG_DOUBLE): New macro.
+	(PRINT_OPERAND_EXTRACT_FLOAT): Definitions deleted.
+	(PRINT_OPERAND_PRINT_FLOAT): Definitions deleted.
+
+	* m68k/m68k.md (movxf, tstxf, extendsfxf2, extenddfxf2): New patterns.
+	(truncxfdf2, truncxfsf2, floatsixf2, floathixf2, floatqixf2): Likewise.
+	(ftruncxf2, fixxfqi2, fixxfhi2, fixxfsi2): Likewise.
+	(addxf3, subxf3, mulxf3, divxf3, negxf2, absxf2, sqrtxf2): Likewise.
+
+	* m68k/sun3.h (FUNCTION_VALUE): Use FUNCTION_VALUEX.
+	(FUNCTION_VALUEX): New macro.
+	* m68k/mot3300.h, m68k/news.h (LIBCALL_VALUE): Handle XFmode.
+ 
+	* m68k/mot3300.h, m68k/tower-as.h:
+	(ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE): Use REAL_VALUE... macros.
+	(PRINT_OPERAND): Likewise.
+	(ASM_OUTPUT_LONG_DOUBLE): New definition.
+	* m68k/news.h (PRINT_OPERAND, ASM_OUTPUT_DOUBLE):
+	Use REAL_VALUE... macros.
+	* m68k/next.h, m68k/sun2o4.h, m68k/sun3.h, m68k/altos3068.h:
+	(ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE)
+	(ASM_OUTPUT_FLOAT_OPERAND, ASM_OUTPUT_DOUBLE_OPERAND):
+	Use REAL_VALUE... macros.
+	* m68k/sgs.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE)
+	(ASM_OUTPUT_DOUBLE_OPERAND): Use REAL_VALUE... macros.
+	(ASM_OUTPUT_LONG_DOUBLE): New definition.
+	(ASM_OUTPUT_FLOAT_OPERAND): New macro.
+	(PRINT_OPERAND_PRINT_FLOAT): Deleted.
+
+	* m68k/3b1.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT):
+	Use new REAL_VALUE... macros.
+	(ASM_OUTPUT_LONG_DOUBLE): New definition.
+
+	* m68k/hp320.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT)
+	(PRINT_OPERAND_FLOAT, PRINT_OPERAND): Use new REAL_VALUE... macros.
+	(ASM_OUTPUT_LONG_DOUBLE): New macro.
+
+	* m68k/crds.h (ASM_OUTPUT_DOUBLE, PRINT_OPERAND):
+	Use new REAL_VALUE... macros.
+
+	* vax.h (PRINT_OPERAND, ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE):
+	Use new REAL_VALUE... macros.
+	(CHECK_FLOAT_VALUE): Call check_float_value.
+	* vax.c (check_float_value): New function.
+
+	* vaxv.h (ASM_OUTPUT_DOUBLE): Use new REAL_VALUE... macros. 
+
+	* alpha.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE):
+	Use new REAL_VALUE... macros.
+	(REAL_ARITHMETIC): Defined.
+
+Tue Mar 30 17:07:33 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	For Tege:    
+	* pa.md (sminsi3, smaxsi3): Fix bugs in last addition.
+
+Tue Mar 30 16:52:15 1993  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump Meissner version to 37.
+	(CLASS_MAX_NREGS): Make floats in gp registers only use one
+	register, and only allocate one float register instead of a
+	register pair if -mfloat64 is used.
+
+Tue Mar 30 05:40:26 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (record_dead_and_set_regs): Record death of all
+	hard regs when a multi-reg object in hard regs dies.
+	(move_deaths): Handle the case when we only have to move
+	part of a multi-register death note.
+	* rtlanal.c (find_regno_note): Find note that overlaps REGNO,
+	not just one that mentions REGNO explicitly.
+
+	* reload.c (form_sum): Use mode of inputs when making new PLUS.
+
+	* genopinit.c: New file.
+	* expr.h (extendtab, fixtab, fixtrunctab, floattab, movstr_optab):
+	New definitions.
+	* expr.c (movstr_optab): No longer static.
+	(init_expr_once): Don't initialize movstr_optab.
+	* optabs.c (extendtab, fixtab, fixtrunctab, floattab): Not static.
+	(init_extends, init_fixtab, init_floattab): Deleted.
+	(init_optabs): Move active stuff from above functions in.
+	Delete filling of optabs.
+	Call init_all_optabs.
+	* reload1.c (init_reload): Don't initialize optabs here.
+	* Makefile.in (OBJS): Add insn-opinit.o.
+	(insn-opinit.o, insn-opinit.c, stamp-opinit): New rules.
+	(genopinit, genopinit.o): Likewise.
+
+	* reload1.c (emit_reload_insns): Properly track what was reloaded
+	into what register when what we reloaded was a hard register group.
+
+Mon Mar 29 17:35:04 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.md (movsi+2): Add f/f constraint case.
+
+	* sched.c (schedule_block): Reset n_ready if schedule_select
+	removes all insns from ready list.
+
+	* i960.h (FUNCTION_PROFILER): Call output_function_profiler.
+	(CALL_USED_REGISTERS): Add more comments about register usage.
+	* i960.c (i960_function_prologue): When profiling, don't use those
+	registers clobbered around an mcount call.
+	(output_function_profiler): New function.
+
+Mon Mar 29 13:57:28 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-iterate.c (collect_iterators): Cast tree code to int for indexing.
+
+Mon Mar 29 06:28:57 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (num_sign_bit_copies, case PLUS, case MULT):
+	Replace occurrences of HOST_BITS_PER_INT with HOST_BITS_PER_WIDE_INT.
+
+	* reload.c (secondary_memlocs_elim): Now one per mode per operand.
+	(get_secondary_mem, combine_reloads): Reflect changed var above.
+	(clear_secondary_mem): Use bzero.
+
+	* genrecog.c: Add prototypes for all functions defined in file.
+	Change a few occurrences of RTX_CODE to enum rtx_code for consistency.
+	(merge_trees): Add casts of args to mybcopy.
+	(write_tree_1): Now static.
+	(fatal): Always called with one arg, so define that way.
+
+	* reload.h: Add missing declarations for external functions
+	in reload.c, reload1.c, and caller-save.c.
+	(reload_strict_low, reload_needed_for_multiple, reload_needed_for):
+	Deleted.
+	(reload_opnum): New array.
+	(enum reload_type): Renamed from reload_when_needed and expanded
+	to include more reload types.
+	(reload_n_operands): New variable.
+	* reload.c: Add prototypes for all static functions and clean up
+	some definitions.
+	(struct decompose): Move to before function declarations.
+	(secondary_memlocs_elim): One per operand, not per mode.
+	(get_secondary_mem): Accept and use reload description (opnum
+	and type).
+	(push_reload): Accept and use new reload description instead of
+	old NEEDED_FOR.
+	Define two new macros: MERGEABLE_RELOADS and MERGE_TO_OTHER.
+	Use these macros to see if reloads can be merged and how to do it.
+	(transfer_replacements): New function.
+	(combine_reloads): Refine when we can combine reloads.
+	(find_reloads): Use new method of tracking what a reload is for.
+	When we make a CLOBBER insn, do so with DImode.
+	Merge cases of making optional reloads, avoid making output-only
+	optional reloads, refine when we may not make in-out optional reloads,
+	and make an optional reload for a pair of matching operands.
+	(find_reloads_toplev, find_reloads_address{,_1, part}): Accept and
+	use reload description.
+	(forget_volatility): Delete long-obsolete function.
+	* reload1.c: Add prototypes for static functions.
+	(REGISTER_MOVE_COST, MEMORY_MOVE_COST): Include default definitions.
+	(reload): Count number of registers needed for insn using new
+	reload type information.
+	If mode of insn is DImode, don't change it.
+	Refine the way we handle conflict with the return value register.
+	Don't try to account for needs already covered by previously
+	spilled registers; instead, put them back in the front of
+	potential_reload_regs and let them be allocated again.
+	(order_regs_for_reload): Don't restrict regs explicitly used if
+	we have SMALL_REGISTER_CLASSES defined.
+	(reload_as_needed): Don't need to deactivate optional reloads
+	ever; if they inherit, it must have been safe.
+	Call merge_assigned_reloads if SMALL_REGISTER_CLASSES.
+	(reload_reg_used_*): Refine our tracking of reload reg usage
+	by defining more of these HARD_REG_SETs.
+	(mark_reload_reg_in_use, reload_reg_free_p): Rework to use new
+	method of describing where a reload register is used.
+	(reload_reg_free_before_p, reload_reg_reaches_end_p): Likewise.
+	(allocate_reload_reg): Pass new reload descriptions.
+	(choose_reload_regs): Likewise.
+	Save and restore the new HARD_REG_SETs.
+	Remove now-redundant code to prevent conflicts.
+	(merge_assigned_reloads): New function.
+	(emit_reload_insns): Output each reload type into its own 
+	sequence, then output the sequences in the proper order.
+	Put our output reloads after a CLOBBER made by find_reloads.
+	Pass ALL_REGS to find_equiv_regs; nothing special about
+	GENERAL_REGS.
+	Don't use an old equivalence if doing so would be more expensive.
+	Clean up tracking of values still in reload regs using reload
+	description info to see if the reload reaches the end of the insn.
+	(gen_input_reload): Pass reload description and emit insns to end of
+	current sequence.
+	(inc_for_reload): Return void; no longer need INSN as operand.
+	Emit insns to end of current sequence.
+
+Mon Mar 29 02:59:27 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_expr, case MAX_EXPR/MIN_EXPR): If mode is
+	multiword int, use do_jump_by_parts_greater_rtx to compare efficiently.
+	(do_jump_by_parts_greater_rtx): New function.
+
+Sun Mar 28 20:26:11 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* calls.c (expand_call): Always allocate TARGET in mode of
+	result expression; VALREG might have been promoted.
+	Ensure TARGET is a REG when checking for promotion and verify
+	that we get back the mode we expect.
+
+Sun Mar 28 18:49:12 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (store_parm_decls): Use pedwarn for "promoted arg doesn't
+	match prototype" warning.
+
+	* expr.c (expand_expr): For COMPONENT_REF, don't force_reg op0
+	if it is BLKmode.
+
+Sun Mar 28 16:25:59 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.md (smin, umin, smax, umax): New patterns.
+
+	* Support nullification of conditional branch delay slots on
+	the PA.
+
+	* pa.md (cbranch define_delay): Enable nullification of
+	conditional branch delay slots (based upon branch direction).
+	(conditional branch patterns): Call output_cbranch to get the
+	correct output template.  Long conditional branches with an
+	annulled delay slot have a length of 3.
+	(branch on bit patterns): Call output_bb to get the correct
+	output template.  Long branches with an annulled delay slot have
+	a length of 3.
+	(decrement and branch pattern): Handle nullification of long
+	backward branches.  Such branches have lengths of either 3 or 6.
+
+	* pa.c (output_cbranch): New function.  Given the operands of the
+	branch, possible nullification, length of the branch, possible branch 
+	negation, and the branch insn itself, return the output template for 
+	the desired conditional branch.
+	(output_bb): Likewise, but for branch on bit.
+
+	* pa.h (toplevel): Declare output_bb.
+
+	* genattr.c (main): Output ATTR_FLAG masks.
+
+	* rtl.def (ATTR_FLAG): New RTL code.
+
+	* genattrtab.c (write_eligible_delay): Add new variable
+	"flags" to the generated functions.  All callers changed.
+	(check_attr_test): Handle ATTR_FLAG.
+	(clear_struct_flag): Likewise.
+	(count_sub_rtxs): Likewise.
+	(write_test_expr): Likewise.
+	
+	* reorg.c (ANNUL_IFTRUE_SLOTS, ANNUL_IFFALSE_SLOTS): Add new
+	flags variable to these dummy macros.
+	(get_jump_flags): New function.
+	(optimize_skip): Get jump flags information from the delay insn.
+	(steal_delay_list_from_target): Get jump flags information from the
+	delay insn and the label of the trial jump.
+	(steal_delay_list_from_fallthrough): Get jump flags information
+	from the delay insn.
+	(try_merge_delay_insns): Likewise.
+	(fill_simple_delay_slots): Likewise.
+	(fill_slots_from_thread): Likewise.
+	(make_return_insn): Likewise.
+
+Sun Mar 28 00:36:04 1993  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* fixincludes: Move comments about big sed command outside the
+	command itself.
+
+	* toplev.c (lang_options): Add -W{no-,}missing-braces.
+
+	* c-typeck.c (process_init_constructor, digest_init):
+	Check and set new static var partial_bracket_mentioned.
+
+	* c-lex.c: Updated for recent change in c-parse.gperf.
+
+Sat Mar 27 13:43:27 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* Trampoline support from Jukka Virtanen.
+	* pa.md (cacheflush): New pattern.  
+	* pa.h (TRAMPOLINE_TEMPLATE): Define for the PA.
+	(TRAMPOLINE_SIZE): Define for the PA.
+	(INITIALIZE_TRAMPOLINE): Define for the PA.
+
+Sat Mar 27 08:22:25 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (expand_function_start): When evaluating sizes of
+	variable types, do so just for side-effects (the SAVE_EXPRs).
+	* stor-layout.c (variable_size): Likewise.
+
+	* va-alpha.h: Major rework to agree with new calling sequence.
+	Should have been installed with Feb 10th changes.
+
+	* rs6000.md (mov[qhs]i): Allow moving a special reg to itself.
+
+Sat Mar 27 03:13:46 1993  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* config/sparc/sparc.c (S_MODES, D_MODES, T_MODES):
+	Accept only those complex modes that are small enough.
+	Rewrite to make the expressions simpler.
+
+Fri Mar 26 17:07:31 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-tree.h, output.h: Use STDIO_PROTO for prototypes with FILE.
+
+	* input.h: Add standard copyright notice.
+
+	* caller-save.c: Add prototypes for static functions.
+	(choose_hard_reg_mode): Add missing parameters declaration.
+
+	* a29k.md (multiply/multiplu/mulm/mulmu insns): These clobber Q.
+
+Fri Mar 26 06:23:31 1993  Tom Wood  (wood@next.com)
+
+	* i960.h (FUNCTION_VALUE_REGNO_P): Change to agree with
+	FUNCTION_VALUE.
+	* pyr.h, spur.h (INCOMING_REGNO, OUTGOING_REGNO): Define.
+	* arm.md (untyped_call, blockage): New patterns.
+
+Fri Mar 26 02:09:02 1993  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* configure (sparc-tti-*, m68k-tti-*): Don't set use_collect2.
+
+Fri Mar 26 01:05:43 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Cygnus<->FSF merge.
+
+	Thu Mar 25 18:19:19 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-cvt.c (convert_to_reference), cp-init.c (expand_aggr_init_1):
+	Don't try to do more than one level of user defined conversions,
+	avoids an infinite loop.  Uses LOOKUP_NO_CONVERSION.
+
+	Wed Mar 24 16:28:17 1993  Per Bothner  (bothner@rtl.cygnus.com)
+
+	* cp-call.c (build_method_call):  Fix handling of foo->~Class().
+
+	Sat Mar 20 12:29:37 1993  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* cp-pt.c (tsubst): Don't get faked out by the fact that ctors and
+	dtors have the same method name and can have the same signature.
+
+	Fri Mar 19 15:58:34 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-pt.c (tsubst): Call build_decl_overload for the new
+        instantiation.
+
+	Thu Mar 18 19:09:39 1993  Ken Raeburn  (raeburn@cygnus.com)
+
+	* cp-decl2.c (flag_implement_inlines): New variable.
+	(lang_f_options): Recognize "implement-inlines".
+	* toplev.c (lang_options): Recognize -f[no-]implement-inlines.
+	* cp-decl.c (flag_implement_inlines): Declare it.
+	(start_function): If it's clear, functions declared inline are
+	external under `#pragma implementation'.
+
+	Tue Mar  2 16:24:39 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-typeck.c (c_expand_return): If operand 0 is a TREE_LIST, then
+	make sure to use its value.
+
+	Mon Mar  1 14:22:12 1993  Bill Cox  (bill@rtl.cygnus.com)
+
+	* cp-decl.c (push_level_decl): Add cast to correct push_stack_level
+          parameter.
+
+	Mon Mar  1 10:19:38 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-lex.c (do_identifier): Improve wording on error message.
+
+	Wed Feb 24 19:54:46 1993  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-typeck.c (commonparms, convert_for_assignment): Number
+	arguments starting at 1 in error messages to match the C front-end.
+
+	Wed Feb 24 14:55:54 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-search.c (saw_first_vbase): Deleted.
+	cp-search.c (dfs_walk): When walking the class lattice, use the last
+	virtual base class seen, not the first.  Fixes major problem
+	introduced on Tue Oct 6 17:54:09 1992 that prevents multi-level
+	virtual base classes from working.
+
+	Mon Feb 22 18:07:23 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-search.c (get_base_distance_recursive): When searching, if the
+	object refers to the same object as before, but just found along a
+	different path, the object is not ambiguous.  Fixes problem
+	introduced on Feb 16 22:47:29 1993.
+
+	Wed Feb 17 15:12:12 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl2.c (grok_function_init): Pure virtual descructor must be
+	defined, and calls to them generated.  Now conforms with ANSI C++
+	working paper dated September 17, 1992 12.4.5.
+
+	Tue Feb 16 22:47:29 1993  Mike Stump  (mrs@cygnus.com)
+
+	Implement a new searching scheme for base classes and use it to
+	ensure only related virtual function slots are filled in by
+	modify_vtable_entries.  Affects get_base_distance and get_binfo
+	answers.  Cures InterViews doc problem.  Solves the problem of
+	calling the wrong virtual function in the presence of multiple
+	inheritance.
+
+	* cp-search.c (get_binfo_recursive, get_base_distance_recursive):
+	New routines that use a depth first search strategy instead of
+	breadth first.
+	* cp-search.c (get_binfo): Re-implement, and use
+	get_binfo_recursive.
+	* cp-search.c (get_base_distance): Re-implement, and use
+	get_base_distance_recursive.
+
+	* cp-class.c (related_vslot): New routine to ensure that only
+	vfields that are related to the given base_fndecl are modified.
+	Relies upon new searching scheme for base classes.
+	* cp-class.c (modify_vtable_entries): Use related_vslot to ensure
+	that only slots related to the base virtual function are filled in.
+
+	* cp-class.c (build_vtable, prepare_fresh_vtable, finish_struct),
+	cp-tree.h: Remove DECL_VPARENT.
+
+	* cp-class.c (get_vtable_entry): Use unsigned when dealing with
+	DECL_VINDEXes.
+	* cp-class.c (finish_struct): Use get_vtable_entry instead of open
+	coding that routine here.
+
+	Fri Feb 12 10:24:52 1993  Brendan Kehoe  (brendan@cygnus.com)
+
+	* cp-decl.c (sigsegv): Check if SIGIOT is defined first.  Also check
+	for SIGILL and SIGABRT.
+	(init_decl_processing): Likewise; set up handlers for SIGILL and
+	SIGABRT.
+
+	Thu Feb 11 10:30:59 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-type2.c (readonly_error): New arg `SOFT', to pedwarn instead of
+	error.
+	* cp-typeck.c, cp-cvt.c, cp-tree.h: Modify callers appropriately.
+
+	Tue Feb  9 10:02:58 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-lex.c (real_yylex): When parsing an exponent, check for 'e' and
+	'E' explicitly.
+
+	* cp-typeck.c (build_unary_op): Disallow taking the address of
+	the `main' fn.
+	* cp-decl.c (grokdeclarator): Check for the length of ORIGINAL_NAME
+	being 4, and that it starts with 'm', before calling strcmp.
+
+	* cp-type2.c (readonly_warning_or_error): Rename to readonly_error,
+	make it now ARM compliant by emitting a hard error, instead of a
+	pedwarn.
+	* cp-cvt.c, cp-typeck.c: Change all callers.
+	* cp-tree.h (readonly_error): Rename prototype.
+
+	Sun Jan 31 09:58:16 1993  Niklas Hallqvist  (niklas at della.appli.se)
+ 
+	* cp-typeck.c (build_modify_expr): Accept taking the address of a
+	temporary generated by an explicit constructor call, but generate
+	a warning.
+
+	Mon Feb  8 10:45:56 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Demangle DECLARATOR if it's an operator.
+
+Thu Mar 25 11:38:02 1993  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* cccp.c (do_include):
+	For "..." case, leave fend pointing at terminating 0.
+	Distinct error msgs for empty file name and for bad syntax.
+
+	* Makefile.in (USER_H): Add va-clipper.h.
+
+Thu Mar 25 07:01:14 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* calls.c (store_one_arg): Fix typo in previous change.
+
+Thu Mar 25 03:37:51 1993  Mike Stump  (mrs@hal.gnu.ai.mit.edu)
+
+	* c-lang.c (lang_identify), cp-lex.c (lang_identify), objc-act.c
+	(lang_identify), tree.h (lang_identify): New routine.
+	* defaults.h (ASM_IDENTIFY_LANGUAGE) New macro used to identify
+	which front-end produced the object file.  Ports that do not
+	define ASM_IDENTIFY_GCC will automatically get a reasonable
+	definition for ASM_IDENTIFY_LANGUAGE, ports that do define
+	ASM_IDENTIFY_GCC for any reason may want to define
+	ASM_IDENTIFY_LANGUAGE as done here.
+	* toplev.c (output_lang_identify): New routine to identify which
+	front-end produced the object file.
+	* toplev.c (compile_file): Use ASM_IDENTIFY_LANGUAGE if it exists.
+
+Wed Mar 24 17:53:11 1993  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* c-parse.gperf: Change __cimag__ to __imag__, __creal__ to __real__,
+	to void rejection by gperf.
+
+Tue Mar 23 18:43:14 1993  Holger Teutsch  (holger@hotbso.rhein-main.de)
+
+	* clipper.md: Assign "fp" attribute to fp insns. Add DImode
+	insns for widening mul, shift and rotate. Remove 'decrement, test
+	and branch' combination patterns. They are not reloadable.
+
+	* clipper.h (HARD_REGNO_MODE_OK): DImode regs must start on even
+	registers.
+
+	* gstdarg.h, gvarargs.h: Use va-clipper.h.
+
+	* config.sub: Default to clipper-intergraph if system is clix.
+	* configure (clipper-intergraph-clix*): New configuration.
+	* clipper.h, clipper.c, clipper.md: New files.
+	* x-clix, t-clix, xm-clix.h, clix.h: New files.
+
+Wed Mar 24 1993 18:54:51  Paul Eggert  (eggert@twinsun.com)
+
+	* fixincludes (memory.h):
+	Use proper ANSI syntax in `#endif __memory_h__'.
+
+Wed Mar 24 12:52:40 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.md (sh[123]add): Collapse into a single pattern.
+	(sh[123]add for reload): Likewise.
+	* pa.c (shadd_operand): New function.
+	(print_operand): Handle '%O' for shadd patterns.
+
+Wed Mar 24 08:03:31 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.h (EXTRA_SECTION_FUNCTIONS, ASM_DECLARE_FUNCTION_NAME):
+	Don't output tab before .csect pseudo-op.
+
+Wed Mar 24 02:01:14 1993  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* config/pyr/pyr.h (NO_DOT_IN_LABEL): Defined.
+
+	* tree.c (stabilize_reference_1): For division and remainder,
+	make a save_expr.
+
+Tue Mar 23 14:51:07 1993  Jim Wilson  (wilson@geech.gnu.ai.mit.edu)
+
+	* alpha.h, i386/sysv4.h, mips.h, rs6000.h (RETURN_IN_MEMORY):
+	Delete struct and union references.
+	* sparc.h (RETURN_IN_MEMORY): Update comment.
+	* h8300.h, 386bsd.h, linux.h, i386/mach.h, i386/osfrose.h,
+	i860/mach.h, i960.h, hp2bsd.h, hp3bsd.h, hp3bsd44.h, next.h,
+	sun3mach.h, m88k.h, ns32k/pc532-mach.h, pa-utahmach.h,	pa1-utahmach.h,
+	rs6000/mach.h (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
+	* toplev.c (DEFAULT_PCC_STRUCT_RETURN): Add default definition of 1.
+	(flag_pcc_struct_return): Default to DEFAULT_PCC_STRUCT_RETURN.
+	(f_options): Add -freg-struct-return flag.
+
+Tue Mar 23 07:43:18 1993  Tom Wood  (wood@next.com)
+
+	* emit-rtl.c (push_topmost_sequence, pop_topmost_sequence): New
+	functions.
+	* expr.c (expand_builtin, BUILT_IN_SAVEREGS): Use these to put the
+	code at the start of the function, even when inside a sequence.
+
+	* tree.h (enum built_in_function): Add BUILT_IN_APPLY_ARGS,
+	BUILT_IN_APPLY, and BUILT_IN_RETURN.
+	* c-decl.c (init_decl_processing): Declare __builtin_apply_args,
+	__builtin_apply, and __builtin_return.
+	* function.h (struct function): Add apply_args_value field.
+	* expr.c (apply_args_value): New variable.
+	(init_expr, save_expr_status, restore_expr_status): Initialize,
+	save, and restore apply_args_value.
+	(expand_builtin): Implement new built-in functions.
+	(apply_args_mode, apply_result_mode): New variables.
+	(apply_args_size, apply_result_size, result_vector,
+	expand_builtin_apply_args, expand_builtin_apply,
+	expand_builtin_return): New functions.
+	(INCOMING_REGNO, OUTGOING_REGNO): Supply default definitions.
+	* sparc.h (INCOMING_REGNO, OUTGOING_REGNO): Define.
+	* sparc.md (untyped_call, untyped_return): New patterns.
+	* i386.h (APPLY_RESULT_SIZE): Define.
+	* i386.md (untyped_call, untyped_return): New patterns.
+	* m68k/isi.h, m68k/m68k.h, m68k/m68kv4.h, m68k/mot3300.h
+	(NEEDS_UNTYPED_CALL): Define.
+	* m68k.md, fx80.md, gmicro.md, i860,md, ns32k.md
+	(untyped_call, blockage): New patterns. 
+	* mips.md (untyped_call): New pattern.
+
+Tue Mar 23 06:38:36 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* calls.c (store_one_arg): Use int_size_in_bytes and
+	expr_size when appropriate instead of size_in_bytes.
+
+	* regclass.c (record_reg_classes): When an alternative requires
+	a match, but we do it with a copy into a register, that alternative
+	wins.
+
+	* cse.c (CHEAP_REG): Add missing parens.
+
+	* expr.h: Don't declare fns that use "tree" if tree.h not included.
+	(emit_call_1): Remove decl.
+	(promoted_input_arg): Add prototype.
+	(fix_lexical_addr): Remove duplicate decl.
+	(copy_function_value, expand_stmt_expr): Delete; no such functions.
+	* calls.c: Include gvarargs.h.
+	Add prototypes to forward declarations and declare static functions.
+	(emit_call_1): Now static.
+	(emit_library_call, emit_library_call_value): Move to here.
+	* expr.c: Don't include gvarargs.h.
+	(emit_library_call, emit_library_call_value): Delete from here.
+	* Makefile.in (expr.o): Doesn't include gvarargs.h.
+	(calls.o): Now includes gvarargs.h.
+
+	* dbxout.c (dbxout_type): Use int_size_in_bytes instead of
+	size_in_bytes for consistency with other code.
+
+	* calls.c (expand_call): Use expr_size instead of doing it ourself.
+
+Mon Mar 22 19:15:17 1993  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* function.c (fixup_var_refs_insns): Don't delete an insn copying
+	var to itself, if it's the end of a libcall group.
+
+Mon Mar 22 15:28:48 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* fixincludes: Use `set x $y; shift', not `set - $y', to avoid
+	altering sh options.  Fix `#endif foo' constructions.  Clean up
+	all DONE files.
+
+Mon Mar 22 17:02:58 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* expr.h (MUST_PASS_IN_STACK): Make machine parameter.
+
+Mon Mar 22 01:38:41 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reload1.c (eliminate_regs): Eliminate regs within a CLOBBER.
+
+	* emit-rtl.c (init_emit): Use INIT_EXPANDERS.
+
+	* i386.c (output_fix_trunc): Use MEMs in insn as stack temps.
+	No need to allocate & deallocate stack space on the fly.
+	
+	(clear_386_stack_locals): New function.
+	(assign_386_stack_local): New function.
+
+	* i386.h (PREFERRED_RELOAD_CLASS): Only narrow MODE_FLOAT reloads
+	from ALL_REGS to GENERAL_REGS.
+	(PREFERRED_OUTPUT_RELOAD_CLASS): Deleted.
+
+	(INIT_EXPANDERS): New macro.
+
+	* i386.md (movsf,movdf): Use an input reload for MEM-MEM moves.
+	(extendsfdf2): Don't allow GENERAL_REGS in any operand.
+
+	(truncdfsf2): Allocate a stack temp in expander.
+	Use that in the output function.
+	(fix_truncMN2,fixuns_truncMN2): Likewise.
+	Allocate scratch reg from Q_REGS.
+
+Sun Mar 21 17:24:09 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* toplev.c (compile_file): If warning about a function
+	declared static but not defined, make the function extern.
+
+	* cccp.c (collect_expansion): Don't make # special in argless macro.
+
+	* toplev.c (incomplete_decl_finalize_hook): New variable.
+	(compile_file): Call incomplete_decl_finalize_hook.
+	* c-decl.c (init_decl_processing): Set that var.
+	(finish_incomplete_decl): New function.
+	(complete_array_type): Use 0 as default maxindex.
+	* tree.h (incomplete_decl_finalize_hook): Declared.
+
+Sun Mar 21 16:30:22 1993  Michael Meissner  (meissner@osf.org)
+
+	* t-osfrose (CONFIG2_H): Change include file name to osfrose.h.
+
+	* halfpic.h (prototype support): Fix recent changes for
+	prototypes, so it compiles again.
+
+	* configure (ns32k-encore-osf): Delete, last ns32k OSF/rose
+	machine turned off.
+
+	* encrose.h, x-encrose, t-encrose: Delete, no longer used.
+
+Sun Mar 21 16:20:04 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* integrate.c (copy_rtx_and_substitute, case USE):
+	Don't remove a subreg if ORIG had one.
+
+Sun Mar 21 01:50:07 1993  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* c-common.c: #include "obstack.h".
+	* config/vax/xm-vms.h [VAXC]: Work around stdio.h's FILE_TYPE.
+	* vmsconfig.com: When making tm.h from config/vax/vms.h, change
+	any #include "vax/*.h" directives to use native VMS file syntax.
+
+Sat Mar 20 22:46:31 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (INSN_SETS_ARE_DELAYED): Define for the PA.  Sets and
+	clobbers that occur in millicode insns are delayed effects.
+	(INSN_REFERENCES_ARE_DELAYED): Likewise, but for operand references 
+	occuring in millicode insns.
+	* reorg.c (mark_referenced_resources): Parameter
+	include_called_routine changed to include_delayed_effects.  All
+	references changed. 
+	(mark_set_resources): Likewise.
+	(insn_references_resource_p): Likewise.
+	(insn_sets_resource_p): Likewise.
+	(mark_referenced_resources, case INSN): Do not mark any resources
+	as referenced if we are not including delayed effects, and the 
+	given insn has delayed effects.
+	(mark_set_resources): Likewise for resources which are set/clobbered.
+	(fill_simple_delay_slots): Include delayed effects for the delay insn
+	if we are searching after the delay insn for candiates.
+	(dbr_schedule): When initializing `end_of_function_needs' include
+	delayed effects.
+
+Sat Mar 20 18:54:46 1993  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (TARGET_SWITCHES): Or in TARGET_CPU_DEFAULT for default
+	case.
+	(TARGET_CPU_DEFAULT): Default to 0.
+
+Sat Mar 20 14:52:26 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (singlemove_string): Declare.
+
+	* configure: Add support for 4.4BSD on hp300s.
+	* hp3bsd44.h, x-hp3bsd44.h: New files for 4.4BSD on hp300s
+
+	* pa.md (conditional branch patterns): Clean up constraints.
+
+	* pa.md (shadd reload patterns): Clean up output templates.
+
+Sat Mar 20 11:23:15 1993  Torbjorn Granlund  (tege@gnu.ai.mit.edu)
+
+	* expmed.c (init_expmed): Fix typo in last change.
+
+Sat Mar 20 07:11:54 1993  Richard Kenner  (kenner@apple-gunkies.gnu.ai.mit.edu)
+
+	* expr.c (get_inner_reference): Simplify code by initializing OFFSET
+	to integer_zero_node.
+	Do general index computation for ARRAY_REF and include lower bound
+	of domain in calculation.
+	(expand_expr, case ARRAY_REF): Include lower-bound in index
+	computation.
+
+	* fold-const.c (fold, case PLUS_EXPR): Don't associate apart
+	a constant operand.
+
+	* combine.c (make_compound_operation): Call recursively in the
+	cases where we find a simplification.
+	(make_compound_operation, case SUBREG): If the recursive call
+	changes the rtx code and this is an appropriate SUBREG, use
+	force_to_mode.
+
+Sat Mar 20 03:16:52 1993  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* print-tree.c (print_node): Print the chain of a STRING_CST.
+
+	* c-lex.c (yylex): Copy the string value we get from __FUNCTION__.
+
+Fri Mar 19 21:06:41 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* expr.h: Correct partly nested comment.
+
+	From Bill Cox (bill@cygnus.com):
+	* cp-decl.c (push_level_decl): Add cast to correct push_stack_level
+	parameter.
+	* cse.c (cse_process_notes): Replace NULL_RTX with just zero.
+	* function.h, halfpic.h, integrate.h, loop.h, machmode.h, output.h,
+	recog.h, reload.h, stack.h: Add prototypes.
+	* genattr.c (gen_attr): Generate prototypes in header file.
+
+	* xcoffout.h (DEBUG_SYMS_TEXT): Define.
+	* xcoffout.c (xcoffout_declare_function): Call dbxout_source_file
+	before emitting .function psuedo-op.
+
+Fri Mar 19 17:45:13 1993  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump Meissner version to 36.
+	(TARGET macros): Move this section to be earlier than
+	ASM_FINAL_SPEC.
+	(ASM_FINAL_SPEC): If configured with --with-gnu-as or as a cross
+	compiler, do not run mips-tfile unless -mmips-as is used.
+
+	* configure (target_cpu_default): Set to 16 when configuring a
+	MIPS using the GNU assembler.
+
+Fri Mar 19 06:27:34 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expmed.c (synth_mult): Don't try to make recursive call if
+	we would be shifting by a negative number.
+	(expand_mult): Don't negate VAL if it is negative.
+
+	* cse.c (simplify_plus_minus): Count CONSTs coming in and going
+	out; we have simplified things if we have more CONSTs going out
+	even if we have the same number of total terms.
+
+	* expmed.c (zero_cost): New variable.
+	(init_expmed): Always pass some insn to recog.
+	Set shift_cost[0], shiftadd_cost[0] and shiftsub_cost[0] to
+	something reasonable.
+	Compute zero_cost.
+	(enum alg_code): Remove alg_none; add alg_zero and alg_m.
+	(struct algorithm): Rename field COEFF to LOG.
+	(synth_mult): Use new ops alg_zero and alg_m for multiplication by
+	zero and one, respectively.
+	Use MIN when helpful.
+	Be consistent and don't test cost before recursive call.
+	Don't special-case shift counts of zero; already handled elsewhere.
+	(expand_mult): First operation is always alg_zero or alg_m;
+	remaining operations can't be one of those.
+	Use proper subtargets for computations.
+	Remove special-cases for shift counts of zero.
+	Track value computed so far and make REG_EQUAL notes.
+
+Fri Mar 19 01:37:54 1993  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* c-typeck.c (digest_init): Typo in last change.
+	(initializer_constant_valid_p): Handle COMPLEX_CST.
+
+	* expr.c (expand_assignment): Pass to_rtx's mode to expand_expr
+	when assigning a result_decl.
+	(expand_expr): For ERROR_MARK, give back 0 in TMODE if possible.
+
+	* calls.c (emit_call_1): Don't defer pops in const call.
+
+Thu Mar 18 17:02:24 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* c-decl.c (current_function_prototype_file,
+	current_function_prototype_line): New variables.
+	(start_function): Set them.
+	(store_parm_decls): Use them for error and warning messages.
+
+Thu Mar 18 21:28:43 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* optabs.c (expand_float): When converting an unsigned type U
+	to a smaller or equal-sized floating type F where there's no
+	hardware support for unsigned-to-float conversion, use a temporary
+	floating type larger than F if possible, since this avoids
+	rounding problems that are worst when U is just greater than
+	the maximum signed integer of the same size.
+
+Thu Mar 18 16:16:21 1993  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* c-typeck.c (digest_init): Handle COMPLEX_TYPE like other scalars.
+
+	* c-parse.in (REALPART, IMAGPART): New token types.
+	(unary_expr): Handle REALPART, IMAGPART.
+
+	* expr.c (expand_expr): Don't ensure ref to a volatile value
+	if it is a function.
+
+	* c-parse.gperf: Add __cimag, __cimag__, __creal, __creal__.
+
+	* collect2.c  (output_file): New static var.
+	(main): Set output_file.
+	(my_exit): Delete output_file on failure.
+
+Thu Mar 18 12:39:06 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* function.c (assign_parms): Minor cleanup.
+	* calls.c (expand_call): Fix bug (don't clobber bitpos).
+
+Thu Mar 18 00:08:40 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/vax/vms.h (PCC_STATIC_STRUCT_RETURN): Add #undef.
+
+Wed Mar 17 17:28:17 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.md (pre_ldwm, pre_stwm): Name these patterns to make
+	generating them easier.
+	(post_ldwm, post_stwm): New patterns.
+	(add_high_const): New pattern.
+	(return): New pattern.
+	* pa.c (post_cint_operand): New function.
+	(hppa_can_use_return_insn_p): New function.
+
+Wed Mar 17 17:24:29 1993  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump Meissner version to 35.
+	(TARGET_SWITCHES): Add -mlong-calls, delete -mwc* switches.
+
+	* mips.md (call insns & expanders): If -mlong-calls, require
+	function address to be in a register.
+
+	* x-iris (OLDCC): Iris now needs -Wf,-XNh1500 as well.
+
+Wed Mar 17 16:00:29 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (IS_RELOADING_PSEUDO_P): New subroutine for
+	EXTRA_CONSTRAINT.
+	(EXTRA_CONSTRAINT): Use IS_RELOADING_PSEUDO_P.  Accept any MEM for
+	`Q' constraint during the reload pass.
+
+	* pa.h (SECONDARY_MEMORY_NEEDED): Define.  
+	(SECONDARY_MEMORY_NEEDED_RTX): Define.
+	* pa.c (output_fp_move_double): Remove code to support GR<->FP
+	copies.
+	* pa.md (movqi, movhi, movsi, movdi, movsf, movdf): Remove support
+	for GR<->FP copies.
+	(fix_truncsfsi2, fix_truncdfsi2): Likewise.
+
+Wed Mar 17 14:58:49 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/vax/vms.h (STRUCT_VALUE): Defined.
+	(STRUCT_VALUE_REGNUM): Add #undef.
+
+Wed Mar 17 14:23:25 1993  Torbjorn Granlund  (tege@gnu.ai.mit.edu)
+
+	* pa.md (branch-on-bit): New patterns.
+	* pa.c (pc_or_label_operand): New predicate.
+
+Wed Mar 17 02:46:58 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/m68k/m68k.md (movqi): In address reg case, if d0
+	appears in the address, use d1 instead as intermediate reg.
+
+Tue Mar 16 17:42:14 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (FIXED_REGNO_P): Remove previous change; all callers but
+	one already check.
+	(CHEAP_REG): Only call FIXED_REGNO_P for hard regs.
+	(fold_rtx): Clarify comments.
+
+Tue Mar 16 14:55:40 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* x-apollo68 (CFLAGS, LIBGCC2_CFLAGS): Delete overrides and
+	comment why they were wrong.
+
+	* c-decl.c (grokdeclarator, ARRARY_REF): If exern, then end
+	temporary allocation before building type.
+
+	* sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Define.
+	* reload.c (get_secondary_mem): Use macro SECONDARY_MEMORY_NEEDED_RTX.
+
+Tue Mar 16 03:49:13 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* cse.c (FIXED_REGNO_P): Pseudos can't be fixed regs.
+
+Tue Mar 16 04:33:41 1993  Paul Eggert  (eggert@twinsun.com)
+ 
+	* cccp.c (main): Report errors in output to pcp_outfile.
+
+Mon Mar 15 21:30:32 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (write_output): Test value of `write'; report errors.
+	(write_output): Use pfatal_with_name for errors.
+	(out_fname): Var now file-scope.
+
+Mon Mar 15 20:52:17 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (EXTRA_CONSTRAINT, case 'S'): Do not accept CONSTANT_P if
+	TARGET_LONG_CALLS.
+
+	* pa.h (EXTRA_CONSTRAINT): Merge strict and non-strict variants.
+	Delete 'R' constraint.
+
+Mon Mar 15 18:38:22 1993  Torbjorn Granlund  (tege@sics.se)
+
+	* expmed.c (lea_max_mul): Delete.
+	(init_expmed): Delete unused variable I.
+	(enum alg_code): New tag alg_shift.  Document it.
+	(synth_mult): Delete unused variable N.  Handle new trivial case
+	first, for T <= 1.  Generalize shifting code to shift whenever a
+	number is even; use alg_shift for this.  Set best_alg->ops only in
+	trivial case.  Clean up cost calculation code for the `simple
+	case' at the end; use shiftadd_cost when appropriate.  Combine
+	declarations of Q and move to top of function.  Eliminate use of Q
+	in factoring cases.  If we are getting too long a sequence for
+	`struct algorithm' to record, fail.
+	(expand_mult): Handle alg_shift instead of alg_add_t_m2 as first
+	operation.  In RLT emit loop, handle alg_shift; special case
+	LOG == 0 for alg_add_t_m2 and alg_sub_t_m2.
+
+Mon Mar 15 16:44:08 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* function.c (assign_parms): Remove unnecessary #ifdef.
+
+Mon Mar 15 14:33:52 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sched.c (reg_known_equiv_p): New variable.
+	(init_alias_analysis): Allocate and compute reg_known_equiv_p.
+	(sched_analyze_1): Reenable code for REG_EQUIV notes, using
+	reg_known_equiv_p so that it is only used on REG_EQUIV notes.
+	(sched_analyze_2): Likewise.  Only pass memory addresses to the
+	sched_analyze_2 call.
+
+	* xm-sol2.h (NO_SYS_SIGLIST): Define.
+
+	* i960.c (print_operand_address): For MULT, set ireg not breg.
+
+	* sparc.md (zero_extendqisi2+4,+5): Add new patterns for combining
+	a SI->QI mode truncate with an insn that sets the condition codes.
+
+	* config.sub (sparclite, sparclite-*): New configuration.
+	* configure (sparclite-*-*): Likewise.
+	* sparc/lite.h: New file.
+
+	* sched.c (adjust_priority): Comment unreachable code.
+	(memrefs_conflict_p): Add comment about Fortran aliasing.
+
+Mon Mar 15 13:54:06 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_plus_minus): Remove last change.  Instead,
+	count initial operands and test against that count to see if we
+	did anything.
+
+	* alpha.h (ASM_OUTPUT_{INT,SHORT,CHAR,BYTE}): Truncate constant
+	to maximum range permitted in order to avoid assembler error.
+
+Mon Mar 15 13:37:35 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.md (sh[123]add patterns): Use register_operand, not 
+	shadd_operand.	    
+	(sh[123]add patterns for reload): Special patterns to avoid
+	lossage due to reload problems.
+	* pa.c (shadd_operand): Delete.
+ 
+Mon Mar 15 00:31:20 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure (rs6000-ibm-aix3.2): Renamed from rs6000-ibm-aix32.
+
+Sun Mar 14 22:54:10 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* reorg.c (find_end_label): Update unfilled_slots if the return
+	insn we make has a delay slot.
+
+Sun Mar 14 21:27:48 1993  Torbjorn Granlund  (tege@sics.se)
+
+	* expmed.c (shift_cost): Now a vector.
+	(shiftadd_cost): New vector for cost of (N * a + b) instructions.
+	(shiftsub_cost): New vector for cost of (N * a - b) instructions.
+	(lea_cost): Removed.
+	(init_expmed): Initialize new vectors.  Use ASHIFT, not LSHIFT.
+	Remove code initializing lea_cost.
+	(enum alg_code): New definition.
+	(synth_mult): Rewrite for better algorithms and faster operation.
+	(expand_mult): Rewrite code for constant multiplication.
+
+Sun Mar 14 06:34:28 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* objc-act.c (build_objc_symtab_template): Correctly build index
+	type for 0-length array.
+	(build_objc_method_call, get_class_reference, get_super_receiver):
+	Call assemble_external on anything we are about to generate a call to.
+	(handle_class_ref): Put constant in readonly-data section, not text.
+
+	* cse.c (simplify_plus_minus): Reject "simplifications" that are
+	too complex in form.
+	Correct sign error in expanding NOT.
+
+Sun Mar 14 00:02:12 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload1.c (choose_reload_regs): Verify reload_out[j] != 0
+	before comparing with reload_earlyclobber elements.
+
+Sat Mar 13 21:05:12 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* calls.c (emit_call_1): Restore inhibit_defer_pop before popping args
+	so that pops really do get deferred if appropriate.
+
+Sat Mar 13 18:13:30 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_plus_minus): When seeing if we have reduced the
+	number of operands, ensure we count a CONST result as two operands.
+
+	* calls.c, expr.c: Correctly define PUSH_ARGS_REVERSED.
+
+Sat Mar 13 16:49:10 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.c (eligible_for_epilogue_delay): Insns which access %r2 can
+	not be used to fill the epilogue's delay slot.
+
+Sat Mar 13 15:31:02 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reg-stack.c (emit_swap_insn): If emitting after a cc0 setter,
+	link the cc0 insns.
+
+Fri Mar 12 17:45:36 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/m68k/xm-mot3300.h (USE_C_ALLOCA): Define if not __GNUC__.
+	* config/m68k/x-alloca-c: New file.
+	* configure (m68k-motorola-sysv*): Use it.
+
+	* expr.c (emit_push_insn): Handle failure of gen_movstr...
+
+	* stor-layout.c (variable_size): Better error for div by 0 in size.
+	* c-decl.c (grokdeclarator): Error for div by 0 in array size.
+
+Fri Mar 12 17:25:35 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c: Add prototypes for static functions.
+	(struct move_by_pieces): Move definition before function
+	forward decls.
+
+	* rs6000.h, a29k.h (PROMOTE_MODE): Fix typo.
+
+	* cse.c (refers_to_mem_p): Use rtx_equal_p to see if bases
+	are equal.
+
+	* cse.c (set_nonvarying_address_components): Fix type mismatch with
+	caller.
+	(refers_to_mem_p): Call properly in second call.
+
+	* jump.c (jump_optimize): Fix bug in last change.
+
+Fri Mar 12 07:25:43 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* optabs.c (expand_binop): For doubleword int addition,
+	clobber the whole register at the start.
+
+Fri Mar 12 03:19:26 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reg-stack.c (get_true_reg): Don't ignore FLOAT_TRUNCATE.
+	(subst_stack_regs_pat): Substitute in FLOAT_TRUNCATE insns.
+
+	(compare_for_stack_reg): Reset insn code after swapping operands.
+
+	* i386.h (FLOAT_CLASS_P): New macro.
+	(REGISTER_MOVE_COST): Use it instead of comparing to FLOAT_REGS.
+	(PREFERRED_RELOAD_CLASS): Likewise.
+	(SECONDARY_MEMORY_NEEDED): Likewise.
+	(CLASS_MAX_NREGS): Likewise.
+
+	(SELECT_CC_MODE): Use VOIDmode for non-FP-equality comparisons.
+
+	* i386.md (truncdfsf2): Rewrite to allow FLOAT_REGS in constraints
+	for better register preferences.
+
+	(movM): If REG_WAS_0, make sure the reg hasn't changed since then.
+
+	(cmpM expanders): Don't allow both operands to be MEM.
+	Use VOIDmode for the COMPARE rtx instead of CCmode.
+	(cmpM recognizers): Likewise.
+	Remove constraints for constants from operand 0.
+
+	(cmpdf,cmpsf recognizers): When using VOIDmode as mode of the
+	COMPARE rtx, require that the mode be exactly VOIDmode.
+
+	* i386.c (VOIDmode_compare_op): New operand predicate function.
+
+	* vax.md (movM): If REG_WAS_0, make sure the reg hasn't changed
+	since then.
+	* tahoe.md (movM): Likewise.
+
+Thu Mar 11 19:23:51 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* function.c (aggregate_value_p): RETURN_IN_MEMORY now handles
+	BLKmode values.
+	* expr.h (RETURN_IN_MEMORY): Handle BLKmode values.
+	* i386/sysv4.h (RETURN_IN_MEMORY): Ditto.
+	* m88k/m88k.h (RETURN_IN_MEMORY): Ditto.
+	* i960/i960.h (RETURN_IN_MEMORY): Ditto.
+	* m68k/apollo68.h (RETURN_IN_MEMORY): Ditto.
+	* mips/mips.h (RETURN_IN_MEMORY): Ditto.
+	* sparc/sparc.h (RETURN_IN_MEMORY): Ditto.
+	* alpha/alpha.h (RETURN_IN_MEMORY): Ditto.
+	* romp/romp.h (RETURN_IN_MEMORY): Ditto.
+	* rs6000/rs6000.h (RETURN_IN_MEMORY): Ditto.
+	* h8300/h8300.h (RETURN_IN_MEMORY): Ditto.
+
+Thu Mar 11 19:02:55 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.h (RTX_COST, case MULT): Handle s8addx and s4addx.
+	(RTX_COST, case MULT): Correctly assign cost to multiplies by a
+	power of two.
+	(RTX_COST, case ASHIFT, ASHIFTRT, LSHIFTRT, IF_THEN_ELSE): New cases.
+
+	* cse.c (CHEAP_REG): New macro; makes virtual regs cheap too.
+	(COST): Use CHEAP_REG.
+	(rtx_cost, case REG): Use CHEAP_REG to return zero for some REGs.
+
+Thu Mar 11 07:47:09 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.md (FP sCC insn): Delete.
+	(sCC define_expands): FAIL instead of generating FP sCC insns.
+	* pa.c (gen_scond_fp): Delete.
+	* pa.h (toplevel): Delete declaration of gen_scond_fp.
+
+	* cse.c (set_nonvarying_address_components): New function.
+	(invalidate): Use set_nonvarying_address_components instead of 
+	computing them.
+	(refers_to_mem_p): Likewise.  Simplify checks for conflicting
+	memory accesses.  Make static.
+	* loop.c (addr_overlap_p): Delete.
+
+Wed Mar 10 23:52:40 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes: Delete ${LIB}/DONE just before exit.
+
+Wed Mar 10 12:27:51 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.c (reg_or_cint_move_operand): Use cint_ok_for_move.
+
+	* pa.md (add reg and large int): New define splits for the combiner.
+	* pa.c (cint_ok_for_move): New function.  Returns 1 iff the given
+	CONST_INT can be loaded into a register in a single instruction.
+	(move_operand): Use cint_ok_for_move.
+
+	* jump.c (jump_optimize, clause for `if (foo) b++'):
+	Do this regardless of BRANCH_COST if HAVE_incscc or 
+	HAVE_decscc is defined.
+
+Wed Mar 10 11:50:06 1993  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pa.md (conditional move): Use %B for output when appropriate.
+        (conditional move with second operand == 0): New pattern.
+	* pa.c (reg_or_cint_move_operand): New function.
+	(move_operand): Add header comment.
+
+Wed Mar 10 01:43:43 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-act.c (OBJC_GEN_METHOD_LABEL): Convert colons to _'s.
+	Don't use the category name or the number.
+
+	* gcc.c (link_command_spec): New option -nostartfiles.
+
+Tue Mar  9 18:55:43 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* convert.c (convert_to_complex): Avoid using comptypes.
+
+Tue Mar  9 11:33:32 1993  Michael Meissner  (meissner@osf.org)
+
+	* objc-act.c (#ifdef NEXT_OBJC_RUNTIME): Close #ifdef properly.
+
+Tue Mar  9 00:03:03 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* flags.h (flag_volatile_global): Declared.
+
+	* c-decl.c (define_label): Use current line number in error msg.
+
+Mon Mar  8 16:11:18 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i386/i386.h (HARD_REGNO_MODE_OK): Add some casts.
+
+	* reg-stack.c (record_asm_reg_life): Cast class to int for indexing.
+
+	* sdbout.c (PUSH_DERIVED_LEVEL): Cast enumm constants to int.
+
+	* toplev.c (flag_volatile_global): New variable.
+	(f_options): Add option for it.
+	* varasm.c (make_decl_rtl): Handle that option.
+
+	* objc-act.c (really_start_method): Always use OBJC_GEN_METHOD_LABEL.
+	Pass method_slot as additional arg.
+	(OBJC_GEN_METHOD_LABEL): Add default definition.
+	* config/m68k/next.h (OBJC_GEN_METHOD_LABEL): Accept additional arg.
+
+Mon Mar  8 12:01:49 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* fold-const.c (const_binop): When evaluating a shift, ignore
+	overflows generated by force_fit_type.
+
+Mon Mar  8 07:24:30 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_gen_binary, simplify_plus_minus): New functions.
+	(find_best_addr): Use cse_gen_binary.
+	(simplify_binary_operation, fold_rtx): Likewise.
+	Remove most special-cases for PLUS and MINUS and call
+	simplify_plus_minus instead.
+	Clean up some tests for FP.
+
+	* cse.c: Add prototypes for static functions.
+	(struct cse_basic_block_data): Move to front of file since it
+	constains struct used in a prototype.
+	(refers_to_p, find_best_addr): Now static.
+
+	* expr.h: Clean up prototypes for functions in expr.c and
+	optabs.c and add some missing ones.
+
+	* optabs.c: Add prototypes for static functions.
+	(init_libfuncs): Put args in proper order.
+
+Sun Mar  7 07:59:34 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reorg.c: Add prototypes for static functions.
+	(fill_simple_delay_slots): Add missing declaration of arg.
+
+Sat Mar  6 15:08:59 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c: Handle long options by translation to old-style ones.
+	(translate_options): New function.
+	(option_map): New table.
+
+	* config/i386/t-iscscodbx: New file.
+	* configure (i[34]86-*-isc*, i[34]86-*-sco...): Use that if stabs.
+
+	* reload1.c (choose_reload_regs): Handle SUBREG in reload_earlyclobber
+	when matching output reloads for setting reload_when_needed.
+
+Sat Mar  6 08:43:09 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* genattrtab.c (write_test_expr): Use INSN_CODE == -2, not 0, for
+	constant attributes.
+
+	* genattrtab.c: Add prototypes in forward declarations.
+	Add some missing parameters to a few calls.
+
+Sat Mar  6 07:41:36 1993  Doug Evans (dje@cygnus.com)
+
+	* calls.c (expand_call): Fix typo in unaligned code.
+
+Fri Mar 5 20:32:28 1993  Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
+
+	* i386/svr3gas.h, i386/svr3dbx.h, i386/iscdbx.h, i386/scodbx.h,
+	i386/sco4dbx.h, svr3.ifile, svr3z.ifile: New files.
+	* configure (i[34]86-...): Use them if configured --with-stabs.
+	* i386/isccoff.h: Renamed from i386/i386isc.h.
+	* i386/iscgas.h: Renamed from i386/i386iscgas.h.
+
+Fri Mar  5 19:41:50 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_assignment): Special handling for storing in
+	RESULT_DECL.
+
+Fri Mar  5 17:48:41 1993  Chris Smith  (csmith@mozart.convex.com)
+
+	* cse.c (simplify_binary_operation): Move integer CONST_DOUBLE
+	folding out of REAL_IS_NOT_DOUBLE conditional.
+	(simplify_relational_operation): Put float CONST_DOUBLE folding
+	under a REAL_IS_NOT_DOUBLE conditional.
+	Add folding for integer CONST_DOUBLE comparisons.
+
+Fri Mar  5 17:37:20 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.md: Add new define_split for doing sign-extended adds
+	of some large constants using sNaddl.
+
+	* function.c (fixup_var_refs_insns): If SMALL_REGISTER_CLASSES,
+	ensure we don't put any insns between the setting of the function
+	return register and it's use.
+
+Fri Mar  5 15:11:41 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (FIXED_REGISTERS): %r2 is no longer fixed.
+	(REG_ALLOC_ORDER): Treat %r2 as a caller-saved allocatable 
+	register.  %r30 is fixed and therefore a "special" register.
+	%fr22-%fr31 are caller-saved, so allocate them before the 
+	callee-saved 1.1 fp registers.  Allocate fp registers before
+	general registers.  Fix typo for register 79.
+
+	* pa.c (output_function_epilogue): Perform an early %r2 restore 
+	even if actual_fsize is zero.  This can happen if %r2 is used
+	as a temporary in a leaf function.
+
+	* pa.h (FIRST_PSEUDO_REGISTER): Update to take into account
+	registers which are no longer known to the compiler.
+	(FIXED_REGISTERS): Likewise.
+	(CALL_USED_REGISTERS): Likewise.
+	(HARD_REGNO_NREGS): Likewise.
+	(HARD_REGNO_MODE_OK): Likewise.
+	(REGNO_REG_CLASS): Likewise.
+	(FUNCTION_VALUE): Likewise.
+	(LIBCALL_VALUE): Likewise.
+	(FUNCTION_VALUE_REGNO_P): Likewise.
+	(FUNCTION_ARG_REGNO_P): Likewise.
+	(FUNCTION_ARG): Likewise.
+	(REGNO_OK_FOR_FP_P): Likewise.
+	(REGISTER_NAMES): Likewise.
+	(REG_CLASS_CONTENTS): Likewise.  Add %r1 to GENERAL_OR_FP_REGS
+	and GENERAL_OR_SNAKE_FP_REGS.
+	(REG_ALLOC_ORDER): Likewise.  Document and make allocation order
+	"regular" across 1.0 and 1.1 cpus.
+
+	* pa.c (compute_frame_size): Update to take into account
+	register which are no longer known to the compiler.
+	(output_function_prologue): Likewise.
+	(output_function_epilogue): Likewise.
+	(output_arg_descriptor): Likewise.
+
+
+Fri Mar  5 12:45:51 1993  Jim Wilson  (wilson@geech.gnu.ai.mit.edu)
+
+	* sparc.c (output_function_prologue, output_function_epilogue):
+	Add comments for frame_base_name usage in leaf_functions.
+
+	* gcc.c (main): Put argv[0] in collect_obstack instead of programname.
+
+	* cse.c (note_mem_written): QImode varying structure memory
+	accesses can alias scalars.
+
+Thu Mar  4 10:05:52 1993  Juergen Keil  (jk@leo.tools.de)
+
+	* c-decl.c (store_parm_decls,combine_parm_decls): Call layout_decl
+	for a parm declared float when it is changed to double under a
+	traditional compilation.
+
+Thu Mar  4 17:52:52 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (ASM_OUTPUT_INT): If TARGET_SHARED_LIBS, then references to
+	functions which do not occur in the text space must have a PLABEL
+	("P%") prefix to make the assembler and linker happy.
+
+Thu Mar  4 17:18:57 1993  Steve Chamberlain  (sac@geech.gnu.ai.mit.edu)
+
+	* emit-rtl.c (init_emit_once): Initialize const_tiny_rtx for
+        partial ints too.
+
+	* convert.c (convert_to_pointer): Fix typo comparing size of
+	integer and pointers.
+	* varasm.c (immed_double_const): Cope with MODE_PARTIAL_INT.
+	(output_constant_pool): Likewise.
+
+Thu Mar  4 15:18:15 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-common.c (truthvalue_conversion): Fix handling of COMPLEX_EXPR.
+	Handle all complex values specially.
+
+Thu Mar  4 13:48:38 1993  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pa.md (recognizer for general uaddcm): New pattern.
+
+	* pa.md (iorsi3): New DEFINE_EXPAND.
+	(iorsi3 recognizer for [reg reg]): Now unnamed.
+	Put output template here, don't call output_ior.
+	* pa.c (output_ior): Don't handle reg operands.
+
+Thu Mar  4 13:14:13 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fold-const.c (fold): Handle complex constants as "winning".
+	Handle REALPART_EXPR and IMAGPART_EXPR.
+
+Thu Mar  4 13:08:53 1993  Steve Chamberlain  (sac@geech.gnu.ai.mit.edu)
+
+	* config.sub (h8300hds): Change hds to hms.
+	* configure (h8300-*-*): Added.
+	* h8300.c, h8300.h, h8300.md, t-h8300, xm-h8300.h: New files.
+
+Thu Mar  4 10:31:17 1993  Michael Meissner  (meissner@osf.org)
+
+	* gcc.c (link_command_spec): Add missing \ before newline inside
+	character string.
+
+	* c-parse.in (all_iter_stmt_simple): Add missing comma so that
+	Objective C compiles.
+
+Thu Mar  4 02:43:43 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* optabs.c (emit_no_conflict_block): Don't move target to itself
+	if that takes multiple insns.
+	(expand_binop): For complex mult and div, avoid fetching operand
+	components more than once from memory.
+
+	* dbxout.c (dbxout_type): Handle complex integer types.
+
+Wed Mar  3 16:01:11 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (common_type): Handle complex types.
+
+	* machmode.def: Add complex integer modes.
+
+	* c-common.c (truthvalue_conversion): Handle COMPLEX_EXPR.
+
+	* c-typeck.c (lvalue_p): Handle REALPART_EXPR, IMAGPART_EXPR.
+	(build_binary_op, build_unary_op): Handle complex types.
+
+	* c-parse.gperf: Add `__complex', `__complex__'.
+	Add `__iterator'.  Delete `iterator'.
+
+	* tree.c (build_complex): Set the TREE_TYPE based on real part.
+
+	* c-lex.h (RID_COMPLEX): New constant.
+	* c-lex.c (init_lex): Initialize rid pointers for complex.
+	(yylex): Handle i or j in numeric constant.
+
+	* c-decl.c (init_decl_processing): Create complex types.
+	(grokdeclarator): Handle complex keyword.
+	Distinguish int-by-default from int keyword.
+	* c-tree.h: Declare vars to hold complex types.
+
+	* c-convert.c (convert): Handle conversion to complex type.
+	* convert.c (convert_to_real): Convert complex to real.
+	(convert_to_integer): Likewise.
+	(convert_to_complex): New function.
+	* convert.h (convert_to_complex): Declared.
+
+Wed Mar  3 15:34:36 1993  Per Bothner  (bothner@hal.gnu.ai.mit.edu)
+
+	* tree.c (build_range_type):  New function.
+	* tree.c (build_index_2_type): Re-implement using build_range_type.
+
+Wed Mar  3 08:34:43 1993  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pa.c (lhs_lshift_operand): New function.
+	(lhs_lshift_cint_operand): New function.
+	* pa.md (ashlsi3): Use lhs_lshift_operand for operand 1.
+	Call gen_zvdep_imm when operand 1 is a CONST_INT.
+	(zvdep_imm): New pattern.
+
+	* pa.c (print_operand): Handle L and P for bit field instructions.
+	* pa.md (ashift recognizer for [reg const_int]): Use %P and %L
+	output modifiers.
+	(ashiftrt recognizer for [reg const_int]): Likewise.
+	(lshrsi3): Likewise.
+	(rotrsi3): Reduce integer argument to 5 bits.
+
+	* pa.md: Remove some empty lines.
+
+	* pa.c (pa_adjust_cost): Replace, the function of Mar 2 was an old
+	version.
+	(output_fp_move_double): Use %r syntax for registers.
+
+Wed Mar  3 01:42:42 1993  Per Bothner  (bothner@hal.gnu.ai.mit.edu)
+
+	* tree.def (INTEGER_TYPE):  Clarify comment to make clear that
+	INTEGER_TYPEs are used for arbitrary range types (i.e.
+	sub-ranges of enums) in languages that need them.
+	* dbxout.c (dbxout_type_range):  New function:  Common code
+	needed for both range types and array index types.
+	Fixes some problems common in both places:  Now handles
+	non-zero lower bound, variable bounds (sort of), and ranges
+	of non-integer (e.g. enum) types.
+	* dbxout.c (dbxout_type): Use dbxout_type_range.
+
+Tue Mar  2 23:34:45 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* collect2.c (main): Use strlen, not sizeof, for our_file_name.
+
+	* c-common.c (convert_and_check): No warning for converting
+	signed integer to unsigned of same width.
+
+Tue Mar  2 18:59:39 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu.edu)
+
+	* c-iterate.c (collect_iterators): Handle simple expressions quickly.
+	Don't try to interpret operands that are RTL as if they were trees.
+
+	* regclass.c (regclass): Don't set REGNO_POINTER_FLAG here.
+	(reg_scan_mark_refs): Set it here.
+	Accept INSN, not UID as arg.
+	(reg_scan): Call reg_scan_mark_refs with INSN, not UID.
+
+Tue Mar  2 18:03:25 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-act.c (handle_class_ref): Call assemble_external.
+
+Tue Mar  2 15:56:17 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* genattrtab.c (write_const_num_delay_slots): Output 'rtx insn' not
+	'rtx *insn' for const_num_delay_slot argument.
+
+	* gcc.c (main): Truncate programname to what is after last slash.
+
+	* cccp.c (do_include): Warn if find unreadable header file.
+	(errno.h): Move outside VMS specific section.
+
+	* sparc.c (print_operand): Use output_operand_lossage, not abort.
+
+	* sparc.h (SETUP_FRAME_ADDRESS, DYNAMIC_CHAIN_ADDRESS,
+	RETURN_ADDR_IN_PREVIOUS_FRAME, RETURN_ADDR_RTX): Define.
+	* sparc.md (flush_register_windows, goto_handler_and_restore):
+	Give names to these patterns so they are easier to use.
+	* expr.c (expand_builtin, BUILT_IN_FRAME_ADDRESS case): Use new
+	macros SETUP_FRAME_ADDRESSES and RETURN_ADDR_IN_PREVIOUS_FRAME.
+
+	* reorg.c (relax_delay_slots): Delete jump around insn identical
+	to the insn in its delay slot.
+
+	* i960.c (i960_output_call_insn): Delete scratch_reg arg.  Use r3
+	instead.
+	* i960.md (call_internal*): Use hard register 19 (r3) in clobber
+	instead of match_scratch.
+
+	* i960.md (mov*): Only accept store zero to memory insn if
+	rtx_equal_function_value_matters is zero.
+	* i960.h (rtx_equal_function_value_matters): Declare.
+
+	* emit-rtl.c (gen_sequence): Add push_obstacks_nochange and
+	pop_obstacks calls around rtl_in_saveable_obstack call.
+	* varasm.c (immed_double_const, immed_real_const_1): Likewise.
+	* tree.c (rtl_in_saveable_obstack): Always switch to saveable_obstack.
+	Return type now void instead of int.
+
+Tue Mar  2 14:57:06 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (link_command_spec): Do nothing if -fsyntax-only.
+
+Tue Mar  2 14:17:47 1993  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pa.h (ADJUST_COST): Add new definition.
+	* pa.c (pa_adjust_cost): New procudure.
+
+Tue Mar  2 02:12:13 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* optabs.c (gen_move_insn): Big `if' applies only for MODE_CC class.
+
+	* config/m68k/next.c (handle_pragma): New arg get_line_function.
+	* config/m68k/next.h (HANDLE_PRAGMA): Pass suitable arg.
+	* c-lex.h (get_directive_line): Declared.
+
+Tue Mar  2 10:48:46 1993  Wilson Tien  (wtien at urbana.mcd.mot.com)
+
+	* m68k.md (truncdfsf2+2): Use f%$move instead of fsmove.
+
+	* m68k.md (fix_truncdfsi2, fix_truncdfhi2, fix_truncdfqi2):
+	Use %# instead of #.
+
+	* m68k.md (call, call_value): Set SYMBOL_REF_FLAG for the called
+	function symbol_ref rtx.  In PIC mode, output `bsr FUNC@PLTPC'
+	when the operand is symbol_ref.
+
+	* m68kv4.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Use SIZE instead
+	of ROUNDED.
+
+	* m68kv4.h (ASM_OUTPUT_CASE_LABEL): Always use `swbeg' syntax to
+	output switch table (m68k.md depends on this to happen).
+
+	* m68kv4.h (LEGITIMATE_PIC_OPERAND_P): Treat a symbol_ref rtx with
+	SYMBOL_REF_FLAG set a valid PIC operand.
+
+	* m68kv4.h (OVERRIDE_OPTIONS): Turn off function cse when doing pic.
+
+	* m68k.c (output_function_prologue): Use m68k svr4 PIC format to 
+	load the address of _GLOBAL_OFFSET_TABLE_ into PIC_OFFSET_TABLE_REG
+	in function prologue when doing PIC.
+
+	* m68k.c (print_operand_address): Always add "@GOT" suffix for the
+	global object operand when doing PIC. 
+
+Mon Mar  1 19:00:38 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-lex.h (RID_ITERATOR): New alternative.
+	* c-tree.h (ITERATOR_P, ITERATOR_BOUND_P): New macros.
+
+	* c-typeck.c (build_unary_op): Warn if increment `struct unknown *'.
+
+	* c-lex.c (init_lex): Set up ridpointers for `iterator'.
+	But maybe turn it off again.
+	
+	* c-parse.gperf: Add `iterator' and `__iterator__'.
+
+	* c-decl.c (grokdeclarator): Handle iterator storage class.
+	(finish_decl): For iterator, require initial value, make a save_expr.
+	(init_decl_processing): Call init_iterators.
+
+	* c-parse.in (stmt): Allow all_iter_stmt.
+	(primary -> statement expression): Push and pop iterator stack.
+	(stmt -> expr): Use iterator_expand.
+	(all_iter_stmt): New rule.
+
+	* c-typeck.c (readonly_warning): Warn about assignment to iterator.
+
+	* c-iterate.c: New file.
+	* Makefile.in (c-iterate.o): New target.
+	(C_OBJS, OBJC_OBJS): Add c-iterate.o.
+
+	* Makefile.in (gcc.o): Delete dep obstack.h.
+
+Mon Mar  1 07:29:51 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* integrate.c (subst_constants): Use proper mode when getting
+	equivalent constant for paradoxical SUBREG in SET_DEST.
+	(mark_stores): Clean up and tighten to properly handle hard regs.
+
+	* combine.c (subst, case NOT): If STORE_FLAG_VALUE==-1, treat
+	an ASHIFTRT of just the sign bit as if it were an LT.
+	(subst, case XOR): Likewise for STORE_FLAG_VALUE==1 and an LSHIFTRT.
+	(simplify_and_const_int, case LSHIFTRT): If shifting a sign bit
+	copy, start shift at the sign bit.
+	(simplify_shift_const): Likewise for ASHIFTRT.
+
+	* combine.c (BYTE_LOADS_EXTEND): Fix typo when defining.
+	(setup_incoming_promotions): Set modes properly.
+
+	* alpha.md: Add three special-cases of CMP insns against zero.
+
+Mon Mar  1 06:17:02 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (CONSTANT_ADDRESS_P): Do not accept symbolic
+	addresses.
+	(LEGITIMIZE_ADDRESS): Just a stub now.  Call
+	hppa_legitimize_address to do the real work.
+
+	* pa.c (symbolic_expression_p): New function.
+	(hppa_legitimize_address): Old LEGITIMIZE_ADDRESS moved
+	here.  Handle symbol_ref + displacement addresses. 
+	Use rounding instead of masking off lower bits.
+	Avoid creating useless pseudos and strip off CONST in
+	(const (...)) expressions to make processing easier.
+
+	* pa.md (define_split for symbol_ref+int): New define_split for
+	the combiner.
+
+Sat Feb 27 01:57:34 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (convert_for_assignment): New arg FUNDECL.  Calls changed.
+	(convert_arguments): New arg FUNDECL.
+	(build_function_call): Pass function to convert_arguments, if a decl.
+
+	* config.sub: Error if company name is more than one word.
+	If $os is `sunos...', don't change it to manufacturer's name.
+
+	* enquire.c (fake_f_rep): Clear all of u, initially.
+	Make the ints in u unsigned.
+	(f_define): Use ordinary constants for long double
+	if it's same width as double.
+	Make __convert_long_double_i unsigned.
+
+	* va-i860.h (struct __gnuc_va_list): Test __svr4__ like __SVR4__.
+
+	* config/ns32k/ns32k.h (TARGET_SWITCHES): Reverse defn of 32332.
+
+	* expr.c (convert_move): Truncate via word_mode
+	only if to_mode fits in one word.
+	Truncate by referring in TO_MODE for any FROM,
+	but force_reg if nec.
+
+	* c-decl.c (pushdecl): Nested fn decl gets DECL_CONTEXT iff not extern.
+
+	* c-lex.c (check_newline): #line updates input_file_stack->name.
+
+	* c-typeck.c (convert_for_assignment): Automatically convert
+	to a union from its members' types.
+
+	* config/ns32k/ns32k.h (ASM_OUTPUT_ALIGN_CODE):
+	Pad with no-op insns.
+
+	* c-decl.c (grokdeclarator): Make `long long' work even with
+	-pedantic, despite the warning.
+
+Fri Feb 26 22:01:32 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* cccp.c (USER_LABEL_PREFIX, REGISTER_PREFIX): If not defined by
+	tm.h, set to empty strings.
+	(enum node_type, special_symbol): Added T_USER_LABEL_PREFIX_TYPE
+	and T_REGISTER_PREFIX_TYPE, which expand to USER_LABEL_PREFIX and
+	REGISTER_PREFIX.
+	(initialize_builtins): New builtin definitions
+	__USER_LABEL_PREFIX__ and __REGISTER_PREFIX__.
+
+Fri Feb 26 18:08:58 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (distdir): Depend on cp-parse.y,
+	and the .c files for the .y files.
+
+	* c-decl.c (declare_parm_level): Unconditionally store 1.
+	(pushdecl): Criterion for no warning is, next level up
+	is a parm level.
+
+	* Makefile.in (all.cross): Depend on enquire.
+
+	* libgcc2.c (inhibit_libc): Renamed from inhibit_eprintf.
+	(L_new_handler): Don't include stdio.h if inhibit_libc.
+
+	* c-typeck.c (process_init_constructor): Error msg change.
+
+	* gstdarg.h (_VA_LIST_T_H): Test and define this.
+	* gvarargs.h (_VA_LIST_T_H): Test and define this.
+
+	* gstddef.h (_SYS_SIZE_T_H): Test this and define this.
+
+	* xm-pbd.h (USE_C_ALLOCA): Define here.
+	* pbd.h (USE_C_ALLOCA): Not here.
+
+	* tree.c (simple_cst_equal): New default case handles most
+	tree codes based on TREE_CODE_CLASS.  Delete newly redundant cases
+	for specific tree codes.
+
+	* dbxout.c (dbxout_type): Enable output of subrange types
+	if use_gnu_debug_info_extensions.
+	(dbxout_finish_symbol): Enable output of symbols line number.
+
+	* c-typeck.c (initializer_constant_valid_p):
+	Allow cast of ptr to wider integer.
+
+Fri Feb 26 19:04:36 1992  Karl Berry  (karl@cs.umb.edu)
+
+	* optabs.c (init_libfuncs): Use int instead of enum for
+	first_mode, last_mode, and mode.
+
+Fri Feb 26 14:29:22 PST 1992  Ron Guilmette (rfg@netcom.com)
+
+	* c-parse.in (ivar_decls):  Give a pedwarn (instead of a warning) for
+	excess semicolons.
+
+	* cccp.c (do_include): Correctly report the directive name
+	when any kind of include directive has no argument or null argument.
+
+Fri Feb 26 11:27:35 1992  Tom Wood  (wood@NeXT.com)
+
+	* toplev.c (compile_file): Use pedwarn_with_decl to warn about
+	functions declared static but not defined.
+	* c-decl.c (store_parm_decls): Use pedwarn.
+
+Fri Feb 26 10:34:33 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* Makefile.in (uninstall): Also remove the g++ manual page.
+
+Fri Feb 26 01:29:53 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* cexp.y (parse_escape): Don't treat ^ as special after \.
+
+Fri Feb 26 21:37:29 1993  John F Carr  (jfc at Athena.MIT.EDU)
+
+	* varasm.c (make_decl_rtl): Print an error for explicit register
+	variable whose type cannot be stored in that register.
+
+Fri Feb 26 17:07:25 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* machmode.def: Added 32-byte int OImode.
+
+Fri Feb 26 13:59:23 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* explow.c (memory_address): Use CONSTANT_ADDRESS_P instead of
+	LEGITIMATE_CONSTANT_P.
+	(break_out_memrefs): Likewise.
+
+Fri Feb 26 06:18:40 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case IN_EXPR): Fix numerous small bugs and
+	make some cleanups.
+
+	* recog.c (constrain_operands, case 'r'): If STRICT, a REG isn't
+	valid if it is a pseudo even if GENERAL_REGS == ALL_REGS.
+
+	* alpha.h (LEGITIMIZE_ADDRESS): Add missing args to calls to
+	expand_binop.
+
+Thu Feb 25 17:24:45 1993  Bill Cox  (bill@rtl.cygnus.com)
+
+	* expr.h: Add prototypes for most expr-related functions.
+	* jump.c (jump_optimize): Add missing parameter in expand_binop	call.
+
+Thu Feb 25 17:50:55 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* toplev.c: No need to #undef ABS; done in rtl.h.
+
+	* reorg.c (redundant_insn_p): Fix typo in testing for types of
+	insns by using GET_RTX_CLASS.
+
+	* expmed.c (emit_store_flag): Fix typo in testing BRANCH_COST.
+
+Thu Feb 25 14:32:31 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* combine.c (set_nonzero_bits_and_sign_copies): Fix typo in
+	paradoxical set dest handling.
+
+	* convert.c (convert_to_integer): Delete Feb 19 change.
+
+	* fold-const.c (decode_field_reference): Fix force_fit_type call.
+
+Thu Feb 25 07:38:36 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixinc.sco: Use pwd if PWDCMD is not defined.
+
+Wed Feb 24 18:28:06 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/vax/vms.h (ASM_OUTPUT_EXTERNAL): Use vms_check_external.
+	(ASM_GLOBALIZE_LABEL): New definition; use vms_check_external.
+	* config/vax/vax.c (vms_check_external): New function.
+
+	* config/m68k/xm-mot3300.h (NO_SYS_SIGLIST): Defined.
+
+Wed Feb 24 16:01:42 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* loop.c (consec_sets_invariant_p): Correct REG_EQUAL note checks
+	to distinguish libcall case from ordinary insn case.
+
+	* loop.c (add_label_notes): Don't add notes for references to
+	dispatch tables because jump doesn't.
+	(find_and_verify_loops): Invalidate loops that contain labels
+	whose address has been taken.
+
+	* fixinc.svr4 (string.h): Delete 'g' from sed command.
+
+	* sparc.md (zero_extendqi*i2): Delete never matched constraints.
+
+	* i960.c (umulsidi3+1): Delete extra parenthesis.
+
+Tue Feb 23 15:09:50 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (install-headers): Create relative paths for
+	symbolic links within installed include directory.
+
+Tue Feb 23 14:43:46 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* stmt.c (check_for_full_enumeration_handling): Handle nameless type.
+
+	* tree.h (CONSTRUCTOR_NAME_FORMAT): Handle NO_DOT_IN_LABEL.
+
+	* config/m68k/mot3300.h (NO_DOLLAR_IN_LABEL, NO_DOT_IN_LABEL): Defined.
+
+	* collect2.c (is_ctor_dtor): Handle NO_DOT_IN_LABEL.
+
+Mon Feb 22 18:06:06 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* m88k.c (output_call): Don't use the delay slot of a bsr.n 
+	to modify the return address, unless -O2 specified.
+
+Mon Feb 22 17:36:52 1993  Kresten Krab Thorup  (krab at xiv)
+
+	* objc/core.c (initialize_class): Take Class_t instead of
+	char* as argument.  Callers changed to pass the class.
+
+	* objc/core.c (initialize_class): Mark the class
+	initialized *before* the actual call of "+initialize".  This is
+	needed in case of certain circular dependances between classes.
+
+	* objc/object.m	(doesNotRecognize): Call sel_getName to get
+	the name of the selector, and print that.
+	(subclassResponsibility, notImplemented): Likewise.
+
+Mon Feb 22 00:23:47 1993  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* expr.c (emit_library_call_value): Fix bug in prev change.
+
+	* Makefile.in (install-include-dir): Depend on install-dir.
+
+	* convert.c (convert_to_integer): #if 0 the truncated integer warning.
+
+Mon Feb 22 15:15:40 1993  James Van Artsdalen  (james@bigtex.cactus.org)
+
+	* fold-const.c (all_ones_mask_p): Really use tmask.
+
+Mon Feb 22 11:59:09 1993  Michael Meissner  (meissner@osf.org)
+
+	* fold-const.c (all_ones_mask_p): Declare tmask to be `tree'.
+	(optimize_bit_field_compare) Add missing semicolon.
+
+Sun Feb 21 20:20:13 1993  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* expr.c (emit_library_call_value): Really pass mem value address
+	to the library function.
+
+Sun Feb 21 15:15:40 1993  James Van Artsdalen  (james@bigtex.cactus.org)
+
+	* fold-const.c (decode_field_reference): Use force_fit_type
+	instead of convert to avoid truncated integer warning.
+	(all_ones_mask_p): Likewise.
+
+Sun Feb 21 13:06:00 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.md (load high pattern): Rework constraints to reduce %r1
+	spillage.
+
+	* pa.md (const_double -> FP pattern): Remove cases which can never
+	happen anymore.
+
+	* pa.c (print_operand, case 'Y'): Output comparison operators
+	which will give the right results when one or more operands is a NaN.
+
+Sun Feb 21 01:38:19 1993  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* expr.c (emit_move_insn_1): New subroutine cut from emit_move_insn.
+	(emit_move_insn): Use that.
+	* optabs.c (gen_move_insn): Use emit_move_insn_1.
+	* expr.h (emit_move_insn_1): Declared.
+
+Sat Feb 20 20:33:51 1993  Doug Evans  (dje@wookumz.gnu.ai.mit.edu)
+
+	* cccp.c: Add declaration for pedwarn_with_line.
+
+Sat Feb 20 14:46:25 1993  James Van Artsdalen  (james@bigtex.cactus.org)
+
+	* fixincludes (SRCDIR): Make absolute from ORIGDIR.
+	(sys/types.h): Quote variables that might expand with spaces.
+	Strip quotes from expansion of SIZE_TYPE.
+	(stdio.h): Fix typo deleting line.
+
+Sat Feb 20 18:41:05 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (warning_with_line, pedwarn_with_line): New functions.
+	(rescan): For pedantic, no error if string constant has newline,
+	just a pedwarn.  And don't end the string constant there.
+
+Sat Feb 20 17:25:16 1993  Doug Evans  (dje@wookumz.gnu.ai.mit.edu)
+
+	* fold-const.c (decode_field_reference): Use force_fit_type
+	instead of convert to avoid truncated integer warning.
+
+Sat Feb 20 07:31:32 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* fixincludes: Change "va_list)" to "__gnuc_va_list)".
+
+Sat Feb 20 03:19:44 1993  Doug Evans  (dje@wookumz.gnu.ai.mit.edu)
+
+	* fixincludes: Save temp file in ${LIB}.
+	Use -I${ORIGDIR} when compiling types.c.
+
+Fri Feb 19 00:45:41 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* convert.c (convert_to_integer): Warn if integer is truncated
+	and that changes the value.
+
+Thu Feb 18 20:15:20 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* aix386.h: Include aix386ng.h instead of duplicating it.
+	* 3b1.h (ASM_OUTPUT_CASE_END): Add missing semicolon.
+
+	* sparc.c (output_function_prologue): Don't save %f31 to stack.
+	* sparc.h (STARTING_FRAME_OFFSET): Set to -8.
+
+	* pbd.h, sol2.h, sparc.h, sysv4.h (CPP_PREDEFINES): Add
+	-D__GCC_NEW_VARARGS__.
+	* va-sparc.h (va_start): If __GCC_NEW_VARARGS__ not defined, use
+	old definition.
+
+	* final.c (end_final): Don't call assemble_zeros with an size
+	argument of zero.
+
+	* move-if-change: Use cmp -s instead of redirecting output to
+	/dev/null.
+
+	* calls.c (expand_call): When MAYBE_REG_PARM_STACK_SPACE defined,
+	if reg_parm_stack_space is zero, set args_size.constant to zero.
+
+Thu Feb 18 17:43:30 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc/core.c (__objc_execClass):
+	Don't assign superclass pointer more than once.
+
+	* objc/record.h (record_store_at, record_get):
+	Test record_capacity, not record_entries, in assertion.
+
+	* flow.c (regno_uninitialized): Test global_regs only for hard regs.
+
+	* c-lex.c (yylex): Undo Feb 7 change.
+	* c-parse.in (program): After extdefs, pop any unpopped binding lvls.
+
+	* Makefile.in (BISONFLAGS): Add -v.
+
+Wed Feb 17 18:51:51 1993  Karl Berry  (karl@owl.hq.ileaf.com)
+
+	* toplev.c (ABS): #undef after including sys/resource.h.
+
+Wed Feb 17 22:02:09 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* m88k.c (emit_ldst): For large offsets use register index
+	instead of immediate.  
+
+Wed Feb 17 18:02:26 EST 1993  John Wehle  (john@feith.com)
+
+	* we32k.h (CONST_COSTS): Updated to better reflect
+	the actual constant costs on a we32k.
+
+	* we32k.md (truncdfsf2, extendsfdf2): Changed from
+	define_insn to expand_insn so the optimizer can do
+	a better job.
+
+	* we32k.h (GO_IF_LEGITIMATE_ADDRESS): Added support for
+	deferred addressing.
+
+	* we32k.md: Eliminated a jmp pattern and the peephole
+	patterns which are no longer needed now that deferred
+	addressing is supported.
+
+Wed Feb 17 17:55:34 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes (sys/types.h): Replace definition of size_t
+	based on SIZE_TYPE.
+
+Wed Feb 17 06:54:42 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* config/m88k/m88k.h (CONST_OK_FOR_LETTER_P): Added 'K'.  
+	* config/m88k/m88k.md: Use 'K' constraint with arith5_operand
+	predicate.  
+
+Wed Feb 17 03:04:49 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (stmp-fixinc): Renamed from stmp-fixincludes.
+
+Tue Feb 16 14:34:19 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/sparc/sparc.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Defined.
+
+Tue Feb 16 02:48:58 EST 1992  John Wehle  (john@feith.com)
+
+	* reload.c (find_reloads_address): Use strict_memory_address_p
+	to check for valid indirect address.
+
+	* xm-we32k.h: Include xm-svr3.h.  Move tm.h include earlier.
+	(HOST_BITS_PER_LONGLONG, HOST_WORDS_BIG_ENDIAN): Defined.
+	(USG, bcopy, bzero, bcmp): Deleted.
+	(alloca): Definition moved before tm.h.
+
+Tue Feb 16 01:28:52 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_indirect_ref): Avoid *& short-cut if -fvolatile.
+
+Mon Feb 15 22:22:08 1993  Michael Meissner  (meissner@osf.org)
+
+	* mips/osfrose.h (CPP_SPEC): When preprocessing .S files, pass
+	-traditional if neither -ansi nor -traditional was passed, to
+	allow the macros which form labels to not give gas heartburn.
+
+	* i386/osfrose (CPP_SPEC): Ditto.
+
+Mon Feb 15 02:17:47 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-act.c (HASHFUNCTION): insure nonnegative hash even if
+	addresses are negative.
+
+Sat Feb 13 04:16:29 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (c_decode_option): Handle -Wmissing-braces.
+	* c-typeck.c (process_init_constructor): Test warn_missing_braces.
+	* c-tree.h (warn_missing_braces): Declared.
+
+Fri Feb 12 19:40:38 1993  Doug Evans  (dje@wookumz.gnu.ai.mit.edu)
+
+	* combine.c (setup_incoming_promotions): Make static.
+
+Fri Feb 12 16:02:52 1993  Per Bothner  (bothner@hal.gnu.ai.mit.edu)
+
+	* tree.def:  Fix typo in comment (TREE_VALUES -> TYPE_VALUES).
+
+Fri Feb 12 11:26:28 1993  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pa.md (rotlsi3): Fix typo, rotate was rotatert in rtl template.
+
+Fri Feb 12 07:47:11 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* function.c (reposition_prologue_and_epilogue_notes): Allow
+	for zero length prologue and epilogue list.
+
+Thu Feb 11 05:55:33 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* collect2.c (find_a_file): Always reject "./ld".
+	(main): Pass short name of program as first arg to fork_execute;
+	ensure argv[0] always gets filename.
+	(fork_execute): Print name for diagnostic from PROG; filename
+	comes from argv[0].
+
+	* fixincludes: Don't assume that macros defining IO and CTRL
+	ioctl codes always use `x'; some use `c' or `g'.
+
+	* collect2.c (putenv): New function, copied from gcc.c.
+	(last_file_name): New variable.
+	(find_a_file): Ignore name in last_file_name too.
+	(main): Look at name in COLLECT_NAME and set it to the name we were
+	called with.
+	Pass filename used for ld to ld as argv[0].
+
+Thu Feb 11 03:55:39 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_builtin): Move memory_address calls
+	out of arglist of emit_block_move.
+
+Wed Feb 10 16:14:09 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Update Alpha support to latest calling sequence.
+	* alpha.c (version_string): Declare.
+	(current_file_function_operand): New function, replaces
+	current_function_operand.
+	(print_operand, case 'F'): Case deleted.
+	(alpha_builtin_saveregs): Reworked to use homed arglists, as
+	recommended in the calling standard.
+	(alpha_need_gp): Deleted, code moved into output_prolog.
+	(alpha_gp_dead_after): Deleted; optimization is not safe.
+	(alpha_write_verstamp): New function.
+	(output_prolog, output_epilog): Major rework to update to
+	current calling standard.
+	* alpha.h (ASM_OUTPUT_LOOP_ALIGN): Enable, now that assembler fixed.
+	(SLOW_UNALIGNED_ACCESS): Define as 1.
+	(ARG_POINTER_REGNUM): Use register number 31 as an arg pointer.
+	(FRAME_GROWS_DOWNWARD): Do not define.
+	(STARTING_FRAME_OFFSET): Now is outgoing args size.
+	(FIRST_PARM_OFFSET): Now 0.
+	(ELIMINABLE_REGS, etc.): Cannot eliminate gp, but do
+	eliminate AP in favor of either SP or FP.
+	(RETURN_IN_MEMORY): All structs or integers larger than 64
+	bits get returned via memory.
+	(SETUP_INCOMING_VARARGS): Use homed arglist mechanism.
+	(ASM_DECLARE_FUNCTION_NAME): Use proper second arg to .ent.
+	(ASM_FILE_START): Call alpha_write_verstamp.
+	(ENCODE_SECTION_INFO): Record when a decl is for a function
+	in the current file.
+	* alpha.md (call insns): Always reload gp after a full call.
+	Use current_file_function_operand to see when we can use BSR.
+
+Wed Feb 10 09:53:00 1993  John Hassey  (hassey@wombat.gnu.ai.mit.edu)
+
+	* config.sub: removed m88kbcs, changed delta88 and harris to
+	use sysv3.  
+
+Wed Feb 10 03:29:11 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (duplicate_decls): Silently accept harmless mismatch
+	in type of 1st arg of builtin function.
+
+	* c-typeck.c (build_indirect_ref): If arg is void *, just warn.
+
+Tue Feb  9 22:15:08 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* alpha.md (fix_truncdfdi2, fix_truncsfdi2): Use `cvttqc', not
+	`cvttq', to avoid rounding up.
+
+Tue Feb  9 18:45:57 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (promoted_input_arg): New function.
+	* expr.h: Declare it.
+	* combine.c (setup_incoming_promotions): New function.
+	(combine_instructions): Add calls to setup_incoming_promotions.
+
+Tue Feb  9 14:04:22 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* fixincludes: Fix logic about when to duplicate entries under the
+	`FILE' link.
+
+Tue Feb  9 13:22:28 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (main): Fix lineno of "does not end in newline" message.
+	(finclude): Likewise.
+
+Tue Feb  9 12:03:37 1993  Michael Meissner  (meissner@osf.org)
+
+	* mips/mips.c (function_epilogue): Avoid integer overflows in
+	checking whether $31 is the only register saved.
+	(mips_epilogue_delay_slots): Ditto.
+
+Tue Feb  9 05:46:17 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rtl.h: Undefine ABS; some POSIX systems define it as 1.
+
+	* combine.c (combine_instructions): When calling
+	set_nonzero_bits_and_sign_copies, set things up so that we
+	can call get_last value; call record_dead_and_set_regs in loop.
+	(set_nonzero_bits_and_sign_copies): Handle paradoxical SET.
+
+Tue Feb  9 01:13:18 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-lex.c (yylex): For wide char constant, use wchar_type_node.
+	Swallow any preprocessing number as a (possibly erroneous) number.
+
+	* tree.c (size_in_bytes): Add 2nd arg to force_fit_type.
+
+Mon Feb  8 07:52:23 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* configure (*-*-hpux*): Use install-headers-cpio.
+
+Mon Feb  8 07:13:49 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* toplev.c (compile_file): Don't flag global register variables
+	as unused.  
+
+Mon Feb  8 06:06:58 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (extendsidi2): Use correct mnemonic for cwtl opcode.
+
+Mon Feb  8 05:52:08 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (emit_push_insn): If REG is zero, don't set regs here.
+	* expr.h (MUST_PASS_IN_STACK_BAD_ALIGN): Deleted.
+	(MUST_PASS_IN_STACK): No problem anymore with nonaligned structs.
+	* calls.c: Allow passing nonaligned BLKmode structs in regs.
+	(struct arg_data): New fields aligned_regs and n_aligned_regs.
+	(expand_call): Set and use these fields when required.
+	(store_one_arg): Don't pass reg to emit_push_insn if we have
+	previously formed aligned registers.
+
+Sun Feb  7 23:34:16 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expmed.c (emit_store_flag): Add missing arg to convert_move.
+
+Sun Feb  7 16:13:05 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu.edu)
+
+	* calls.c (struct arg_data): New field MODE.
+	(expand_call, store_one_arg): Use it to ensure that all args get
+	promoted if requested, not just those passed in registers.
+
+Sun Feb  7 13:12:23 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-lex.c (yylex): At eof, if binding levels not popped,
+	imagine some close-braces to pop them.
+
+Sun Feb  7 10:54:42 1993  Chip Salzenberg  (chip@tct.com)
+
+	* fold-const.c (fold): Call force_fit_type with two parameters.
+
+	* fold-const.c (force_fit_type): Don't examine the tree until
+	it is known to an INTEGER_CST.  If it isn't, just return.
+
+Sat Feb  6 20:26:09 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* byteorder.h (386 htonl,htons): Avoid hard-coded register usage.
+
+Sat Feb  6 20:23:02 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/m68k/m68k.md (movqi): For special case of moving byte
+	to stack, push into low byte and then copy to high byte.
+	For case of moving to/from address reg, exchange it with d0.
+
+Fri Feb  5 19:58:26 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* stmt.c (expand_expr_stmt): Bypass fetching a volatile value
+	if it is VOIDmode.
+
+Fri Feb  5 18:27:27 1993  Jim Wilson  (wilson@geech.gnu.ai.mit.edu)
+
+	From Fred Fish (fnf@fishpond.cygnus.com)
+	* config.sub (i[34]86sol2):  New abbrev for i[34]86-unknown-solaris2.
+	* configure (i[34]86-*-solaris2):  New config for Solaris 2, x86.
+	* crtstuff.c (__do_global_ctors_aux):  Use FORCE_INIT_SECTION_ALIGN
+	to avoid Solaris 2, x86 linker bug.
+	* config/i386/{sol2-c1.asm, sol2-ci.asm, sol2-cn.asm}:  New runtime
+	support files for Solaris 2, x86.
+	* config/i386/{sol2.h, t-sol2}:  New config files for Solaris 2, x86.
+
+	* sparc.h (EXTRA_CONSTAINTS): Delete 'R' support.
+	(CONST_OK_FOR_LETTER_P): Correct 'K' comment.
+
+	* caller-save.c (CEIL): Delete.
+	(restore_referenced_regs): New var NUMREGS.  Pass NUMREGS to
+	insert_save_restore instead of using using CEIL.
+
+	* sched.c (true_dependence, anti_dependence, output_dependence):
+	Assume that MEM_IN_STRUCT_P QImode varying addresses can overlap a
+	non-MEM_IN_STRUCT_P fixed address.
+
+	* i960.c (legitimate_address_p): Accept either REG or SUBREG where
+	a register is valid in an address.
+
+	* configure (*-*-sco*): Set install_headers_dir to cpio instead of tar.
+
+	* cccp.c (finclude): Error if try to include a directory.
+	(S_ISDIR): Add a default definition.
+
+Fri Feb  5 10:24:35 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* toplev.c (lang_options): Remove `-fSOS' and `-fno-SOS'.
+
+	Wed Feb  3 16:34:58 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (init_decl_processing): Add __builtin_args_info.
+
+	Wed Feb  3 12:47:02 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-class.c (finish_struct_methods): Avoid creating a circularity
+	when putting ctors and dtors at the front of the list.
+
+	* cp-init.c (build_new): Call c_sizeof_nowarn, not c_sizeof.
+	(build_delete): Likewise.
+
+	Tue Feb  2 09:57:29 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-lex.c (yyprint): Make non-static.
+
+	Mon Feb  1 17:09:19 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-lex.c (real_yylex): Use pedwarn for exceeding the range of a
+	double.
+
+	Sat Jan 30 13:09:35 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-method.c (hack_identifier): Also check for VALUE being a
+	RESULT_DECL before looking for the DECL_REFERENCE_SLOT.
+
+	* cp-decl2.c (bad_specifiers): Pass OBJECT into error.
+
+	Fri Jan 29 11:46:46 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-class.c (alter_visibility): Forbid reducing the visibility of a
+	public member of the derived class.
+
+	* cp-typeck.c (comp_target_parms): Give a contravariance warning
+	with P2, not P1, since P1 is the established value, not the argument
+	that's coming in for a match.
+
+	* cp-decl.c (start_method): When printing out the class name for a
+	duplicate definition, be sure to avoid a null context with the
+	second definition.
+
+	Tue Jan 26 15:39:54 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-pt.c (lookup_template_class): Try to use the class value if
+	there's no global value.
+
+	Mon Jan 25 15:59:21 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-call.c (build_method_call): Remove TYPE_NEEDS_WRAPPER cruft.
+
+	Sat Jan 23 12:13:24 1993  Niklas Hallqvist  (niklas at della.appli.se)
+
+	* cp-class.c (finish_struct): See to that static members whose type
+	is the class they're declared in gets a correct mode.
+
+	Mon Jan 25 11:04:23 1993  Niklas Hallqvist  (niklas at della.appli.se)
+
+	* cp-decl.c (define_label): Don't report crossings of any internal
+	entity initializations.  Don't dereference NULL.
+
+	Wed May 13 21:44:05 1992  Niklas Hallqvist  (niklas@appli.se)
+
+	* cp-decl2.c: Support for NO_DOT_IN_LABEL.
+	* cp-tree.h: Likewise.
+	* cp-method.c: Likewise.
+
+	* cp-except.c: Support for no JOINER setups (i.e. NO_DOT_IN_LABEL)
+	* cp-lex.c: Likewise.
+	* cp-search.c: Likewise.
+
+	Fri Jan 22 08:52:58 1993  Niklas Hallqvist  (niklas at della.appli.se)
+
+	* cp-call.c (resolve_scope_to_name): Try to find nested types not
+	just in the current class and at global scope but at all
+	intermediate classes as well.
+
+	Mon Jan 25 11:04:23 1993  Niklas Hallqvist  (niklas at della.appli.se)
+
+	* cp-decl.c (xref_tag): Enable test of incomplete basetypes.
+	* cp-tree.c (layout_basetypes): Disabled it here.
+
+	Mon Jan 25 11:04:23 1993  Niklas Hallqvist  (niklas at della.appli.se)
+
+	* cp-init.c (build_new): Move error check of array size before use.
+
+	Sun Jan 24 21:41:09 1993  John Carr  (jfc@Athena.MIT.EDU)
+
+	* cp-typeck.c (build_binary_op_nodefault): Add support for
+	FLOOR_MOD_EXPR, merged in from the c front-end.
+
+Wed Feb  3 18:23:07 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-act.c (init_objc): Use xrealloc, not realloc.
+
+	* expr.c (emit_library_call, emit_library_call_value):
+	Handle STACK_BOUNDARY when using push insns.
+
+Tue Feb  2 16:37:49 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* varasm.c (assemble_zeros): Output nothing rather than empty skip.
+
+	* c-typeck.c (build_conditional_expr): Always convert and check
+	both result operands even if condition is constant.
+	(build_c_cast): Bypass default_conversion when casting to void.
+
+	* c-decl.c: Add some braces for clarity.
+
+	* configure (i[34]86-*-linux*): Set fixincludes to Makefile.in
+	Don't set tmake_file.
+	* Makefile.in (stmp-fixincludes): Don't run FIXINCLUDES
+	if it is Makefile.in.
+	* t-linux: File deleted.
+
+	* Makefile.in (install-headers-cpio): Delete spurious parens
+	from around the whole command.
+	(install-headers-tar): Delete parens around the "source" tar cmd.
+
+Tue Feb  2 15:20:52 1993  Chip Salzenberg  (chip@tct.com)
+
+	* c-decl.c (pushdecl): DECL_EXTERNAL implies TREE_PUBLIC,
+	so don't bother to check for both.
+
+	* regclass.c (int_reg_class_contents): Make unsigned to avoid
+	signed integer overflow.
+	(init_reg_sets): Avoid signed integer overflow.
+
+	* cexp.y (parse_escape):  Support \E and \e like cc1:
+	they mean \033, and they generate a warning if pedantic.
+
+Tue Feb  2 15:17:38 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* t-sol2 (INSTALL_TARGET): Delete.
+
+Tue Feb  2 14:18:59 1993  Brendan Kehoe  (brendan@cygnus.com)
+
+	* Makefile.in (gcc.o): Depend upon config.status, so any changes
+	in prefix will be communicated to the build process.
+	(cccp.o): Likewise.
+
+Tue Feb  2 07:09:36 1993  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pa.md (cmov): Use @ for output.
+
+Mon Feb  1 01:50:54 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* c-decl.c (finish_decl, grokdeclarator, finish_struct): Report
+	overflows in storage sizes.
+	(build_enumerator): Report overflows in enumerators.
+	* fold-const.c (same_sign): Remove.
+	(lshift_double): Don't report arithmetic overflow, since the
+	C standard doesn't seem to require it here.
+	(force_fit_type): Accept new parameter specifying whether a signed
+	overflow has already occurred.  Yield overflow indication.
+	All callers changed.
+	(neg_double): Don't report overflow when -0 yields 0.
+	(const_binop): Propagate operand overflow for warnings.
+	Don't report overflow when -1 + 1 yields 0.
+
+	* c-parse.in (unary_expr): Warn about overflows in parser-built
+	unary expressions.
+	* c-typeck.c (parser_build_binary_op): Warn about overflows and
+	conversions of out-of-range constants in parser-built binary
+	expressions.
+	(build_conditional_expr): Check conversions in if-then-else
+	expressions.
+	(build_c_cast): Ignore any integer overflow caused by a cast.
+	(convert_for_assignment): Warn if source had overflow in folding.
+	(process_init_constructor): Report overflows in array initializer
+	indexes.
+	* c-common.c (constant_expression_warning): Suppress duplicate
+	warnings.
+	(convert_and_check, overflow_warning, unsigned_conversion_warning):
+	New functions.  Prototypes added to c-tree.h.
+
+	* expr.c (expand_builtin): Report overflow if __builtin_args_info
+	arg exceeds one word.
+	Fix punctuation of error messages.
+
+Sun Jan 31 17:45:11 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (simplify_and_const_int): Never consider bits outside
+	of MODE.
+
+Sun Jan 31 15:24:46 1993  Doug Evans  (dje@wookumz.gnu.ai.mit.edu)
+
+	* objc-act.c (build_module_descriptor): Fix call to start_function.
+
+Sun Jan 31 13:08:05 1993  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pa.md (zvdep32): Handle 5 bit immediates for operand 1.
+	(ashlsi3): Likewise.
+	(and + ashift): New combine pattern.
+
+Sun Jan 31 12:40:00 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* protoize.c: Include gvarargs.h before system headers.
+
+Sat Jan 30 18:51:46 1993  Doug Evans  (dje@wookumz.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_compound_expr): insert missing return
+
+Sat Jan 30 16:10:56 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.c (reg_or_0_operand): Use CONST0_RTX instead of 
+	const0_rtx.
+	(reg_or_0_or_nonsymb_mem_operand): New function.
+	(emit_move_sequence): Copying CONST0_RTX into any
+	register can be done directly.  Use CONST0_RTX instead
+	of const0_rtx.
+	(output_fp_move_double): Handle copying a CONST0_RTX
+	into FP or integer registers.
+	(print_operand): Handle "%r0" for DFmode and SFmode
+	values too.
+
+	* pa.h (CONST_DOUBLE_OK_FOR_LETTER_P): Generalize.
+	(LEGITIMATE_CONSTANT_P): Allow 0.0.
+	(CONST_COSTS, case CONST_DOUBLE): fp0.0 is free when
+	not used in a SET expression.  
+
+	* pa.md (cmpXf expands): Allow 0.0 for either operand
+	of the comparison.
+	(cmpXf insns): Allow 0.0 for either operand of the
+	comparison.  Update output template to handle 0.0 as one
+	of the operands.
+	(movsi insn, fp->fp case): Update constraints and template to
+	allow store of zero into an FP register.
+	(movhi insn, fp->fp case): Likewise.
+	(movqi insn, fp->fp case): Likewise.
+	(movdi insn, fp->fp case): Likewise.
+	(movDF const_double pattern): Do not apply this pattern
+	if the const_double is zero.
+	(movdf insn, fp->fp and gr->gr cases): Update constraints
+	and output template to allow store of zero into a FP or GR.
+	Update condition string to allow zero as operand 1.
+	(movsf insn, fp->fp and gr->gr cases): Likewise.  Also allow
+	store of zero into a memory location.
+
+Sat Jan 30 14:57:44 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-tree.h: Add many prototypes from bill@cygnus.com
+
+Sat Jan 30 01:06:52 1993  Niklas Hallqvist  (niklas@spiff.gnu.ai.mit.edu)
+
+	* c-common.c (c_build_type_variant): Moved here from c-decl.c.
+	Redirected the TYPE_MAIN_VARIANT to the "real" main variant.
+	Build the possibly new array type on the permanent obstack if
+	the original type was permanent.
+	(permanent_obstack): Added extern declaration.
+	* c-decl.c (c_build_type_variant): Moved to c-common.c.
+
+Fri Jan 29 18:16:47 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/m68k/m68k.md (iorsi3): Add CC_STATUS_INIT if use bset.
+
+	* fold-const.c (force_fit_type): Abort if T not INTEGER_CST.
+	* tree.c (size_in_bytes): Only call force_fit_type for an INTEGER_CST.
+
+	* config/i386/t-linux (FIXINCLUDES): New file.
+	* configure (i[34]86-*-linux*): Use t-linux.
+
+Fri Jan 29 12:08:04 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* reload.c (find_reloads_toplev):  When handling a (subreg (reg))
+	where (reg) will be replaced by a memory reference, if the memory
+	address is invalid for the mode of the subreg, then search the 
+	memory address for reloads.
+
+	* pa.h (FIXED_REGISTERS): %r31 is not fixed.
+
+Thu Jan 28 23:49:25 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reg-stack.c (compare_for_stack_reg): Properly swap operands of a
+	COMPARE.
+
+Thu Jan 28 13:47:53 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.md (iorsi3): Split into two patterns, a named "iorsi3" which
+	only accepts registers, and a combiner pattern which accepts a
+	restricted set of constant integers for one term.
+	* pa.c (ior_operand): Do not accept registers.
+
+	* pa.h (LEGITIMIZE_ADDRESS): Delete cases which can never happen.
+
+	* pa.h (CPP_SPEC for OLD_CC): Delete.
+	(CC1_SPEC for OLD_CC): Likewise.
+	(MODES_TIEABLE_P): Simplify.
+	(ASM_OUTPUT_ADDR_VEC_ELT): Fix comment.
+	(leaf_function): Delete unused variable.
+	(HARD_REGNO_MODE_OK): Delete old useless version.
+	(FIRST_PARM_OFFSET): Likewise.
+	(FIRST_PARM_CALLER_OFFSET): Likewise.
+	(EXPAND_BUILTIN_SAVEREGS): Likewise.
+	(ASM_OUTPUT_REG_PUSH): Likewise.
+	(ASM_OUTPUT_REG_POP): Likewise
+
+Thu Jan 28 07:51:47 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '/'.
+	* config/m68k/m68k.c (print_operand): Print %/ as REGISTER_PREFIX.
+	* longlong.h (umul_ppmm for 68000): Use %/ before all register
+	names.
+
+	* configure (install_headers_dir): New variable for each
+	configuration, used to set INSTALL_HEADERS_DIR in Makefile.
+	(*-*-sysv4*, *-*-sysv*): Set install_headers_dir to
+	install-headers-cpio.
+
+Thu Jan 28 07:30:25 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* a29k.md: Remove 29050-specific variants of patterns generating
+	loadm that have earlyclobber.  This was put in for some very old
+	version of the '050, which isn't used anymore, that had a bug.
+
+Thu Jan 28 06:56:04 1993  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* vmsconfig.com: change instances of [.config] to [.config.vax].
+	* make-cc1.com, make-cccp.com, make-l2.com: change /include and -I
+	values from [.config] to [.config.] (this trailing period works with
+	GNU C's preprocessor but not with VAX C's).
+
+Thu Jan 28 06:48:57 1993  Michael Collison  (collison@osf.org)
+
+	* optabs.c (init_fixtab, init_optabs): Fix typos in QFmode and HFmode
+	initialization.
+
+Wed Jan 27 13:11:26 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (includedir): Use local_prefix.
+
+Wed Jan 27 12:08:05 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.c (check_fp_mov): Delete unused function
+	(register_or_short_operand): Likewise.
+	(eq_or_neq): Likewise.
+	(gen_compare_reg): Likewise.
+	(reverse_relop): Likewise.
+	(frame_base)name): Delete unused variable.
+
+	* pa-ghpux.h (HAVE_ATEXIT): Delete.  This is defined in pa.h
+	* pa-gux7.h (HAVE_ATEXIT): Likewise.
+	* pa-hpux.h (HAVE_ATEXIT): Likewise.
+	* pa-hpux7.h (HAVE_ATEXIT): Likewise.
+
+Wed Jan 27 06:46:50 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_relation_operation): We can compute the result
+	of a comparison of CONST_INTs no matter what mode the computation
+	is to be done in.
+
+	* expmed.c (emit_store_flag): Swap operands if first is a
+	constant and second is not.
+	Abort if compare_from_rtx didn't return an rtx with the code we
+	expect.
+	* expr.c (compare_from_rtx): Only swap operand if first is a
+	constant and second is not.
+
+	* c-common (declare_function_name): If char_array_type_node isn't
+	large enough for the name, make a larger type.
+	* c-decl.c (init_decl_processing): Make the arrays 200 long instead
+	of 10 to leave more room for most names.
+
+	* function.c (put_var_into_stack, fixup_var_refs_insns): Minor
+	cleanups.
+	(fixup_var_refs_1, case SET): Correctly check for simple insns
+	that don't need fixups.
+
+	* collect2.c: Delete ISCOFF macro which was in #ifdef _AIX.
+	* rs6000.h, a29k/unix.h (MY_ISCOFF): New macro.
+
+Tue Jan 26 19:31:31 1993  Tom Wood  (Tom_Wood@NeXT.com)
+
+	* combine.c (combine_instructions): Initialize undobuf in the
+	event `gen_rtx_combine' is called before `try_combine'.
+
+Tue Jan 26 18:20:04 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* i960.md (umulsidi3+1): Add variant which accepts constants.
+
+	* fixinc.svr4: Change all uses of EX to SED.
+	* fixincludes (sys/types.h): Don't match on ssize_t.
+	(stdio.h): Change _VA_LIST_ to __gnuc_va_list for 386BSD.
+
+Tue Jan 26 13:46:04 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* xm-alpha.h (ONLY_INT_FIELDS): Define if not __GNUC__.
+
+	* collect2.c (write_list_with_asm): Use `__asm__' instead of
+	`asm', to avoid problems with `-fno-asm'.
+
+	* Makefile.in (insn-*.[ch], protoize.o, unprotoize.o, install): When
+	using a trailing semicolon to force a rule to not do anything,
+	explicitly run the command `true', to avoid warnings or other
+	problems with versions of make which don't like null commands.
+
+Tue Jan 26 07:14:29 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_binary_operation, case SMAX): Correctly
+	compute largest possible signed integer.
+
+	* Makefile.in: (rest.cross, gfloat.h, stmp-headers, mostlyclean):
+	Build and install gfloat.h instead of float.h.
+
+	* a29k/x-unix (CLIB): Add -lld.
+
+	* integrate.c (copy_rtx_and_substitute, case REG): Call
+	gen_lowpart instead of making an explicit SUBREG.
+	
+	* stmt.c (expand_value_return): Call convert_move instead of the
+	erroneous convert_to_mode.
+
+Tue Jan 26 00:58:53 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* collect2.c (find_a_file): First `access' test was backwards.
+	(main): Set full_real_ld_suffix right.
+
+	* c-decl.c (init_decl_processing): Use 10 as size
+	of ..._array_type_node.
+
+	* cccp.c (handle_directive): Init already_output
+	after old_linenum label.
+	(finclude): Remove final backslash-newline *before* trigraph_pcp.
+	(write_output): Free line_command at end.
+
+Mon Jan 25 19:31:32 1993  Doug Evans  (dje@wookumz.gnu.ai.mit.edu)
+
+	* print-rtl.c (debug_rtx_list, debug_rtx_find): New functions.
+	* .gdbinit (prl): New command.
+
+Mon Jan 25 14:49:45 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.c (init_arg_profiler, output_arc_profiler): Delete unused
+	functions.
+	* sparc.h (ARC_PROFILER): Delete unused macro.
+
+	* sparc.c (sparc_builtin_saveregs): New function.
+	* sparc.h (CPP_SPEC): Delete __sparc_frw__ define.
+	(TARGET_FRW_COMPAT): New macro.
+	(TARGET_DEFAULTS): Comment out -mfrw option.  Add new commented
+	out option -mfrw-compat.
+	(EXPAND_BUILTIN_SAVEREGS): Call sparc_builtin_saveregs to emit rtl
+	inline instead of calling builtin_saveregs in libgcc.a.
+	* va-sparc.h (va_start): Rewrite to account for above changes.
+
+	* sparc.h (PRINT_OPERAND_PUNCT_VALID_P): Delete '@' case.
+	* sparc.c (print_operand): Likewise.
+	(output_fp_move_double): Delete FP_REG to GENERAL_REG and vice
+	versa copy support.
+	(output_fp_move_quad): Likewise.
+	* sparc.md (movsi, movtf, movdf, movdi, movsf): Delete f/r and r/f
+	constraint pairs.
+
+	* i960.c (secondary_reload_class): Correct test against
+	FIRST_PSEUDO_REGISTER.
+
+	* sparc.c (registers_ok_for_ldd_peep): Delete test for pseudos.
+
+	* optabs.c (emit_indirect_jump): Use Pmode instead of VOIDmode and
+	insn_operand_mode.
+
+	* calls.c (calls_alloca): Change name to calls_function.  Add new
+	parameter WHICH to control old or new behaviour.
+	(expand_call): When stack space is preallocated and parameters
+	must be passed on the stack, precompute parameters that involve
+	function calls.
+
+	* c-decl.c (language_string): Delete from here.
+	* c-parse.in (language_string): Define here for C and Obj-C.
+
+Mon Jan 25 13:54:16 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* c-decl.c (finish_struct): Disable "structure/union defined
+	inside parms" if compiling with -traditional.
+
+Mon Jan 25 05:24:12 1993  Niklas Hallqvist  (niklas at della.appli.se)
+
+	* i386.md (extendsidi2): Fix typo in regno.
+
+Mon Jan 25 00:07:18 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (lookup_label): Return 0 if not within a function.
+
+	* c-parse.in (unary_expr => ANDAND identifier):
+	Handle lookup_label returning 0.
+
+	* Makefile.in (install-float-h-cross):
+	Don't ignore error when running enquire.
+
+Sun Jan 24 22:41:00 1993  Michael Meissner  (meissner@osf.org)
+
+	* c-typeck.c (build_compound_expr): Move the code into
+	internal_build_compound_expr, and pass second argument TRUE
+	indicating that this is the first call.  For recursive calls, pass
+	FALSE.  Do not make 0 a non_lvalue constant if this is the first
+	call, to allow return 0; from a pointer returning function to not
+	get a warning.
+
+Sun Jan 24 18:40:44 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/vax/vax.md (move/push address patterns):
+	Don't use alternative number to distinguish pushes from moves.
+	Use just one alternative `g' in output constraint.
+
+Sun Jan 24 07:19:03 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* final.c (final_scan_insn): Call alter_subreg on duplicate
+	operands (in case we need to split the insn).
+
+	* local-alloc.c (CLASS_LIKELY_SPILLED_P): Add default definition.
+	(alloc_qty_for_scratch, local_alloc): Use CLASS_LIKELY_SPILLED_P.
+
+Sat Jan 23 19:41:21 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* combine.c (apply_distributive_law): Don't mess with float arith.
+
+	* c-parse.in: Use new name objc-act.h.
+
+Sat Jan 21 13:12:49 1993  Serge Adda  (adda@soft01)
+
+	* expmed.c (emit_store_flag): Reset ICODE using returned COMPARISON.
+
+Sat Jan 23 18:27:35 1993  Niklas Hallqvist  (niklas@spiff.gnu.ai.mit.edu)
+
+	* config/m68k/tower.h (LIB_SPEC): Use %s instead of absolute path.
+	(STARTFILE_SPEC): Moved here from tower-as.h.  Use %s instead of
+	absolute path.
+	* config/m68k/tower-as.h (STARTFILE_SPEC): Moved to tower.h.
+
+Sat Jan 23 16:28:48 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (change_newlines): Renamed from delete_newlines.
+	Insert a space in place of a newline.  Caller changed.
+
+	* config/m68k/hp320.h (ASM_OUTPUT_DOUBLE_OPERAND): Delete space
+	before arglist.
+
+Sat Jan 23 09:20:41 1993  Niklas Hallqvist  (niklas at della.appli.se)
+
+	* Makefile.in (cross-test): Depend on GCC_PARTS.
+
+Sat Jan 23 07:15:10 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload): After calling count_possible_groups, see
+	if we have to proceed with allocating a group.
+	(count_possible_groups): Use HARD_REG_SET, not a char array, for
+	consistency.
+
+	* rs6000.h (ADJUST_COST): Add new definition.
+
+Fri Jan 22 18:55:00 1993  Niklas Hallqvist  (niklas at della.appli.se)
+
+	* fixinc.svr4: Use pwd if PWDCMD is undefined.  Add missing echo
+	command.
+
+Fri Jan 22 18:08:47 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Cygnus<-->FSF merge.
+
+	Thu Jan 21 15:26:59 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* Makefile.in (convert.o): Add dependencies.
+
+	* cp-gc.c (NULL): Undef before defining.
+	* cp-init.c (NULL): Likewise.
+	* cp-expr.c (NULL): Likewise.
+
+	* cp-decl.c (grokdeclarator): Relegate error about operator= to a
+	warning for now, an error later.
+
+	Tue Jan 19 16:40:19 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-type2.c (my_friendly_assert):  Don't set errorcount or
+	sorrycount to zero, as we no longer say "please fix above errors".
+
+	Mon Jan 18 19:44:53 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-type2.c (my_friendly_abort): Exit quietly in cases of random
+	seg faults in the front-end in the presences of other errors.  This
+	makes the handling of these things more uniform.
+
+	Mon Jan 18 16:23:11 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-typeck.c (build_unary_op): Improve error message for
+	{pre,post}-{increment,decrement}.
+
+	Mon Jan 18 13:58:14 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-typeck.c (build_binary_op): Improve error message.
+
+	Fri Jan 15 17:53:33 1993  Mike Stump  (mrs@cygnus.com)
+
+	Fri Jan 15 00:35:22 1993  Niklas Hallqvist  (niklas at della.appli.se)
+
+	* cp-decl.c (start_function): Removed the comp_target_parms test
+	when checking for implementations of "C" linkage functions, allows
+	for more overloading of extern "C" functions.
+
+	Fri Jan 15 17:32:56 1993  Mike Stump  (mrs@cygnus.com)
+
+	Fri Jan 15 00:35:22 1993  Niklas Hallqvist  (niklas at della.appli.se)
+
+	* cp-decl.c (grokvardecl): Implement the "one definition rule".
+
+	Fri Jan 15 17:17:05 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-search.c (get_base_distance): Compute results from calls to
+	recursive_bounded_basetype_p into a temp variable, as otherwise we
+	can clobber rval with a zero.
+
+	Fri Jan 15 17:10:59 1993  Mike Stump  (mrs@cygnus.com)
+
+	Thu Jan 14 16:02:27 1993  Niklas Hallqvist  (niklas at della.appli.se)
+
+	* cp-decl.c (start_function): Don't try to match static member
+	functions with "C"-linkage declared global functions.
+
+	Thu Jan 14 17:58:15 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-method.c, cp-type2.c, cp-typeck.c:  Make sure the fourth
+	argument to build_overload_call is (struct candidate *)0 not just
+	a plain 0.
+
+	Thu Jan 14 17:15:40 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Don't warn on an initialized var
+	that's extern if it's a const.
+
+	Thu Jan 14 17:03:40 1993  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* cp-pt.c (coerce_template_parms): Add new parameter IN_DECL.
+	Update error messages to give location information of the _DECL
+	when an instantiation fails.
+	(lookup_template_class): Ditto.
+	(tsubst): Ditto.
+	All callers changed.
+	* cp-tree.h (lookup_template_class): Update prototype.
+	* cp-parse.y (template_type_name): Update calls to
+	lookup_template_class.
+
+	Thu Jan 14 02:09:17 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl2.c (grokfield): Arrange for the type to be set on class
+	typedefs, cures one type of internal compiler error 62.  Now calls
+	set_identifier_type_value just before pushdecl_class_level. 
+
+	Wed Jan 13 22:43:58 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-search.c (get_base_distance):  Allow checking of UNION_TYPEs,
+	as some of the init code calls us.
+
+	Wed Jan 13 21:12:22 1993  Mike Stump  (mrs@cygnus.com)
+
+	Mon Jan 11 20:11:17 1993  Niklas Hallqvist  (niklas at della.appli.se)
+
+	* cp-parse.y (implicitly_scoped_stmt, simple_stmt): New rules to
+	handle the changed semantics of selection & iteration statements
+	in ANSI C++ (check out 6.4-5 in the draft as opposed to the ARM).
+	(simple_if, stmt, compstmt): Changed to use the new rules.
+	(stmt_decl_msg): Removed this static (together with all its uses)
+	because it's now unnecessary.
+	(cond_stmt_keyword): New static string to use in the error message
+	of paren_expr_or_null.
+	(paren_expr_or_null): Use cond_stmt_keyword instead of stmt_decl_msg.
+
+	Tue Jan 12 18:53:44 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (lookup_name): If PREFER_TYPE is -2, don't call
+	lookup_nested_field.
+	* cp-spew.c (yylex) [IDENTIFIER case]: Call lookup_name with -2
+	instead of -1.
+
+	* cp-decl2.c (grokclassfn): If there's no IDENTIFIER_TYPE_VALUE (it
+	could have gotten blown away by poplevel_class), use ctype to build
+	the overload name.
+
+	* cp-call.c (convert_harshness): Avoid dereferencing a null PARM,
+	which can be passed in by convert_harshness itself.
+
+	Mon Jan 11 12:25:51 1993  Brendan Kehoe  (brendan@cygnus.com)
+
+	* cp-tree.h (VTABLE_NAME_P, VBASE_NAME_P): Reverse order, so they'll
+	go for [1..3], to avoid referencing beyond the bounds of a name.
+
+	* cp-xref.c (fctname): Delete extern decl of `declname'.
+
+	* cp-type2.c (build_scoped_ref): Pass the nodes themselves down into
+	error_not_base_type, not the strings, since it'll peel off the decl
+	name and type name of them itself.
+
+	* cp-class.c (build_vbase_path): flag_assume_nonnull_objects is an
+	int, not a tree.
+
+	* dbxout.c (dbxout_type_methods): Only emit warning about dbx info
+	for templates when WARN_TEMPLATE_DEBUGGING is set.  Only reference
+	the var WARN_TEMPLATE_DEBUGGING if we've got HAVE_TEMPLATES defined.
+	* cp-tree.h (HAVE_TEMPLATES): Define.
+	* cp-decl2.c (lang_decode_option): Set WARN_TEMPLATE_DEBUGGING when
+	given -Wall.
+	* flags.h (warn_template_debugging): Add extern decl.
+	* toplev.c (lang_options): Add -Wtemplate-debugging.
+
+	* cp-decl.c (make_temporary_for_reference): Call make_decl_rtl with
+	a NULL_PTR, not 0.
+	(finish_decl): Likewise.
+	(grokfndecl): With a NULL_PTR, not a NULL_TREE.
+
+	Fri Jan  8 19:43:52 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-search.c (get_binfo): Use obstack_ptr_grow instead of
+	obstack_int_grow, casting the int to a void*.  When retrieving it,
+	cast the result of dereferencing SEARCH_STACK->FIRST as an int.
+	(get_base_distance): Likewise.
+	(breadth_first_search): Likewise.
+
+Fri Jan 22 15:09:42 1993  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pyr.h (SIZE_TYPE): Define.
+	(NO_DOLLAR_IN_LABEL): Define.
+
+Fri Jan 22 12:19:47 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.c (secondary_reload_class): Simplify.
+
+Fri Jan 22 07:57:57 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu)
+
+	* collect2.c (our_file_name): New variable.
+	(find_a_file): Ignore filename equal to that in our_file_name.
+	(main): Initialize our_file_name.
+
+	* expr.c (emit_library_call): Correct mis-applied patch.
+
+Thu Jan 21 11:36:04 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (REG_CLASSES): Delete GENERAL_OR_FP_OR_SNAKE_FP register
+	class, it's not needed anymore.  Delete all references.  'Z'
+	register class is now "ALL_REGS".
+	* pa.c (emit_move_sequence): Handle secondary reloads for SAR.
+
+Tue Jan 19 20:08:01 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	From Torbjorn Granlund (tege@sics.se):
+	* i960.c (cmplpower2_operand): New function.
+	* i960.md (addsi3): Clean up condition for when to use subo.
+	(umulsidi3): New pattern.
+	(non-canonical nand, nor): Remove paterns.
+	(clrbit, notbit static bit): New patterns.
+	(setbit, clrbit, notbit dynamic bit): New patterns.
+	(setbit static bit non-canonical): Remove pattern.
+	(muldf3, mulsf3, multf3): Add % to operand1.
+	(test recognizers): Use TAB efter mnemonic.
+
+	* reorg.c (update_reg_dead_notes): New function.
+	(fill_simple_delay_slots): Call new function when moving
+	instruction forward into a delay slot.
+
+	* sched.c (sched_analyze_1, sched_analyze_2): Ifdef out code added
+	for handling psuedo register equivalents that was added Dec 31 1992.
+
+	From Steve Chamberlain (sac@cygnus.com):
+	* libgcc1.c (__eqdf2, __nedf2, __gtdf2, __gedf2, __ltdf2, __ledf2,
+	__eqsf2, __nesf2, __gtsf2, __gesf2, __ltsf2, __lesf2):  comparison
+	result type is now word_mode.
+	* libgcc2.c (cmpdi2, ucmpdi2): comparison result type is now
+	word_mode.
+	* optabs.c (emit_cmp_insn, emit_float_lib_cmp): libcall comparisons
+	return word_mode.
+
+Tue Jan 19 15:28:59 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* function.c (fixup_var_refs_1): Set INSN_CODE to -1 before seeing
+	if new insn form is recognized.
+
+	* reg-stack.c (all functions): Use NULL_RTX instead of 0 for rtx
+	comparisons.
+
+	(emit_pop_insn): Emit insn with mode QImode: insn contains
+	stack-regs.
+
+	(emit_hard_swap_insn): Delete.
+	(emit_swap_insn): Merge with emit_hard_swap_insn.
+	Delete WHEN arg and change all callers.
+	If previous insn was a push from REG, omit swap.
+	If previous insn wrote reg-stack top to REG, omit swap.
+	Emit swap insn with mode QImode: insn contains stack-regs.
+	Emit swap insn after previous float insn, instead of before this
+	one.
+
+	(swap_rtx_condition): New function.
+	(compare_for_stack_reg): If op 0 of COMPARE is not a stack reg,
+	exchange ops 0 and 1 and swap cc0 user condition.
+
+	* i386.h (PREFERRED_RELOAD_CLASS): Narrow ALL_REGS to
+	GENERAL_REGS.
+	(PREFERRED_OUTPUT_RELOAD_CLASS): New macro.  Narrow ALL_REGS to
+	GENERAL_REGS.
+	(SECONDARY_MEMORY_NEEDED): New macro.
+
+	* i386.md (cmpdf_cc,cmpsf_cc): Allow first operand to be a MEM.
+	Don't allow both operands to be MEM.
+	(float addM3,subM3,divM3,mulM3 recognizers): Don't allow either
+	operand to be a constant.
+
+	(all float patterns, FLOAT_EXTEND operands): Don't allow
+	GENERAL_REGS for float_extended operand.
+	(all float patterns, FLOAT operands): Change constraints to get
+	better register classification.
+	(fix_truncMN2 patterns): Likewise.
+	(floatMN2 patterns): Likewise.
+
+Tue Jan 19 15:51:16 1993  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pa.md (define_function_unit for memory): Memory is pipelined.
+
+	* pa.md (sCC patterns): Use %char notation instead of nested
+	if stmts.
+	(branch matchers): Likewise.
+	(incscc, negscc): Likewise.  Add ? constraint for 3-insn
+	alternative.
+	(incscc): Split into `incscc' and `decscc' to make this really
+	match.
+	(incscc/decscc special cases): New patterns using carry bit.
+	* pa.c (print_operand): Handle 'S' and 'B' for conditions.
+	Handle 'I' for printing 'i' when CONST_INT.
+	Handle 'k' for ones-complement of CONST_INT.
+	(incscc_operator): Remove.
+
+	* pa.md (many patterns): Use canonical address format.  Use %r
+	register notation.  Use GEN_INT.
+
+	* pa.md (main move SF recognizer): Allow 0 for copying to
+	general register.
+
+	* pa.md (zero_extendhisi2): Remove DEFINE_EXPAND.
+	(zero_extendqihi2): Likewise.
+	(zero_extendqisi2): Likewise.
+	(comment before sign extension): Remove the lie.
+
+	* pa.h (REG_CLASS_FROM_LETTER): Remove partly incorrect PA
+	documentation.
+
+Tue Jan 19 09:22:06 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fold-const.c (non_lvalue): Result must not be null ptr constant.
+	(omit_one_operand): Use non_lvalue.
+	(fold, case COMPOUND_EXPR): Use non_lvalue if value is 0.
+	* c-typeck.c (build_compound_expr): Use non_lvalue if value is 0.
+
+Tue Jan 19 08:29:16 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.c (print_operand, case 'k'): New case.
+	* rs6000.md (plus of gtu patterns): Add case to handle immediates.
+
+	* rs6000.c (output_epilog): Only restore the cr's that we actually
+	used; previously, we saved and restored all of them.
+
+	* combine.c (combine_instructions): Clear reg_last_set_label.
+
+Tue Jan 19 01:16:45 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* flow.c (find_basic_blocks): Don't mark labels in nonlocal_label_list
+	that were deleted due to having no references.
+
+Mon Jan 18 21:02:22 1993  H.J. Lu  (hlu@yardbird.eecs.wsu.edu)
+
+	* configure (--local-prefix=DIR): new flag sets $local_prefix.
+	The default is /usr/local.  Put it into Makefile.
+
+	* Makefile.in (local_prefix): new prefix, the default is /usr/local.
+	(cccp.o): change LOCAL_INCLUDE_DIR to $(local_prefix)/include.
+
+Mon Jan 18 15:29:46 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-act.c, objc-act.h: Renamed from objc-actions.*.
+	* objc-act.c: Include objc-act.h.
+	* Makefile.in: Targets and deps changed.
+
+	* objc-actions.c (encode_method_def): Null-terminate encoding.
+	(build_ivar_list_initializer): Null-terminate type encoding.
+
+	* cccp.c (include_defaults): Do use GCC_INCLUDE_DIR for cross compiler.
+	Move TOOL_INCLUDE_DIR later if cross.
+
+Mon Jan 18 13:39:32 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* expr.c (emit_library_call): Handle OUTGOING_REG_PARM_STACK_SPACE.
+	Use NULL_TREE instead of (tree) 0.
+
+	* expr.c (emit_move_insn, expand_expr): Fix typos in comments.
+
+	* cccp.c (initialize_builtins): Add uses of new macros
+	NO_BUILTIN_SIZE_TYPE and NO_BUILTIN_PTRDIFF_TYPE.
+
+	* i960.h (ROUND): Change macro name to ROUND_PARM.
+	* i960.c (i960_function_arg_advance, i960_function_arg): Likewise.
+
+	* stor-layout.c (make_signed_type): Consistently use
+	HOST_BITS_PER_WIDE_INT.  Correct minor formatting problems.
+	(fixup_signed_type): Use HOST_BITS_PER_WIDE_INT and HOST_WIDE_INT
+	like make_signed_type does.
+	(fixup_unsigned_type): Correct minor formatting problem.
+
+	* x-linus (LANGUAGES): Delete.
+
+Mon Jan 18 08:13:34 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* Makefile.in (stmp-headers): Delete target files before copying
+	to them.
+
+Mon Jan 18 06:23:35 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* collect2.c (choose_temp_base, main): Fix "off by one" errors in
+	sizes of allocated strings.
+
+Mon Jan 18 00:32:20 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (process_command): Fix typo in last change.
+
+Sun Jan 17 13:09:03 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (FP_REG_CLASS_P): New macro.
+	(REGISTER_MOVE_COST): Use FP_REG_CLASS_P to simplify.  Make moves
+	from SAR to expensive that they should never happen.
+
+Sun Jan 17 10:38:38 1993  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pa.c (emit_move_sequence): Fix spacing.
+	(compute_zdepi_operands): Fix header comment.
+	(many functions): Use %%r register syntax.  Use canonical (0,%rN)
+	address format.
+	(output_function_prologue): No need to test frame_pointer_needed
+	in else clause of `if (frame_pointer_needed)'.
+	(output_function_prologue): Test boolean merge_sp_adjust_with_store
+	for zeroness, not for equality with 1.
+	(fmpyaddoperands): Use new variable mode for mode of operands[0].
+	(fmpysuboperands): Likewise.
+
+Fri Jan 15 16:42:30 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (LEGITIMIZE_ADDRESS): Handle (plus (mult (X) (Y)) (Z))
+	when Y is 2, 4, or 8 specially.
+	* pa.c (shadd_constant_p): New function.
+
+	* integrate.c (FIXED_BASE_PLUS_P): Fix typo.
+
+	* loop.c (move_movables): Clear INSN_CODE for each insn as
+	we perform register replacements.
+	(strength_reduce): Likewise.
+
+Fri Jan 15 16:02:07 1993  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	* final.c (alter_cond): Undo previous change.
+
+Thu Jan 14 22:09:40 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (stmp-headers): Avoid problems with relative
+	$(srcdir) when installing syslimits.h.
+
+Thu Jan 14 19:20:01 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* c-decl.c (c_decode_option): Set WARN_UNINITIALIZED to 2 with
+	-Wall, being careful to preserve it if it's already set.
+	* cp-decl2.c (lang_decode_option): Likewise.
+	* toplev.c (main): Warn about using -Wuninitialized without -O.
+
+	* cccp.c (main): Trim down to the basename of what's to go in
+	PROGNAME.
+
+	* gcc.c (process_command): Only accept input files which exist and
+	can be read; prevent link phase if an input file was rejected.  Be
+	careful not to check for `-l' directives.
+	(error_count): Make into a static global variable.
+
+Thu Jan 14 18:19:35 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* t-mips, t-ultrix, t-osfrose: Change `config/' to `config/mips/'.
+
+Thu Jan 14 16:55:11 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (CONDITIONAL_REGISTER_USAGE): Do not make %r27 a global_reg.
+
+	* pa.c (output_function_prologue): Combine stack adjustment and
+	first GR save when reasonable to do so.
+	(output_function_epilogue): Combine stack adjustment and first
+	GR restore when reasonable to do so.  Avoid load/use stall for 
+	RP restore in common cases.
+
+	* pa.h (LEGITIMIZE_ADDRESS): Rework to create REG and REG+D 
+	addresses instead of REG+REG addresses.
+
+Thu Jan 14 15:45:50 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc/core.c (initialize_dispatch_tables): Create an entry in RECORD
+	for each class used in a given file, not just one.
+
+Thu Jan 14 12:00:35 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (INSTALL_HEADERS_DIR, FLOAT_H, CROSS_FLOAT_H): New
+	variables.
+	(INSTALLED_H): Removed.
+	(float.h): Copy from $(FLOAT_H).
+	(float.h-nat, float.h-cross): New targets.
+	(stmp-headers, stmp-fixincludes): New targets to build fixed
+	include files in build directory.
+	(all.cross, rest.encap): Depend on stmp-headers.
+	(clean): Remove the include directory and stmp-*.
+	(install-normal): Renamed from install-native.
+	(install-cross): Removed.
+	(INSTALL_TARGET): Changed to install-normal from install-native.
+	(install-headers): Install from build directory.
+	(install-include-dir, install-headers-tar,install-headers-cpio,
+	install-assert-h): New targets.
+	(install-float-h, install-limits-h, install-common-headers,
+	install-fixincludes): Removed.
+	* cross-make (INSTALL_TARGET): Don't override.
+	(FLOAT_H): New override, set to $(CROSS_FLOAT_H).
+
+Thu Jan 14 14:17:05 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* libgcc2.c: Correct typo in comment.
+
+	* fixinc.sco, fixinc.svr4 (egrep and sed loop): Don't print
+	messages about files that need no change.
+
+	* sparc.md (muldf+1, muldf+2):  Add patterns for fsmuld and fdmulq.
+
+	* sparc.c: Clarify numerous *_operand comments.
+	(SPARC_STACK_ALIGN): Delete.
+	(sparc_frw_output_function_epilogue): Delete unused variable
+	load_only_r15.
+	(sparc_frw_epilogue_delay_slots): Delete r15/fmask test.	
+	* sparc.md: Document sparclite integer multiply cycle times.
+	(movdf, !TARGET_FPU): Remove tests for floating point registers.
+	(divsi3, udivsi3): Correct length attribute.
+	(ffssi2): Define for sparclite.
+	* sparc.h (CPP_SPEC): Add -mfrw support.
+	(OVERRIDE_OPTIONS): Define.  Can't omit frame pointer or do pic
+	when profiling.
+	(REG_USED_SO_FAR): Delete.
+	(CONST_COSTS): Give SMALL_INT constants cost of 0.  Make UDIV,
+	DIV, MOD, UMOD more expensive.  Make FIX same cost as FLOAT.
+	(TARGET_FRW): Define.
+	(TARGET_DEFAULTS): Add -mfrw flag.
+	(INITIAL_FRAME_POINTER_OFFSET): Add -mfrw support.
+	(BASE_OUTGOING_VALUE_REG, BASE_INCOMING_ARG_REG): Likewise.
+	(FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
+	(DELAY_SLOTS_FOR_EPILOGUE, ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
+	(EXPAND_BUILTIN_SAVEREGS): Likewise.
+
+	* expr.c (do_tablejump): Pass 1 for unsigned flag to emit_cmp_insn.
+
+Thu Jan 14 14:43:15 1993  Torbjorn Granlund  (tege@sics.se)
+
+	* pa.c (move_operand): Allow all CONST_INTs that can be moved to
+	general registers with one insn.
+	* pa.c (pre_cint_operand): New predicate for predecrementing
+	ldwm/stwm insns.
+	* pa.c (zdepi_cint_p): New function.
+	* pa.c (depi_cint_operand): Remove.
+	* pa.c (and_mask_p): New name for consec_zeros_p.  All callers
+	changed.
+	* pa.c (srcsi_operand): Removed.
+	* pa.c: Use INT_14_BITS instead of synonym SMALL_INT.
+	* pa.c (emit_move_sequence): Clean up CONST_INT case.
+	* pa.c (compute_zdepi_operands): New name for
+	compute_xdepi_operands_from_integer.  Change second parm to return
+	plain integers, was RTXes.
+	* pa.c (print_operand): Handle 'Z' for 'zdepi' source used to move
+	CONST_INT.
+
+	* pa.h (CONST_OK_FOR_LETTER_P): Change meaning of 'K'.  Add new
+	alternative 'N'.  Use VAL_*_BITS_P macros when possible.
+	* pa.h (LEGITIMATE_CONSTANT_P) Fix comment.
+	* pa.h (FITS_14_BITS): Remove.
+	* pa.h (SMALL_INT): Remove.
+
+	* pa.md (move patterns): Reorganize pattern order.  Cleanup.  Merge
+	CONST_INT patterns into main patterns for SImode, HImode, QImode.
+	Add patterns to recognize predecrement cases in SImode, HImode, 
+	QImode.  Remove 'y' constraint from SImode recognizer.
+	(main HImode, QImode recognizers): Handle SAR move from greg.
+	Change constraints to match the SImode pattern.
+	* pa.md (cmov): Move near other conditional patterns.
+	* pa.md: Replace all occurences of srcsi_operand with move_operand.
+	Replace `ldo X(0),d' with `ldi X,d'.
+	* pa.md (rotlsi3): Remove SET_ATTRs.
+	* pa.md (rotrsi3): Likewise.
+
+Thu Jan 14 13:33:55 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* rtl.c (copy_rtx): A MEM with constant address is not sharable.
+	Undo Dec 27 change.
+
+Thu Jan 14 06:45:51 1993  James Van Artsdalen  (jrv@goldman.gnu.ai.mit.edu)
+
+	* i386.md (cmpstr patterns): Fix mode mismatch in SET.
+
+Wed Jan 13 16:05:07 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* configure: Precompute version in generated Makefile.
+
+	* Makefile.in: (CROSS_GCC_CFLAGS, CROSS_TOOLS, REAL_LD_NAME,
+	install-cross-tools): Removed.
+	* cross-make (CROSS_GCC_CFLAGS, CROSS_TOOLS): Removed.
+	(SYSTEM_HEADER_DIR): Set to $(tooldir)/include.
+	* gcc.c: Use TOOLDIR_BASE_PREFIX, not TOOLDIR_PREFIX.
+
+Wed Jan 13 12:04:21 1993  Michael Meissner  (meissner@osf.org)
+
+	* libgcc2.c (_ffsdi2): Use the correct names for structure
+	elements of type DIunion.  Return the correctly typed value.
+
+	* mips-tdump.c (print_file_desc): Correctly scale the rfd pointer.
+	Patch from ian@cygnus.com.
+
+Wed Jan 13 10:04:26 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (ASM_OUTPUT_INTERNAL_LABEL): Fix typo.
+
+Wed Jan 13 03:05:08 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixinc.svr4 (rpc/types.h): Change const extern to extern const.
+
+	* expr.c (expand_increment): Handle all preincrements by building
+	arithmetic and calling expand_assignment.
+
+	* stmt.c (expand_asm_operands): For clobbering memory,
+	generate (MEM (SCRATCH)) inside the CLOBBER.
+
+	* cccp.c (include_defaults):
+	Put GCC_INCLUDE_DIR just before the system dirs whose files are fixed.
+
+	* Makefile.in (risky-stage1, etc): Use $(GCC_PARTS) as what to mv.
+
+Tue Jan 12 23:24:30 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* stor-layout.c (variable_size): Change back to NULL_PTR.
+
+Tue Jan 12 18:59:01 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reload1.c (reload): Clear reload_in_progress even if reloading
+	fails.
+
+Tue Jan 12 18:32:01 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* calls.c (emit_call_1): Pass a NULL_RTX into emit_call_insn for
+	missing last arg.
+
+	* stor-layout.c (variable_size): Call expand_expr with a NULL_RTX,
+	not a NULL_PTR.
+
+	* integrate.c (const_equiv): Delete decl, since it's never defined.
+	(fold_out_const_cc0): Likewise.
+	* loop.c (delete_insn_forces): Likewise.
+	* final.c (alter_cond): Delete decl, since it's never defined.
+
+	* fold-const.c (fold): Only call force_fit_type with one arg.
+
+	* expr.c (group_insns): Make void, since it never returns an rtx.
+
+	* emit-rtl.c (emit_jump_insn_before): Call make_jump_insn_raw with
+	only one argument.
+	(emit_jump_insn_after): Likewise.
+	(emit_jump_insn): Likewise.
+
+	* dbxout.c (dbxout_type) [case FILE_TYPE, SET_TYPE]: Call with
+	missing third arg as 0.
+
+	* cse.c (fold_rtx): Call itself with missing arg INSN as NULL_RTX.
+
+Tue Jan 12 17:53:13 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	From Fred Fish:
+	* fixinc.svr4 (stat.h):  Don't depend upon specific formal
+	parameter names when locating static functions to convert
+	to prototype form.  Also be more selective about what
+	strings to prepend underbars to during renaming of formal
+	parameters and local variables in static functions.
+
+	* cccp.c (main): Set signal handler for SIGPIPE.
+	(pipe_closed): New function, to handle SIGPIPE.
+
+Tue Jan 12 17:48:13 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (compare_from_rtx): Allow simplify_relational_operation to
+	fail.
+
+Tue Jan 12 02:52:50 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* optabs.c (init_optabs): Use plain `ffs' for SImode ffs_optab libcall.
+
+	* Makefile.in (LIB2FUNCS): Add _ffsdi2.
+	* libgcc2.c (__ffsdi2): New function.
+
+	* c-decl.c (init_decl_processing): Declare ffs as builtin.
+
+	* fixincludes (egrep and sed loop): Don't print messages about
+	files that need no change.
+
+Mon Jan 11 17:22:16 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.c (eligible_for_epilogue_delay): Delete unused variable
+	`this_function_name'.
+	(output_fp_move_double): Delete unused var `addr'.
+	(output_fp_move_quad): Likewise.
+	(fregs_ever_live): Delete unused static var.
+	(output_function_epilogue): Delete `n_fregs' and `i'.
+	(sparc_frw_output_function_prologue): Delete `regno'.
+	(sparc_frw_output_function_epilogue): Delete `load_nop'.
+
+	* reload1.c (reload): Delete unused variable inc_groups.
+
+	* sparc.h (TARGET_SWITCHES): Add no-fpu and hard-float.
+	(CONDITIONAL_REGISTER_USAGE): Define for ! TARGET_FPU.
+	(BASE_RETURN_VALUE_REG): Use reg 8 when ! TARGET_FPU.
+	(BASE_OUTGOING_VALUE_REG): Use reg 24 when ! TARGET_FPU.
+	* sparc.md (*): Make all fp patterns conditional on TARGET_FPU.
+	(movtf, movdf, movsf): Add !TARGET_FPU versions.
+	(sfmode return): Add pattern for when !TARGET_FPU.
+	(movsi+2, movsf+1): Use %@ instead of %%fp.
+	(mulsidi3, umulsidi3): Rewrite, to avoid extending constants.
+
+	* fixincludes: Do not consider //* to be a C++ comment which needs
+	to be fixed.
+
+Mon Jan 11 15:03:41 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Fix typos.
+
+Mon Jan 11 12:41:06 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/xm-svr4.h (sys_siglist): New macro.
+
+Sun Jan 10 18:16:49 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (extendsidi2,zero_extendsidi2): New patterns.
+	(adddi3,subdi3): Don't emit code for low part if known to be zero.
+
+	* i386/xm-sysv4.h (alloca): Delete - already defined in xm-i386.h.
+
+	* i386/xm-aix.h,i386/xm-sun.h: Include i386/xm-i386.h.
+	Remove redundant defines.
+
+Sun Jan 10 18:00:17 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (GENERAL_OR_FP_OR_SNAKE_FP_REGS): New register class.
+	(LEGITIMIZE_ADDRESS): No longer show DP relocation.  Simplify.
+	* pa.md (reload_insi, reload_outsi): Use new "Z" constraint instead
+	of "z" constraint.
+	(load HIGH patterns): Rewrite to not show DP relocation.  
+	* pa.c (output_global_address): Handle (high (const (plus ...))).
+	(secondary_reload_class): If TARGET_KERNEL, then loading a 
+	symbolic address, or the high part of a symbolic address requires
+	%r1 as a secondary reload register.
+	(emit_move_sequence, SYMBOL_REF case): If TARGET_KERNEL, then handle 
+	secondary reload created for a symbolic (high (const (plus ...))).  
+	No longer show DP relocation; read_only and normal operands emit the
+	same RTL now.  
+	Emit the same RTL before and after reload, only change how the 
+	scratch/temporary register is chosen.
+
+Sun Jan 10 11:42:12 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (make_extraction): Don't use POS < 0 as a flag
+	that POS_RTX is to be used; instead use POS_RTX unless it is
+	nonzero.  If POS_RTX is a constant, set POS and clear POS_RTX.
+	(make_compound_operation, make_field_assignment): Pass 0 for POS
+	instead of -1 when POS_RTX is nonzero.
+
+Sat Jan  9 01:34:27 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload1.c (reload_as_needed): Test for whether to call
+	forget_old_reloads_1 for a REG_INC note was backwards.
+
+	* config/i386/xm-i386.h (alloca): Undef before defining.
+
+	* config/i860/sysv3.h (ASM_OUTPUT_LOCAL): New override.
+
+	* gcc.c (lookup_compiler): Fix special code for `-' suffix.
+
+	* c-lex.c (yylex): Change warning msg when decimal const is unsigned.
+
+	* Makefile.in (bootstrap*): Pass BOOT_LDFLAGS down as LDFLAGS.
+
+	* Makefile.in (install-dir): Don't create gcc-lib/include.
+
+	* objc-actions.c (init_module_descriptor):
+	Use size_in_bytes to get size of `struct objc_module'.
+
+	* c-decl.c (init_decl_processing): Use unsigned_intQI_type_node,
+	not unsigned_char_..., as index type for ..._array_type_node.
+
+	* toplev.c (really_sorry): Use progname in error message, not c++.
+
+	* optabs.c (expand_binop): For complex mult, compute res
+	in each alternative, not before.
+
+	* Makefile.in (bootstrap): Pass along CC and libdir in first compile.
+
+	* c-decl.c (pushdecl): Avoid multiple extern decl mismatch warnings
+	when previous decl is built-in.
+
+	* cccp.c (macroexpand): Before concatenated empty rest arg,
+	do copy constant chars, but delete last run of nonwhitespace chars.
+	(rescan): Handle Newline-Hyphen in expand_to_temp_buffer
+	as well as when scanning a macro body.
+
+Sat Jan  9 09:11:25 1993  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* varasm.c (output_constant): Handle CHAR_TYPE and BOOLEAN_TYPE like
+	INTEGER_TYPE.
+
+Sat Jan  9 08:06:42 1993  Michael Meissner  (meissner@osf.org)
+
+	* cccp.c (main): If we are creating a new dependency file with -MD
+	or -MMD, use "w" fopen mode instead of "a".
+
+Fri Jan  8 20:58:12 1993  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	Cygnus<->FSF merge.
+	Thu Jan  7 18:16:05 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-parse.y (template_type): Avoid dereferencing an error_mark.
+
+	Wed Jan  6 17:43:23 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (init_decl_processing): Make flag_no_builtin avoid
+	definitions of builtin fns memcpy, memcmp, strcmp, strcpy, strlen,
+	sin, and cos.  (Add sin and cos.)
+	(flag_no_builtin): Add extern decl.
+
+	* cp-decl.c (current_local_enum): New variable.
+	(start_enum): Set TREE_ADDRESSABLE on the tag here, and clear
+	current_local_enum.
+	(build_enumerator): Build the field decl here, rather than in
+	grok_enum_decls; set its TREE_CHAIN to the current_local_enum.
+	(grok_enum_decls): Chain down, setting the type.
+
+	Tue Jan  5 22:09:18 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-pt.c (tsubst): Properly demangle a method's name if it's for an
+	operator.
+
+	Tue Jan  5 15:29:40 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-method.c (build_opfncall): Make postfix/prefix ++/-- work by
+	setting the second arg to 0 when using postfix ++/--.
+
+	* cp-decl.c (grokdeclarator): Forbid declaring operator= from being
+	declared as a non-member (or friend) function.
+
+	Tue Jan  5 14:26:38 1993  Mike Stump  (mrs@cygnus.com)
+
+	Jan  5 14:09:08 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* cp-lex.c ():  Propagate a change from c-lex.c.
+
+	Tue Jan  5 13:27:05 1993  Mike Stump  (mrs@cygnus.com)
+
+	Sep 14 17:48:27 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* cp-lex.c (real_yylex): For floats, use REAL_VALUES_LESS to
+	distinguish underflow from overflow.  Delete special case for 0.0.
+
+	Mon Jan  4 15:26:47 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-typeck.c (build_array_ref): Convert the index from a reference
+	before doing any appropriate type conversions.
+	 
+	Wed Dec 30 15:36:18 1992  Per Bothner  (bothner@cygnus.com)
+
+	* convert.c:  New file.  Contains the common utility routines
+	from c-convert.c and cp-cvt.c (such as convert_to_integer).
+	* convert.h:  New file: declarations exported from convert.c.
+	* c-convert.c, cp-cvt.c:  Correspondingly reduced.
+	* cp-cvt.c (cp_convert_to_pointer):  New function, with the
+	extra hair beyond that provided by the C convert_to_pointer.
+	* Makefile.in (OBJS):  Add convert.o.
+	* cp-typeck.c (build_binary_op), cp-tree.h:  Add extra convert_p
+	parameter, for consistency with the C version (so we can make
+	convert_to_integer independent of C or C++).
+	* cp-cvt.c, cp-decl.c, cp-decl2.c, cp-except.c, cp-init.c,
+	cp-typeck.c, cp-parse.y:  Fix calls to build_binary_op to pass
+	the new convert_p parameter (i.e. 1).
+
+	Fri Dec 18 19:19:28 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-method.c (build_overload_nested_name): Use DECL_NAME instead of
+	DECL_ASSEMBLER_NAME, since pushtag now mangles together
+	DECL_ASSEMBLER_NAME.  This will make us emit `Q21D1B', not `Q221D1B'.
+
+	* cp-decl2.c (grokclassfn): Try using the local value for a nested
+	type if the IDENTIFIER_TYPE_VALUE isn't there.
+
+	Wed Dec 16 18:18:43 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+        * cp-typeck.c (build_unary_op): Set TREE_CONSTANT on the address of
+        a function if it's static or external (i.e., staticp likes it).
+	 
+	Wed Dec 16 16:09:37 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (sigsegv, init_decl_processing): Give users the line
+	number and source filename on code that makes the back-end call
+	abort.
+
+	Tue Dec 15 16:50:45 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-tree.h (CLASSTYPE_NAMES): Deleted.
+
+	* cp-init.c (build_offset_ref): When getting ready to give an error
+	about something not being a member or operator, only call
+	operator_name_string when it is indeed an operator.
+
+	* cp-decl2.c (bad_specifiers): New function.
+	* cp-tree.h (bad_specifiers): Add prototype.
+	* cp-decl.c (grokdeclarator): Use it in places where we had
+	replicated code.
+
+	Tue Dec 15 04:05:54 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-lex.c (UNSET_RESERVED_WORD): Update from c-lex.c.
+
+	Tue Dec 15 01:21:44 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-lex.c (real_yylex): Convert invisible initialized char array
+	vars to string constants.
+
+	Mon Dec 14 11:38:10 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* Makefile.in: Fix a lot of dependencies on cp-lex.h and other
+	headers for cp-*.o targets.
+
+	* cp-search.c (get_first_matching_virtual): Use warning_with_decl,
+	not error_with_decl, inside code that's only ever reached with
+	-Woverloaded-virtual.
+
+	* cp-typeck.c (c_expand_return): When building the INIT_EXPR, clear
+	out the context if it's an ERROR_MARK so the back-end won't die later.
+
+	* cp-type2.c (my_friendly_abort): Don't say anything like "please
+	fix above errors", just exit quietly.
+
+	* cp-lex.h (enum rid): Reordered for improved speed in grokdeclarator
+	when it does its linear search.  RID_WCHAR is no longer in the
+	search path, since it's found by hand (as are RID_INT and RID_CHAR).
+	(RID_FIRST_MODIFIER): Start at RID_EXTERN now.
+
+	* cp-parse.y (overloaddef): Warn that using `overload' is an
+	anachronism.
+
+	Wed Dec  9 08:27:13 1992  Niklas Hallqvist  (niklas at della.appli.se)
+
+	* cp-decl.c (init_decl_processing): Make sure the "unknown type"
+	typedecl gets ignored by the debuginfo generators.
+
+	Sun Dec 13 02:38:43 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* cp-search.c (lookup_nested_field): Check for assignment to members
+	of an enclosing class only when looking at a member, not at other
+	things (like nested types).
+
+	* cp-pt.c (type_unification): Only check that ARGS is a TREE_LIST if
+	it's non-null. 
+
+	These four are from Niklas Hallqvist:
+
+	* cp-search.c (compute_visibility): Use the main variant when
+	testing if a member function belongs in the current class.
+
+	* cp-call.c (build_method_call): Don't look for constructors
+	called by initialization inside class methods in the classes'
+	bases (as opposed to inherited methods).
+
+	* cp-typeck.c (convert_for_initialization): In the case of
+	templates, make sure build_method_call knows which instantiation
+	of the class template we're initializing an object of.
+
+	* cp-decl.c (grokdeclarator): Instead of an assert, return a
+	NULL_TREE if the return_type's not return_ctor.
+
+	Sat Dec 12 23:52:25 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-dem.c (cplus_demangle): Recognize 'S' for signed char.
+	(do_cuv_prefix): Print out "signed" for it.
+
+	Fri Dec 11 19:36:36 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-cvt.c (convert_to_reference): Fix a typo about when to return
+	the result of a type conversion.
+
+	Tue Dec  8 20:05:25 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-cvt.c (convert_to_reference): If a conversion can be found via
+	a constructor, then use it.
+
+	Fri Dec  4 13:53:01 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-lex.c (init_lex): Delete inits for CARD_EXPR and SET_LE_EXPR,
+	since we never actually use them.
+
+	Thu Dec  3 19:20:14 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c: Include sys/types.h for systems that need things for
+	signal.h.
+
+	Wed Dec  2 15:51:34 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-call.c (build_method_call): Don't call abort for pure virtual
+	methods, instead, call the user-defined method.  Addresses of pure
+	virtual methods are probably still wrong.
+
+	Wed Dec  2 14:44:41 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-call.c (convert_harshness): If parm's null for a reference (as
+	can be passed in), return 0.
+
+	Tue Dec  1 18:05:20 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Make member initialization be a
+	warning, not an error.  Only issue it if not -pedantic, since
+	grokfield will issue an error when pedantic.  Only warn about
+	constant members being initialized if `-ansi' is being used.
+	(finish_decl): Only complain about uninitialized const's that aren't
+	members when acting -pedantic, since we'll have already issued the
+	error about initializing a field.
+
+	* cp-type2.c (build_functional_cast): Revert change of Nov 2,
+	concerning clearing the TREE_VALUE of a default parameter.
+
+	Tue Dec  1 11:09:50 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-call.c (build_method_call): When looking for a default arg
+	initialized by a ctor, be careful of a null ref w/ operand 1.
+
+	* cp-method.c (icat): Handle an argument of `1' first, since it's
+	the most common case. 
+
+	Tue Dec  1 02:36:28 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-search.c (get_first_matching_virtual): Only set the
+	DECL_CONTEXT if the new context is a an unambiguous parent of the
+	previous context.
+
+	Tue Dec  1 02:20:32 1992  Mike Stump  (mrs@cygnus.com)
+
+	Wed Nov 25 18:25:06 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* cp-decl.c (pushdecl): Clear DECL_CONTEXT for local declarations.
+
+	Mon Nov 30 15:36:43 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (finish_decl): Only complain about uninitialized consts
+	in the case where we haven't seen a previous decl/init of it.
+
+	Thu Nov 26 11:22:12 1992  Mike Stump  (mrs@cygnus.com)
+
+	* c++: Put a newline after for arg and before do, as ``for arg do''
+	is not accepted by all shells.
+
+	Mon Nov 23 13:21:43 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* c++ (-lm): Also recognize -lmath as a math library.
+
+	* c++ (first): Only shift if $first is no, on the chance we got no
+	arguments at all.  If we didn't get anything, say so (since -lg++
+	will fake out the gcc driver into thinking we want to do something).
+
+	* cp-parse.y (paren_expr_or_null): New rule to emit an error when an
+	empty condition is used when it shouldn't.
+	(simple_if, stmt): Use it for `if', `while', and `do'.
+
+	* cp-decl.c (start_decl): If grokdeclarator returns a
+	void_type_node, return a NULL_TREE.
+
+	* cp-typeck.c (build_modify_expr_1): When calling build_opfncall for
+	`operator=', use make_node to create a plain NOP_EXPR for it to use,
+	rather than trying to pass NOP_EXPR down hoping it gets there intact.
+	(build_modify_expr): Ditto.
+	* cp-method.c (build_opfncall): Use TREE_CODE on ARG3 for a
+	MODIFY_EXPR, since it'll be coming in properly as a tree now.
+
+	Sat Nov 21 02:33:28 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* cp-init.c (expand_default_init): Clear DECL_REGISTER if we're
+	going to call a ctor, otherwise we may end up generating bogus and
+	confusing error messages about taking the addr of something declared
+	to be `register'.
+
+	* cp-typeck.c (build_x_function_call): Recognize a ptr-to-method
+	that is being passed in as a function argument or as part of
+	a COMPONENT_REF.
+	(build_indirect_ref): If ERRORSTRING is NULL (it's passed in that
+	way in many places), then don't try to use it.
+
+	Sat Nov 21 01:49:34 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	Work towards 64-bit support, and still more housecleaning.
+
+	* cp-*.[cy]: For all functions and variables, pass/initialize/compare
+	NULL_TREE, not 0, where appropriate.  Cast comparisons against 0
+	with the proper pointer types, where appropriate.  Fix all passing
+	of NULLs where there should be NULL_TREEs.  Don't include
+	cp-class.h anywhere.  In many places, pass the missing fifth arg
+	to build_opfncall as NULL_TREE.
+	* cp-tree.h: Add decls with prototypes for prettymuch every function
+	in the C++ front-end.  Include cp-class.h here.
+	* cp-call.c: (build_function_call_maybe, unary_complex_lvalue,
+	convert_harshness): Don't declare.
+	(explained): Initialize to 0.
+	(build_field_call): Give build_opfncall its fifth arg (NULL_TREE).
+	(build_method_call, build_overload_call_real): Don't declare
+	rank_for_overload.
+	* cp-class.c (lookup_tag_current_binding_level,
+	do_inline_function_hair): Don't declare.
+	(get_vfield_name): Add prototype for static fn.
+	(leftmost_baseclasses): Disable, never used.
+	(constructor_name): Don't declare.
+	(finish_struct): Delete arg EMPTY, never used.  Change all callers.
+	Disable set of leftmost_baseclasses, since it's never used anywhere.
+	(pushclass): Don't declare declare_uninstantiated_type_level.
+	* cp-cvt.c (NULL): Undef first.
+	(build_up_references): Cast return of error_not_base_type to `tree'.
+	(convert_to_reference): Delete useless variable rval1.
+	(convert_to_integer): Don't declare build_binary_op_nodefault or
+	build_unary_op.
+	(build_type_conversion): Don't declare default_conversion.
+	* cp-decl.c (many extern funs): Don't declare.
+	(grokparms, lookup_name_current_level, lookup_nested_type,
+	redeclaration_error_message, parmlist_is_random,
+	grok_op_properties, expand_static_int, deactivate_exception_cleanups,
+	revert_static_member_fn): Declare static fns w/ prototypes.
+	(pushlevel): Cast passing of NEWLEVEL to an int.
+	(poplevel, poplevel_class, finish_method): Cast first two args of
+	GNU_xref_end_scope to HOST_WIDE_INT.
+	(duplicate_decls): Pass third arg to compexcepttypes (0).
+	(grokvardecl): Delete arg CTYPE, never used.  Change all callers.
+	Delete unused local var block_previously_created.
+	* cp-decl2.c (substitute_nice_name): Don't declare decl_as_string.
+	(grokclassfn): Delete unused local var name.
+	(check_classfn): Delete unused arg FLAGS.  Change all callers.
+	(grokfield): Pass digest_init only 3 args, not 6 (that's in the C
+	front end, dammit).
+	(coerce_new_type, coerce_delete_type): Delete first arg CTYPE, it's
+	never used.  Change all callers.
+	* cp-dem.c (cplus_demangle): Delete unused var non_empty.
+	(NULL): Undef first.
+	* cp-except.c: (call_to_unhandled_exception): Add decl of
+	combine_strings.
+	(init_exception_processing): Add decls of build_function_type and
+	define_function.
+	* cp-gc.c (define_function): Add extern decl.
+	* cp-init.c (is_aggr_typedef): Delete extern decl.  Add type for
+	argument OR_ELSE.
+	(build_new): Don't declare require_complete_type.
+	(build_vec_delete): Only pass 6 args, not 7.
+	* cp-lex.c (init_lex): Don't declare init_parse or
+	lang_printable_name.
+	(cons_up_default_function): Don't declare constructor_name.
+	(compiler_error): Declare args V and V2 to be HOST_WIDE_INT.
+	* cp-method.c (index, rindex): Don't declare.
+	* cp-parse.y (unary_expr): Cast first arg to build_x_unary_op to
+	be of enum tree_code type.  For every call to build_new, pass its
+	fourth arg as a comparison of $$ against NULL_TREE, instead of
+	just passing it in.
+	(combine_strings, truthvalue_conversion): Add extern decls.
+	(structsp): Pass lookup_name its missing second arg (0).
+	(component_decl): Pass 5, not 6, args to grokfield.
+	(ansi_except_stmts): Delete decls of ansi_expand_start_match and
+	cplus_exception_name.
+	* cp-pt.c (mangle_class_name_for_template): Delete decl of
+	type_as_string.
+	* cp-search.c (get_binfo): Declare third arg PROTECT as int.
+	(get_binfo2, get_binfo2_recursive): Make static.
+	(get_base_distance): Cast DEPTH and IS_PRIVATE to ints, not
+	HOST_WIDE_INTs.
+	(get_baselinks): Delete decl of hash_tree_cons.
+	* cp-spew.c (probe_obstack): Make static.  Compare NLEVELS != 0,
+	not > 0, since it's unsigned.
+	* cp-tree.c (list_hash_lookup_or_cons): Don't declare constructor_name.
+	* cp-type2.c (digest_init, incomplete_type_error,
+	readonly_warning_or_error, convert_for_initialization): Don't delete.
+	(error_with_aggr_type): Declare third arg ARG to be HOST_WIDE_INT.
+	(build_scoped_ref): Delete unused var orig_ref.
+	(build_x_arrow): Even worse, give build_opfncall its missing last
+	two arguments (as NULL_TREEs).
+	* cp-typeck.c (build_component_ref): Call build_indirect_ref with
+	its missing second arg (as a NULL).
+	(build_x_indirect_ref): Again, build_opfncall with its missing
+	last two args.
+	(build_x_function_call): Delete decl of build_overload_call_maybe.
+	(convert_for_assignment): Cast return of error_not_base_type to tree.
+	* cp-xref.c (getpwd): Declare as extern.
+	(Integer, String): Delete typedefs, rename all uses to their real
+	meanings (`int' and `char *').
+
+	Thu Nov 19 01:41:58 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-dem.c (do_builtin_type): Recognize `w', a wide character, since
+	it's now a type according to the ANSI X3J16 working paper; output
+	"wchar_t" for it.
+	(cplus_demangle): Accept `w' as an integral type.
+
+	* cp-lex.c (init_lex): Delete duplicate setting of `__pl'.
+
+	Wed Nov 18 21:29:14 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+ 	* cp-class.c (finish_struct): Re-enable code to cut down on the size
+	of symbol output, the positives outweigh the negatives.
+
+	Wed Nov 18 19:51:59 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-search.c (dfs_walk): Move setting of
+	vbase_decl_ptr_intermediate out of #ifdef code.
+
+	Wed Nov 18 18:49:13 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Make wording on error message
+	stronger.
+
+	Tue Nov 17 17:46:11 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* cp-search.c (CHECK_convert_pointer_to_single_level): Don't define.
+
+	Mon Oct  5 03:10:14 1992  Mark Eichin  (eichin at tweedledumber.cygnus.com)
+
+	* c++ (numargs): $# was used after set was called; instead, save
+	$# in $numargs and use that value instead.
+
+Fri Jan  8 18:11:55 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (rescan): Prevent token pasting before macro call.
+	(macroexpand): Prevent token pasting around an arg unless it's raw.
+
+	* c-lex.c (yylex): Don't allow @ in identifier outside of Objective C.
+
+Fri Jan  8 15:03:52 1993  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* pa.c (plus_xor_ior_operator): New predicate.
+
+Fri Jan  8 13:09:47 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (BYTE_LOADS_EXTEND, LOAD_EXTEND): New macros.
+	(subst, simplify_and_const_int, nonzero_bits, num_sign_bit_copies):
+	Use them.
+	(subst, case SET): Make a SIGN_EXTEND instead of paradoxical SUBREG
+	if BYTE_LOADS_SIGN_EXTEND; previously only made ZERO_EXTEND.
+
+	* function.c (assign_parm): Fix typo introduced by previous change.
+
+ 	* configure (486 targets): Set cpu_type to i386.
+
+Fri Jan  8 03:48:27 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386/perform.h: New file.  perform_* macros for i386.
+	* i386/386bsd.h,i386/osfrose.h,i386/mach.h (perform_*): Move
+	perform_* macros to new file.
+
+Thu Jan  7 19:03:56 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (target_switches): Add "-mtrailing-colon"
+	(ASM_OUTPUT_LABEL): If TARGET_TRAILING_COLON then emit
+	a colon after the label.
+	(ASM_OUTPUT_INTERNAL_LABEL): Likewise.
+	(ASM_OUTPUT_COMMON): Likewise.
+	(ASM_OUTPUT_LOCAL): Likewise.
+
+Thu Jan  7 18:21:52 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure: Now that all files moved, always include CPU_TYPE in
+	default file names; do not check both config and config/$cpu_type.
+	Fix a few missing directory names and remove a few redundant specs.
+
+	* config/vax, config/convex: New directories; all files moved.
+	* configure (vax-*, convex-*): Files now in subdirectories.
+
+Thu Jan  7 17:31:36 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* Makefile.in (specs): Use GCC_FOR_TARGET.
+
+        * Makefile.in (install-common): Install c++ and g++ only if cc1plus
+	built.
+
+	* fixincludes: fix the rename prototype on the rs6000 <stdio.h>,
+	which conflicted with c++ use of new
+
+	* c-decl.c (start_decl): Correct order of parameter declarations.
+
+Thu Jan  7 16:52:01 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/romp/x-romp (CC): Add -U__STDC__.
+
+Thu Jan  7 05:30:10 1993  Torbjorn Granlund  (tege@sics.se)
+
+	* libgcc2.c (__udiv_w_sdiv): Replace hard-coded constants 31 with
+	(SI_TYPE_SIZE - 1).
+
+	* pa.md: Add floating point ld/st indexed patterns.
+
+	* pa.md (reg 112:SI recognizers): Remove.
+	(main move:SI recognizer): Add alternative for greg -> reg 112.
+
+	* pa.md (floatsisf2 patterns): Put output template here, don't
+	call output_floatsiXf2.
+	(floatsidf2 patterns): Likewise.
+	* pa.c (output_floatsisf2, output_floatsidf2): Remove.
+
+	* pa.md (floatunssidf2, floatunssisf2): New patterns.
+	(floatdisf2, floatdidf2): New patterns.
+	(fix_truncsfdi2, fix_truncdfdi2): New patterns.
+	(rotrsi3, rotlsi3): New patterns.
+	(shd optimizers): 2 new patterns.
+
+	* pa.md (ashlsi3, ashrsi3, lshrsi3): Rewrite not to mention SAR.
+	(zvdep32, vextrs32): New named recognizers.
+	* pa.h (FIXED_REGISTERS): Make register 112 (SAR) not fixed.
+
+Thu Jan  7 00:38:02 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc/object.m (+ error:, - error:): Use _objc_error.
+
+	* reload1.c (reload) [SMALL_REGISTER_CLASSES]: When adding an extra
+	need if the insn uses the function value return register,
+	likewise add an extra single-reg need for each class in which
+	the insn needs a group.
+
+Wed Jan  6 20:38:20 1993  Brendan Kehoe  (brendan@cygnus.com)
+
+	* alpha.h (ASM_FILE_START): Change .verstamp ident for BL10.
+	* alpha.md (div/mod): Change calling sequence to agree with BL10.
+
+Wed Jan  6 19:54:05 1993  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* config/arm: New directory.
+	* configure (arm-*-*): Update location of tm_file.
+	* config/pyr: New directory.
+	* configure (pyramid-*-*): Set xmake_file.
+	Update location of tm_file.
+
+Wed Jan  6 19:03:18 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/sparc/sol2.h (CPP_SPEC, LIB_SPEC, LINK_SPEC):
+	Add -compat-bsd conditionals.
+
+	* cccp.c (main): Implement -iwithprefix.
+
+Wed Jan  6 18:13:13 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.c (print_operand): Always use "<>" instead of "!=".
+
+	* pa.h (target_switches): Add "-mdisable-fpregs" and 
+	"-mdisable-indexing.
+	(CONDITIONAL_REGISTER_USAGE): If TARGET_DISABLE_FPREGS, then mark
+	all FP registers as fixed.
+	* pa.md (indexed loads): Disable if TARGET_DISABLE_INDEXING.
+	(mulsi3, xmpyu): Disable xmpyu if TARGET_DISABLE_FPREGS.
+	* configure: Add hppa1.X-hp-utahmach target.
+	* pa-utahmach.h, pa1-utahmach.h: New files. 
+
+Wed Jan  6 11:20:59 1993  Michael Collison  (collison at osf.org)
+
+	* expr.c (convert_move): Support new modes QFmode and HFmode.
+
+	* optabs.c (init_optabs): Add optab entries for QFmode and HFmode.
+
+	* reload1.c (init_reload): Add entries in 'reload_in_optab'
+	for QFmode and HFmode.
+
+	* varasm.c (assemble_real): Use `ASM_OUTPUT_BYTE_FLOAT' and
+	`ASM_OUTPUT_SHORT_FLOAT' for QFmode and HFmode respectively.
+
+	* machmode.def: Added new modes QFmode and HFmode.
+
+Wed Jan  6 11:29:46 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.c (fmpyaddoperands, fmpysuboperands): Cleanups suggested by
+	Tege.
+	* pa.md (fmpyadd peepholes): Cleanups suggested by Tege.
+
+	* pa.md (movqi, movhi, movsi, movdi, movsf, movdf): Discourage
+	regclass from preferring anything which involves a FP<->GR copy.
+
+	* pa.md (millicode expands): Change operand 3 in the expand
+	pattern from a clobber of a match_scratch to a clobber of a
+	match_operand with a register predicate.  Make appropriate
+	change in the generated RTL.
+	(millicode insns): Clobber a match_operand with a register
+	predicate instead of a match_scratch expression.  
+	* pa.c (emit_hpdiv_const): Likewise.
+
+	* pa.md (movsi, movhi, movqi, movdi): Use reg_or_0_operand
+	consistently.
+
+Wed Jan  6 02:23:48 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cexp.y (yylex): Make tokstart an unsigned char *.
+
+Wed Jan  6 10:46:19 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+	* fixincludes (limits.h):  Add #ifndef/#endif around macros that
+	are supposed to be defined in float.h.
+
+	* fixincludes, fixinc.svr4, fixinc.sco: Don't "make LIB absolute"
+	if already absolute, to avoid problems with the automounter.
+
+Wed Jan  6 02:35:23 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* cccp.c (check_preconditions, do_error, do_warning, do_xifdef):
+	Don't use signed chars to index into arrays; they might be negative.
+
+Tue Jan  5 21:20:29 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386/386.h (DEBUG_PRINT_REG): Print regno along with printable
+	name.
+	(CONST_COSTS): Handle integer CONST_DOUBLE correctly.
+	(PREFERRED_RELOAD_CLASS): Allow integer CONST_DOUBLE into int
+	regs.
+
+	* config/fx80: New directory.
+	* configure (fx80): fx80 configuration files moved there.
+
+	* config/i960: New directory.
+	* configure (i960): i960 configuration files moved there.
+
+	* config/sparc: New directory.
+	* configure (sparc): sparc configuration files moved there.
+	* sparc/sol2.h: Renamed from spc-sol2.h.
+	* sparc/xm-sol2.h: Renamed from xm-spc-sol2.h.
+	* sparc/xm-sysv4.h: Renamed from xm-spcv4.h.
+	* sparc/sysv4.h: Renamed from sparcv4.h.
+	* sparc/x-sysv4: Renamed from x-sparcv4.
+	* sparc/*.h: Use new file names for included sparc files.
+
+	* config/i860: New directory.
+	* configure (i860): i860 configuration files moved there.
+	* i860/bsd.h: Renamed from i860b.h.
+	* i860/bsd-gas.h: Renamed from i860bg.h.
+	* i860/mach.h: Renamed from i860mach.h.
+	* i860/sysv3.h: Renamed from i860v3.h.
+	* i860/sysv4.h: Renamed from i860v4.h.
+	* i860/xm-sysv3.h: Renamed from xm-i86v3.h.
+	* i860/xm-sysv4.h: Renamed from xm-i86v4.h.
+	* i860/x-sysv3: Renamed from x-i860v3.
+	* i860/x-sysv4: Renamed from x-i860v4.
+	* i860/*.h: Use new file names for included i860 files.
+
+	* m68k/tti68k.h: Deleted.
+	* i386/x-xenix: Deleted.
+	* i860/i860g3.h: Deleted.
+
+Tue Jan  5 23:54:36 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* config/pa: New directory.
+	* config/pa/*.h: Handle PA configuration files in new
+	subdirectory.
+	* configure (pa): Likewise.
+
+Tue Jan  5 23:31:34 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* elxsi, gmicro, tahoe, we32k, spur: New subdirs; files moved.
+
+	* config/harris.h: Include tahoe.h from tahoe/ subdir.
+
+Tue Jan  5 21:45:56 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* fixincludes (Xmu.h): Add missing ${LIB}/.
+
+	* calls.c (expand_call): Pass NULL_RTX to INIT_CUMULATIVE_ARGS.
+	* function.c (assign_parms): Pass NULL_RTX to INIT_CUMULATIVE_*.
+	* expr.c (emit_library_call): Pass NULL_TREE to INIT_CUMULATIVE_ARGS.
+
+	* Makefile.in (install-dir): Only make includedir once.
+
+	* cccp.c (do_line): Add pedantic warnings for out of range line
+	numbers, and non-space characters after the filename.
+
+Tue Jan  5 15:09:29 1993  Michael Meissner  (meissner@osf.org)
+
+	* mips/bsd-4-gdb.h: Renamed from mips-gbsd.h.
+	* mips/bsd-4.h: Renamed from mips-bsd.h.
+	* mips/bsd-5-gdb.h: Renamed from mips-5gbsd.h.
+	* mips/bsd-5.h: Renamed from mips-5bsd.h.
+	* mips/dec-gosf1.h: Renamed from dec-gosf1.h.
+	* mips/dec-osf1.h: Renamed from dec-osf1.h.
+	* mips/iris3-gdb.h: Renamed from irisgdb.h.
+	* mips/iris3.h: Renamed from iris.h.
+	* mips/iris4-gdb.h: Renamed from iris4g.h.
+	* mips/iris4.h: Renamed from iris4.h.
+	* mips/mips-4-gdb.h: Renamed from mips-gdb.h.
+	* mips/mips-5-gdb.h: Renamed from mips-5gdb.h.
+	* mips/mips-5-gdb.h: Renamed from mips-g5.h.
+	* mips/mips-5.h: Renamed from mips-5.h.
+	* mips/mips.c: Renamed from mips.c.
+	* mips/mips.h: Renamed from mips.h.
+	* mips/mips.md: Renamed from mips.md.
+	* mips/news4-gdb.h: Renamed from mips-gnews.h.
+	* mips/news4.h: Renamed from mips-news.h.
+	* mips/news5-gdb.h: Renamed from mips-gn5.h.
+	* mips/news5.h: Renamed from mips-n5.h.
+	* mips/nws3250v4.h: Renamed from nws3250v4.h.
+	* mips/osfrose.h: Renamed from decrose.h.
+	* mips/svr3-4-gdb.h: Renamed from mips-gsysv.h.
+	* mips/svr3-4.h: Renamed from mips-sysv.h.
+	* mips/svr3-5-gdb.h: Renamed from mips-5gsysv.h.
+	* mips/svr3-5.h: Renamed from mips-5sysv.h.
+	* mips/svr4-4-gdb.h: Renamed from mips-gsvr4.h.
+	* mips/svr4-4.h: Renamed from mips-svr4.h.
+	* mips/svr4-5-gdb.h: Renamed from mips-5g4.h.
+	* mips/svr4-5.h: Renamed from mips-5svr4.h.
+	* mips/t-mips: Renamed from t-mips.
+	* mips/t-osfrose: Renamed from t-decrose.
+	* mips/t-ultrix: Renamed from t-decstatn.
+	* mips/ultrix-gdb.h: Renamed from decstabs.h.
+	* mips/ultrix.h: Renamed from decstatn.h.
+	* mips/x-dec-osf1: Renamed from x-dec-osf1.
+	* mips/x-mips: Renamed from x-mips.
+	* mips/x-nws3250v4: Renamed from x-nws3250v4.
+	* mips/x-osfrose: Renamed from x-decrose.
+	* mips/x-sysv: Renamed from x-mipsv.
+	* mips/x-ultrix: Renamed from x-decstatn.
+	* mips/xm-iris3.h: Renamed from xm-iris.h.
+	* mips/xm-iris4.h: Renamed from xm-irix4.h.
+	* mips/xm-mips.h: Renamed from xm-mips.h.
+	* mips/xm-news.h: Renamed from xm-mipsnews.h.
+	* mips/xm-sysv.h: Renamed from xm-umips.h.
+
+	* mips/* Modify include files as needed for the MIPS files being
+	in the config/mips subdirectory.
+
+	* halfpic.h, halfpic.c: Eliminate unknown symbol errors when
+	linking the gen* programs for {i386,dec} OSF/rose, by using BSS
+	variables instead of extern.
+
+Tue Jan  5 00:29:45 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (c_sizeof): Call force_fit_type only for INTEGER_CST.
+
+	* objc/core.c (_objc_alloc): Renamed from _alloc.
+	(_objc_dealloc, _objc_realloc, _objc_copy, _objc_error): Likewise.
+	* objc/objc.h: Decls renamed also.
+	* objc/objc-proto.h: Uses renamed also.
+
+	* config.sub ($os alternatives for sco and isc): 
+	Preserve the specified os version if any.
+	Each alternative handles both 386 and 486, preserving distinction.
+	($basic_machine alternatives for sco and isc): Deleted.
+	(i[34]86v32, i[34]86v, i[34]86v4):
+	Handle both cpus together, preserving distinction.
+
+Mon Jan  4 20:59:37 1993  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* config/ns32k: New directory.
+	* configure (ns32k): ns32k configuration files moved there.
+
+	* ns32k/*.h: Use new file names for included ns32k files.
+
+	* config/m68k: New directory.
+	* configure (m68k): m68k configuration files moved there.
+
+	* m68k/sgs.h: Renamed from m68ksgs.h.
+
+	* m68k/*.h: Use new file names for included m68k files.
+
+Mon Jan  4 18:06:31 1993  Michael Meissner  (meissner@osf.org)
+
+	* configure (i386-osfrose): Rename i386 OSF/rose files to
+	osfrose.h, t-osfrose.h, and x-osfrose.h.
+
+	* i386/osfrose.h: Renamed from i386/rose.h.
+	* i386/t-osfrose: Renamed from i386/t-rose.
+	* i386/x-osfrose: Renamed from i386/x-rose.
+
+Mon Jan  4 11:03:11 1993  Torbjorn Granlund  (tege@gnu.ai.mit.edu)
+
+	* Makefile.in (install-common-headers): Pipe grep output to /dev/null.
+
+Mon Jan  4 01:12:48 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* i386/bsd.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL):
+	Alternate definitions if NO_UNDERSCORES.
+
+	* c-parse.in (component_declarator):
+	Allow attribute after nameless field.
+
+	* fixincludes (making dirs and links): If we already made subdirs
+	for a dir foo and foo turns out to be a symlink outside /usr/include,
+	after we have made a dir for it in ./root/, make similar subdirs there.
+
+Sun Jan  3 07:28:32 1992  Karl Berry  (karl@red.cs.umb.edu)
+
+	* x-romp (CC): Add -w.
+
+Sun Jan  3 21:19:50 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (JUMP_TABLES_IN_TEXT_SECTION): Define.
+
+	* jump.c (jump_optimize, clause for `if (foo) b++'):
+	Do this regardless of BRANCH_COST if HAVE_incscc is defined.
+	* pa.md (scc insn): Name this pattern "scc".
+	(negscc, incscc, cmov): New patterns.
+	* pa.c (incscc_operator): New function.
+
+	* pa.h (actual_fsize, apparent_fsize): Delete unused variables.
+
+Sun Jan  3 20:37:55 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (main): Recognize and remove .cxx as filename suffix.
+
+Sun Jan  3 19:39:18 1993  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump Meissner version number to 34.
+
+	* mips.c (save_restore_insns): Don't give an error if saving an FP
+	register at stack offset 0, which occurs when the function is a
+	leaf function that uses lots of FP registers, and saves no GP
+	registers.
+
+Sun Jan  3 19:00:29 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (block_alloc): Generalize tying so we can tie
+	any operand with the output unless some operand must be in the
+	same register as the output, in which case only try tying that
+	operand.
+
+	* rtl.c (rtx_alloc): Clear common area of rtx in a portable manner.
+
+Sun Jan  3 13:57:33 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (CONST_COSTS): Make CONST_DOUBLES very expensive.
+	Give HIGH expressions a small cost with CONST, SYMBOL_REF,
+	and LABEL_REF being twice as expensive as HIGH.
+
+	* pa.md (fmpyadd peepholes): New peepholes to issue independent
+	floating point multiply and add instructions at the same time.
+	(fmpysub peepholes): Likewise for multiply and subtract instructions.
+	* pa.c (fmpyaddoperands): Verifys given registers are suitable for
+	use in fmpyadd instructions.
+	(fmpysuboperands): Likewise, but for fmpysub instructions.
+
+	Wed Oct 28 12:07:54 1992  Tim Moore  (moore at defmacro.cs.utah.edu)
+	* pa.md (call, call_value): If flag_pic, emit restore of PIC table
+	register.
+	(call_interal, call_value_internal): Name matching insns.
+	(movsi, movhi, movqi, movdi, movsf, movdf patterns): Don't
+	match memory to memory moves.
+
+	* pa.h (FIXED_REGISTERS, CALL_USED_REGISTERS): r3 isn't fixed!
+	(REG_ALLOC_ORDER): Move r3 up in the allocation order.
+	(HAVE_ATEXIT): Define.
+	(INITIAL_FRAME_POINTER_OFFSET): compute_frame_size ()
+	now does the whole calculation, including rounding.
+	(FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Don't pass leaf_function
+	to output_function_{prologue,epilogue}.
+	(DELAY_SLOTS_FOR_EPILOGUE): Call hppa_epilogue_delay_slots ().
+
+	* pa.c (hppa_save_pic_table_rtx): New variable.
+	(finalize_pic): Setup hppa_save_pic_table_rtx..
+	(apparent_fsize): Delete variable.
+	(compute_frame_size): Many changes. Return the total frame size,
+	including space for "magic" stuff at the top of the stack and any
+	rounding for the Snake.
+	(output_function_prologue): Don't take a leaf_function argument;
+	Decide that based on frame size and frame_pointer_needed.
+	Don't emit any frame diddling code if actual_fsize is 0.
+	(output_function_epilogue): Don't take leaf_function argument.
+	Don't do anything if no frame.
+	Keep stack pointer aligned to 64 bytes before loading from old
+	frame pointer.
+	(hppa_epilogue_delay_slots): Only if there is no frame will we
+	have an empty delay slot to fill.
+	(eligible_for_epilogue_delay): Don't check "leaf_function" anymore.
+
+Sun Jan  3 07:28:29 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* gcc.c (putenv_from_prefixes): Use PATH_SEPARATOR.
+	Properly use JUST_MACHINE_SUFFIX when desired; always make path
+	the same as find_a_file will use.
+
+Sat Jan  2 16:35:55 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config.sub: Translate sunos5 to solaris2, and solaris1 to sunos4.
+
+	* tree.c, tree.h (int_size_in_bytes): Change ret type back to int.
+
+	* calls.c (expand_call): Don't use int_size_in_bytes
+	for a variable-size object.
+
+Sat Jan  2 15:16:24 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* c-parse.in (label): Use expr_no_commas instead of expr for case
+	labels.
+
+Sat Jan  2 03:30:10 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (gcc.o): Define TOOLDIR_BASE_PREFIX.
+
+	* gcc.c (TOOLDIR_PREFIX): Define if not defined.
+	(tooldir_prefix, tooldir_base_prefix): New variables.
+	(main): Set tooldir_prefix.
+	Add it (plus `bin' or `lib') to search paths.
+
+	* cccp.c (default_include): Look directly in TOOL_INCLUDE_DIR.
+	* protoize.c (default_include): Likewise.
+
+	* collect2.c (main): Look for `real-ld' after `gld', before `ld'.
+	In debug printout, fix typo in prev change.
+
+Fri Jan 1 13:32:36 1992  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (cccp.o, protoize.o, unprotoize.o):
+	Define TOOL_INCLUDE_DIR as $(tooldir)/include.
+	(test-protoize-simple): Define TOOL_INCLUDE_DIR as 0.
+
+	* config/i386/linux.h (STARTFILE_SPEC): Removed -L"TOOLDIR"/lib.
+
+Fri Jan  1 06:26:11 1993  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* collect2.c: Look for tools using paths rather than a single prefix.
+	(struct prefix_list, struct path_prefix): New structures.
+	(cpath, path): New variables.
+	(find_a_file, add_prefix): New functions; simplified versions of
+	functions from gcc.c.
+	(prefix_from_env): New function.
+	(main): Get path to search for binaries from COMPILER_PATH
+	environment variable always set by gcc.c and from PATH.
+	Qualify names with target machine in cross-environment unless
+	using compiler directories.
+	Use find_a_file to find our binaries.
+	Remove use of single prefix.
+	If -debug, print strip_file_name.
+	(fork_execute): Print program we are trying to execute if -debug and
+	we can't find the file.
+	(scan_prog_file): Complain if can't find NM.
+	* Makefile.in (REAL_LD_NAME): New variable.
+	(collect2.o): Don't need STANDARD_STARTFILE_PREFIX, etc.
+	(install-cross-tools): Use REAL_LD_NAME instead of `ld' when linking
+	files from tooldir to libsubdir.
+
+Fri Jan  1 17:51:05 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* dbxout.c (dbxout_symbol, TYPE_DECL case): Don't output tag which
+	references incomplete type.
+
+	* fixincludes (sunwindow/{win_cursor.h,win_lock.h}): Change invalid
+	#ifdef identifier `ecd.cursor' to `ecd_cursor'.
+
+	* c-typeck.c (build_binary_op): Add 'right' and 'left' to shift
+	count warnings to distinguish them from each other.
+
+	* function.c (fixup_var_refs_insn):  Update last_parm_insn when
+	insns are output after it to fix it up.
+
+	* sdbout.c (plain_type_1): Distinguish some C integer types by name.
+
+	* Makefile.in (MAKEINFO): New variable, defined to `makeinfo'.
+
+	* rs6000.h (ASM_FILE_START): Switch to text section at end.
+	Output declaration for .mcount when profiling.
+
+Fri Jan  1 12:15:42 1993  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.md (movqi, movhi, movsi, movdi, movsf, movdf): Fix attributes
+	which involve fp<->gr copies to match current reality.
+	(indexed loads): These should have "load" attributes, not "move".
+
+	* pa.c (output_floatsisf, output_floatsidf): Abort if presented
+	with a general register.
+	* pa.md (movdf const_couble): Fix lengths.
+	(floatsisf patterns): Likewise.
+	(floatsidf patterns): Likewise.
+
+	* pa.h (REGISTER_MOVE_COST): Make moving between FP and non-FP 
+	registers more expensive.
+
+	* pa.h (TARGET_NO_BSS): Delete target switch.  Delete all references.
+
+Fri Jan  1 07:40:58 1993  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* config/m88k: New directory.
+	* configure (m88k*): Files are now in config/m88k.
+	* m88k/dgux.h, m88k/dolph.h, m88k/luna.h, m88k/sysv3.h,
+	m88k/sysv4.h, m88k/xm-sysv3.h: Include files in m88k.
+	* m88k/t-dgux, m88k/t-m88k, m88k/t-m88k, m88k/t-sysv4: Use
+	m88k/m88k-move.sh.
+
+Thu Dec 31 17:38:43 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (do_spec_1): Propagate failure from recursive calls.
+
+	* i386/386bsd.h (perform_*): Rename macro args to arg0, arg1.
+
+Thu Dec 31 15:42:35 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sched.c (sched_analyze_1, sched_analyze_2): If before reloading,
+	record dependences that may be introduced by reload substituting
+	equivalents for pseudo registers.
+
+	* sched.c (sched_analyze_2): Use REG_NOTE_KIND not GET_MODE in
+	add_dependence call.
+	(sched_analyze_insn): Likewise.
+
+	* sparc.h (LIB_SPEC): When -a, include bb_link.o.
+
+	* t-sol2 (gmon.o, crt*.o): Change config to $(srcdir)/config.
+
+	* reload.c (operands_match_p): For WORDS_BIG_ENDIAN machines,
+	make multiple register operands equivalent if the last register of
+	the groups are the same.
+	(subst_reloads): Use gen_lowpart_common to change mode of
+	reloadreg.
+	* reload1.c (emit_reload_insns): Likewise.
+
+	* reload1.c (gen_input_reload):  Also handle PLUS of a MEM and
+	CONSTANT specially.
+
+	* i960.h (CPP_SPEC, CC1_SPEC, ASM_SPEC, LINK_SPEC,
+	TARGET_SWITCHES): Delete support for non-existent CPU variations.
+	(ASM_SPEC, LINK_SPEC, TARGET_SWITCHES): Add support for -mlink-relax.
+	(SELECT_CC_MODE): Correct typo.
+
+	* sparc.c (print_operand): For invalid operands, call
+	output_operand_lossage instead of aborting.
+
+	* i960.md (call_internal, call_value_internal): Use 'l' for
+	match_scratch constraint not 'd'.
+
+	* function.c (assign_parms): Emit conversions into a sequence, and
+	then output the sequence after all parameters have been moved.
+
+	* optabs.c (expand_binop): Correct indentation of doubleword
+	multiply picture.
+
+	* sparc.h (TARGET_SWITCHES): Have -msparclite also clear TARGET_FPU.
+
+	* va-i960.h: Define away __extension__ if compiled by GCC v1.
+
+	* libgcc2.c (L_builtin_new): Change to L_op_new.  Use new style
+	definition for __builtin_new.
+	(L_caps_New): Change to L_new_handler.  Delete unused function
+	builtin_vec_new.
+	(L_builtin_del): Change to L_op_delete.  Delete vfp declaration.
+	Use new style definition for __builtin_delete.  Delete unused
+	function __builtin_vec_delete.
+	* Makefile.in (LIB2FUNCS): Change _builtin_new to _op_new.  Change
+	_caps_New to _new_handler.  Change _buildin_del to _op_delete.
+
+	* m68k.h (TARGET_SWITCHES): -m68030 does not imply -m68881.
+
+	* gcc.c (input_from_pipe): New variable.
+	(do_spec): Set/clear input_from_pipe as appropriate.  Translate %|
+	to "-" if input_from_pipe is true.
+	* sparc.h (ASM_SPEC): Use %|.
+
+	* m68k.c (strict_low_part_peephole_ok): New function.
+	* m68k.md: Add peephole to eliminate unecessary clear instructions
+	in strict_low_part insn sequences.
+
+	* configure (elxsi): Move it out of the middle of the sparc section.
+
+	* unroll.c (copy_loop_body, JUMP_INSN case): Do map the body of
+	the loop branch back, then rewrite it to jump past the end of the
+	unrolled loop.
+
+	* c-decl.c (pushdecl): Check TREE_PUBLIC in addition to
+	DECL_EXTERNAL decls when looking for duplicate external declarations.
+
+	* cccp.c (multiline_string_line): New file scope static variable.
+	(rescan): Delete multiline_string_line variable definition.
+	(skip_quoted_string): Print start line number of unterminated
+	string and character constants.  When see a newline: warn if
+	pedantic; delete unreachable duplicate code for traditional case;
+	set multiline_string_line.
+
+Thu Dec 31 11:11:30 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa-hpux.h (LIB_SPEC): Fix so that one can link in profiled 
+	libraries under HPUX.
+	* pa-ghpux.h, pa-hpux7.h, pa-gux7.h (LIB_SPEC): Likewise.
+
+Thu Dec 31 08:50:42 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* a29k.h (OBJECT_FORMAT_COFF): Add definition.
+
+	* rs6000/xm-rs6000.h (REAL_NM_FILE_NAME): Delete from here.
+	* rs6000/rs6000.h (REAL_NM_FILE_NAME): Put it here.
+
+Thu Dec 31 01:53:13 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* tree.c (build_index_type): Leave TYPE_MAX_VALUE as -1 if it was;
+	don't truncate the high bits.
+
+	* Makefile.in (distdir): New target broken out from gcc.xtar.
+	Depend on $(srcdir)/INSTALL.
+	(gcc.xtar): Depend on distdir.
+	(doc): Delete dep $(srcdir)/INSTALL.
+
+Wed Dec 30 12:54:53 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386/i386.c (output_fp_cc0_set): Abort if cc0 user not found.
+
+	* i386/i386.md (movsf,movdf): Change constraints to use integer regs
+	for mem-mem copies.
+
+	* i386/i386.h (PREFERRED_RELOAD_CLASS): Don't reload CONST_DOUBLE into
+	integer regs.
+
+	* jump.c (delete_computation): reg_referenced_p wants body, not insn.
+
+Wed Dec 30 07:03:49 1992  John F Carr  (jfc at Athena.MIT.EDU)
+
+	* caller-save.c (setup_save_areas): Don't assign save area for a
+	group if some register in the group has already been assigned an
+	area.
+
+Wed Dec 30 06:05:07 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.def (TRUTH_XOR_EXPR): New tree code.
+	* expr.c (expand_expr, case TRUTH_XOR_EXPR): New case.
+	* fold-const.c (invert_truthvalue, case TRUTH_XOR_EXPR): New case.
+	(fold, case TRUTH_XOR_EXPR): New case.
+	(fold, case TRUTH_OR_EXPR, TRUTH_AND_EXPR): Check for second
+	operand of appropriate value to determine result whether or
+	not first operand is a constant. 
+	* c-common.c (truthvalue_conversion): Handle TRUTH_XOR_EXPR.
+	* c-convert.c, cp-cvt.c (convert_to_integer): Likewise.
+	* c-typeck.c (build_binary_op): Likewise.
+	* cp-typeck.c (build_binary_op_nodefault): Likewise.
+	* cp-class.c (instantiate_type): Likewise.
+	* stmt.c (expand_return): Likewise.
+
+Wed Dec 30 01:48:38 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes: Chmod each copied file a+r.
+	* fixinc.svr4, fixinc.sco: Likewise.
+
+	* Makefile.in (extraclean): Quote the sharps.
+
+	* expr.c (expand_expr): In NOP_EXPR case, truncate and
+	reextend integer constants.
+
+Tue Dec 29 18:21:06 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386/i386.md (bit complement): Constrain inputs and outputs to
+	match, instead of using match_dup.
+	(zero_extract test): Reenable with separate patterns to match
+	QImode and SImode zero_extract.
+
+	* i386/sysv3.h: Renamed from i386/svr3.h.
+	* i386/sysv4.h: Renamed from i386/svr4.h.
+	* i386/x-sysv3: Renamed from i386/x-svr3.
+	* i386/xm-sysv3.h: Renamed from i386/xm-svr3.h.
+	* i386/xm-sysv4.h: Renamed from i386/xm-svr4.h.
+
+	* configure (i386): Use new file names for 386 files.
+	* i386/*.h: Likewise for included files.
+
+Tue Dec 29 18:04:13 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Avoid truncation of object sizes when bit size won't fit in a word.
+	* fold-const.c (const_binop): New arg NOTRUNC.  All calls changed.
+	(size_binop): Pass 1 for NOTRUNC.
+	(force_fit_type): No longer static.
+	* tree.c (size_in_bytes): Call force_fit_type with end result.
+	(int_size_in_bytes): Avoid overflow as long as result fits.
+	Return type is now unsigned int.
+	* c-typeck.c (c_sizeof, c_sizeof_nowarn, c_size_in_bytes):
+	Call force_fit_type with end result.
+
+	* stor-layout.c (layout_record): Avoid overflow in const_size
+	by adding into var_size instead.
+
+Tue Dec 29 09:01:33 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* configure (m88k-dgux): Use t-m88kdgux.
+
+Tue Dec 29 06:56:41 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* genemit.c (gen_split): Initialize _val in generated function.
+
+Tue Dec 29 02:27:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (make_definition): Pass NULL as 3rd arg to do_define.
+
+Mon Dec 28 14:56:55 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-parse.in (stmt, FOR case): Do call position_after_white_space
+	after recording the current lineno for the increment.
+
+	* config.sub: Default to bsd for *-sequent.
+
+Mon Dec 28 06:05:12 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c: Add a few missing HOST_WIDE_INT casts.
+	Rename references to `significant' bits to be `nonzero' bits; 
+	specifically the following, but also local vars and comments:
+	(reg_nonzero_bits): Renamed from reg_significant.
+	(nonzero_bits): Renamed from significant_bits.
+	(nonzero_sign_valid): Renamed from significant_valid.
+	(set_nonzero_bits_and_sign_copies): Renamed from set_significant.
+
+	* fold-const.c (fold, case BIT_IOR_EXPR): Convert the IOR of a pair
+	of shifts into a rotate when it is equivalent.
+
+	* expmed.c (expand_shift): If rotating by a constant, try both
+	directions of rotate.
+	If can't open-code a rotate, do it as a pair of shifts followed by
+	an IOR.
+
+	* combine.c (simplify_comparison, case NEG): Replace large block of
+	code with equivalent call to num_sign_bit_copies.
+
+	* expr.c (get_inner_reference): Don't look at flag_volatile.
+	(expand_expr, case INDIRECT_REF, OFFSET_REF): Likewise.
+	* c-typeck.c, cp-typeck.c (build_indirect_ref): Set volatility from
+	flag_volatile.
+
+	* i386/rose.h (OPTIMIZATION_OPTIONS): Delete; we don't want to set
+	-finline-functions for -O3 and this does nothing else useful.
+	* mips.h (OPTIMIZATION_OPTIONS): Likewise.
+	* i960.h (OPTIMIZATION_OPTIONS): Don't set -finline-functions for -O3.
+
+Sun Dec 27 18:33:38 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* config/i386: New directory.
+	* configure.bat: 386 configuration files moved to new directory.
+	* configure (i386): Likewise.
+	Delete lines that duplicate default actions of configure.
+
+	* i386/386bsd.h: Renamed from i386bsd.h.
+	* i386/att.h: Renamed from att386.h.
+	* i386/bsd.h: Renamed from bsd386.h.
+	* i386/gas.h: Renamed from i386gas.h.
+	* i386/gstabs.h: Renamed from i386gstabs.h.
+	* i386/linux.h: Renamed from i386linux.h.
+	* i386/mach.h: Renamed from i386mach.h.
+	* i386/rose.h: Renamed from i386rose.h.
+	* i386/sco.h: Renamed from i386sco.h.
+	* i386/sco4.h: Renamed from i386sco4.h.
+	* i386/seq-gas.h: Renamed from seq386gas.h.
+	* i386/sequent.h: Renamed from seq386.h.
+	* i386/sun.h: Renamed from i386sun.h.
+	* i386/svr3.h: Renamed from i386v.h.
+	* i386/svr4.h: Renamed from i386v4.h.
+	* i386/t-isc: Renamed from t-i386isc.
+	* i386/t-rose: Renamed from t-i386rose.
+	* i386/t-sco: Renamed from t-i386sco.
+	* i386/unix.h: Renamed from unx386.h.
+	* i386/x-aix: Renamed from x-aix386.
+	* i386/x-isc: Renamed from x-i386isc.
+	* i386/x-rose: Renamed from x-i386rose.
+	* i386/x-sco: Renamed from x-i386sco.
+	* i386/x-sco4: Renamed from x-i386s4.
+	* i386/x-svr3: Renamed from x-i386v.
+	* i386/xm-aix.h: Renamed from xm-aix386.h.
+	* i386/xm-dos.h: Renamed from xm-i386dos.h.
+	* i386/xm-isc.h: Renamed from xm-i386isc.h.
+	* i386/xm-sco.h: Renamed from xm-i386sco.h.
+	* i386/xm-sun.h: Renamed from xm-i386sun.h.
+	* i386/xm-svr3.h: Renamed from xm-i386v.h.
+	* i386/xm-svr4.h: Renamed from xm-i38v4.h.
+
+	* i386/*.h: Use new file names for included 386 files.
+
+Sun Dec 27 22:02:09 1992  H.J. Lu  (hlu@yardbird.eecs.wsu.edu)
+
+	* i386linux.h (CPP_SPEC): Define -D__i486__ if compile for i486.
+	(ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION):
+	Copy definitions from i386v4.h to get PIC code correct.
+	(FUNCTION_PROFILER): Copy definition from i386bsd.h.
+	(COMMENT_BEGIN, ASM_APP_ON, ASM_APP_OFF): Copy from i386bsd.h
+	to prepare for new GAS.
+
+	* Makefile.in: (gcc.o): Add $(MAYBE_TARGET_DEFAULT).
+
+Sun Dec 27 16:33:13 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.c (block_move_loop, block_move_no_loop, block_move_sequence): 
+	Always set MEM_IN_STRUCT_P.  If it wasn't previously set, use BLKmode. 
+	* m88k.md (BLKmode load/store patterns): New.
+	(call_block_move, call_movstrsi_loop): Allow any mode for the preload.
+
+	* m88k.c (output_file_start): Emit `requires_88110' when -m88110
+	is used with -mversion-04.00.
+	* m88k.h (OVERRIDE_OPTIONS): Allow version 04.00 default.
+	(VERSION_0400_SYNTAX, REQUIRES_88110_ASM_OP): New definitions.
+	* m88kdgux.h (ASM_FIRST_LINE): Print the version string.
+
+	* m88k.md (length attribute): Branches may be expanded to two
+	instructions by the assembler.
+	(DFmode bcnd pattern): Don't try to fill the delay slot.
+	(CCmode bbx patterns): Reverse the 1/0, not the condition.
+
+	* m88kdgux.h (ASM_SPEC): Pass -KVstring given -mversion-string.
+
+	* m88kdgux.ld, t-m88kdgux: New file.
+	* m88kdgux.h (LIB_SPEC): Add crtend.o.
+	(STARTFILE_SPEC): Add crtbegin.o, and m88kdgux.ld for COFF.
+	(CTOR_LIST_END, DTOR_LIST_END): Define as -1.
+	(DO_GLOBAL_{C,D}ORS_BODY): Ignore null entries and look for -1
+	bounds.
+
+Sun Dec 27 16:08:04 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* hp320.h (ASM_OUTPUT_DOUBLE_OPERAND): Delete spurious space after \.
+
+	* gstddef.h [__sequent__]: #undef _PTRDIFF_T_ at beginning, if defined.
+
+	* reload1.c (emit_reload_insns): Error instead of abort
+	if an asm has a VOIDmode output operand.
+
+	* reload.c (push_reload): Move the NO_REGS abort after the
+	error check for asms, to avoid crashing for asms.
+	Fix inmode and outmode too, if they are VOID for an asm.
+
+Sun Dec 27 10:48:10 1992  Jeffrey A Law  (law@schirf.cs.utah.edu)
+
+	* reorg.c (mostly_true_jump): When trying to determine
+	if the current insn is essentially a conditional return,
+	look inside of SEQUENCE insns for jumps.
+	Predict jumps to the exit test for loops as likely to be taken.
+
+Sun Dec 27 06:53:39 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reorg.c (relax_delay_slots): Only look at JUMP_LABEL for a
+	condjump_p.
+
+	* jump.c (delete_jump): Use single_set to see if INSN just sets PC.
+	Remove code to delete previous cc0-setting insn.
+	(delete_compution): No longer conditional on #ifndef HAVE_cc0.
+	If insn uses CC0, delete previous insn that just sets CC0 for us;
+	do deletion via recursive call.
+
+	* combine.c (subst, case SET): Call recog_for_combine with OTHER_INSN,
+	not UNDOBUF.OTHER_INSN.
+
+	* genoutput.c (have_error): New variable.
+	(error): Set it.
+	(main): Test it and return FATAL_EXIT_CODE if it is set.
+
+	* emit-rtl.c (copy_rtx_if_shared): A CONST can be shared if it
+	contains a SYMBOL_REF.
+	* rtl.c (copy_rtx): Likewise.
+	A SCRATCH must be shared.
+	A MEM may be shared if it is at a constant address.
+
+Sun Dec 27 02:48:27 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (macroexpand): Expand each macroarg first time we find a need
+	to substitute its expansion.
+	(macarg): Don't expand them here.
+
+	* expr.c (expand_expr, constructor case): If we made a stack slot,
+	set MEM_IN_STRUCT_P if the type warrants it.
+
+	* configure: When testing existence of a config file, specify $srcdir.
+
+Sat Dec 26 18:12:08 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.c (make_node, case 'c'): For INTEGER_CST, use size of
+	struct containing constant, just like for reals.  Also, clean
+	up code to avoid confusing fallthrough.
+
+	* a29k/unix.h, rs6000/aix32.h, rs6000/mach.h, rs6000/xm-mach.h:
+	Include main file from subdirectory.
+
+	* config/a29k, config/alpha, config/romp, config/rs6000: New
+	directories.
+	* configure: If a file isn't in config, try in config/$cpu_type.
+	(a29k, alpha, romp, rs6000): Files moved to new machine subdirectories.
+	Delete lines that duplicate default actions of configure.
+
+	* combine.c (gen_lowpart_for_combine): Allow MODE to be wider
+	than a word in restricted circumstances.
+
+	* c-typeck.c (check_format): Using both a precision and the `0' flag
+	is only a problem on `d', `i', `o', `u', `x', and `X' conversions.
+
+Sat Dec 26 17:05:24 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* object.h: Don't include objc.h or stdio.h.
+	Change Class_t to Class everywhere.
+	(id, nil, Nil, Class, STR, SEL, IMP, BOOL, YES, NO): Define,
+	but not if objc.h was already included.
+	[__objc_INCLUDE_GNU] (Class): Alias this to Class_t.
+
+	* object.m: Include objc.h and stdio.h before object.h.
+
+Sat Dec 26 05:12:05 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.3.3 released.
+
+Fri Dec 25 06:53:49 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* expmed.c (store_bit_field): If VALUE needs to be narrowed, do
+	it with gen_lowpart, not an explicit SUBREG.
+
+	* a29k.md (divsf3): Fix typo in mode of DIV.
+
+Fri Dec 25 00:03:26 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* Makefile.in (install-dir): Add missing semicolon.
+
+	* i386sco4.h (_KR, _SVID, _NO_PROTOTYPE): Define if -traditional.
+
+Thu Dec 24 15:02:29 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixinc.svr4: Don't change bitfield types to int.
+
+	* seq386.h (TARGET_DEFAULT): Override.
+
+Wed Dec 23 20:19:17 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* i386sco4.h (CPP_SPEC): Avoid repeated def of _M_SYSV.
+
+Tue Dec 22 15:40:08 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (store_parm_decls): Use TYPE_MAIN_VARIANT to compare types
+	when merging info from previous prototype.
+
+	* fixinc.svr4: Add special fixes for netinet/in.h and sys/endian.h.
+
+Mon Dec 21 02:58:27 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* m68kv4.h (ASM_OUTPUT_CASE_END):
+	Use switch_table_difference_label_flag.
+
+	* configure (m68k-motorola-sysv*): Set use_collect2.
+
+Sat Dec 19 20:19:44 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* a29k.c (secondary_reload_class): Return CR_REGS for larger than
+	word memory, and BP_REGS for part-word mem with no DW.
+
+	* a29k.md: Consistently use `&' in constraint of MATCH_SCRATCH.
+	Always use a reg as 4th arg of dmac/fmac even if ignored by insn.
+	Uses of `b' as a constraint in multi-word reload patterns should
+	be `c'.
+
+Sat Dec 19 01:32:13 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (all.cross): Add `specs' as dep.
+
+	* build-make (CC): Delete the -V option.
+
+	* getpwd.c (getpwd): Don't get upset if ERANGE is not defined.
+
+Fri Dec 18 20:56:59 1992  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* objc-actions.c (build_encode_expr):
+	Terminate the encode string with a null.
+	(encode_aggregate): Distinguish pointer to record from a
+	record.  Output fields for record.  Fix unions.
+
+Fri Dec 18 17:17:39 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Set Meissner version # to 33.
+	(struct mips_args): Add support for passing QI/HI mode structures
+	the way the MIPS compiler passes them.
+	(SIZE_TYPE, PTRDIFF_TYPE): Define as unsigned int, and int if not
+	defined already.
+
+	* mips.c (init_cumulative_args): Use a static structure to
+	initialize the CUMULATIVE_ARGS structure.
+	(function_arg_advance): Add a newline at the end of debug output.
+	(function_arg): If a structure is passed as a QImode or HImode
+	value in a register, record the fact for the call define_expands
+	and prologue expander to move the structure into the high part of
+	the register, and back again.  If debugging, print if the argument
+	is a structure.
+	(mips_expand_prologue): Shift any QI/HI structures passed back, so
+	they can be used as normal QI/HI values.
+
+	* mips.md (call): If there were any tiny structures passes as
+	QI/HI modes in registers, shift the register, so that the
+	structure value is in the high part of the register.
+	(call_value): Ditto.
+	(call_internal): Delete creating $31 rtx, since we can get it from
+	the normal insn patterns.
+	(call_value_internal): Ditto.
+
+Fri Dec 18 05:14:14 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Make abstract virtual functions work.
+	* cp-call.c (compute_conversion_costs): Undo change of Sept 1 about
+	setting HARSHNESS to 0 re: the conversion of the first argument.
+	(build_method_call):  Delete the code that redid the RTL for calling
+	the right fn, since we will now behave correctly.  (Even with this,
+	we ended up calling the wrong fn---the base class, rather than the
+	derived one.)
+
+	* cp-decl2.c (grokclassfn): Try using the local value for a nested
+	type if the IDENTIFIER_TYPE_VALUE isn't there.
+
+	* cp-method.c (build_overload_nested_name): Use DECL_NAME instead of
+	DECL_ASSEMBLER_NAME, since pushtag now mangles together
+	DECL_ASSEMBLER_NAME.  This will make us emit `Q21D1B', not `Q221D1B'.
+
+Thu Dec 17 17:51:16 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
+
+	* Makefile.in (install-dir): Added missing then and semicolon.
+
+Thu Dec 17 15:19:36 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* x-i386s4 (CC): New assignment.
+
+Wed Dec 16 15:49:11 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-actions.c (finish_objc) [OBJC_SELECTORS_WITHOUT_LABELS]:
+	Always call build_selector_translation_table.
+
+	* Makefile.in (install-dir):
+	If cross-compiler, create $(tooldir) and $(assertdir). 
+
+Wed Dec 16 14:19:08 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu)
+
+	* rs6000.h (INITIALIZE_TRAMPOLINE): Get function address and toc
+	pointer from correct place relative to FNADDR.
+
+	* varasm.c (assemble_trampoline_template): If TRAMPOLINE_SECTION
+	is defined, put the trampoline template into that section.
+
+	* alpha.h (TRAMPOLINE_SECTION): New macro.
+
+Wed Dec 16 14:19:41 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* reload.c (get_secondary_mem): Don't save address if it isn't valid.
+
+Wed Dec 16 13:59:17 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* varasm.c (assemble_trampoline_template):
+	Use readonly_data_section, not text_section.
+
+Wed Dec 16 11:32:11 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Set Meissner version # to 32.
+	(compute_frame_size): Change function return type to long.
+	(epilogue_reg_mentioned_p): New function decl.
+	(mips_frame_info): Change unsigned longs to longs.
+	(ELIGIBLE_FOR_EPILOGUE_DELAY): Call epilogue_reg_mentioned_p.
+
+	* mips.c (epilogue_reg_mentioned_p): New function to return true
+	if any register used in the epilogue sequence is referenced.  If
+	the stack size is greater than 32k bytes, return true for
+	registers $8 and $9, since they are used to hold temps.
+	(compute_frame_size): Change return type & variables to long.
+	(compute_frame_size): Use 1L in shifts to create GP save mask.
+	(save_restore): Merge function into save_restore_insns.
+	(save_restore_insns): Add FILE * argument, to write to the .s
+	file if non-NULL -- otherwise produce insns.  Add arguments to
+	pass in that the prologue/epilogue has loaded the stack size into
+	$8 if large stack frame.  Completely rewrite large stack frame
+	support, so that it doesn't abort if large stack frame, saved GP
+	registers, and no saved FP registers.  If large stack frame, use
+	stack size stored in $8 if we can.
+	(function_prologue): Make tsize long.
+	(function_epilogue): Ditto.
+	(mips_expand_prologue): Ditto.
+	(mips_expand_epilogue): Ditto.
+	(mips_expand_prologue): Change call to save_restore_insns.
+	(mips_expand_epilogue): Ditto.
+	(function_epilogue): Call save_restore_insns instead of
+	save_restore.
+
+Wed Dec 16 07:33:08 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stmt.c (expand_goto): Set LABEL_REF_NONLOCAL_P in the LABEL_REF
+	we make in the non-local case.
+
+	* varasm.c (assemble_trampoline_template): Always put template in
+	text section.
+
+Wed Dec 16 05:04:06 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* combine.c (try_combine): Allow for the case where I3 becomes an
+	unconditional jump when it is the last nonnote insn.
+
+Tue Dec 15 20:30:06 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (do_pragma): Use index, not strchr.
+
+	* seq386.h (FUNCTION_PROFILER): Add missing . to label name.
+
+	* reload1.c (eliminate_regs_in_insn): Test old_body, not new_body,
+	since people have tested it that way.
+
+	* reload1.c (eliminate_regs_in_insn): Don't recopy new_body
+	if it is an asm_operands insn.
+
+Tue Dec 15 19:42:58 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.md (return peepholes): Add QImode and HImode move/return
+	patterns.
+
+Tue Dec 15 17:42:07 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.h (ASM_SPEC): New macro.
+
+	* alpha.h (TRAMPOLINE_{TEMPLATE,SIZE}, INITIALIZE_TRAMPOLINE):
+	Make major changes to fix numerous bugs.
+	(TRANSFER_FROM_TRAMPOLINE): New macro.
+	* alpha.md: Add new UNSPEC_VOLATILE 0 to flush instruction cache.
+
+Mon Dec 14 13:16:14 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.c (output_epilog): Support LANGUAGE_STRING values for F77,
+	Ada, and Pascal.
+
+Sun Dec 13 16:42:26 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixinc.sco: Complete rewrite by ian@cygnus.com.
+
+Sat Dec 12 17:51:43 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* va-alpha.h: Correctly form multi-word object.
+
+	* alpha.c (alpha_builtin_savregs): Correctly compute ARGSIZE and NREGS.
+
+	* alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Deleted.
+
+Sat Dec 12 08:42:43 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa-hpux.h (TARGET_DEFAULT): Do not enable TARGET_SHARED_LIBS
+	by default in 2.3.3 since it doesn't really work.
+	* pa-ghpux.h, pa1-hpux.h, pa1-ghpux.h: Likewise.
+
+	* pa.md (floatsisf, floatsidf): Do not accept general registers.
+
+Fri Dec 11 00:13:52 1992  Ian Lance Taylor  (ian@cygnus.com)
+
+	* configure (i[34]86-*-sco3.2v4*): Use fixinc.sco.
+	* fixinc.sco: New file.
+	Like fixinc.svr4 but turn !__STDC__ into !__STRICT_ANSI__.  Don't
+	require space after getcwd argument in stdlib.h.
+	* x-i386s4: Don't use rcc:
+	(CC, OLDCC, RCCFLAGS, CCLIBFLAGS): Vars deleted.
+	* xm-i386sco.h (ONLY_INT_FIELDS): Define if not __GNUC__.
+	(CODE_FIELD_BUG): Likewise.
+	* rtl.h (struct rtx_def) [ONLY_INT_FIELDS]: Handle CODE_FIELD_BUG.
+
+Fri Dec 11 17:56:53 1992  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	* cp-search.c (lookup_nested_field): Check for assignment to members
+	of an enclosing class only when looking at a member, not at other
+	things (like nested types).
+
+	* cp-cvt.c (convert_to_reference): If a conversion can be found via
+	a constructor, then use it.  Also fix a typo about when to
+	return the result of a type conversion.
+
+Fri Dec 11 08:15:53 1992  James Van Artsdalen  (james@bigtex.cactus.org)
+
+	* reload1.c (choose_reload_regs): Don't inherit a reload if the
+	previous reload wasn't at least as wide as the current reload.
+
+Fri Dec 11 07:19:11 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (output_epilog): Remove garbage from one decl of EXTRA.
+	Subtract, not add, size from frame pointer.
+
+	* a29kunix.h (LINK_SPEC): Use -T, not -c, for new gld and change file
+	name to default.gld from default.ld.
+
+	* function.c (assign_outer_stack_local): Align proper frame offset.
+
+	* loop.c (get_condition): Check for overflow when canonicalizing
+	comparison.
+
+Thu Dec 10 15:53:41 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* enquire.c (i_define, u_define, f_define): Add #undef before #define.
+	* fixinc.svr4 (limits.h):  Add #ifndef/#endif around macros that
+	are supposed to be defined in float.h.
+
+	* combine.c (try_combine): Only use I2DEST as a scratch reg for
+	a split if it does not overlap any inputs of NEWPAT.
+
+Thu Dec 10 10:23:28 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (get_last_value): Never use value from later insn, even
+	if reg is only set once.
+
+	* c-tree.h (IDENTIFIER_LIMBO_VALUE): Delete duplicate definition.
+
+Thu Dec 10 08:54:03 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* i386sco4.h (CPP_PREDEFINES): Define i386 and unix here.
+	(CPP_SPEC): Not here.
+
+Wed Dec  9 19:03:55 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.h (ASM_DECLARE_FUNCTION_NAME): Correctly get the return type
+	of DECL.
+
+	* x-pa (CC): Set to "/usr/local/bin/gcc" instead of
+	"/usr/local/gcc".
+
+Tue Dec  8 17:50:26 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Bump Meissner version number to 31.
+	(LEGITIMIZE_ADDDRESS): Split large offsets, even when not
+	optimizing.  Otherwise, illegal stack offsets can be generated.
+
+Tue Dec  8 11:55:52 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.md (sh[123]add): Use "shadd_operand" as the predicate for
+	operand one.
+	* pa.c (shadd_operand): New function.
+
+Tue Dec  8 08:30:13 1992  Tom Wood  (wood@dg-rtp.dg.com) 
+
+	* hp320.h (AS_BUG_FLOATING_CONSTANT, AS_BUG_TRAILING_LABEL): New.
+	(TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Output align 1 to
+	accomodate the "trailing label" bug.
+	(ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_FLOAT_OPERAND): Define to
+	output values in hex to accomodate the "floating constant" bug.
+	(PRINT_OPERAND_FLOAT, PRINT_OPERAND): Ditto.
+
+	* gcc.c (temp_names): New variable.
+	(do_spec_1): Rewrite MKTEMP_EACH_FILE for %g/%u/%U.
+	(choose_temp_base): Abort if mktemp yields a null string.
+
+Tue Dec  8 08:30:13 1992  Niklas Hallqvist  (niklas@della.appli.se)
+
+	* integrate.c (expand_inline_function): Don't output line notes
+	for implicit formals.
+
+Tue Dec  8 06:21:44 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (max_uid): New variable.
+	(cse_end_of_basic_block): Use it to ignore insns made by CSE.
+	(cse_main): Set it.
+
+Mon Dec  7 21:22:29 1992  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	* cp-init.c (do_friend): Revert change of Sept 1; it seems to have
+	broken properly emitting friends.
+
+Mon Dec  7 19:09:25 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (eliminate_regs_in_insn): Make another copy of all the
+	RTL if we changed something and we aren't permanently replacing.
+
+	* romp.md (reload_out{q,h}i): Write as proper PARALLEL.
+
+Sun Dec  6 16:27:14 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.md (add-mult): Add missing `&' in constraints of kludge
+	plus/plus/mult pattern.
+
+Sun Dec  6 16:26:42 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* optabs.c (expand_binop): Correct sign of complex quotient imagpart.
+
+Sun Dec  6 07:59:16 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Set Meissner version # to 30.
+	(LEGITIMIZE_ADDRESS): For <reg>+<large int> addresses, rewrite so
+	that <reg> + (<large int> & ~0x7fff) is put into a pseudo reg.
+	This is to allow CSE to generate better code for repeated
+	references in the same general vicinity, such as when large stack
+	frames are used.
+
+	* config/dec-osf1.h (LINK_SPEC): Pass -call_shared, -no_archive,
+	and -exact_version to the linker.  If -call_shared, do not pass
+	-non_shared to the linker.
+	* mips-5.h (LINK_SPEC): Ditto.
+	* mips-5bsd.h (LINK_SPEC): Ditto.
+	* mips-svr4.h (LINK_SPEC): Ditto.
+	* mips-sysv.h (LINK_SPEC): Ditto.
+
+Fri Dec  4 19:50:29 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* fixincludes: fix _cplusplus typo in SCO's tinfo.h
+
+Fri Dec  4 19:22:35 1992  Randy S. Welch  (randy@kcin.alphacdc.com)
+
+	* xm-plexus.h: New file.
+	* configure (m68k-plexus-sysv*): Use it.
+
+Fri Dec  4 19:21:44 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (start_function): Use TYPE_MAIN_VARIANT when comparing
+	return type with previous prototype declaration. 
+
+	* cccp.c (output_line_command): Use alloca for line_cmd_buf.
+
+Fri Dec  4 19:20:34 1992  Richard Kenner  (kenner@mole.gnu.ai.mit.edu)
+
+	* cse.c (cse_insn): Always pass result of canon_reg through
+	validate_change before using it in insn.
+
+	* c-decl.c, cp-decl.c (init_decl_processing): Don't use hardwired
+	sizes for the modes when making int{Q,H,S,D}I_type_mode and the
+	unsigned versions of them; the actual size depends on BITS_PER_UNIT.
+
+Fri Dec  4 19:13:35 1992  Jonas Olsson  (ljo@po.cwru.edu)
+
+	* i386bsd.h (ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION):
+	Copy definitions from i386v4.h to get PIC code correct.
+
+Thu Dec  3 19:20:14 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c: Include sys/types.h for systems that need things for
+	signal.h.
+
+Thu Dec  3 01:40:42 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.c (finalize_pic):  Remove "*_" from GLOBAL_OFFSET_TABLE name.
+	* spc-sol2.h (ASM_SPEC): Pass "-K PIC" to assembler when pic.
+	(JUMP_TABLES_IN_TEXT_SECTION): Define.
+	(SELECT_RTX_SECTION): Define.
+
+	* fixincludes (sys/types.h): Check for [ \t]size_t not size_t.
+
+Wed Dec  2 15:40:36 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure (rs6000-ibm-aix32): New target.
+	* rs6000-aix32.h: New file.
+
+Tue Dec  1 18:05:20 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-type2.c (build_functional_cast): Revert change of Nov 2,
+	concerning clearing the TREE_VALUE of a default parameter.
+
+Tue Dec  1 13:33:25 1992  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* local-alloc.c (optimize_reg_copy_2): Correct reg_n_refs updates.
+
+	* Makefile.in (INSTALLED_H): Add syslimits.h.
+
+Tue Dec  1 11:09:50 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-call.c (build_method_call): When looking for a default arg
+	initialized by a ctor, be careful of a null ref w/ operand 1.
+
+Tue Dec  1 10:43:13 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (num_sign_bit_copies): Return 1 on failure, not 0.
+	Fix typo in last change; return 1 on failure, not BITWIDTH.
+
+Tue Dec  1 09:39:47 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.c (function_prologue): Do not emit a .loc before the
+	function if debug level is 1.  This confuses gdb.
+
+Tue Dec  1 02:48:29 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* isc.h (TARGET_DEFAULT): New macro - don't make TARGET_IEEE_FP
+	default for ISC.
+
+Fri Nov 27 01:30:41 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.3.2 released.
+
+	* objc/core.c (searchForMethodInHierarchy):
+	If SEL or NAME is 0, return 0.
+
+	* gcc.c (LINK_LIBGCC_SPECIAL_1): New parameter.
+	* rs6000.h (LINK_LIBGCC_SPECIAL_1): Defined.
+
+	* t-hp320g (RANLIB, RANLIB_TEST, AR, AR_FLAGS):
+	Just copy value of ..._FOR_TARGET.
+	(LIBCONVERT): Use TARGET_TOOLPREFIX.
+
+	* reload.c (find_reloads) [SMALL_REGISTER_CLASSES]:
+	Don't use preferred_class for a multiword register.
+
+	* cccp.c (do_include): Initialize searchptr to 0.
+
+Fri Nov 27 07:40:54 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* combine.c (subst, make_field_assignment, num_sign_bit_copies):
+	Protect calls to significant_bits; unless we only care if the
+	result is a power of two, don't call if mode size is wider
+	than HOST_BITS_PER_WIDE_INT.
+	(extended_count, simplify_shift_const, simplify_comparison): Likewise.
+
+Thu Nov 26 10:31:48 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gstdarg.h (va_end): #undef before the declaration.
+
+	* gstdarg.h (va_arg): Alternative definition for big-endian machines.
+	* gvarargs.h (va_arg): Copy both definitions from gstdarg.h.
+
+	* limitx.h, limit.y: Test and define _GCC_LIMITS_H_, not _LIMITS_H_.
+
+	* mips.c (mips_debugger_offset): Don't crash for unknown cases.
+
+	* c-typeck.c (build_unary_op): Call pedantic_lvalue_warning
+	for *all* cases of incrementing a cast.
+
+	* libgcc2.c (__udiv_w_sdiv): Cast 1 before shifting by 31.
+
+	* fixincludes (PWDCMD): New variable, set specially for Apollos.
+	Use it to get the working dir.
+
+	* combine.c (num_sign_bit_copies): Fix 1-off error in PLUS case.
+
+	* c++: Put newline into `for arg do'.
+
+Thu Nov 26 08:32:20 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expmed.c (struct algorithm): Make coeff a HOST_WIDE_INT.
+
+	* romp.c (output_epilog): Always call output_fpops.
+
+Wed Nov 25 16:24:43 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (install-fixincludes): Use SYSTEM_HEADER_DIR.
+
+	* m68ksgs.h (ASM_OUTPUT_DOUBLE_OPERAND): Really use the operand VALUE.
+
+	* tree.h (CONSTRUCTOR_NAME_FORMAT): Let config.h override this.
+	* tower-as.h (CONSTRUCTOR_NAME_FORMAT): Defined.
+
+	* c++: Replace `for arg do' which ash can't handle.
+
+	* t-next (OTHER_FIXINCLUDES_DIRS): Delete /NextDeveloper/Headers.
+
+	* apollo68.h (HAVE_ATEXIT): Commented out.
+
+	* regclass.c: Fix typo in use of SECONDARY_INPUT_RELOAD_CLASS.
+	(copy_cost): Fix typo in use of SECONDARY_OUTPUT_RELOAD_CLASS.
+
+Wed Nov 25 14:15:50 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* fixinc.svr4 (regexp.h): Don't add a getrnge declaration if a
+	conflicting declaration is already present.
+
+Wed Nov 25 06:47:18 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.h (LINK_LIBGCC_SPECIAL): No longer define.
+
+	* stmt.c (expand_value_return): Don't emit move between differing
+	modes when PROMOTE_FUNCTION_RETURN is defined; convert instead.
+
+	* integrate.c (expand_inline_function): Ensure a REG used as
+	COPY has REG_USERVAR_P set if LOC does.
+
+	* optabs.c (expand_binop, expand_twoval_binop): If we are going
+	to fail, remove any load from MEM we did due to -fforce-mem;
+	if the MEM was volatile, this will cause an extra load.
+	(expand_complex_abs): Likewise.
+	Correct use of variable LAST so it doesn't include the load
+	from MEM (to fix unrelated bug).
+
+Tue Nov 24 00:23:39 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* i386bsd.h (FUNCTION_PROFILER): Use mcount, not _mcount.
+
+	* t-next (OTHER_FIXINCLUDES_DIRS): Leave just /LocalDeveloper/Headers
+	and /NextDeveloper/Headers.
+
+Mon Nov 23 22:06:31 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* ns32k.md (movsi): Split alt 1 to deprecate xy classes in operand 1.
+
+	* combine.c (make_extraction): When making a low part subreg of a reg,
+	use inner_mode, not is_mode.
+
+Mon Nov 23 21:11:13 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* romp.h (ASM_FILE_START): Stop at first blank in VERSION_STRING.
+
+Mon Nov 23 21:09:20 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* fold-const.c (range_test): Convert the constants to the unsigned
+	type before expanding the range test.
+
+Mon Nov 23 20:54:45 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Mon Nov 23 13:21:43 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* c++ (first): Only shift if $first is no, on the chance we got no
+	arguments at all.  If we didn't get anything, say so (since -lg++
+	will fake out the gcc driver into thinking we want to do something).
+
+	* cp-decl.c (start_decl): If grokdeclarator returns a
+	void_type_node, return a NULL_TREE.
+
+	* cp-typeck.c (build_modify_expr_1): When calling build_opfncall for
+	`operator=', use make_node to create a plain NOP_EXPR for it to use,
+	rather than trying to pass NOP_EXPR down hoping it gets there intact.
+	(build_modify_expr): Ditto.
+	* cp-parse.y (expr_no_commas): Ditto.
+	* cp-method.c (build_opfncall): Use TREE_CODE on ARG3 for a
+	MODIFY_EXPR, since it'll be coming in properly as a tree now.
+
+	Sat Nov 21 02:33:28 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* cp-init.c (expand_default_init): Clear DECL_REGISTER if we're
+	going to call a ctor, otherwise we may end up generating bogus and
+	confusing error messages about taking the addr of something declared
+	to be `register'.
+
+	* cp-typeck.c (build_x_function_call): Recognize a ptr-to-method
+	that is being passed in as a function argument or as part of
+	a COMPONENT_REF.
+	(build_indirect_ref): If ERRORSTRING is NULL (it's passed in that
+	way in many places), then don't try to use it.
+
+	Thu Nov 19 01:41:58 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-dem.c (do_builtin_type): Recognize `w', a wide character, since
+	it's now a type according to the ANSI X3J16 working paper; output
+	"wchar_t" for it.
+	(cplus_demangle): Accept `w' as an integral type.
+
+	Wed Nov 18 21:29:14 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+ 	* cp-class.c (finish_struct): Re-enable code to cut down on the size
+	of symbol output, the positives outweigh the negatives.
+
+	Wed Nov 18 19:51:59 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-search.c (dfs_walk): Move setting of
+	vbase_decl_ptr_intermediate out of #ifdef code.
+
+	Wed Nov 18 18:49:13 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Make wording on error message
+	stronger.
+
+	Tue Nov 17 17:46:11 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* cp-search.c (CHECK_convert_pointer_to_single_level): Don't define.
+
+Mon Nov 23 19:44:38 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* mot3300.h (switch_table_difference_label_flag): Define it.
+
+	* ns32k.md (addsi3): Add & for alternative 1 in operand 0.
+
+Mon Nov 23 18:29:27 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* genattrtab.c (obstack.h): Include after sys/time.h.
+
+	* c-decl.c (duplicate_decls): For builtins, create new function
+	type instead of trying to modify old one.
+
+Mon Nov 23 16:28:36 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* i386bsd.h (COMMENT_BEGIN): Redefine as #.
+	(ASM_APP_ON, ASM_APP_OFF): Redefine to use #.
+
+	* combine.c (num_sign_bit_copies): Inhibit x-1 special case
+	when x is a paradoxical subreg.
+
+	* xm-linux.h (malloc, calloc): Definitions deleted.
+
+Mon Nov 23 11:52:41 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa.md (sh[123]add): Use "nonmemory_operand" instead of 
+	"register_operand" as the predicate for the first operand.
+
+Mon Nov 23 00:29:27 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (default_compilers): Pass -i* after -U*.
+
+Sun Nov 22 17:03:48 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* hp320.h (FUNCTION_PROFILER): Complete replacement.
+
+	* xm-hp320.h (index, rindex): Defined.
+
+	* gstddef.h: Fix prev change; test of _STDDEF_H was backwards.
+
+Sun Nov 22 16:12:38 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* toplev.c (W_options): Delete -Wreturn-type, as it is in lang_options.
+	* c-decl.c (c_decode_option): Decode -Wreturn-type.
+
+	* c-decl.c, cp-decl.c (pushdecl): Don't inherit DECL_INITIAL when
+	redeclaring the current function.
+
+	* integrate.c (expand_inline_function): Use the original
+	declaration of the inlined function rather than a redeclaration as
+	the BLOCK_ABSTRACT_ORIGIN of the body.
+
+Sat Nov 21 19:54:57 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (main): Do -D's and -A's and -U's in order specified.
+
+	* gcc.c (default_compilers): When running cpp,
+	move %{D*} and %{U*} (in that order) just before %i.
+
+Sat Nov 21 18:24:55 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)
+
+	* xm-pa.h: Remove #ifdef hpux stuff.
+	(S_ISDIR): Remove.
+	* xm-pahpux.h: New file, developed from old xm-pa.h.  Define
+	rindex/index.
+	* pa-hpux7.h, pa-gux7.h: New files.
+
+	* configure (hppa1.0-*-hpux*, hppa1.0-*-hpux*): Use xm-pahpux.h.
+	(hppa1.0-*-hpux7*): New alternative.
+
+Sat Nov 21 14:10:57 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* spc-sol2.h (SWITCH_TAKES_ARG, LINK_SPEC): New override definitions.
+
+	* xm-mot3300.h (index, rindex): Defined.
+
+Sat Nov 21 07:54:53 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h (MIPS_VERSION): Set Meissner version number to 29.
+
+	* mips.c (mips_expand_prologue): If profiling, emit an insn to
+	block other insns from being scheduled before the end of the
+	prologue.
+
+	* mips.md (blockage): New unspec_volatile insn to prevent other
+	insns from being scheduled before it.
+
+Sat Nov 21 06:03:38 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* sdbout.c (template_name_p): New function.
+	(sdbout_record_type_name): Use it to possibly use the
+	DECL_ASSEMBLER_NAME instead of DECL_NAME if looking at a template.
+	(sdbout_symbol): Ditto.
+
+Fri Nov 20 15:31:05 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_type): Handle need for name of a RECORD_TYPE
+	when it has none.
+
+	* configure (sparc-*-solaris2): Set broken_install.
+
+	* integrate.c (subst_constants): Inhibit special treatment of subreg
+	when the stuff inside is not a reg.
+
+	* config/plexus.h (SIZE_TYPE): Fix syntax.
+
+	* gcc.c (do_spec_1): Handle MKTEMP_EACH_FILE.
+
+Fri Nov 20 15:10:20 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* fixincludes (math.h): Get rid of inconsistent inline definitions
+	for abs that are present in HP-UX 8.0.
+
+Fri Nov 20 10:07:48 1992  Michael Meissner  (meissner@osf.org)
+
+	* collect2.c (FREAD, FWRITE): Undef these macros if they were
+	defined before including ldfcn.h.
+
+Fri Nov 20 15:38:47 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* integrate.c (expand_inline_function): Mark all notes as integrated.
+
+	* final.c (final): When producing SDB debugging info, delete line
+	number notes from inlined functions in other files as well as
+	duplicate line number notes.
+
+Fri Nov 20 05:24:16 1992  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* config.sub: Added machines and operating systems for Emacs
+	ports, since Emacs now uses config.sub for its configuration.
+	New manufacturers recognized not to be operating systems: High
+	Level Hardware (highlevel, defaults to using BSD), Gould
+	(gould, defaults to System V), Commodore (cbm, defaults to
+	amigados), National Semiconductor (ns, defaults to Genix), and
+	Masscomp (masscomp, defaults to RTU).
+	Recognize the NS1600 (ns16k) and the Clipper (clipper) as
+	processors.
+	Recognize these processors with default manufacturers: the
+	Cydra (cydra) from Cydrome (cydrome), the XPS100 (xps100) from
+	Honeywell (honeywell), and the Orion (orion) and Orion 1/05
+	(orion105) from High Level Hardware (highlevel).
+	If the ISC operating system is given with a version number,
+	don't kill it and set it to 2.2; just have it default to 2.2
+	if omitted.
+	Make Irix SGI's default operating system, not SYSV.
+	Make BSD Encore's default, so it applies for all Encore
+	machines, not just the umax and mmax abbreviations.
+	All of Encore's machines use BSD, not just the ns32k-based
+	ones.  Make it the manufacturer's default.
+	Make it possible to specify an operating system for a Gould
+	machine.  Make sysv the manufacturer's default, so it applies
+	when we specify the manufacturer as well as when we omit it.
+	Add Uniplus (uniplus), Iris (iris), Xenix (xenix), and RTU
+	(rtu) as recognized operating system names.
+
+Wed Nov 18 17:58:18 1992  Karl Berry  (karl@cs.umb.edu)
+
+	* i386iscgas.h (SDB_DEBUGGING_INFO): #undef.
+	(DBX_DEBUGGING_INFO): #define.
+	(DBX_OUTPUT_MAIN_SOURCE_{DIRECTORY,FILENAME}): Override dbxout.c.
+
+	* bsd386.h (LPREFIX) [NO_UNDERSCORES]: Define as `.L'.
+
+Wed Nov 18 13:50:43 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.c (compute_frame_size): Make sure the {gp,fp}+offset fields
+	are always initialized, even if there were no gp/fp registers
+	saved.
+
+Wed Nov 18 09:58:50 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* a29k.md (insv): Remove constraints from operand matching
+	const_0_operand.
+
+ 	* regclass.c (regclass): Add missing cast from enum to int.
+
+Wed Nov 18 09:40:01 1992  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* core.c (initialize_class): The class may not have an initialize
+	method.
+
+Wed Nov 18 09:40:01 1992  Wilson Tien  (wtien@urbana.mcd.mot.com)
+
+	* xm-m68kv.h (rindex, index): use strrchr and strchr instead.
+
+Wed Nov 18 01:27:37 1992  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* config.sub: Added Xenix operating system.
+
+Tue Nov 17 18:32:01 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload.c (combine_reloads): Don't combine with a reload needed
+	for multiple things.
+
+Mon Nov 16 08:52:52 1992  Jeffrey A. Law  (law@mole.gnu.ai.mit.edu)
+
+	* pa.c (output_move_double): Handle indirect stores to memory
+	via an auto-incremented/auto-decremented register in the same
+	manner in which loads are handled. 
+
+Thu Nov 12 21:02:59 1992  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	Cygnus<-->FSF merge.
+
+	Thu Nov 12 15:02:53 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* tree.h (value_member, purpose_member, binfo_member,
+	tree_int_cst_equal, tree_int_cst_lt, index_type_equal,
+	expand_decl_init): Add decls with prototypes.
+
+	* cp-decl.c (finish_decl): Don't try to use TYPE if it's an
+	error_mark_node.
+
+	* cp-decl.c (sigsegv): Set to the default handler before calling
+	anything, so we can avoid possible infinite loops.  Call
+	my_friendly_abort instead of just error().
+	* cp-type2.c (my_friendly_abort): If I is 0, it's coming from sigsegv.
+
+	* cp-type2.c (my_friendly_assert): New function.
+	* cp-call.c, cp-class.c, cp-class.h, cp-cvt.c, cp-decl.c, cp-decl.h,
+	cp-decl2.c, cp-dem.c, cp-edsel.c, cp-except.c, cp-expr.c, cp-gc.c,
+	cp-hash.h, cp-init.c, cp-input.c, cp-lex.c, cp-lex.h, cp-method.c,
+	cp-pt.c, cp-search.c, cp-spew.c, cp-tree.c, cp-tree.h, cp-type2.c,
+	cp-typeck.c, cp-xref.c, cp-parse.y: Don't include assert.h, and use
+	the new function `my_friendly_assert' instead of the `assert' macro.
+
+	Wed Nov 11 22:14:51 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* tree.h (perm_calloc): Add decl.
+	* cp-parse.y (except_stmts): Declare return type of get_insns,
+	since we don't (can't) include rtl.h.
+	* cp-tree.c (TYPE_HASH): Use HOST_WIDE_INT instead of int when
+	casting pointers to integers.
+	(ld_cmp): Likewise.
+	* cp-call.c (build_method_call): Likewise.
+	* cp-class.c (finish_struct_methods): Likewise.
+	* cp-method.c (build_overload_value): Add decl of index.
+	(build_opfncall): Cast to HOST_WIDE_INT, not int.
+	* cp-search.c (get_binfo): Likewise.
+	(get_base_distance): Likewise.
+	(breadth_first_search): Likewise.  Also declare to return
+	HOST_WIDE_INT, not int.
+
+	Wed Nov 11 14:34:25 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	Thu Nov  5 15:58:38 1992  Tim Moore  (moore at defmacro.cs.utah.edu)
+
+	* cp-decl.c (duplicate_decls): Round to obstack alignment when
+	testing if newdecl is at the top of the permanent obstack.
+
+	Wed Nov 11 13:56:18 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-search.c (build_vbase_vtables_init): Make sure external virtual
+	tables are declared on machines that need the declaration by calling
+	assemble_external.
+
+	Wed Nov 11 12:51:44 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl2.c (grokfield): If the init field is really a list with
+	just an error_mark_node, then it wasn't a real initialization, so
+	don't treat it like one.
+
+	Tue Nov 10 16:21:20 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+ 
+	* cp-init.c (build_new): If arg 1 of an array reference is an
+	error_mark, then just pretend that there were 0 elements.
+
+	Tue Nov 10 13:23:30 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-typeck.c (build_x_function_call): If the type of FUNCTION is an
+	error_mark, don't bother checking its lang-specific info.
+
+	Tue Nov 10 12:38:36 1992  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-decl.c (decls_match): Avoid core dumping when TREE_TYPE is
+	NULL_TREE, as is the case when olddecl is a TEMPLATE_DECL.
+
+	Tue Nov 10 11:03:36 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+ 
+	* cp-decl.c (pushdecl_top_level): Disable assert for now; it's
+	always acted correctly.
+ 
+	Mon Nov  9 12:04:27 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-parse.y (try_for_typename): Deleted rule.
+	(scoped_id): Don't use it.
+
+	Fri Nov  6 18:07:37 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-init.c (expand_aggr_init): If INIT is 0, don't bother trying to
+	play with its type.
+
+	Thu Nov  5 16:52:37 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-decl.c (finish_decl): Set TREE_STATIC, TREE_PUBLIC and
+	DECL_EXTERNAL correctly for use with #pragma interface.
+
+	Fri Nov  6 10:07:01 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-class.c (finish_struct): Don't try to work with a field that
+	got a bogus type.
+
+	* cp-method.c (build_overload_value): Don't call debug_tree!
+
+	* cp-call.c (build_method_call): If processing a default argument
+	that calls a ctor for its default value, use INSTANCE_PTR for the
+	parm list, discarding what we knew before.
+
+	* cp-decl.c (grokdeclarator): If initializing a const member and
+	acting pedantic, then do make it an error. 
+
+	* cp-decl2.c (warn_traditional): New variable.
+	(lang_decode_option): Use it for -Wtraditional and -Wno-traditional.
+	* cp-tree.h (warn_traditional): Add decl.
+	* cp-lex.c (readescape): For x, avoid overflow when shifting in if.
+	Warn for \a and \x if warn_traditional; pass through
+	the escaped x and a if -traditional.  Support \e like \E; for both,
+	pedwarn about ANSI C.
+
+	* cp-call.c (find_scoped_type): Delete arg TAGS; instead, compute it
+	inside from TYPE.  If TAGS is null, don't return immediately, since
+	we need to look for TYPE_DECLs.
+	(resolve_scope_to_name): Call find_scoped_type without replicating
+	the tags.
+
+	Thu Nov  5 17:53:32 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Constant class members can be
+	initialized.
+
+	Thu Nov  5 17:11:30 1992  Mike Stump  (mrs@cygnus.com)
+
+	Thu Nov 5 19:48:17 1992  Niklas Hallqvist  (niklas@appli.se)
+
+	* cp-pt.c (instantiate_class_template): Types are used in later
+	processing, so they must go into the permanent obstack.
+
+	Thu Nov  5 13:02:56 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Don't allow members to be initialized
+	in the class declaration.
+
+	* cp-decl2.c (finish_file): Set the DECL_CLASS_CONTEXT on a function
+	that's a file-scope set of ctors/dtors for global variables, so
+	is_friend will see things the way they should be seen.
+
+	* cp-call.c (find_scoped_type): New function.
+	(resolve_scope_to_name): Use it to check for names that might be in
+	base classes.
+
+	Wed Nov  4 00:43:15 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-parse.y (db_yyerror): Deleted fn.
+	(yyprint, yyerror, init_parse, yyhook, reduce_cmp, token_cmp,
+	print_parse_statistics,set_yydebug, debug_yytranslate): Moved to
+	cp-lex.c.
+	(reduce_count, token_count): Ditto.
+	(current_declspecs): Made static.
+
+	* cp-typeck.c (build_c_cast): Warn if casting between a pointer and
+	an integer whose sizes differ.
+
+	* cp-parse.y (unary_expr): Finish making new with placement work;
+	use the rule `new' instead of the token `NEW' when parsing it.
+
+	Tue Nov  3 02:16:47 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-typeck.c (c_expand_return): Avoid referencing DECL_NAME if it's
+	null when checking for a ref to or the addr of a local variable.
+
+	* cp-search.c (dfs_pushdecls): Don't try to use the context of a
+	field which has none at the time.
+
+	* cp-decl.c (redeclaration_error_message): Don't complain about
+	redefinition of a function if it's a definition of an abstract
+	virtual function.
+	(duplicate_decls): For an abstract virtual, don't use the old RTL
+	from abort when creating the RTL for the newdecl.
+
+	Tue Nov  3 00:15:44 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* cp-decl.c (grokdeclarator): For `inline', `unsigned', and `signed',
+	see them as types, not as storage class specs, when looking for more
+	than one storage class.
+
+	* cp-lex.c (readescape): New arg ignore_ptr.
+	(real_yylex): Pass new arg, handle result that comes back.
+
+	* cp-decl.c (WCHAR_TYPE_SIZE): Deleted; never used.
+
+	Mon Nov  2 10:23:52 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-lex.c (real_yylex): Let skip_white_space handle \r.
+
+	* cp-parse.y (parmlist): Warn on a decl `foo (...)', without a first
+	argument.
+
+	* cp-type2.c (build_functional_cast): If expr_as_ctor's argument is
+	a SAVE_EXPR, don't wipe out the argument.
+
+	* cp-call.c (build_method_call): Only complain about not having an
+	object for a called method if the method is non-static.
+
+	Sun Nov  1 16:50:14 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl2.c (warn_char_subscripts): Declare.
+	(lang_decode_option): Handle -Wchar-subscripts.
+	* cp-typeck.c (build_array_ref): If the type of either the array or
+	its index is an error_mark_node, then return one.  Add code to see
+	if the index is a character (add warning), then do the default
+	promotions.  Don't warn if it's a register array. Make a ref
+	volatile if the array is volatile.
+	* cp-tree.h (warn_char_subscripts): Add decl.
+
+	* cp-typeck.c (common_type): If either type is nonsense (an
+	error_mark), use the other type.
+
+	Thu Oct 29 18:39:50 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Fix problem introduce by me on Oct 22
+	17:41:13.  Put back call to build_offset_type that I took out, as it
+	is not wrong, as the comment for build_offset_type had led me to
+	believe.
+
+	Thu Oct 29 17:30:12 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-cvt.c: Delete block-level extern decls; include flags.h instead.
+	* cp-tree.h (flag_int_enum_equivalence): Declare here.
+	* cp-call.c: Not here.
+
+	* Makefile.in (stamp-cp-parse): There are now only 29 shift/reduce
+	conflicts, because of the removed wrapper stuff.
+
+	* cp-lex.c (lastiddecl, ridpointers): Define here.
+	(NORID): Don't define here.
+	* cp-lex.h (NORID): Define here instead.
+	(ridpointers, lastiddecl, token_buffer, looking_for_typename): Ditto.
+	(make_pointer_declarator, make_reference_declarator,
+	reinit_parse_for_function, reinit_parse_for_method, yylex): Likewise.
+	* cp-parse.y: Don't define any of them in here.
+
+	* cp-typeck.c (commonparms): Call tree_cons with NULL_TREEs, not 0s.
+	(convert_arguments): Likewise.
+	Throughout the file, say `ANSI C++ forbids', not `ANSI C forbids'.
+	* cp-lex.c, cp-type2.c: Likewise.
+
+	Remove wrapper functionality from the compiler.
+	* cp-call.c (build_method_call): Delete wrap and wrap_type.
+	Delete code that used them. Don't set err_name to "wrapper", since
+	wrapper_name doesn't exist anymore.
+	* cp-class.c (finish_base_struct): Don't worry about TYPE_WRAP_TYPE.
+	* cp-decl.c (grokfndecl): Delete code for WRAPPER_EXPR and
+	ANTI_WRAPPER_EXPR.
+	(grokdeclarator): Likewise.  Don't set TREE_HAS_WRAPPER_PRED.
+	* cp-decl2.c (grokclassfn): Likewise.
+	(check_classfn): Likewise.
+	* cp-init.c (get_member_function): Don't check TYPE_NEEDS_WRAPPER.
+	* cp-lex.c (real_yylex): Don't check WRAPPER_OR_ANTI_WRAPPER_NAME_P.
+	* cp-method.c (wrapper_name, wrapper_pred_name, anti_wrapper_name):
+	Deleted variables.
+	(init_method): Don't do any setup for *WRAPPER_*.
+	(hack_wrapper): Deleted function.
+	* cp-parse.y (wrapper): Deleted rule.
+	(identifier_or_opname): Deleted all wrapper predicates.
+	(notype_declarator): Deleted predicates LEFT_RIGHT for wrappers.
+	* cp-ptree.c (print_lang_type): Deleted message for printing "wrapper".
+	* cp-search.c (get_wrapper): Deleted fn.
+	* cp-tree.h (struct lang_type): Deleted has_wrapper_pred and
+	wrap_type members.
+	(build_wrapper, hack_wrapper, get_wrapper): Deleted decls.
+	(wrapper_name, wrapper_pred_name, anti_wrapper_name): Deleted decls.
+	(TYPE_WRAP_TYPE, TYPE_HAS_WRAPPER, TYPE_NEEDS_WRAPPER,
+	TYPE_HAS_WRAPPER_PRED, WRAPPER_DECL_FORMAT, WRAPPER_PRED_DECL_FORMAT,
+	ANTI_WRAPPER_DECL_FORMAT, WRAPPER_NAME_FORMAT,
+	WRAPPER_PRED_NAME_FORMAT, ANTI_WRAPPER_NAME_FORMAT,
+	WRAPPER_NAME_P, WRAPPER_PRED_NAME_P, ANTI_WRAPPER_NAME_P,
+	WRAPPER_OR_ANTI_WRAPPER_NAME_P): Deleted.
+	(enum overload_flags): Deleted WRAPPER_FLAG, WRAPPER_PRED_FLAG,
+	and ANTI_WRAPPER_FLAG tags.
+	* cp-typeck.c (build_function_call_real): Delete wrapper code.
+	(unary_complex_lvalue): Don't check TYPE_NEEDS_WRAPPER.
+	* stmt.c (warn_if_unused_value): Don't check *WRAPPER_EXPR.
+	* tree.def (WRAPPER_EXPR, ANTI_WRAPPER_EXPR): Deleted.
+
+	Wed Oct 28 15:38:44 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-cvt.c (convert_to_reference): New arguments FNDECL, PARMNUM,
+	and ERRTYPE.  Use them to give warnings about const and volatile
+	references being used incorrectly.  Call itself with dummy arguments
+	where appropriate.
+	(convert): Call convert_to_reference with dummy args.
+	(convert_force): Likewise.
+	* cp-typeck.c (warn_for_assignment): Remove static declaration,
+	cp-cvt.c needs to see it now.
+	(convert_for_initialization): Call convert_to_reference with fndecl,
+	parmnum, and errtype.
+
+	Tue Oct 27 17:38:18 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Fix problem introduce by me on Oct 22
+	17:41:13.  Only output error or warning message	about extra
+	qualifiers when we are inside a class declaration.
+
+	Tue Oct 27 16:21:41 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-tree.h (THIS_NAME_P): Fix to reflect September 1 change in
+	THIS_NAME.
+
+	Tue Oct 27 12:35:59 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-parse.y (operator_name): Remove check for top-level operator
+	<typename> decl.
+	* cp-decl.c (grokdeclarator): Complain here about type conversion
+	operators that aren't declared as members of classes. 
+
+	* cp-decl.c (grokdeclarator): Only call do_friend on a friend if
+	decl's non-zero.
+
+	Tue Oct 27 09:31:08 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-lex.c (do_identifier): Add missing fourth argument to
+	lookup_field.
+
+	Mon Oct 26 15:15:39 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-cvt.c (convert_to_reference): Check for ambiguities
+	between constructor and conversion operators a bit harder.
+
+	Sat Oct 24 19:34:39 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	Mon Sep 14 14:36:53 1992  Chip Salzenberg  (chip@tct.com)
+
+	cp-decl.c (poplevel): If apparently nested inline function has
+	DECL_ABSTRACT_ORIGIN, don't output it; propagate TREE_ADDRESSABLE.
+	(pushdecl): When copying inline details into an extern decl,
+	copy DECL_RESULT, TREE_ASM_WRITTEN.  Set DECL_ABSTRACT_ORIGIN.
+
+	Fri Oct 23 18:52:19 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (poplevel): Use error_with_decl on an unused label, so
+	its line number comes out correct.
+
+	Thu Oct 22 18:31:50 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-parse.y (operator_name): If a type conversion operator is
+	defined at the top level, don't crash, complain.
+
+	Thu Oct 22 17:41:13 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Return void_type_node instead of
+	NULL_TREE on errors, to forestall another error message.  Check for
+	redundant or illegal qualification on class members.
+
+	Thu Oct 22 13:15:57 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-tree.h (ANON_AGGRNAME_P): Check the second charater as well, as
+	it could be $vtbl_ptr_type, and not an ANON_AGGRNAME.
+
+	Wed Oct 21 19:31:36 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-call.c (build_method_call): Initialize b_or_d to 0.
+
+	* cp-typeck.c (compparms): Delete dead code for returning if either
+	TREE_PURPOSE is true when t1 and t2 are both 0.
+
+	* cp-parse.y (object): Only pass one argument into build_x_arrow.
+
+	* cp-parse.y (unary_expr): Add code to parse `&&label'.
+	(stmt): Expand computed gotos.
+
+	* cp-method.c (fndecl_as_string): Say it's static before giving its
+	type, it looks better (and matches how you'd declare it).
+
+	Wed Oct 21 16:22:43 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (start_decl): return NULL_TREE, not error_mark_node to
+	signify error.
+	* cp-decl2.c (cplus_decl_attributes): New function.  Don't call
+	decl_attributes if the first argument is NULL_TREE.
+	* cp-tree.h (cplus_decl_attributes): Declare new function.
+	* cp-parse.y: Changed all calls to decl_attributes into calls to
+	cplus_decl_attributes, as all calls may pass NULL_TREE in the first
+	argument.
+
+	Wed Oct 21 11:40:35 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-call.c (build_method_call): Avoid an abort on parse errors by
+	changing an assert into a conditional my_friendly_abort.
+
+	Tue Oct 20 16:52:32 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-tree.h (TYPE_ASSEMBLER_NAME_STRING,
+	TYPE_ASSEMBLER_NAME_LENGTH): New macros.
+	* cp-search.c (build_type_pathname): Use new macros.
+	* cp-decl.c (pushtag): Set DECL_ASSEMBLER_NAME for TYPE_DECLs with
+	build_overload_name so that assembler names for template type things
+	are like __vt$t1X1Zi$1T.4 and not __vt$X<int>$T.4.
+	* cp-decl.c (pushdecl): Since the rest of the compiler wants to use
+	DECL_NAME for TYPE_DECLs, use that instead of DECL_ASSEMBLER_NAME.
+
+	Tue Oct 20 11:29:50 1992  Mike Stump  (mrs@cygnus.com)
+
+	Wed Oct  7 16:01:55 1992  Chip Salzenberg  (chip@tct.com)
+
+	[ changes propagated from 921005 snapshot ]
+	* cp-lex.c (readescape): No warning if digits in \x are all 0's.
+
+	Fri Oct  9 15:18:19 1992  Brendan Kehoe  (brendan@cygnus.com)
+
+	* cp-decl.c (duplicate_decls): Only find out if olddecl is a
+	friend after we know it's not a TREE_LIST.
+
+	Wed Oct  7 16:04:34 1992  Mike Stump  (mrs@cygnus.com)
+
+	Wed Oct  7 12:26:07 PDT 1992  Ron Guilmette  (rfg at netcom.com)
+
+	* cp-lex.c (readescape):  Permit \? as an escape sequence.
+
+	Tue Oct  6 17:54:09 1992  Mike Stump  (mrs@cygnus.com)
+
+	Major MI revamp.
+
+	* cp-search.c (get_binfo, find_base_distance):  Fix comments.
+	Disable incorrect code that would incorrectly find ambiguities where
+	none existed.  Add some code to find all ambiguities.
+	* cp-search.c (get_binfo2_recursive, get_binfo2): Added to find
+	ambiguities.
+
+	* cp-search.c (convert_pointer_to_single_level): Added so that one
+	can convert pointer unambiguously to an immediate base class
+	pointer.
+
+	* cp-search.c (dfs_walk): Added comments.  Fixed to keep track of
+	how it walks the inheritance hierarchy so that when we get down to
+	the bottom, we have a pointer to what we want.
+	* cp-search.c (dfs_find_vbases): Changed to use new intermediate
+	pointer instead of incorrectly trying to convert at the bottom.
+	* cp-search.c (init_vbase_pointers): Changed to set up new
+	intermediate pointer.
+
+	* cp-*.c: Rename child -> base_binfo, child_child ->
+	base_base_binfo, child_binfos -> base_binfos, .*_child ->
+	.*_base_binfo.  Rename DERIVED_FROM_P to UNIQUELY_DERIVED_FROM_P.
+
+	Tue Oct  6 14:51:13 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-spew.c (yylex_ctr): Make unsigned.
+	* cp-decl2.c (spew_debug): Add extern reference.
+	(lang_decode_option): New option `-spew-debug', so masochists can
+	use it when they need to.
+
+	Mon Oct  5 15:47:35 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	Implement protected baseclasses.
+	* cp-class.c (finish_base_struct): Set TREE_VIA_PROTECTED.
+	(finish_struct_methods): Check for either public or protected
+	members to kick out of the "all members are private" test.
+	* cp-decl.c (xref_tag): Set TREE_VIA_PROTECTED appropriately.
+	* cp-parse.y (base_class_visibility_list): Remove code about
+	`protected' visibility not being implemented.
+	* cp-pt.c (tsubst): Set via_protected and call hash_tree_cons
+	with it as necessary.
+	* cp-search.c (compute_visibility): Set visibility if protected.
+	Return the appropriate visibility when resolving a field.
+	(lookup_field): Set TREE_VIA_PROTECTED for btypes from its child.
+	When complaining about a member being protected, differentiate when
+	it's from a protected base class (could be a public member in the
+	base).
+	(lookup_fnfields): Set TREE_VIA_PROTECTED.
+	(get_baselinks): Pass TREE_VIA_PROTECTED into hash_tree_cons.
+	Also pass a 0 when necessary.
+	* cp-tree.c (propagate_binfo_offsets): Set TREE_VIA_PROTECTED.
+	(layout_vbasetypes): Ditto.
+	(layout_basetypes): Ditto.
+	(list_hash_lookup): Check TREE_VIA_PROTECTED when looking at an
+	incomplete basetype.
+	(hash_tree_cons): New argument `via_protected'.  Set TREE_VIA_PROTECTED
+	when necessary.
+	(list_hash_lookup_or_cons): Check TREE_VIA_PROTECTED when making
+	sure a hash list is sane.
+	(make_binfo): Set TREE_VIA_PROTECTED for the new child.
+
+	Mon Oct  5 13:27:44 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-init.c (maybe_adjust_addr_for_delete):  Make sure we don't
+	evaluate the addr twice if it has side effects.
+
+	Mon Oct  5 13:05:37 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-init.c (build_vec_delete): Make sure we don't evaluate the base
+	expression twice if it has side effects.
+
+	Mon Oct  5 12:38:35 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Issue a warning or error if we're
+	being ANSI-careful when they do `extern inline'.
+	(flag_ansi): Add extern decl.
+
+	Mon Oct  5 12:34:32 1992  Mike Stump  (mrs@cygnus.com)
+
+	* cp-class.c (finish_struct): Don't give an error if an enumeration
+	type is stuck in a bit-field, as it is legal c++.
+
+	Mon Oct  5 11:43:09 1992  Mike Stump  (mrs@cygnus.com)
+
+	Mon Sep 14 16:39:10 1992  Chip Salzenberg  (chip@tct.com)
+
+	* cp-cvt.c (convert_to_integer): Don't pass truncation thru lshift
+	if shift count >= width of narrower type.  Instead, just use 0.
+
+	Fri Oct  2 13:21:40 1992  Ken Raeburn  (raeburn@kyriath.cygnus.com)
+
+	* cp-decl.c (start_function): Reinstate error check for missing
+	semicolon erroneously removed.
+
+Thu Nov 12 17:37:23 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.md (movdf_internal): Split movdf insn into two -- one for
+	normal use, and one for -msoft-float, and don't prefer FPU
+	registers in the -msoft-float case.
+	(movsf_internal): Ditto for movsf.
+
+Thu Nov 12 07:30:17 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.h (HARD_REGNO_MODE_OK): Restrict MODE_INT from FP regs only.
+
+	* i386.md (floatMN2 recognizers): Don't omit mode on a
+	match_operand that might be reloaded.  Split into separate
+	patterns for each mode.
+	(zero_extract test): Disable for now.
+
+	* i386.c (float_op): Delete - no longer used.
+
+Wed Nov 11 11:55:22 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+ 
+	* combine.c (simplify_comparison, case ASHIFTRT): mode_for_size
+	returns BLKmode on error, not VOIDmode.
+
+	* romp.md (reload_outdi): Write as proper PARALLEL.
+
+Wed Nov 11 01:06:33 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* toplev.c (lang_options): Change +e... to -+e...
+
+	* xm-tower.h: Include xm-svr3.h.
+	(bcopy, bzero, bcmp, USG): Macros deleted.
+
+Tue Nov 10 12:26:23 1992  Steve Chamberlain (sac@cygnus.com)
+
+	* sdbout.c (plain_type_1): Handle LONG_TYPE_SIZE like INT_TYPE_SIZE.
+
+Tue Nov 10 14:20:27 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.md (ffssi2): Add =& constraints to the two match_scratch
+	clobbered registers.  Fix from John F Carr.
+
+	* mips-tdump.c (toplevel): Move #undef index and rindex before
+	including sym.h.
+
+Tue Nov 10 10:37:50 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (install-common): Delete deps $(srcdir)/g++ $(srcdir)/c++
+
+	* expr.c (init_expr_once): Try indexing mem by fp as well as sp.
+
+Tue Nov 10 10:28:59 1992  Chris Smith  (csmith@convex.com)
+
+	* genattrtab.c (main): Unlimit stack size.
+
+Tue Nov 10 10:17:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* print-rtl.c (print_rtx): Use sizeof spaces - 1 to get the length
+	of the spaces string.
+
+Tue Nov 10 09:56:32 1992  Jeffrey A. Law  (law@schirf.cs.utah.edu)
+
+	* pa-hpux.h (LINK_SPEC): Disable linking against shared libraries.
+	* pa-ghpux.h (LINK_SPEC): Likewise. 
+
+Tue Nov 10 08:39:01 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* elxsi.h (GO_IF_LEGITIMATE_ADDRESS): Verify that register is valid
+	for use as base register (un-allocated pseudos aren't when strict).
+
+Mon Nov  9 22:17:23 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xm-3b1.h (index, rindex): Define as macros.
+
+	* i386bsd.h: Complete rewrite.
+
+Mon Nov  9 14:22:38 1992  Michael Meissner  (meissner@osf.org)
+
+	* mips.h, decrose.h: Move LINK_LIBGCC_SPECIAL to decrose.h.
+
+Mon Nov  9 12:39:03 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* unroll.c (final_biv_value): Make a note after loop_end
+	if we need to use NEXT_INSN (loop_end).
+
+	* objc-actions.c (build_message_expr): Don't crash if super_type is 0.
+
+Mon Nov  9 07:42:30 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* caller-save.c (save_call_clobbered_regs): Ensure any insns we add
+	are in the same basic block as the insn we added them for.
+
+Mon Nov  9 12:35:57 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
+
+	* pa.h (TARGET_*): Move it to the beginning of the file.
+	(CPP_SPEC): Handle -mnosnake.
+	* pa-ghpux.h pa-hpux.h pa1-ghpux.h pa1-hpux.h pa1.h pa.h: Move
+	definition of TARGET_DEFAULT to before inclusion of other pa*h files.
+	Only define TARGET_DEFAULT if not already defined.
+	Get rid of hpux8 conditionals.
+
+Sun Nov  8 20:38:19 1992  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* i386.md (movstrsi): mask move count after signed shift.
+
+Sun Nov  8 00:24:30 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixinc.svr4: Avoid use of | in sed regexp; use multiple s commands.
+
+	* i386mach.h: Include i386gstabs.h, not i386gas.h.
+
+	* gsyslimits.h: Renamed from syslimits.h.
+	* Makefile.in (USER_H): syslimits.h deleted.
+	(install-common-headers): Install gsyslimits.h as syslimits.h.
+	Depend on gsyslimits.h and assert.h.
+
+	* cccp.c (rescan): Accept # as command inside macro args, etc.
+	If an actual newline at the same level precedes.
+
+	* fixincludes (EXINIT): Set it to `set', not null.
+
+	* toplev.c (main): Use strncmp when testing for gstabs+ vs gstabs.
+
+Sat Nov  7 17:46:35 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* optabs.c (expand_unop):
+	For complex negation, do get_insns, not gen_sequence.
+
+	* c-decl.c (finish_decl): Don't clear DECL_INITIAL in inline fn decls.
+
+	* c-typeck.c (process_init_constructor): Strip NOP_EXPR from indices.
+	Clear end_index if there's an error in a range.
+
+	* mips-5sysv.h, mips-5svr4.h, mips-5bsd.h (CPP_PREDEFINES):
+	Add single-underscore variants of all the predefined symbols.
+
+	* gstddef.h [_ANSI_H_]: When undefing at the end, test _STDDEF_H,
+	not __need_ptrdiff_t.
+
+	* mips.c (gen_int_relational): Handle overflow when incrementing cmp1.
+
+Fri Nov  6 23:03:14 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* elxsi.c: Include config.h.
+
+Fri Nov  6 18:53:21 1992  Chip Salzenberg  (chip@tct.com)
+
+	* i386sco.h (STARTFILE_SPEC): Fix line wrap.
+	(SIGNED_CHAR_SPEC): Defined to set _CHAR_UNSIGNED.
+
+Fri Nov  6 19:06:56 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* dbxout.c (dbxout_symbol): Give name ` ' to unnamed enums.
+
+Fri Nov  6 15:26:30 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+ 
+	* optabs.c (init_libfuncs): Add casts when comparing/incrementing enum.
+ 
+Fri Nov  6 15:41:00 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* toplev.c (main): Really accept -gstabs+.
+
+Fri Nov  6 06:46:22 1992  Tom Wood  (wood@dg-rtp.dg.com)
+
+	* m88k.md (tcnd_divide_by_zero, divsi3, udivsi3): Allow the
+	explicit trap for divide by zero to resume execution along the
+	expected path.
+
+	* t-m88kv4 (FIXINCLUDES): Delete.
+
+Fri Nov  6 03:08:13 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* i386.md (andsi3): Mask immed op to 0xff in QI-reg ff00-byte case.
+
+	* gstddef.h: Find ansi.h in machine subdir.
+	[__need_ptrdiff_t]: Don't undef _SIZE_T_ or _WCHAR_T_.
+	* gvarargs.h, gstdarg.h: Don't test, define or undef _VA_LIST_
+	on NET 2 systems.  Don't include ansi.h.
+
+	* c-lex.c (readescape): Support \e like \E.  Warn only if -pedantic.
+
+Fri Nov  6 08:34:17 1992  Tim Moore  (moore at defmacro.cs.utah.edu)
+
+	* integrate.c (copy_rtx_and_substitute)[ARGS_GROW_DOWNWARD]: Map
+	virtual args pointer to the top of the argument block.
+	* calls.c (expand_call)[ARGS_GROW_DOWNWARD] Fix fencepost error in
+	calculating high_to_save and low_to_save.  Use - high_to_save to
+	address stack_area.
+
+Fri Nov  6 00:41:53 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* sparc.h (TARGET_EDOM, GEN_ERRNO_RTX): Deleted.
+
+Thu Nov  5 18:55:44 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (output_prologue): Fix typo: `add' should be `addq'.
+
+Thu Nov  5 18:35:43 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (install-fixincludes): Add semicolon in new for-loop.
+
+Thu Nov  5 15:24:14 1992  Michael Meissner  (meissner@osf.org)
+
+	* i386rose.h, decrose.h (REAL_LD_FILE_NAME): Define to be the
+	correct location on OSF/1 -- /usr/bin/ld points to
+	/usr/ccs/gcc/ld, which is collect.
+	(REAL_NM_FILE_NAME): Ditto for nm.
+	(REAL_STRIP_FILE_NAME): Ditto for strip.
+
+Wed Nov  4 13:36:10 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* optabs.c (expand_binop): When trying to expand a multiple word
+	add into multiple single word adds, don't overwrite OP0 and OP1 in
+	case we must backtrack.  We use instead new variables XOP0 and XOP1.
+
+Wed Nov  4 16:45:53 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config.sub: Don't discard SCO version number if it's 3.2v4.
+
+	* xm-vax-vms.h (HOST_FLOAT_FORMAT): Defined.
+
+	* varasm.c: Fix typos in last change.
+
+Wed Nov  4 10:11:28 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
+
+	* va-pa.h (va_end): Do it like in other va-*.h files.
+
+Wed Nov  4 07:23:46 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (optimize_reg_copy_1): If P is a CALL_INSN, count
+	it as being crossed by SRC since SRC used to die there.
+
+Wed Nov  4 00:13:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* x-next (libgcc2.a, stdarg.h): New rules.
+
+	* varasm.c (immed_real_const_1, immed_double_const):
+	Don't push on const_double_chain in nested function.
+
+	* expr.c (emit_move_insn): Do return a value, in complex case.
+
+Tue Nov  3 10:45:09 1992  H.J. Lu  (hlu@yardbird.eecs.wsu.edu)
+
+	* i386linux.h (STARTFILE_SPEC): -static is added to ld if 
+	  -pg, -g or -p is passed down by gcc.
+
+Tue Nov  3 15:14:48 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* pa.c (output_ior): Handle "ior" against zero.
+
+	* i386mach.h (YES_UNDERSCORES): Define it.
+
+	* sun3.h (ASM_OUTPUT_FLOAT_OPERAND): Use REAL_VALUE_MINUS_ZERO.
+	(ASM_OUTPUT_DOUBLE_OPERAND): Likewise.
+
+Tue Nov  3 08:25:35 1992  Chris Smith  (csmith@convex.com)
+
+	* convex.h (REG_CLASS_FROM_LETTER): Add 'A', index regs.
+	(movsi alternative): Use it to make psh.w sp (push the
+	stack pointer) a noninstruction.
+
+Tue Nov  3 08:05:10 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): Ensure operand of REG_NOTES is an INSN;
+	otherwise, we might try to read outside allocated memory.
+
+	* va-alpha.h (va_end): Don't define enum if va_end already defined.
+
+Tue Nov  3 02:56:22 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc/Makefile: Use $(srcdir), not `..'.
+
+	* objc-actions.c (build_message_expr): Use save_expr for receiver.
+
+	* va-i860.h (va_end, anonymous enum): Don't declare if
+	va_end already defined as macro.
+	* va-mips.h, va-i960.h (va_end): If already a macro, don't declare.
+
+Mon Nov  2 21:17:40 1992  Paul Eggert  (eggert@twinsun.com)
+
+	* va-sparc.h (va_end): If already def as macro, don't declare.
+
+Mon Nov  2 16:04:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* i386linux.h: Include i386gstabs.h, not i386gas.h.
+
+Mon Nov  2 14:46:31 1992  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (install-cross-tools): Delete old symlink before
+	making new one; else symlink will fail and we will use
+	backed strategy.
+
+Sun Nov  1 17:55:56 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* varasm.c (decode_rtx_const): Handle PC same as LABEL_REF.
+
+Sun Nov  1 03:19:39 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.3.1 released.
+
+	* x-i386s4: Renamed from x-i386sco4.
+	* configure (i[34]86-*-sco*): Use new name.
+
+	* sol2-c1.asm, sol2-ci.asm, sol2-cn.asm: Renamed from sol2-crt...
+	* t-sol2: User new names.
+
+See ChangeLog.6 for earlier changes.
diff --git a/gcc/ChangeLog.8 b/gcc/ChangeLog.8
new file mode 100644
index 0000000..9c9140e
--- /dev/null
+++ b/gcc/ChangeLog.8
@@ -0,0 +1,11080 @@
+Tue Mar  1 19:43:31 1994  Stan Shebs  (shebs@cygnus.com)
+
+	* a29k/a29k.h (TARGET_SOFT_FLOAT): Define.
+	(TARGET_SWITCHES): Add -msoft-float.
+	* a29k/a29k.md (all floating point): Disable floating point insns
+	if doing soft floats.
+
+Tue Mar  1 19:36:05 1994  Glenn Holloway  (glenn@soi.com)
+
+        * defaults.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use
+	ASM_OUTPUT_INTERNAL_LABEL instead of ASM_GENERATE_INTERNAL_LABEL.
+
+Tue Mar  1 19:26:47 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* sparc/sol2.h (JUMP_TABLES_IN_TEXT_SECTION): Delete.
+	* sparc/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Add.
+
+	* c-typeck.c (build_binary_op): Pass TREE_TYPE (orig_op0) not
+	orig_op0 to TREE_UNSIGNED.
+
+Tue Mar  1 18:33:33 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* varasm.c (output_constant): Strip off some NOP_EXPRs
+	before further processing.
+
+Tue Mar  1 12:00:00 1994  Stan Cox  (coxs@dg-rtp.dg.com)
+
+	* m88k.c (legitimize_address, print_operand): Make -fPIC work
+	again.  Put addresses inside UNSPEC when loading them to
+	ensure that cse won't mistakenly optimize them.
+        
+	* m88k.md: Two new patterns, to match (HIGH (UNSPEC (..))) and
+	(LO_SUM (reg) (UNSPEC (..)))  as generated above.
+
+	* m88k.h: (GO_IF_LEGITIMATE_ADDRESS) Reject invalid PIC addresses.
+
+Tue Mar  1 11:00:14 1994  Doug Evans  (dje@cygnus.com)
+
+	* configure: Fix some typos.
+	* config.sub: Move comment to proper place.
+
+Mon Feb 28 18:31:50 1994  Doug Evans  (dje@cygnus.com)
+
+	* ns32k/encore.h (ASM_OUTPUT_ASCII): Fix typo.
+
+Mon Feb 28 18:31:42 1994  Steve Chamberlain  (sac@cygnus.com)
+
+	* expr.c (convert_move): Change name of truncsipsi to truncsipsi2
+	to conform to existing convention, same with extendpsisi.
+
+Mon Feb 28 08:11:55 1994  Jim Meyering  (meyering@comco.com)
+
+	* cccp.c (check_precompiled): Delete unused var dollar_loc.
+	(pcstring_used): Delete unused var TMP.
+	(write_output): Delete unused var WRITTEN.
+	(assertion_lookup): Delete unused var BP.
+	(pedwarn_with_file_and_line): Delete unused var I.
+
+Mon Feb 28 07:12:24 1994  Julian Bradfield  (jcb@dcs.ed.ac.uk)
+
+	* m68k.md (call): Change HPUX_ASM case.
+	* m68k/hp320.h (READONLY_DATA_SECTION, LEGITIMATE_PIC_OPERAND_P):
+	Defined.
+	(FUNCTION_PROLOGUE): Emit PIC prologue.
+
+Mon Feb 28 06:21:18 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (eliminate_regs, case MULT): New case, to apply
+	distributive law, when needed.
+
+	* stor-layout.c (variable_size): If global_bindings_p < 0,
+	don't even make the SAVE_EXPR.
+
+	* reg-stack.c (reg_to_stack): Use GET_RTX_CLASS.
+	Clear LABEL_REFs here.
+	(find_blocks): Make algorithm identical to that inreg_to_stack.
+	Use GET_RTX_CLASS.
+	Don't clear LABEL_REFs here.
+	Build a list of labels referenced by other than jumps.
+	If computed jump, mark using that list and forced_labels.
+	(uses_reg_or_mem): New function, copied from flow.c.
+
+	* optabs.c (expand_binop): Use expand_divmod to do
+	integer division for DIV of MODE_COMPLEX_INT operands.
+
+Sun Feb 27 20:24:30 1994  Rob Austein  (sra@epilogue.com)
+
+	* protoize.c (process_aux_info_file): Properly start over on
+	file error.
+
+Sun Feb 27 17:42:19 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* expmed.c (store_split_bit_field): If OP0 is a SUBREG, then
+	compute WORD from the base register, instead of from the SUBREG.
+	(extract_split_bit_field): Likewise.
+	(extract_bit_field): Sign-extend multiword bitfield if necessary.
+
+	* emit-rtl.c (subreg_realpart_p): New function.
+	* integrate.c (copy_rtx_and_substitute): Use subreg_realpart_p
+	instead of subreg_lowpart_p for CONCAT.
+
+	* c-pragma.c (HANDLE_PRAGMA_WEAK): Depend on ASM_OUTPUT_DEF not
+	SET_ASM_OP when defining it.
+	* dwarfout.c (ASM_OUTPUT_DEF): Delete definition.
+	* defaults.h (ASM_OUTPUT_DEF): Add it here.
+	* varasm.c (handle_pragma_weak): Depend on ASM_OUTPUT_DEF not
+	SET_ASM_OP when defining it.  Use ASM_OUTPUT_DEF to output value
+	instead of SET_ASM_OP and explicit ASM_OUTPUT_LABELREF calls.
+
+	* calls.c (expand_call): Set nregs to -1 for BLKmode parameter,
+	then before move_block_to_reg call set it to the type size.
+
+	* reorg.c (try_merge_delay_insns): Success when SLOT_NUMBER ==
+	NUM_SLOTS not when NEXT_TO_MATCH == 0.
+
+	* expmed.c (store_fixed_bit_field): Adjust BITPOS so that it
+	fits inside MODE before adjusting OFFSET to get an aligned address.
+
+	* expmed.c (store_fixed_bit_field): Move float mode to integral
+	mode conversion from near end of function to top of function.
+
+	* c-typeck.c (process_init_element): Check for constructor_type
+	set before dereferencing it in the string cst code.
+
+Sun Feb 27 17:28:06 1994  Philippe De Muyter  (phdm@info.ucl.ac.be)
+
+	* m68k/mot3300.h (TARGET_DEFAULT): Default to 68020-40.
+	(ASM_SPEC): New macro.
+	(FUNCTION_VALUE, FUNCTION_VALUE_REGNO_P): Return pointer in a0.
+	(*_LIBCALL): Use functions from sysV68's library.
+	(INIT_CUMULATIVE_ARGS, FUNCTION_ARG*): Some libcalls pass
+	parameters in registers.
+
+Sun Feb 27 15:20:35 1994  Ron Guilmette  (rfg@netcom.com)
+
+	* flags.h (id_clash_len): Now unsigned.
+	(warn_larger_than, larger_than_size): New variables.
+	* toplev.c: Likewise.
+	(main): Support -Wlarger-than-NN.
+	* c-common.c (declare_hidden_char_array): Build new type if
+	warn_larger_than.
+	* c-decl.c (finish_decl, finish_function): Issue warning for
+	large objects, if requested.
+
+Sun Feb 27 10:50:50 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* integrate.c (expand_inline_function): Allow extra arguments
+	and force their evaluation for side-effects.
+
+	* local-alloc.c (qty_compare{,_1}): Give multi-word regs higher
+	priority, as stated in the comments.
+	* global.c (allocno_compare): Likewise.
+
+	* c-common.c (binary_op_error): Initialize OPNAME.
+	* c-decl.c (store_parm_decls): Initialize some vars.
+	* c-lex.c (readescape): Initialize FIRSTDIG.
+	* c-typeck.c (type_lists_compatible_p): Initialize NEWVAL.
+	(pop_init_level): Initialize SIZE.
+	(output_pending_init_elements): Initialize NEXTPOS_TREE.
+	* calls.c (expand_call): Initialize OLD_PENDING_ADJ.
+	* cccp.c (main, args case 'D'): Rewrite to avoid uninitialized var.
+	(main, args case 'A'): Delete unused var P1.
+	(rescan): Initialize STR.
+	(do_xifdef, do_endif): Initialize arg to skip_to_end_of_comment.
+	* expr.c (emit_move_insn): Delete unused vars.
+	(emit_move_insn_1): Don't set SUBMODE unless used.
+	(expand_builtin, case BUILT_IN_SAVEREGS): Clean up uses of VALREG
+	and SAVED_VALREG.
+	* final.c (final_scan_insn): Always set OPS and use alloca.
+	* gcc.c (execute): Initialize PROG.
+	* optabs.c (emit_float_lib_cmp): Init LIBFUNC; abort if not reset.
+	* stmt.c (expand_start_bindings): Properly set NOTE if bytecode.
+	* tree.c (make_node, stabilize_reference_1): Abort if unknown class.
+	* varasm.c (make_decl_rtl): Initialize NAME and abort if not reset.
+
+Sat Feb 26 13:09:37 1994  Doug Evans  (dje@canuck.cygnus.com)
+	
+	* mips-tfile.c (fatal, error): Don't use prototypes
+	ifndef HAVE_VPRINTF.
+
+	* fixincludes: Fix including of machine/r3_cpu.h and machine/r4_cpu.h
+	in machine/cpu.h on Ultrix 4.3.
+
+Sat Feb 26 07:14:04 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.h (MASK_NO_SUM_IN_TOC, TARGET_NO_SUM_IN_TOC): New macros.
+	(MASK_MINIMAL_TOC): Change bit value.
+	(TARGET_SWITCHES): Add -mno-sum-in-toc; use -mfull-toc instead
+	of -mnormal-toc, other minor changes.
+	* rs6000.md (movsi): If -mno-sum-in-toc, do addition of
+	symbol + const.
+
+	* jump.c (rtx_renumbered_equal_p): Fix bug in comparing SUBREGs
+	and REGs.
+	Two commutative operations are equal if the operands are in the
+	opposite order.
+
+	* function.c (fixup_var_refs_insn): Delete CLOBBER of VAR.  If
+	VAR is being assigned into by a libcall sequence, remove the
+	libcall notes.
+
+	* cse.c (count_reg_usage, case SET): If SRC has side-effects,
+	count a usage of DEST in it.
+
+	* expr.c (store_expr): In promoted TARGET case, if EXP is a
+	volatile MEM and WANT_VALUE is nonzero, only reference the MEM once.
+	Return TARGET if it is a hard register; clean up return code.
+
+	* tree.c (substitute_in_type, case REAL_TYPE): Fix typo in
+	previous change.
+
+Fri Feb 25 06:42:20 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.c (substitute_in_type, case REAL_TYPE): Allow
+	TYPE_{MIN,MAX}_VALUE to be unassigned.
+
+	* combine.c (if_then_else_cond): Fix typo in narrowing of a SUBREG.
+
+	* alpha.md (neg[sd]f2): Use %R1 consistently.
+
+	* reload.c (find_reloads): Don't restrict class of multiword
+	operand to preferred class.
+	(find_reloads_address_1): Rework to use `switch'.
+	Reload a SUBREG of a hard reg as a unit.
+
+	* alpha.md (mul*): Disallow multiply by constant.
+
+Thu Feb 24 21:20:11 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixinc.sco: In <prototypes.h>, fix prototypes of getcwd and
+	link.
+
+Thu Feb 24 13:06:05 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config.sub: Don't force os=-hpux for hp9k2... and hp9k3...
+
+Thu Feb 24 11:17:11 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* configure (hppa*-*-osf*): Renamed from hppa*-*-mach.  Target
+	filenames changed accordingly.
+
+Thu Feb 24 08:54:27 1994  Bob Miorelli  (pwa-b!miorelli@uunet.uu.net)
+
+	* lynx.h (LIB_SPEC, LINK_SPEC): Add missing blanks.
+
+Thu Feb 24 08:42:07 1994  Ian Willis  (ianw@sco.com)
+
+	* i386/sco.h, i386/scodbx.h (HANDLE_SYSV_PRAGMA): Define.
+
+Thu Feb 24 07:31:44 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* loop.c (maybe_eliminate_biv_1): Ignore GIV if it isn't
+	always computed.
+
+	* loop.c (scan_loop, strength_reduce): Go back to LOOP_TOP, not
+	its NEXT_INSN (in case SCAN_START == LOOP_TOP).
+
+Wed Feb 23 07:30:14 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (choose_reload_regs): If EQUIV is a SUBREG, 
+	make a new REG.
+
+	* c-common.c (decl_attributes): Warn if attribute will be ignored.
+	Allow `noreturn', `volatile', and `const' on object of type
+	pointer to function.
+	Always give decl with error or warning.
+	* calls.c (expand_call): Functions may be const or volatile from
+	their type.
+
+Tue Feb 22 11:00:12 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: In #[el]if, put double underscores around M32,
+	m88k, pdp11, tower[_0-9]*, u370, u3b[0-9]*.  From Kaveh R.
+	Ghazi.
+
+	* fixinc.sco: Fix prototype declaration of utime in <sys/times.h>;
+	it's broken in SCO 3.2v4.0.
+
+Tue Feb 22 08:14:28 1994  Matthias Pfaller  (leo@marco.de) 
+
+	* ns32k.h (FUNCTION_{PROLOGUE,EPILOGUE}): %$ is not supported
+	in fprintf.
+	(ADJSP): New macro to resolve %$.
+
+	* pc532.h (FRAME_POINTER_REQUIRED): Deleted.
+	* pc532-mach.h (FRAME_POINTER_REQUIRED): Moved to here.
+	(DEFAULT_PCC_STRUCT_RETURN): Deleted; redundant.
+
+	* ns32k.c (output_move_dconst): New function.
+	* ns32k.h (output_move_dconst): New declaration.
+	* ns32k.md: Added peephole patterns for stack adjustments followed
+	by QI/HI pushes.
+	(movsi): Use output_move_dconst for TARGET_32532.
+	(ffs): New patterns.
+
+	* ns32k.c (global_symbolic_reference_mentioned_p): New function.
+	(print_operand_address): Allow pc-relative mode not only
+	for {LABEL, SYMBOL}_REF but for CONST too. If compiling PIC,
+	transform "symbol+const(Rx)" to "const(symbol(sb))[Rx:b]".
+	* ns32k.h (OVERRIDE_OPTIONS): New macro to support PIC.
+	(FUNCTION_PROLOGUE): Save/Load sb when compiling PIC.
+	(FUNCTION_EPILOGUE): Restore sb when compiling PIC.
+	(INITIAL_FRAME_POINTER_OFFSET): Take saved sb into account when PIC.
+	(LEGITIMATE_CONSTANT_P, GO_IF_LEGITIMATE_ADDRESS):
+	Set current_function_uses_pic_offset_table if P uses a global
+	symbolic reference.
+	(ENCODE_SECTION_INFO): New macro to support PIC.
+
+Tue Feb 22 07:59:27 1994  Torbjorn Granlund  (tege@cygnus.com)
+
+	* alpha.md (divsi3): Emit all RTL from RTL template.
+	(udivsi3, modsi3, umodsi3, divdi3, udivdi3, moddi3, umoddi3): Likewise.
+
+Tue Feb 22 07:21:31 1994  Samuel A. Figueroa  (figueroa@cs.nyu.edu)
+
+	* i386/os2.h (LINK_SPEC, LIB_SPEC): New macros.
+	(PATH_SEPARATOR): Delete from here.
+	* i386/xm-os2.h (PATH_SEPARATOR): Add to here.
+
+Mon Feb 21 17:48:39 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* mips-tfile.c (fatal, error): Add ! HAVE_VPRINTF versions.
+
+Sun Feb 20 16:53:02 1994  Ted Lemon  (mellon@pepper.ncd.com)
+
+	* mips.c (mips_move_2words): Check for TARGET_FLOAT64 != TARGET_64BIT.
+	(override_options): Don't override MASK_64BIT; don't allow -gp64
+	without -mips3.
+	* mips.h: Update mips3 comments.
+	(TARGET_OPTIONS): Add gp64 and gp32.
+	(SECONDARY_MEMORY_NEEDED): Don't allow fp<->gp copy if TARGET_FLOAT64
+	!= TARGET_64BIT.
+	(CC1_SPEC): Generate correct -mfp* and -mgp* from -mips*
+	* mips.md (movdf_internal1): Disable if TARGET_FLOAT64 != TARGET_64BIT.
+	(movdf_internal1a):  New pattern.
+	* osfrose.h (CC1_SPEC): Update as above.
+
+Sun Feb 20 15:40:45 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* sparc.h (HARD_REGNO_MODE_OK): Update comment.
+
+	* iris5.h (OBJECT_FORMAT_ELF): Add comments.
+	* configure (mips-sgi-irix5): Use collect.
+
+Sat Feb 19 14:25:41 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Permit upper case characters in typedef of size_t
+	in <sys/types.h>.
+
+Thu Feb 17 18:02:02 1994  Steve Chamberlain  (sac@cygnus.com)
+
+	* c-parse.in (attrib): Handle attribute ((section ("string"))).
+	* c-common.c (decl_attributes): Decode section attribute.
+	* c-decl.c (duplicate_decls): Merge section name into new decl.
+	* tree.h (DECL_SECTION_NAME): New macro.
+	(struct tree_decl): New member `section_name'.
+	* varasm.c (IN_NAMED_SECTION): New macro.
+	(named_section): New function.
+	(enum in_section): New value `in_named'.
+	(in_named_name): New global.
+	(make_function_rtl, make_decl_rtl, output_constant_def): Fix comment
+	regarding ASM_OUTPUT_LABELREF.
+	(make_decl_rtl): Warn if section attribute used with uninitialized
+	variable declaration.
+	(assemble_start_function, assemble_variable, output_constant_def):
+	Change to named section if given.
+	* sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): Define.
+	* h8300/h8300.h (ASM_OUTPUT_SECTION_NAME): Define.
+	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, SELECT_SECTION): Delete.
+	(ASM_OUTPUT_LABELREF): Call fprintf directly.
+	* h8300/h8300.c (asm_output_labelref): Delete.
+	* sh/sh.h (ASM_OUTPUT_SECTION_NAME): Define.
+	(ASM_OUTPUT_SECTION): Delete.
+
+Wed Feb 16 21:46:48 1994  Doug Evans  (dje@cygnus.com)
+
+	* i960/i960.c (i960_function_prologue): Put register save area before
+	outgoing arg block.
+
+Wed Feb 16 15:33:26 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* expr.c (get_pointer_alignment):  ALIGN is alignment of innermost
+	object, not the MAX of alignment of all objects.
+
+	* expr.c (group_insns): Delete.
+	(emit_move_insn_1, expand_expr): Use emit_no_conflict_block
+	instead of group_insns.
+
+	* final.c (end_final): Pass BIGGEST_ALIGNMENT not align to
+	ASM_OUTPUT_ALIGNED_LOCAL.
+
+	* alpha.c (alpha_builtin_saveregs): Don't include
+	current_function_arg_offset_rtx in argsize.  Subtract 48 from arg
+	base address when no int registers stored on the stack.
+
+	* genattrtab.c (expand_units): Fix blockage calculation.
+
+	* loop.c (scan_loop): Add no_labels_between_p call to tests which
+	decide if an invariant reg can be safely replaced with its SET_SRC.
+
+Wed Feb 16 00:54:04 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Fix uses of new in Xm/Traversal.h.  Found on
+	RS/6000.
+
+Tue Feb 15 19:44:41 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* tree.def:  Remove STRING_TYPE.  No-one uses it.
+	* tree.h (struct tree_type):  New bitfield string_flag.
+	* tree.h (TYPE_STRING_FLAG):  New macro.
+	* tree.c, sparc.c:  Remove unneeded tests for STRING_TYPE.
+	* expr.c (expand_builtin), dwarfout.c:  Use TYPE_STRING_FLAG.
+	* dbxout.c (dbxout_type):  For SET_TYPE and ARRAY_TYPE, use
+	TYPE_STRING_FLAG to emit appropriate indication.
+
+Tue Feb 15 19:36:45 1994  Stephen L Moshier  (moshier@world.std.com)
+
+	* real.c (real_value_truncate): If requested mode is not
+	supported, return the unmodified input instead of aborting.
+
+Tue Feb 15 19:30:48 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_increment): Handle both BAD_SUBREG and POST.
+
+Tue Feb 15 11:09:08 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixinc.svr4: Make byteorder.h a here document, rather than
+	copying it from the source directory.
+	* byteorder.h: Removed.
+
+	* fixinc.sco: Don't install <sys/byteorder.h>.
+
+	* fixincludes: Removed references to GCCCMD.  Instead of running
+	${GCCCMD} to determine correct value for size_t, just fix the
+	header files to use __SIZE_TYPE__.
+	* Makefile.in (fixinc.ready): Removed target.
+	(stmp-fixinc): Don't depend upon fixinc.ready.  Don't pass fourth
+	argument (was "`pwd`/xgcc -B`pwd`/") to $(FIXINCLUDES).
+	(clean): Don't remove fixinc.ready.
+
+	* rs6000.h (RS6000_ITRUNC, RS6000_UITRUNC): Define.
+	* rs6000.md (fix_truncdfsi2, fixuns_truncdfsi2): Use RS6000_ITRUNC
+	and RS6000_UITRUNC, not "itrunc" and "uitrunc".
+	* rs6000.c (output_prolog): Likewise.
+
+Mon Feb 14 19:19:06 1994  Jim Meyering  (meyering@idefix.comco.com)
+
+	* gen-protos.c (main): Remove unused args in call to fprintf.
+	* bi-opcode.c (main): Move unused arg ++i out of call to printf.
+
+Mon Feb 14 19:14:55 1994  Stephen L Moshier  (moshier@world.std.com)
+
+	* real.c (eifrac): If FIXUNS_TRUNC_LIKE_FIX_TRUNC,
+	convert on positive overflow as if unsigned.
+
+Mon Feb 14 19:13:15 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* toplev.c (lang_options): Add -W{no,}extern-inline.
+
+	* gcc.c (default_compilers): Generate and use .ii files in the
+	intermediate stage of compiling C++ source.
+
+Mon Feb 14 19:08:37 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* local-alloc.c (optimize_reg_copy): A register that dies in
+	a CALL_INSN doesn't cross that call.
+
+	* combine.c (simplify_shift_const, case AND): When remaking
+	binary operation, do it in SHIFT_MODE.
+
+Mon Feb 14 11:27:35 1994  Frederic Pierresteguy  (F.Pierresteguy@frcl.bull.fr)
+
+	* config.sub: Add case for Bull dpx20.
+
+Sun Feb 13 23:50:15 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* rs6000.c (output_epilog): Don't output a traceback table if
+	flag_inhibit_size_directive is set.
+
+Sun Feb 13 17:47:14 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.c (rs6000_adjust_cost): Renamed from ppc_adjust_cost.
+	* rs6000.h (ADJUST_COST): Call rs6000_adjust_cost.
+
+Sun Feb 13 17:07:02 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* rs6000.h (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Define.
+	(ASM_OUTPUT_ADDR_VEC_ELT): Use ASM_GENERATE_INTERNAL_LABEL instead
+	of assuming the default format for internal labels.
+	(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
+	* rs6000.c (output_prolog, output_epilog): Likewise.
+	(output_function_profiler): Likewise.
+
+	* fixincludes: Fix conflicts with C++ reserved words in
+	X11/ShellP.h, Xm/Traversal.h, and Xm/BaseClassI.h.  Found on
+	RS/6000.
+
+Sun Feb 13 13:40:17 1994  Michael Meissner  (meissner@osf.org)
+
+	* halfpic.h (toplevel): Include stdio.h if it hasn't been included
+	already, so that STDIO_PROTO can be defined.  Otherwise,
+	asm_fprintf gets a prototype mismatch.
+
+Sun Feb 13 02:36:30 1994  Doug Evans  (dje@cygnus.com)
+
+	* gcc.c (fatal, error): Fix declarations (dependent on HAVE_VPRINTF)..
+
+Sat Feb 12 19:46:29 1994  Michael Meissner  (meissner@osf.org)
+
+	* configure (386-*-osfrose): Use i386/xm-osf.h as xm file.
+
+	* i386/xm-osf.h (new file): Define HAVE_PUTENV and HAVE_VPRINTF.
+
+Sat Feb 12 08:51:02 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* calls.c (expand_call): When preserving subexpressions, don't put
+	expensive arguments directly into hard registers.
+
+	* combine.c (REVERSIBLE_CC_MODE): Add default definition.
+	(reversible_comparison_p): REVERSIBLE_CC_MODE.
+	* sparc.h (REVERSIBLE_CC_MODE): Define.
+
+	* combine.c (subst): Always simplify true and false arms if
+	if_then_else_cond succeeds.
+	(subst, case IF_THEN_ELSE): More canonicalizations; delete some
+	redundant tests.
+	(if_then_else_cond): Canonicalize (OP (mult COMP A) (mult REV_COMP B)).
+	(gen_binary): Simplify (REL_OP (compare X Y) 0) here.
+
+Sat Feb 12 07:41:55 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* cse.c (cse_main): Conditionalize special treatment of
+	PIC_OFFSET_TABLE_REGNUM on PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
+
+	* expmed.c (expand_shift): Truncate immediate count if
+	SHIFT_COUNT_TRUNCATED.
+
+Fri Feb 11 18:49:42 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* dbxout.c (dbxout_type_fields):  Emit anonymous fields
+	just like other fields, but with an empty name.  Don't
+	treat the fields as belonging to the containing object.
+
+Fri Feb 11 20:08:25 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* rs6000.md (definition of "type"): Add "jmpreg" as new	type.
+	Change "mtlr" to "mtjmpr".
+	(movsi matcher): Pair `c' and `l' in the same constraint
+	alternative.
+	(return): Set attribute to "jmpreg".
+	(indirect_jump): Likewise.
+	* rs6000.h (ADJUST_COST): Call ppc_adjust_cost.
+	* rs6000.c (ppc_adjust_cost): New function.  Adjust for TYPE_JMPREG.
+
+Fri Feb 11 17:39:42 1994  Michael Collison  (collison@osf.org)
+
+	* reload1.c (gen_input_reload): If reg-reg add is not valid,
+	try copying reg-reg and adding reg-int.
+
+Fri Feb 11 17:36:11 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* expr.c (expand_builtin): If the builtin was called as
+	__builtin_whatever, pretend we're optimizing.
+
+Fri Feb 11 17:30:28 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* jump.c (mark_jump_label, case LABEL_REF): Update REG_LABEL
+	note if changing target of jump.
+
+	* regclass.c (record_reg_classes): Fix logic in case of matching
+	operands.
+
+Fri Feb 11 16:03:21 1994  Doug Evans  (dje@cygnus.com)
+
+	* tree.h (VPROTO, VA_START): Avoid duplicate definition.
+	* rtl.h (VPROTO, VA_START): Likewise.
+	* gcc.c (VPROTO, VA_START): Define.
+	(PROTO): Define.
+	Add prototypes for static functions.
+	* g++.c (VPROTO, VA_START): Define.
+
+	* gstdarg.h: Don't define _STDARG_H/etc. if not gcc,
+	it may collide with system's header.
+
+Thu Feb 10 19:26:37 1994  Chip Salzenberg  (chip@fin.uucp)
+
+	* c-typeck.c (c_expand_return): Do not warn about returning the
+	address of a locally declared extern variable.
+
+Thu Feb 10 15:57:06 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* final.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Provide default
+	definition.
+	(asm_insn_count): Use IS_ASM_LOGICAL_LINE_SEPARATOR rather
+	than assuming the logical line separator is ';'.
+
+	* pa.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Define.
+
+Thu Feb 10 08:49:39 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload.h (reload_secondary_{reload,icode}): Deleted.
+	(reload_secondary_{in,out}_{reload,icode}): New variables.
+	* reload.c: Likewise.
+	(MATCHES, MERGABLE_RELOADS, MERGE_TO_OTHER): Move to front of file.
+	(push_secondary_reload): New function, from find_secondary_reload.
+	(find_secondary_reload): Deleted.
+	(push_reload): Call push_secondary_reload.
+	(combine_reloads): Use new vars for secondary reloads and icodes.
+	* reload1.c (emit_reload_insns): Use new vars for secondary
+	reloads and icodes.
+
+	* explow.c (memory_address): Fix error in last change.
+
+Thu Feb 10 08:13:49 1994  Stephen R. van den Berg  (berg@pool.informatik.rwth-aachen.de)
+
+	* rtl.h, tree.h, mips-tfile.c (VPROTO): New macro.
+	* combine.c, expr.h, genattrtab.c, output.h, rtl.h, tree.h, toplev.c:
+	Use PROTO for varargs functions.
+	* genattrtab.c (attr_printf): Only declare when defined.
+	* bc-emit.c, calls.c, combine.c, emit-rtl.c, final.c, g++.c:
+	If __STDC__, include gstdarg and use ANSI form of varargs.
+	* gcc.c, genattrtab.c, mips-tfile.c, tree.c, toplev.c: Likewise.
+
+Wed Feb  9 09:53:54 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h (SUBTARGET_SWITCHES): Add -mmcount-ptr as a
+	synonym for -mno-mcount.
+	(CC1_SPEC): If -melf, pass -mmcount-ptr by default.
+
+	* i386/osfelf.h (CC1_SPEC): Unless -mrose, pass -mmcount-ptr by
+	default.
+
+	* configure (alpha-dec-osf): Use osf2.h and gdb-osf2.h on OSF/1 2.0 and
+	beyond.
+
+	* alpha/osf2.h, alpha/gdb-osf2.h (new files): Support for OSF/1 2.0
+	that uses 4 byte wchar_t's instead of 2 byte.
+
+Tue Feb  8 20:18:12 1994  Paul Eggert  (eggert@twinsun.com)
+
+	* real.c (earith, ereal_negate, eneg, eisneg, enan, emovo, esub):
+	Propagate the sign of NaNs, so that e.g. -(NaN) evaluates to -NaN.
+	(eadd, ediv, emul, eremain, e53toe, e64toe, e113toe, e24toe, esqrt): 
+	Likewise.
+	(make_nan): New arg specifies sign of NaN.  All callers changed.
+	(eiisneg): New function.
+	(esqrt): Compute sqrt(-0.0) to be -0.0, not 0.0.
+
+Tue Feb  8 19:23:41 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* toplev.c: Include ctype.h.
+
+	* tree.c (int_fits_type_p): Properly handle case of variable bounds
+	for types.
+
+Tue Feb  8 19:20:04 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* fixproto: Add popen and pclose to required list for stdio.h.
+	Add putenv to required list for stdlib.h.
+	Add getopt to required list for unistd.h.
+
+	* fixproto: Append "#include <stdlib.h>" to assert.h if it uses
+	exit or abort.
+
+	* libgcc2.c (__builtin_new): If __new_handler returns, keep trying
+	to allocate the memory.
+	(__default_new_handler): Add __ to beginning of name to avoid
+	namespace clashing.
+
+Tue Feb  8 18:50:07 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* i386/x-aix (FIXINCLUDES): Delete definition.
+	* configure (i[34]86-ibm-aix): Delete definition of fixincludes.
+	* fixincludes: When edit size_t typedef, modify sed pattern to
+	avoid matching typedef uses of size_t.  Likewise when adding
+	#ifndef GCC_SIZE_T.
+	* fixinc.ps2: Delete file.
+
+	* mips.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Use SIZE not ROUNDED.
+
+	* iris5.h (SIZE_TYPE, PTRDIFF_TYPE): Don't redefine.
+	(MAX_WCHAR_TYPE_SIZE): Define.
+
+	* mips-tdump.c (print_file_desc): Correct printf format.
+	(main): Likewise.
+
+	* flow.c (find_basic_blocks): Also look for REG_LABEL notes on first
+	instruction of each basic block.
+
+	* sparc.c (save_regs, restore_regs): Use __inline__ not inline.
+
+Tue Feb  8 10:13:54 1994  Doug Evans  (dje@cygnus.com)
+
+	* toplev.c (open_dump_file): New function.
+	(compile_file): Open dump files with it.  Remove dump_base_name_length.
+
+Sun Feb  6 15:52:48 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* collect2.c (sys_siglist): Don't declare if
+	DONT_DECLARE_SYS_SIGLIST is defined.
+	* mips/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Define.
+	* sparc/xm-sol2.h (NO_SYS_SIGLIST): Delete.
+	(DONT_DECLARE_SYS_SIGLIST): Define.
+	* mips-tfile.c (sys_siglist): Don't declare if NO_SYS_SIGLIST or
+	DONT_DECLARE_SYS_SIGLIST are defined.
+	(catch_signal): Add code for NO_SYS_SIGLIST case.
+
+	* sched.c (reg_pending_sets, reg_pending_sets_all): New variables.
+	(sched_analyze_1): Set reg_pending_sets instead of reg_last_sets.
+	(sched_analyze_2): Set reg_pending_sets or reg_pending_sets_all
+	instead of reg_last_sets.
+	(sched_analyze_insn): Use reg_pending_sets and
+	reg_pending_sets_all to set reg_last_sets.  Set
+	reg_pending_sets_all instead of reg_last_sets.
+	(schedule_block): Allocate and clear reg_pending_sets.
+
+	* sparc.md (movdi): Handle 'U' and 'T' constraints.
+
+	* m68k/hp320.h (FUNCTION_PROFILER): Concatenate strings to avoid
+	use of ANSI C specific feature.
+
+	* mips.c (function_arg): When soft-float, don't add bias for
+	second SFmode argument.
+
+	* iris5.h (CPP_PREDEFINES): Add _MIPSEB.
+
+Sun Feb  6 08:40:46 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (struct temp_slot): Add new field, ADDRESS.
+	(assign_stack_temp): Initialize it to zero.
+	(find_temp_slot_from_address, update_temp_slot_address): New functions.
+	(preserve_temp_slots): Use find_temp_slot_from_address.
+	* explow.c (memory_address): Call update_temp_slot_address on
+	new and old address.
+
+	* cse.c (canon_hash, case LABEL_REF, SYMBOL_REF): Avoid warning
+	on 64-bit machines.
+
+Sat Feb  5 17:55:52 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure (i[34]86-sequent-ptx): Alias for i[34]86-sequent-sysv*.
+
+Sat Feb  5 11:46:00 1994  Steve Chamberlain  (sac@cygnus.com)
+
+	* sh.c (hard_regno_mode_ok): New vector. 
+	(output_stack_adjust): Always adjust stack with an addsi insn. 
+	(calc_live_regs):  Support alernative calling conventions. 
+	(print_operand): Delete obsolete cases.
+	(synth_constant): New function to generate constants by
+	arithmetic means. 
+	(expand_block_move): Use new block move support	routines. 
+	(prepare_move_operands):  Use synth_constant when possible, try
+	and geneate splits for DI moves.
+	(output_jump_label_table, dump_table, output_far_jump,
+	prepare_split_double_ops,from_compare, equality_operator,
+	handle_pragma, expand_acall): New functions. 
+	(prepare_scc_operands):	When condition isn't supported swap args
+	and alter test.
+	(output_move_double): Generate better code for constant moves.
+	(output_shift): Cope with negative shifts. 
+	(byte_index_operand, pop_operand, painful_immediate_operand,
+	ok_shift_value, hard_immediate_operand, adjust_insn_length,
+	dump_constants, output_movepcrel): Deleted.  
+	(final_prescan_insn): Now only prints pc.
+	(shiftcosts, andcosts, multcosts): Work out some insn costs.
+	(gen_ashift, gen_shifty):  Emit code for shift operations.
+	(fixit, hi_const, find_barrier,	broken_move,
+	machine_dependent_reorg): New functions to fix move instructions
+	with out-of-range literals.
+
+	* sh.h (OPTIMIZATION_OPTIONS, CONDITIONAL_REGISTER_USAGE): New.
+	(TARGET_SWITCHES): Extra -m options for experimental calling
+	conventions.
+	(HARD_REGNO_MODE_OK): Use hard_regno_mode_ok vector rather than
+	inline code.  
+	(FRAME_POINTER_REQUIRED): Always 0. 
+	(reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Change order
+	of classes.
+	(FRAME_GROWS_DOWNWARD): Don't define.
+	(FUNCTION_ARG_PARTIAL_NREGS): Always 0.  
+	(MAX_REGS_PER_ADDRESS):	Is 2. 
+	(GO_IF_LEGITIMATE_INDEX): Split up into smaller macros.
+	(CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Jump tables are of
+	switchable size and always pc relative. 
+	(RTX_COSTS): Use new andcosts, multcosts and shiftcosts functions. 
+	(INSN_SETS_ARE_DELAYED,	INSN_REFERENCES_ARE_DELAYED): New.
+	(ASM_OUTPUT_CASE_LABEL, ASM_OUTPUT_ADDR_DIF_ELT): Now switches are
+	pc relative.
+
+	* sh.md (define_attr length): Calculate lengths more accurately.
+	(define_attr "rte", "hit_stack"): New.  
+	(cmp*):  Allow all conditions by swapping args.  
+	(addc, adddi3, and_ff, casesi, casesi_worker, peepholes): New. 
+	(div*, mul*): Use library routines with special calling
+	conventions. 
+	(shifts): Generate only legal shift insn sequences. 
+	(extend*): Get clobbers right, extra constraints. 
+	(mov*): Greatly simplified.
+	(b*):  Use from_compare function. 
+	(return, rte): Understand pragma interrupt. 
+	(anddi3, iordi3, xordi3): Deleted.  
+	(consttable_2,consttable_4, consttable_8, align_2, align_4,
+	consttable_end, movesi_k, movhi_k, movdi_k): Support for inline
+	literal tables.
+	(movstrsi, block_move_real, block_lump_real): Use new block move
+	routines.
+
+	* toplev.c (rest_of_compilation): Invoke MACHINE_DEPENDENT_REORG if
+	defined.
+
+Sat Feb  5 08:05:58 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* cse.c (memory_extend_rtx): New variable.
+	(cse_main): Initialize it.
+	(cse_insn): See if we have already loaded a MEM in a wider  mode.
+
+Sat Feb  5 07:05:29 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* fixproto: Add lstat to required_list for sys/stat.h
+
+Fri Feb  4 12:14:49 1994  Stan Cox  (coxs@dg-rtp.dg.com)
+
+	* m88k.h: (TARGET_SWITCHES) Assume -muse-div-instruction
+	-mno-check-zero-division for -m88110.  (CONSTANT_ADDRESS_P) Fix a
+	-fpic reload bug.  (DONT_REDUCE_ADDR) Don't strength reduce so
+	m88k scaled loads/stores will be used.  (enum processor_type) Use
+	instead of attr_cpu, which is not always defined.
+
+	* m88k.md: (movdf) Split movdf so it can go into a branch delay slot
+
+	* m88k.c: (m88k_gp_threshold) Make -mshort-data- unsigned.
+	(block_move_*) Copy MEM_IN_STRUCT_P for block move cases.
+
+	* dgux.h: (TARGET_SVR4) Use -msvr4/-msvr3 instead of
+	-mversion-03.00 to choose assembler syntax.
+
+Fri Feb  4 08:14:31 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (gen_lowpart_common, gen_highpart): Test *_BIG_ENDIAN
+	with "if", not #if and fix one erroneous test.
+
+Thu Feb  3 17:15:07 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* expmed.c (store_bit_field, insv case): Don't use PUT_MODE on
+	xop0 when it is a SUBREG, generate a new SUBREG.
+
+Thu Feb  3 13:24:14 1994  Alex Zatsman  (alex.zatsman@analog.com)
+
+	* hard-reg-set.h (GO_IF_HARD_REG_EQUAL): Fix typo.
+
+Thu Feb  3 07:45:45 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* flow.c: Add prototypes for static functions.
+	(uses_reg_or_mem): New function.
+	(find_basic_block): Some cleanups; eliminate shadowed variables.
+	Look for REG_LABEL notes in all insns and allow for multiple such.
+	Don't delete labels in forced_labels.
+	Generalize test for computed jumps.
+	(find_auto_inc): OFFSET should be HOST_WIDE_INT.
+	(mark_used_regs): Put decls of parms in parm order.
+	(find_use_as_address): PLUSCONST should be HOST_WIDE_INT.
+
+	* reload1.c (eliminate_regs, case INSN_LIST): Properly remake
+	list when we change something further on.
+
+Wed Feb  2 21:25:03 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* c-typeck.c (signed_or_unsigned_type): Check for any
+        INTEGRAL_TYPE_P not just INTEGER_TYPE.
+
+	* Makefile.in (enquire.o): Depend on stmp-int-hdrs.
+
+	* mips.h (CPP_SPEC): Define __PTRDIFF_TYPE__ not __PTRDIFF_TYPE.
+
+	* reorg.c (fill_simple_delay_slots): When fill epilogue delay
+	slot, set needed to end_of_function_needs instead of clearing it.
+
+Wed Feb  2 15:20:38 1994  Philippe De Muyter  (phdm@info.ucl.ac.be)
+
+	* tree.c (FILE_FUNCTION_FORMAT): Fix typo if neither dot nor dollar
+	in label.
+
+Wed Feb  2 14:38:56 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (const_binop, COMPLEX_TYPE, case RDIV_EXPR):
+	If complex integer, use TRUNC_DIV_EXPR for inner division.
+
+	* c-tree.h: Re-order declarations for functions in c-typeck.c to
+	agree with order there; add some missing declarations.
+	* c-typeck.c: Add prototypes for static functions; delete
+	forward declarations of non-static functions.
+	(initializer_constant_valid_p): Add missing parameter to
+	recursive call.
+
+Wed Feb  2 14:22:05 1994  Kaveh R. Ghazi  (ghazi@noc.rutgers.edu)
+
+	* objc/Makefile (SUBDIR_INCLUDES): Add -I for include directory.
+
+Wed Feb  2 13:24:23 1994  Chip Salzenberg  (chip@fin.uucp)
+
+	* expmed.c (synth_mult): Delay allocation of algorithm structures
+	until they are needed.  Reorder early-exit tests to avoid comparing
+	value that is not yet set.
+
+Tue Feb  1 18:56:19 1994  Chip Salzenberg  (chip@fin.uucp)
+
+	* c-common.c (decl_attributes):  Allow format attributes
+	on old style (non-prototype) function declarations.
+
+Tue Feb  1 11:25:40 1994  Stephen R. van den Berg  (berg@pool.informatik.rwth-aachen.de)
+
+	* tree.c (build_type_variant): Simplify by using build_type_copy.
+
+	* c-decl.c (grokdeclarator): `volatile' function warning
+	corrected to read `noreturn' function warning.
+	(finish_function): Likewise.
+	* cp-decl.c (finish_function): Likewise.
+	* c-typeck.c, cp-typeck.c (c_expand_return): Likewise.
+	* toplev.c (rest_of_compilation): Likewise.
+
+Tue Feb  1 06:06:22 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (make_extraction): Don't make an extraction that
+	has the potential of crossing a boundary.
+
+	* regclass.c: Add prototypes for static functions.
+	(auto_inc_dec_reg_p): New function.
+	(regclass): Call it to allow a register needing a secondary reload
+	to be used for inc/dec if it is already valid for it.
+
+	* gcc.c (default_compilers, @ada): Don't duplicate "-gnat" parameters;
+	pass -quiet unless -Q is specified.
+
+	* alpha.md (minsf3, maxdf3, mindf3): Properly insert constant of
+	zero into patterns.
+
+Mon Jan 31 20:55:41 1994  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* i960.c (i960_function_name_declare): Handle names that start
+	with '*'.
+
+Mon Jan 31 19:13:59 1994  Chip Salzenberg  (chip@fin.uucp)
+
+	Unify error and message functions:
+	* toplev.c: Include "gvarargs.h".
+	(fatal_insn_not_found): Omit superfluous argument to error.
+	(vmessage, v_message_with_file_and_line): New functions.
+	(v_message_with_decl, file_and_line_for_asm): Likewise.
+	(v_error_with_file_and_line, v_error_with_decl): Likewise.
+	(v_error_for_asm, verror, vfatal): Likewise.
+	(v_warning_with_file_and_line, v_warning_with_decl): Likewise.
+	(v_warning_for_asm, vwarning): Likewise.
+	(error_with_file_and_line, error_with_decl, error, fatal): Now just
+	wrappers for above functions.
+	(error_for_asm, warning_with_file_and_line): Likewise.
+	(warning_with_decl, warning_for_asm, warning): Likewise.
+
+Mon Jan 31 19:03:16 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* sched.c (sched_analyze_insn): Add use dependencies for registers
+	mentioned in REG_DEAD notes.
+
+	* configure (mips-tandem-sysv4*): Add.
+	* mips/svr4-t.h, mips/svr4-t-gdb.h: New files.
+
+	* sched.c (priority): Call insn_cost() for anti- and output-
+	dependencies as well as for true dependencies.
+
+	* cse.c (find_best_addr): Limit number of cse_gen_binary calls to
+	20 per iteration.
+
+Mon Jan 31 18:08:27 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* real.c (emovo): Use separate variable for loop index.
+
+	* fold-const.c (operand_equal_for_comparison_p): Declare
+	correct_width as unsigned.
+
+	* configure (m68k-wrs-vxworks): Fix typo in name.
+
+	* Makefile.in (cross-test, enquire, protoize, unprotoize):
+	Specify program name in -o to force into build directory.
+
+	* i386/sol2.h (CPP_SPEC): Add -Dsun.
+
+	* alpha/gdb.h: Renamed from alpha-gdb.h.
+	* alpha/gdb-osf12.h: New file.
+	* configure (alpha): Reflect new name for files and support
+	gdb with OSF V1.2.
+
+Mon Jan 31 15:18:40 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* bc-emit.c (class_narrowest_mode, byte_mode, word_mode): Add
+	extern to declaration.
+	* expr.c (local_vars_size): Likewise.
+
+	* genattrtab.c (expand_units): When calculate BLOCKAGE, reverse
+	terms to POS_MINUS_OP.  Clarify comment before BLOCKAGE computation.
+	(write_complex_function): Use EXECUTING_INSN for first switch, and
+	CANDIDATE_INSN for second switch.
+
+	* sparc/lite.h (TARGET_DEFFAULT): Add -mapp-regs.
+	* sparc/sparc.h (TARGET_APP_REGS): Define.
+	(TARGET_SWITCHES): Add new options -mapp-regs and -mno-app-regs.
+	(TARGET_DEFAULT): Add -mapp-regs.
+	(CONDITIONAL_REGISTER_USAGE): Make %g2, %g3, and %g4 be fixed when
+	the -mno-app-regs option is used.
+	* sparc/sun4os3.h (TARGET_DEFAULT): Delete.
+
+	* svr4-5.h (STARTFILE_SPEC): Include values-X[cta].o file in link.
+
+	* xcoffout.c (ASM_OUTPUT_LFE): Output absolute line number not
+	relative line number.
+
+Fri Jan 28 19:20:07 1994  Michael Collison  (collison@osf.org)
+
+	* flow.c (find_auto_inc): Check for increment using single_set.
+
+Fri Jan 28 19:11:17 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.md (fsel): Remove insns with record bit set.
+
+Thu Jan 27 18:22:25 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (output_prolog): Fix typo in previous change.
+
+Wed Jan 26 18:19:51 1994  Per Bothner  (bothner@sugar-bombs.gnu.ai.mit.edu)
+
+	* c-typeck.c (initializer_constant_valid_p):  Make non-static.
+	(It's used by the Chill back-end.)
+
+Wed Jan 26 13:54:40 1994  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* sched.c (attach_deaths_insn): Add REG_DEAD notes to CLOBBER if
+	it is for a MEM.
+
+Tue Jan 25 08:30:11 1994  Chip Salzenberg  (chip@fin.uucp)
+
+	* cse.c (HASHBITS): Removed.
+	(HASH, struct set, canon_hash, safe_hash, remove_from_table):
+	Generate and use unsigned hash values, to avoid potential trouble
+	with signed shift/overflow.
+	Also name variables consistently: "hash", not "hash_code".
+	(lookup, lookup_for_remove, insert, merge_equiv_classes): Likewise.
+	(invalidate, rehash_using_reg, invalidate_for_call): Likewise.
+	(find_best_addr, record_jump_cond, cse_insn):  Likewise.
+
+Mon Jan 24 18:59:59 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* expmed.c (store_split_bit_field):  For BYTES_BIG_ENDIAN, only
+	pad on left if value not in memory.  Reject gen_lowpart_common
+	output if it returns the input value.
+
+	* unroll.c (copy_loop_body): When delete simplified condjump,
+	protect the label, so that it doesn't get deleted also.
+
+	* toplev.c (compile_file): If yyparse returns an error, pop all
+	pending binding levels.
+
+Mon Jan 24 18:30:53 1994  Doug Evans  (dje@cygnus.com)
+
+	* objc/Object.h (streamVersion, read, write): #ifndef out for the
+	alpha since TypedStream not supported there yet.
+	* objc/Object.m (streamVersion, read, write): Ditto.
+
+Mon Jan 24 17:40:56 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* sparc.c (sparc_address_cost): Delete.
+	* sparc.h (ADDRESS_COST): Define to 1.
+
+	* bsd-5.h, mips-5.h, svr3-5.h, svr4-5.h (ASM_OUTPUT_NEWLINE):
+	Define new macro.
+	* mips.h (ASM_OUTPUT_NEWLINE): New default for new macro.
+	(ASM_OUTPUT_ASCII): Use ASM_OUTPUT_NEWLINE.
+
+	* sparc.h (ASM_OUTPUT_COMMON): Don't output .global.  Use SIZE not
+	ROUNDED.
+	(ASM_OUTPUT_LOCAL): Delete.
+	(ASM_OUTPUT_ALIGNED_LOCAL): Define.
+
+Sun Jan 23 18:57:01 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* expr.c (do_jump_for_compare): Initialize JUMP_LABEL for the branch
+	insn before trying to invert it.
+
+Sun Jan 23 18:40:23 1994  Samuel A. Figueroa  (figueroa@cs.nyu.edu)
+
+	* i386/os2.h (PATH_SEPARATOR): New macro.
+	* i386/gas.h (ASM_FILE_START): Delete; identical to one in bsd.h,
+	which is included.
+
+Sun Jan 23 18:21:23 1994  Randy S. Welch  (randy@tss.com)
+
+	* m68k/plexus.h: Assume GAS 2.x used and add support for debugging.
+
+Sun Jan 23 06:19:28 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads): Properly test for output operand
+	when changing RELOAD_FOR_OUTPUT_ADDRESS to RELOAD_FOR_INPUT_ADDRESS.
+
+	* combine.c (subst, case SUBREG): Handle paradoxical SUBREG of
+	constant.
+	(IF_THEN_ELSE): Add missing "else" and check for comparison
+	before calling reversible_comparison_p.
+
+	* c-typeck.c (output_init_elements): Use FIELD instead
+	of constructor_fields when doing alignment and sizing.
+	(output_pending_init_elements): Don't blow up when writing
+	other than first field put haven't written anything yet.
+	Update constructor_bit_index when we emit a skip.
+
+	* toplev.c (rest_of_compilation): Defer compilation of function
+	that were specified as inline, whether or not they actually were
+	inlined.
+
+	* alpha.h (OBJECT_FORMAT_COFF, EXTENDED_COFF, NM_FLAGS): Define.
+	* x-alpha: New file.
+
+	* combine.c (simplify_comparison): Can remove NOT on both operands
+	if we swap comparison code.
+
+	* rs6000.md: Insert some missing blank lines.
+
+	* alpha.c (output_{pro,epi}log): Use assemble_name to output
+	alpha_function_name.
+
+	* combine.c (simplify_comparison): Fix typos in last change.
+
+Sun Jan 23 05:59:31 1994  Per Bothner  (bothner@cygnus.com)
+
+	* c-typeck.c (really_start_incremental_init): Save current elements
+	instead of clearing them.
+
+Sat Jan 22 15:50:29 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-typeck.c (c_expand_return): Issue a warning if returning
+	address of non-static local object.
+
+	* combine.c (if_then_else_cond): Don't do anything with COMPARE.
+	(simplify_comparison): Strip SIGN_EXTEND, NOT, or NEG when
+	both operands have it.
+
+	* combine.c (num_sign_bit_copies): Ifndef WORD_REGISTER_OPERATIONS,
+	ensure we don't do the wrong thing if X is narrower than MODE.
+
+Thu Jan 20 01:06:23 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (ASM_OUTPUT_SOURCE_LINE): Make the first source line stab
+	for each procedure special to avoid the need for nasty hacks in GAS.
+
+	* pa.md (iorscc): Fix typo.
+
+Wed Jan 19 19:35:37 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* pa.h (ASM_GLOBALIZE_LABEL): Don't globalize function labels here.
+
+Mon Jan 17 16:38:16 1994  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* xcoffout.c (xcoffout_begin_block): Don't emit a .bb for the
+	function level scope.
+	(xcoffout_end_block): Don't emit a .eb for the function level
+	scope.
+
+Sun Jan 16 14:29:31 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config.sub: Alphabetize the list of machine-name aliases.
+	Add nh3000 and nh[45]000.
+	Delete duplicate clauses for hp9k2... and hp9k31...
+
+Sat Jan 15 18:06:45 1994  Torbjorn Granlund  (tege@blues.cygnus.com)
+
+	* config/sparc/sparc.md (smulsi3_highpart): New pattern.
+	(umulsi3_highpart): New pattern.
+	* config/mips/mips.md (smulsi3_highpart): New pattern.
+	(umulsi3_highpart): New pattern.
+
+Thu Jan 13 18:54:27 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* iris3.h (CPP_SPEC): Define __SIZE_TYPE__, __PTRDIFF_TYPE__, and
+	__mips.
+	(SIZE_TYPE, PTRDIFF_TYPE): Delete.
+	* mips.c (dfhigh, dflow, sfhigh, sflow): New variables.
+	(mips_sw_reg_names): Consistently use $ as name prefix.
+	(large_int): Handle 64 bit constants.
+	(reg_or_0_operand, mips_const_double_ok): Don't examine
+	CONST_DOUBLE internals.
+	(mips_const_double_ok): Use REAL_VALUE_* macros.
+	(simple_memory_operand): Add 64 bit support.  Only test
+	TARGET_GP_OPT to determine if doing gp optimizations.  Pass
+	address not MEM to eliminate_constant_term.  Use SMALL_INT.
+	(mips_fill_delay_slot): Add 64 bit support.
+	(mips_move_1word): Add 64 bit support.  Don't examine CONST_DOUBLE
+	internals.
+	(mips_move_2words): Likewise.
+	(mips_address_cost): Pass address not MEM to
+	eliminate_constant_term.  Use SMALL_INT.
+	(gen_int_relational): New variable mode.  Add 64 bit support.
+	(gen_conditional_branch): Add 64 bit support.
+	(block_move_load_store, block_move_loop, block_move_call,
+	expand_block_move, output_block_move, function_arg_advance,
+	function_arg, function_arg_partial_nregs): Likewise.
+	(override_options): Clear MASK_GPOPT if threshold is zero or
+	negative.  Set MASK_GPOPT if optimizing.  Set mips_isa from -misa=
+	option, else from MIPS_ISA_DEFAULT if defined, else to 1.  Make
+	default cpu depend on isa.  Add cpus r4400, r4600, orion.  Rewrite
+	TARGET_NAME_REGS support.  Initialize dfhigh, dflow, sfhigh,
+	sflow.  Add 64 bit support.
+	(print_operand): Use REAL_VALUE_* macros.
+	(mips_output_external): Don't depend on mips_section_threshold.
+	(make_temp_file): Define P_tmpdir when __MSDOS__.  Malloc filename
+	string.  Don't unlink temp file when __MSDOS__.
+	(mips_asm_file_start): Delete TARGET_NAME_REGS support.
+	(mips_asm_file_end): Unlike temp file when __MSDOS__.
+	(mips_declare_object): Don't test mips_sections_threshold.
+	(compute_frame_size, save_restore_insns, function_prologue,
+	mips_expand_prologue, function_epilogue, mips_expand_epilogue):
+	Add 64 bit support.
+	(function_epilogue): Correctly output `#' before .set volatile.
+	* mips.h (enum cmp_type): Add 64 bit support.
+	(enum processor_type): Add PROCESSOR_R4600.
+	(MASK_64BIT, TARGET_64BIT): New mask bit, to indicate 64 bit mode.
+	(HAVE_64BIT_P, OPTIMIZATION_OPTIONS): Delete.
+	(CPP_SPEC): Don't abort if not defined.
+	(CC1_SPEC): -mips1 and -mips2 imply -mfp32. -mips3 implies -mfp64.
+	(CPP_SPEC): Define __SIZE_TYPE__, __PTRDIFF_TYPE__, and __mips.
+	(BITS_PER_WORD, UNITS_PER_WORD, INT_SIZE_TYPE, LONG_TYPE_SIZE,
+	LONG_LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
+	PARM_BOUNDARY, EMPTY_FIELD_BOUNDARY, HARD_REGNO_NREGS,
+	CONST_OK_FOR_LETTER_P, STACK_ARGS_ADJUST, FUNCTION_PROFILER,
+	TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT,
+	INITIALIZE_TRAMPOLINE, CASE_VECTOR_MODE, MOVE_MAX,
+	TRULY_NOOP_TRUNCATION, Pmode, FUNCTION_MODE,
+	ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT,
+	ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add 64 bit support.
+	(MAX_BITS_PER_WORD, MAX_UNITS_PER_WORD, UNITS_PER_FPREG,
+	MAX_INT_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE, MAX_LONG_TYPE_SIZE,
+	MAX_MOVE_MAX): Define.
+	(INDEX_REG_CLASS): NO_REGS not GR_REGS.
+	(CONST_DOUBLE_OK_FOR_LETTER_P): Don't examine CONST_DOUBLE
+	internals.
+	(PREFERRED_RELOAD_CLASS): Return CLASS if it isn't ALL_REGS.
+	(TRANSFER_FROM_TRAMPOLINE, ASM_OUTPUT_CASE_LABEL): Delete.
+	(REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Redefine to 0.
+	(GO_IF_LEGITIMATE_ADDRESS): Delete redundant code0 == REG test.
+	(ENCODE_SECTION_INFO): Don't test mips_section_threshold.
+	(CONST_COSTS): CONST_INT have cost 0 not CONSTS_N_INSNS (0).  Pass
+	address not MEM to eliminate_constant_term.  Add 64 bit support.
+	(MEMORY_MOVE_COST, ASM_OUTPUT_DOUBLE_INT): Define.
+	(EXTRA_SECTIONS): Delete in_last_p1.
+	(SELECT_RTX_SECTION): Delete division by BITS_PER_UNIT.
+	(NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
+	(SIZE_TYPE, PTRDIFF_TYPE): Add 64 bit support.
+	* mips.md (cpu): Add r4600.
+	(define_function_unit): Correct numerous errors.  Add r4600.
+	(adddi3*, subdi3*, mulsidi3, umulsidi3, negdi2*, one_cmpdl2*,
+	nordi2*, anddi2*, iordi3*, xordi3*, movdi*, ashldi3*, ashrdi3*,
+	lshrdi3*, seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu,
+	indirect_jump, tablejump, call*, call_value*): Add 64 bit support.
+	(adddi3_internal_3, addsi3_internal_2, subdi3_internal_3,
+	subsi3_internal_2, muldi3, muldi3_internal, divmoddi4, udivmoddi4,
+	divdi3, moddi3, udivdi3, umoddi3, absdi3, ffsdi2,
+	negdi2_internal_2, anddi3_internal1, xordi3_immed, truncdisi2,
+	truncdihi2, truncdiqi2, zero_extendsidi2,
+	zero_extendsidi2_interal, zero_extendhidi2, zero_extendqidi2,
+	extendsidi2, extendhidi2, extendhidi2_internal, extendqidi2,
+	extendqidi2_insn, fix_truncdfdi2, fix_truncsfdi2, floatdidf2,
+	floatdisf2, fixuns_truncdfdi2, fixuns_truncdfsi2,
+	ashldi3_internal4, ashrdi3_internal_4, lshrdi3_internal4, cmpdi,
+	tstdi, branch_zero_di, branch_equality_di, seq_di_zero, seq_di,
+	sne_di_zero, sne_di, sgt_di, sge_di, slt_di, sle_di_const,
+	sle_di_reg, sgtu_di, sgeu_di, sltu_di, sleu_di_const, sleu_di_reg,
+	indirect_jump_internal1, indirect_jump_internal2,
+	tablejump_internal1, tablejump_internal2): New patterns.
+	(mulsi3): Add missing mips_move_1word parameter.
+	(mulsi3+1): Don't split on r4000.
+	(divmodsi4, udivmodsi4, udivsi3, umodsi3): Correct lengths.
+	(divsi3, modsi3, udivsi3, umodsi3): Allow constant operands.
+	(sqrtdf2, sqrtsf2): Correct type attribute.
+	(abssi2): Add mips2 support.
+	(movsi_unaligned, movsi_ulw, movsi_usw): Comment out.
+	(movsf, movdf): Use F not E.
+	(cmpdf, cmpsf, branch_fp*, s{eq,ne,lt,le,gt,ge}_[ds]f): Depend on
+	TARGET_HARD_FLOAT.
+	* va-mips.h: Add 64 bit support.
+
+Thu Jan 13 06:14:17 1994  Paul Eggert  (eggert@twinsun.com)
+
+	* c-parse.in (maybe_attribute): Allow multiple __attribute__
+	clauses on a declaration.
+
+Thu Jan 13 06:01:09 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* a29k.h (REG_CLASS_CONTENTS): Fix problems with last word of
+	register set in some classes.
+
+	* a29k.h (MEMORY_MOVE_COST): New macro.
+
+Thu Jan 13 05:42:30 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* config.sub: Fix typo in -hiux* case.
+
+Wed Jan 12 13:25:12 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* dbxout.c (dbxout_range_type):  If the range has a base type
+	(TREE_TYPE), emit it, even if that is some other integer type.
+
+Wed Jan 12 06:02:23 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.h (MASK and TARGET): Change POWERPCSQR to PPCFPX to
+	describe both fsqrt and fsel.
+	(TARGET_SWITCHES): powerpc64 implies ppcfpx.
+	* rs6000.c (rs6000_override_options): Change POWERPCSQR to PPCFPX.
+	* rs6000.md (sqrtsf2, sqrtdf2): Change POWERPCSQR to PPCFPX.
+	(maxsf3, minsf3, maxdf3, mindf3): New patterns using fsel instruction.
+
+Tue Jan 11 19:14:31 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* a29k.c (output_prolog): Update debug reg map when 
+	we have -mkernel-registers.
+
+	* fold-const.c (fold, truth_andor): Don't apply distributive
+	law when it would change evaluation order.
+	Clean up code a bit to improve flow.
+
+Mon Jan 10 19:37:27 1994  David Robinson (drtr@mail.ast.cam.ac.uk)
+
+	* expr.c (emit_move_insn_1): Call gen_realpart and gen_imagpart
+	instead of gen_lowpart and gen_highpart.
+	* function.c (assign_parms): Likewise.
+	* optabs.c: Remove redundant prototype for gen_highpart.
+
+Mon Jan 10 19:14:07 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* jump.c (comparison_dominates_p): NE is dominated by LT, GT, LTU
+	and GTU.
+
+Mon Jan 10 19:06:57 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (gen_{real,imag}part): Extract value from
+	CONCAT directly.
+	(gen_lowpart_common, gen_highpart): Don't do it here.
+
+	* cse.c (simplify_relational_operation): Don't do anything with CC0
+	in addition to MODE_CC values.
+
+	* expr.c (protect_from_queue): If (MEM (QUEUED ...)), modify a
+	new MEM instead of the one we were passed.
+
+	* i386/linux.h: Update banner, reformat comments.
+	(STARTFILE_SPEC, GPLUSPLUS_INCLUDE_DIR): No longer conditional
+	on CROSS_COMPILER.
+	* Makefile.in (gcc.o, cccp.o): No longer define TOOLDIR.
+
+	* regclass.c (globalize_reg): New function.
+	(init_reg_sets_1): Don't handle global regs here.
+	* varasm.c (make_decl_rtl): Call globalize_reg, not init_reg_sets_1.
+
+	* a29k.c (print_operand, case 'F'): If we have to do the last
+	prolog insn, give that priority for an unfilled delay slot.
+
+	* function.c (preserve_rtl_expr_result): New function.	
+	* expr.c (exand_expr, case RTL_EXPR): Call it.
+
+Mon Jan 10 13:43:04 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* sched.c (new_insn_dead_notes): Compare registers with rtx_equal_p.
+
+	* Makefile.in (Makefile, stmp-fixinc, deduced.h, stmp-fixproto):
+	Execute shell scripts with $(SHELL).
+	* config/x-lynx (SHELL): Define to /bin/bash.
+
+Sun Jan  9 22:31:00 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.md (special indexed fpstores): Fix assorted typos.
+
+Sun Jan  9 04:34:17 1994  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* jump.c (follow_jumps): Don't follow tablejumps.
+
+	* Makefile.in (install-headers-cpio): Run cpio in include-dir.
+
+Sat Jan  8 14:54:06 1994  Doug Evans  (dje@cygnus.com)
+
+	* toplev.c (rest_of_compilation): jump_optimize can change max_reg_num
+	so rerun reg_scan before calling cse_main.
+
+Fri Jan  7 20:34:14 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* config/alpha/alpha.h (RTX_COSTS): Return actual costs for
+	multiplication.
+
+Tue Jan  4 13:44:09 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* sdbout.c (sdbout_symbol): Handle variables at zero offset from
+	frame pointer.
+
+Tue Jan  4 07:35:05 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.c (substitute_expr): Don't abort for RTL_EXPR and
+	SAVE_EXPR; just do nothing.
+
+Tue Jan  4 00:52:15 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.md (andsi3): Use "?" instead of "!" to avoid losing
+	in some cases.
+
+Mon Jan  3 16:59:34 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* jump.c (thread_jumps): Don't thread to loop label;
+	create new label before loop instead.
+	(thread_jumps): Rename argument `verbose' -> `flag_before_jump'.
+	* toplev.c (rest_of_compilation): Pass 1 for flag_before_jump
+	first time we call thread_jumps.
+
+	* c-typeck (build_binary_op, case *_DIV_EXPR): Use same shorten
+	condition as for *_MOD_EXPR.
+
+Mon Jan  3 08:00:16 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (truth_value_p): New function.
+	(fold): Use it to see when we should make a TRUTH_{AND,OR}_EXPR.
+	(fold, case TRUTH_{AND,OR,ANDIF,ORIF}_EXPR): Use distributive
+	law on expressions such as (A && B) || (A && C).
+
+Sun Jan  2 08:14:38 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_relational_operation): Correct declaration of
+	variables holding parts of constants.
+
+Fri Dec 31 06:27:57 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* toplev.c (main): Turn on -fomit-frame-pointer if it is safe.
+	Add -O3, which turns on -finline-functions.
+	* a29k.h, alpha.h, clipper.h, h8300.h, m88k.h, pa.h, romp.h, rs6000.h:
+	Define CAN_DEBUG_WITHOUT_FP; delete OPTIMIZATION_OPTIONS.
+	* sh.h, sparc.h: Likewise.
+	* arm.h: Delete OPTIMIZATION_OPTIONS.
+	* h8300.h: Define NO_FUNCTION_CSE and CAN_DEBUG_WITHOUT_FP;
+	delete OVERRIDE_OPTIONS.
+	* i960.h (OPTIMIZATION_OPTIONS): Just turn on machine-specific opts.
+	(CAN_DEBUG_WITHOUT_FP): Define.
+	* mips.h (CAN_DEBUG_WITHOUT_FP): Define.
+	(OPTIMIZATION_LEVELS): Just set MASK_GPOPT.
+
+	* cse.c (simplify_relational_operation): Rewrite and simplify.
+	Add case when we can simplify A-B for compare of A and B.
+
+	* combine.c (added_links_insn): New variable.
+	(distribute_links): Set it.
+	(if_then_else_cond): New function.
+	(try_combine): Return added_links_insn if it is earlier than what
+	we would otherwise return.
+	(subst): Generalize (OP X Y) to call if_then_else_cond
+	instead of only checking for an explicit IF_THEN_ELSE.
+	(subst, case IF_THEN_ELSE): When converting to a MULT, simplify
+	the MULT before putting it into OP.
+	(subst, case AND): Don't make IF_THEN_ELSE here; now made in
+	generic case earlier.
+
+	* combine.c (force_to_mode): Add new parm JUST_SELECT; all
+	callers changed.
+
+Wed Dec 29 18:05:00 1993  Leonid Baraz  (lbaraz@iil.intel.com)
+
+	* fold-const.c (fold, case PLUS_EXPR): Add a missing test of 
+	flag_fast_math.
+
+Wed Dec 29 06:52:07 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_binary_operation, case MULT): Don't convert
+	to ASHIFT if still generating RTL.
+
+Mon Dec 27 22:15:55 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Do not fix <sundev/ipi_error.h>, because SunOS
+	sed can not handle the very large macro it contains.
+
+Mon Dec 27 06:28:48 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.md (maxsf3, minsf3): Correct numerous errors.
+
+	* combine.c (subst, case MINUS): Allow some FP simplifications 
+	if -ffast-math.
+	(reversible_comparison_p): FP comparisons reversible with -ffast-math.
+	* cse.c (simplify_binary_operation, fold_rtx): Allow some FP
+	simplications with -ffast-math.
+	(simplify_relational_operation): FP comparisons can be reversed
+	if -ffast-math is specified.
+	* fold-const.c (fold): Simplify more FP ops if -ffast-math.
+	* jump.c (can_reverse_comparison_p): Return 1 if -ffast-math.
+	* loop.c (get_condition): Can reverse comparison if -ffast-math.
+
+	* alpha.c (ior_operand): New function.
+	* alpha.h (PREDICATE_CODES): Add ior_operand.
+	* alpha.md (iordi3): Use ornot for some constant cases.
+
+Sun Dec 26 07:55:26 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (do_tablejump): Call emit_cmp_insn with likely-constant
+	as second operand.
+
+	* jump.c (jump_optimize): When deleting an insn after a jump,
+	update reallabelprev since it might point to the deleted insn.
+
+	* cse.c (count_reg_usage): Don't count a register used within
+	a SET that sets it.
+	(delete_dead_from_cse): Pass new parm to count_reg_usage.
+
+	* cse.c (fold_rtx, case PLUS): If we have (plus A B), A is
+	equivalent to a negative constant, and the negated constant is in
+	register, convert to (minus A C) where C is the register containing
+	the negated constant.
+
+Sat Dec 25 23:47:01 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (DBX_BLOCKS_FUNCTION_RELATIVE): Define.
+	(ASM_OUTPUT_SOURCE_LINE): Likewise.
+	(DBX_FUNCTION_FIRST): Likewise.
+
+	* pa.h (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Change to %r3
+	for compatability with HP compilers.
+
+	* pa.h (READONLY_DATA_SECTION): Re-enable use of $LIT$.
+
+Sat Dec 25 06:05:28 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (gen_reg_rtx): Only clear part of arrays we aren't
+	going to copy into.
+
+	* expr.c (expand_expr, case CONSTRUCTOR): If have a target,
+	don't build constructor into memory.
+
+	* expr.c (expand_expr, case ARRAY_REF): Remove uses of *_type_node
+	and simplify folding a reference to a character in a STRING_CST.
+
+	* a29k.c, a29k.h: Rename R_ACC to R_ACU to not conflict with access.h.
+
+	* m68k/crds.h (HAVE_VPRINTF): Delete from here.
+	* m68k/xm-crds.h (HAVE_VPRINTF): Define.
+	* m68k/dpx2.h (USG): Delete from here (already in xm.h file).
+
+	* print-tree.c (print_node, print_node_brief): Say something
+	when TREE_CONSTANT_OVERFLOW is set.
+
+	* loop.c (check_dbra_loop): Fix error in previous change.
+
+	* combine.c (set_nonzero_bits_and_sign_copies, nonzero_bits):
+	Fix errors in SHORT_IMMEDIATES_SIGN_EXTEND code.
+
+	* alpha.h (FUNCTION_ARG): Pass complex float in float regs.
+
+	* fold-const.c (fold, case EQ_EXPR, NE_EXPR): If COMPLEX_TYPE
+	and at least one arg is a COMPLEX_EXPR, split into a logical
+	operation on the real and imaginary parts.
+
+	* c-typeck.c (common_type): For COMPLEX_TYPE, return one of the
+	original types if is the desired common type.
+	(build_binary_op): Use SHORT_COMPARE code even if complex.	
+
+	* c-decl.c (grokdeclarator): Properly validate __complex__ and
+	create the various kinds of complex integer types.
+
+	* cse.c (simplify_unary_operations): Check that operations really
+	are double-word before doing them.
+
+Fri Dec 24 15:21:16 1993  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* cccp.c (read_name_map, read_filename_string, open_include_file):
+	New functions.
+	(struct file_name_list): New members: name_map, got_name_map.
+	(main, path_include, do_include, do_once): Set got_name_map.
+	(do_include): Use open_include_file instead of open.  Add new
+	parameter to lookup_import calls.
+	(lookup_import): New parameter searchptr.  Call open_include_file
+	instead of open.
+
+	* expr.c (convert_modes): Can't truncate REG with gen_lowpart if
+	TRULY_NOOP_TRUNCATION doesn't allow it.
+
+Fri Dec 24 14:36:53 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* cse.c (cse_insn): Set "cse_jumps_altered" when collapsing
+	a switch statement into an unconditional jump.
+	* toplev.c (rest_of_compilation): Rerun jump_optimize
+	before the second CSE pass.
+
+Fri Dec 24 05:34:38 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_binary_operation, case PLUS, MINUS):
+	Simplify such things as (X >> 1) - X.
+
+	* alpha.md (define_attr type): Add new type ISUBR.
+	(divmod): Set to type ISUBR.
+	* alpha.c (output_prolog): Need GP if type ISUBR.
+
+	* reload.c (push_reload, find_reloads): Reload inside a paradoxical
+	SUBREG of MEM except don't force a reload unless the inner mode
+	is narrower than BIGGEST_ALIGNMENT.
+
+	* c-typeck.c (check_init_type_bitfields): Check recursively inside
+	arrays and records.
+
+	* c-parse.in (attrib): Allow expressions instead of constants.
+	* c-common.c (decl_attribute): Verify that alignment and format
+	argument numbers are all integer constants.
+	Continue on to next attribute if one is in error.
+
+	* cse.c (simplify_binary_operation): Can fold multi-word
+	operations when first is CONST_INT.
+	(simplify_binary_operation, case PLUS, MINUS): Don't call
+	plus_constant when OP0 is VOIDmode.
+
+	* c-typeck.c (pop_init_level): Don't abort if have incomplete array
+	type inside some other type.
+
+Thu Dec 23 22:06:21 1993  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* jump.c (thread_jumps): Delete redundant loop termination test.
+
+	* cse.c (simplify_binary_operation, case *SHIFT*): Reduce arg1 as
+	defined by SHIFT_COUNT_TRUNCATED.
+
+	* config/pa/pa.c (Several places): Declare values from INTVAL(x) as
+	HOST_WIDE_INT.
+	(uint32_operand): New function.
+	(output_block_move): Change unroll threshold from 64 to 32.
+	(compute_movstrsi_length): Corresponding change.
+	(print_operand): Don't call debug_rtx, just abort.
+
+	* config/pa/pa.h (FUNCTION_INCOMING_ARG): Delete definition.
+	(RTX_COSTS) [PLUS]: Rewrite.
+	(output_scc_insn): Delete.
+	(output_floatsisf2): Delete.
+	(output_floatsidf2): Delete.
+	(PREDICATE_CODES): Define, but leave within #if 0 for now.
+
+	* config/pa/pa.md (iorscc): New recognizer.
+	2 new recognizers for sub;subb.  1 new recognizer for addi;subb.
+	(movstrsi): Remove predicates.  Set inline threshold to 8.
+	(umulsidi3): Change predicates to nonimmediate_operand.
+	New recognizer for multiply-by-immediate.
+	(andsi3): Add `!' for register alternative.
+	(vdepi_ior, vdepi_and): New recognizers.
+	(vextru rx,1,ry, vextrs rx,1,ry): New recognizers.
+
+	* config/pa/pa.c (initialize_pic): Delete.
+	(finalize_pic): Use PIC_OFFSET_TABLE_REGNUM rather than 19.
+	* config/pa/pa.h (CONDITIONAL_REGISTER_USAGE): Never make
+	PIC_OFFSET_TABLE_REGNUM fixed.
+	(INITIALIZE_PIC): Delete.
+	* config/pa/pa.md (call, call_value): If PIC, emit USE for for
+	PIC_OFFSET_TABLE_REGNUM.  Use PIC_OFFSET_TABLE_REGNUM rather than 19.
+
+Thu Dec 23 18:51:12 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* local-alloc.c (optimize_reg_copy_1): After decreasing sregno's
+	reg_live_length, correct it if it is now obviously too small.
+
+	* loop.c (check_dbra_loop): Don't reverse loop if there is a
+	single memory store to an invariant address.
+
+	* gcc.c (translate_options): Skip arguments of -B, -b, -V, -x,
+	and -Xlinker options.
+
+	* configure (riscos-*-*): Use fixincludes instead of fixinc.mips.
+	* fixinc.mips: Delete file.
+	* fixincludes: Merge in changes from fixinc.mips.  Fix identifiers
+	host_mips, mips, MIPSE[LB], R[34]000, SYSTYPE_*.  Fix size_t uses
+	in stddef.h, memory.h, unistd.h.  Fix /**/ in bsd43/bsd43_.h.
+
+Thu Dec 23 18:28:02 1993  Richard Earnshaw  (rwe11@sticte.cl.cam.ac.uk)
+
+	* expmed.c (expand_mult): Preserve useful sub-expressions when
+	 expanding a synthesized mult.
+
+Thu Dec 23 18:21:34 1993  Russ Noseworthy  (jrnosewo@ral.rpi.edu)
+
+	* configure (m68k-wrs-vxworks): New, same as m68k-sun-sunos*.
+
+Thu Dec 23 09:03:30 1993  Phil Nelson  (phil@cs.wwu.edu)
+
+	* ns32k.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use .long, not .double.
+
+Thu Dec 23 07:30:24 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (libgcc.a): Allow chmod of tmpcopy directory to
+	fail since it can be empty.
+
+	* gcc.c (default_compilers, gnat1): Don't write -gnatb.
+
+	* c-common.c (T_ST): Fix typo in last change.
+
+	* expr.c (expand_expr, case MINUS_EXPR): When expanding an
+	initializer, use plus_constant as appropriate.
+
+	* collect2.c (main): When searching compiler directories, 
+	look for ld_suffix, not full_ld_suffix.
+
+	* a29k/unix.h (TARGET_DEFAULT): Update to use new values.
+
+	* Makefile.in (GCC_CFLAGS): Add -I./include.
+
+Thu Dec 23 06:57:39 1993  Chip Salzenberg  (chip@fin.uucp)
+
+	* Makefile.in (ENQUIRE_CFLAGS): Omit -DNO_STDDEF.
+	(USE_ALLOCA): Allow ${ALLOCA} to begin with a dash.
+	(OBJC, OBJECTIVE-C): Depend on objc-runtime.
+	(objc-headers): Make include directory if missing.
+
+	* xm-svr3.h (HAVE_VPRINTF): Define.
+
+	* cse.c (delete_reg_equiv): Don't reference elements of
+	REG_{NEXT,PREV}_EQV that are not defined.
+
+Wed Dec 22 14:21:49 1993  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_parms): For parameter passed by invisible
+	reference, use DECL_INCOMING_RTL if DECL_RTL is a pseudo-reg address.
+
+	* xcoffout.h (DBX_FINISH_SYMBOL): Get variable name from DECL_RTL
+	instead of from DECL_ASSEMBLER_NAME.
+
+	* sched.c (priority): Handle INSN_DELETED_P insns, in addition to
+	insns which were deleted by being turned into notes.
+
+	* expr.c (expand_expr, NEGATE_EXPR case): Use subtarget in
+	recursive call, not target.
+
+	* fixproto (required_unistd_h): Delete getgroups from list.
+
+	* fix-header.c (missing_extern_C_count): Ifdef out.
+	(write_lbrac, recognized_function, read_scan_file, write_rbrac):
+	Likewise.
+
+	* cccp.c (main): Cast alloca result to char * to avoid warning.
+
+	* unroll.c (find_splittable_givs): For rewritting illegal init
+	insn, use force_operand instead of emit_iv_add_mult.
+
+Wed Dec 22 13:44:17 1993  Ron Guilmette  (rfg@netcom.com)
+
+	* tree.c (chainon):  Detect more circularities.
+
+	* enquire.c (main):  Move declarations of SIZE and TOTAL to
+	where they won't cause "unused" warnings when NO_MEM is defined.
+	(promotions):  Explicitly declare return type (to avoid warnings).
+	Always return a value.
+
+Wed Dec 22 13:39:40 1993  Chip Salzenberg  (chip@fin.uucp)
+
+	* Makefile.in (gcc.o): Define DEFAULT_TARGET_VERSION.
+	* gcc.c (compiler_version): New variable.
+	(spec_version): Initialize from DEFAULT_TARGET_VERSION.
+	(main): Distinguish COMPILER_VERSION from TARGET_VERSION.
+	(process_command): Use COMPILER_VERSION for %v.
+	Guard against a COMPILER_VERSION that lacks a minor.
+
+Wed Dec 22 07:47:17 1993  Greg Gilley  (ggilley@adobe.com)
+
+	* gcc.c (default_compilers): Treat ".cpp" as C++.
+	* cccp.c (main): Strip off ".cpp" extension.
+	* toplev.c (strip_off_ending): Likewise.
+
+Wed Dec 22 07:26:26 1993  Rafal Pietrak  (Rafal_Pietrak@camk.edu.pl)
+
+	* Makefile.in (install-headers, install-headers-tar): Correctly
+	handle directories when $(libsubdir) is a relative path.
+
+Wed Dec 22 07:12:06 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-common.c (T_ST): New macro.
+	(scan_char_table): With s, c and [, allow `a' flag.
+	(print_char_table): Accept Z and m codes.
+	(check_format_info): Handle the `a' flag.
+
+Tue Dec 21 21:09:38 1993  Rainer Orther  (ro@TechFak.Uni-Bielefeld.de)
+
+	* fixincludes (rpc/auth.h, rpc/xdr.h): Declare structures before
+	using them in prototypes, for Irix 4.0.5.
+	(rpc/rpc.h): Avoid a nested comment on Ultrix 4.3.
+
+Tue Dec 21 18:41:36 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* configure (cpp_md_flags): Rename to md_cppflags.
+	(MD_CPP, MD_DEPS): Set appropriately for native or cross build.
+	(MD_FILE): Edit in place.
+	* Makefile.in (MD_FILE rule): Depend on $(MD_DEPS).  Invoke $(MD_CPP).
+
+Tue Dec 21 17:37:20 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-tree.h (VTABLE_NAME): No def with NO_{DOLLAR,DOT} defined.
+	(VTABLE_NAME_P): Use it instead of VTABLE_NAME_FORMAT.
+
+Tue Dec 21 13:25:39 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Also pass Pascal arrays
+	by reference.
+
+	* sched.c (sched_analyze): For CALL_INSN followed by
+	NOTE_INSN_SETJMP note, make it depend on all registers not just
+	hard registers, and add a REG_DEAD -1 note.
+	(unlink_notes): Don't save away NOTE_INSN_SETJMP notes.
+	(schedule_block): After scheduling CALL_INSN, check for REG_DEAD
+	-1 note.  If find it, delete it, and output a NOTE_INSN_SETJMP note.
+
+	* rtlanal.c (replace_regs, case REG): Return copies of SUBREGs, to
+	avoid invalid sharing.
+
+Tue Dec 21 13:07:14 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.c (output_function_prologue): Use ASM_GENERATE_INTERNAL_LABEL
+	rather than generating one on its own.
+
+	* pa.h (ASM_GENERATE_INTERNAL_LABEL): Always use L$ as the prefix
+	for internal labels.
+	(ASM_OUTPUT_INTERNAL_LABEL): Likewise.
+
+Mon Dec 20 19:10:16 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-typeck.c (struct initializer_stack): New field ELEMENTS.
+	(start_init, finish_init): Save and restore constructor_elements.
+
+	* emit-rtl.c (gen_lowpart_common): Return a new hard reg even
+	if not valid in MODE if the input REG is not valid in its mode.
+
+	* rs6000.md (divsi3): Correct logic for when we call force_reg.
+	(modsi3): Ensure operands[2] is a CONST_INT; include REG in
+	predicate.
+
+Thu Dec 16 16:14:53 1993  Jeffrey A. Law  (law@mole.gnu.ai.mit.edu)
+
+	* pa.c (compute_frame_size): Remove implicit assumption that %r4
+	is the frame pointer.
+
+	* pa.c (output_function_prologue): Reverse last change.  Output
+	both the function label and the .PROC here.
+
+	* pa.h (ASM_DECLARE_FUNCTION_NAME): Do not output the function
+	label or the .PROC here.
+
+Thu Dec 16 11:34:48 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Do not preserve _HIDDEN_VA_LIST in stdio.h.
+
+Wed Dec 15 13:48:25 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (flag_conserve_space): New language specific flag to
+	tell the compiler to use .common when possible.  Reduces the size of
+	.o files.
+	* cp-decl.c (duplicate_decls): Copy DECL_COMMON from the olddecl.
+	* cp-decl.c (start_decl): Set DECL_COMMON appropriately.
+	* cp-decl.c (finish_decl): Use flag_conserve_space, instead of
+	flag_no_common.
+	* cp-decl2.c (flag_conserve_space, lang_f_options): New flag.
+	* toplev.c (lang_options): New -fconserve-space flag.
+	* tree.h (DECL_COMMON): New flag.
+	* tree.h (tree_decl): New common_flag.
+	* varasm.c (assemble_variable): Use DECL_COMMON to help determine if
+	an object can be put in .common.
+	* c-decl.c (start_decl): Set DECL_COMMON to 1.
+
+Wed Dec 15 19:04:55 1993  Conrad Kimball  (cek@sdc.boeing.com)
+
+	* Makefile.in (cccp.o, stmt-proto): Use $(includedir).
+
+Wed Dec 15 18:44:03 1993  Leonid Baraz  (lbaraz@iil.intel.com)
+
+	* tree.c (copy_node): Handle length of INTEGER_CST like make_node.
+
+Wed Dec 15 18:37:29 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* final.c (profile_function): Set ALIGN properly.
+
+	* protoize.c: Remove declarations of setjmp and longjmp.
+
+Wed Dec 15 18:31:01 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* c-typeck.c (missing_braces_mentioned): Renamed from
+	`partial_bracket_mentioned'.
+	(start_init): Clear `missing_braces_mentioned'.
+	(warning_init): New function.
+	(push_init_level): Optionally warn about missing braces.
+	When warning about braces around scalars, identify which scalars.
+
+Wed Dec 15 18:21:29 1993  Richard Henderson  (richard@viz.tamu.edu)
+
+	* mips/iris3.h (LIB_SPEC): Use shared libc when not profiling,
+	not debugging, and no "-static".
+
+Wed Dec 15 18:14:31 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* expr.c (expand_builtin): Allow __builtin_next_arg to be used
+	in varargs functions.
+
+Wed Dec 15 18:09:57 1993  Kaveh R. Ghazi  (ghazi@noc.rutgers.edu)
+
+	* Makefile.in (gnucompare, gnucompare3): New targets.
+
+Tue Dec 14 00:19:44 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.c (output_call): Put temporary label after the
+	RP adjustment.  "- 8" adjustment is no longer necessary.
+
+	* x-pa (CC): Do not use absolute path to gcc.
+
+	* pa.c (output_function_prologue): Do not output the .PROC directive
+	here.
+
+	* pa.h (ASM_DECLARE_FUNCTION_NAME): Emit the .PROC immediately
+	after the function's label.
+
+	* pa.h (ASM_FILE_START): Emit a .file directive at the beginning
+	of the output file if debug symbols are being generated.
+
+	* pa.h (MAX_OFILE_ALIGNMENT): Define appropriately for the PA.
+
+	* pa-ghiux.h (TARGET_DEFAULT): Enable TARGET_JUMP_IN_DELAY and
+	TARGET_GAS.
+	* pa1-ghiux.h (TARGET_DEFAULT): Likewise.
+
+	* pa-ghpux.h (TARGET_DEFAULT): Enable TARGET_JUMP_IN_DELAY.
+	* pa-gux7.h (TARGET_DEFAULT): Likewise.
+	* pa-utahmach.h (TARGET_DEFAULT): Likewise.
+	* pa.h (TARGET_DEFAULT): Likewise.
+	* pa1-ghpux.h (TARGET_DEFAULT): Likewise.
+	* pa1-utahmach.h (TARGET_DEFAULT): Likewise.
+	* pa1.h (TARGET_DEFAULT): Likewise.
+
+	* pa.h (LEGITIMATE_CONSTANT_P): Remove hack for function addresses.
+	* pa.c (secondary_reload_class): Function addresses no longer
+	need secondary reloads.
+	(emit_move_sequence): Special handling of function addresses is
+	no longer needed.
+	* pa.md (lo_sum of a function address): Use short form as we have
+	no intention of supporting MPE external calls.
+
+Mon Dec 13 20:58:58 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (subst, case MINUS): Canonicalize (minus A (plus A B)).
+
+Mon Dec 13 19:09:42 1993  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* mips/iris4.h (ASM_OUTPUT_ASCII): Wrap in `do { ... } while (0)'.
+	* clipper/clix.h, fx80/fx80.h, i860/bsd.h, m68k/3b1.h: Likewise.
+	* m68k/amix.h, m68k/crds.h, m68k/hp320.h, m68k/m68kv4.h: Likewise.
+	* m68k/mot3300.h, m68k/sgs.h, m68k/tower-as.h: Likewise.
+	* ns32k/encore.h, tahoe/harris.h, tahoe/tahoe.h: Likewise.
+	* vax/vaxv.h,we32k/we32k.h: Likewise.
+
+Mon Dec 13 03:28:02 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* configure (sparc-*-solaris2): Fix typo in extra_parts.
+
+Sun Dec 12 08:19:38 1993  Chip Salzenberg  (chip@fin.uucp)
+
+	* cccp.c (main): Combine tests of single-character suffixes.
+	(deps_output): Different second parameter: SPACER determines
+	meaning of first argument (target, dependency, literal text).
+	Wrap output correctly.
+
+Sun Dec 12 07:54:07 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.c (type_hash_canon): Clean up obstack usage a bit.
+
+	* recog.c (indirect_operand): Verify mode of OP is correct.
+
+	* calls.c (expand_call, store_one_arg): Properly push and pop
+	temporary level around expression evaluations.
+
+	* configure: Handle EXTRA_PARTS and EXTRA_OBJS like the others.
+	(i[34]86-*-osfrose*): Replace t-osfrose with extra_objs assignment.
+	(i[34]86-*-sco*): Likewise for t-sco.
+	(i[34]86-*-isc*): Likewise for t-isc.
+	(i[34]86-ibm-ai*): Likewise for t-aix.
+	(i[34]86-*-solaris2, i860-alliant-*): Add extra_parts.
+	(sparc-*-solaris2*, m88k-*): Likewise.
+	(mips-dec-osfrose*): Add extra_objs.
+	(clipper-intergraph-clix*): Replace t-clix with extra_headers and
+	extra_parts.
+	* Makefile.in (halfpic.o): New rule; copied from t-osfrose.
+	* h8300/t-h8300: Delete null LIB2FUNCS_EXTRA.
+	* i386/t-sol2, i860/t-fx2800, m88k/t-dgux-gas: Delete EXTRA_PARTS.
+	* m88k/t-dgux, m88k/t-m88k, m88k/t-sysv4, sparc/t-sol2: Likewise.
+	* m88k/t-luna: Don't require bash.
+	* mips/t-osfrose: Delete EXTRA_OBJS and halfpic.o rule.
+	* clipper/t-clix, i386/t-aix, i386/t-isc, i386/t-osfrose, i386/t-sco:
+	Deleted; no longer needed.
+
+Sun Dec 12 06:47:14 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Version 2.5.7 released.
+
+Sun Dec 12 06:18:33 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* function.c (thread_prologue_and_epilogue_insns): When constructing
+	USE chain, set both NEXT_INSN and PREV_INSN links.  Also, preserve
+	order of USE insns in chain.
+
+Sun Dec 12 06:13:51 1993  DJ Delorie  (dj@ctron.com)
+
+	* configure.bat: Update to relect recent changes elsewhere.
+	* objc/makefile.dos: Likewise.
+
+Sat Dec 11 18:09:50 1993  Per Bothner  (bothner@cygnus.com)
+
+	* dbxout.c (dbxout_type):  The "base type" of a SET_TYPE is its
+	DOMAIN_TYPE, not its TREE_TYPE.
+	* dwarfout.c (output_type): Likewise.
+
+Sat Dec 11 07:36:57 1993  David Rifkind  (dave@yarc.com)
+
+	* rs6000.md: Add a few missing new nmemonics.
+
+Sat Dec 11 06:57:55 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cccp.c (INPUT_STACK_MAX): Double size.
+
+	* integrate.c (initialize_for_inline): Handle CONCAT when setting up
+	parmdecl_map.
+
+	* rs6000.md (modsi3): Reject REG in predicate to avoid undefined
+	reference and extra pseudo creation if will fail.
+
+Fri Dec 10 10:03:36 1993  Mike Stump  (mrs@cygnus.com)
+
+	* toplev.c (lang_options): Change -fnodollars-in-identifiers to
+	-fno-dollars-in-identifiers to match docs.
+
+Fri Dec 10 15:42:02 1993  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* c-lex.c (yylex): When reading malformed floating point constant,
+	avoid printing error more than once, and avoid passing malformed
+	number to subsequent atof call.
+
+Fri Dec 10 06:03:35 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.c (easy_fp_constant): Use input_operand to see if
+	each word can be loaded in one insn.
+
+	* rs6000.md: Change numerous occurrences of TARGET_POWERPC
+	to ! TARGET_POWER and make related changes.
+
+	* rs6000.md (modsi3): Rework to operate correctly for both POWER
+	and PowerPC.
+
+Thu Dec  9 16:19:05 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-tree.h (OPERATOR_TYPENAME_P): Define outside of
+	NO_{DOLLAR,DOT} macro checks, so it always gets defined.
+	(VTABLE_NAME_P): Define for NO_DOT && NO_DOLLAR_IN_LABEL.
+
+Wed Dec  8 05:46:26 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* flow.c (mark_used_regs, case CLOBBER): Refine previous change
+	to just look at the address of a MEM inside a CLOBBER.
+
+	* fold-const.c (fold, case *_{DIV,MOD}_EXPR): When using
+	distributive law, take care when C2 is negative.
+
+Tue Dec  7 08:45:59 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* flow.c (mark_used_regs): Look inside a CLOBBER; it may be the only
+	place regs are used if it has a stack slot that is from an inlined
+	function.
+
+Mon Dec  6 20:56:11 1993  David Rifkind  (dave@yarc.com)
+
+	* expr.c (move_block_{to,from}_reg): Check HAVE_{load,store}_multiple
+	value; don't just #idef the symbol.
+
+Mon Dec  6 08:01:59 1993  Torbjorn Granlund  (tege@cygnus.com)
+
+	* pa.c (hppa_legitimize_address): If we can't legitimize,
+	do nothing; don't call abort.
+
+Mon Dec  6 07:38:30 1993  Richard Earnshaw  (rwe11@cl.cam.ac.uk)
+
+	* arm.c (output_ascii_pseudo_op): 8-bit chars should be zero-extended.
+	* arm.h (ASM_OUTPUT_ASCII): Likewise.
+
+Mon Dec  6 07:32:59 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* objc/encoding.h: Include ctype.h.
+
+	* expr.c (expand_expr, case PLACEHOLDER_EXPR): Remove top entry 
+	from PLACEHOLDER_LIST when expanding the value in it.
+
+Mon Dec  6 05:40:38 1993  Doug Evans  (dje@cygnus.com)
+
+	* emit-rtl.c (start_sequence): Save current sequence_rtl_expr.
+
+Fri Dec  3 07:07:01 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Version 2.5.6 released.
+
+	* c-typeck.c (c_expand_return): Return if convert_for_assignment
+	returns error_mark_node.
+
+Fri Dec  3 06:42:05 1993  Arne Henrik Juul  (arnej@fm.unit.no)
+
+	* fixincludes (stdio.h): Fix typos (missing quote) in previous change.
+
+Fri Dec  3 06:35:57 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* gstddef.h: Define and protect against __STDDEF_H__ for Irix 5.1.
+
+	* sparc.c (shift_operand): Delete function.
+	* sparc.md (ashlsi3, ashrsi3, lshrsi3): Use arith_operand instead
+	of shift_operand.  Truncate shift counts to 5 bits.
+
+Thu Dec  2 08:11:00 1993  Stefan Rapp  (sr@irb.informatik.uni-dortmund.de)
+
+	* loop.c (scan_loop): Correct arguments for register check.
+
+Thu Dec  2 07:07:05 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* fixincludes: Preserve _HIDDEN_VA_LIST when changing VA_LIST to
+	DUMMY_VA_LIST.  Change __va_list to __gnuc_va_list.  For AIX
+	3.2.5.
+
+Thu Dec  2 07:00:24 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (push_topmost_sequence, end_sequence): Update
+	sequence_rtl_expr from sequence_stack entry.
+
+	* calls.c (emit_library_call): Use Pmode, not OUTMODE, when passing
+	in structure address.
+
+	* a29k.c (secondary_reload_class): Kernel regs are in same class
+	as user regs.
+
+	* a29k.md (movti split): Set CR to 3, not 1 like DImode.
+
+Thu Dec  2 06:46:07 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* reload.c (find_reloads_toplev): Replace obsolete reference to
+	BYTE_LOADS_*_EXTEND with LOAD_EXTEND_OP.
+
+Thu Dec  2 06:39:16 1993  Jeffrey A Law  (law@snake.cs.utah.edu)
+
+	* pa.h (ASM_STABS_OP, ASM_STABN_OP): Define.
+	(ASM_FILE_END): Put a TAB before the .stabs directive.
+
+Thu Dec  2 06:30:17 1993  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.md (define_function_unit): Restore ppc601 load and fpload
+	timings.
+
+Wed Dec  1 17:24:17 1993  Brendan Kehoe  (brendan@mole.gnu.ai.mit.edu)
+
+	Wed Nov 24 06:36:10 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+        * cp-tree.c (get_decl_list): Use the DECL_NESTED_TYPENAME for the
+        value we're going to paste onto CLASSTYPE_ID_AS_LIST.  This will get
+        the right name for nested classes, and for templates.
+
+	Mon Nov 29 13:09:31 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Properly evaluate TREE_PUBLIC for
+	friends.  (Fixes spurious warnings about friends being declared
+	static but not used.)
+
+	* cp-type2.c (build_functional_cast): If we got an error_mark_node
+	from build_method_call, make sure EXPR_AS_METHOD is cleared out
+	again, so the later checks will work properly.
+
+	* cp-decl.c (build_enumerator): Fix logic so an enum inside a class
+	that's local to a function has its enumerators end up in that
+	class's list of members, not in the list for the function.
+
+Tue Nov 30 19:26:05 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* sparc.h (STATIC_CHAIN_REGNUM): Use %g2; %g1 is reserved
+	for prologue.
+	(TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Swap useage of %g1
+	and %g2.
+
+	* m68k.md (movdf): Don't need earlyclobber when a register
+	is copied to itself.
+
+Sat Nov 27 06:19:22 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Version 2.5.5 released.
+
+	* c-typeck.c (pop_init_level): Ensure never on momentary_obstack
+	when calling complete_array_type.
+
+Sat Nov 27 03:52:26 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixproto (scanning files_to_check): Create subdirs files are in.
+
+	* config/m68k/m68k.md (cmpsi, cmphi, cmpqi): Handle SGS_CMP_ORDER
+	when outputting cmpm insn.
+
+Fri Nov 26 15:57:24 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (default_compilers): Do define __GNUC_MINOR__ if input is `-'.
+
+Thu Nov 25 18:16:25 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.h (struct sequence_stack): New field sequence_rtl_expr.
+	(struct function): Likewise.
+	* emit-rtl.c: Include tree.h.
+	(sequence_rtl_expr): New variable.
+	(save_emit_status, restore_emit_status): Save and restore it.
+	(init_emit): Initialize it.
+	(start_sequence_for_rtl_expr): New function.
+	* function.c: Declare sequence_rtl_expr.
+	(struct temp_slot): New field rtl_expr.
+	(assign_stack_temp): Set it from sequence_rtl_expr.
+	({free,pop}_temp_slots): Don't free any slot with nonzero rtl_expr.
+	(free_temps_for_rtl_expr): New function.
+	* expr.c (expand_expr, case RTL_EXPR): Call free_temps_for_rtl_expr.
+	* stmt.c (expand_start_stmt_expr): Call start_sequence_for_rtl_expr
+	instead of start_sequence.
+	* cp-parse.y (except_stmts): Likewise.
+	* cp-init.c (build_new): Likewise.
+	* cp-typeck.c (build_modify_expr): Likewise.
+	* Makefile.in (emit-rtl.o): Includes tree.h.
+
+Thu Nov 25 17:24:02 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (stmp-fixproto): Create include subdir if doesn't exist.
+
+Wed Nov 24 14:32:47 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* c-common.c (shorten_compare): Correct typo from last change.
+
+Wed Nov 24 13:25:09 1993	Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* protoize.c (save_def_or_dec): Correct typo in change of Nov 23.  Make
+	sure pointers within def_dec_p are valid before it is freed.
+
+Wed Nov 24 07:02:50 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* expr.c (expand_expr, case ADDR_EXPR): Also pass const0_rtx if
+	necessary, to avoid multiple cleanup runs.
+	(expand_expr, case WITH_CLEANUP_EXPR): Pass const0_rtx if
+	necessary, to keep the recursive call from running the same
+	cleanups twice.
+	(expand_expr, case TARGET_EXPR): Don't try to add the cleanup if
+	ignore's non-zero, since we would have already done it.
+
+Tue Nov 23 21:10:22 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Cygnus<->FSF C++ front-end merge.
+	Tue Nov 23 11:05:28 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-errfn.c (STRDUP): Cast return value of alloca to (char *).
+
+	Mon Nov 22 00:07:17 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-lex.c (real_yylex): Move declaration of tmp inside the block
+	that uses it, so compilers don't try to mis-optimize it away.
+
+	* cp-search.c (dfs_pushdecls): Make sure there's a lang_specific
+	node on the decl before trying to print the warning out.
+
+	* cp-decl.c (grokdeclarator): Say the member was redeclared as
+	static, not just that it can't be declared static.
+
+	* cp-search.c (get_first_matching_virtual): Don't do
+	SET_IDENTIFIER_ERROR_LOCUS as an attempt to avoid multiple warnings
+	with -Woverloaded-virtual.  It changes the compiler's behavior
+	(elicits unwanted errors).
+
+	Sat Nov 20 19:31:01 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-tree.h (lang_type): Add field `has_nonpublic_ctor', and delete
+	dummy since we used the two bits it was holding out for the MIPS
+	compiler.
+	(TYPE_HAS_NONPUBLIC_CTOR): Defined.
+	* cp-class.c (finish_struct_methods): Set TYPE_HAS_NONPUBLIC_CTOR
+	as appropriate for a copy ctor with non-public visibility.
+	(finish_struct): Don't generate a copy ctor if the type if one of
+	its fields has a private copy ctor, or a protected one for which we
+	aren't allowed access.
+	(base_info): Add member `saw_nonpublic_ctor'.
+	(finish_base_struct): Set b->saw_nonpublic_ctor if necessary.
+
+	* cp-method.c (hack_identifier): Make sure there's a
+	DECL_LANG_SPECIFIC before getting ready to grope around a class.
+
+	* cp-typeck.c (build_indirect_ref): Complain if we encounter a
+	pointer to member.
+
+	Fri Nov 19 16:37:28 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (start_decl): Complain when a function is declared as
+	part of a template definition, but the class it's supposed to be
+	part of wasn't a template.
+
+	* cp-decl.c (pushdecl): Don't warn about shadowing a member of
+	`this' if that member is static.
+
+	* cp-call.c (convert_harshness_old): Don't die if one of the types
+	isn't an aggregate with a binfo.
+	(convert_harshness_ansi): Likewise.
+
+	Fri Nov 19 12:18:31 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-typeck.c (convert_for_assignment): Fix typo so initialization
+	of a pointer from an integer actually work, rather than emit bogus
+	code.
+
+	* cp-pt.c (overload_template_name): Accept unions for templates.
+	(instantiate_class_template): Likewise.
+	* cp-parse.y (template_instantiate_once): Likewise.
+
+	* cp-lex.c (real_yylex): Instead of using the "shorts" method to
+	check for overflow, use the C front-end's "parts" method (to handle
+	any size, and not rely on long long being 32 bits wide).
+
+	Thu Nov 18 11:51:34 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-lex.c (cons_up_default_function): Disable earlier change; it
+	screws up stabs somehow.  Very strange.
+
+	Thu Nov 18 00:16:29 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Say what class is involved when saying
+	we can't declare a member inside it.
+
+	* cp-lex.c (real_yylex): Recognize operator->() as POINTSAT, not
+	POINTSAT_LEFT_RIGHT.  By swallowing the parens, we ended up never
+	building the call properly for them.
+	* cp-parse.y (POINTSAT_LEFT_RIGHT): Remove token.
+	(operator_name): Remove POINTSAT_LEFT_RIGHT rule.
+	* cp-spew.c (init_spew): Remove POINTSAT_LEFT_RIGHT from
+	toks_follow_ids.
+
+	* cp-parse.y (primary): Only try to print out the operator's name if
+	it's valid.
+
+	* cp-decl.c (grok_op_properties): Fix missing parens to keep the
+	logic from accidentally giving an error when it shouldn't.
+
+	Wed Nov 17 20:04:00 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-search.c (dfs_pushdecls): TREE_PURPOSE doesn't have to be
+	a _DECL for class_value to be an envelope, it just can't be an
+	IDENTIFIER_NODE.
+
+	Wed Nov 17 15:54:02 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-type2.c (process_init_constructor): Deal with pointers to
+	members as initializers for initializer lists.
+
+	Wed Nov 17 11:48:38 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-decl.c (ambi_op_p): Add ++ and --.
+
+	* cp-error.c: Lose the anon_parm_name stuff.
+
+	* cp-lex.c (cons_up_default_function): Change input_filename for
+	synthetic code.
+
+	* cp-error.c (dump_aggr_type): Always print const or volatile.
+	(dump_function_decl): Only print static if verbose.
+
+	* cp-errfn.c (cp_sprintf): New function.
+
+	* cp-decl.c (grokfndecl): Be more verbose in complaint about applying
+	method qualifiers to non-methods.
+
+	Wed Nov 17 09:51:04 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* cp-parse.y (attrib): Accept "noreturn" attribute.
+
+	Tue Nov 16 12:28:49 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-decl2.c (grokoptypename): Fix handling of udc's.
+
+	* cp-method.c (build_component_type_expr): Ditto.
+
+	* cp-class.c (finish_struct_methods): Be more verbose in complaint
+	about overloaded operator delete.
+
+	* cp-decl.c (grok_op_properties): Do more checking on operators.
+	(grokdeclarator): Remove check for ops being members, fix handling
+	of user-defined conversions.
+	(grokfndecl): Remove checks for ops, move call to grok_op_properties
+	up.
+	(finish_decl): Remove check for ops with default arguments.
+	(ambi_op_p): New fn, name for either unary or binary op
+	(unary_op_p): New fn, checks name for unary op
+
+	Mon Nov 15 12:38:54 1993  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* g++.c (main): If they gave us -v, also show the invocation of the
+	gcc driver.
+
+	Mon Nov 15 12:04:47 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Lose "operator <typename>".
+
+	* cp-method.c (build_component_type_expr): Ditto.
+
+	* cp-decl2.c (grokoptypename): Ditto.
+
+	Make C++ accept template parameters as type names; for example,
+	doing `template <class T, T t> A {...}'.
+
+	* cp-pt.c (end_template_parm_list): Fix a bug in gs4t's patch.
+	(grok_template_type): Simplify.
+
+	* cp-typeck.c (build_modify_expr_1): Give error if trying to
+	get default operator= for class where you can't.
+
+	* cp-decl.c (duplicate_decls): Uniformify, fix redeclaration of
+	builtins.
+
+	Sat Nov  6 19:06:25 EST 1993 Gnanasekaran Swaminathan (gs4t@virginia.edu)
+
+	* cp-pt.c (begin_template_parm_list): pushdecl here so that we
+	can push TEMPLATE PARAMETERS as type names.
+	(process_template_parm): build_lang_decl for TEMPLATE
+	PARAMETERS here.
+	(grok_template_type): New function. get the actual type of a
+	TEMPLATE PARAMETER.
+	(coerce_template_parms): delete pushdecl as it is moved (see
+	above). Don't build type decls for TEMPLATE PARAMETERS as it is
+	built above.
+	
+	Mon Nov 15 12:04:47 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-decl.c (duplicate_decls): If a function has been declared with
+	explicit language linkage, redeclaring (or defining) it without
+	is OK.
+
+	Fri Nov 12 15:30:27 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-lex.c (operator_name_string): Fix handling of __ad__foo.
+
+	* cp-error.c (dump_decl): Handle demangling of vtable names.
+
+	* cp-tree.c (lang_printable_name): Pass everything to decl_as_string,
+	not just functions.
+
+	* cp-decl2.c (check_classfn): Use cp_error.
+
+	* cp-error.c (dump_decl): Fix IDENTIFIER_TYPENAME_P case.
+
+	* cp-method.c (build_decl_overload): Propagate IDENTIFIER_OPNAME_P
+	to mangled identifier.
+
+	* cp-type2.c (my_friendly_abort): Add "confusion" message for
+	abort after earlier errors.
+
+	Wed Nov 10 18:39:17 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-decl2.c (lang_decode_option): Include warn_enum_clash among
+	-Wall.
+
+	Wed Nov 10 16:18:19 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* Makefile.in (stamp-cp-parse): Update counts.
+
+	Wed Nov 10 15:27:12 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-errfn.c (cp_thing): Allow cp_*_at to use an arbitrary argument,
+	not just the first, by using, for instance, `%+D'.
+
+	Mon Nov  8 13:50:49 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-error.c (language_as_string): New function for printing language
+	context.  Corresponds to %L.
+
+	Mon Nov  8 10:39:28 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-pt.c (reinit_parse_for_template): Use inline_text_obstack
+	instead of permanent_obstack so that yylex() doesn't clobber the
+	growing object.
+
+	* cp-lex.c (reinit_parse_for_block): Overhaul to reduce code size by
+	half and make #line directives in template definitions work.
+
+	Sun Nov  7 15:19:28 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-pt.c (instantiate_class_template): if (!setup_parse), don't
+	mess with lineno and input_filename.
+
+	Mon Nov  1 18:15:59 1993  Kung Hsu  (kung@cirdan.cygnus.com)
+
+	* cp-cvt.c(convert_to_reference): Fix when pass ref to array as 
+	initializer, the argument type is convert to pointer and the type
+	in the field of the class should also convert to pointer.
+
+	Fri Nov  5 11:57:41 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-pt.c (instantiate_template): Work properly with
+	-fexternal-templates.
+
+	* cp-lex.c (extract_interface_info): #if 0 out earlier
+	tinst_level work pending further work.
+
+	Fri Nov  5 07:39:00 1993  Michael Tiemann  (tiemann@blues.cygnus.com)
+
+	* cp-search.c (compute_visibility): Don't lose access to public
+	members from base classes of base classes.
+
+	* cp-typeck.c (convert_for_assignment): Allocate enough space in
+	LHSBUF for the null terminiator.
+
+	Tue Nov  2 07:20:03 1993  Michael Tiemann  (tiemann@blues.cygnus.com)
+
+	* cp-decl2.c (build_push_scope): Don't push the scope for
+	ptr-to-method declarations.  Also, clarify some comments.
+
+	* cp-parse.y (abs_member_declarator): Add `see_typename' epsilon
+	rule so that parser can recognize ptr-to-member functions.
+
+	Mon Nov  1 18:15:59 1993  Kung Hsu  (kung@cirdan.cygnus.com)
+
+	* cp-cvt.c(convert_to_reference): Fix when pass ref to array as 
+	initializer, the argument type is convert to pointer and the type
+	in the field of the class should also convert to pointer.
+
+	Mon Nov  1 11:06:39 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-errfn.c: Don't include <string.h>.
+	Don't use the return value of strcpy.
+
+	Sun Oct 31 22:32:05 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-call.c (build_scoped_method_call): Return (void)0 if trying to
+	call a nonexistent destructor.
+
+	* cp-parse.y (object): Support p.~int().
+
+	* cp-error.c (dump_expr): Handle error_mark_node better.
+
+	Sat Oct 30 21:49:00 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-parse.y (primary): Support p->~int().
+
+	Fri Oct 29 18:09:12 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-type2.c (build_functional_cast): Don't delete things twice.
+
+	Thu Oct 28 15:35:55 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-tree.h (struct tinst_level): The template instantiation level
+	structure.  Used by the code described below.
+
+	* cp-pt.c (push_tinst_level): New function for remembering file
+	context when instantiating templates.  Stores the identifier as well,
+	for error reporting.
+	(pop_tinst_level): Da opposite.
+	(tinst_for_decl): Returns a pointer to the tinst_level structure to
+	use for determining which file to associate the current DECL with, or
+	NULL to use the current file and line.  To restore the old behavior,
+	just change this function to "return 0;".
+	(instantiate_class_template): push_tinst_level.
+
+	* cp-parse.y (tmplate_instantiate_once): pop_tinst_level() after
+	instantiating member templates.
+
+	* cp-lex.c (extract_interface_info): If instantiating a template,
+	set up interface/implementation according to the spot in the user's
+	code that triggered the instantiation.
+
+	* cp-pt.c (tsubst): Associate the FUNCTION_DECL with the spot in the
+	user's code that triggered the instantiation.  *Currently disabled*
+
+	* cp-class.c (finish_struct): If we're instantiating a template,
+	associate the TYPE_DECL with the spot in the user's code that
+	triggered the instantiation.  *Currently disabled*
+
+	* cp-pt.c (coerce_template_parms): Do extra checking on the template
+	parms, since templates are more picky than initializers.
+
+	Wed Oct 27 17:06:54 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-parse.y (datadef): Don't override a template with a forward
+	declaration of a template class.
+
+	Tue Oct 26 17:54:12 1993  Kung Hsu  (kung@cirdan.cygnus.com)
+
+	* cp-parse.y (component-declarator0): fix bit field name same as type
+	name syntax error.
+
+	Tue Oct 26 16:07:29 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-cvt.c (build_up_reference): Fix typo, fixes core dump on bad
+	code.
+
+	Tue Oct 26 11:52:09 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-error.c (dump_function_decl): Only print default arguments
+	if verbose.
+	(dump_type): Ditto.
+
+	Mon Oct 25 22:18:05 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* cp-typeck.c (c_sizeof, build_c_cast):  Re-enable Salzenberg's
+	July 10 change (set TREE_OVERFLOW as well as TREE_CONSTANT_OVERFLOW).
+
+	Mon Oct 25 18:53:08 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-pt.c (instantiate_class_template): Don't do the
+	push_template_decls thang if !setup_parse; the binding level
+	never gets popped.
+
+	Mon Oct 25 11:54:34 1993  Kung Hsu  (kung@cirdan.cygnus.com)
+
+	* cp-method.c (hack_identifier): fix seg fault when an
+	external variable does not have class context.
+
+	Sun Oct 24 19:01:15 1993  Michael Tiemann  (tiemann@blues.cygnus.com)
+
+	* cp-spew.c (scan_tokens): Test for ';' in first pre-scan of the
+	tokens.
+
+	Fri Oct 22 23:46:17 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-tree.c (get_decl_list): When consing up CLASSTYPE_ID_AS_LIST,
+	don't assume that `value' is a reasonable identifier to use.
+	(list_hash_lookup_or_cons): Ditto.
+
+	* cp-error.c (dump_decl, CONST_DECL): Pass off non-enum cases to
+	dump_expr.
+	(dump_expr): Pass off DECLs to dump_decl.
+
+	Fri Oct 22 20:57:46 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* cp-errfn.c (STRDUP): Change to comma expr for bdmaged cc's.
+	(cp_thing): Add decl for ap, initialize fmt later.
+
+	Fri Oct 22 17:15:01 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-error.c (dump_decl): Handle CONST_DECLs for enum tags.
+
+	* cp-type2.c (my_friendly_abort): Move abortcount to global level.
+
+	* cp-search.c (dfs_pushdecls): Be more helpful in shadowing warning.
+
+	* cp-pt.c (mangle_class_name_for_template): If the last template
+	parameter was also a template class, insert a space so that
+	the mangled name can be used as input for the compiler (i.e.
+	with default_copy_constructor_body).
+
+	Fri Oct 22 16:40:27 1993  Mike Stump  (mrs@cygnus.com)
+
+	Handle constructors in templates better.
+
+	* cp-call.c (build_method_call): Use constructor_name_full instead
+	of constructor_name.
+	* cp-cvt.c (convert_to_reference, convert, build_type_conversion_1,
+	build_type_conversion): Ditto.
+	* cp-decl.c (make_temporary_for_reference, grok_reference_init):
+	Ditto.
+	* cp-init.c (expand_default_init, expand_aggr_init_1, build_new):
+	Ditto.
+	* cp-typeck.c (build_modify_expr_1, convert_for_initialization):
+	Ditto.
+	* cp-search.c (lookup_field, lookup_fnfields): Check for short
+	constructor name, as that is how we store it.
+	* cp-decl2.c (constructor_name_full): New routine.
+	* cp-tree.h (constructor_name_full): Declare it.
+	* cp-call.c (build_method_call): Check for either short or the full
+	constructor name.
+
+	Wed Oct 20 17:17:37 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-tree.h: Declare code_as_string.
+
+	* cp-error.c (code_as_string): New function, translates
+	enum tree_code into a string.  Very incomplete at the moment.
+
+	* cp-decl.c (lookup_tag): Use cp_error more.
+
+	Tue Oct 19 16:39:20 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-error.c (dump_type_prefix): Do the prefix/suffix thang for
+	ARRAY_TYPE nodes.
+
+	Thu Oct 14 23:56:34 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-gc.c (build_dynamic_cast): Avoid doing runtime work if possible.
+	(build_typeid): Add logic.
+
+	Thu Oct 14 10:56:43 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-gc.c (build_typeid): New function, allegedly returns the
+	Type_info object for the type of an expression, currently does
+	nothing.
+	(get_typeid): New function, allegedly returns the Type_info object
+	for a _TYPE node, currently does nothing.
+	(build_dynamic_cast): New function, supposedly implements
+	run-time checked casting, currently only does what can be done
+	at compile time.
+
+	* cp-parse.y (.kindof_pushlevel): Only push first decl (the variable).
+	(primary): Add dynamic_cast and typeid expressions.
+	(simple_if): Use partially_scoped_stmt again.
+	Makes 'if' condition work.
+
+	* cp-error.c (expr_as_string): Suppress parens on initial call
+	to dump_expr.
+
+	* cp-tree.h: Add decls for Type_info_type_node, build_typeid,
+	get_typeid and build_dynamic_cast.
+
+	* gplus.gperf: Add typeid and dynamic_cast.
+
+	* cp-spew.c (init_spew): Ditto.
+
+	Wed Oct 13 19:15:21 1993 Jason Merrill (jason@deneb.cygnus.com)
+
+	Partial implementation of Stroustrup's proposal for declarations in
+	conditions from X3J16/92-0121.
+
+	* cp-parse.y (paren_cond_or_null): New rule, use condition instead
+	of expr.
+	(xcond): Ditto.
+	(condition): New rule, used in the condition parts of if, while, for
+	and switch statements.  Allows a restricted set of declarations of
+	the form "type_specifier declarator = expression".
+	(.kindof_pushlevel): Like pushlevel, but pushes all of the decls
+	from the previous binding level into the new one too.
+	(partially_scoped_stmt): Like implicitly_scoped_stmt, but uses
+	.kindof_pushlevel instead of .pushlevel.
+	(simple_if): .pushlevel before condition.
+	(simple_stmt, simple_if ELSE): Ditto, pop binding level.
+	(simple_stmt, simple_if): Ditto.
+	(simple_stmt, WHILE): Ditto.
+	(simple_stmt, forhead.1): .pushlevel before condition, use xcond
+	instead of xexpr, pop binding level.
+	(simple_stmt, forhead.2): Use xcond instead of xexpr, always pop
+	binding level.
+	(simple_stmt, SWITCH): .pushlevel before condition, etc, etc.
+	(forhead.2): always .pushlevel.
+	(datadef): Use cp_error more.
+	(simple_stmt, CASE): Ditto.
+
+	* cp-decl2.c (pushdecls): New function, push all decls in the chain
+	into the current scope.
+
+	Wed Oct 13 12:31:58 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c: Remove redefinition of NULL, as some machines don't
+	  like it.  Clean up all NULL uses.
+
+	Mon Oct 11 17:21:08 1993  Kung Hsu  (kung@cirdan.cygnus.com)
+
+	* cp-decl2.c (finish_file): Fix libg++ build problem of mismatch
+	  blocks.
+
+	Mon Oct 11 13:51:05 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Mon Oct  4 11:49:48 1993  Chip Salzenberg  (chip@fin.uucp)
+
+	* cp-typeck.c (build_modify_expr): Check whether recursive calls
+	return error_mark_node.
+
+	Mon Oct  4 12:41:16 1993  Chip Salzenberg  (chip@fin.uucp)
+
+	* cp-class.c (finish_struct): Too-long bitfield is an error.
+	* cp-decl.c (grokdeclarator): "inline main()" is an error.
+	(grok_op_properties): Overloaded ?: is an error.
+	(start_enum): Duplicate enum definition is an error.
+
+	Mon Oct  4 12:45:11 1993  Chip Salzenberg  (chip@fin.uucp)
+
+	* cp-typeck.c (common_type): Use TYPE_MAIN_VARIANT when preferring
+	long int to int (when width is the same).
+
+	Mon Oct  4 12:46:54 1993  Chip Salzenberg  (chip@fin.uucp)
+
+	* cp-typeck.c (convert_for_assignment): Mismatch in signedness
+	of pointer targets should not inhibit warnings for const mismatch.
+
+	Mon Oct  4 12:53:04 1993  Chip Salzenberg  (chip@fin.uucp)
+
+	* cp-typeck.c (default_conversion): Convert to unsigned int
+	if original type is unsigned and of greater or equal size.
+
+	Mon Oct 11 13:19:42 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (build_enumerator): Call default_conversion on the VALUE
+	before calling constant_expression_warning.
+
+	Mon Oct 11 10:21:37 1993  Kung Hsu  (kung@cirdan.cygnus.com)
+
+	* cp-decl.c (finish_function): fix the mismatch LBB LBE block
+	  problem, specifically when compiler generated
+	  destructor/constructor (pr2972)
+	* cp-decl2.c (finish_file): same as above
+        * cp-parse.y (compstmt): same as above
+
+	Mon Oct 11 01:08:09 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-error.c (dump_type_suffix): Cope with arrays with unspecified
+	bounds.
+
+	Thu Oct  7 19:35:26 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-error.c:  Deal with printing out array DECLs properly.
+	Use dump_char for printing out string literals, too.
+
+Tue Nov 23 18:08:27 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dwarfout.c (function_start_label): New function.
+	(output_entry_point_die): Use it.
+	(output_global_subroutine_die, output_local_subroutine_die): Use it.
+
+	* c-common.c (check_format_info): Always use TYPE_MAIN_VARIANT
+	when comparing cur_type against wanted_type.
+
+	* protoize.c (save_def_or_dec): If function's aux info doesn't end
+	with a closeparen, ignore it.
+	(xmalloc, xrealloc): Cast result of malloc.
+
+	* c-typeck.c (build_binary_op): Don't accept complex types
+	for max, min, lt, etc.
+
+Tue Nov 23 18:05:14 1993  Lisa Repka  (lisa@MicroUnity.com)
+
+	* reorg.c (rare_destination): Ensure we always correctly handle
+	a null JUMP_LABEL.
+
+Tue Nov 23 17:48:39 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* i960/i960.h (ASM_SPEC): Pass -linkrelax, not -link-relax.
+
+Tue Nov 23 17:35:25 1993  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* arm.c (arm_backwards_branch): Branching to the current insn is a 
+	backwards branch.
+
+Tue Nov 23 13:59:24 1993  Hallvard B Furuseth  (hbf@durin.uio.no)
+
+	* libgcc2.a (__bb_exit_func): Fix format %*d -> %*ld.
+
+	* c-parse.in, cp-parse.y (maybe_type_qual): Don't fail to set $$.
+
+Tue Nov 23 15:26:28 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine, simplify_shift_const): Add initializations
+	for some uninitialized variables.
+
+	* c-common.c (check_format_info): When we have INTEGER_TYPEs,
+	save result of signed_type or unsigned_type for later
+	comparison with the various forms of char types.
+
+	* expr.c (expand_expr, case SAVE_EXPR): Properly recompute the
+	value of UNSIGNEDP when SAVE_EXPR_RTL is nonzero and we have promoted.
+
+Tue Nov 23 04:14:04 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dwarfout.c (output_local_subroutine_die): Use the function name
+	from its symbol_ref, not DECL_ASSEMBLER_NAME.
+
+Mon Nov 22 13:59:41 1993  Steve Chamberlain  (sac@mole.gnu.ai.mit.edu)
+
+	* final.c (get_attr_length): asm_insn_count takes a body, not an
+	insn.
+
+Sun Nov 21 22:37:12 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/m68k/mot3300.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): 
+	Use SIZE, not ROUNDED.
+	(FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Definitions turned off.
+	(REGISTER_PREFIX, IMMEDIATE_PREFIX): New definitions.
+	(PARM_BOUNDARY): New definition.
+
+Sun Nov 21 15:39:04 1993  Tor Egge  (tegge@pvv.unit.no)
+
+	* m88k/dolph.h (SDB_ALLOW_FORWARD_REFERENCES): Define.
+	(SDB_ALLOW_UNKNOWN_REFERENCES): Define.
+	(CPP_PREDEFINES): Redefine.
+	(CPP_DEFAULT): Redefine. 
+	(INITIALIZE_TRAMPOLINE): Redefine.
+	* m88k/dolphin.ld: New file.
+	* m88k/t-m88k (realclean): Remove some generated .asm files.
+	* m88k/x-dolph (EXTRA_PARTS): Redefined to also contain gcc.ld.
+	(gcc.ld): Copied from dolphin.ld.
+	(X_CFLAGS): Define __m88k__.
+	* libgcc2.c (__enable_execute_stack): Add DolphinOS version.
+
+Sun Nov 21 01:00:40 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/m68k/isi.h (LIB_SPEC): Use -lm in addition to -lc--
+	not instead of -lc.
+
+	* fix-header.c (write_rbrac): Make added declarations conditional
+	on __cplusplus and nothing else.
+	* fixproto (stdio.h): Reenable adding protos for v*printf.
+
+	* sys-protos.h (authdes_create): Delete arg info.
+	We can't count on having struct sockaddr defined.
+
+	* fixincludes (math.h): When deleting inline sqrt and abs,
+	be flexible about arg name and function body.
+
+	* Makefile.in (stmp-fixproto): Never run fixproto twice.
+
+Sat Nov 20 16:52:15 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* stmt.c (warn_if_unused_value): Handle arbitrary number of casts
+	before a modify.
+
+Sat Nov 20 16:38:25 1993  Eric Baur  (eric@synnet.com)
+
+	* i386/perform.h (perform_divsi3, perform_modsi3): Add '&' in
+	constraint for DX; explicitly copy arg arg1 to cx.
+
+Sat Nov 20 02:26:28 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_builtin): For sin, cos, fsqrt, alloca, ffs, strlen,
+	strcpy, memcpy, strcmp, memcmp, if args are bad, use expand_call.
+
+	* fix-header.c (write_rbrac): Treat rewinddir like memmove.
+
+Fri Nov 19 18:24:43 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* protoize.c: Remove declarations for malloc and realloc.
+
+	* expr.c (store_field): Convert EXP to MODE before calling
+	store_bit_field.
+
+	* optabs.c (expand_complex_abs): Replace some erroneous 
+	uses of MODE with SUBMODE.
+
+	* combine.c (force_to_mode): Don't allow sign-extension of 
+	constants when we are narrowing things in an IOR or XOR.
+
+Fri Nov 19 16:42:43 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* rs6000.c (output_function_profiler): When TARGET_MINIMAL_TOC,
+	emit .long instead of .tc.
+
+Fri Nov 19 13:22:37 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+    	* configure: Let a host set truncate_target to specify that the
+	installation directory names must be truncated to 14 characters.
+	If set, truncate the target argument.
+
+Fri Nov 19 17:27:58 1993  Holger Teutsch  (holger@hotbso.rhein-main.de)
+
+	* clipper.h (HARD_REGNO_MODE_OK): Allow any mode in general regs.
+	Float regs may only hold SFmode and DFmode.
+	(FUNCTION_ARG): Only MODE_INT and MODE_FLOAT with size <= 8 are
+	passed in registers.
+	(FUNCTION_ARG_ADVANCE): Update accordingly.
+	(FUNCTION_ARG_PARTIAL_NREG): Undefine.
+
+	* clipper.md (movsf+1,2,movdf+1,2): Make 'f' preferred register class.
+
+Thu Nov 18 20:09:56 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* fixincludes: When compute DOTS, convert /./ to / to avoid
+	accidentally converting it to /../.
+	* fixinc.dgux, fixinc.svr4: Likewise.
+
+Thu Nov 18 06:14:55 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* function.c (expand_function_end): New arg END_BINDINGS.
+	* c-decl.c (finish_function): Pass new arg to expand_function_end.
+	* cp-decl.c (finish_function): Pass new arg to expand_function_end.
+	Don't call expand_end_bindings here.
+	* integrate.c (output_inline_function):
+	Pass new arg to expand_function_end.
+
+Wed Nov 17 18:54:21 1993  Chip Salzenberg  (chip@fin.uucp)
+
+	* objc/objects.c: Include "tconfig.h" before "runtime.h".
+
+Wed Nov 17 19:15:31 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fixincludes (math.h): Add missing quoting of `*' when fixing
+	prototype of `sqr'.
+
+Tue Nov 16 07:15:52 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.h (EXTRA_CONSTRAINT): New macro.
+	(SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS): Disallow unaligned into float
+	regs.
+	* alpha.md (movdi): Use 'Q' instead of 'm' for FP.
+
+Tue Nov 16 02:06:01 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.5.4 released.
+
+	* c-typeck.c (push_init_level): When aligning next struct field,
+	make sure there's another field left.
+
+	* cp-errfn.c: Don't include string.h.
+	(STRDUP): Macro deleted.
+	(cp_thing): Copy strings "by hand".
+
+	* combine.c (force_to_mode): Don't do right-shift in a narrower mode.
+
+Mon Nov 15 01:54:48 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* sdbout.c (sdbout_symbol): If non-static var has static-style RTL,
+	don't output anything for it.
+
+	* Makefile.in (stmp-fixproto): Don't depend on xsys-protos.h.
+	(diff): Don't compare bi-parser.c
+
+	* news.h (NO_DOT_IN_LABEL, NO_DOLLAR_IN_LABEL): Defined.
+
+	* c-typeck.c (push_init_level, really_start_incremental_init):
+	Skip any nameless bitfields at start of record.
+	(process_init_element): Skip any nameless bitfields after the field
+	just processed.
+
+Mon Nov 15 02:09:54 1993  Torbjorn Granlund  (tege@blues.cygnus.com)
+
+	* pa.h (RETURN_IN_MEMORY): Define.
+
+Sun Nov 14 17:25:29 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_expr): For TRUTH_AND_EXPR, TRUTH_OR_EXPR
+	and TRUTH_XOR_EXPR, if result mode doesn't match operands,
+	don't use subtarget.
+
+	* c-typeck.c (convert_for_assignment): Fix typo (codel => coder).
+
+Sun Nov 14 12:45:37 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (assign_parms): Clear STACK_PARM when we have a 
+	pass-by-pointer parm that we load into a pseudo.
+
+	* flow.c (flow_analysis): Fix bug in previous change.
+
+	* fold-const.c (twoval_comparison_p): Do nothing for SAVE_EXPR, at
+	least for now.
+
+	* reload.c (push_reload): Allow RELOAD_FOR_INPUT with a secondary
+	reload the same class as the input if the modes differ.
+
+	* expr.c (store_expr): Convert constants to proper mode in two places.
+
+	* sh.h (HAVE_VPRINTF): Delete from here.
+	* xm-sh.h (HAVE_VPRINTF): New macro.
+
+Sun Nov 14 04:28:56 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i860/i860.h (SECONDARY_INPUT_RELOAD_CLASS):
+	Moving any kind of integer cst to float reg needs intermediate.
+
+	* sys-protos.h (getmntent): Delete the arg decls
+	because BSD 4.4 and Sunos disagree on them.
+
+Sat Nov 13 23:06:42 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/mips/mips.c (function_arg, function_arg_advance):
+	In default case, handle complex modes much like BLKmode.
+	(function_arg_partial_nregs): Likewise.
+
+Sat Nov 13 22:31:48 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.h (CPP_SPEC): Always define __LANGUAGE_C__ unless assembler.
+	Define __cplusplus for C++.
+
+	* alpha.md (movsf, movdf): Add 'G' to constraint for operand 1
+	when operand 0 is a register and support it in alternative 0.
+
+	* stmt.c (expand_end_bindings): Use emit_move_insn instead of
+	gen_move_insn in case nonlocal_goto_handler_slot is not a valid memref.
+
+	* flow.c (find_basic_blocks): When starting new basic block
+	for a CALL_INSN in the presence of nonlocal labels, don't
+	get confused with following CLOBBER.
+	(flow_analysis): Use same logic as find_basic_block to see when
+	the insn after a CALL_INSN starts a new basic block.
+
+	* expmed.c (store_split_bit_field): Properly load a constant VALUE
+	into a WORD_MODE pseudo.
+
+Sat Nov 13 18:27:43 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/ns32k/ns32k.md (movsi): Handle moves to fp reg.
+	Handle const_double as operand 1.
+
+	* Makefile.in (diff): Fix typo in name gcc.??s.
+
+Fri Nov 12 08:34:58 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* dbxout.c (dbxout_type_field): Skip fields with variable
+	position and/or size instead of crashing on them.
+
+Fri Nov 12 22:49:50 1993  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* bi-arity.c, bi-opcode.c, bi-opname.c (main): Flush stdout and
+	and check for errors prior to termination; end with call to exit
+	rather than return from main, as with gen*.c.
+	* bi-arity.c, bi-lexer.c, bi-opcode.c, bi-opname.c, bi-parser.y:
+	Use FATAL_EXIT_CODE rather than hardcoded 1 for fatal exit code.
+
+Fri Nov 12 18:41:51 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gstdarg.h, gvarargs.h: Test __bsdi__ like __BSD_NET2__.
+
+	* pa.h (FUNCTION_ARG_BOUNDARY): Fix return value for 64bit
+	pass by value structures.
+
+	* fix-header.c (write_rbrac): Handle v*printf like memmove.
+
+Fri Nov 12 08:53:47 1993  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* arm.md (comparison): Don't emit invalid optimization
+	for (set (reg) (comparison)) and (set (reg) (neg (comparison)))
+	when comparison is LT.
+
+	* arm.c (pattern_really_clobbers_lr): Setting a subreg of a mem is
+	valid and safe.
+
+Fri Nov 12 08:38:22 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* m68k/hpux7.h: Add directory name to #include of hp320.h.
+
+Thu Nov 11 00:00:55 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.5.3 released.
+
+	* fix-header.c, gen-protos.c (fancy_abort): New function.
+
+	* c-typeck.c (mark_addressable): Handle REALPART_EXPR and
+	IMAGPART_EXPR.
+
+	* integrate.h (global_const_equiv_map_size): Declared.
+
+	* dbxout.c (dbxout_symbol): If it's C++, don't check the
+	DECL_SOURCE_LINE of a typedef.
+	(dbxout_parms): Fix previous change.
+
+Wed Nov 10 10:33:28 1993	Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* fixproto (rel_source_subdir):	Prune out redundant /subdir/../ to
+	prevent recursion.
+
+Wed Nov 10 22:30:16 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/ns32k/encore.h (ASM_OUTPUT_ASCII): Declare i.
+
+Wed Nov 10 16:18:19 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (grokvardecl): Undo change of Jan 15 1993 which
+	tried to implement the "one definition rule".  The duplicate_decls
+	call in pushdecl does implement this; grokvardecl got some bad hits.
+
+Wed Nov 10 08:44:17 1993  Niklas Hallqvist  (niklas@appli.se)
+
+	* cp-search.c (compute_visibility): Revert Tiemann's patch of
+	Nov 5.  Instead check that privately inherited entities don't
+	get restricted visibility if the private derivation is a
+	shallow derivation (i.e. one leading to the most derived
+	class) and we're actually in the most derived class' scope.
+
+	* cp-search.c (dfs_pushdecls):  Don't be confused by the fact that
+	overloaded methods from an outer scope almost looks like an
+	envelope.
+
+Wed Nov 10 18:55:22 1993  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* fixincludes: Copy files needed for other files at the very end.
+
+	* arm.md (reload patterns for mla instruction): New.
+
+Wed Nov 10 18:17:40 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* dbxout.c (dbxout_parms): For parms passed via invisible
+	reference, accept any reg except FP, SP, and AP.
+
+	* unroll.c (unroll_loop): Set global_const_equiv_map_size.
+
+Wed Nov 10 17:52:33 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (subst_prev_insn): New variable.
+	(try_combine): Set it.
+	(get_last_value): Use subst_prev_insn if set instead of 
+	looking for the first insn before SUBST_LOW_CUID.
+
+	* integrate.c (global_const_equiv_map_size): New variable.
+	(expand_inline_function): Set it.
+	(expand_inline_function, copy_rtx_and_substitute, try_constants):
+	Never access const_equiv_map without checking for out-of-range.
+	(mark_stores): Likewise.
+
+	* alpha.md (smaxdi3): Was incorrectly called maxdi3.
+
+	* rs6000.h (LINK_SPEC): Don't pass -btextro if -r.
+
+	* alpha/osf12.h: New file.
+	* configure (alpha-dec-osf1.2): New case, to use new file.
+
+	* rs6000.md (sqrtdf2): Fix typo in extra condition.
+	(plus/eq pattern): Fix typo: "addze" was "adddze".
+
+Wed Nov 10 12:32:56 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* expmed.c (expand_divmod): If rem_flag, always force op0 to a
+	register.
+
+	* expr.c (expand_expr): Use a smaller alignment when reading from
+	a field with a variable offset.
+
+Wed Nov 10 01:28:27 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_assignment): Use a smaller alignment when storing
+	into a field with a variable offset.
+
+	* fixincludes (math.h): Delete inline definitions for sqr.
+
+Tue Nov  9 15:33:45 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-method.c (hack_identifier): Undo rfg's earlier patch.
+
+Tue Nov  9 19:30:02 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload1.c (reload) [SMALL_REGISTER_CLASSES]: Try, at least,
+	to avoid 2-groups whose second register is explicitly used.
+
+Tue Nov  9 19:08:47 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* mips.md (adddi3): Use DImode not SImode in force_reg call.
+
+	* mips.c (PIC_OFFSET_TABLE_MASK): New macro.
+	(function_epilogue): When -mabicalls, ignore
+	PIC_OFFSET_TABLE_REGNUM when calculating load_only_r31.
+
+	* loop.c (strength_reduce): Accept VOIDmode initial values.
+
+Tue Nov  9 09:23:31 1993  Torbjorn Granlund  (tege@mole.gnu.ai.mit.edu)
+
+	* pa.md (negscc): Add mode for NEG.
+
+Tue Nov  9 12:51:54 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* m88k.md ("cmpsf" & "cmpdf"): Undo inadvertent change included
+	with CCEVENmode change.
+
+Tue Nov  9 01:31:58 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes (loop on $required): When a file is copied
+	because another file needs it, scan it for what files it needs.
+
+	* fix-header.c (write_rbrac): When adding proto for memmove,
+	put it inside #ifndef memmove.
+
+Mon Nov  8 16:50:49 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* sdbout.c (sdbout_init) [RMS_QUICK_HACK_1]: Call sdbout_symbol
+	for __vtbl_ptr_type.
+
+	* cp-decl.c (init_decl_processing): Undo previous change.
+
+	* c-typeck.c (build_binary_op): Warn for ordered compare of ptr with 0
+	only if pedantic in both cases.
+
+Mon Nov  8 18:25:06 1993  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.h (ASM_FILE_START): Emit filename directive.
+
+Sun Nov  7 00:24:04 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (mostlyclean): Delete fixhdr.ready here.
+	(clean): Not here.
+
+	* scan-decls.c (scan_decls):  After seeing an extern variable
+	declaration, goto new_statement to read a new token, rather
+	than going to handle_statement (which uses the current token).
+
+Sat Nov  6 19:40:22 1993  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* config/vax/vms.h (__MAIN_NAME): Define as " main(" rather
+	rather than " main (" to reflect current cc1plus.
+
+	* config/vax/vms.h: Add __GNUC_MINOR__=5 to CPP_PREDEFINES.
+
+Sat Nov  6 22:54:25 1993  Tor Egge  (tegge@pvv.unit.no)
+
+	* m88k.c (partial_ccmode_register_operand, even_relop)
+	(odd_relop): New functions, for support of CCEVENmode.
+	(print_operand, new case '!'): Revert following condition.
+	* m88k.h (EXTRA_CC_MODES, EXTRA_CC_NAMES, SELECT_CC_MODE):
+	New macros to define CCEVENmode. 
+	* m88k.md: Handle CCEVENmode as a new mode.  Logical operations
+	on CCmode registers now results in CCEVENmode. 
+	Add patterns for jumps and ext's for CCEVENmode.
+	(cmpsf, cmpdf): Use reg 65 and clobber reg 64.
+
+Sat Nov  6 17:07:54 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cp-decl.c (init_decl_processing) [RMS_QUICK_HACK_1]:
+	If sdb output, call sdbout_symbol for vtable_entry_type.
+	* config/m88k/dgux.h (RMS_QUICK_HACK_1): Defined.
+
+Sat Nov  6 12:32:31 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* unroll.c (unroll_loop): Don't unroll loop if jump has combined
+	the original loop start label with another label.
+
+Sat Nov  6 05:01:31 1993  Chris Smith  (csmith@convex.com)
+
+	* convex.md (untyped_call, blockage): Add new patterns.
+
+Sat Nov  6 03:11:46 1993  Noah Friedman  (friedman@gnu.ai.mit.edu)
+
+        * just-fixinc: Rename fixed native limits.h to syslimits.h (or
+        install gsyslimits.h) before renaming gcc's limits.h from tmpfoo
+        directory.
+
+Sat Nov  6 00:07:41 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (emit_move_insn_1): Push the components of a complex
+	in proper order: imag part has higher address.
+
+Fri Nov  5 16:23:51 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* mips.c (mips_abicalls): Change type to enum mips_abicalls_type.
+	(override_options): Use MIPS_ABICALLS_{NO,YES} instead of
+	ABICALLS_{NO,YES}.
+	* mips.h (enum mips_abicalls_type): New type.
+	(mips_abicalls_attr): New define.
+	(mips_abicalls): Change type to enum mips_abicalls_type.
+	* mips.md (abicalls): Use mips_abicalls_attr not mips_abicalls.
+
+Fri Nov  5 20:34:19 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixproto (stdio.h): Don't add protos for vprintf, vfprintf, vsprintf.
+
+Fri Nov  5 20:32:53 1993  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* config/pa/pa.md (decrement_and_branch_until_zero):
+	Add missing `return'.
+
+Fri Nov  5 16:08:34 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* listing: Handle i386-linux like m68020.
+	Pass compilation options thru an awk variable, not as ordinary args.
+
+	* cccp.c (safe_read, safe_write): Handle EINTR.
+	(output_line_command): Handle NO_IMPLICIT_EXTERN_C here.
+	(main): Not here.
+
+	* protoize.c (safe_read, safe_write): Handle EINTR.
+	(safe_write): Return right away after safe_write.
+
+Fri Nov  5 11:40:59 1993  Jeff Law  (law@snake.cs.utah.edu)
+
+	* pa-ghpux.h (NO_IMPLICIT_EXTERN_C): Define.
+	* pa-hpux.h (NO_IMPLICIT_EXTERN_C): Define.
+
+Fri Nov  5 09:45:20 1993  Kresten Krab Thorup  (krab@viking)
+
+	* objc/archive.c (objc_read_string): Allocate string properly.
+	* objc/hash.h (compare_strings): Check for null pointers.
+
+Fri Nov  5 11:29:26 1993  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Use
+	REAL_ARITHMETIC macros including hex for special values.
+
+Fri Nov  5 10:26:34 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-call.c (build_method_call): For unions, don't use get_binfo and
+	convert_pointer_to_real, since unions can't be involved in complex MI
+	situations.  (Fixes union ctor crash, and completes Sep 27 fix.)
+
+Fri Nov  5 07:39:00 1993  Michael Tiemann  (tiemann@blues.cygnus.com)
+
+	* cp-search.c (compute_visibility): Don't lose access to public
+	members from base classes of base classes.
+
+	* cp-search.c (get_base_distance): Initialize BASETYPE_PATH before
+	using.  Also, initialize RVAL from get_base_distance_recursive.
+
+Fri Nov  5 05:48:04 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i860/paragon.h (SIZE_TYPE): #undef it.
+
+	* config/m88k/dgux.h (LIB_SPEC): Handle -msvr4.
+	(GPLUSPLUS_INCLUDE_DIR): Definition and #undef deleted.
+
+	* cccp.c (main): Handle NO_IMPLICIT_EXTERN_C.
+
+Fri Nov  5 03:11:05 1993  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* config/m68k/m68k.h (RTX_COST): Return actual costs for
+	multiplication, not costs for theoretical special cases that are
+	not handled in the md.
+
+Fri Nov  5 00:42:09 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* emit-rtl.c (gen_highpart): If arg is function value hard reg,
+	return a subreg of it (as in gen_lowpart_common).
+
+	* integrate.c (expand_inline_function): Handle CONCAT as rtl for parm.
+	(copy_rtx_and_substitute): For subreg, handle case where the reg
+	inside turns into a CONCAT.
+
+	* configure: Treat hppa1.[01]-hpux8.0[01] like hppa1.[01]-hpux8.02.
+
+	* fixproto:  Don't scan sub-directories whose names end in CC
+	or contain ++ - these are probably C++ directories.
+
+Thu Nov  4 12:02:04 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* integrate.c (expand_inline_function): Don't call
+	push_temp_slots, free_temp_slots, and pop_temp_slots when handling
+	parameters, because they might end up in a temp slot.
+
+Thu Nov  4 15:00:38 1993  Samuel Figueroa  (figueroa@cs.nyu.edu)
+
+	* i386/os2.h, i386/xm-os2.h: New files.
+
+Thu Nov  4 14:36:54 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (finish_enum): Undo previous change.
+
+Thu Nov  4 13:30:16 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* loop.c (strength_reduce): Ignore initial value if it is the
+	wrong mode.
+	(record_initial): Don't ignore any set of the register.
+
+	* rs6000.md (movdf): Don't have reload choose alternative of
+	loading a constant into a GPR.
+
+	* reload.c (find_reloads, case 'o'): A pseudo is not always
+	an offsettable memref.
+	(find_reloads): If we reload a constant into a register via
+	memory, count it as two reloads.
+
+	* function.c (expand_function_start): If not optimizing, ensure
+	we mark context display regs as live for the entire function.
+
+Thu Nov  4 02:24:22 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* tree.h (DECL_IN_TEXT_SECTION): New macro.
+	* varasm.c (assemble_variable): Set DECL_IN_TEXT_SECTION.
+	* dbxout.c (dbxout_symbol_location): Test DECL_IN_TEXT_SECTION.
+
+Wed Nov  3 23:59:48 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_function_call): Initialize fundecl to 0.
+
+Wed Nov  3 16:34:01 1993  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* pa.h (REGISTER_MOVE_COST): Decrease cost for move from
+	SHIFT_REGS to avoid regclass overflow.
+
+Wed Nov  3 15:35:44 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/m68k/m68k.c (output_move_double): Fix up the test for overlap
+	of source address with operands[0].
+
+	* regclass.c (regclass): Consider commutativity even when
+	one arg is a constant.
+
+Wed Nov  3 12:06:23 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* expmed.c (expand_divmod): Use target as copy_to_suggested_reg
+	argument only if it has the same mode as op0.
+
+Wed Nov  3 04:58:26 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* protoize.c (safe_write, safe_read): Really use arg DESC.
+
+	* libgcc2.c (exit): Fix declaration of _exit.
+
+	* c-common.c (check_format_info): Make warning nicer for mismatch
+	of int vs long, etc.
+	Don't warn if field width is an unsigned int.
+
+	* c-decl.c (finish_enum): Always make an enum signed if it will fit.
+
+Wed Nov  3 14:23:52 1993  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* cse.c (cse_insn):  Call `invalidate' also for STRICT_LOW_PART and
+	ZERO_EXTRACT (three places).
+	(invalidate_from_clobbers): Likewise (two places).
+	(cse_around_loop): Likewise.
+	(invalidate_skipped_set): Likewise.
+	(cse_set_around_loop): Likewise.
+
+Wed Nov  3 03:56:55 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* dbxout.c (dbxout_type): Print `-2' instead of `0037777777776'
+	for an enumeration constant whose value is -2;
+	otherwise, GDB 4.11 rejects the type.
+
+Wed Nov  3 04:35:13 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (fix-header, gen-protos): Link with HOST_LIBS.
+	Depend on HOST_LIBDEPS.
+
+Wed Nov  3 00:07:18 1993  Per Bothner  (bothner@wombat.gnu.ai.mit.edu)
+
+	* fixproto:  When checking for uses of _flsbuf, make sure to
+	not match (say) __flsbuf or other non-word _flsbuf strings.
+	* fixproto:  Be more robust when checking for files indirectly
+	needed (via #include directives).  E.g. handle "../foo/bar.h"
+	properly, and silently ignore missing include files.
+
+Tue Nov  2 17:37:39 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (do_spec_1): Use spec_version for %v, not version_string.
+	Distinguish %v1 and %v2.
+	(default_compilers): For __GNUC_MINOR__, use %v2.
+	For __GNUC__ and __GNUG__, use %v1.
+
+	* protoize.c (safe_read): New function.
+	(process_aux_info_file, edit_file): Use safe_read.
+
+	* cccp.c (safe_read): New function.
+	(main, finclude, check_precompiled): Use safe_read.
+
+Tue Nov  2 14:31:42 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Don't remove /**/ from X11/Xlibint.h or
+	X11/extensions/multibufst.h; unnecessary.
+
+Tue Nov  2 07:20:12 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* optabs.c (init_optabs): Function `ffs' takes `int', not mode that
+	is BITS_PER_WORD wide.
+
+Tue Nov  2 02:53:26 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cp-typeck.c (comptypes): Fix typo in changing STRICT from 2 to 1.
+
+	* protoize.c (edit_file): Use safe_write.
+	(safe_write): New subroutine.
+
+	* calls.c (expand_call): Discard __ prefix like _ or __x.
+
+	* objc/objects.c: Include tconfig.h.
+
+Mon Nov  1 23:34:46 1993  Rainer Orth  (ro@anemone.techfak.uni-bielefeld.de)
+
+	* fixincludes (sys/stat.h) fix fchmod prototype, first arg is
+	int, not char * [AIX 3.2.4]
+	(rpc/svc.h): avoid nested comments [Ultrix 4.3]
+	(stdio.h, stdlib.h): fixed getopt prototypes to match POSIX.2
+	[DEC Alpha OSF/1 1.3]
+
+Mon Nov  1 11:42:29 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* fixincludes: Fix <sys/limits.h> like <limits.h>.
+
+	* fixincludes: Unquote 'f' in #define _IO.  Fix elf.h like
+	elf_abi.h.  For Irix 5.
+
+Mon Nov  1 15:15:38 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure (mips-sgi-irix5*): Add fixincludes=Makefile.in.
+
+	* fixproto (setjmp.h):  Don't require siglongjmp and sigsetjmp.
+	They need sigjmp_buf, and are missing on many systems.
+
+	* Makefile.in (stmp-fixproto): Print a notice that warnings and errors
+	from fixproto are normal.
+	(distdir): Avoid spurious output from gcc.texi version number check.
+	(diff): New target.
+
+Mon Nov  1 15:19:09 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Don't remove /**/ from X11/xmd.h; breaks gcc
+	-traditional on some systems.
+
+Mon Nov  1 07:38:58 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu
+
+	* rs6000.md: Add set_attr for "length" when we are going to split
+	an insn at output time.
+
+	* rs6000.md (bdn/bdz): Fix typo in checking for when we
+	need to split.
+
+	* rs6000.md (mulsi3): Make alternatives be "mq" and "no_mq"
+	instead of "power" and "powerpc".  Only allow one pattern (either
+	with or without the clobber of MQ) to match.
+
+	* stmt.c (expand_decl_init): If CONST_DECL, don't generate any
+	code, but call expand_expr if DECL_INITIAL is a constant.
+
+Mon Nov  1 06:17:16 1993  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* m68k.md (divhisi3, udivhisi3, modhisi3, umodhi3): Comment out.
+	(divhisi3, udivhisi3, modhisi3, umodhi3 recognizers): Comment out.
+
+	* expmed.c (synth_mult): When factoring T, break from loop after
+	first factor.
+	(expand_mult): Increase max cost to 12 again.
+
+Mon Nov  1 01:06:27 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (safe_write): New function.
+	(write_output): Use safe_write.
+
+Mon Nov  1 01:06:27 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.5.2 released.
+
+	* cccp.c (do_ident): Fix previous change.
+
+Sun Oct 31 14:41:40 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 2.5.1 released.
+
+	* cccp.c (do_ident): Substitute macros and output here.
+	(directive_table): Turn off the pass_thru field for #ident.
+
+	* c-common.c (shorten_compare): Undo previous change.
+	Instead, just suppress warnings if both args are constant.
+
+	* config/m68k/m68k.md (extzv, and its recognizer):
+	If width is 32, don't set CC_NOT_NEGATIVE.
+	If width is variable, clear the CC status.
+
+	* config/m68k/m68k.c (output_move_double): Extend the special case
+	for *--sp = sp[N] to handle 12 bytes as well as 8 bytes.
+
+Sun Oct 31 17:02:13 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-init.c (expand_aggr_init_1): When unswitching a COND_EXPR
+	initializer (i.e. int a = b ? 1 : 0 => int a; b ? a=1 : a=0),
+	set TREE_SIDE_EFFECTS on the result.
+
+Sun Oct 31 13:33:46 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* expr.c (do_store_flag): For equality test of a single bit, use
+	subtarget instead of target in calls.
+
+Sat Oct 30 17:58:37 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/m68k/hpux7.h: New file.
+	* configure (m68k-hp-hpux7*): New alternative.
+
+	* c-common.c (shorten_compare): Do nothing if both args constant.
+
+	* config.sub: Re-add hitachi to list of companies not to treat
+	as OS names.
+
+	* expr.c (convert_move): When extending to multi-word register
+	via its low word, clobber the whole thing.
+
+	* config/i386/i386.c (output_move_double): Extend the special case
+	for *--sp = sp[N] to handle 12 bytes as well as 8 bytes.
+
+Sat Oct 30 17:21:33 1993  Atsushi Furuta  (furuta@sra.co.jp)
+
+	* pa-ghiux.h, pa-hiux.h, pa1-ghiux.h: New files, for Hitachi H3050/RX.
+	* pa1-hiux.h, x-pa-hiux, xm-pahiux.h: Likewise.
+	* config.sub, configure: Add H3050/RX support.
+
+Sat Oct 30 03:40:08 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/pa/pa.c (output_dbra): Fix argument number in addi at end.
+
+	* tree.h (enum built_in_function):  Added END_BUILTINS to delimit
+	standard from language-specific builtins.
+
+	* toplev.c (rest_of_compilation): When an `extern inline' is not
+	really inline, clear DECL_INITIAL so we don't complain about
+	a subsequent non-extern definition.
+	* c-decl.c (finish_function): If rest_of_compilation set DECL_INITIAL
+	to null, leave it null.
+
+	* c-common.c (convert_and_check): Don't warn converting 0xff
+	to a signed char, etc., unless pedantic.
+
+	* Makefile.in (mainversion): New variable.
+	(distdir): Use mainversion when verifying gcc.texi has been updated.
+
+Sat Oct 30 03:12:54 1993  Torbjorn Granlund  (tege@cygnus.com)
+
+	* m68k.md (mulsidi3 patterns): Fix typo, LSHIFTRT was ASHIFT.
+
+Fri Oct 29 12:06:09 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixinc.svr4 (sys/stat.h): Don't change definitions into
+	prototypes if they may already be in prototype form.
+
+Fri Oct 29 16:50:33 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i386/linux.h (LIB_SPEC): Use -lieee if -mieee-fp.
+
+Fri Oct 29 13:04:16 1993  Arne H. Juul  (arnej@fm.unit.no)
+
+	* mips/iris5.h (LINK_SPEC): Pass -no_unresolved if -call_shared.
+
+Fri Oct 29 12:52:54 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.md (addsf3, subsf3, mulsf3, divsf3): Put POWERPC first,
+	then POWER.
+
+	* mips/iris5.h ({DBX,SDB,MIPS}_DEBUGGING_INFO): Turn off until working.
+
+Fri Oct 29 12:15:12 1993  Minh Tran-Le  (tranle@intellicorp.com)
+
+	* i386/xm-aix.h: Define HAVE_PUTENV for AIX PS/2.
+
+Fri Oct 29 11:49:46 1993  DJ Delorie (dj@ctron.com)
+
+	* i386/go32.h: Add support for coff-based ctor/dtor handling. 
+
+Thu Oct 28 21:33:22 1993  Kresten Krab Thorup  (krab@next.com)
+
+	* objc-act.c (check_methods_accessible): Fix bug in
+	-Wno-protocol.  Reset chain to bottom class for each search. 
+
+Thu Oct 28 21:30:38 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-parse.in (init): Remove extraneous pop_momentary in error case.
+
+Thu Oct 28 19:01:33 1993  Ron Guilmette  (rfg@netcom.com)
+
+	* cp-method.c (hack_identifier): If an overloaded identifier
+	can only mean one thing, it can only mean one thing.
+
+Thu Oct 28 18:52:15 1993  John F Carr  (jfc@mit.edu)
+
+	* cp-typeck.c (get_member_function_from_ptrfunc):  Convert delta
+	to size_t before adding to pointer.
+
+Thu Oct 28 18:43:41 1993  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* arm.h (ENCODE_SECTION_INFO): Use DECL_RTL for DECLs.
+
+Wed Oct 27 20:58:31 1993  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* pa.c (emit_move_sequence): Fix typo, `Pmode' was `mode'.
+
+Wed Oct 27 00:01:06 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cse.c (cse_insn): When using src_related, copy the rtx.
+	Likewise for src_eqv_here.
+
+	* c-typeck.c (output_pending_init_elements): Don't crash if
+	constructor_unfilled_fields is 0.
+
+	* fixincludes (bsd/sys/wait.h): Undo previous change.
+
+	* config/m68k/xm-amix.h (abort): Don't use fancy_abort.
+	(alloca): In GCC 1, define as __builtin_alloca.
+
+	* config/m68k/amix.h (ASM_GENERATE_INTERNAL_LABEL)
+	(ASM_OUTPUT_INTERNAL_LABEL): #if 0 deleted, to reenable these.
+	(NO_DOT_IN_LABEL): Defined.
+	(NO_DOLLAR_IN_LABEL): Undefined.
+
+	* function.c (assign_parms): If parmreg is a CONCAT, handle the
+	case where stack_parm is 0.
+
+	* expr.c (do_jump): Use do_jump_by_parts_equality for complex compares.
+
+	* c-typeck.c (build_c_cast): When making union constructor,
+	copy TREE_CONSTANT from the given value.
+	(initializer_constant_valid_p): Special handling for "constant"
+	union constructor.
+
+	* bytecode.def: Rename dup to duplicate.
+	* expr.c (expand_assignment): Use duplicate.
+	(bc_expand_expr): Likewise.
+	(bc_expand_constructor): Likewise.
+
+	* print-tree.c (print_node_brief): Use unsigned char to print
+	the bytes of a real constant.
+
+	* expmed.c (store_bit_field): When calling operand_subword_force,
+	if VALUE has a non-void mode, pass that mode.
+
+	* config/m68k/amix.h (NO_DOLLAR_IN_LABEL): Defined.
+
+Tue Oct 26 19:05:36 1993  John F Carr  (jfc@mit.edu)
+
+	* rs6000.c (rs6000_override_options): Support -mcpu=rsc1.
+
+Tue Oct 26 19:01:08 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (deduced.h): Add -I. and -I$(srcdir).
+
+	* scan-types.sh (CC): Move a " to avoid shell error.
+
+	* config.sub (paragon): New alias.
+	* configure (i860-*-osf*): New alternative.
+	* gstdarg.h, gvarargs.h [__i860__]: Add to little-endian list.
+	* libgcc2.c (___builtin_saveregs): New alternative for __PARAGON__.
+	* va-i860.h: Treat __PARAGON__ like __SVR4__.
+	(va_dcl) [__PARAGON__]: Declare va_alist.
+	* paragon.h, xm-paragon.h: New files.
+
+Tue Oct 26 18:58:49 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fix-header.c: Delete duplicate definition of "buf".
+	* fix-header.c, gen-protos.c, scan-decls.c, scan.c: Include hconfig.h.
+	* scan-decls.c: Remove unused #ifdef OLD.
+
+	* Makefile.in (gen-protos.o, scan.o, fix-header.o, scan-decls.o):
+	Add rule to compile using $(HOST_CC).
+	Show using hconfig.h.
+
+	* rs6000.md (movsi): Can copy a TOC address into a register.
+
+Tue Oct 26 15:03:07 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (default_compilers): Define __GNUC_MINOR__, using %v.
+	(do_spec_1): Implement %v.
+
+Tue Oct 26 11:06:59 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-lex.c (consume_string): Handle "\"" and '\''.
+
+Tue Oct 26 13:44:17 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* Makefile.in (fix-header.o): Depend on fix-header.c.
+	(scan-decls.o): New target.
+	(gen-protos.o, scan.o): New targets.
+
+	* Makefile.in (gen-protos, fix_header): Add $(HOST_CFLAGS) and
+	$(HOST_LDFLAGS).
+
+	* x-sysv (OLDCC): Add -XNh1500.
+	* x-mips: Likewise.
+
+Tue Oct 26 12:21:06 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* fixincludes: Fix NeXT <sys/wait.h> problem in <bsd/sys/wait.h>
+	as well, since that is where the file is in NeXTStep 3.0.
+
+Tue Oct 26 07:23:08 1993  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* expmed.c (init_expmed): Use register 10000, not FIRST_PSEUDO_REGISTER
+	that gets special treatment in rtx_cost.
+	(expand_mult): Decrease max cost to 8.
+
+	* c-typeck.c (build_binary_op): For TRUNC_MOD_EXPR and FLOOR_MOD_EXPR,
+	set common.
+
+Tue Oct 26 01:59:17 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* protoize.c [__NeXT__]: Don't declare setjmp or longjmp.
+
+	* configure: Ignore --verbose option if specified.
+
+	* expr.c (emit_move_insn_1): Don't call group_insns
+	when X is a CONCAT.
+	(emit_move_insn_1, case CONJ_EXPR and COMPLEX_EXPR): Likewise.
+
+	* fixproto (signal.h): Add prototypes only for kill and raise.
+	Not for the POSIX signal functions.
+	(sys/resource.h): Delete special handling for this file.
+
+	* c-typeck.c (push_init_level): Align here for element of record.
+	(process_init_element): Not here (was before call to push_init_level).
+
+	* scan-types.sh: Expect GCC source dir as argument.
+	In dummy.c, use gstddef.h and gstdarg.h, not stddef.h and stdarg.h.
+	* Makefile.in (deduced.h): Pass GCC source dir to scan-types.sh.
+
+Mon Oct 25 23:23:26 1993  Torbjorn Granlund  (tege@blues.cygnus.com)
+
+	* c-typeck.c (build_binary_op): For TRUNC_MOD_EXPR and FLOOR_MOD_EXPR,
+	don't shorten when divisor might be -1.
+
+Mon Oct 25 23:45:20 1993 Minh Tran-Le (tranle@intellicorp.com)
+
+	* seq-sysv3.h (CPP_SPEC): Define _SEQUENT_ to be compatible with cc.
+	(INVOKE__main): Defined.
+	(HAVE_ATEXIT): Defined.
+
+	* configure (i[34]86-sequent-sysv): Use fixinc.srv4 and define
+	broken_install.
+
+Mon Oct 25 18:53:51 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case PLACEHOLDER_EXPR): Fix typos.
+
+Mon Oct 25 16:25:58 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* scan.c (scan_string, skip_spaces): Add newline before fn name.
+
+	* scan-decls.c (scan_decls): When reading parameter list,
+	handle whitespace differently, and keep track of line number.
+
+	* config/i386/x-linux (STMP_FIXPROTO): Define as empty.
+
+Mon Oct 25 13:22:37 1993  Kaveh R. Ghazi  (ghazi@caip.rutgers.edu)
+
+	* fixincludes: Fix bad S_IS* macros in <sys/stat.h> on m88k-sysv3.
+
+Mon Oct 25 22:34:12 BST 1993	Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* fixincludes: Remove nested brackets in change of Oct 21.
+	Fix token pasting operator in ARM/RISCiX include files.
+
+Mon Oct 25 13:01:52 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* sparc.h (LONG_DOUBLE_TYPE_SIZE): Don't define here.
+	* sol2.h (LONG_DOUBLE_TYPE_SIZE): Do define here.
+
+	* configure (mips-sgi-irix5): Don't use collect.
+
+Sun Oct 24 14:15:12 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* libgcc2.c (L_bb): Undef NULL before including <stdio.h>.
+
+Sun Oct 24 03:04:53 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (g++.o): New target.
+
+	* varasm.c (assemble_variable): Set last_assemble_variable_decl.
+	(last_assemble_variable_decl): New variable.
+	* toplev.c (rest_of_decl_compilation): Test that var.
+
+Sat Oct 23 20:28:13 1993  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* configure (mips-sgi-irix5): Uncomment.
+	* iris5.h: Replace with working version.
+	* xm-iris5.h: New file.
+
+	* mips.c (mips_abicalls): New variable.
+	(override_options): Set mips_abicalls.  Allow '^' as print operand
+	punctuation character.
+	(print_operand): Add support for '^'.
+	(mips_asm_file_start): Use ABICALLS_ASM_OP instead of ".abicalls".
+	(compute_frame_size): Handle TARGET_ABICALLS case.
+	(mips_expand_prologue): Likewise.
+	* mips.h (mips_abicalls): Declare new variable.
+	(PIC_FUNCTION_ADDR_REGNUM): New macro.
+	(STARTING_FRAME_OFFSET): Handle TARGET_ABICALLS case.
+	* mips.md (abicalls): New attribute.
+	(define_delay): Don't fill call delay slots when TARGET_ABICALLS.
+	(call_internal3, call_value_internal3): Renamed from
+	call_internal2 and call_value_internal2.
+	(call_internal2, call_value_internal2): New call patterns for
+	TARGET_ABICALL case.
+	(call_internal4, call_value_internal4): Likewise.
+
+Sat Oct 23 00:06:14 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (deduced.h): Depend on GCC_PASSES and stmp-int-hdrs.
+	(xsys-protos.h): Depend on GCC_PASSES.
+	(fixhdr.ready): New target.
+	(stmp-fixproto): Depend on fixhdr.ready, not fix-header itself.
+	(clean): Delete fixhdr.ready.
+
+Fri Oct 22 01:20:29 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fix-header.c: Renamed from patch-header.c.
+	(progname): Change name.
+	* fixproto: Use fix-header.
+	* Makefile.in (fix-header, fix-header.o): Renamed from patch-header*.
+	(stmp-fixproto, mostlyclean): Rename references to them.
+
+	* expr.c (store_field): In BLKmode case, return blk_object.
+
+	* config/m88k/m88k.h (ASM_FINISH_DECLARE_OBJECT): Undef, then define.
+
+	* Version 2.5.0 released.
+
+Thu Oct 21 13:02:48 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* mips.h (CUMULATIVE_ARGS): Double size of adjust array.
+	* mips.c (function_arg): Add comment about too many adjust entries.
+
+Thu Oct 21 13:48:14 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.h (HARD_REGNO_MODE_OK): Multi-word objects cannot
+	go into MQ, LR, or CTR.
+
+	* configure (mips-sgi-iris5*): Disable; not working yet.
+	* mips/iris5.h (ASM_SPEC, LINK_SPEC, CPP_PREDEFINES): Extend a bit.
+
+	* expmed.c (expand_divmod): Create RESULT in proper mode when trying
+	quotient-and-remainder insn.
+
+Thu Oct 21 13:14:40 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (STMP_FIXPROTO): Uncomment the definition.
+
+	* varasm.c (output_constructor): Fix previous change:
+	if no TYPE_DOMAIN, don't set min_index.
+
+Thu Oct 21 11:13:21 1993  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* fixincludes: Avoid conflicting uses of __wchar_t in cc1plus and
+	stdlib.h for ARM/RISCiX.
+
+Thu Oct 21 08:16:13 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* Makefile.in (install-common): Remove g++ dependency.
+	Not built for cross compilers.
+
+Thu Oct 21 00:04:40 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes (required): Accept a space instead of a tab
+	between #define and CTRL (or _CTRL).
+
+	* config/m68k/m68k.c (output_move_double): Use reg_overlap_mentioned_p
+	when checking for overlap between source and dest.
+	Fix syntax for the lea insn for double overlap case.
+	* m68k.md (movdi, movdf, movxf): Delete the & from load case.
+
+	* config/m88k/m88k.h (ASM_FINISH_DECLARE_OBJECT): Emit .size
+	only if DECLARE_ASM_NAME.
+
+Wed Oct 20 21:32:11 1993  Jeff Law  (law@snake.cs.utah.edu)
+
+	* pa.c (output_arg_descriptor): Do not stop searching if a USE
+	for the static link or struct value register is found.
+
+Wed Oct 20 22:43:22 1993  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Don't emit .size
+	directive if using the OSF/rose object format.
+
+	* i386/osfrose.h, i386/osfelf.h (SWITCH_TAKES_ARG): Allow use of
+	System V.4 -h * and -z * switches.
+	(LINK_SPEC): Pass -G, -h*, -z* switches through to the ELF linker.
+	Map -static, -symbolic, and -shared into the appropriate -B, -d,
+	and -G options when invoking the ELF linker.
+
+Wed Oct 20 20:32:54 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cse.c (fold_rtx): Alter previous change: don't fold the shift
+	if the count exceeds the width of the value inside the subreg.
+
+	* varasm.c (copy_constant): New function.
+	(output_constant_def): Use it.
+
+	* Makefile.in ($(srcdir)/INSTALL): Add --no-split.
+
+Wed Oct 20 19:35:35 1993  John F Carr  (jfc@mit.edu)
+
+	* alpha.h (LIB_SPEC): Link -lprof1 when profiling.
+
+Wed Oct 20 19:21:18 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* cccp.c (sys_errlist): Conditionalize declaration for BSD 4.4.
+	* collect2.c, g++.c, gcc.c, protoize.c: Likewise.
+	* collect2.c (my_strerror): Move block local extern declarations
+	for sys_errlist and sys_nerr to file level.
+
+Wed Oct 20 18:27:28 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (output_init_element): When initializing a union,
+	do it right away: never put the field on the pending list.
+
+	* patch-header.c (main): Delete output file before opening it.
+	Discard directory names from progname.
+	* patch-header.c:  Simplify and fix handling of errno.h.
+	(It no longer thinks errno.h always needs fixing.)
+	* patch-header.c (write_lbrac, write_rbrac):  Only write
+	extern "C" if that specifically is needed.
+
+Wed Oct 20 18:12:21 1993  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* pa.md (cacheflush): Split into dcacheflush and icacheflush.
+	Rewrite to use space regs correctly.
+	* pa.h (TRAMPOLINE_TEMPLATE): Rewrite.
+	(TRAMPOLINE_SIZE): Update with new size.
+	(INITIALIZE_TRAMPOLINE): Rewrite.
+
+Wed Oct 20 17:58:32 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* varasm.c (output_constructor):  Add support for non-zero
+	lower array bound.
+	* expr.c (store_constructor): Likewise.
+
+Wed Oct 20 15:16:34 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* toplev.c (rest_of_decl_compilation): Use ASM_FINISH_DECLARE_OBJECT
+	unconditionally, but define it as no-op by default.
+
+	* config/convex/convex.h (MAX_LONG_TYPE_SIZE): Defined.
+
+	* varasm.c (size_directive_output): New variable.
+	* toplev.c (rest_of_decl_compilation): Use ASM_FINISH_DECLARE_OBJECT.
+	* config/svr4.h (ASM_DECLARE_OBJECT_NAME): Set size_directive_output.
+	(ASM_FINISH_DECLARE_OBJECT): Defined.
+	* config/i386/osfrose.h, config/m88k/m88k.h: Likewise.
+
+	* patch-header.c (inf_size):  Move decl inside main.
+	(strdup):  Use xmalloc rathern than malloc.
+	Don't use the return value of strcpy.
+	(INF_UNGET):  Take parameter;  do nothing if EOF.
+	(strcpy): Declaration deleted.
+
+Wed Oct 20 11:39:56 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* xm-mips.h (HAVE_VPRINTF): Define for BSD 4.4.
+
+	* mips.c (mips_output_filename): When emitting stabs, don't
+	disable them if using gas.
+	(mips_output_lineno): Likewise.
+
+	* sparc.h (INITIALIZE_TRAMPOLINE): Emit 3 flush instrutions.
+	* sparc.md (flush): Add pattern.
+
+Wed Oct 20 10:47:54 1993  Michael Meissner  (meissner@osf.org)
+
+	* configure (mips-dec-bsd, mips-dec-osf): Fix a typo in the last
+	change.
+
+Wed Oct 20 07:57:06 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.h, aix31.h (RS6000_CROR_BIT_NUMBER): Deleted.
+	(RS6000_CALL_GLUE): New macro.
+	* rs6000.c (print_operand, case '.'): Use RS6000_CALL_GLUE
+	instead of RS6000_CROR_BIT_NUMBER.
+	(print_operand, case 'E', case 0): Use "return", not "break".
+	* rs6000.md (call): Don't use CROR or NOP; just use "%.".
+
+	* c-common.c (check_format_info): Consider "char", "signed char",
+	and "unsigned char" types as equivalent.
+
+	* loop.c (find_and_verify_loops): Properly continue loop after
+	moving a block of code near a loop exit.
+
+Wed Oct 20 02:01:50 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (extraclean): Delete file djefoo.
+	(stmp-fixproto): Depend on stmp-headers, not LIBGCC2_DEPS.
+
+Tue Oct 19 23:11:16 1993  James Van Artsdalen  (james@bigtex.cactus.org)
+
+	* config/i386/isc.h (LONG_DOUBLE_TYPE_SIZE): Define as 64 bits
+	due to FP emulator bugs in the target kernel.
+	* config/i386/sco.h: Likewise (kernel bugs are only suspected).
+
+Tue Oct 19 21:21:34 PDT 1993  Ralph Campbell (ralphc@pyramid.com)
+
+	* configure (mips-dec-bsd): New alternative.
+	* config/mips/dec-bsd.h: New file.
+
+Tue Oct 19 18:49:40 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* c-typeck.c (digest_init): For arrays, use comptypes to compare
+	types instead of comparing pointers.
+
+Tue Oct 19 11:24:16 1993  Steve Chamberlain  (sac@phydeaux.cygnus.com)
+
+	* reload1.c (reload): Cope when inherited register is larger than
+	one word.
+	(choose_reload_regs): Ditto.
+
+Tue Oct 19 18:09:18 1993  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.md (define_function_unit): Add support for RIOS2
+	asymmetric integer units.
+
+Tue Oct 19 17:48:37 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (assign_parms): Properly set parm_reg_stack_loc for
+	args that are a CONCAT.
+
+	* clipper.md (movdi): Force use of "o" alternative if
+	operand 1 is a MEM.
+
+	* alpha.h (HAVE_ATEXIT): New macro.
+
+	* reload.c (push_reload, find_reloads): If an operand is
+	a SUBREG of a PLUS, force a reload and reload what is inside.
+
+	* dbxout.c (print_int_cst_octal): Fix bug in last change.
+
+Tue Oct 19 17:42:23 1993  Richard Earnshaw  (rwe11@cl.cam.ac.uk)
+
+	* arm.c: Include reload.h
+	(arm_reload_out_hi): New function.
+	(output_call): Don't look inside operands[0].
+	* arm.h: Add function definitions for shift_instr, 
+	output_mov_long_double_fpu_from_arm,
+	output_mov_long_double_arm_from_fpu,
+	and output_mov_long_double_arm_from_arm.
+	(FLOAT_WORDS_BIG_ENDIAN): Define to 1.
+	(SECONDARY_OUTPUT_RELOAD_CLASS): return GENERAL_REGS for HImode
+	outputs.
+	(ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT):
+	output floating point constants as hex, make order correct given
+	definition of FLOAT_WORDS_BIG_ENDIAN.
+	(PRINT_OPERAND): Delete redundant code when handling CONST_DOUBLE.
+	* arm.md: (reload_outhi): New pattern.
+	(movhi): Handle reloads better.
+	(restorehi): Delete.  Also tidy up commented out code.
+	(call): Make this a define_expand.
+	(matcher for above): only accept MEM(reg)
+	(call_value): Handle as for (call).
+	* xm-arm.h (HOST_FLOAT_WORDS_BIG_ENDIAN): Define to 1.
+
+Tue Oct 19 13:25:03 1993  Mike Stump  (mrs@rtl.cygnus.com)
+
+        * cp-type2.c (build_m_component_ref): Fix typo, type must be set,
+	after changing component.  Fixes problem introduced on Thu Sep 9
+	21:22:40 1993.
+
+Tue Oct 19 01:09:56 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure (m68000-convergent-sysv*): Untangle from m68k-*-lynxos.
+
+	* Makefile.in (stmp-fixproto): Depend on LIBGCC2_DEPS.
+	(crtbegin.o, crtend.o): Specify -fno-inline-functions.
+
+	* config/mips/iris5.h: New file.
+	* config/mips/mips.c (mips_asm_file_start): Handle ABICALLS_ASM_OP.
+	* configure (mips-sgi-iris5*): New configuration.
+
+Mon Oct 18 16:16:26 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cse.c (note_mem_written): (mem (scratch)) means clobber everything.
+
+	* gen-protos.c: Include ctype.h.
+
+	* expmed.c (extract_split_bit_field): Change shift count calculation
+	in little-endian case.
+
+	* Makefile.in (stmp-fixproto):  Added dependency on fixproto script.
+
+Mon Oct 18 11:26:08 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* c-typeck.c (process_init_element): Align structure elements
+	that are subaggregates.
+
+	* c-decl.c (finish_decl): After preserve_initializer call, set
+	TREE_PERMANENT bit in initializer.
+
+	* combine.c (can_combine_p): Don't combine instructions across a
+	volatile insn.
+	* rtlanal.c (volatile_insn_p): New function.
+
+Sun Oct 17 03:04:49 1993  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* configure (powerpc-ibm-aix*): Set cpu_type.
+	* config.sub: Recognize powerpc.
+
+Sun Oct 17 21:37:57 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* reload1.c (eliminate_regs_in_insn): Rerecognize some loads and
+	stores.
+	* pa.md (indexing loads and stores): Provide variants which avoid
+	reload problems with shift-add operations.
+
+	* pa.h (READONLY_DATA_SECTION): Disable.
+
+Thu Oct 14 12:38:27 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cse.c (fold_rtx): Special case handling for folding
+	a subreg of the result of a left shift.
+
+Thu Oct 14 00:05:42 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.h (DBX_CONTIN_LENGTH): Set to 4000.
+
+	* expr.c (do_jump_for_compare): Don't blow up if aren't any insns
+	in this sequence yet.
+
+	* alpha.h (LINK_SPEC): Now OK to pass -O3 to linker.
+	(ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): Work around
+	bug in DEC assembler.
+
+Wed Oct 13 21:47:58 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Remove erroneous parens from Alpha OSF/1 <sym.h>.
+
+Wed Oct 13 16:08:54 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/m68k/sun3.h (CPP_PREDEFINES): Don't define _CROSS_TARGET_ARCH.
+
+	* fold-const.c (invert_truthvalue): Handle SAVE_EXPR.
+
+	* Makefile.in (install-collect2): Depend on install-dir.
+	(install-info, install-float-h-cross): Likewise.
+
+Wed Oct 13 15:51:02 1993  Stephen L. Moshier  (moshier@world.std.com)\
+
+	* real.h (FLOAT_WORDS_BIG_ENDIAN): New macro.
+	(HOST_FLOAT_WORDS_BIG_ENDIAN): Likewise, for host.
+	(REAL_VALUE_TO_TARGET_DOUBLE (default version)): Use them.
+	(efixi, efixui): Return HOST_WIDE_INT.
+	(REAL_VALUE_FROM_INT): Cast inputs to HOST_WIDE_INT.
+	* real.c (FLOAT_WORDS_BIG_ENDIAN, HOST_FLOAT_WORDS_BIG_ENDIAN):
+	Use everywhere in place of WORDS_BIG_ENDIAN, HOST_WORDS_BIG_ENDIAN,
+	except in reference to endian-ness of integers.
+	(etrunci, etruncui, efixi, efixui, ereal_from_int, ereal_to_int,
+	ltoe, ultoe, eifrac, euifrac): Change `long' to `HOST_WIDE_INT'.
+
+Wed Oct 13 15:47:37 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-parse.in (initdcl, notype_initdcl): Call decl_attributes
+	before init as well as after.
+
+	* config/ns32k/pc532.h (FRAME_POINTER_REQUIRED):
+	Require a frame pointer if fn calls setjmp.
+
+Wed Oct 13 15:27:01 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* jump.c (jump_optimize): When moving a range of instructions,
+	include all NOTEs before the range, not just line number notes.
+
+Wed Oct 13 11:01:51 1993  Per Bothner  (bothner@wombat.gnu.ai.mit.edu)
+
+	* patch-header.c:  #include <sys/types.h> before <sys/stat.h>.
+
+Wed Oct 13 11:57:33 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.md (seq): Fix typo: had "xubfic" instead of "subfic".
+
+	* va-m88k.h (_VA_LIST_): Define.
+
+	* alpha.c (ignore_line_number): No longer used.
+
+	* mips-tdump.c (print_global_hdr): Fix typo in cast in ctime call.
+
+	* cccp.c (main): Don't catch SIGPIPE if no such signal.
+
+	* x-alpha: File deleted, all shipped OSF systems have `ranlib'.
+
+	* fold-const.c (optimize_bit_field_compare, decode_field_reference):
+	Don't do anything if get_inner_reference returned its argument.
+
+	* bi-reverse.c: Avoid defining NULL; can cause duplicate definition
+	errors.
+
+Wed Oct 13 07:58:28 1993  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h (ASM_OUTPUT_ADDR_DIFF_ELT): Define like in V.4.
+	(FUNCTION_PROFILER, FUNCTION_PROLOGUE): Don't load up %eax with
+	the pointer value before calling indirect, just call indirect the
+	memory address to save some cycles in profiling.
+
+Tue Oct 12 12:41:12 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* cse.c (record_jump_cond): At end, make missing equivalences
+	first, and then merge them.
+
+Tue Oct 12 21:30:29 1993  Doug Evans  (dje@cygnus.com)
+
+	* va-h8300.h (__va_rounded_size): Fix typo in #ifdef.
+
+Tue Oct 12 20:19:22 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* bc-emit.c: Include stdio.h last.
+	* combine.c: Include stdio.h after gvarargs.h.
+
+Tue Oct 12 13:28:18 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* fixproto:  Re-write.  We now assume that there are two
+	source directories (source_dir_all and source_dir_std).  These
+	are handled differently.  All files in source_dir_all (normally
+	./include) are processed, but in source_dir_std (normally
+	/usr/include) we only process the standard ANSI/Posix ones where
+	we might be able to add missing prototypes.
+	* scan-decls.c (scan_decls):  Rewrote from being a program whose
+	output is piped to patch-header, to a subroutine called by
+	patch-header.  This should be somewhat more efficient.
+	* Makefile.in (scan-decls):  Removed rule to make program.
+	* patch-header.c (recognized_macro, recognized_extern,
+	recognized_function):  New functins, with logic moved out from
+	read_scan_file, so they can be called by scan_decls.
+	* patch-header (main):  Read the original header file into a
+	buffer (rather than reading it with stdio).  This should be more
+	efficient, partly because we can re-write it in place.
+	(inf_skip_spaces, inf_read_upto, inf_scan_ident):  New functions,
+	based on skip_spaces, read_upto, and scan_ident in scan.c, but
+	these read from the in-memory buffer mentioned above.
+	* scan-types.sh:  Don't check for sigset_t, since it can be a
+	struct, whose name cannot be simplify replaced by its definition.
+	* Makefile.in (deduced.h):  Don't pass -nostdinc.
+
+Tue Oct 12 18:36:32 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+	Changes to support native ecoff and embedded stabs debugging
+	for the Alpha.
+
+	* alpha.c (output_prolog): Put out file and line number if sdb
+	debugging format, put out .ent directive, signal start of function for
+	alpha_output_filename and set up debugging auto/arg offsets.
+	(output_epilog): Signal end of function for alpha_output_filename.
+	(alpha_output_filename, alpha_output_lineno): New functions.
+	* alpha.h (TARGET_SWITCHES): Add gas option.
+	(ASM_DECLARE_FUNCTION_NAME): Moved output of .ent directive to
+	output_prolog.
+	(DBX_NO_XREFS): Removed, gdb understands cross references and the
+	native debugger can't handle embedded stabs.
+	(ASM_FILE_START): Replace output of .file directive
+	by ASM_OUTPUT_SOURCE_FILENAME call.
+	(TARGET_GAS, MASK_GAS, SDB_DEBUGGING_INFO, DBX_DEBUGGING_INFO,
+	MIPS_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE, DEBUGGER_AUTO_OFFSET,
+	DEBUGGER_ARG_OFFSET, ASM_OUTPUT_SOURCE_LINE,
+	ASM_OUTPUT_SOURCE_FILENAME, DEFAULT_GDB_EXTENSIONS, ASM_STABS_OP,
+	ASM_STABN_OP, ASM_STABD_OP, SDB_ALLOW_FORWARD_REFERENCES,
+	SDB_ALLOW_UNKNOWN_REFERENCES, PUT_SDB_DEF, PUT_SDB_PLAIN_DEF,
+	PUT_SDB_TYPE, PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END,
+	PUT_SDB_FUNCTION_START, PUT_SDB_FUNCTION_END, PUT_SDB_EPILOGUE_END,
+	ASM_FINAL_SPEC, CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB,
+	MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE): New macros.
+	* alpha-gdb.h: New file.
+	* configure (alpha-*-osf*): Handle --with-stabs and --with-gnu-as.
+	* mips-tfile.c (add_local_symbol): Index in the external symbol
+	must point to local symbol table entry for procedures.
+
+Mon Oct 11 16:14:53 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: If a file is referenced with double quotes from
+	a fixed file, make sure it is copied into the fixed include
+	directory.
+	Remove DPS/XDPSlib.h special-case code.
+
+Tue Oct 12 08:05:28 1993  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000/powerpc.h: New file.
+	* configure (powerpc-ibm-aix*): New target.
+	* rs6000.h (MASK and TARGET): Add new flags for POWER2 and PowerPC
+	with square root.
+	(ASSEMBLER_DIALECT): New macro.
+	(CONDITIONAL_REGISTER_USAGE): Set MQ register fixed if not POWER.
+	(SHIFT_COUNT_TRUNCATED): Conditional on POWER.
+	(ASM_OUTPUT_REG_{PUSH,POP}): Mnemonics dependencies.
+	* rs6000.c (rs6000_override_options): Use new TARGET flags and
+	add some more cpu choices.
+	(output_prolog, output_epilog): Support new mnemonics and avoid
+	using lm/stm when not POWER.
+	* rs6000.md: Update define_function_units.
+	Put both old and new mnemonics in all templates.
+	Add target tests to pattern conditional field throughout.
+	(one_cmplsi2): Make POWER and PowerPC variants.
+	(mulsi3): Convert to define_expand which calls appropriate POWER
+	or PowerPC pattern.
+	(divsi3, udivsi3): Add patterns for PowerPC case.  Update divsi3
+	define_expand for PowerPC case.
+	(ashlsi3, lshrsi3, ashrsi3, extendqisi2, extendqihi2): Convert to
+	define_expand which calls appropriate POWER or PowerPC pattern.
+	(floating-point): Add PowerPC single-precision FP, and SF/DF sqrt
+	insns for 603, 604, 620.
+	(call insns): Use "nop" for magic TOC restore.
+	(move data, nop): Use PowerPC extended mnemonics.
+
+Tue Oct 12 07:58:36 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.h (SETUP_INCOMING_VARARGS): If not TARGET_FPREGS,
+	save another copy of the integer regs where the FP regs would
+	have gone.
+
+	* tree.h (struct tree_type): symtab_address is now a union of
+	pointer and integer.
+	(TYPE_SYMTAB_ADDRESS): Refer to the integer.
+	(TYPE_SYMTAB_POINTER): New macro to refer to pointer.
+	* sdbout.c (KNOWN_TYPE_TAG, SET_KNOWN_TYPE_TAG): Refer to
+	TYPE_SYMTAB_POINTER and remove casts.
+	(tag_of_ru_type): Likewise.
+
+	* reload1.c (reload): Fix typo in RELOAD_FOR_INSN case when
+	accounting for reloads.
+
+	* expr.c (convert_modes): Reset OLDMODE from X after we strip
+	a SUBREG due to a promoted variable.
+
+	* dbxout.c (dbxout_type, case INTEGER_TYPE): Output bounds in
+	octal if type wider than HOST_WIDE_INT.
+	(print_int_cst_octal): Trim bound by precision of its type.
+	Avoid warning on what may be shift into sign bit.
+
+	* bi-reverse.c: Add missing #include for hconfig.h.
+
+	* fixincludes: Quote braces when looking for DONE files.
+
+	* final.c (dialect_number): New variable.
+	(init_final): Initialize it.
+	(output_asm_insn, asm_fprintf): Support ASSEMBLER_DIALECT.
+
+Tue Oct 12 01:34:16 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (digest_init): If traditional, allow unbraced scalar
+	to initialize the first element of an aggregate.
+
+	* cccp.c (output_line_command): Output the `4' flag only if cplusplus.
+	(do_line): Handle the `4' flag.
+
+	* final.c (final_scan_insn): Call walk_alter_subreg for operands
+	that are PLUS or MULT, before constrain_operands.
+
+Mon Oct 11 15:18:45 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* real.c (debug_real): New function.
+
+	* regclass.c (reg_scan_mark_refs): XEXP (x, 0) in EXPR_LIST may be 0.
+
+	* config/m68k/m68k.md (cmphi): Turn on constraints to support cmpm.w.
+
+Mon Oct 11 13:20:54 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* unroll.c (unroll_loop): Set map->const_equiv_map_size to
+	new_maxregnum.
+	(copy_loop_body): When set const_age_map entry for split dest reg,
+	verify that it is within the bounds of the map.
+	(find_splittable_regs): Count number of biv sets, not number of
+	bivs.  Don't pass result to find_splittable_givs.
+	(find_splittable_givs): Delete parameter result.  Add local
+	variable result.
+
+Mon Oct 11 07:43:31 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_assignment): When assigning an INDIRECT_REF to
+	a RESULT_DECL, the size and source rtx were swapped.
+
+	* function.c (trampoline_address): Don't allocate anything
+	from parent function's current obstack.
+
+	* regclass.c (reg_scan): Don't call reg_scan_mark_refs on notes
+	if there aren't any.
+	(reg_scan_mark_refs, case INSN_LIST, EXPR_LIST): New cases.
+
+	* cse.c (simplify_binary_operation): Test value of
+	SHIFT_COUNT_TRUNCATED if it is defined.
+	* combine.c (subst, shift and rotate cases): Likewise.
+	* a29k.h, alpha.h, fx80.h, i960.h, mips.h, pa.h, pyr.h, rs6000.h:
+	Define SHIFT_COUNT_TRUNCATED to have a value of 1.
+	* sparc.h, tahoe.h, we32k.h: Likewise.
+
+Mon Oct 11 02:40:22 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* regclass.c (regno_last_note_uid): New vector.
+	(reg_scan): Initialize regno_last_note_uid.
+	Call reg_scan_mark_refs for the notes.  Pass its new arg.
+	(reg_scan_mark_refs): New arg NOTE_FLAG.  Pass it recursively.
+	Set regno_last_note_uid.
+	* regs.h (regno_last_note_uid): Declared.
+	* jump.c (jump_optimize): Use regno_last_note_uid when deciding
+	whether a register is set and never used.
+
+Sun Oct 10 22:51:01 1993  Stephen Moshier  (moshier@world.std.com)
+
+	* real.c (asctoeg): Fix backward condition in last change.
+
+Sun Oct 10 22:33:17 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* configure (hppa1.0-*-mach*): Use collect2.
+	(hppa1.1-*-mach*): Likewise.
+
+	* pa.c (legitimize_pic_address): Delete unused variables.
+	(output_block_move, output_ior): Likewise.
+	(hppa_builtin_saveregs): Likewise.
+	(emit_move_sequence): Add parens as suggested by -Wall.
+	(compute_frame_size): Likewise.
+	(output_ascii): Return type is "void".
+	(hppa_expand_prologue, import_milli): Likewise.
+
+	* pa.c (output_function_prologue):  Pass the highest register
+	number saved for ENTRY_GR and ENTRY_FR directives rather
+	than the number	of registers saved.
+	(hppa_expand_prologue):  Account for %r4 when it's being 
+	used as a frame pointer.
+
+Sun Oct 10 18:42:49 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (start_init): Don't set require_constant_elements
+	for scalar types.
+
+	* c-parse.in (stmt): Don't call default_conversion on top-level
+	expressions.
+
+	* c-typeck.c (convert_for_assignment): Allow silent conversion to
+	a pointer from an integer 0 that resulted from arithmetic.
+
+	* varasm.c, c-pragma.c (enum pragma_state): Defined.
+
+	* config/i386/i386.c (restore_386_machine_status)
+	(save_386_machine_status): New functions.
+	(clear_386_stack_locals): Store those functions in
+	save_machine_status, restore_machine_status.
+	(struct machine_function): New structure definition.
+
+	* function.h (struct function): New field `machine'.
+	* function.c (save_machine_status, restore_machine_status): New vars.
+	(push_function_context, pop_function_context): Use them.
+
+	* explow.c (emit_stack_save): Cast enum array index to int.
+
+Sun Oct 10 12:49:39 1993  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* arm.c (const_ok_for_arm): Cast constants to unsigned HOST_WIDE_INT.
+	(output_prologue): Sanity check the finite state machine.
+	(output_epilogue): Delete unused variable.
+	(final_prescan_insn): Always clear arm_target_insn when FSM goes to
+	state 0.
+	* arm.h (OPTIMIZATION_OPTIONS): Don't set flag_omit_frame_pointer,
+	since this inhibits debugging.
+	(ASM_OUTPUT_INTERNAL_LABEL): Always clear arm_target_insn when FSM
+	goes to state 0.
+
+Sun Oct 10 08:56:58 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.h (ALPHA_COSTS): Add missing arg to call to rtx_cost.
+
+	* combine.c (force_to_mode, case ASHIFTRT): Verify that result of
+	making a LSHIFTRT remains a shift.
+
+	* tree.c (save_tree_status): Function_maybepermanent_obstack is the
+	function_obstack of parent function.
+	(restore_tree_status): Only free objects later than
+	maybepermanent_firstobj in function_maybepermanent_obstack.
+	(make_node): Fix logic error in PARM_DECL code.
+	Put PARM_DECL in parent function's saveable obstack.
+	* function.c (put_reg_into_stack): Allocate fixup structure in
+	saveable obstack.
+
+	* expr.c (expand_assignment): Don't short circuit store_expr
+	when TO is a VAR_DECL since it needs special handling if promoted.
+
+	* combine.c (subst, case SUREG): Only call force_to_mode if both
+	inner and outer modes are MODE_INT.
+
+	* mips-tfile.c (WORD_ALIGN): Fix typo in last change.
+
+	* c-common.c (check_format_info): Support X/Open formats like "%1$d".
+
+Sat Oct  9 22:29:17 1993  Per Bothner  (bothner@wombat.gnu.ai.mit.edu)
+
+	* configure:  If no target is specified, try getting one
+	with config.guess.
+	* config.guess: New file.
+
+Sat Oct  9 19:50:24 1993  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* c-common.c (check_format_info): Avoid ?: conditional for function
+	to be called.
+
+	* config/vax/xm-vms.h [VAXC] (bc_check_for_full_enumeration_handling)
+	(current_function_has_nonlocal_goto)
+	(output_deferred_addressed_constants): New macros to shorten
+	external names exceeding 31 characters.
+
+	* make-cc1.com: Move alloca handling before bytecode construction
+	so that VAX C won't need two different values for LIBS.  Eliminate a
+	comment about make-like functionality that referred to a capability
+	which has not been implemented.
+
+Sat Oct  9 21:53:53 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* fixincludes: Unquote a quoted `t' in a #define _IO line, for AIX
+	3.2 sys/stropts.h #define _IO(t,v).
+	(sys/spinlock.h): Don't copy it if it doesn't exist.
+	(DPS/XDPSlib.h): Change "XDPS.h" to <DPS/XDPS.h>, for AIX.
+
+Sat Oct  9 15:00:00 1993 DJ Delorie (dj@ctron.com)
+
+	* configure.bat: Change $(srcdir)/ to $(srcdir)\ in commands.
+
+Sat Oct  9 15:17:22 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case ABS_EXPR): Don't copy twice into
+	volatile MEM.
+
+	* expr.c (expand_expr): Never reset ORIGINAL_TARGET.
+	Pass ORIGINAL_TARGET to lang_expand_expr, not TARGET.
+
+Sat Oct  9 13:27:10 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* tree.c (pop_momentary_nofree): New function.
+	* c-parse.in (initdcl, notype_initdcl, init): Undo previous change.
+	(init): Use pop_momentary_nofree if the initializer has real data.
+
+Sat Oct  9 12:55:26 1993  Stephen Moshier  (moshier@world.std.com)
+
+	* real.c (asctoeg): Allocate local buffer dynamically.  Count
+	any lost significant digits before the decimal point.
+
+Fri Oct  8 16:33:42 1993  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-tree.h (OFFSET_REF): Override OFFSET_REFs from the back-end, as
+	  we need to do something more complex with them.
+	* cp-tree.def (CP_OFFSET_REF): Very similar to OFFSET_REFs, but
+	  allow the front-end to handle them.
+
+Fri Oct  8 14:40:29 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-error.c (dump_expr, REAL_CST): Support printing of real values
+	when REAL_IS_NOT_DOUBLE (prints out rep in hex).
+
+Fri Oct  8 13:54:03 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-type2.c (store_init_value): Move pointer to member function
+	  initilization code to...
+	* cp-type2.c (digest_init): here.  Allows nested pointer to member
+	  functions to work.
+	* cp-decl.c (build_ptrmemfunc_type): Use a real union instead of a
+	  magic union, as the initialization code doesn't like them.
+	* cp-tree.h (TYPE_PTRMEMFUNC_FN_TYPE): Changed to go though the
+	  union.
+	* cp-tree.h (DELTA2_FROM_PTRMEMFUNC, PFN_FROM_PTRMEMFUNC): Accessor
+	  macros to go thought union.  Allows us to change pointer to member
+	  functions a little easier.
+	* cp-typeck.c (get_member_function_from_ptrfunc,
+	  build_binary_op_nodefault): Changed to use new accessor macros.
+	* cp-typeck.c (build_ptrmemfunc): Use new union instead.  Also, make
+	  sure TREE_CONSTANT is set for CONSTANT things.
+	* cp-decl.c (pfn_or_delta2_identifier): Added to cache
+	  get_identifier calls.
+	* cp-tree.h (pfn_or_delta2_identifier): Declare it.
+	* cp-decl.c (init_decl_processing): Setup pfn_or_delta2_identifier.
+
+Fri Oct  8 19:03:09 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* xcoffout.h (DBX_STATIC_BLOCK_START): For N_LCSYM, force change
+	to text section to avoid assembler bug.
+
+	* mips.md (movsi_unaligned): Change in comment "loads" to "stores".
+
+	* calls.c (emit_library_call_value): Compute struct_value_size,
+	and pass it to emit_call_1.
+
+Fri Oct 8  16:13:17 1993  H.J. Lu  (hjl@nynexst.com)
+
+	* config/i386/linux.h (STARTFILE_SPEC): Handle -p and -pg
+	outermost.  Also add support for cross-linking.
+
+Fri Oct  8 15:20:58 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* Makefile.in (cp-error.o, cp-errfn.o): Add dependency rules.
+
+Fri Oct  8 08:00:51 1993  Eric Youngdale  (eric@kafka)
+
+	* linux.h: Only include i386/gstabs.h if LINUX_ELF is not defined.
+
+	* linuxelf.h:  Copy a lot of stuff from the SVr4 configuration:
+	include "i386/i386.h", "i386/att.h" and "svr4.h".
+	(MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):  Undefine.
+	(ASM_FILE_START, RETURN_IN_MEMORY, ASM_OUTPUT_ADDR_DIFF_ELT)
+	(JUMP_TABLES_IN_TEXT_SECTION, DBX_REGISTER_NUMBER): Copy from sysv4.h.
+	(TARGET_VERSION): Define to print "i386 Linux/ELF".
+	(LINUX_ELF): Define, before we include "i386/linux.h"
+	(YES_UNDERSCORE): Undefine.
+
+Fri Oct  8 13:40:44 1993  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h, i386/osfelf.h (CPP_SPEC): If buliding for shared
+	libraries, define __SHARED__.
+
+	* i386/osfrose.h (FUNCTION_PROFILER): If half-pic, call mcount in a
+	half-pic fashion.
+	(FUNCTION_PROLOGUE): If half-pic call through _mcount_ptr in a
+	half-pic fashion.
+
+	* halfpic.c (half_pic_external): New function to declare a halfpic
+	identifier as always external.
+
+	* halfpic.h (half_pic_external): declare function.
+	(HALF_PIC_EXTERNAL): Declare accessor macro.
+
+Fri Oct  8 15:03:56 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Cygnus<->FSF C++ front-end merge.
+	Thu Oct  7 11:45:32 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* Makefile.in (CPLUS_OBJS): Change error.o to cp-errfn.o
+
+	* cp-*.c, cp-parse.y: Rename lang_error and its kin to cp_error
+	and the like to accomodate rms's belief structure.
+
+	* error.c: Moved to cp-errfn.c to accomodate rms's belief structure
+
+	Wed Oct  6 15:05:49 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-pt.c (mangle_class_name_for_template): Always use type_as_string
+	for printing out type parameters.  Nuke id and type variables.
+
+	* cp-error.c (dump_expr, INTEGER_CST): Support printing of character
+	literals and large integers
+	(dump_char): New function
+	(dump_type): Deal with ** and *& more prettily
+
+	* cp-pt.c (mangle_class_name_for_template): Strip out code for
+	printing template parameters, replace with call to expr_as_string.
+
+	* cp-method.c (build_overload_value): descend through
+	TREE_OPERAND on NOP_EXPRs as well as NON_LVALUE_EXPRs.
+
+	* cp-decl.c (poplevel_class): Add assertion that
+	class_binding_level is not NULL.
+
+	Tue Oct  5 11:11:25 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	Patches to support proper handling of system includes without munging:
+
+	* cp-lex.h: Declare in_c_header, a flag meaning 'implicitly wrap this
+	file in extern "C" { }'.
+
+	* cp-lex.c: Define in_c_header.
+	(check_newline): If in_c_header when changing files,
+	pop_lang_context().
+	(check_newline): If "4" seen on #line line, push_lang_context(C).
+
+	* cccp.c: Add a new field c_system_include_path to struct
+	file_name_list which indicates that the directory contains C-language
+	system includes.
+	(*various*): Set this flag correctly
+	(is_system_include): Return 2 if C-language system include.
+	(output_line_command): Output " 4" after " 3" for C-language system
+	include.
+
+	* cp-tree.h (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Coerce X to boolean
+	value
+
+	Mon Oct  4 17:03:48 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-tree.h: Add declaration for flag_external_templates
+
+	* cp-decl.c (start_decl): Don't declare flag_external_templates
+
+	* cp-pt.c: Ditto
+
+	* cp-parse.y (template_instantiate_once): Ditto
+
+	* cp-lex.c (reinit_parse_for_method): Ditto
+	(cons_up_default_function): Ditto
+	(extract_interface_info): Don't set interface_unknown
+	if (processing_template_defn && !flag_external_templates)
+
+	* cp-error.c (dump_type): Deal properly with pointers to member
+	functions.
+
+	* cp-pt.c (instantiate_class_template): If !flag_external_templates,
+	increment interface_unknown so that nested classes will be dealt with
+	properly.
+	(end_template_instantiation): If !flag_external_templates,
+	decrement interface_unknown.
+
+	* cp-lex.c (cons_up_default_function): Remove redundant check
+	for processing_template_defn && !flag_external_templates
+	(reinit_parse_for_method): Ditto
+
+	* cp-parse.y (template_instantiate_once):  Don't mess with
+	interface_unknown
+
+	Mon Oct  4 15:47:34 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (duplicate_decls): Move setting of TREE_CHAIN after
+	  all possible return 0;s as we only want to do this when we know
+	  that we are dealing with a duplicate.
+
+	* cp-decl.c (start_function): Remove my_friendly_abort 19.  Allows
+	  one to declare a built-in as extern inline.
+
+	Mon Oct  4 12:47:33 1993  John F Carr  (jfc@mit.edu)
+
+	* cp-lex.c (consume_string): Change variable `c' to int so return
+	value of getch can be assigned to it safely.  Compare return value
+	of getch to EOF, not -1.
+
+	Mon Oct  4 11:42:46 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* toplev.c (error and its kin): Use #defines for the argument
+	lists for ease of adding arguments, and of moving to vfprintf when
+	dje adds it.
+
+	* error.c (lang_thing and its children): Do the same thing.
+
+	* cp-typeck.c (build_binary_op): Do away with the kludge, now that
+	error accepts more arguments.
+
+	Sun Oct  3 16:34:39 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-error.c: Remove all traces of in_parmlist
+
+	Sun Oct  3 13:54:57 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-call.c (convert_harshness_ansi, convert_harshness_old): Handle
+	  pointer to function members properly.
+
+	Fri Oct  1 16:42:30 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-error.c (dump_function_decl, dump_function_name): Make static
+	  to match prototype.
+
+	Fri Oct  1 15:23:31 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-typeck.c (build_ptrmemfunc): Move some code into the virtual
+	  conditional part.  Fixes problem with core core dumping when the
+	  class that we want to build a pointer to member function for doesn't
+	  have any virtual functions.
+
+	Thu Sep 30 18:15:29 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-parse.y (id_scope): Print the name of the invalid scope.
+	(unary_expr): Add .scope new typespec '(' typespec ')' expansion
+	which just gives an error.
+
+	* cp-typeck.c (build_binary_op): Print more helpful message for
+	a missing member operator (print the desired type involved).
+	Very kludgey due to error()'s two-arg limit.
+
+	* error.c (lang_thing): Abort if more than NARGS (currently 2) are
+	passed, since this is likely to cause a seg fault elsewhere anyway.
+
+	Thu Sep 30 14:19:28 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* g++int.texi: Add error reporting section, make `makeinfo'able
+
+	* cp-type2.c (my_friendly_abort): Deal with recursive calls
+
+	Thu Sep 30 12:24:33 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl2.c (grok_array_decl): Don't pedwarn on reversing the array
+	and its index in `a[b]'.
+
+	* cp-typeck.c (build_conditional_expr): Make pointer type mismatch
+	in a conditional expression get a pedwarn.
+	(build_binary_op_nodefault): Make comparison between different
+	pointer types lacking a cast get a pedwarn.
+	(build_modify_expr): Don't strip the NOP_EXPRs, since we're using
+	the rhs in a non-lvalue context.
+	(convert_for_assignment): Allow conversion of 0 to a pointer, but
+	not a 0 that results from casting or folding.
+
+	Thu Sep 30 11:24:59 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-typeck.c (build_modify_expr): For memberwise assignment,
+	put nop_expr (reference_type (lhstype)) at the end of of the list so
+	that the expression has the correct type.
+
+	* error.c (lang_thing): Don't rely on STDC array initialization
+
+	Tue Sep 28 18:20:05 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-init.c (build_virtual_init): Use get_binfo and
+	  convert_pointer_to_real, to find the right basetype to convert to,
+	  instead of trying to use convert_pointer_to, as convert_pointer_to
+	  doesn't handle complex MI situations.  Cures a bogus "cannot
+	  convert a pointer of type `B' to a pointer of type `A'" when the
+	  compiler is initializing virtual table pointers.
+
+	Mon Sep 27 14:54:42 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-call.c (build_method_call): Use get_binfo and
+	  convert_pointer_to_real, to find the right basetype to convert to,
+	  instead of trying to use convert_pointer_to, as convert_pointer_to
+	  doesn't handle complex MI situations.  Cures a bogus "cannot
+	  convert a pointer of type `B' to a pointer of type `A'" when the
+	  compiler is setting up the `this' pointer.
+	* cp-cvt.c (convert_pointer_to): Just call convert_pointer_to_real
+	  to implement functionality.
+	* cp-cvt.c (convert_pointer_to_real): New routine.  Uses new
+	  functionality in get_base_distance to figure out which exact
+	  parent we want to convert to.
+	* cp-search.c (get_base_distance_recursive, get_base_distance):
+	  Modify to support searching for a specific PARENT given as a binfo
+	  from our hierarchy.
+	* cp-typee.h (convert_pointer_to_real): Declare new routine.
+
+	Mon Sep 27 13:02:51 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-type2.c (my_friendly_abort): Undo previous change
+
+	* cp-*.c: Use lang_error instead of error_with_decl,
+	error_with_aggr_type, etc.  Not complete; I only changed the easy
+	cases and a few of the more obscure ones.  Please convert calls
+	over when you're working on an appropriate section.
+
+	* cp-method.c: Strip out error reporting code
+
+	* Makefile.in (CPLUS_OBJS): Add error.o and cp-error.o
+
+	* cp-error.c: New file, contains call-back functions for C++.
+	The actual output code is an extensively overhauled version of the
+	code from cp-method.c.
+	Don't call my_friendly_* to avoid undesirable recursion.
+
+	* error.c: New file, provides call-back mechanism for language-
+	dependent error reporting.
+
+	Fri Sep 24 13:52:27 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-type2.c (my_friendly_abort): Don't die quietly if 
+	errorcount or sorrycount are positive, die loudly.
+
+Fri Oct  8 13:58:13 1993  Doug Evans  (dje@cygnus.com)
+
+	* loop.c (scan_loop): When skipping consecutive insns,
+	don't count notes.
+
+Fri Oct  8 10:41:07 1993  Chip Salzenberg  (chip@fin.uucp)
+
+	* c-common.c (check_function_format): Correct error in last
+	change.
+
+Fri Oct  8 08:10:03 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-parse.in (initdcl, notype_initdcl): Call push_momentary and
+	pop_momentary here.
+	(init): Not here.
+
+Fri Oct  8 06:35:07 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* dbxout.c (dbxout_type, case INTEGER_TYPE): Correctly check
+	for type smaller than `integer'.
+
+	* expr.c (expand_expr, case MAX_EXPR): Don't use TARGET directly
+	if it is a volatile MEM.
+
+	* i386/t-aix, i386/t-isc, i386/t-osfrose, i386/t-sco, mips/t-osfrose:
+	Remove LIMITS_H; hasn't been used for a while.
+
+	* configure: Add EXTRA_PASSES like we add EXTRA_HEADERS.
+	Correct EXTRA_HEADERS handling to accept multiple names.
+	(mips-*-*): Set extra_passes to mips-tfile and mips-tdump when
+	we use t-mips, t-bsd, t-svr[34], and t-ultrix.
+	* Makefile.in (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o):
+	New rules.
+	* mips-tfile.c: Don't define memory functions on Alpha.
+	(Ptrdiff_t): Always `long'.
+	(WORD_ALIGN): Make portable.
+	* mips/t-bsd, t-mips, t-svr3, t-svr4, t-ultrix: Remove
+	definition of EXTRA_PASSES and remove rules for mips-* files.
+
+	* dbxout.c (dbxout_parms): Don't confuse a parameter at an
+	offset of zero from AP or FP with one that has variable size.
+
+	* calls.c (emit_library_call): Fix typo in last change; should
+	use Pmode instead of SImode.
+
+Fri Oct  8 00:34:39 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (finish_decl): Error if block-scope static var
+	has incomplete type.
+
+	* expr.c (expand_expr, case VAR_DECL): If decl wasn't laid out,
+	lay it out now, and fix the rtl's mode.
+
+Thu Oct  7 12:30:10 1993  Chip Salzenberg  (chip@fin.uucp)
+
+	* c-decl.c (complete_array_type): Correctly set MAXINDEX to
+	one less than array size.
+
+Thu Oct  7 20:44:41 1993  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* c-typeck.c (build_binary_op): For *_DIV_EXPR, set shorten based
+	on orig_op0.
+
+Thu Oct  7 18:19:17 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* xm-mips.h (HAVE_VPRINTF): Correct typo, is VPRINTF not VFPRINTF.
+
+	* Makefile.in (LIB2FUNCS): Add _fixtfdi, _fixunstfdi, _floatditf.
+
+Thu Oct  7 14:58:02 1993  Michael Meissner  (meissner@osf.org)
+
+	* configure (i386-osf): ELF on OSF/1 does not need collect2.
+
+Thu Oct  7 17:38:25 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (main): New option -lang-c-c++-comments.
+
+Thu Oct  7 16:40:38 1993  Michael Meissner  (meissner@osf.org)
+
+	* config/i386/osfrose.h (OSF_PROFILE_BEFORE_PROLOGUE): New macro
+	to determine whether profiling goes before the function prologue
+	or after.  New style profiling goes before in order to save
+	getting and saving the function's callers address or have mcount
+	'know' there is a frame pointer.  Old style profiling using mcount
+	and some ELF PIC profiling goes after the prologue.
+	(FUNCTION_PROLOGUE): Redefine in order to get new style profiling
+	before the function prologue if desired.
+	(FUNCTION_PROFILER): Do not put a profile call if it already has
+	been put out in the prologue.  Change new style profiling to call
+	through _mcount_ptr instead of _real_mcount.  Propigate ROSE brain
+	damage regarding mcount being in the users name space to ELF.
+	(SUBTARGET_SWITCHES): Make -mmcount default again instead of
+	-mno-mmcount.
+
+	* i386.h (FINALIZE_PIC): Add macro to set the variable
+	current_function_uses_pic_offset_table if either -p or -a switches
+	are used.
+
+Thu Oct  7 17:07:57 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* rtl.c (byte_mode, word_mode): Move to emit-rtl.c.
+	(init_rtl): Move initialization of byte_mode and word_mode to
+	init_emit_once.
+	* emit_rtl.c (byte_mode, word_mode): Moved from rtl.c.
+	(init_emit_once): Moved in initialization of bytes_mode and
+	word_mode from init_rtl.
+
+Thu Oct  7 11:11:25 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cccp.c (struct file_name_list): Add new field c_system_include_path.
+	(*various*): Set this flag correctly
+	(is_system_include): Return 2 if C-language system include.
+	(output_line_command): Output " 4" after " 3" for C-language system
+	include.
+
+Thu Oct  7 14:45:20 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* Makefile.in (install-dir): Fix typo.
+	(install-common): Remove obsolete comment.
+	(install-common): Install native g++ only if not cross. 
+
+Thu Oct  7 11:27:45 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* calls.c (emit_library_call, emit_library_call_value):
+	Allocate a temp slot if arg must be passed by reference.
+
+	* gcc.c (read_specs): Fix call to bzero.
+
+Thu Oct  7 08:53:57 1993  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* alpha.md: Clean up usage of commutative declarator `%'.
+
+Thu Oct  7 08:14:46 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* i860/xm-fx2800.h (HAVE_VPRINTF): Fix typo; was HAVE_VFPRINTF.
+
+	* xm-alpha.h: Always declare malloc, realloc, etc, to be void *.
+
+	* combine.c (force_to_mode): Sign-extend constant being truncated.
+
+Wed Oct  6 18:53:43 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* bi-lexer.c (xmalloc, xrealloc): Cast the result of malloc, realloc.
+
+Wed Oct  6 15:30:39 1993  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h (FUNCTION_PROFILER): Define to pass the function
+	address, its caller, and the unique label address through the
+	_real_mcount pointer, unless -mmcount is used, in which case use
+	the old calling sequence.
+	(SUBTARGET_SWITCHES): Add -mmcount, -mno-mcount support.
+
+Wed Oct  6 15:29:40 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.c (output_function_prologue): Pass on information about the
+	number of callee saved general and floating point registers which
+	are saved by the current function's prologue.
+	(hppa_expand_prologue): Keep track of the number of callee
+	register saves done for general and floating point registers.
+
+Wed Oct  6 13:50:03 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* cexp.y (MAX_CHAR_TYPE_SIZE, MAX_INT_TYPE_SIZE,
+	MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
+	(yylex): Use them instead of the non-MAX versions, to avoid
+	dependencies on target_flags.
+
+Wed Oct  6 13:47:13 1993  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* combine.c (try_combine): New variable i3_subst_into_i2.
+	Set it for special case of substituting i3 into i2.  Use it near
+	end to detect when special case succeeded.  Move i2notes to
+	i3notes for this special case.
+	(distribute_notes, REG_UNUSED case): Ignore all REG_UNUSED notes
+	except those from I3.
+
+Wed Oct  6 13:14:13 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_c_cast): When making a CONSTRUCTOR, provide
+	the dummy first operand.
+
+	* real.c (real_value_truncate): Correct etrunci argument
+	in case SImode.
+
+Wed Oct  6 06:55:05 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* final.c (asm_fprintf): Add cases for 'w' and 'l'.
+
+	* Makefile.in (bi-opcode.o): Includes hconfig.h.
+	* bi-lexer.c: Remove declarations of malloc and realloc.
+	* bi-opcode.c: Include hconfig.h.
+	* bi-parser.y: Remove declaration of malloc.
+
+	* regclass.c (record_reg_classes): Check if operands are the same
+	by seeing if they are the same register.
+
+	* cse.c (record_jump_cond): Rehash OP1 if OP0's insert_regs returns
+	nonzero.
+
+	* calls.c (expand_call): Add yet another assignment to MEM_IN_STRUCT_P.
+
+Wed Oct  6 00:08:28 1993  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* sparc.c (uns_small_int, uns_arith_operand): New functions.
+	* sparc.md (umulsidi3): Use uns_arith_operand not arith_operand.
+	(const_umulsidi3): Use uns_small_int not small_int.
+
+	* sparc.h (SELECT_CC_MODE): Add support for ASHIFT.
+	* sparc.md (ashlsi3+1, ashlsi3+2): New patterns to replace shift
+	and compare with addcc.
+
+Tue Oct  5 16:25:32 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* sched.c (sched_analyze_2): Make volatile asms depend on all
+	pseudo registers.
+
+	* mips.c (mips_expand_prologue): Handle structure return values as
+	the first argument if necessary.
+
+	* mips.h (CLASS_MAX_NREGS): For DFmode and !TARGET_FLOAT64 case,
+	return 2 not 4.
+	(CLASS_UNITS): Take size parameter instead of num (words).
+
+	* c-typeck.c (output_init_element): When try to copy FIELD if it
+	is an interger constant, first check to make sure it is nonzero.
+
+	* reorg.c (fill_simple_delay_slots): When take insn from a
+	following unconditional branch target, if new_label is zero, must
+	set it to the result of find_end_label ().
+
+	* iris3.h (INITIALIZE_TRAMPOLINE, TRANSFER_FROM_TRAMPOLINE):
+	Delete.
+	* mips.h (INITIALIZE_TRAMPOLINE): Delete #ifndef/#endif.  Change
+	function name from __enable_execute_stack to __gcc_flush_cache.
+	(TRANSFER_FROM_TRAMPOLINE): Likewise.  Delete code calling
+	mprotect.  Uncomment code calling cacheflush.
+
+Tue Oct  5 16:11:53 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* toplev.c (error and its kin): Use #defines for the argument
+	lists for ease of adding arguments and add one arg.
+
+Tue Oct  5 16:05:11 1993  Tor Egge  (tegge@pvv.unit.no)
+
+	* cccp.c (rescan): Don't expand an identifier after a '#'.
+
+Tue Oct  5 15:15:52 1993   Chip Salzenberg  (chip@fin.uucp)
+
+	Move format warning code to c-common.c for use with C++.
+	* c-tree.h (init_function_format_info, record_function_format,
+	check_function_format): Declare.
+	* c-common.c: Include <ctype.h>; avoid home-grown ISDIGIT.
+	(decl_attributes): Call record_function_format with DECL_NAME
+	and also DECL_ASSEMBLER_NAME.
+	(struct format_char_info): Moved here from c-typeck.c.
+	(print_char_table): Likewise; renamed from print_table.
+	(scan_char_table): Likewise; renamed from scan_table.
+	(struct function_format_info): Likewise; add assembler_name.
+	(function_format_list): Make list, not array.
+	(init_function_format_info): Likewise; renamed from
+	init_format_info_table.
+	(record_function_format): Likewise; renamed from
+	record_format_info; record assembler_name.
+	(check_format_info): Likewise; renamed from check_format.
+	(check_function_format): New interface that does not require
+	knowledge of struct function_format_info.
+	* c-decl.c (init_decl_processing): Call init_function_format_info.
+	* c-typeck.c (struct format_char_info, print_table, scan_table,
+	struct function_info, function_info_entries, function_info_table,
+	record_format_info, init_format_info_table, check_format): Moved
+	to c-common.c.
+	(build_function_call): Call check_function_format.
+
+Tue Oct  5 14:08:18 1993  Wolfgang Stukenbrock (wgstuken@informatik.uni-erlangen.de)
+
+	* gcc.c (choose_temp_base): Correct size allocated for temp_filename.
+
+Tue Oct  5 06:34:34 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.c (contains_placeholder_p): Return 0 for CONSTRUCTOR.
+	(substitute_in_expr): Don't allow CONSTRUCTOR.
+
+	* tree.c (make_node, case 'd'): Refine in which obstack
+	PARM_DECLs are allocated.
+
+	* calls.c (expand_call): Properly test if we need to promote
+	operand; use convert_modes instead of convert_to_mode.
+	* expr.c (convert_modes): Properly handle extending constants
+	since we might be changing signedness.
+
+	* gcc.c (read_specs): Make a null entry at end of `compilers'
+	when reading new entry from file.
+
+	* tree.c (contains_placeholder): Return 0 for WITH_RECORD_EXPR.
+
+	* bi-arity.c, bi-lexer.c, bi-opname.c, bi-parser.y: Include hconfig.h.
+	* Makefile.in (bi-arity.o, bi-lexer.o, bi-opname.o, bi-parser.o):
+	Likewise.
+
+	* bc-emit.c (dconst[012], dconstm1): Remove redundant definition.
+
+Tue Oct  5 06:24:43 1993  Lisa Repka  (lisa@MicroUnity.com)
+
+	* varasm.c (decode_rtx_const, case CONST_DOUBLE): Only use mode
+	of X if it is not VOIDmode.
+
+Tue Oct  5 00:45:30 1993  James Van Artsdalen  (james@bigtex.cactus.org)
+
+	* i386/i386.c (output_to_reg): Handle XFmode write to MEM by
+	reading back value after write if source doesn't die.
+	* i386/i386.md (pushxf,movxf,extenddfxf2,extendsfxf2): Likewise.
+
+	* i386/i386.md (movxf,extenddfxf2,extendsfxf2): Don't emit fld
+	before calling output_to_reg: output_to_reg does that now.
+
+	* i386/i386.h (FIXED_REGISTERS): Don't fix hard reg st7 if XFmode
+	is enabled.
+
+	* reg-stack.c (move_for_stack_reg): If the 387 regstack is not
+	full when doing an XFmode write from 387 to MEM, copy the source
+	reg and write the copy.
+
+Mon Oct  4 18:40:51 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* regclass.c (record_reg_classes): There is no alt_cost
+	for a pair of matching args if they are the same pseudo reg.
+
+	* varasm.c (bc_output_ascii): New function.
+	(assemble_string): Use it.
+	(assemble_static_space, assemble_variable): Put braces around uses
+	of BC_OUTPUT_COMMON and BC_OUTPUT_LOCAL.
+
+Mon Oct  4 18:03:04 1993  Stephen L Moshier  (moshier@world.std.com)
+
+	* expr.c (bc_init_mode_to_opcode_maps, bc_expand_expr): Cast enum
+	array indices to int.
+	(bc_load_memory, bc_store_memory): Likewise.
+	(bc_runtime_type_code): Cast enum logical operand to int.
+	* bc-emit.c (bc_emit_bytecode): Cast enum array indices to int.
+	* bc-optab.c (deduce_conversion, emit_typecode_conversion): Likewise.
+	(bc_init_mode_to_code_map, preferred_typecode): Likewise.
+	(bc_expand_binary_operation, bc_expand_unary_operation): Likewise.
+	(bc_expand_increment): Likewise.
+	* bc-typecd.h: Cast enum arithmetic and logical operands to int.
+
+Mon Oct  4 05:52:21 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* a29k.c (incoming_regs): Only use 16 registers for parameter
+	passing.
+
+	* tree.c (build_string): Remove previous change and comment why
+	string text has to be in saveable_obstack.
+	* varasm.c (output_constant_def): Remove last change; no longer needed.
+
+Sun Oct  3 18:51:19 1993  James Van Artsdalen  (james@bigtex.cactus.org)
+
+	* i386/i386.c (output_op_from_reg):  Handle 3-word XFmode values.
+	(output_to_reg): Likewise.
+	(output_move_double): Handle XFmode operands.
+	(output_move_const_single): Use REAL_VALUE_TO_TARGET_SINGLE.
+	(print_operand): Add letter `T', size `12'.  Use REAL_VALUE
+	macros to convert floating point operands.
+	(convert_387_op):  Add XFmode to case FLOAT_EXTEND.
+
+	* i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Define as 96.
+	(FIXED_REGISTERS): If XFmode enabled, hard reg st7 is fixed.
+	(ASM_OUTPUT_DOUBLE): Use REAL_VALUE_... macros.
+	(ASM_OUTPUT_FLOAT): Likewise.
+	(ASM_OUTPUT_LONG_DOUBLE): New macro.
+	(PRINT_REG):  Add size case 12.
+	(DEBUG_PRINT_REG):  Likewise.
+
+	* i386/i386.md: (tstxf_cc, tstxf, cmpxf, cmpxf_cc, cmpxf_ccfpeq,
+	swapxf, movxf, extenddfxf2, extendsfxf2, truncxfsf2, truncxfdf2,
+	fixuns_truncxfsi2, fix_truncxfdi2, fix_truncxfsi2, floatsixf2,
+	floatdixf2, addxf3, subxf3, mulxf3, divxf3, negxf2, absxf2,
+	sqrtxf2): New patterns.
+
+	* i386/next.h,i386/osfrose.h,i386/sysv4.h
+	(ASM_OUTPUT_DOUBLE,ASM_OUTPUT_FLOAT): Use REAL_VALUE_ macros.
+	(ASM_OUTPUT_LONG_DOUBLE): New macro.
+
+	* i386/bsd.h,i386/sco4.h (ASM_OUTPUT_DOUBLE): Deleted,
+	use default version.
+
+	* i386/next.h,i386/sco.h (VALUE_REGNO): Add case XFmode.
+
+Sun Oct  3 16:35:05 1993  Michael Meissner  (meissner@wombat.gnu.ai.mit.edu)
+
+	* collect2.c (read_file): Fix typo in prototype.
+
+Sun Oct  3 18:32:46 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (bytecode.realclean): Don't delete bi-lexer.c.
+
+Sun Oct  3 19:45:02 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* gcc.c (default_compilers): Add rules for Ada.
+	* toplev.c (lang_options): Add temporary parameter "gnat".
+
+	* tree.c (staticp): DECL_EXTERNAL is not defined for CONSTRUCTOR.
+
+	* tree.def (PLACEHOLDER_EXPR, WITH_RECORD_EXPR): New tree codes.
+	* tree.c (save_expr): Don't evaluate something containing a 
+	PLACEHOLDER_EXPR.
+	(contains_placeholder_p, substitute_in_{expr,type}): New functions.
+	* tree.h: Add declarations for new functions.
+	* calls.c (expand_call): Pass objects who size depends on the
+	contents of the object by invisible reference.
+	* function.c (assign_parms): Likewise.
+	* explow.c (expr_size): If the size contains a PLACEHOLDER_EXPR,
+	surround it with a WITH_RECORD_EXPR.
+	* expr.c (store_expr): Use expr_size value, not size_int.
+	(store_constructor): Handle case of variable position and allow
+	it to contain a PLACEHOLDER_EXPR.
+	(get_inner_reference): Make a WITH_RECORD_EXPR if required.
+	(expand_expr, case PLACEHOLDER_EXPR, WITH_RECORD_EXPR): New cases.
+	(expand_expr, case ARRAY_REF): Make WITH_RECORD_EXPR expressions
+	when needed.
+
+	* calls.c (expand_call): Set MEM_IN_STRUCT_P in stack slot if
+	appropriate.
+
+	* varasm.c (output_constant_def): Copy string as well as string
+	node when deferring output of constants.
+
+	* configure (i370-*): Renamed tm-mvs.h to mvs.h.
+	* config/i370/mvs.h: Renamed from tm-mvs.h.
+
+Sun Oct  3 12:50:57 1993  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* arm.h (function definitions): Add new functions definitions.
+	(arm_condition_codes): make this externally visible.
+	(STARTFILE_SPEC): Move to riscix.h and riscix1-1.h.
+	(CPP_PREDEFINES): Move old defn to riscix.h and riscix1-1.h, add
+	generaic default definition.
+	(CPP_SPEC): Define for generic implementation, pass cpu variant 
+	defn to pre-processor.
+	(TARGET_VERSION): Indicate this is generic variant.
+	(TARGET_6): New macro, set when compiling for arm6 in 32bit mode.
+	(ARM_EXTRA_TARGET_SWITCHES): New macro, hook for os dependent files
+	to make additions to TARGET_SWITCHES. Default to null.
+	(processor_type): new enum type defining processor variant for
+	attributes.
+	(arm_cpu_attr): Macro to get at cpu type from attributes.
+	(TARGET_WHEN_DEBUGGING): remove non-generic definitions
+	(OVERRIDE_OPTIONS): Set processor type for attributes.
+	(OPTIMIZE_OPTIONS): Set flag_force_mem.
+	(PROMOTE_MODE): Promote byte constants unsigned.
+	(ENABLE_XF_PATTERNS): Define, do not enable XFmode insns by default
+	-- it tends to crash riscix.
+	(REAL_ARITHMETIC): Define.
+	(CONSTANT_ALIGNMENT): Align string constants so that we can access
+	them faster.
+	(TARGET_FLOAT_FORMAT): Is IEEE_FLOAT_FORMAT.
+	(FIRST_PSEUDO_REGISTER): Increase to support fake registers.
+	(FIXED_REGISTERS): Describe behaviours of fake regs.
+	(CALL_USED_REGISTERS): Likewise.
+	(HARD_REGNO_NREGS): Deal with fake frame and argument registers.
+	(HARD_REGNO_MODE_OK): Likewise.
+	(FRAME_POINTER_REGNUM): Make this a fake register)
+	(HARD_FRAME_POINTER_REGNUM): Define. set to reg 11 (fp).
+	(FRAME_POINTER_REQUIRED): It is if TARGET_APCS.
+	(ARG_POINTER_REGNUM): Set to new fake register.
+	(CC_REGNUM): Define, set to fake register.
+	(REG_ALLOC_ORDER): Adjust to get better allocation in small functions.
+	Add fake registers.
+	(REG_CLASS_CONTENTS): Add new fakes.
+	(REGNO_REG_CLASS): Likewise.
+	(CONST_OK_FOR_LETTER_P): Add recognition for negated and inverted 
+	constant integers.
+	(EXTRA_CONSTRAINT): Add 'Q' to recognize MEM (REG). Add 'S' for
+	symbols in the text segment.
+	(CONST_DOUBLE_OK_FOR_LETTER_P): Add 'H' for negated fp constants.
+	(SECONDARY_OUTPUT_RELOAD_CLASS): Define. Needed to store DFmode held
+	in SImode regs.
+	(REGISTER_MOVE_COST): Make this more expensive than memory for
+	float<->int moves.
+	(USE_RETURN_INSN): Define, call function.
+	(ELIMINABLE_REGS): Define to eliminate fake regs.
+	(CAN_ELIMINATE): Likewise.
+	(INITIAL_ELIMINATION_OFFSET): Likewise.
+	(INITIAL_FRAME_POINTER_OFFSET): Delete.
+	(REGNO_OK_FOR_BASE_P): Add fake regs.
+	(MAX_REGS_PER_ADDRESS): Is only 2; shifting by reg not allowed in addr.
+	(CONSTANT_ADDRESS_P): Accept addresses with the symbol_ref flag set.
+	(LEGITIMATE_CONSTANT): Accept negated floats; also constant addresses.
+	(ENCODE_SECTION_INFO): Mark strings that will go in the text segment
+	with the symbol_ref flag.
+	(REG_OK_FOR_BASE_P [!REG_OK_STRICT]): Add new fakes.
+	(REG_OK_FOR_PRE_POST_P [!REG_OK_STRICT]): Likewise.
+	(REG_OK_FOR_PRE_POST_P [REG_OK_STRICT]): Likewise.
+	(GO_IF_LEGITIMATE_INDEX): constant FLOAT indicees must be word
+	aligned; be more restrictive about multi-reg ints; allow all legal
+	shift operations; check boundary conditions more carefully.
+	(DEFAULT_SIGNED_CHAR): Remove os dependent alternatives.
+	(LOADS_ZERO_EXTEND): Define; only QImode loads do.
+	(HAVE_VPRINTF): Move to xm-arm.h
+	(SHIFT_COUNT_TRUNCATED): Not true -- Delete.
+	(CONST_COSTS): Define; give the cost of constants.
+	(RTX_COSTS): Define; give the cost of rtl.
+	(MEMORY_MOVE_COST): Is expensive.
+	(BRANCH_COST): Set high to get conditional instructions.
+	(ADDRESS_COST): Are all the same.
+	(NOTICE_UPDATE_CC): Delete.
+	(EXTRA_CC_MODES): Add a no overflow mode and floating point modes.
+	(EXTRA_CC_NAMES): Likewise.
+	(SELECT_CC_MODE): Return the appropriate mode.
+	(STORE_FLAG_VALUE): Define.
+	(PREDICATE_CODES): Define, show what they are.
+	(ARM_OS_NAME): Supply generic version.
+	(ASM_FILE_START): Print appropriate OS name.
+	(REGISTER_NAMES): Add fakes.
+	(DBX_OUTPUT_MAIN_SOURCE_FILENAME): set desc field to compiler version
+	number expected by dbx (RISCIX hack).
+	(ASM_OUTPUT_INTERNAL_LABEL): Don't reset arm_ccfsm_state if label isn't
+	a code ('L') label.
+	(ASM_OUTPUT_LONG_DOUBLE): Define for XFmode.
+	(ASM_OUTPUT_DOUBLE): Use REAL_ARITMETIC routines.
+	(ASM_OUTPUT_FLOAT): Likewise.
+	(ASM_OUTPUT_OPCODE): Change of arm_ccfsm_state is now handled by insns
+	that need to change it.
+	(PRINT_OPERAND): %d is replaced by appropriate condition characters,
+	%D by the inverse of those given. CONST_DOUBLEs use REAL_ARITHMETIC
+	functions.
+	(PRINT_OPERAND_ADDRESS): Support all the shift types.
+	(INIT_CUMULATIVE_ARGS): Add missing bracket.
+
+	* riscix.h: New file -- OS dependent defintitions for riscix 1.2 and
+	above.
+
+	* riscix1-1.h: New file -- OS dependent definitions for riscix before
+	version 1.2
+
+	* rix-gas.h: New file -- riscix 1.2 and above, but with an assembler
+	which supports stabs.
+
+	* arm.c (arm_compare_op0, arm_compare_op1, arm_compare_fp): New
+	variables.
+	(arm_cpu): New variable.
+	(lr_save_eliminated): New variable.
+	(arm_condition_codes): delete definition.
+	(return_used_this_function): New variable.
+	(use_return_insn): New function.
+	(const_ok_for_arm): Use HOST_WIDE_INT; rewrite to work if
+	HOST_WIDE_INT > 32 bits.
+	(fpa_consts_inited, strings_fpa): New variables.
+	(init_fpa_table): New function, initialize above.
+	(const_double_rtx_ok_for_fpu): Rewrite using fpa_consts_inited and
+	REAL_ARITHMETIC functions.
+	(neg_const_double_rtx_ok_for_fpu): New function.
+	(s_register_operand): New function, as register_operand, but don't
+	accept SUBREG (MEM).
+	(reload_memory_operand): New function.
+	(arm_rhs_operand): Use s_register_operand.
+	(arm_rhsm_operand): New function.
+	(arm_add_operand): New function.
+	(arm_not_operand): New function.
+	(fpu_rhs_operand): Use s_register_operand.
+	(fpu_add_operand): New function.
+	(di_operand): Use s_register_operand.
+	(di_operand, case MEM): address must be offsettable.
+	(index_operand): Use s_register_operand.
+	(const_shift_operand): New function.
+	(shift_operator): Also accept MULT by power of two.
+	(equality_operator): New function.
+	(minmax_operator): New function.
+	(cc_register): New function.
+	(minmax_code): New function.
+	(adjacent_mem_locations): New function.
+	(load_multiple_operation): New function.
+	(store_multiple_operation): New function.
+	(arm_gen_load_multiple): New function.
+	(arm_gen_store_multiple): New function.
+	(gen_compare_reg): New function.
+	(arm_backwards_branch): New function.
+	(short_branch): New function.
+	(arm_insn_not_targeted): New function.
+	(fp_immediate_constant): New function.
+	(eliminate_lr2ip): New function.
+	(output_call_mem): New function.
+	(output_mov_long_double_fpu_from_arm): New function.
+	(output_mov_long_double_arm_from_fpu): New function.
+	(output_mov_long_double_arm_from_arm): New function.
+	(output_move_double): output constants using output_move_immediate;
+	sign_extend CONST_INTs; handle PRE/POST INCs.
+	(shift_instr): Handle MULT.
+	(output_shift_compare): New function.
+	(pattern_really_clobbers_lr): New function.
+	(function_really_clobbers_lr): New function.
+	(output_return_instruction): New function.
+	(output_prologue): Determine whether tail calling is possible,
+	compensate for this when saving registers. Re-initialize
+	return_used_this_function; use HARD_FRAME_POINTER_REGNUM, when
+	saving floating point regs.
+	(output_epilogue): Epilogue isn't needed if return_used_this_function;
+	use HARD_FRAME_POINTER_REGNUM when restoring floating point regs
+	and there is a stack frame; Arm 6 requires different return
+	instruction.
+	(output_load_symbol): New function.
+	(final_prescan_insn): Add support for RETURN patterns; can also
+	conditionalize and target a RETURN; use attributes to determine
+	whether condition codes are set or clobbered; add new case CALL_INSN
+	to switch, fail if Arm 6; support a jump inside a parallel; call
+	recog () before returning to recover from using attributes on other 
+	insns.
+	
+	* arm.md (type): New attribute for scheduling.
+	(cpu): New attribute for cpu type for use in conds attribute.
+	(conds): New attribute to describe actions on condition codes, set in
+	insns.
+	(length): New attribute, set in insns.
+	(write_conflict): New attribute describing conflicts with the write
+	buffer.
+	(fpa): New function unit for floating point co-processor.
+	(write_buf): New function unit for Arm 6 write buffer.
+	Most patterns: use s_register_operand instead of register_operand.
+	Most patterns: Don't use general operand and then expect reload to
+	do the work.
+	(adddi3): op0 can be the same as ops1 or 2; clobbers condition codes.
+	New unnamed patterns to add an SImode operand to a DImode op.
+	(addsi3): accept constants that can be catered for using sub.
+	New unnamed patterns that set conditions on add.
+	(incscc): new pattern, conditional increment.
+	New split to add some numbers in two insns.
+	(addsf3): Use REAL_ARITHMETIC; support -ve immediates.
+	(adddf3): Likewise.
+	(FLOAT_EXTEND and ADD): New unnamed patterns.
+	(addxf3): New pattern.
+	(subdi3): Allow input and output operands to overlap exactly.
+	(SUB DImode and SImode): New unnamed patterns.
+	(subsi3): Don't accept a constant as last operand, it will never be
+	matched.
+	(SUB and set CC) New unnamed patterns.
+	(decscc): new pattern, conditional decrment.
+	(subdf3): Fix bad case alternative.
+	(FLOAT_EXTEND and SUB): New unnamed patterns.
+	(subxf3): New pattern.
+	(mulsi3): Allow op2 to be the same as op0
+	(MULT and set CC): New unnamed patterns.
+	(MULT and ADD): Ops 2 and 3 can match op 0.
+	(MULT, ADD and set CC): New unnamed patterns.
+	(mulsf3): use fmls for faster multiply.
+	(FLOAT_EXTEND and MULT): New unnamed patterns.
+	(mulxf3): New pattern.
+	(divsf3): use dvfs and rdfs for faster divide.
+	(FLOAT_EXTEND and DIV): New unnamed patterns.
+	(divxf3): New pattern.
+	(FLOAT_EXTEND and MOD): New unnamed patterns.
+	(modxf3): New pattern.
+	(anddi3): op 0 can be the same as ops1 or 2.
+	(*_EXTEND and AND): New unnamed patterns
+	(andsi3): Also accept constants that can be handled with bic
+	instruction.
+	(AND and set CC): New unnamed patterns.
+	(andcbsi3): Delete, this can't be generated any more.
+	(NOT then AND): New unnamed patterns.
+	(NOT then AND and set CC): Likewise.
+	(iordi3): Ops 1 and 2 can match op 0.
+	(*_EXTEND and IOR): New unnamed patterns.
+	(iorsi3): Only accept a valid rhs operand for op 2.
+	(IOR and set CC): New unnamed patterns.
+	(xordi3): New pattern.
+	(*_EXTEND and XOR): New unnamed patterns.
+	(xorsi3): Only accept a valid rhs operand for op 2.
+	(XOR and set CC): New unnamed patterns.
+	(split pattern): Complex pattern with NOT, AND, and IOR, can
+	sometimes produce better code if reordered.
+	(AND (IOR () NOT ())): Special pattern to recognize spilt above.
+	([su]{min,max}si3): New patterns.
+	(set memory from MIN/MAX operation): New pattern.
+	(Arithmetic on MIN/MAX operation): New pattern.
+	(ashlsi3, ashrsi3, lshrsi3, rotrsi3): Only accept a valid rsh for op2.
+	(unnamed LSHIFT pattern): likewise.
+	(SHIFT and set CC): New unnamed patterns.
+	(SHIFT and NOT): New unnamed pattern.
+	(SHIFT, NOT and set CC): New unnamed patterns.
+	(negdi2): operand1 can be the same as op 0.
+	(FLOAT_EXTEND and NEG): New unsigned pattern.
+	(negxf2): New pattern.
+	(abssi2): New pattern.
+	(ABS and NEG): New unnamed pattern.
+	(FLOAT_EXTEND and ABS): New unnamed pattern.
+	(absxf2): New pattern.
+	(FLOAT_EXTEND and SQRT): New unnamed pattern.
+	(sqrtxf2): New pattern.
+	({sin,cos}{sf,df,xf}2): New patterns.
+	(FLOAT_EXTEND and SIN/COS): New unnamed patterns.
+	(one_cmpldi2): New pattern.
+	(NOT and set CC): New unnamed patterns.
+	(floatsixf2, fix_truncsfsi2, fix_truncdfsi2, fix_truncxfsi2): New
+	patterns.
+	(truncxfsf2, truncxfdf2): New patterns.
+	(zero_extendsidi2, zero_extendqidi2, extendsidi2): New patterns.
+	(ZERO_EXTEND and set CC): New patterns.
+	(extend{sf,df}xf2): New patterns.
+	(movdi): Constrains must accept PRE/POST INC/DEC.
+	(movsi): make an expand that splits up integers and unsupported
+	moves.
+	(unnamed pattern to match movsi): New, don't allow things to
+	be moved back together again.
+	(REG-REG copy and set CC): New unnamed pattern.
+	(restorehi): use plus_constant in expansion code, not PLUS in RTL part.
+	(storehi, storeinthi): likewise.
+	(movhi): Break up impossible moves.
+	(pattern to match movhi): Don't allow impossible moves to be put
+	back together.
+	(movqi): Break up impossible moves.
+	(pattern to match movqi): Don't allow impossible moves to be put
+	back together; convert negative constants into mvn instruction.
+	(movsf): Use REAL_ARITHMETIC for constants; add alternatives for
+	moving GENERAL_REGS to and from memory.
+	(movdf): Make this an expand; split out impossible moves.
+	(reload_outdf): New pattern.
+	(pattern to match movdf): Don't allow impossible moves to be put back
+	together; add alternatives for moving GENERAL_REGS to and from memory;
+	rearrange and weight to get optimal register allocation.
+	(movxf): New pattern.
+	(load_multiple): New expand pattern.
+	(pattern to load multiple, pattern to load multiple with write-back):
+	New unnamed patterns.
+	(store_multiple): New expand pattern.
+	(pattern to store multiple, pattern to store multiple with write-back):
+	New unnamed patterns.
+	(movstrsi): Expand short moves as a series of load/store multiples with
+	write-back.
+	(cmp*): Make these expands; just set some state variables.
+	(CC = COMPARE op, op): New unnamed patterns.
+	(CC = COMPARE op, NEG op): New unnamed pattern.
+	(CC = COMPARE op, SHIFT op): New unnamed pattern.
+	(FLOAT_EXTEND then COMPARE): New unnamed patterns.
+	(CC = CC): New unnamed (dummy) pattern to allow cse to combine repeated
+	compares.
+	(b{eq,ne,le,lt,ge,gt,geu,gtu,leu,ltu}): Make these expand patterns,
+	use gen_compare_reg().
+	(pattern to match branches, pattern to match inverted brances): New
+	unnamed patterns.
+	(s{eq,ne,le,lt,ge,gt,geu,gtu,leu,ltu}): New expands.
+	(pattern to match store_flag operations): New unnamed pattern.
+	(pattern to match NOT store_flag, pattern to match NEG store_flag):
+	New unnamed patterns.
+	(jump): handle arm_ccfsm_state explicitly.
+	(CALL (MEM)): New unnamed patterns.
+	(return): New pattern.
+	(conditional RETURN): New unnamed patterns;
+	(table_jump (MEM)): New unnamed pattern.
+	(indirect_jump (MEM)): New unnamed pattern.
+	Replace shift-arithmetic patterns with new versions that catche all
+	cases.
+	(Old peephole patterns (commented out)): remove.
+	(shift-arithmetic and set CC): New unnamed patterns.
+	(reload patterns for all shift-arithmetic patterns): New patterns.
+	Add many new patterns to merge store_flag patterns, arithmetic and
+	shifting.
+	New patterns to match conditional comparisons.
+	(movcond): New pattern.
+	(arith (MEM, MEM+4)): New unnamed pattern to spot load multiple 
+	possibility.
+	(patterns to match extended pre-increment): New unnamed patterns.
+	(peepholes to match extended post-increment): New.
+	(peephole to match move and set conds): Needed because combine misses
+	this one.
+	(peepholes to match load/store multiples): New.
+	(CALL, RETURN): New peephole.
+	(CALL, JUMP): New peephole.
+	(save_stack_nonlocal, restore_stack_nonlocal): New expands for
+	non-local gotos.
+	special split to break up some conditional arithmetic sequences 
+	before scheduling.
+
+	*configure (arm-*-riscix1.[01]*, arm-*-riscix*): New configurations.
+	*config.sub: Recognize operating system "riscix*"; recognize acorn as
+	vendor.
+
+Sat Oct  2 17:24:44 1993  James Van Artsdalen  (james@bigtex.cactus.org)
+
+	* i386.md (addhi3): Use byte opcodes when the low byte of a word
+	is known to be zero.
+
+Sat Oct  2 14:11:06 1993  John F Carr  (jfc@Athena.mit.edu)
+
+	* combine.c (can_combine_p):  Allow an insn with a REG_EQUIV note
+	that reads memory to be moved past an insn that writes memory.
+
+Sat Oct  2 14:04:03 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* regclass.c (record_reg_classes): Skip to next alternative
+	when we skip normal cost computation.
+
+	* collect2.c: Add prototypes to static declarations.
+	(PROTO): New macro.
+	(dup2, putenv): Functions return integers; add type and returns.
+
+	* varasm.c (make_decl_rtl): Set TREE_SIDE_EFFECTS on global if
+	-fvolatile-global.
+
+	* tree.c (build_string): Make lifetime of string the same as 
+	tree node.
+
+Sat Oct  2 04:55:44 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* a29k/a29k.h, a29k/unix.h, alpha/alpha.h, arm/arm.h, clipper/clix.h,
+	convex/convex.h, elxsi/elxsi.h, fx80/fx80.h, gmicro/gmicro.h,
+	h8300/h8300.h, i370/tm-mvs.h, i386/386bsd.h, i386/aix386ng.h,
+	i386/gas.h, i386/go32.h, i386/linux.h, i386/lynx.h, i386/mach.h,
+	i386/next.h, i386/osfelf.h, i386/osfrose.h, i386/sco.h, i386/sco4.h,
+	i386/sco4dbx.h, i386/scodbx.h, i386/sequent.h, i386/sun.h,
+	i386/sysv3.h, i386/sysv4.h, i860/fx2800.h, i860/i860.h, i860/mach.h,
+	i860/sysv3.h, i860/sysv4.h, i960/i960.h, m68k/3b1.h, m68k/3b1g.h,
+	m68k/altos3068.h, m68k/apollo68.h, m68k/crds.h, m68k/ctix.h,
+	m68k/dpx2.h, m68k/hp2bsd.h, m68k/hp320.h, m68k/hp3bsd.h,
+	m68k/hp3bsd44.h, m68k/isi.h, m68k/lynx.h, m68k/m68kv4.h,
+	m68k/mot3300.h, m68k/news.h, m68k/next.h, m68k/pbb.h, m68k/plexus.h,
+	m68k/sun2.h, m68k/sun3.h, m68k/sun3mach.h, m68k/tower-as.h,
+	m68k/tower.h, m88k/dgux.h, m88k/luna.h, m88k/m88k.h, m88k/sysv3.h,
+	m88k/sysv4.h, mips/bsd-4.h, mips/bsd-5.h, mips/dec-osf1.h,
+	mips/iris3.h, mips/mips.h, mips/news4.h, mips/news5.h,
+	mips/nws3250v4.h, mips/osfrose.h, mips/svr3-4.h, mips/svr3-5.h,
+	mips/svr4-4.h, mips/svr4-5.h, mips/ultrix.h, ns32k/encore.h,
+	ns32k/merlin.h, ns32k/ns32k.h, ns32k/pc532-mach.h, ns32k/pc532.h,
+	ns32k/sequent.h, ns32k/tek6000.h, ns32k/tek6100.h, ns32k/tek6200.h,
+	pa/pa-ghpux.h, pa/pa-gux7.h, pa/pa-hpux.h, pa/pa-hpux7.h,
+	pa/pa-utahmach.h, pa/pa.h, pa/pa1-utahmach.h, pyr/pyr.h, romp/romp.h,
+	rs6000/aix31.h, rs6000/mach.h, rs6000/rs6000.h, sh/sh.h, sparc/lite.h,
+	sparc/lynx.h, sparc/pbd.h, sparc/sol2.h, sparc/sparc.h, sparc/sysv4.h,
+	spur/spur.h, tahoe/harris.h, tahoe/tahoe.h, vax/ultrix.h, vax/vax.h,
+	vax/vaxv.h, vax/vms.h, we32k/we32k.h
+	(CPP_PREDEFINES): Add system/cpu/machine assertions where missing.
+
+Fri Oct  1 22:11:17 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gvarargs.h: Test __sequent__ like __BSD_NET2__.
+
+Fri Oct  1 17:19:54 1993  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* cse.c (insert_regs): Always return something.
+	(simplify_unary_operation): Remove unused variable.
+	(cse_process_notes): Likewise.
+	(invalidate_skipped_block): Likewise.
+	(cse_set_around_loop): Likewise.
+
+	* pa-ghpux.h (LINK_SPEC): Pass "-a -archive" when
+	debugging.
+	* pa-hpux.h (LINK_SPEC): Likewise.
+	* pa-ghpux.h (LIB_SPEC): Make sure to add space between flags.
+	* pa-gux7.h (LIB_SPEC): Likewise.
+	* pa-hpux.h (LIB_SPEC): Likewise.
+	* pa-hpux7.h (LIB_SPEC): Likewise.
+
+Fri Oct 1  22:17:12 1993  Eric Youngdale  (eric@kafka)
+
+	* vmsconfig.com: Write out the definitions from Makefile.in for
+	the symbols BC_ALL and BI_OBJ into files BC_ALL.OPT and
+	BI_ALL.opt.  Remove "bytecode " from compiler options files so
+	compiler will link correctly.
+
+	* make-cc1.com (bc_generate): New VMS DCL function.  Takes a BC
+	header file that needs to be generated, and builds it.
+
+	* make-cc1.com:  Compile entries listed in BI_ALL.OPT, and then call
+	bc_generate for every header file listed in BC_ALL.OPT
+
+Fri Oct 1  21:13:17 1993  H.J. Lu  (hjl@nynexst.com)
+
+	* config/i386/linux.h (LIB_SPEC): Handle -p anmd -pg outermost.
+
+Fri Oct  1 18:23:57 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* reload1.c (gen_input_reload): Handle PLUS with MEM operand
+	exactly the same as a PLUS with a REG operand.
+	* reload.c (form_sum): Undo Sep 28 change.
+
+	* Makefile.in (cc1, cc1plus, cc1obj): Delete superfluous
+	dependencies on bytecode.
+	(stamp-bcarity, stamp-bcopcode, stamp-bcopname): Create stamp files.
+
+Fri Oct  1 18:17:56 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* configure (cpp_md_flags): New variable.
+	(links): Build link from md.pre-cpp if cpp_md_flags defined.
+	(CPP_MD, CPP_MD_FLAGS, MD_FILE): New macros for Makefile.
+	* Makefile.in (md): New dependency.
+	(MD_FILE): New macro.
+	(clean): Remove file md if md.pre-cpp exists.
+	(distclean): Remove md.pre-cpp.
+
+Fri Oct  1 15:44:48 1993  Michael Meissner  (meissner@osf.org)
+
+	* halfpic.h (toplevel): Enclose the whole file inside a #ifndef
+	NO_HALF_PIC conditional.
+
+	* i386/x-osfrose (CCLIBFLAGS, GCC_CFLAGS): Define NO_HALF_PIC so
+	that the two common variables in halfpic.h don't get created.
+
+	* mips/x-osfrose (CCLIBFLAGS, GCC_CFLAGS): Ditto.
+
+Fri Oct  1 10:46:15 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* a29k.h (R_KR): New macro.
+	(FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS):
+	Adjust for more registers present.
+	(REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGISTER_NAMES): Likewise.
+	(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, REGNO_REG_CLASS): Likewise.
+	(CONDITIONAL_REGISTER_USAGE): Swap names rather than replacing them.
+	* a29k.c (gpc_reg_operand): Include kernel registers.
+
+	* a29k.h (TARGET_LARGE_MEMORY): New flag; change value for
+	all others.
+	(ENCODE_SECTION_INFO): New macro.
+	(TARGET_SWITCHES): Add "normal" and change values.
+
+	* a29k.c (call_operand, case SYMBOL_REF): Handle TARGET_LARGE_MEMORY
+	and SYMBOL_REF_FLAG.
+
+Thu Sep 30 23:25:13 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* reorg.c (optimize_skip): Do not thread a jump to a new target if
+	doing so would invalidate the insn in the jump's delay slot.
+
+Thu Sep 30 14:21:03 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* bi-lexer.c (scan_string): Do xmalloc if buffer is null and
+	xrealloc if it's not, not the other way around.
+
+Thu Sep 30 10:57:30 1993  Jan Brittenson  (bson@nutrimat.gnu.ai.mit.edu)
+
+	* bc-emit.c (bc_end_function, seg_data): Use bcopy instead of memcpy. 
+
+Thu Sep 30 05:53:58 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold, case PLUS_EXPR, MINUS_EXPR): Properly handle
+	case when ARG1 splits and VARSIGN is -1.
+
+Wed Sep 29 19:41:18 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_modify_expr): Check whether recursive calls
+	return error_mark_node.
+
+Wed Sep 29 18:35:30 1993  Leonid Baraz  (lbaraz@iil.intel.com)
+
+	* rtl.h (GEN_INT): Add missing cast to HOST_WIDE_INT.
+	* jump.c (rtx_renumbered_equal_p, case CONST_INT): Use INTVAL,
+	not XINT.
+
+Wed Sep 29 17:32:03 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* glimits.h (UINT_MAX, ULONG_MAX, ULONG_LONG_MAX): 
+	redefine in a simpler way.
+
+Wed Sep 29 17:25:17 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* fixincludes (sys/spinlock.h): change references of
+	"../machine/*.h" to <machine/*.h>
+
+Wed Sep 29 07:09:50 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.c (reg_or_short_operand): Remove redundant test.
+
+	* sched.c: Add prototypes for static function.
+	(add_dependence, remove_dependence, regno_use_in): Now static.
+	(schedule_insns): Have dummy version also take FILE * parameter.
+
+Wed Sep 29 01:29:31 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* cccp.c (quote_string): New function.
+	(special_symbol, write_output, output_line_command): Use it to escape
+	special characters in file names when outputting #line directives.
+	(do_line): Parse escape sequences in #line directives' file names.
+	* c-lex.c, cp-lex.c (check_newline, yylex, real_yylex): Likewise.
+	(ignore_escape_flag): Remove var.
+
+Tue Sep 28 21:27:26 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu
+
+	* function.c (push_temp_slots, pop_temp_slots): Always change level.
+	* cp-expr.c (cplus_expand_expr): Push and pop temp slots around
+	making new temp slots and freeing them.
+	* expr.c (expand_assignment, expand_expr, do_jumps): Likewise.
+	* integrate.c (expand_inline_function): Likewise.
+
+Tue Sep 28 18:50:57 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload.c (find_reloads): Don't call find_reloads_toplev
+	(or anything like that)	for match_operator operands.
+
+	* config/ns32k/ns32k.c (output_move_double): Special code for
+	pushing from an address that uses the sp.  Use PUSHOP for pushes,
+	not POPOP.
+
+	* config/ns32k/ns32k.h (FUNCTION_EPILOGUE, FUNCTION_PROLOGUE): 
+	Add %$ in adjspb/adjspd insns.
+	* config/ns32k/ns32k.md (recognizer for subtracting const from reg 17):
+	Add %$ in adjspb/adjspd insns.
+
+	* bytetypes.h (QItype, HItype, SItype, DItype): Use __signed__.
+
+	* Makefile.in (stamp-bcopname, stamp-bcopcode): 
+	Use shorter names for temporary files.
+	(bc-emit.o): Depend on bc-arity.h.
+
+	* bi-opname.c, bi-arity.c, bi-opcode.c (xmalloc): New function.
+	* bi-opname.c, bi-arity.c: Include stdio.h.
+
+	* function.c (expand_main_function): Put back accidentally
+	deleted previous change to use NAME__MAIN.
+
+	* glimits.h (INT_MAX, LONG_MAX, LONG_LONG_MAX): Delete parens.
+	(__glimits__evconcat__, __glimits__concat__): New macros.
+	(UINT_MAX, ULONG_MAX, ULONG_LONG_MAX): Use them.
+
+	* cccp.c (output_dots): New function.
+	(do_include): Call it (to indent output for print_include_names).
+
+Tue Sep 28 18:22:31 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* reload1.c (eliminate_regs): All recursive calls now pass INSN
+	instead of NULL_RTX.  Second assignment to ref_outside_mem changed
+	to be same as first assignment.
+
+	* combine.c (force_to_mode, LSHIFTRT case): Avoid shifts larger
+	than HOST_BITS_PER_WIDE_INT.
+
+	* sched.c (schedule_insns): Don't zero reg_n_calls_crossed for
+	pseudos live across multiple blocks.
+
+	* fixincludes ({sparc,sun3,sun3x,sun4,sun4c,sun4m}/asm_linkage.h,
+	{sun4c,sun4m}/debug/asm_linkage.h: Replace /**/ with ##.
+
+	* reorg.c (mark_target_live_regs): When scanning insns, ignore
+	CLOBBERs in addition to USEs.
+
+	* life.h: Comment that this is for sparclite w/o FPU.
+	* sparc.h (CPP_SPEC): Handle -mf930 and -mf934.
+	(TARGET_SWITCHES): Add -mf930 and -mf934 options.  -msparclite no
+	longer does -mno-fpu.
+
+	* fixinc.svr4, fixincludes (math.h): Put #ifndef around HUGE_VAL
+	define.
+	* math-68881.h, math-3300.h (HUGE_VAL): Add #undef before HUGE_VAL
+	define, instead of surrounding it with #ifndef/#endif.
+
+	* sparc/bsd.h: New file.
+	* configure (sparc-*-bsd*): New configuration.
+
+	* reload.c (form_sum): Change the way that form_sum canonicalizes
+	addresses, so that it never creates (PLUS (PLUS MEM CONST_INT) REG)
+	but instead canonicallizes this to (PLUS (PLUS REG CONST_INT) MEM).
+
+Tue Sep 28 16:00:25 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* bc-emit.c: Include gvarargs.h, not varargs.h.
+	Don't include string.h.
+	(seg_align): Use bzero, not memset.
+
+Mon Sep 27 20:53:01 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (pop_init_level): Add special case for nonincremental
+	scalar initializers.
+
+	* protoize.c: Declare rindex unconditionally.
+
+	* c-decl.c (init_decl_processing): Use signed_type and unsigned_type
+	to set signed_wchar_type_node and unsigned_wchar_type_node.
+
+Mon Sep 27 20:31:01 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* dbxout.c (dbxout_init, dbxout_source_file): Quote special
+	characters when outputting source file names.
+	* config/a29k/a29k.h, config/a29k/unix.h, config/alpha/alpha.h,
+	config/i386/aix386ng.h, config/i386/bsd.h, config/i386/gas.h,
+	config/i386/sun386.h (ASM_FILE_START): Likewise.
+	* config/elxsi/elxsi.h, config/m68k/3b1.h, config/m68k/crds.h,
+	config/m68k/mot3300.h, config/m68k/tower-as.h, config/m88k/m88k.h,
+	dwarfout.c (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
+	* xcoffout.h, config/i386/i386iscgas.h, config/i860/fx2800.h
+	(DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_MAIN_SOURCE_FILENAME):
+	Likewise.
+	* xcoffout.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
+	* config/mips/mips.c (mips_output_filename): Likewise.
+	* toplev.c (output_file_directive): Likewise.
+	(output_quoted_string): New function.
+
+Mon Sep 27 19:31:57 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* bi-lexer.c (xrealloc): Handle 0 passed as BLOCK.
+
+	* Makefile.in (stamp-bcopname, stamp-bcopcode, stamp-bcarity):
+	Renamed from stamp-bc-... to fit in 14 chars.
+	Don't rm the .h files.
+	(STAGESTUFF): Add some bc and bi files.
+
+	* c-lex.c (yylex): Handle i together with f or l in float constant.
+
+Mon Sep 27 19:00:18 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* cccp.c (special_symbol, initialize_builtins): If
+	NO_BUILTIN_SIZE_TYPE is defined, never refer to SIZE_TYPE.
+	Likewise for NO_BUILTIN_PTRDIFF_TYPE and PTRDIFF_TYPE.
+
+Mon Sep 27 18:59:09 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload1.c (eliminate_regs, SET case): Check for INSN_LIST
+	along with EXPR_LIST.
+
+Mon Sep 27 14:29:17 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+
+	* objc/typedstream.h (objc_read_object): Add declaration.
+
+Mon Sep 27 17:00:38 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure: Handle option --with-elf.
+	(i[34]86-*-linux*): Use linuxelf.h if --with-elf.
+	(i[34]86-*-osfelf): Config deleted.
+	(i[34]86-*-osfrose): Handle --with-elf.
+	* config/i386/linuxelf.h: New file.
+
+Mon Sep 27 14:19:33 1993  Jan Brittenson  (bson@nutrimat.gnu.ai.mit.edu)
+
+	* expr.c (bc_expand_constructor): Delete cast of argument to
+	bc_emit_instruction to HOST_WIDE_INT. Move assignment of ptroffs
+	to separate line.
+
+Mon Sep 27 10:32:28 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (stmt.o, expr.o, emit-rtl.o): Add missing dependency
+	on bc-typecd.def.
+	(bi-run.o): Fix formatting.
+
+Mon Sep 27 10:26:43 1993  Jan Brittenson  (bson@nutrimat.gnu.ai.mit.edu)
+
+	* Makefile.in (bi-arity.h, bc-opcode.h, bc-opname.h): Use
+	move-if-changed. 
+	(stamp-bc-arity, stamp-bc-opcode, stamp-bc-opname): New targets.
+
+Sun Sep 26 23:11:34 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (ASM_FILE_START): Remove last change for $LIT$ subspace,
+	not all HPUX linkers handle it correctly.
+
+Sun Sep 26 20:51:36 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* stmt.c (expand_exit_loop_if_false, bc_expand_start_cond):
+	Use xjumpifnot, not jumpifnot.
+
+	* Makefile.in (bi-arity, bi-opcode, bi-opname): Delete $(LEXLIB).
+
+	* varasm.c (assemble_string): Put braces around ASM_OUTPUT_ASCII.
+
+Sat Sep 25 08:30:16 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case COND_EXPR): Set MEM_IN_STRUCT_P
+	properly for TEMP.
+
+	* combine.c (BYTE_LOADS_EXTEND, LOAD_EXTEND): Deleted.
+	(subst, force_to_mode, nonzero_bits, num_sign_bit_copies):
+	Use new macros LOAD_EXTEND_OP and WORD_REGISTER_OPERATION instead
+	of BYTE_LOADS_*_EXTEND and LOAD_EXTEND.
+	* expr.c (do_store_flag): Likewise.
+	* reload.c (push_reload, find_reloads): Likewise.
+	* reload1.c (eliminate_regs): Likewise.
+	* a29k.h, alpha.h, clipper.h, arm.h, i960.h, m88k.h, mips.h:
+	Use WORD_REGISTER_OPERATION and LOAD_EXTEND_OP and delete
+	BYTE_LOADS_{SIGN,ZERO}_EXTEND.
+	* pa.h, romp.h, rs6000.h, sh.h, sparc.h: Likewise.
+
+Sat Sep 25 06:19:20 1993  Jan Brittenson  (bson@nutrimat.gnu.ai.mit.edu)
+
+	* bi-lexer.l: Deleted.
+
+	* bi-lexer.c: New file.
+
+	* Makefile.in (bi-lexer): Deleted.
+	(bi-lexer.l): Deleted.
+
+Fri Sep 24 16:59:03 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Cygnus<->FSF C++ front-end merge.
+
+	Tue Sep 21 19:17:29 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (build_ptrmemfunc_type): Set CLASSTYPE_GOT_SEMICOLON
+	  just in case.
+	* cp-decl.c (start_function): Exclude pointer to member functions in
+	  IS_AGGR_TYPE test.
+	* cp-method.c (dump_type_prefix, dump_type_suffix, dump_type):
+	  Handle pointer to member functions.
+
+	Tue Sep 21 10:47:10 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-tree.c (finish_struct): Since we know which base class we want
+	  the binfo for, get it directly, instead of searching for it.  Cures
+	  a compiler_error in binfo_value.
+
+	Thu Sep 16 20:33:25 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-cvt.c (convert_pointer_to): Make error more specific and more
+	  readable.
+
+	Thu Sep 16 20:14:18 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-lex.c (consume_string): Add second argument so that we can use
+	  this routine for character constants too.  Also, handle eof inside
+	  the string or character constant better.  Make static, as it isn't
+	  used anyplace else.
+
+	* cp-lex.c (reinit_parse_for_block): Add second argument to
+	  consume_string.  Add support for character constants.
+
+	* cp-tree.h (consume_string): Remove declaration, not used any place
+	  else.
+
+	Wed Sep 15 12:44:13 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* cp-gc.c (build_t_desc):  Make sure finish_table is called
+	for the methods and ivars tables.
+
+	Mon Sep 13 14:40:23 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-pt.c (unify): Use the referent type if necessary.
+
+	Fri Sep 10 16:34:37 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-typeck.c (build_binary_op_nodefault): Add missing fourth
+	  argument to build_binary_op calls, and eliminate bogus delta2
+	  check.
+
+	Fri Sep 10 14:52:59 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-typeck.c (build_binary_op_nodefault): Make sure delta2's match
+	  when comparing pointers to _virtual_ member functions.
+
+	Fri Sep 10 14:27:45 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-typeck.c (convert_for_assignment): Revert a cast.
+	* cp-typeck.c (build_binary_op_nodefault): Add missing fourth
+	  argument to build_binary_op calls.
+
+	Thu Sep  9 21:22:40 1993  Mike Stump  (mrs@cygnus.com)
+
+	Complete re-vamp of pointer to member functions.  Implements
+	complete semantics.  Cures problems on CONVEX, i960 and alpha.
+
+	* cp-tree.h (get_member_function_from_ptrfunc, build_ptrmemfunc):
+	  New routines.
+	* cp-decl.c (build_ptrmemfunc_type): New routine, builds canonical
+	  pointer to member function types.
+	* cp-decl.c (grokdeclarator): Use new type for POINTER_TYPE to
+	  METHOD_TYPEs.
+	* cp-method.c (build_overload_name): Make the old mangling to show
+	  through when mangling the new pointer to member function type.
+
+	* cp-tree.h (TYPE_PTRMEMFUNC_P, TYPE_PTRMEMFUNC_FN_TYPE,
+	  TYPE_GET_PTRMEMFUNC_TYPE, TYPE_SET_PTRMEMFUNC_TYPE): New macros
+	  for pointer to member function code.
+	* cp-init.c (resolve_offset_ref): Handle pointer to member functions
+	  specially.
+	* cp-type2.c (store_init_value): Make new pointer to member
+	  functions initializable.
+	* cp-typeck.c (convert_for_assignment): Make new pointer to member
+	  functions assignable.
+	* cp-type2.c (build_m_component_ref): Make new pointer to member
+	  functions work.
+	* cp-typeck.c (build_x_function_call, build_function_call_real,
+	  build_binary_op): Ditto.
+	* cp-class.c (add_virtual_function): Don't set the high bit on
+	  DECL_VINDEXs.
+
+	* cp-typeck.c (get_member_function_from_ptrfunc): New routine to
+	  resolve a pointer to member function.
+	* cp-typeck.c (build_ptrmemfunc): New routine to build CONSTRUCTORs
+	  for new pointer to member functions.  Used by to generate
+	  initialization and assignment expressions.
+	* cp-typeck.c (build_binary_op_nodefault): Implement == and != for
+	  new pointer to member functions.
+	* cp-typeck.c (unary_complex_lvalue): Handle & in more reasonable
+	  ways to make new pointer to member functions work.
+
+	* cp-parse.y (expr_no_commas): Don't dereference the second
+	  argument, this is now done in build_m_component_ref as needed.
+	* cp-typeck.c (build_x_binary_op): Ditto.
+
+	Other misc work.
+
+	* cp-call.c (build_field_call, build_scoped_method_call,
+	  build_method_call): Second arg to build_indirect_ref should be
+	  NULL_PTR, not NULL or 0.
+	* cp-class.c (build_vbase_path, build_vfn_ref, popclass): Ditto.
+	* cp-cvt.c (convert_from_reference): Ditto.
+	* cp-decl2.c (setup_vtbl_ptr, finish_file): Ditto.
+	* cp-init.c (emit_base_init, build_virtual_init,
+	  expand_aggr_vbase_init_1, expand_recursive_init_1,
+	  get_member_function, resolve_offset_ref, build_new, build_delete,
+	  build_vec_delete): Ditto. 
+	* cp-search.c (dfs_init_vbase_pointers, init_vbase_pointers,
+	  build_vbase_vtables_init): Ditto.
+	* cp-type2.c (build_x_arrow, build_functional_cast): Ditto.
+	* cp-typeck.c (build_modify_expr): Ditto.
+
+	Instead of calling get_identifier with the same value all the time,
+	call it once, and re-use the cached value.
+
+	* cp-decl.c (pfn_identifier, index_identifier, delta_identifier,
+	  delta2_identifier): New cached calls to get_identifier.
+	* cp-tree.h (this_identifier, pfn_identifier, index_identifier,
+	  delta_identifier, delta2_identifier): Allow them to be accessed
+	  everywhere.
+	* cp-decl.c (init_decl_processing): Initialize pfn_identifier,
+	  index_identifier, delta_identifier and delta2_identifier and
+	  use a cached get_identifier call.
+	* cp-class.c (delta_name, pfn_name): Removed, use delta_identifier
+	  and pfn_identifier instead.
+	* cp-class.c (popclass): Use a cached get_identifier call for `this'.
+
+	Tue Sep  7 16:01:14 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-search.c (immediately_derived): New function.
+	(get_binfo): Use it.
+	(compute_visibility): Rewrite how private inheritance is handled, so
+	it actually works.  Use the new immediately_derived fn.
+
+	Mon Sep  6 14:44:46 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* cp-decl.c (grokfndecl): Add empty statement after foundaggr label.
+
+	Sat Sep  4 16:12:27 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-decl.c (grokfndecl): Require class or enum argument to
+	operators.
+
+	* cp-init.c (build_member_call): Make destructor without object
+	error more useful, don't complain of missing destructor.
+
+	Thu Sep  2 15:51:54 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (globalize_nested_type): Make sure the type in question
+	has a lang_specific area before trying to clear DECL_CLASS_CONTEXT.
+
+	Wed Sep  1 13:40:30 1993  Chip Salzenberg  (chip@fin)
+
+	* cp-decl.c (start_function): Call duplicate_decls when user
+	redefines a builtin function.
+
+	Thu Sep  2 15:38:43 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-pt.c (instantiate_class_template): Only kick back the local
+	value if we're setting things up for the parser.
+
+	Wed Sep  1 12:54:38 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-init.c (emit_base_init): Don't complain if the base has no
+	constructor; we should try to use the default constructor instead.
+
+	Wed Sep  1 11:57:00 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-call.c (find_scoped_type): Undo the sorry for now, it's hitting
+	a lot of code that it shouldn't be.
+
+	Mon Aug 30 13:08:48 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-typeck.c (build_x_unary_op): unary & on an expression of
+	RECORD_TYPE that has an incomplete type gives the simple address of
+	the object, and should not give an error about method not found.
+
+	Mon Aug 30 11:06:26 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-pt.c (instantiate_class_template): Don't try to instantiate a
+	template that's already being worked on.
+
+	* cp-init.c (perform_member_init): Make an uninitialized reference
+	be a pedwarn, not a warning.
+
+	* cp-class.c (finish_struct): Make declaration of a negative width
+	for a bit-field be an error, not a warning.
+
+	Sat Aug 28 09:40:47 1993  Michael Tiemann  (tiemann@blues.cygnus.com)
+
+	* cp-call.c (find_scoped_type): Add a `sorry' call if we hit an
+	uninstantiated type.
+
+	Thu Aug 26 13:53:23 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-call.c (build_scoped_method_call): Don't produce an error
+	if the type has no destructor.
+
+	* cp-decl.c (record_builtin_type): Don't set TYPE_HAS_DESTRUCTOR
+	after all.
+
+	Wed Aug 25 19:10:24 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cp-call.c (build_method_call): Check for class type value as
+	well
+
+	* cp-tree.h (IDENTIFIER_CLASS_TYPE_VALUE): Create macro
+	(IDENTIFIER_HAS_CLASS_TYPE_VALUE): Ditto
+
+	* cp-init.c (is_aggr_typedef): Check for class type value as well
+	(for template destructors)
+	(build_delete): Don't assert aggregate type, don't check
+	TREE_GETS_DELETE if built-in type.
+
+Fri Sep 24 15:57:14 1993  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* rtl.h: (HARD_FRAME_POINTER_REGNUM): New macro.
+	(hard_frame_pointer_rtx): New variable
+	* combine.c: (combinable_i3_pat): Don't add REG_DEAD notes for
+	HARD_FRAME_POINTER_REGNUM.
+	(subst, case SUBREG): Don't change register number or mode if it
+	is HARD_FRAME_POINTER_REGNUM.
+	* cse.c: (FIXED_REGNO_P): HARD_FRAME_POINTER_REGNUM is fixed.
+	(CHEAP_REG): HARD_FRAME_POINTER_REGNUM is cheap.
+	(FIXED_BASE_PLUS): Allow hard frame pointer as base.
+	(NONZERO_BASE_PLUS_P): Likewise.
+	(cannon_hash, case REG): Add HARD_FRAME_POINTER_REGNUM to list of
+	special registers for SMALL_REGISTER_CLASSES.
+	(find_best_addr): Addresses containing HARD_FRAME_POINTER_REGNUM
+	cannot be replaced.
+	(cse_main): value in HARD_FRAME_POINTER_REGNUM is preserved across
+	calls.
+	* dbxout.c: (dbxout_symbol): FRAME_POINTER_REGNUM has been eliminated
+	by now, use HARD_FRAME_POINTER_REGNUM.
+	* emit-rtl.c: (hard_frame_pointer_rtx): New variable.
+	(gen_rtx): return hard_frame_pointer_rtx if generating rtl
+	for HARD_FRAME_POINTER_REGNUM.
+	(enit_emit_once): Generate initial rtl for hard_frame_pointer_rtx.
+	* explow.c: (copy_all_regs): Don't copy HARD_FRAME_POINTER_REGNUM.
+	* flow.c: (life_analysis): Mark HARD_FRAME_POINTER_REGNUM as live at
+	the end of the function.
+	(insn_dead_p): Don't delete insns that set the hard frame pointer.
+	(mark_set_1): Don't add death information about
+	HARD_FRAME_POINTER_REGNUM.
+	(mark_used_regs, case REG): Don't put HARD_FRAME_POINTER_REGNUM in
+	regs_ever_live.  Don't mark it as needed either.
+	* function.c: (instantiate_virtual_regs_1, case MEM): references to
+	MEM via the hard frame pointer shouldn't be copied.
+	* genattrtab.c: (hard_frame_pointer_rtx): New Dummy definition.
+	* global.c: (global_alloc): Make sure that it is always possible to
+	eliminate FRAME_POINTER_REGNUM into HARD_FRAME_POINTER_REGNUM.
+	* jump.c: (thread_jumps): Value in HARD_FRAME_POINTER_REGNUM is never
+	modified by a call.
+	* local-alloc.c: (find_free_reg): Make sure we will always be able
+	to eliminate FRAME_POINTER_REGNUM into HARD_FRAME_POINTER_REGNUM.
+	* loop.c: (invariant_p, case REG): hard_frame_pointer_rtx is 
+	invariant.
+	* reload.c: (immune_p): Constants never overlap hard frame pointer
+	references.
+	(find_reloads_address): Compute invalid references to the hard 
+	frame pointer in a register; also (reg + const)
+	and (reg + reg + const).
+
+	* reload1.c: (init_reload): use HARD_FRAME_POINTER_REGNUM instead of
+	FRAME_POINTER_REGNUM.
+	(reload): Only prohibit elimination of HARD_FRAME_POINTER_REGNUM, not
+	FRAME_POINTER_REGNUM if frame_pointer_needed.  Never prohibit
+	elimination of FRAME_POINTER_REGNUM into HARD_FRAME_POINTER_REGNUM.
+	Mark HARD_FRAME_POINTER_REGNUM as live at the start of a block if
+	it is still needed after elimination.
+	(eliminate_regs): For non-local goto's, don't delete stores into the
+	hard frame pointer.
+	(eliminate_regs_in_insn): adjust comment.
+	(mark_not_eliminable): if frame_pointer_rtx and hard_frame_pointer_rtx
+	are not the same, then frame_pointer_rtx is eliminable; 
+	hard_frame_pointer_rtx never is if it is set..
+	(order_regs_for_reload): HARD_FRAME_POINTER_REGNUM is a bad spill reg.
+	(choose_reload_regs): HARD_FRAME_POINTER_REGNUM is a bad choice.
+	* reorg.c: (mark_referenced_resource): if frame_pointer_needed, 
+	HARD_FRAME_POINTER_REGNUM is also a referenced resource.
+	(mark_target_live_regs): value in HARD_FRAME_POINTER_REGNUM is not
+	call-clobbered.
+	(dbr_schedule): HARD_FRAME_POINTER_REGNUM should be valid at the
+	end of a function.
+	* rtlanal.c: (rtx_unstable_p): HARD_FRAME_POINTER_REGNUM is not
+	an unstable register.
+	(rtx_varies_p, case REG): hard_frame_pointer_rtx is invariant.
+	(rtx_addr_can_trap_p, case REG): hard_frame_pointer_rtx won't trap.
+	* sched.c: (memrefs_conflict_p): We can work out whether references
+	via hard_frame_pointer_rtx are likely to conflict.
+	(attach_deaths, case REG): Don't add death notes for
+	HARD_FRAME_POINTER_REGNUM.
+	* sdbout.c: (sdbout_symbol): Use HARD_FRAME_POINTER_REGNUM instead of
+	FRAME_POINTER_REGNUM.
+	* stmt.c: (expand_goto): Set hard_frame_pointer_rtx when restoring
+	the frame.  Use it when restoring other registers.
+	(expand_end_bindings): ARG_POINTER_REGNUM will be eliminated into
+	HARD_FRAME_POINTER_REGNUM, not FRAME_POINTER_REGNUM; adjust code 
+	accordingly.
+	* stupid.c: (stupid_find_reg): never use HARD_FRAME_POINTER_REGNUM.
+
+Fri Sep 24 15:05:14 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload1.c (eliminate_regs): Specially handle the case where INSN
+	is a note (an EXPR_LIST or INSN_LIST).
+	(eliminate_regs_in_insn): Pass the notes as INSN,
+	when calling eliminate_insn to process the notes.
+
+Fri Sep 24 11:29:26 1993  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h (SET_ASM_OP): Define.
+
+Fri Sep 24 04:47:33 1993  Jan Brittenson  (bson@nutrimat.gnu.ai.mit.edu)
+
+	* Makefile.in (toplev.o): Add bytecode.h and bc-emit.h to list
+	of dependencies.
+	(stmt.o): Add bytecode.h, bc-typecd.h, bc-opcode.h, bc-optab.h,	
+	and bc-emit.h to list of dependencies.
+	(expr.o): Add bytecode.h, bc-opcode.h, bc-typecd.h, bc-optab.h,
+	bc-emit.h, and modemap.def to list of dependencies.
+	(emit-rtl.o): Add bytecode.h, bc-opcode.h, bc-typecd.h,
+	bc-optab.h, bc-emit.h, bc-opname.h to list of dependencies.
+	(integrate.o, regclass.o, varasm.o, function.o): Add bytecode.h to
+	list of dependencies.
+
+Thu Sep 23 23:58:58 1993  James Van Artsdalen  (james@bigtex.cactus.org)
+
+	* att.h (ASM_OUTPUT_ASCII): Enclose macro in "do { .. } while (0)".
+	* sun386.h (ASM_OUTPUT_ASCII): Likewise.
+
+Thu Sep 23 11:55:47 1993  Ted Lemon  (mellon@ncd.com)
+
+	* toplev.c (lang_options): Add -fallow-single-precision.
+
+Thu Sep 23 00:40:28 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (bi-parser.c): Supply explicit rule.
+	Add bi-parser.h as target.
+	Put these files in srcdir.
+
+	* bc-emit.c (bc_gen_rtx): Call gen_rtx.
+	(bc_print_rtl): #if 0 the contents.
+
+	* Makefile.in (bc-optab.o, bc-emit.o): Add missing deps.
+	(bi-parser.c, bi-lexer.c): Don't depend on .h files here.
+
+	* varasm.c (handle_pragma_weak): Test HANDLE_PRAGMA_WEAK
+	and WEAK_ASM_OP and SET_ASM_OP.
+
+	* Makefile.in (stmt.o): Fix typo.
+
+	* emit-rtl.c (gen_label_rtx): If output_bytecode, make a CODE_LABEL
+	but with different contents.
+
+	* rtl.h (BYTECODE_LABEL, BYTECODE_OFFSET, BYTECODE_BC_LABEL): 
+	(BYTECODE_UID): New macros.
+	(struct rtx_def): Delete elements label, offset, bc_label, uid.
+
+	* Makefile.in (bc-arity.h, bc-opcode.h, bc-opname.h): Use `./'.
+	(bi-arity, bi-opcode, bi-opname, bi-lexer): Use host compiler.
+	Link with HOST_LIBS and depend on HOST_LIBDEPS.
+	(bi-unparse): Deleted.
+	(bytecode.distclean): Don't do anything with bi-unparse
+	(bi-arity.o, bi-opcode.o, bi-opname.o, bi-parser.o, bi-reverse.o)
+	(bi-lexer.o): Use host compiler.
+
+	* expr.c (expand_increment): Don't store directly ito a subreg
+	that is narrower than a word.
+
+Wed Sep 22 22:18:35 1993  Chip Salzenberg  (chip@fin.uucp)
+
+	* combine.c (init_reg_last_arrays): New function.
+	(combine_instructions): Use it.
+	(force_to_mode): Narrow mask to fit mode (except VOIDmode).
+	(record_value_for_reg): When zeroing reg_last_set_value, also
+	zero reg_last_set_{mode,nonzero_bits,sign_bit_copies}.
+	(record_dead_and_set_regs): Likewise.
+
+Wed Sep 22 22:13:07 1993  James Van Artsdalen  (james@bigtex.cactus.org)
+
+	* bc-emit.c (bc_initialize): Add MODE arg to REAL_VALUE_ATOF calls.
+
+	* Makefile.in (bi-lexer.c): File is in $(srcdir).
+
+	* reg-stack.c (record_label_references): Don't follow a null label
+	reference chain.
+
+Wed Sep 22 15:56:27 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (bi-arity, bi-opcode, bi-opname, bi-unparse, bi-lexer): 
+	Make the rules explicit.  Don't use $^.
+	(bi-run.o, bi-parser.o, bi-lexer.o): Eliminate $<.
+	(bc-arity.h, bc-opcode.h, bc-opname.h): Eliminate $< and $@.
+
+	* c-typeck.c (set_init_index): Handle and allow CONST_DECL.
+	(build_c_cast): When making a CONSTRUCTOR for a union cast,
+	specify its type.
+
+	* Makefile.in (bi-lexer.o, bi-parser.o): Use ALL_CFLAGS.
+
+	* bi-arity.c (main): Make sure there's some value within
+	each pair of braces.
+
+	* expr.c (bc_adjust_stack): Use VALIDATE_STACK_FOR_BC,
+	not VALIDATE_STACK.
+	* bc-emit.c (bc_emit_bytecode): Likewise.
+	(bc_emit_instruction) [! __GNUC__]: Don't really use bc-typecd.def.
+
+	* varasm.c (bc_assemble_integer): Make definition static.
+
+	* expr.c (bc_strdup): Don't use strcpy's value.
+
+	* bytetypes.h: New file.  Typedefs moved from bytecode.h.
+	(union stacktype): Moved here.
+	* bytecode.h: Typedefs deleted.
+	* bi-run.h: (union stacktype): Deleted.
+	(BI_PARAMS): Don't continue the parmlist.
+	* bc-emit.c: Include bytetypes.h, if __GNUC__.
+
+Wed Sep 22 15:49:47 1993  Ted Lemon (mellon@ncd.com)
+
+	* c-decl.c (flag_allow_single_precision): New variable.
+	(c_decode_option): Handle -fallow-single-precision.
+	* c-tree.h (flag_allow_single_precision): Declared.
+	* c-typeck.c (default_conversion): Implement -fallow-single-precision.
+
+Wed Sep 22 11:18:24 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-class.c (finish_struct): Move special C++ only code that
+	  handles anonymous unions inside structures here.
+	* stor-layout.c (layout_record): From here.
+
+Wed Sep 22 14:14:55 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* enquire.c (FPROP): Recognize 80387 or 68881 XFmode format.
+
+	* c-typeck.c (build_component_ref): For a field in an anonymous union,
+	make two nested COMPONENT_REFs.
+	(lookup_field): Additional arg INDIRECT.
+
+Wed Sep 22 14:45:42 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+
+        * tm.texi (CLEAR_INSN_CACHE): New macro. 
+        * libgcc2.c (__clear_cache): add case for new CLEAR_INSN_CACHE.
+
+        * libgcc2.c (__enable_execute_stack): Add case for NeXT/__MACH__. 
+        * config/m68k/next.h (INITIALIZE_TRAMPOLINE): Append call to
+        __enable_execute_stack.  
+        (CLEAR_INSN_CACHE): New macro.
+
+        * varasm.c (output_constructor): Use the type given
+        by the constructor expression only if available.  Otherwise
+        use the type of the declared type.
+
+Tue Sep 21 19:51:26 1993  Andrew McCallum  (mccallum@vein.cs.rochester.edu)
+
+        * objc/Object.[hm] (-compare:, -shouldNotImplement:): Added.
+
+        * objc/archive.c (objc_write_type, objc_write_types): Take
+        take char** args for writing strings in stead of char* to
+        match NeXT.  Also correct some typos in error messages.
+
+Tue Sep 21 18:35:04 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* c-typeck.c (push_member_name):  Take a decl instead of a string.
+	Allow DECL_NAME to be NULL (anonymous fields).
+	* c-typeck.c (push_init_level, process_init_element):  Change
+	callers appropriately.
+
+Tue Sep 21 16:44:17 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* libgcc2.c (L_bb): Test inhibit_libc.
+
+	* Makefile.in (ENQUIRE, CROSS_TEST): New variables.
+	(all.cross): Use them.
+
+	* mips-tfile.c, mips-tdump.c [CROSS_COMPILE]: Include mips/a.out.h.
+
+	* arm.h, clipper.h, i386.h, i860.h, pyr.h, spur.h:
+	(INIT_CUMULATIVE_ARGS): Pass just the return value type
+	to aggregate_value_p.
+
+Tue Sep 21 10:50:19 1993  Jan Brittenson  (bson@nutrimat.gnu.ai.mit.edu)
+
+	* emit-rtl.c (gen_label_rtx, emit_line_note): add conditional for
+	bytecode.
+
+	* expr.c (mode_to_const_map, mode_to_load_map, mode_to_store_map):
+	new variable.
+	(bc_init_mode_to_opcode_maps): new function; initialize maps.
+	(expand_assignment, expand_expr, expand_increment): add
+	conditional for bytecode.
+	(bc_expand_expr, bc_load_memory, bc_store_memory,
+	bc_allocate_local, bc_allocate_variable_array, bc_load_externaddr,
+	bc_strdup, bc_load_externaddr_id, bc_load_localaddr,
+	bc_load_parmaddr, bc_canonicalize_array_ref,
+	bc_expand_component_address, bc_push_offset_and_size,
+	bc_expand_address, bc_runtime_type_code, bc_gen_constr_label,
+	bc_expand_constructor, bc_store_field, bc_store_bit_field,
+	bc_load_bit_field, bc_adjust_stack): new function.
+
+	* function.c (put_var_into_stack, expand_main_function): do
+	nothing for bytecode.
+	(bc_build_calldesc): new function.
+	(init_function_start): use it if outputting bytecode.
+	(expand_function_start, expand_function_end): add conditional for
+	bytecode.
+	(bc_expand_function_start, bc_expand_function_end): new function.
+
+	* integrate.c (output_inline_function): signal error for bytecode.
+
+	* regclass.c (fix_register): signal error for bytecode.
+
+	* stmt.c (struct nesting): new members bc_stack_level, skip_label).
+	(struct goto_fixup): new members bc_target, label, bc_handled,
+	bc_stack_level.
+	(emit_nop, expand_computed_goto, expand_label, expand_goto,
+	expand_goto_internal, fixup_gotos, expand_asm,
+	expand_asm_operands, expand_expr_stmt, expand_start_expr_stmt,
+	expand_end_expr_stmt, expand_start_cond, expand_start_else,
+	expand_end_cond, expand_start_loop, expand_loop_continue_here,
+	expand_end_loop, expand_exit_loop_if_false, expand_null_return,
+	expand_return, expand_start_bindings, expand_end_bindings,
+	expand_decl, expand_start_case, pushcase,
+	check_for_full_enumeration, expand_end_case): add conditional for
+	bytecode.
+	(bc_expand_goto_internal, bc_expand_fixup, bc_fixup_gotos,
+	bc_expand_start_cond, bc_expand_end_cond, bc_expand_start_else,
+	bc_expand_end_bindings, bc_expand_decl,
+	bc_expand_variable_local_init, bc_expand_decl_init,
+	bc_expand_start_case, bc_pushcase,
+	bc_check_for_full_enumeration_handling, bc_expand_end_case,
+	bc_new_uid): new function.
+
+	* toplev.c (output_bytecode): new variable.
+	(f_options): add entry for -fbytecode.
+	(fatal_insn_not_found, compile_file, rest_of_decl_compilation,
+	rest_of_compilation, main): add conditional for bytecode.
+	
+	* config/m68k/m68k.c config/m68k/m68k.h: add bytecode specific
+	definitions.
+
+	* varasm.c (text_section, data_section, make_function_rtl,
+	make_decl_rtl, assemble_asm, assemble_start_function,
+	assemble_zeros, assemble_string, assemble_variable,
+	assemble_external, assemble_external_libcall, assemble_label,
+	assemble_name, assemble_static_space,
+	assemble_trampoline_template, assemble_integer, assemble_real,
+	decode_addr_const, output_constant_def, output_constant_pool,
+	output_constant, output_constructor): add conditional for
+	bytecode. 
+	(bc_output_constructor, output_byte_asm, bc_make_rtl,
+	bc_output_data_constructor, bc_assemble_integer): 
+	new function. 
+	(handle_pragma_weak): break out asm writing code from
+	handle_pragma_token, move to varasm.c, so bytecode-specific
+	macros can access static varasm data and functions.
+
+	* c-pragma.c (handle_pragma_token): use handle_pragma_weak.
+
+	* function.h (enum pragma_state): moved from c-pragma.c
+
+	* bc-config.h, bc-emit.c, bc-optab.c, bc-optab.h, bc-trans.h,
+	bc-typecd.def, modemap.def, bytecode.def, bc-emit.h, bc-typecd.h,
+	bi-arity.c, bi-defs.h, bi-lexer.c, bi-opcode.c, bi-opname.c,
+	bi-parser.c, bi-parser.h, bi-reverse.c, bi-run.c, bi-run.h,
+	bi-unparse.c: new file. bc-* are exclusively compiler files, bi-*
+	are interpreter files.
+
+	* Makefile.in: add rules and/or dependencies for bc-emit.o,
+	bc-optab.o, bytecode, bi-arity, bi-opcode, bi-opname, bi-lexer,
+	bi-run.o, bi-parser.c, bi-parser.o, bi-lexer.o bi-arity.o,
+	bi-opcode.o, bi-opname.o, bi-reverse.o, bc-arity.h, bc-opcode.h,
+	bc-opname.h, bytecode.mostlyclean, bytecode.distclean, 
+	bytecode.realclean
+
+
+Tue Sep 21 10:20:55 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): Try putting RETURN at end of function
+	both at start and at end of our optimization.
+
+Mon Sep 20 17:22:13 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_expr): Handle flag_volatile here.
+	* c-typeck.c (build_indirect_ref): TREE_THIS_VOLATILE no longer
+	depends on flag_volatile.
+
+Mon Sep 20 15:21:31 1993  Doug Evans  (dje@cygnus.com)
+
+	* gstddef.h: Back out change of Sep 15 (handles Sun lossage).
+	Prevented bootstrapping.
+
+Mon Sep 20 12:21:56 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+
+        * objc/archive.c (objc_read_string): Allocate n+1 chars instead of
+        just n.
+
+Sun Sep 19 13:06:37 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* function.c (combine_temp_slots): Handle deletion properly.
+	Free the RTL that is allocated.
+	* rtl.c (rtx_free): New function.
+
+	* config/m68k/m68k.c (output_move_double): Handle register overlap
+	case that occur in soft-float XFmode.  Code basically copied from
+	i386.c.
+
+Sun Sep 19 14:40:08 JDT 1993  Michael Ben-Gershon (mybg@cs.huji.ac.il)
+
+	* cse.c (simplify_unary_operation): If REAL_ARITHMETIC is defined,
+	and a FIX operation is applied to convert a CONST_DOUBLE to an INT,
+	the CONST_DOUBLE must first be rounded to zero.
+
+Sun Sep 19 12:49:05 1993  James Van Artsdalen  (james@bigtex.cactus.org)
+
+	* Makefile.in (objc-headers): Depend on stmp-fixinc to build the
+	include/ subdirectory first.
+
+Sun Sep 19 09:45:16 1993  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* gstddef.h (size_t): Acorn RISCiX requires __size_t defined.
+
+Sun Sep 19 09:08:09 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* genrecog.c (preds): Correct typo in name of `comparison_operator'.
+	(add_to_sequence): If PREDICATE_CODES specified, warn if we find a
+	predicate not in that list.
+
+	* reload.c (find_reloads): Reject an alternative if two operands
+	match the same output and we have to do a reload.
+
+	* rs6000.c (rs6000_override_options): Change processor type to
+	"rios1"; allow "rios" as synonym.
+	Add synonyms for "mpc6xx".
+	* rs6000.h (enum processor_type): Change from RIOS to RIOS1.
+	(PROCESSOR_DEFAULT): Likewise.
+	* rs6000.md (attribute "cpu"): Change from "rios" to "rios1"; all
+	uses changed.
+
+	* xm-alpha.h: Add extern declaration for alloca.
+
+	* a29k.h (PREDICATE_CODES): Fix typos and add missing entries.
+	* alpha.h, i860.h i960.h, m88k.h, mips.h, rs6000.h: Likewise.
+
+Sat Sep 18 09:27:03 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (convert_move): Use emit_library_call_value.
+
+Sat Sep 18 08:01:44 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.h (REG_ALLOC_ORDER): Add missing entries.
+
+	* combine.c (recog_for_combine): Fix typos in previous change.
+
+	* reload.c (earlyclobber_operand_p): New function.
+	(combine_reloads): Use it.
+	(find_reloads): Set reload_earlyclobbers earlier.
+	(refers_to_regno_for_reload_p): Count something being stored into
+	if it is an earlyclobber operand.
+
+Fri Sep 17 21:40:02 1993  Per Bothner  (bothner@cygnus.com)
+
+	* fold-const.c (invert_truthvalue):  Instead of aborting,
+	build a TRUTH_NOT_EXPR when unable to optimize.
+	(The aborts were not a problem for C, which always first
+	calls truthvalue_conversion, but that should not be
+	necessary for a language with real Booleans.)
+
+Fri Sep 17 20:38:53 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (output_init_element): Update constructor_bit_index
+	for union types.
+
+	* libgcc2.c: Declare __fixunsxfdi only if really have XFmode.
+	Likewise for __fixunstfdi.
+
+Fri Sep 17 18:08:37 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (recog_for_combine): Always reject a PARALLEL containing
+	our special CLOBBER.
+
+	* cse.c (fold_rtx, case MINUS): Copy result obtained from
+	hash table.
+
+	* cse.c (fold_rtx, case SUBREG): If paradoxical SUBREG of a 
+	constant, return the constant.
+
+	* c-typeck.c (lookup_field): Use HOST_WIDE_INT instead of long or
+	int when we want integer wide enough to hold a pointer difference.
+
+Fri Sep 17 16:03:22 1993  Per Bothner  (bothner@cygnus.com)
+
+	* dbxout.c (dbxout_type):  For CHAR_TYPE and BOOLEAN_TYPE (in
+	languages that have them - not C), adopt an AIX convention
+	to distinguish these from other types.
+
+Fri Sep 17 09:02:06 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.h (emit_library_call_value): Fix declaration.
+
+Thu Sep 16 12:05:44 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (fixinc.ready): New target, like libgcc2.ready,
+	depending on xgcc and cpp.
+	(stmp-fixinc): Depend on fixinc.ready instead of xgcc and cpp.
+	(clean): Remove fixinc.ready.
+
+Thu Sep 16 10:22:17 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload.c (find_reloads): For PLUS operand, call find_reloads_toplev.
+
+	* optabs.c (expand_complex_abs): Fix typo in prev change.
+
+Thu Sep 16 02:06:11 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* flags.h (current_function_has_nonlocal_goto): Declare.
+	* function.h (struct function): New field has_nonlocal_goto.
+	* function.c (current_function_has_nonlocal_goto): New var.
+	(push_function_context): Save it.
+	(pop_function_context): Restore it.
+	(init_function_start): Init it.
+	* integrate.c (function_cannot_inline_p): Don't inline if it's set.
+	* stmt.c (expand_goto): Set it.
+
+	* reorg.c (mark_set_resources): For CALL_INSN, if followed by a
+	NOTE_INSN_SETJMP note, then assume that all registers are clobbered.
+	Handle case where CALL_INSN is in a sequence.
+
+Wed Sep 15 17:38:38 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gstddef.h: Delete the conditional that used to semi-avoid
+	interference with sys/stdtypes.h on Sun.  (fixincludes makes
+	it ok.)
+
+Wed Sep 15 16:17:09 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (ASM_FILE_START): Fix access information for $LIT$
+	subspace.
+
+Wed Sep 15 14:53:49 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/ns32k/ns32k.md: Add peepholes for stack adjust plus pushes.
+
+Wed Sep 15 13:38:24 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+        * c-typeck.c (lookup_field): New function (for chill).
+	(build_component_ref): Call it.
+
+Wed Sep 15 08:12:32 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* libgcc2.c: Declare __fixunsxfdi and __fixunstfdi.
+
+	* integrate.c (copy_for_inline, copy_rtx_and_substitute):
+	Always preserve the volatil flag when copying ASM_OPERANDS.
+
+Tue Sep 14 21:56:20 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* c-typeck.c (valid_compound_expr_initializer): New function.
+	(digest_init): Handle compound expressions as initializers when
+	pedantic.
+
+	* varasm.c (immed_double_const, immed_real_const_1): Don't touch
+	const_double_chain if not inside a function.
+
+Tue Sep 14 16:22:03 1993  Per Bothner  (bothner@wombat.gnu.ai.mit.edu)
+
+	* c-typeck.c (digest_init):  Compare types using comptypes
+	instead of comparing pointers.  (Helps Chill front end.)
+
+Tue Sep 14 12:16:52 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* calls.c (emit_library_call_value): Finish making it work.
+	* optabs.c (expand_float): Use emit_library_call_value.
+	(expand_unop, expand_binop): Likewise.
+	(expand_complex_abs): Likewise.
+	Also pass SUBMODE as output mode to emit_library_call_value.
+	* function.c (aggregate_value_p): Allow type node as argument.
+
+	* config/ns32k/ns32k.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE):
+	If omitting frame pointer, output an adjspd if necessary.
+	Use movd to save registers if four or less need saving.
+	Set DEPTH properly.
+
+	* reload.c (find_dummy_reload): New args inmode, outmode.
+	(find_reloads): Pass new args.
+	(push_reload): Likewise.
+
+Mon Sep 13 12:52:03 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (set_init_index): Don't allow variable indices.
+
+	* c-decl.c (complete_array_type): Handle TREE_PURPOSE
+	of array constructor elements.
+
+	* expr.c (store_constructor): Handle TREE_PURPOSE of array constructor.
+	(expand_expr, ARRAY_REF case): Likewise.
+
+	* varasm.c (output_constructor): Handle index value in
+	the TREE_PURPOSE, for array constructors.
+
+	* c-typeck.c (output_init_element): When putting an elt into a
+	CONSTRUCTOR, always set the TREE_PURPOSE (even for arrays).
+	Copy the node if it's an INTEGER_CST.
+	(output_pending_init_elements): If have gap and not incremental,
+	advance constructor_unfilled_fields or constructor_unfilled_index.
+
+Sun Sep 12 23:00:25 1993  Per Bothner  (bothner@wombat.gnu.ai.mit.edu)
+
+	* expr.c (expand_expr, case ARRAY_REF):  Coerce lower bound (if
+	non-zero) to sizetype before subtraction.
+
+Sun Sep 12 16:18:18 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (push_init_level): Pop any implicit levels
+	that have been filled up.
+	Don't die if constructor_type is 0.
+	(process_init_element): If VALUE is 0 for union type,
+	update constructor_bit_index.
+
+Sun Sep 12 10:59:08 1993  Bill Cox  (bill@cygnus.com)
+
+	* c-typeck.c (digest_init): Remove obsolete comments on args
+	TAIL, OF_WHAT.
+
+Sun Sep 12 08:45:36 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* loop.c (basic_induction_var): New arg MODE.
+	Use it to call convert_modes.
+	(strength_reduce): Supply the new arg to basic_induction_var.
+
+	* expmed.c (expand_shift): Use convert_modes.
+	(emit_store_flag): Likewise.
+
+Sat Sep 11 16:44:15 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* collect2.c (main): Provide upward compatibility with old version
+	of collect (avoids infinite mutual recursion between the two).
+
+Sat Sep 11 13:05:07 1993  Per Bothner  (bothner@wombat.gnu.ai.mit.edu)
+
+	* c-typeck.c (constructor_no_implicit):  New variable.
+	If set, dis-allows eliding of braces in initializers.
+	(Set by Chill front-end.)
+	* c-typeck.c (process_init_element):  Use it.
+
+Sat Sep 11 15:55:25 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* stor-layout.c (layout_record): Turn off PCC_BITFIELD_TYPE_MATTERS
+	rounding of field bitpos, if maximum_field_alignment is nonzero.
+
+Fri Sep 10 08:52:01 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (check_init_type_bitfields): Check for mismatch
+	between field's mode and its type's mode.
+
+	* expr.c (protect_from_queue): Don't alter an existing MEM.
+	(convert_modes): Use X's mode (not OLDMODE) unless it is VOIDmode.
+
+Fri Sep 10 01:01:32 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
+
+	* config.sub: Recognize operating system `netbsd*'.
+
+Thu Sep  9 18:09:14 1993  Per Bothner  (bothner@wombat.gnu.ai.mit.edu)
+
+	* c-typeck.c (really_start_incremental_init, push_init_level):
+	Add support for arrays with non-zero lower bounds. (Used by Chill.)
+
+Thu Sep  9 19:20:59 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* tree.c (make_node): Put PARM_DECLs of nested functions onto
+	parent's saveable obstack.
+
+Thu Sep  9 14:17:00 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (CROSS_LIBGCC1): New variable.  Rule to use when
+	building libgcc1.a for a cross compiler.  Defaults to
+	libgcc1.cross.
+	* cross-make (LIBGCC1): Default to $(CROSS_LIBGCC1) rather than
+	libgcc1.cross.
+	* config/i386/t-next, config/i386/t-sol2, config/m88k/t-dgux,
+	config/m88k/t-luna, config/m88k/t-dgux-gas,
+	config/m88k/t-luna-gas, config/m88k/t-m88k,
+	config/m88k/t-m88k-gas, config/m88k/t-sysv4,
+	config/m68k/t-next, config/mips/t-bsd, config/mips/t-bsd-gas,
+	config/mips/t-mips, config/mips/t-mips-gas,
+	config/mips/t-osfrose, config/mips/t-svr3,
+	config/mips/t-svr3-gas, config/mips/t-svr4,
+	config/mips/t-svr4-gas, config/mips/t-ultrix, config/pa/t-pa,
+	config/sparc/t-sol2, config/h8300/t-h8300, config/sh/t-sh,
+	config/t-libc-ok (CROSS_LIBGCC1): Defined to be libgcc1.null.
+
+Thu Sep  9 09:48:54 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_expr): Set ignore for COND_EXPR with VOID_TYPE.
+
+	* expr.c (convert_modes): New function.
+	(convert_to_mode): Use that.
+	* expr.h (convert_modes): Declared.
+	* optabs.c (expand_twoval_binop): Use convert_modes.
+	(expand_complex_abs): Likewise.
+	(emit_cmp_insn): Likewise.
+	(expand_inline_function): Likewise.
+	* expmed.c (expand_divmod): Likewise.
+	(emit_store_flag): Likewise.
+	* loop.c (basic_induction_var): Likewise.
+	* integrate.c (expand_inline_function): Likewise.
+
+	* optabs.c (widen_operand): New arg OLDMODE.
+	(expand_binop, expand_unop): Fix calls to widen_operand.
+
+Wed Sep  8 18:25:50 1993  Doug Evans  (dje@cygnus.com)
+
+	* sparc.c, sparc.h, sparc.md: Cosmetic changes only.  Just
+	reordered code a little.
+
+Wed Sep  8 14:49:59 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* dbxout.c (dbxout_parms): For parameters in registers, if use
+	DECL_RTL, then must use TREE_TYPE instead of DECL_ARG_TYPE.
+
+	* mips.md (fix_truncdfsi2, fixtruncsfsi2): Mark SImode scratch
+	register as early clobbered when dest is in memory.
+
+	* fixincludes (sbusdev/audiovar.h): Fix wrongly edited // comments
+	nested within /* */ comments.
+
+	* gcc.c (process_command): Don't warn for -x after last input file
+	if spec_lang is zero.
+
+	* fixinc.mips (bsd43/bsd43.h): Change /**/ to ##.
+
+	* expr.c (convert_move): When truncating, call force_reg first if
+	it is something that gen_lowpart won't understand.
+
+	* sys-protos.h (getrlimit, getrusage, setrlimit): Return int not void.
+
+Wed Sep  8 11:28:41 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* m88k.c (output_call): Avoid use of jsr.n r1, this loses on
+	the 88110.
+
+Wed Sep  8 10:51:07 1993  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.h: (MASK_*, TARGET_*): Add target masks and tests.
+	(TARGET_SWITCHES): Add target switches for various architectures
+	and mnemonics options.
+	(TARGET_OPTIONS): Add cpu type as special target option.
+	(OVERRIDE_OPTIONS): Call rs6000_override_options to decipher.
+
+	* rs6000.c (rs6000_cpu, rs6000_cpu_string): New variables.
+	(rs6000_override_options): New function.
+
+	* rs6000.md (define_attr): Expand list of instruction attributes.
+	(define_function_unit): Compute delay information based
+	upon processor type and expand functional unit types.
+	(mulsi3, divsi3, divmodsi4, divsf3, divdf3, muldf3, movsf):
+	Use expanded attributes.
+	(load with update): Likewise.
+
+Wed Sep  8 06:34:32 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (output_init_element): When adding to
+	constructor_pending_elts, copy field.
+
+Wed Sep  8 06:15:58 1993  David Gershovich  (dgirsh@iil.intel.com)
+
+	* expmed.c (make_tree, case CONST_INT): Properly set high part if
+	unsigned.
+
+	* optabs.c (expand_binop): Must always widen second operand
+	of shift.
+
+Wed Sep  8 05:16:59 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (push_init_level): Diagnose extra brace group at end
+	of record.  Set constructor_type to 0.
+	(pop_init_level): Don't output anything if constructor_type is 0.
+	(process_init_element): Do nothing if constructor_type is 0.
+
+Tue Sep  7 19:11:20 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-common.c (c_build_type_variant): Allocate new type in same
+	obstack as old one.
+
+Tue Sep  7 17:45:50 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (digest_init): Fix error message text.
+
+Tue Sep  7 14:32:51 1993  Leonid Baraz  (lbaraz@iil.intel.com)
+
+	* sched.c (schedule_block): Correct type of BIT.
+
+	* fold-const.c (fold): Don't try to process an RTL_EXPR.
+
+Tue Sep  7 06:18:50 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dbxout.c (dbxout_type): Handle enum constants bigger than one word.
+	Don't print big unsigned values as negative.
+	* c-decl.c (build_enumerator): Choose type properly for wide constants.
+	(finish_enum): Always set type of the enumerators to the enum type.
+	* c-typeck.c (default_conversion): For enum that's unsigned,
+	if it's at least as wide as int, convert to an unsigned type.
+
+	* config/i386/sol2.h (LIB_SPEC, LINK_SPEC, SWITCH_TAKES_ARG):
+	Definitions copied from sparc/sol2.h.
+	(CPP_SPEC): Copied from sparc/sol2.h, but deleted -msparclite.
+
+Mon Sep  6 14:43:20 1993  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* genextract.c (insn_name_ptr): Define for debugging.
+	(walk_rtx, case MATCH_OP_DUP): Expand recog_dup_loc using XEXP not
+	XVECEXP.
+
+Mon Sep  6 13:28:03 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rtlanal.c (modified_between_p): Handle vectors.
+	(modified_in_p): New function.
+	(refers_to_regno_p): If setting AP, FP, or SP, we clobber the
+	virtual registers.
+	* optabs.c (emit_libcall_block): Don't move insns that reference
+	things set in previous insns.
+
+Mon Sep  6 08:35:34 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/mips/mips.h: Don't declare abort.
+
+Mon Sep  6 01:03:58 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* protoize (abort): Correct volatile function declaration.
+
+Sun Sep  5 18:23:09 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* Makefile.in (USER_H): Add va-h8300.h.
+
+	* collect2.c (our_file_name, last_file_name): deleted.
+	(our_file_names): New variable.
+	(is_in_prefix_list): New function.
+	(find_a_file): Call is_in_prefix_list.
+	(main): Make COLLECT_NAMES a list of our invocations.
+	If we've invoked ourselves, try again with ld_file_name.
+
+Sun Sep  5 16:00:47 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* function.c (assign_parms): When parm needs conversion on entry,
+	don't store it back in the slot where it was passed.
+
+Sun Sep  5 14:51:14 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* c-decl.c (grokdeclarator): For PARM_DECLs, only call
+	c_build_type_variant is constp or volatilep is true.
+
+Sun Sep  5 06:44:09 1993  David Edelsohn  (edelsohn@npac.syr.edu)
+
+        * rs6000.c: (print_operand): Convert fprintf of single letters
+	to putc and convert fprintf of constant strings to fputs.
+	Output '%u' operand as hexadecimal.
+
+Sat Sep  4 11:16:18 1993  Craig Burley  (burley@gnu.ai.mit.edu)
+
+	* c-common.c (truthvalue_conversion): A complex value is nonzero
+	if either part is nonzero, not if both parts are nonzero.
+
+Fri Sep  3 19:02:41 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* c-decl.c (build_enumerator): Apply default conversion to
+	constant-expression.
+
+Fri Sep  3 18:03:47 1993  Chris Lang  (chrisl@mirc00.ncms.org)
+
+        * cccp.c (skip_if_group): Check for traditional mode when
+        skipping ahead to next #, ignore unless at beginning of line.
+
+Fri Sep  3 18:00:15 1993  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h, i386/osfelf.h (LINK_SPEC): Pass -v and -dn on to
+	the ELF linker, which now accepts these switches.
+
+Fri Sep  3 13:34:22 1993  Doug Evans  (dje@cygnus.com)
+
+	* i386/x-linux: Add -Iinclude to BOOT_CFLAGS.
+
+Fri Sep  3 01:54:19 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (READONLY_DATA_ASM_OP): Define.
+	(READONLY_DATA_SECTION): Define.
+	(EXTRA_SECTIONS): Add in_readonly_data.
+	(EXTRA_SECTION_FUNCTIONS): Add readonly_data.
+
+Thu Sep  2 19:19:14 1993  Holger Teutsch  (holger@hotbso.rhein-main.de)
+
+	* clipper.h : Improve generated code for C400 Clipper.
+	(TARGET_SWITCHES): New options `c300' `c400'.
+	(TARGET_C300, TARGET_C400): New defines.
+	(TARGET_DEFAULT): Define as TARGET_C300.
+	(CONDITIONAL_REGISTER_USAGE): New define.
+
+Thu Sep  2 17:47:57 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* glimits.h (__INT_MAX__, __LONG_MAX__, __LONG_LONG_MAX__): New macros.
+	(INT_MAX, LONG_MAX, LONG_LONG_MAX): Use them.
+	(UINT_MAX, ULONG_MAX, ULONG_LONG_MAX): Ditto.
+
+Thu Sep  2 14:26:28 1993  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h (YES_UNDERSCORES): Delete macro, since we have
+	redefined all of the macros that are based on using it.
+	(CPP_SPEC, CC1_SPEC): Remove #ifndef NO_UNDERSCORE version.
+	OSF/ELF will now omit the leading underscore by default.
+	(LINK_SPEC): Pass -dy through to ELF linker.  Do not pass -v to
+	ELF linker.
+
+	* i386/osfelf.h (CPP_SPEC, CC1_SPEC): Remove #ifndef NO_UNDERSCORE
+	version.  OSF/ELF will now omit the leading underscore by default.
+	(LINK_SPEC): Pass -dy through to ELF linker.  Do not pass -v to
+	ELF linker.
+
+
+	* final.c (tree.h): Include tree.h to get the declaration for
+	decl_printable_name.
+	(last_filename): Global to hold last filename encountered in a
+	NOTE.
+	(add_bb): New function to do common code for emitting a basic
+	block profiling increment.  Remember the current function, and if
+	debugging, line number and filename for each basic block.
+	(add_bb_string): New function to remember strings for profiling
+	basic blocks.
+	(end_final): Bump name array size to 20.  Use BSS to store profile
+	block count array unless -fno-common.  Eliminate redefining name
+	within for loop block.  Add a length field and three new parallel
+	arrays for basic blocks to hold function name, and if debugging,
+	line number and file name for basic block profiling.
+	(final_start_function): Save a printable version of the current
+	function name away if profiling basic blocks.
+	(final_end_function): Forget the current printable version of the
+	current function name if profiling basic blocks.
+	(final): Move basic block profiling support to just call add_bb.
+	(final_scan_insn): Ditto.
+	(output_source_line): Save filename in last_filename.  If the file
+	name was changed and profiling basic blocks, remember the new file
+	name for the next call to add_bb.
+
+	* libgcc2.c (L_bb): If BLOCK_PROFILER_CODE is defined, expand it
+	here directly.  If BLOCK_PROFILER_CODE is not defined, add code
+	that appends basic block profile information into a text file
+	bb.out.  Move sun3 specific block profiling code to m68k/sun3.h.
+
+	* Makefile.in (final.o): Final.c now includes tree.h.
+
+	* m68k/sun3.h (BLOCK_PROFILER_CODE): Move the sun3 specific basic
+	block profiling code here from libgcc2.c.
+
+Wed Sep  1 19:00:06 1993  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* rs6000.md (truncdfsf2): Round to single instead of doing nothing.
+
+	* jump.c (jump_optimize): When optimize conditional jump around
+	unconditional jump, handle case where prev_label can be zero.
+
+	* c-decl.c (finish_decl): For static const variables, preserve
+	initializers instead of discarding them.
+
+Wed Sep  1 18:43:01 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads): Bump REJECT for a hard register; just
+	not for a pseudo.
+
+	* rs6000.md: Clean up hex constants a bit in emitted insns.
+
+	* rs6000.c (input_operand): Allow "easy" FP constants.
+	* rs6000.h (SECONDARY_MEMORY_NEEDED): New macro.
+	* rs6000.md (movdf): Simplify by taking advantage of
+	having SECONDARY_MEMORY_NEEDED.
+	Fix bugs relating to order in which moves are done.
+
+Wed Sep  1 18:08:36 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* reload.c (find_reloads_address_1): Handle SUBREGs same as REGs.
+
+Wed Sep  1 18:03:45 1993  Mike Stump  (mrs@mole.gnu.ai.mit.edu)
+
+	* collect2.c (is_ctor_dtor): Make sizeof argument match the
+	string.
+
+Wed Sep  1 15:01:48 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* Makefile.in (start.encap): Build g++ here also.
+
+Tue Aug 31 16:30:53 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* combine.c (make_compound_operation): Handle the case
+	(and (xor/ior (lshift...) (lshift...)) ...).
+	(make_field_assignment): In get_pos_from_mask call, only invert
+	bits in mode mask.
+
+	* reload.c (push_reload): Abort is secondary_reload wants same
+	class as an input reload.
+
+	* Makefile.in (libgcc1.a, libgcc2.a): Don't use set -e.
+	* configure (i[34]86-*-lynxos, m68k-*-lynxos, sparc-*-lynxos): Use
+	xm-lynx.h, x-lynx.  Don't run fixincludes.
+	* x-lynx, xm-lynx.h: New files.
+
+	* Makefile.in (xsys-protos.h): Use fixtmp.c not tmp.c, and delete
+	it afterwards.
+
+	* function.c (assign_stack_temp): When allocate a slot too large,
+	split extra off into a slot of its own.
+	(combine_temp_slots): New function.
+	(free_temp_slots, pop_temp_slots): Call combine_temp_slots.
+
+Tue Aug 31 06:35:37 1993  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.md: (zero_extendqisi2, zero_extendqihi2): Change anonymous
+	patterns to use 16-bit and 32-bit hexadecimal values and masks
+	instead of bit ranges if constant.
+	(rotlsi3, lshrsi3, move condition codes, scc insns): Likewise.
+
+Tue Aug 31 06:25:52 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* c-decl.c (struct c_function): Remove unneeded enum_next_value.
+	(push_c_function_context, pop_c_function_context): Don't save it.
+
+Mon Aug 30 16:16:56 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* c-decl.c (get_parm_info, store_parm_decls): If PROMOTE_PROTOTYPE,
+	promote all integral types shorter than int, including short enums.
+	* c-typeck.c (convert_arguments): Likewise.
+	* cp-decl.c (grokparms): Likewise.
+	* cp-except.c (finish_exception_decl): Likewise.
+	* cp-typeck.c (convert_arguments): Likewise.
+
+Sun Aug 29 18:34:25 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.h (TARGET_NO_FP_IN_TOC): New; deleted TARGET_FP_IN_TOC.
+	(TARGET_SWITCHES): Rearrange to have three TOC choices.
+	(ASM_OUTPUT_SPECIAL_POOL_ENTRY): Use TARGET_NO_FP_IN_TOC.
+	* rs6000.c (output_toc): Likewise.
+
+Sat Aug 28 15:04:35 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* mips.h (SELECT_SECTION): Simplify sdata_section test.
+
+	* lynx.h (CPP_SPEC): Use include_v not include-v.
+	(LINK_SPEC): Add missing `-' before `k' option.
+	(PREFERRED_DEBUGGING_TYPE): Define to DBX_DEBUG.
+	(SDB_DEBUGGING_INFO): Define.
+	(MD_EXEC_PREFIX): Define to /usr/local/lib/gcc-.
+	(LINK_LIBGCC_SPECIAL_1): Define.
+	(NAME__MAIN, SYMBOL__MAIN): Define.
+
+	* sparc.h (EXTRA_CONSTRAINT): Delete 'S'.
+	* sparc.md (call+1, call+2, call_value+1, untyped_call+1): Split
+	into two patterns, one using address_operand and 'p', the other
+	immediate_operand and 'i'.
+
+Fri Aug 27 15:43:19 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (nonzero_bits): Fix reversed test for when we
+	need to insert extra bits when sizes differ.
+	(nonzero_bits, case EQ): Always return STORE_FLAG_VALUE when returning
+	integer mode; remove now-redundant test.
+
+	* rs6000.h (LINK_SPEC): Add -bexport:/usr/lib/libg.exp when -g.
+
+Fri Aug 27 13:17:28 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* rs6000.c (print_operand_address): When TARGET_MINIMAL_TOC, use
+	r30 instead of r2 for TOC references.
+	(output_prologue): If TARGET_MINIMAL_TOC, and the constant pool
+	is needed, then setup r30.
+	(output_toc): When TARGET_MINIMAL_TOC, use .long instead of .tc.
+	* rs6000.h (TARGET_MINIMAL_TOC): New macro.
+	(TARGET_SWITCHES): Add -mminimal-toc and -mno-minimal-toc.
+	(ELIMINABLE_REGS): Add elimination for r30.
+	(CAN_ELIMINATE): Add case for r30.
+	(INITIAL_ELIMINATION_OFFSET): Add case for r30.
+	(toc_section): When TARET_MINIMAL_TOC, initialize toc_table.
+
+Thu Aug 26 17:59:38 1993  Doug Evans  (dje@cygnus.com)
+
+	* gstdarg.h, gvarargs.h: Add support for H8/300H.
+	* va-h8300.h: New file.
+
+Thu Aug 26 15:15:27 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Cygnus<->FSF C++ front-end merge.
+	Wed Aug 25 17:55:58 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-class.c (alter_visibility): Properly grok protected visibility.
+
+	Wed Aug 25 12:55:17 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-typeck.c (c_sizeof): If we're given an OFFSET_TYPE, work with
+	the type it refers to.
+
+	* cp-decl.c (finish_function): Properly handle inline functions,
+	don't just call rest_of_compilation.
+
+	* cp-decl2.c (flag_inline_debug): Deleted, never used.
+	(lang_f_options): Deleted -finline-debug.
+	* toplev.c (lang_options): Likewise.
+
+	Tue Aug 24 16:06:23 1993  Mike Stump  (mrs@poseidon.cygnus.com)
+
+	* cp-dem.c: Deleted.  See demangler in the binutils distribution.
+
+	Tue Aug 24 14:24:34 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (start_function): Don't get ready to complain about a
+	built-in C-linkage function against a C++-linkage function.
+
+	Tue Aug 24 13:54:43 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* g++.c: also include <sys/types.h>
+
+	Tue Aug 24 05:39:57 1993  Michael Tiemann  (tiemann@blues.cygnus.com)
+
+	* cp-parse.y (id_scope): Renamed from scoped_id.  Also added handler
+	for case when rule appears after `dont_see_typename' action.  Now
+	handles pointer-to-member syntax.
+
+	Mon Aug 23 14:04:34 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-parse.y (datadef): Disallow forward declaration of an enum.
+
+	* cp-class.c (finish_struct): Set LAST_X to X, so we keep the chain
+	in some semblance of sanity.  Makes more than one nested typedef
+	work properly.
+	* cp-decl.c (grokdeclarator): Rewrite how class-local typedefs are
+	handled to generate a TYPE_DECL that's useful.
+
+	* cp-decl.c (start_function): Don't error out if it's a static
+	function; don't return 0, which can cause other problems.
+
+	Sun Aug 22 18:00:57 1993  Michael Tiemann  (tiemann@blues.cygnus.com)
+
+	* cp-decl.c (duplicate_decls): Set DECL_OVERLOADED flag on "C"
+	functions so that they are treated properly when "C++" functions of
+	the same name are declared before they are.
+
+	Sun Aug 22 13:31:44 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Fix how we handle binding levels, and tweak Niklas's new scoping
+	code to work 100%.  This work should significantly improve how
+	g++ handles the use of nested classes.
+	* cp-tree.h (NEW_CLASS_SCOPING): Default to 1 now!
+	* cp-decl.c (pop_binding_level): Set current_binding_level to be
+	class_binding_level if it's non-NULL.  Change code that looks for
+	our method of climbing back up the binding levels when we're
+	dealing with a parm.
+	(pushlevel_class): Call push_binding_level, not pushlevel.
+	(poplevel_class): Don't weird out if level is 0.  DO NOT set
+	class_binding_level to the level_chain, this was the biggest bug
+	that made the pushes and pops to end up being unbalanced.
+	Call pop_binding_level instead of manually putting the level on
+	the free_binding_level chain.
+	(pop_from_top_level): Don't call poplevel if previous_class is
+	non-NULL.
+	(finish_function): Call expand_start_bindings and
+	expand_end_bindings in a balanced way.
+	(finish_function): Don't flail around screwing with the RTL for
+	the function in a very special case, just always call
+	rest_of_compilation as we normally would.
+	(finish_method): Call poplevel, not pop_binding_level.
+	* cp-class.c (pushclass): Don't call unuse_fields.
+	* cp-tree.c (break_out_calls): Always call copy_node, not just
+	when changed++ == 0.
+	* cp-search.c (bridge_obstack): Deleted.
+	(push_class_decls): Use search_obstack, not bridge_obstack.
+	(init_search_processing): Don't init bridge_obstack anymore.
+
+	* cp-init.c (build_new): Don't clear LOOKUP_COMPLAIN on flags, since
+	we need to honor the visibility of what we find.
+
+	Sat Aug 21 12:07:26 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Give an error about an array of
+	offset types and method types, in addition to reference types.
+	Also make sure to set `type' to be error_mark_node for each.
+
+	* cp-parse.y (primary, PLUSPLUS/MINUSMINUS): Resolve the OFFSET_REF
+	here.
+	* cp-typeck.c (build_x_unary_op): Not here.
+
+	* cp-class.c (finish_struct): Set DECL_CLASS_CONTEXT only if it's
+	a virtual function.
+	* cp-decl.c (grokfndecl): Communicate the virtual bit to function
+	decls that overload a virtual function from a base class.
+	* cp-search.c (dfs_pushdecls): Look at DECL_CLASS_CONTEXT if it's
+	a virtual function.
+
+	Fri Aug 20 13:35:54 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Make the g++ driver work with MS-DOS.
+	* g++.c (P_tmpdir, {R,W,X}_OK) [__MSDOS__]: Defined.
+	(choose_temp_base_try, choose_temp_base, perror_exec,
+	run_dos) [__MSDOS__]: New functions for the g++ program to operate
+	correctly under MS-DOS.
+	(temp_filename, temp_filename_length) [__MSDOS__]: New variables.
+	(main): Fix off-by-one error in allocation of arglist.  When
+	running the main GCC program, handle running it under OS/2, MS-DOS,
+	as well as on a system that has execvp(2).  Only find the location
+	of the GCC executable if we're not using DOS.
+
+	* cp-decl.c (poplevel): Only call remember_end_note if we haven't
+	already created the block.  Set TREE_USED on the block.
+	(duplicate_decls): If the type of either the old or new decl is an
+	error_mark_node, we've already issued an error so set types_match
+	to be 1 now.
+	(xref_defn_tag): Mark the TYPE_DECL as ignored if doing dwarf
+	debugging.
+
+	* cp-parse.y (base_init, nodecls): Call keep_next_level to make
+	sure the BLOCK node is kept with the outermost curly braces of a
+	function.
+	(compstmt): For `{ }', insert a .pushlevel and do all of the other
+	stuff we need in every other compstmt situation, to generate proper
+	debugging for such things and handle the binding levels properly for
+	them.
+
+	Thu Aug 19 18:24:25 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-init.c (build_vec_delete): Wrap void COND_EXPR in NOP_EXPR, so
+	that the backend does not abort when trying to use the void mode
+	expression.  Fixes make check (tString.o) in libg++.
+
+	Thu Aug 19 12:21:12 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-typeck.c (build_x_unary_op): When we receive an OFFSET_REF,
+	resolve it before looking for a way to handle the operation.
+
+	* cp-method.c: Include ctype.h.
+
+	Thu Aug 19 12:00:08 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-class.c, cp-search.c (NEW_SEARCH, NEW_CONVERT,
+	CHECK_convert_pointer_to_single_level): Remove ability to revert to
+	old code, and remove checks.  Cleans-up the code a little.
+
+	Thu Aug 19 00:41:55 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-init.c (expand_aggr_init): Avoid faulting, give error instead.
+
+	Wed Aug 18 22:43:25 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-lex.h (RID_BIT_TYPE, RIDBIT_SETP, RIDBIT_NOTSETP, RIDBIT_SET,
+	RIDBIT_RESET, RIDBIT_RESET_ALL, RIDBIT_ANY_SET): New RID macros,
+	replaces RIDBIT macro.  The new macros allow us to easily expand
+	past 32 RIDs.
+	* cp-decl.c (grokvardecl, grokdeclarator): Use them.
+
+	* cp-decl.c (grokdeclarator): Implement `mutable' keyword.
+	* cp-lex.c (init_lex, ): Ditto.
+	* cp-lex.h (enum rid): Ditto.
+	* cp-ptree.c (print_lang_decl): Ditto.
+	* cp-tree.h (struct lang_decl_flags, DECL_MUTABLE_P): Ditto.
+	* cp-typeck.c (build_component_ref_1, build_component_ref): Ditto.
+	* gplus.gperf (mutable): Ditto.
+	* cp-hash.h: Regenerate.
+
+	* cp-tree.h (struct lang_type): Fill out type_flags to multiple of 4
+	bytes for MIPS.
+
+	Fri Aug 13 16:07:46 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-lex.c (DEBUG_DEFAULT_FUNCTIONS): Take out the #undef, so we can
+	use the command line to turn this on.
+
+	* cp-decl.c (grokdeclarator): Look for IDENTIFIER_TEMPLATE in the
+	name of current_class_type, not in current_class_type itself.
+
+	* cp-decl.c (pushdecl): Change to also check TREE_PUBLIC on the decl
+	in question, and do a pedwarn_with_decl instead of
+	warning_with_decl for conflicting extern declarations.
+
+	Fri Aug 13 12:26:41 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-tree.h: Delete all the old PARANOID stuff, it's suffered
+	serious bit rot.
+	(PRINT_LANG_DECL, PRINT_LANG_TYPE): Deleted, not used anymore.
+	(LANG_ID_FIELD, SET_LANG_ID): New macros.
+	({,SET_}IDENTIFIER_{LABEL_VALUE, IMPLICIT_DECL, AS_DESC, AS_LIST,
+	ERROR_LOCUS}): Redefine these macros to use the new LANG_ID_FIELD
+	and SET_LANG_ID ones, so everything is much cleaner and readable.
+
+	* cp-decl.c (pushtag) [NEW_CLASS_SCOPING]: Push into the template's
+	class scope before trying to push the decl, and then pop back out.
+	(globalize_nested_type) [NEW_CLASS_SCOPING]: Asserts 348 and 349
+	aren't correct, shadow can come out to be null in some situations.
+
+	Thu Aug 12 10:56:50 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-method.c (build_overload_name): Allow the debugger to
+	deterministically demangle names with more than 9 nested class
+	levels.
+
+	Thu Aug 12 00:46:54 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-search.c (pushd_stack_level): Fix memory corruption problem.
+	Don't assume that the obstack won't move, because they will.  Among
+	other things, the fix allows one to nest classes upto 240 levels
+	deep, instead of 60 or so.
+
+	Thu Aug 12 00:38:05 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* cp-decl2.c (finish_file):  Use new get_file_function_name().
+	* cp-tree.h (FILE_FUNCTION_FORMAT):  No longer needed.
+
+	Fri Aug  6 11:37:08 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (pop_binding_level) [DEBUG_CP_BINDING_LEVELS]: Don't
+	call abort, since we need to see where things end up.
+
+	Fri Aug  6 11:13:57 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-class.c (finish_struct): Blast away old DECL_SIZE on
+	base_layout_decl so that the old value is not reused, but rather the
+	new value in the TREE_TYPE (TYPE_SIZE ()) will be.
+
+	Thu Aug  5 18:45:26 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-init.c (emit_base_init): Move vbase vtable pointer init to very
+	end of base initialization code.  Completes July 30 change.  The
+	dynamic type of a virtual base should not be the type of the current
+	constructor, until after all bases are initialized.
+
+Thu Aug 26 06:00:09 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c: (apply_args_register_offset): Don't use ANSI-style
+	definition.
+
+Wed Aug 25 19:37:26 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* expmed.c (store_bit_field): Do not use bitfield instructions for
+	STRICT_ALIGNMENT machines if the MEM's alignment isn't as big as
+	the MEM's mode.
+
+Wed Aug 25 19:17:13 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-typeck.c (format_char_info_print_table, "p"): Allow width.
+
+Tue Aug 24 18:36:31 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.c (output_{pro,epi}log): Don't need no-ops after calls
+	to functions to save and restore FP regs.
+
+Tue Aug 24 15:43:43 1993  Michael Meissner  (meissner@osf.org)
+
+	* osfrose.h (SUBTARGET_SWITCHES): Add -mlarge-align and
+	-mword-align to control whether alignments of > 4 are honored.
+	(ASM_OUTPUT_ALIGN_CODE): If -mlarge-align allow alignments > 4.
+	(ASM_OUTPUT_ALIGN): Ditto.
+	(ASM_OUTPUT_LOOP_ALIGN): Always do a .align 2.
+	(FUNCTION_BLOCK_PROFILER): Define.
+	(BLOCK_PROFILER): Define.
+
+Tue Aug 24 14:04:11 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.c (compute_frame_size): Always align stack to 64 byte
+	boundary.
+
+	* pa.h (STACK_BOUNDARY): Stack pointer is 512 bit (64 byte)
+	aligned.
+
+	* pa.c (output_call): Use ASM_OUTPUT_INTERNAL_LABEL instead of
+	output_asm_label.
+
+Tue Aug 24 11:24:27 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+ 
+        * Merge of Objective C related changes since June 1.
+ 
+        * objc/xforward.c, objc/mutex.h: Files removed.
+        * objc/encoding.[ch]: New files.
+	* objc/todo: File removed.
+ 
+        Tue Jun  1 00:05:12 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+ 
+        * expr.c (apply_args_register_offset): New function
+        (apply_args_reg_offset): New variable
+        (apply_args_size): Added initialization of apply_args_reg_offset. 
+ 
+        * objc-act.c (offset_is_register): New variable
+        (forwarding_offset): Use apply_args_register_offset to get
+        register offset.
+        (encode_method_def, encode_method_prototype): Prepend argument
+        offset by '+' if passed in register. 
+        (apply_args_register_offset): Added declaration.
+        
+        Sun Jun  6 20:57:03 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+ 
+        * objc/encoding.h, objc/encoding.c: New files.
+        * objc/Object.m (-performv): Use new objc_msg_sendv.
+        * objc/sendmsg.c (objc_msg_sendv): Use new encoding facilities.
+        * objc/objc.h (arglist_t): Data-definition changed.
+        * objc/xforward.c: File removed.
+        * objc/Makefile (sendmsg.c, fflags, xforward): Targets removed;
+        (OBJC_O): Added encoding.o;
+        (OBJC_H): Added encoding.h, removed mutex.h.
+ 
+        * objc/objc.h (nil_method): Don't define it, import it from sendmsg.c.
+ 
+        Wed Jun 16 17:39:56 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+ 
+        * objc/objc-api.h: (CLS_SETNUMBER): Clear old number
+        * objc/sendmsg.c (__objc_update_dispatch_table_for_class): 
+        Don't free dtable... (memory leak to make posing work)
+        * objc/class.c (class_pose_as): lazy copy dtables.
+        #include sarray.h
+ 
+        Tue Jun 22 21:39:11 1993  Kresten Krab Thorup  (krab@xiv)
+ 
+        * objc/class.c (class_pose_as): Rewritten
+        * objc/sendmsg.c (__objc_update_dispatch_table_for_class): 
+        Free old dispatch table and install a new.
+ 
+        Tue Aug 24 00:41:35 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+ 
+        * objc-act.c (generate_method_descriptors, generate_ivar_lists,
+        generate_dispatch_tables): Reorganized use of constructors.
+        (build_descriptor_table_initializer, build_ivar_list_initializer,
+        build_dispatch_table_initializer): Removed argument `int *size'.  
+ 
+        Tue Aug 24 00:52:04 1993  Kresten Krab Thorup  (krab@iesd.auc.dk)
+ 
+        * objc/sendmsg.c (__objc_install_dispatch_table_for_class):
+        Dynamically expand dispatch table when full.
+
+Mon Aug 23 19:37:33 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (TARGET_TRAILING_COLON): Delete switch.  TARGET_GAS now
+	controls the use of trailing colons.
+
+Mon Aug 23 18:46:14 1993  Frederic Pierresteguy (F.Pierresteguy@frcl.bull.fr)
+
+	* config/m68k/dpx2g.h (ASM_LONG): Move from dpx2.h.
+
+	* configure (m68k-bull-sysv): Add support for working with native 
+	assembler.
+	* config/m68k/dpx2.h (MOTOROLA): Define this.
+	(VERSADOS): This the name of the DPX2 assembler. Define this in case.
+	(USG): Define this.
+	(SGS_NO_LI): define this to suppress jump table usage.
+	(TARGET_DEFAULT): Define this to 3 inside the conditional USE_GAS 
+	since bitfields do not work a clean way on DPX2. 
+	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, SELECT_SECTION,
+	SELECT_RTX_SECTION): #undef these.
+	(READONLY_DATA_SECTION): Define to data_section.
+	(*_ASM_OP, ASM_OUTPUT_*): Define these accordingly to the native 
+	assembler syntax.
+	(LONG_DOUBLE_TYPE_SIZE): Set to 64 to not use XFmode.
+	(REAL_ARITHMETIC): Define this to use the software floating point 
+	emulator.
+	(JUMP_TABLES_IN_TEXT_SECTION): Define this to 1.
+	(FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Override m68k.h default.
+	(ASM_OUTPUT_ASCII): add a new variable to take care of the lentgh of
+	the operand field which must be < 80 chars.
+	(PRINT_OPERAND_ADDRESS): Override m68k.h default. 
+	(PUT_SDB_TYPE): Output type in decimal.
+	(PUT_SDB_FUNCTION_[START|END]): Override sdbout.c default. 
+	(PUT_SDB_BLOCK_[START|END]): Override sdbout.c default. 
+
+Mon Aug 23 18:33:26 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (twoval_comparison_p): Add new arg, SAVE_P; all
+	callers changed.
+	(fold, case EQ_EXPR): If SAVE_P is true after call to 
+	twoval_comparison_p, call save_expr on the expression we make.
+
+Mon Aug 23 07:57:41 1993  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h (CC1_SPEC, CPP_SPEC): If NO_UNDERSCORE is
+	defined, the ELF compiler defaults to -mno-underscores to remove
+	leading underscores.  Clean up ROSE -pic options so that they are
+	never passed when building ELF objects.
+	* i386/osfelf.h: Likewise.
+
+Sun Aug 22 23:36:24 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* expr.c (expand_builtin_apply): Fix typo.
+
+	* pa.md (untyped_call): New define_expand.
+
+Fri Aug 20 12:24:50 1993  Ian Lance Taylor  (ian@spiff.gnu.ai.mit.edu)
+
+	* gcc.c (main): Correct August 6 change.
+
+Thu Aug 19 19:19:19 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* combine.c (simplify_shift_const, XOR case): When applying
+	distributive law, use shift_mode and GET_MODE (varop) instead of
+	result_mode.
+
+Thu Aug 19 08:28:50 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.md (scc): Fix typo in scc with compare and set.
+
+	* combine.c (can_combine_p): Don't reject SUBREG assignments here.
+	(subst): Instead, do it here, but also allow it in as a 
+	nested SUBREG since the inner one will be eliminated.
+	(simplify_and_const_int): Convert (and (neg X) (const_int 1))
+	to a shift when X is known to be either 0 or 1.
+
+	* fold-const.c (fold): Handle EQ_EXPR and NE_EXPR where both
+	args are comparisons or BIT_AND_EXPR with constant 1.
+
+Wed Aug 18 23:37:05 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* mips.h (SELECT_SECTION): Put object in sdata only if size is
+	known, i.e. greater than 0.
+
+Wed Aug 18 17:48:51 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): Don't split a PARALLEL of a SIGN_EXTEND
+	and the object being sign extended if we have made assumptions
+	about the form the I2DEST.
+
+	* combine.c (nonzero_bits): Handle case when BYTE_LOADS_EXTEND is
+	not on and we are asked for something in a mode wider than it.
+
+Wed Aug 18 02:21:35 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.md (movdf insn): Distinguish between offsettable and
+	nonoffsettable memory locations when loading/storing a GR.
+	(movdi insn): Likewise.  Loading a DImode constant can take as
+	many as 4 insns (length of 16 bytes).
+
+	* pa.md (zero_extendqihi2): No need to explicitly set a length;
+	the defaults are correct.
+	(zero_extendqisi2, floatsisf2, floatsidf2): Likewise.
+	(fix_truncdfsi2, fix_truncsfdi2, fix_truncdfdi2): Likewise.
+
+	* pa.c (emit_move_sequence): Check both reload_in_progress and
+	reload_completed when choosing a scratch/temporary register.
+
+	* pa.h (TARGET_KERNEL): Delete switch and all references to it.
+	* pa.c (emit_move_sequence): Always handle secondary reloads for
+	symbolic addresses.
+	(secondary_reload_class): Symbolic operands always need a secondary 
+	reload from R1_REGS if their target class is not R1_REGS.
+	* pa.md (HIGH for symbolic operands): TARGET_KERNEL version is now
+	the only choice.  Delete ! TARGET_KERNEL version.
+
+	* pa.h (DEFAULT_GDB_EXTENSIONS): GDB extensiosn are on by default.
+	* pa-hpux.h (DEFAULT_GDB_EXTENSIONS): Turn GDB extensions off.
+	* pa-hpux7.h (DEFAULT_GDB_EXTENSIONS): Likewise.
+
+	* pa.h (TARGET_GAS): New target flag to control use of GAS
+	specific assembler directives.
+	(TARGET_SWITCHES): Support -mgas and -mno-gas.
+	(ASM_DECLARE_FUNCTION_NAME): If TARGET_GAS then emit .PARAM
+	directives for static functions so argument relocations work.
+	* pa-ghpux.h (TARGET_DEFAULT): Enable TARGET_GAS.
+	* pa-gux7.h, pa-utahmach.h, pa.h (TARGET_DEFAULT): Likewise.
+	* pa1-ghpux.h, pa1-utahmach.h, pa1.h (TARGET_DEFAULT): Likewise.
+
+	* pa.c (hppa_legitimize_address): Rework address computation for
+	x[n - m] so that problems with implicit space register selection
+	are avoided.
+
+	* pa.h (EXTRA_CONSTRAINT): Delete unused 'S' constraint.
+	* pa.md (call_internal_symref): Make pattern unavailable if
+	TARGET_LONG_CALLS.
+	(call_value_internal_symref): Likewise.
+
+Mon Aug 16 18:47:56 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	From parkes@uiuc.edu:
+	* encore.h, ns32k.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use .double instead
+	of .word.
+	* ns32k.h (CASE_VECTOR_MODE): Now SImode; was HImode.
+	* ns32k.md (tablejump): Now SImode and uses cased.
+
+	* fold-const.c (fold, case EQ_EXPR): Re-enable converting
+	signed MOD operations to unsigned when inside comparisons
+	against zero, but only when the second operand of the MOD
+	is an integral power of two.
+
+Mon Aug 16 12:38:28 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* fixinc.dgux: Fixed va_list problem in _int_varargs.h
+
+Mon Aug 16 11:26:57 1993  Kevin Buettner  (kev@spuds.geg.mot.com)
+
+	* configure (m88k-mot-sysv4*): Added new configuration for m88k
+	delta machines running svr4.
+
+	* config/m88k/mot-sysv4.h: New file.
+
+Mon Aug 16 11:16:32 1993  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* combine.c: (use_crosses_set_p): Check for partially overlapping
+	hard regs.
+
+Sun Aug 15 20:17:20 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* reorg.c (find_end_label): If a suitable RETURN insn exists at
+	the end of the current function, place a label in front of it for
+	the end_of_function_label.
+
+Fri Aug 13 16:40:03 1993  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* c-typeck.c (check_format): For scan of "%[", skip over scan set
+        til closing ']' to avoid processing it as ordinary format characters.
+
+Fri Aug 13 16:02:23 1993  Chip Salzenberg  (chip@fin.uucp)
+
+	* c-common.c (declare_hidden_char_array): New function to
+	factor out duplicate code in declare_function_name.
+	Don't set DECL_EXTERNAL (which is illegal without TREE_PUBLIC)
+	to prevent output; instead, set TREE_ASM_WRITTEN.
+	(declare_function_name): Use declare_hidden_char_array.
+
+Fri Aug 13 14:58:52 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/ns32k/encore.h (ASM_OUTPUT_ALIGN_CODE): Override as no-op.
+
+Fri Aug 13 14:29:17 1993  Stephen Moshier  (moshier@world.std.com)
+
+	* sparc.h (LONG_DOUBLE_TYPE_SIZE): Define to 128.
+
+	* real.c (GET_REAL, PUT_REAL): Add TFmode versions.
+	(MAXDECEXP, MINDECEXP): New decimal exponent limits
+	that vary with definition of LONG_DOUBLE_TYPE_SIZE.
+	(endian, ereal_atof, real_value_truncate, einfin, emdnorm, asctoeg):
+	Add cases for TFmode.
+	(etartdouble): New function converts REAL_VALUE_TYPE to TFmode
+	for use by ASM_OUTPUT_LONG_DOUBLE.
+	(edivm, emulm): Ifdef out, replace by faster multiply and divide.
+	(etoe113, toe113, e113toe): New type conversions for TFmode.
+	(asctoe113, e113toasc): New TFmode binary <-> decimal conversions.
+	(at top level): Define constants ezero, eone, emtens, etens, ...
+	in a new 20-byte format when LONG_DOUBLE_TYPE_SIZE = 128 and
+	set NE to 10.  Otherwise, the internal format remains 12 bytes wide.
+	(etoudi, etodi, ditoe, uditoe): New functions, signed and unsigned
+	DImode float and fix, for real.c used in a libgcc-of-last-resort.
+	(esqrt): New function, correctly rounded square root for libgcc.
+	(etodec): Delete ifdef'd version.
+	(eroundi, eroundui): Rename to efixi, efixui and always
+	round towards zero.
+
+	From frank@atom.ansto.gov.au (Frank Crawford):
+	(etoibm, toibm, ibmtoe): New conversions for IBM 370 float format.
+	(e53toe, e64toe, toe64, etoe53, toe53, etoe24, toe24, asctoe53,
+	asctoeg, make_nan): Ifdef for IBM.
+
+	* real.h (REAL_VALUE_TYPE): Define array at least 20 bytes wide
+	if LONG_DOUBLE_TYPE_SIZE is 128 bits.
+	(etartdouble): Declare and use for REAL_VALUE_TO_TARGET_LONG_DOUBLE
+	when long double is TFmode.
+	(REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX): Must always round
+	towards zero.
+
+Fri Aug 13 07:50:42 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case SAVE_EXPR): Set MEM_IN_STRUCT_P
+	appropriately when the result is a MEM.
+
+	* integrate.c (expand_inline_function): Copy args that are in
+	hard regs instead of substituting them directly into insns.
+
+	* rs6000.md (subsi3): Merge alternatives.
+	(comparison patterns): Eliminate generation of "sfi."; no such
+	instruction exists.
+
+Thu Aug 12 21:24:01 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/m68k/sun3.h (CPP_PREDEFINES): Define _CROSS_TARGET_ARCH.
+
+Thu Aug 12 19:02:47 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.md (attribute "type"): Add new type, "branch".
+	(attribute "length"): New attribute; put on all insns that don't
+	have default length.
+	(branch patterns): If conditional branch won't reach, take
+	conditional branch around an unconditional branch.
+
+	* rs6000.md (plus): Split (plus (COMPARISON FOO ...) ...) at FOO.
+
+Thu Aug 12 14:04:40 1993  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h (SUBTARGET_SWITCHES): Add -munderscores and
+	-mno-underscores.
+	(CPP_SPEC): If -mno-underscores, define __NO_UNDERSCORES__.
+	(LPREFIX): Redefine, to take -m{,no-}underscores into account.
+	(ASM_GENERATE_INTERNAL_LABEL): Ditto.
+	(ASM_OUTPUT_INTERNAL_LABEL): Ditto.
+	(ASM_OUTPUT_LABELREF): Ditto.
+
+	* i386/osfelf.h (CPP_SPEC): If -mno-underscores, define
+	__NO_UNDERSCORES__.
+
+	* c-decl.c (pushdecl): Don't give nested warning messages if
+	DECL_IN_SYSTEM_HEADER is set in order not to give warnings when
+	defining new instances of __FUNCTION__ and __PRETTY_FUNCTION__.
+
+Thu Aug 12 13:42:04 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.c (legitimize_pic_address): Delete 4th arg SCRATCH.
+	Fix all callers.
+	(emit_move_sequence): Delete 3rd arg SCRATCH_REG.  Fix all
+	callers.  If operand1 is an invalid PIC address, then legitimize
+	it before doing anything else.
+	* sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Delete case for invalid
+	PIC addresses.
+	(CONSTANT_ADDRESS_P): Reject invalid PIC addresses.
+	(LEGITIMATE_PIC_OPERAND_P): New macro.
+	(GO_IF_LEGITIMATE_ADDRESS): Reject invalid PIC addresses.
+	(LEGITIMIZE_ADDRESS): Fix call to legitimize_pic_address.
+	* sparc.md (reload_insi): Delete.
+	(*): Fix all callers of legitimize_pic_address and emit_move_sequence.
+
+	* sched.c (sched_analyze_insn): Handle USE before a JUMP_INSN just
+	like a USE before a CALL_INSN.
+	* function.c (thread_prologue_and_epilogue_insns): For the
+	epilogue, put USE insns immediately before the return insn.
+
+	* sparc.h (ASM_OUTPUT_DOUBLE): Always use REAL_VALUE_TO_TARGET_DOUBLE.
+	(ASM_OUTPUT_FLOAT): Always use REAL_VALUE_TO_TARGET_SINGLE.
+
+Wed Aug 11 19:48:24 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* tree.c (get_file_function_name):  New function
+	for language-independent constructor name generation.
+	* objc-act.c (build_module_descriptor):  Use it.
+	* tree.h (CONSTRUCTOR_NAME_FORMAT): Removed.
+
+Wed Aug 11 19:50:05 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* reorg.c (try_merge_delay_insns): Fix typo.
+	(fill_simple_delay_slots): Only access the JUMP_LABEL field
+	if the INSN needing delay slots is a JUMP_INSN.
+
+Wed Aug 11 15:09:52 1993  Michael Meissner  (meissner@osf.org)
+
+	* c-typeck.c (output_init_element): Don't call default_conversion
+	for a STRING_CST if type is directly suitable for it.
+	(digest_init): Eliminate a lot of code that checks the variable
+	'element', since element is always 0 in these code paths.
+
+Wed Aug 11 17:59:28 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (combine_instructions): Fix typo on test of basic block
+	number.
+
+Wed Aug 11 17:44:38 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure (m68k-hp-bsd4.4*): Add missing *;
+	move before m68k-hp-bsd*.
+
+Wed Aug 11 09:21:56 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Get SIZE_TYPE by invoking gcc rather than cc; gcc
+	location is passed in as fourth argument.
+	* Makefile.in (stmp-fixinc): Depend upon xgcc and cpp; pass
+	objdir/xgcc -Bobjdir/ as fourth argument to $(FIXINCLUDES).
+
+Tue Aug 10 15:12:11 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* cse.c (cse_insn): After inserting src_eqv, check to see if it is
+	identical to any uninserted SET_SRCs, and if so, set their src_elt
+	to src_eqv_elt.
+
+Tue Aug 10 12:56:46 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (DOLLARS_IN_IDENTIFIERS): Define as 2.
+
+Mon Aug  9 19:02:49 1993  Per Bothner  (bothner@wombat.gnu.ai.mit.edu)
+
+	Merged fixproto stuff from Cygnus.
+
+	Fri Aug  6 12:23:04 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* fixproto, Makefile.in:  Rename tmp.[ci] -> fixtmp.[ci].
+
+	Tue Aug  3 22:24:58 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* fixproto:  Find not only nested directories, but also
+	links to directories.
+
+	Mon Aug  2 18:58:35 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* fixproto:  Add kludge to getting hit by double globbing.
+	* scan-types.sh:  Fix to emit #define, not a typedef.
+	* patch-header.c (main):  Make sure to print a space after
+	a function name when we didn't see a '('.
+	* Makefile.in (stmp-fixproto): Fix so (/*...*/) becomes ().
+
+	Fri Jul 30 17:18:22 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* fixproto:  Append seen files to fixproto.list file,
+	instead of done_files variable (which could become too long).
+	* fixproto:  Don't generate a huge rel_souce_files variable
+	(which might become too long);  instead loop over directories.
+	* fixproto:  Remove signal() from list of required functions
+	for signal.h, because we can't grok its complicted prototype.
+	* Makefile.in (mostlyclean):  Also delete fixproto.list.
+
+	Thu Jul 29 12:43:53 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* scan-decls.c (skip_to_enclosing_brace):  New function.
+	* scan-decls.c (main):  After a parameter list, skip
+	any following function body (usually for inline functions).
+
+	* fixproto:  Fix to make sure stdlib.h and unistd.h get
+	the proper required_list, even when they need to be created.
+	* fixproto:  Direct cpp error messages to /dev/null.
+	* patch-header.c:  Make less verbose.
+
+	Wed Jul 28 16:12:39 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* fixproto:  Rewrite to use a case statement instead of eval to
+	set required_list and extra_check_list.
+	* fixproto:  Simplify remaining call to tr improving portability.
+
+	* scan-decl:  Recognize inline functions, emitting typecode 'I'.
+	* patch-header (read_scan_file):  Handle inline functions.
+	* patch-header (read_scan_file):  Fix thinko.  Rename variable.
+
+Mon Aug  9 17:47:48 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (build_c_cast): For (void *) (FOO *) 0, return a nop_expr
+	so it doesn't count as a null pointer constant.
+	(convert_for_assignment, build_binary_op): Pedantically warn about
+	that case if looking for a null_pointer_constant.
+	(build_conditional_expr): Likewise.
+
+	* ns32k.c (output_move_double): Fix typos in last change.
+
+	* expr.c (store_expr): Don't return TEMP if it's a MEM.
+
+Mon Aug  9 15:26:27 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* varasm.c (assembler_variable): For XCOFF_DEBUG, restore section
+	if dbxout_symbol call changes it.
+
+	* sched.c (schedule_insns): Don't emit a NOTE at the end of the last
+	basic block if that would put it between a JUMP_INSN and a BARRIER.
+
+	* mips.h (OPTIMIZATION_OPTIONS): Use |=, not &= to set -mpgopt.
+	* mips.c (function_arg, DFmode case): Set regbase to GP_ARG_FIRST
+	if cum->arg_number greater than or equal to 2.
+
+Mon Aug  9 07:31:07 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* optabs.c (widen_operand): New function.
+	(expand_binop, expand_unop): Call it.
+
+Sun Aug  8 17:32:04 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (num_sign_bit_copies): Properly handle case when MODE is
+	narrower than that of X.
+	(simplify_shift_const): Remove change of July 26.
+
+Sun Aug  8 17:26:57 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* sparc.c (sparc_type_code): Support range types.
+
+	* expr.c (expand_increment): Call save_expr on inner expression if
+	it is itself an increment expression.
+
+	* configure (*-*-riscos*): Set broken_install.
+	(mips-*-riscos[56789]sysv4): Use xm-sysv4.h.
+	* mips/xm-sysv4.h: New file.
+	* mips/svr3-5.h, mips/svr4-5.h (_SC_PAGE_SIZE): Define to
+	_SC_PAGESIZE if that exists.
+
+	* sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Use fp_zero_operand.
+	* sparc.c (reg_or_0_operand): Use fp_zero_operand.
+	(fp_zero_operand): New function.
+
+	* c-typeck.c (build_array_ref): Force array to be allocated on the
+	stack if it is accessed by out-of-bound constant integer subscript.
+
+	* configure (mips-*): Standardize indentation.
+	(mips-*-*bsd*): Use t-bsd and t-bsd-gas.
+	(mips-*-*sysv4*): Use t-svr4 and t-svr4-gas.
+	(mips-*-*sysv*): Use t-svr3 and t-svr3-gas.
+	* mips/t-bsd, mips/t-bsd-gas, mips/t-svr3, mips/t-svr3-gas,
+	mips/t-svr4, mips/t-svr4-gas: New files.
+
+Sun Aug  8 11:33:51 1993  John F Carr  (jfc@Athena.mit.edu)
+
+	* expmed.c (SLOW_UNALIGNED_ACCESS): Define, but allow override.
+	(store_bit_field): Test that instead of STRICT_ALIGNMENT.
+	Also, allow fetching as non-bitfield if memory is aligned enough.
+	(extract_bit_field): Install code here like that in store_bit_field.
+
+Sun Aug  8 04:26:21 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_assignment): If WANT_VALUE is 0, return NULL.
+	(store_expr): Likewise.
+	Rename arg SUGGEST_REG to WANT_VALUE.
+	Never return TARGET if WANT_VALUE unless BLKmode.
+	Instead, return TEMP or a value copied from TARGET.
+	Pass 0 for WANT_VALUE in recursive calls that ignore value.
+
+	* varasm.c (contains_pointers_p): New function.
+	(assemble_variable): Use that.
+
+	* toplev.c (rest_of_decl_compilation): Don't look at DECL_IGNORED_P.
+	Don't output a read-only initialized extern variable.
+
+	* c-common.c (declare_function_name): Set DECL_EXTERNAL in the decls.
+
+Sat Aug  7 22:25:42 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (process_init_element): Don't call clear_momentary
+	if value is 0.
+
+Sat Aug  7 15:53:06 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* caller-save.c (MAX_MOVE_MAX, MAX_UNITS_PER_WORD): New macros.
+        (regno_save_mode, regno_save_mem): Use them.
+        * tm.texi (MAX_MOVE_MAX, MAX_UNITS_PER_WORD): Document them.
+
+	* c-decl.c (init_decl_processing): Make long long available to
+	use for SIZE_TYPE and PTRDIFF_TYPE.
+
+Sat Aug  7 14:47:12 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/ns32k/ns32k.md (strict_low_part add/subtract recognizers):
+	Use %2, not %1, in template.
+
+Sat Aug  7 07:40:28 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads): Don't combine two reloads if their
+	reload_reg_rtx values differ.
+
+	* alpha.c (add_long_const): New function.
+	(output_{pro,epi}log): Use it.
+	If register save area is more than 32768 from SP, compute its
+	address into a register.
+
+	* expmed.c (expand_divmod): Clean up code and documentation,
+	especially in areas related to when copies are made.
+
+	* reload.c (push_reload, find_reloads): Treat (subreg (pseudo))
+	and (subreg (mem)) the same.
+	If we have (subreg:M1 (mem:M2 ...) ...), never do anything
+	special if M1 and M2 are the same size.
+
+	* tree.c (print_obstack_name): New function; derived from
+	original debug_obstack.
+	(debug_obstack): Call print_obstack_name.
+	* print-tree.c (print_node): Print obstack node is contained in.
+
+Sat Aug  7 04:47:43 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-decl.c (finish_decl): Allow file-scope static incomplete array.
+
+Fri Aug  6 13:03:27 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* expr.c (expand_expr, case PLUS_EXPR): Goto binop2 not
+	both_summands if we should not be returning a plus.
+
+Fri Aug  6 16:35:50 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/m68k/m68k.md (call and call_value pic recognizers) [HPUX_ASM]:
+	Output plain bsr, without `@PLTPC'.
+
+Fri Aug  6 16:12:08 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (reg_or_6bit_operand): New function.
+	* alpha.h (PREDICATE_CODES): Add reg_or_6bit_operand to list.
+	* alpha.md (shifts): Use reg_or_6bit_operand for shift counts.
+
+Fri Aug  6 15:57:58 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* gcc.c (main): If standard_startfile_prefix is a relative path,
+	prepend standard_exec_prefix/MACHINE/VERSION and, if
+	GCC_EXEC_PREFIX is defined, GCC_EXEC_PREFIX/MACHINE/VERSION.
+
+	* configure: If config.status did not change, don't update its
+	modification time.
+
+Fri Aug  6 15:23:49 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (output_init_element): Fix backward test in last change.
+	Use TYPE_MAIN_VARIANT.
+
+Fri Aug  6 06:43:09 1993  Michael Meissner  (meissner@osf.org)
+
+	* g++.c (fancy_abort): Provide function in case user does
+	#define abort fancy_abort when building GCC.
+
+Fri Aug  6 00:15:21 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (main): If -v, print header search dir list.
+
+	* c-typeck.c (output_init_element): Call default_conversion here.
+	Set constructor_erroneous, etc., here.
+	(process_init_element): Not here.
+
+Thu Aug  5 20:55:47 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Cygnus<->FSF merge.
+
+	Thu Aug  5 17:07:20 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-class.c (build_vtable, prepare_fresh_vtable): Turn on
+	WRITABLE_VTABLES stuff that I disabled July 30th.
+	* cp-pt.c: Include flags.h to get write_symbols.
+
+	Thu Aug  5 15:50:25 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-class.c (finish_struct): Make DWARF conditional code, really
+	DWARF conditional (write_symbols == DWARF_DEBUG).
+	* cp-decl.c (pushtag): Ditto.
+	* cp-decl2.c (finish_vtable_vardecl): Ditto.
+	* cp-pt.c (end_template_instantiation): Ditto.
+	* cp-search.c (dfs_debug_mark): Ditto.
+
+	Wed Aug  4 15:42:19 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-typeck.c (build_object_ref): Pass the original basetype, not
+	the type value of it, into build_scoped_ref (completes change of
+	Jul 1).
+
+	Wed Aug  4 14:40:35 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-class.c (related_vslot): Additional check to make sure vslots
+	are related.
+	* cp-class.c (modify_vtable_entries): Use DECL_CONTEXT, not
+	DECL_CLASS_CONTEXT when finding the vtable to put the virtual
+	function in, as otherwise we might not be able to find secondary
+	vtables.  Ensures that the virtual function pointer will be put in
+	the correct vtable, instead of the wrong one.
+	* cp-class.c (modify_vtable_entry): Delete unused argument context.
+	* cp-class.c (modify_vtable_entries): Ditto.
+
+	Tue Aug  3 08:24:50 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-init.c (nc_nelts_field_id): New variable to cache the value of
+	the "nelts" identifier, to avoid unnecessary calls to get_identifier.
+	(init_init_processing): Use it.
+	(build_new): Likewise.
+	(build_vec_delete): Likewise.
+
+	* cp-decl2.c (walk_vtables): Make sure the type of VARS isn't an
+	error_mark_node when we're running down the list.
+
+	* cp-decl.c (grokdeclarator): Give an error and return an
+	error_mark_node, instead of saying sorry, when we're dealing with a
+	structure that's not yet been defined.   Make sure type isn't an
+	error_mark_node when looking for an anonymous type.
+
+	* cp-pt.c (end_template_instantiation): If we're supplying dwarf
+	debug info, set up the TYPE_STUB_DECL and output the rest of the
+	debug output for the decl.
+
+	* cp-search.c (pop_search_level): Change from a macro into a
+	function, so we can more easily debug it.
+
+	* cp-search.c (dfs_debug_mark): Only mark the type name as ignored
+	if we aren't doing dwarf debugging.
+
+	* cp-typeck.c (build_unary_op): Only allow the prefix operators to
+	be lvalues, not the postfix ones.
+
+	* cp-decl.c (duplicate_decls): Delete the code that saved and
+	restored the UID of a decl, it's no longer necessary.
+
+	* cp-call.c (compute_conversion_costs_ansi): Avoid generating
+	warnings when we call build_type_conversion.
+
+	Mon Aug  2 17:56:36 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (start_function): Complain about redeclaration of a
+	template function, being careful to only deal with pre-parsed
+	declarations that *are* in fact from templates.
+
+	Fri Jul 30 18:03:10 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-class.c, cp-decl.c, cp-pt.c, cp-tree.h: Delete all of the old
+	code for DEBUG_CP_BINDING_LEVELS, and replace it with a new, cleaner,
+	and more usable format.
+
+	Fri Jul 30 17:06:24 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-class.c (build_vtable, prepare_fresh_vtable): Temporarily
+	disable the change of June 20th making vtables readonly by default.
+
+	Fri Jul 30 14:47:09 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-init.c (emit_base_init): Make sure we initialize the pointer to
+	vtables even when we are not in charge.  Fixes virtual calls to derived
+	objects that have a static base type, so that they call derived
+	functions, not base functions.
+	* cp-search.c (build_vbase_vtables_init): Change comments to reflect
+	uses of last argument more accurately.  Also rename last argument to
+	a better name.
+
+	Wed Jul 28 16:23:52 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-search.c (build_type_pathname): Deleted fn.
+	* cp-class.c (build_type_pathname): Moved to here and made static,
+	since prepare_fresh_vtable is the only fn that ever uses it.
+	* cp-tree.h (build_type_pathname): Deleted prototype.
+
+	* g++.c (error) [!HAVE_VFPRINTF]: Move before fatal to avoid an
+	implicit declaration.
+
+	Wed Jul 28 13:49:58 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* Makefile.in (g++-cross): Add an explicit $(srcdir) for g++.c, pass
+	the quotes as part of GCC_NAME
+
+	* g++.c: only define GCC_NAME if it's already undefined
+
+	Tue Jul 27 10:48:30 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (finish_decl): Don't error on uninitialized const
+	arrays.  Use error, not error_with_decl, so we know what really
+	brought about the problems.
+
+	* g++.c: New file, written in C so we don't do so many exec's, as we
+	did with the shell script.
+	* g++, c++: Deleted.
+	* Makefile.in (STAGESTUFF): Added g++ and g++-cross.
+	(all.cross): Added g++-cross.
+	(all.build): Depend upon g++.
+	(g++, g++-cross): New rules.
+	(install-common): Depend upon g++.  Changed installation of g++/c++
+	to install the g++ program, and link c++ to it.  Likewise for
+	g++-cross and c++-cross.
+
+	Mon Jul 26 09:40:37 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-typeck.c (build_unary_op) [case ADDR_EXPR]: When taking the
+	address of an increment/decrement operation, act on the thing
+	being incremented, not the ..._EXPR itself.
+
+	Fri Jul 23 08:33:32 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-call.c (build_method_call): Check DECL_STATIC_FUNCTION_P, not
+	TREE_STATIC, when validating a method call in a static call context.
+
+Thu Aug  5 19:18:00 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.h (TYPE_OBSTACK): New macro.
+	(struct tree_type): Add new field obstack.
+	* tree.c (make_node, copy_node): Set TYPE_OBSTACK.
+	(build_type_variant, build_type_copy, build_pointer_type): Put
+	new node in same obstack as old node; use push/pop obstacks.
+	* stor-layout.c (layout_type): Put size-related nodes in same
+	obstack as type.
+	
+	* reload.c (push_reload, find_reloads): Refine when we reload
+	inside a SUBREG by respecting BYTE_LOADS_*_EXTEND; see comments
+	in push_reload.
+
+Thu Aug  5 14:17:59 1993  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h (ASM_DECLARE_FUNCTION_SIZE): Enable setting the
+	size for elf functions.
+
+Thu Aug  5 01:44:37 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* toplev.c (rest_of_compilation): If not optimizing, turn off
+	DECL_INLINE for functions declared as inline.  Avoid turning on
+	DECL_INLINE when -finline-functions is used without -O.
+
+Thu Aug  5 00:06:45 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* collect2.c (handler): Check whether c_file and o_file are 0.
+
+Wed Aug  4 18:06:26 1993  Samuel A. Figueroa  (figueroa@cs.nyu.edu)
+
+	* i386/gas.h (ASM_FILE_START): Write out two backslashes for each
+	backslash in the filename.
+
+Wed Aug  4 18:00:43 1993  Holger Teutsch  (holger@hotbso.rhein-main.de)
+
+	* clipper.md (movdf+2): Allow `f' register as source operand in
+	first alternative.
+
+Wed Aug  4 07:35:03 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (eliminate_regs_in_insn): Always do elimination in
+	REG_NOTES if we changed anything in the insn.
+
+	* genattrtab.c: Include gvarargs.h after hconfig.h, like elsewhere.
+
+Wed Aug  4 01:32:27 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (output_init_element): Call digest_init before
+	calling output_constant.  Always pass 0, 0 for last 2 args
+	to digest_init.
+
+	* expr.c (do_tablejump) [PIC_CASE_VECTOR_ADDRESS]: If pic,
+	copy INDEX to a register early, to avoid invalid address later.
+
+Tue Aug  3 23:56:49 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (process_command): Don't check whether file `-' exists.
+
+Tue Aug  3 18:52:13 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* configure (m88k-dg-dgux*): Use fixinc.dgux.
+	* x-dgux (INSTALL_HEADERS): Definition deleted.
+	* fixinc.dgux: New file.
+
+Tue Aug  3 17:34:53 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* calls.c (store_one_arg): Don't pass ARG->STACK as TARGET if it
+	is a different mode than the expression (i.e., a promoted mode).
+
+	* combine.c (force_to_mode): Now pass actual AND mask instead
+	of number of bits; generalize appropriately.
+	Move most cases from simplify_and_const_int in.
+	(simplify_and_const_int): Remove most code from here; call
+	force_to_mode instead.
+	(subst, make_extraction, make_compound_operation): Change calls
+	to force_to_mode.
+	(make_field_assignment): Likewise.
+	(simplify_comparison): Add call to force_to_mode when
+	doing a sign bit comparison.
+	* optabs.c (code_to_optab): New variable.
+	(init_optab): Initialize it.
+	* expr.h: Declare code_to_optab.
+
+Tue Aug  3 15:40:16 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gstddef.h: Test and define __INT_WCHAR_T_H.
+
+Mon Aug  2 22:42:10 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure (i[34]86-sequent-sysv*): New alternative.
+	* config/i386/seq-sysv3.h: New file.
+
+	* combine.c (struct undo): Rename `rtx' fields to `r'.
+	(undo_all, SUBST, gen_rtx_combine): Corresponding changes.
+
+Mon Aug  2 18:53:23 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (subst): Move simple operations inside IF_THEN_ELSE 
+	if the IF_THEN_ELSE is in the second operand as well as the first.
+	(subst, case NEG): Use plus_constant to make a PLUS.
+	(subst, case MINUS): Simplify (minus 1 (comparison foo bar)).
+	(subst, case EQ): Add a number of missing cases where 
+	comparisons may be replaced with arithmetic or logical ops.
+	(subst, case IF_THEN_ELSE): Handle (if_then_else COND (OP Z C1) Z)
+	in a more general manner.
+	(simplify_and_const_int): Make AND with gen_binary in case we
+	can simplify it.
+
+Mon Aug  2 14:45:43 1993  Frederic Pierresteguy  (F.Pierresteguy@frcl.bull.fr)
+
+	* genattrtab.c (substitute_address): In prototype, don't specify
+	the arg types of the arg functions.
+
+	* config/m68k/x-dpx2 (CLIB): Fix typo.
+
+Mon Aug  2 06:36:53 1993  John F Carr  (jfc@Athena.mit.edu)
+
+	* local-alloc.c (block_alloc):  Don't attempt to allocate a
+	SCRATCH if it will not fit in scratch_list.
+
+Mon Aug  2 00:02:54 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* calls.c (expand_call): Check properly for volatile function.
+
+Sun Aug  1 04:18:23 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-common.c (decl_attributes): Support attributes `volatile'
+	with alias `noreturn', and `const'.
+	* c-parse.in (attrib): Accept those attributes.
+
+	* c-typeck.c (build_binary_op): Warn about ordered comparison
+	between pointers to complete and incomplete types.
+
+	* c-parse.in (stmt): In an expr stmt, call default_conversion
+	for arrays and for functions.
+
+	* c-decl.c (finish_struct): No pedwarn for field with enum type
+	if size matches int.
+	(grokdeclarator): No error for void type for extern or global var.
+
+	* c-typeck.c (digest_init): No error for a STRING_CST that already
+	went through digest_init.
+	(parser_build_binary_op): Generate a NON_LVALUE_EXPR, not NOP_EXPR,
+	around a constant value.
+
+	* config/m68k/amix.h (ASM_OUTPUT_INTERNAL_LABEL)
+	(ASM_GENERATE_INTERNAL_LABEL): Definitions deleted.
+
+	* expr.c (do_tablejump): Use PIC_CASE_VECTOR_ADDRESS if defined.
+	* config/m68k/m68k.h (PIC_CASE_VECTOR_ADDRESS): Defined.
+	(GO_IF_LEGITIMATE_ADDRESS): If pic, accept LABEL+INDEX.
+
+	* c-decl.c (grokdeclarator): Warn here for volatile fn returning
+	non-void type.
+	(start_function): Not here.
+
+	* c-decl.c (grokdeclarator): Don't pass on const and volatile
+	fron function value type to function type.
+
+Sat Jul 31 01:48:08 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (digest_init): Finish getting rid of tail.
+	Also get rid of old_tail_contents.  Don't set free_tree_list.
+	(free_tree_list): Var deleted.
+
+	* c-typeck.c (process_init_element): Treat string constants specially
+	only for arrays of integers.
+
+Fri Jul 30 06:49:58 1993  Torbjorn Granlund  (tege@sics.se)
+
+	* expmed.c (mult_is_very_cheap): Delete.
+	(mult_cost): Delete.
+	(init_expmed): Delete computation of mult_cost and mult_is_very_cheap.
+	(expand_mult): Compute mult_cost here for every constant multiplier.
+	(synth_mult): Return found algorithms through a struct pointer.
+	
+Fri Jul 30 06:45:35 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold, case NOP_EXPR): Delete a pair of conversions
+	back to the original type when intermediate type is at least as wide.
+
+	* combine.c: Remove change of July 21.
+	(this_basic_block): New variable.
+	(combine_instructions): Set it.
+	(try_combine, distribute_links): Use it and basic_block_head
+	to see if we've gone to a new basic block instead of trying
+	to reproduce calculation done in flow.
+
+	* stmt.c (expand_return): Don't use jumps for "return x == y" if
+	they are expensive.
+
+Fri Jul 30 02:03:12 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i386/i386.md (ffssi2 and ffshi2 recognizers):
+	Generate unique labels by hand.
+
+Thu Jul 29 01:47:21 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (push_init_level): For braces around scalar, just warn.
+	(process_init_element): Special handling for {"foo"}.
+	(struct constructor_stack): New field `replacement_value'.
+	(push_init_level, really_start_incremental_init): Clear new field.
+	(pop_init_level): Return the replacement_value if any.
+	At top level in initializer, output that value,
+	and set the array size from it.
+
+	* c-typeck.c (digest_init): Delete arg TAIL. Fix all calls.
+
+	* objc-act.c (build_shared_structure_initializer):
+	Call default_conversion for NAME.
+	(add_objc_string): Make an ADDR_EXPR to return.
+	(init_objc_symtab): Make ADDR_EXPR for UOBJC_SELECTOR_TABLE_decl.
+
+	* objc-act.c: Build all CONSTRUCTORs with types.
+	(build_constructor): New function.  All CONSTRUCTOR builds changed.
+	(init_def_list, init_objc_symtab): New arg TYPE.
+	(init_module_descriptor): Likewise.
+	(init_objc_symtab): Pass TYPE arg to init_def_list.
+	(generate_objc_symtab_decl): Pass TYPE arg to init_objc_symtab.
+	(build_module_descriptor): Pass TYPE arg to init_module_descriptor.
+	(build_descriptor_table_initializer): New arg TYPE.
+	(generate_method_descriptors): Pass TYPE arg to
+	build_descriptor_table_initializer.
+	(generate_protocols): Pass TYPE arg to build_protocol_initializer.
+	(uild_protocol_initializer): New arg TYPE.
+	(build_ivar_list_initializer): New arg TYPE.
+	(generate_ivar_lists): Pass TYPE arg to build_ivar_list_initializer.
+	(build_dispatch_table_initializer): New arg TYPE.
+	(generate_dispatch_tables): Pass TYPE arg to
+	build_dispatch_table_initializer.
+	(build_category_initializer): New arg TYPE.
+	(build_shared_structure_initializer): New arg TYPE.
+	(generate_category): Pass TYPE arg to build_category_initializer.
+	(generate_shared_structures): Pass TYPE arg to
+	build_shared_structure_initializer.
+
+	* config/i386/x-ncr3000 (CC, OLDCC): Deleted.
+	* config/i386/xm-sysv4.h [__HIGHC__]: Include alloca.h.
+
+	* convert.c (convert_to_integer): Don't pass truncate into ABS_EXPR.
+
+	* configure: Ignore -enable... and --enable... options.
+
+Wed Jul 28 20:15:05 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (compare): Add ./ in tail command.
+
+Wed Jul 28 15:36:11 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* integrate.c (copy_rtx_and_substitute, case LABEL_REF): If
+	we turn off LABEL_REF_NONLOCAL_P, increment function_call_count.
+
+	* integrate.c (copy_for_inline, case LABEL_REF): Properly copy
+	LABEL_REF with LABEL_REF_NONLOCAL_P set.
+	Copy LABEL_OUTSIDE_LOOP_P flag.
+	(copy_rtx_and_substitute, case LABEL_REF): Likewise.
+	(copy_rtx_and_substitute, case CONST): Make recursive call for
+	a LABEL_REF in the constant pool.
+
+	* c-iterate.c (iterator_loop_{pro,epi}logue): Set TREE_SIDE_EFFECTS
+	on the MODIFY_EXPRs we make.
+	Pass const0_rtx as TARGET to expand_expr.
+	* cp-cvt.c (build_up_reference): Set TREE_SIDE_EFFECTS on MODIFY_EXPR.
+	* stmt.c (expand_return): Likewise.
+
+Wed Jul 28 12:17:39 1993  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h (SUBTARGET_OVERRIDE_OPTIONS): Use this instead of
+	OVERRIDE_OPTIONS.
+
+Wed Jul 28 13:45:13 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_expr, case ADDR_EXPR): Treat CONCAT like REG.
+
+	* c-decl.c (start_function): Warn if volatile fn returns non-void.
+
+Wed Jul 28 13:22:15 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* c-parse.in (simple_if, if_prefix, stmt): Undo Jul 7 change.
+	(if_prefix): Store stmt_count in $$ not $1.
+	(stmt): Add comment explaining why empty-if warning is here.
+
+	* sparc.c (shift_operand): New function.
+	* sparc.md (ashlsi3, ashrsi3, lshrsi3): Use shift_operand.
+
+	* loop.c (strength_reduce): Don't ignore a giv that depends on a
+	reversed biv.
+
+	* mips/x-sysv (ALLOCA): Define.
+	* mips-5.h (STARTFILE_SPEC): Define.
+	* x-iris3: New file.
+	* configure (mips-sgi-*): Use x-iris3 instead of x-iris.
+	* Makefile.in (libgcc.a): Do `chmod +w *' between two ar commands.
+
+	* i960.h (INITIAL_FRAME_POINTER_OFFSET): Negate, and subtract 64
+	bytes.
+
+	* sched.c (schedule_block): Do not emit line number notes before
+	other notes.
+
+	* varasm.c (assemble_variable): flag_no_common applies only if
+	external linkage.
+
+	* calls.c (expand_call): For unaligned arguments on
+	BYTES_BIG_ENDIAN machines, correct bitfield offset calculations.
+	* expr.c (move_block_from_reg): New argument SIZE.  If SIZE less
+	than word and BYTES_BIG_ENDIAN, shift block left to align it
+	before storing it to memory.
+	* expr.h (move_block_from_reg): Add new argument to prototype.
+	* function.c (assign_parms): Pass extra argument SIZE to
+	move_block_from_reg calls.
+	(locate_and_pad_parm): For !ARGS_GROW_DOWNWARD case, move downward
+	padding pad_below call after round_up call.
+	* mips.c (function_arg): Shift all structures less than 4 bytes,
+	not just those which are QImode or HImode.
+	* a29k.h, alpha.h, i960.c, m88k.c, pa.c, romp.h, rs6000.h:
+	Add new parameter to move_block_from_reg calls.
+
+Wed Jul 28 12:40:06 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* expmed.c (store_split_bitfield): Fix handling of bitfields that
+	cross word boundaries, can only handle a word at a time.
+	(extract_split_bitfield): Likewise.
+
+Wed Jul 28 06:44:50 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* configure: Use m88k/x-sysv3 for m88k-*-sysv3.
+	* m88k/x-sysv3: New file, use gnu alloca.
+
+Tue Jul 27 13:53:06 1993  Per Bothner  (bothner@wombat.gnu.ai.mit.edu)
+
+	* fixproto:  Pass '-' to tr as the 1-character range '---'.
+	* cross-make:  Define STMP_FIXPROTO to empty for cross.
+	* patch-header.c (read_scan_file):  Minor re-write to avoid
+	obstack_copy0, since that uses the non-portable bcopy().
+	* Makefile.in (patch-header):  Use $(HOST_OBSTACK).
+	* gen-protos.c (main):  Disable obnoxious warning message.
+
+Tue Jul 27 16:42:44 1993  John F Carr  (jfc@Athena.mit.edu)
+
+	* fold-const.c (optimize_bit_field_compare): Preserve volatility
+	of bitfield.
+
+Tue Jul 27 01:33:25 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (convert_for_assignment): Mismatch in signedness
+	of pointer targets should not inhibit warnings for const mismatch.
+
+	* function.c (assign_parms): Don't copy too much when extending
+	parm_reg_stack_loc.
+
+	* config/m88k/m88k.h (ASM_DECLARE_OBJECT_NAME): Don't make a .size
+	if the size is not known.  Use DECL, not decl.
+	* config/svr4.h, config/i386/osfrose.h: Likewise.
+
+	* c-typeck.c (set_init_index): Add pedantic warning.
+	(set_init_label): Likewise.
+
+Tue Jul 27 14:22:48 1993  Frederic Pierresteguy  (F.Pierresteguy@frcl.bull.fr)
+
+	* gstddef.h (_WCHAR_T_H): Test this and define this. 
+
+	* configure (m68k-bull-sysv): Test for --stabs;
+	generate either native coff or dbx-in-coff debugging information.
+
+	* config/m68k/dpx2.h (CPP_PREDEFINES): added -D_POSIX_SOURCE 
+ 	-D_XOPEN_SOURCE -D_BULL_SOURCE to the list.
+ 	(CPP_SPEC): removed ansi definition.
+ 	* config/m68k/dpx2g.h (DBX_DEBUGGING_INFO): Remove this to let gcc 
+	deals with gas and coff.
+	* config/m68k/dpx2cdbx.h: New file for gas and dbx-in-coff.
+ 	* config/x-dpx2 (CLIB): removed -lc_s and added -lmalloc.
+ 	(X_CFLAGS): removed -D_SYSV and added -D_POSIX_SOURCE -D_XOPEN_SOURCE 
+ 	-D_BULL_SOURCE to deal with the posix stuff.
+
+Mon Jul 26 17:42:22 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (digest_init): Add `static' to definition.
+
+	* combine.c (simplify_shift_const): Inhibit hacks based on
+	num_sign_bit_copies if shift_mode differs from the mode of varop.
+
+	* toplev.c (main): When -W sets warn_uninitialized, avoid later warning
+	if warn_uninitialized is not supported.
+
+Mon Jul 26 14:14:02 BST 1993	Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* collect2.c (NAME__MAIN, SYMBOL__MAIN): Add default definitions.
+	(write_c_file, scan_prog_file [OBJECT_FORMAT_ROSE]):
+	Use macros instead of explicitly __main.
+
+	* function.c (expand_main_function): Likewise.
+
+	* libgcc2.c (__main): Use macro SYMBOL__MAIN instead of invoking
+	directly.
+
+Mon Jul 26 16:03:33 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold, case EQ_EXPR): Remove code that converts
+	mod to unsigned mod; it isn't correct for negative operands.
+
+	* toplev.c (strip_off_ending): Allow .ad* for Ada.
+
+Mon Jul 26 14:06:04 1993  Bill Cox  (bill@majipoor.cygnus.com)
+
+	* c-decl.c (print_lang_decl, print_lang_type): Correct function
+	  headers to match prototype, and calls.
+
+Sun Jul 25 17:01:34 1993  Per Bothner (bothner@kalessin.cygnus.com)
+
+        * fixproto:  New script to add prototypes and otherwise clean up
+        system include files (especially for C++ and also gcc -Wimplicit).
+        * scan-decl.c:  New program used by fixproto to analyze header
+        files (it extracts declarations from cpp output).
+        * patch-header.c:  New program used by fixproto to analyze and
+        patch header files.
+        * scan.c:  New file.  Routines used by scan-decls and
+	patch-header.
+        * scan.h:  New file.  Common declarations.
+        * gen-protos.c:  New file.  Massages a list of prototypes.
+	* Makefile.in:  Add fixproto support.
+	* populate:  Deleted.  Superseded by fixproto.
+
+Sun Jul 25 03:56:18 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (start_init): Fill in p->next.
+
+	* config/i386/i386.md (movstrictqi): Change q<-g alternative to q<-m.
+
+Sat Jul 24 18:17:55 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (emit_move_insn_1): For complex stack push,
+	don't use change_address.
+
+Sat Jul 24 15:05:50 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* fixincludes (unistd.h):  Generalize AIX fix (for using
+	C++ keyword new) to unistd.h as well as stdio.h.
+	* fixincludes (sys/wait.h):  Fix NeXT problem with
+	a 'wait(union wait*)' prototype that breaks Posix.1.
+	* fixincludes (math.h):  For C++, patch AIX's use of
+	'class' as function name.
+
+Sat Jul 24 02:48:31 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* function.c (put_reg_into_stack): New subroutine.
+	(put_var_into_stack): Use that; handle CONCAT.
+
+	* varasm.c (assemble_variable): For array whose size comes from
+	the initializer, determine proper alignment here.
+	(assemble_align): New function.
+
+	* c-typeck.c: Handle gaps in record initializers.
+	(constructor_bit_index): New variable.
+	(constructor_stack): New field bit_index.
+	(really_start_incremental_init, push_init_level): Save and init it.
+	(pop_init_level): Restore it.
+	(output_init_element): Update constructor_bit_index.
+	Use it to output gaps.
+	(pop_init_level): Speed up by using constructor_bit_index.
+
+	* c-typeck.c (process_init_element): Accept STRING_CST for subarray.
+
+	* loop.c (mark_loop_jump): Handle weird cases like jumping to
+	a symbol_ref.
+
+Fri Jul 23 15:55:14 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* c-tree.h: Fix prototypes for print_lang_decl, print_lang_type.
+
+Fri Jul 23 15:06:05 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (start_init): Second arg is now a tree.
+
+Fri Jul 23 08:26:43 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Cygnus<->FSF merge.
+	Thu Jul 22 09:54:05 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (push_overloaded_decl): Fix typo in warning msg.
+
+	Tue Jul 20 13:13:18 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-class.c (build_vtable, prepare_fresh_vtable): Make the vtables
+	readonly by default.
+
+	Mon Jul 19 13:16:58 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-tree.h (NEW_CLASS_SCOPING): Turn this off for now.
+
+	Mon Jul 19 11:04:51 1993  Jason Merrill  (jason@rtl.cygnus.com)
+
+	* cp-class.c (build_vfn_ref): Rename `index' to `idx'.
+
+	Fri Jul 16 07:44:49 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-class.c (finish_struct): Check both if the type has a default
+	constructor, and if it has a non-const copy constructor, so we'll know
+	not to generate a const copy constructor for the type we're working on.
+	* cp-lex.c (cons_up_default_function): Add other front-end debugging
+	info.
+	(default_copy_constructor_body): And take it out of here.
+
+	* cp-expr.c (cplus_expand_expr): Add missing arguments to expand_expr.
+
+	Thu Jul 15 16:54:33 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-lex.c (default_copy_constructor_body): Also check to copy
+	anonymous unions, since they don't show up as FIELD_DECLs.
+	(largest_union_member): New function.
+
+	Thu Jul 15 16:23:18 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-expr.c (cplus_expand_expr): Use resolve_offset_ref to handle
+	OFFSET_REFs, as anything else would be wrong.
+	
+	Thu Jul 15 13:23:40 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-tree.h (CLASSTYPE_INTERFACE_KNOWN,
+	SET_CLASSTYPE_INTERFACE_UNKNOWN_X, SET_CLASSTYPE_INTERFACE_UNKNOWN,
+	SET_CLASSTYPE_INTERFACE_KNOWN): New access methods.
+	* cp-class.c (import_export_vtable, duplicate_tag_error,
+	finish_struct): Use new access method.
+	* cp-decl.c: (grokfndecl, grokdeclarator, xref_tag): Ditto.
+	* cp-gc.c (build_t_desc): Ditto.
+	* cp-lex.c (set_vardecl_interface_info, make_lang_type): Ditto.
+	* cp-pt.c (end_template_instantiation, do_pending_expansions):
+	Ditto.
+	* cp-search.c (dfs_debug_mark): Ditto.
+
+	* cp-decl.c (grok_reference_init): Reword error message.
+
+	Wed Jul 14 09:17:18 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-cvt.c (convert_to_reference): Adjust change of May 30th to
+	accept more things (and still handle ARM p308 properly).  Disable
+	the old way, but leave it to be properly fixed later.
+
+	Tue Jul 13 22:43:38 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (get_binfo_from_vfield): New function.
+	* cp-decl.c (finish_function): Use get_binfo_from_vfield to get the
+	binfo used to find the vtable for this vfields.  Corrects problem
+	with vtable pointers being wrong during called member functions,
+	called from destructors.
+
+	Tue Jul 13 11:52:37 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Don't pedwarn about a duplicate long
+	for `long long', until we figure out how we really want to handle it.
+
+	Sat Jul 10 14:54:36 1993  Chip Salzenberg  (chip@fin.uucp)
+
+	* cp-tree.h (warn_redundant_decls, warn_missing_braces): Declared.
+	* cp-decl.c (warn_redundant_decls): Not declared here.
+	* cp-decl2.c (warn_missing_braces): Defined.
+	(lang_decode_option): Handle -Wmissing-braces.
+	* cp-type2.c (process_init_constructor): Test warn_missing_braces.
+
+	* cp-typeck.c (build_binary_op_nodefault): Make warning
+	message distinguish between right/left and shift/rotate.
+
+	* cp-decl.c (init_decl_processing): When making SIZETYPE,
+	start with name in SIZE_TYPE.  If -traditional, use a signed
+	version of that type, if it is unsigned.
+
+	* cp-typeck.c (c_sizeof, build_c_cast): Set TREE_OVERFLOW in
+	addition to TREE_CONSTANT_OVERFLOW.
+
+	* cp-decl.c (finish_enum): Store layout results into variant types.
+
+	* cp-typeck.c (internal_build_compound_expr): When pedantic, don't
+	simplify a COMPOUND_EXPR, so that it won't be mistaken for an
+	lvalue or an integer constant expression.
+
+	* cp-parse.y (program): After extdefs, pop any unpopped binding lvls.
+
+	* cp-decl.c (grokdeclarator, ARRAY_REF case): Build array type,
+	and then build the variant array type.
+
+	* cp-lex.c (real_yylex): Avoid invalid shift for erroneous empty
+	char const.
+
+	* cp-decl.c (complete_array_type): Make maxindex -1 for empty
+	constructor.
+
+	* cp-type2.c (initializer_constant_valid_p): Allow cast of ptr to
+	wider integer.
+
+	* cp-decl.c (pushdecl): Copy DECL_FRAME_SIZE for inline function decls.
+
+	* cp-decl.c (finish_decl): Do not allocate static var of
+	unknown size.
+	(complete_array_type): Use 0 as default maxindex.
+
+Fri Jul 23 07:18:20 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (aggregate_value_p): An ARRAY_TYPE is also an aggregate.
+
+Fri Jul 23 01:54:28 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* gcc.c (main): Improve "No input files" error message.
+
+Thu Jul 22 23:00:11 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* reorg.c (relax_delay_slots): Do not redirect a jump if doing so
+	invalidates insns in the jump's delay slots.
+	(redirect_with_delay_slots_safe_p): New function.
+
+Thu Jul 22 18:01:29 1993  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* invoke.texi, m88k.h, m88k.c: Changed serialize-volatile 
+	to use tb1 instead of fldcr, fldcr has problems on 88110.
+	Made serialize-volatile the default behavior for all models.
+
+Thu Jul 22 11:19:28 PDT 1993  Ron Guilmette (rfg@netcom.com)
+
+	* fixinc.svr4 (making LIB absolute): Just concat with $ORIG_DIR.
+
+	* configure:  Use `sed' rather than `cat' to put `MAYBE_TARGET_DEFAULT'
+	definition in.  (This is a work-around for an NFS bug.)
+
+Thu Jul 22 14:59:38 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c: Output most constructors an element at a time.
+	(digest_init): Deleted code for raw constructors.
+	(process_init_constructor): Function deleted.
+	(start_init, finish_init): New functions.
+	(really_start_incremental_init)
+	(push_init_level, check_init_type_bitfields, pop_init_level)
+	(set_init_index, set_init_label, process_init_element)
+	(output_init_element, output_pending_init_elements): New functions.
+	* c-tree.h: Declare most of those functions.
+
+	* c-parse.in (cast_expr): Use new initializer parsing functions.
+	(initdcl, notype_initdcl): Likewise.
+	(init): Likewise.
+	(initlist_maybe_comma, initlist1): These replace initlist.
+	(initelt): New nonterminal.
+	Change specified index syntax to `[INDEX]='.
+	Change specified field syntax to `.NAME='.
+
+	* varasm.c (output_constant_def_contents): New function.
+	(output_constant_def): Use it.
+	(deferred_constants): New list of constants not yet output.
+	(defer_addressed_constants): New function.
+	(output_deferred_addressed_constants): New function.
+	(make_decl_rtl): Don't ever replace old rtl;
+	instead, change its mode if necessary.
+
+Wed Jul 21 15:50:19 1993  Jim Wilson  (wilson@cygnus.com)
+
+	* expr.c (expand_expr, COMPONENT_REF case): For unaligned object
+	in an aligned union, set MEM_IN_STRUCT_P if create a MEM rtx.
+
+	* sparc.c (output_move_double): Only set highest_first if first reg
+	of dest overlaps memory src address.  Otherwise, if addreg1 set and
+	is same as second reg of dest, suppress trailing decrement.
+	
+	* sparc.md (movdi+1): Delete & from r/i constraint.
+
+	From rfg@netcom.com:
+	* fixinc.svr4 (<ftw.h>):  Don't apply specialized fixes to <ftw.h>
+	if we are on Solaris.  They are not needed in that case.
+
+	* combine.c (nonlocal_label_list): New variable.
+	(combine_instructions): Set it.
+	(try_combine, distribute_links): CALL_INSN terminates a basic
+	block if nonlocal_label_list is set.
+
+	* config/mips/{bsd-4.h, bsd-5.h, iris3.h, mips.h, news4.h,
+	news5.h, nws3250v4.h, osfrose.h, svr3-4.h, svr3-5.h, svr4-4.h,
+	svr4-5.h, ultrix.h} (CPP_SPEC): Define LANGUAGE_ASSEMBLY, not
+	LANGUAGE_C, when compiling a .s file.
+
+	* m68k.h (TARGET_SWITCHES): Recognize -m68851, -mno-68851,
+	-m68302, -mno-68302, -m68332, -mno-68332.
+
+	* lynx.h, i386/lynx.h, m68k/lynx.h, sparc/lynx.h: New files.
+	* i386.h (OVERRIDE_OPTIONS, SUBTARGET_OVERRIDE_OPTIONS): Define.
+	* m68k.h (TARGET_SWITCHES): Add SUBTARGET_SWITCHES.
+	(OVERRIDE_OPTIONS): Add SUBTARGET_OVERRIDE_OPTIONS.
+	(SUBTARGET_SWITCHES, SUBTARGET_OVERRIDE_OPTIONS): Define.
+	* sparc.h (TARGET_SWITCHES): Add SUBTARGET_SWITCHES.
+	(OVERRIDE_OPTIONS): Add SUBTARGET_OVERRIDE_OPTIONS.
+	(SUBTARGET_SWITCHES, SUBTARGET_OVERRIDE_OPTIONS): Define.
+
+	* fixincludes (sys/types.h sys/stdtypes.h): Delete newline before
+	do.
+	(machine/cpu.h): Delete space in `2>& 1'.
+
+	* config.sub (lynx): Recognize as vendor.
+	(lynxos): Recognize as OS.
+	* configure (i386-*-lynxos, sparc-*-lynxos, m68k-*-lynxos):
+	Recognize as new configurations.
+
+	* gcc.c (link_command_spec): Move %{T*} after %{L*} and %D.
+
+	* optabs.c (expand_binop): Synthesize double word shifts and
+	rotates from single word shifts.
+	* sparc.md (ashldi3, lshrdi3): Obsolete, deleted.
+
+Wed Jul 21 15:55:18 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixinc.svr4: When fixing ftw.h, preserve remainder of
+	ftw and nftw declaration; don't just rewrite it.
+
+Tue Jul 20 23:35:36 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* collect2.c (is_ctor_dtor): Delete leading _'s from sym names
+	in `special' table, in neither-dots-nor-dollars case.
+
+Tue Jul 20 18:49:09 1993  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h, i386/osfelf.h (CC1_SPEC): Don't turn on
+	-mhalf-pic if ELF.
+
+	* i386/osfrose.h (ASM_FILE_END): Put filename, sans directory into
+	the .ident string.
+
+Tue Jul 20 15:07:06 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c: Add prototypes for static functions.
+	(subst, case IF_THEN_ELSE): Add missing arg to make_compound_operation.
+	(make_compound_operation, case ASHIFTRT): Delete extra gen_unary arg.
+
+Mon Jul 19 18:15:48 1993  John F Carr  (jfc@Athena.mit.edu)
+
+	* rs6000.c (current_file_function_operand): New function.
+	* rs6000.h (ENCODE_SECTION_INFO): New macro.
+	(PREDICATE_CODES): Add current_file_function_operand.
+	* rs6000.md: Add variants of call and call_value patterns for
+	calls to functions defined in the same file.  Omit the TOC pointer
+	reload after such calls.
+
+Mon Jul 19 13:17:52 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* reorg.c (fill_simple_delay_slots): Try filling any insn needing
+	delay slots with a JUMP_INSN.
+
+Mon Jul 19 00:33:24 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* varasm.c (assemble_variable): New arg DONT_OUTPUT_DATA.
+	* toplev.c (rest_of_decl_compilation): Pass 0 as DONT_OUTPUT_DATA.
+
+Sun Jul 18 15:38:04 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (c_expand_return): Set TREE_SIDE_EFFECTS
+	for the MODIFY_EXPR that we make.
+
+	* stmt.c (expand_return): When expanding assignment into DECL_RESULT,
+	ignore the "value"--do it for effect.
+
+	* fold-const.c (fold): Handle CONJ_EXPR.
+	* c-typeck.c (build_unary_op): Support CONJ_EXPR.
+	Change BIT_NOT_EXPR to CONJ_EXPR if arg is complex.
+
+Sun Jul 18 14:22:05 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (init_function_start): Initialize trampoline_list here.
+	(expand_function_end): Not here.
+
+Sun Jul 18 01:24:54 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-typeck.c (common_type): Use TYPE_MAIN_VARIANT when preferring
+	long int to int (when width is the same).
+
+	* varasm.c (assemble_variable): Move debugging output calls
+	to after section has been selected.  Select the section again
+	if the debugging output call changes the section.
+	* dbxout.c (dbxout_symbol_location): Call in_text_section
+	to decide whether to use DBX_STATIC_CONST_VAR_CODE.
+
+	* objc-act.c (synth_module_prologue): Call layout_type for the array
+	type used for _OBJC_SELECTOR_TABLE.
+
+Sat Jul 17 00:41:52 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (expand_increment): Convert constant subtract to add
+	before setting single_insn.  Compensate for this when choosing
+	the tree code to pass to `build'.
+
+	* toplev.c (rest_of_compilation): If function is extern inline,
+	even if we can't inline it, don't compile it.
+
+Fri Jul 16 21:33:50 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dwarfout.c (dwarfout_init): Report failure of getpwd.
+
+Fri Jul 16 15:59:07 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* config/m68k/hp320.h (LINK_LIBGCC_SPECIAL, SPACE_AFTER_L_OPTION)
+	(LIB_SPEC): Move outside of USE_GAS conditional.
+
+Fri Jul 16 14:26:25 1993  David d `zoo' Zuhn  (zoo@cygnus.com)
+
+	* config.sub: if [ "$os" ] --> if [ x"$os" != x"" ]
+
+Fri Jul 16 05:50:35 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* c-typeck.c (check_format): With -Wformat, warn about
+	printf("%ld", 1) even if sizeof (int) == sizeof (long),
+	since the code isn't portable.  Similarly for "%d" vs 1L.
+
+	* c-typeck.c (convert_arguments) [PROMOTE_PROTOTYPES]:
+	With -Wconversion, use unpromoted type to check for signedness changes.
+
+Thu Jul 15 13:04:48 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes (stdlib.h): Check carefully for definition of size_t.
+
+Wed Jul 14 19:05:51 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes: Fix size_t definition in stdlib.h as in types.h.
+	Also a conditional to prevent repeated definition.
+
+Wed Jul 14 14:53:26 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Don't discard comment end characters on lines that
+	look like "#endif */".  Fixes Esix 4.0.4 problem.
+
+Wed Jul 14 12:20:13 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.c (emit_move_sequence): Use cint_ok_for_move instead of
+	checking each condition ourselves.
+
+	* pa-utahmach.h (CPP_PREDEFINES): Do not define HPUX_SOURCE, hp700
+	or HP700.
+	* pa1-utahmach.h (CPP_PREDEFINES): Do not define hp9000s800,
+	hp9k8, HPUX_SOURCE, or hp800.
+
+	* Allow unconditional jumps in delay slots of call and millicode
+	call instructions.
+	* pa.h (TARGET_JUMP_IN_DELAY): New target flag to allow/disallow
+	jump instructions in call delay slots.
+	(TARGET_SWITCHES): Add -mjump-in-delay and -mno-jump-in-delay.  
+	Provide -mno alternatives for most options.
+	(output_call): Declare.
+	* pa.c (output_call): New function to output a function call or
+	millicode call, possibly with a jump in the delay slot.
+	(output_mul_insn): Accept additional argument, use output_call.
+	(output_div_insn): Likewise.
+	(output_mod_insn): Likewise.
+	(jump_in_call_delay): New function to determine if the given 
+	JUMP_INSN is in the delay slot of a call or millicode call.
+	* pa.md (uncond_branch): New type attribute.  Explicitly disallow
+	uncond_branch in most delay slots.
+	(in_call_delay attribute): New test for delay slot of call insns.
+	Allow uncond_branches in the delay slot if TARGET_JUMP_IN_DELAY.
+	(define_delay for calls, millicode calls, branches, returns, etc):
+	Broken up into two define delays.  One for calls and millicode 
+	calls, a second for branches, returns, etc.
+	(millicode insns): Pass the current insn down to 
+	output_{mul,div,mod}_insn.
+	(jump insn): Use "uncond_branch" type attribute.  Length of this
+	insn varies if it is in the delay slot of a call.
+	(call_internal_symref): Use output_call.
+	(call_value_internal_symref): Likewise.
+	(call_internal_reg): Use %r syntax instead of just register numbers.
+	(call_value_internal_reg): Likewise.
+
+Wed Jul 14 02:19:11 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* rtl.def (CONCAT): New rtx code.
+	* emit-rtl.c (gen_lowpart_common, gen_highpart): Handle CONCAT.
+	(operand_subword): Likewise.
+	(gen_reg_rtx): For complex mode, return a CONCAT of two pseudos.
+	* stmt.c (expand_decl): Make a CONCAT, for decls of complex type.
+	* dbxout.c (dbxout_symbol_location): Subroutine broken out from
+	dbxout_symbol.  Handle CONCAT here.
+	(dbxout_symbol_name): New subroutine.  Handle anonymous decls too.
+	(dbxout_reg_parms): Simplify using dbxout_symbol_location.
+	Handle CONCAT.
+
+	* c-typeck.c (build_c_cast): When casting to union, if value is array
+	or function, do default_conversion.
+
+Wed Jul 14 00:52:23 1993  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* config.sub: Add case for Bull dpx/2.
+
+Mon Jul 12 17:26:53 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes: When looking for #define CTRL,
+	accept multiple spaces between the two words.
+
+	* reload1.c (reload): Don't free scratch_list or scratch_block if 0.
+
+Mon Jul 12 17:12:31 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* c-common.c (unsigned_conversion_warning): Just use `warning',
+	not `pedwarn'; these diagnostics are not required by Standard C.
+	* c-typeck.c (convert_for_assignment): Use `convert_and_check',
+	not `convert', for converting arithmetic types, since
+	`convert_and_check' no longer reports an error
+	where it should just warn.
+
+Mon Jul 12 16:44:37 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/i386/i386.md (ffssi2, ffshi2): Assume bsf produces
+	garbage if input is 0.  Use jumps to load output in that case.
+
+	* config/vax/vax.h (INITIALIZE_TRAMPOLINE): Add code to
+	do an rei to clear the insn cache.
+
+Sun Jul 11 18:13:47 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/ns32k/ns32k.c (output_move_double): Do the low reg first,
+	when only the high reg has an overlap.
+
+	* c-typeck.c (convert_arguments): Don't warn about sign change
+	for an INTEGER_CST inside NOP_EXPR, if value not fits new type.
+	Delete the code to check for VAL having enumeration type.
+
+	* i860.c (output_move_double): Fix typos in Jun 28 change.
+
+Sat Jul 10 16:05:26 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* i860.c (output_move_double): Only set highest_first if first reg
+	of dest overlaps memory src address.  Otherwise, if addreg1 set and
+	is same as second reg of dest, suppress trailing decrement.
+	
+Sat Jul 10 19:49:31 1993  Jeffrey A. Law  (law@mole.gnu.ai.mit.edu)
+
+	* jump.c (jump_optimize): Correctly identify branches to the end
+	of a function so that they may be turned into RETURN insns.
+
+Sat Jul 10 17:37:12 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* collect2.c (main): Allocate COLLECT_NAME string with xmalloc.
+
+Sat Jul 10 14:44:29 1992  Chip Salzenberg  (chip@fin.uucp)
+
+	* basic-block.h (REGSET_ELT_TYPE): Make unsigned to avoid
+	signed arithmetic overflow.
+	* hard-reg-set.h (HARD_REG_ELT_TYPE): New unsigned type to
+	avoid signed arithmetic overflow.
+	(HARD_REG_SET): Define as HARD_REG_ELT_TYPE, or array thereof.
+	(HARD_CONST): Always cast to HARD_REG_ELT_TYPE.
+	(*_HARD_REG_*): Use unsigned HARD_CONST and HARD_REG_ELT_TYPE
+	types instead of assuming HOST_WIDE_INT. 
+
+Sat Jul 10 10:25:16 1993  Karl Berry  (karl@cs.umb.edu)
+
+	* fixincludes: Check for symlinks being available in /tmp.
+
+Sat Jul 10 02:01:08 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/m68k/3b1.h (MY_ISCOFF, OBJECT_FORMAT_COFF, NO_SYS_SIGLIST):
+	New definitions.
+
+Fri Jul  9 20:40:29 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.md (dbra and movb patterns): Fix constraints so that FP
+	registers are never preferred.
+
+Fri Jul  9 17:36:35 1993  Holger Teutsch  (holger@hotbso.rhein-main.de)
+
+	* va-clipper.h: Make var/stdargs compatible with apogee's acc.
+	(__gnuc_va_list): Replace __va_f and __va_r with __va_reg.
+	(__va_list, _SYS_INT_STDARG_H): New defines.
+	(va_arg): Corresponding changes.
+
+	* config/clipper/clipper.c (clipper_builtin_saveregs) : Dito.
+
+Fri Jul  9 13:39:08 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Cygnus<->FSF merge.
+	Fri Jul  9 12:17:20 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-typeck.c (build_array_ref): Force the array to be allocated on
+	the stack if it is accessed by a out-of-bound constant integer
+	subscript.
+
+	* cp-decl.c (pushdecl): Undo change to generate a new _TYPE node for
+	a typedef.
+
+	Thu Jul  8 16:25:52 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (pushtag): Don't mark the binding layer marker; for
+	dwarf debugging, do mark the TYPE_DECL we created as ignored.
+
+	* cp-tree.h (IN_CHARGE_NAME): Define to not need DOLLAR_IN_LABEL.
+	(VTBL_PTR_TYPE): Likewise.
+	(VTABLE_DELTA_NAME, VTABLE_INDEX_NAME, VTABLE_PFN_NAME,
+	VTABLE_DELTA2_NAME): Use two leading underscores.
+
+	Thu Jul  8 14:31:40 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-tree.h (TREE_ANON_UNION_ELEM): Deleted, it's never set.
+	* cp-decl.c (build_default_constructor): Delete checking
+	TREE_ANON_UNION_ELEM.
+	* cp-init.c (emit_base_init): Likewise.
+	* cp-type2.c (my_friendly_abort): Update count.
+
+	* cp-type2.c (build_functional_cast): Disable assert 323 (see
+	comments for explanation).
+
+	* cp-typeck.c (comp_target_parms): Return 0 if strict is != 0, not
+	just > 0.
+
+	* cp-decl.c (init_decl_processing): Don't set WARN_RETURN_TYPE.
+
+	Wed Jul  7 18:36:59 1993  Niklas Hallqvist  (niklas@della.appli.se)
+
+	Add the changes to redo how we handle scoping. [Merged by bpk.]
+
+	* cp-class.c ({pop,push}_nested_class): New functions to use
+	instead of plain {push,pop}class.  These functions will see to
+	that static entities of enclosing classes will be visible.
+	* cp-tree.h ({pop,push}_nested_class): Declare them.
+	* cp-decl.h ({finish,start}_function): Use these new functions
+	instead of plain {push,pop}class calls.
+	(grokdeclarator): Ditto.
+	* cp-decl2.c (build_push_scope): Ditto.
+	* cp-class.c (popclass): Only call pop_class_decls if MODIFY is
+	set.
+
+	* cp-decl.c (start_decl): Maybe call pushdecl_class_level instead of
+	pushdecl.  This is used for nested types.
+	(grokdeclarator): Remove the {push,pop}level calls around the
+	indirect recursion occuring when groking class-local typedefs.
+	Remove the error check of such typedefs hiding other fields in the
+	same scope.  Remove the pushdecl_class_level call since start_decl
+	does the work now.
+
+	Class scoping (and type value caching) redone.  The new behaviour
+	is triggered by NEW_CLASS_SCOPING being defined to 1.  The old
+	behavior is accomplished by defining it to the value 0.  The entries
+	below describes the effective changes when NEW_CLASS_SCOPING is set
+	to non-zero.
+
+	* cp-class.c (set_class_shadows): Add prototype.
+	(previous_class_values): New variable.
+	(pushclass): Adapted to not use previous_class_type & unuse_fields.
+	Removed setting of IDENTIFIER_CLASS_VALUE.
+	(popclass): Adapted to not use previous_class_type.  Don't reset
+	IDENTIFIER_CLASS_VALUE.  Moved call of pop_class_decls.
+	(maybe_push_cache_obstack): New function.
+	* cp-decl.c (current_class_depth): Add extern decl.
+	(previous_class_values): Add extern decl.
+	(pop_decl_level): Don't reset IDENTIFIER_CLASS_VALUE.
+	(set_class_shadows): New function.
+	(poplevel_class): Adjust setting of IDENTIFIER_CLASS_VALUE to only
+	happen if we're not leaving a toplevel class.
+	(push_to_top_level): Don't use adjust_type_value.
+	(set_identifier_type_value): Reverse the choice between class and
+	local scope when installing the type value.
+	(set_identifier_local_value): Set the type value if we're seeing a
+	TYPE_DECL.
+	(set_nested_typename): Added comment.
+	(pushtag): Don't call set_identifier_type_value.  Leave out
+	setting of IDENTIFIER_CLASS_VALUE.
+	(adjust_type_value): Removed.
+	(pushdecl): Don't call adjust_type_value.
+	(pushdecl_class_level): Call push_class_level_binding.  Set the
+	type value if we're seeing a TYPE_DECL.
+	(push_class_level_binding): New function whose guts came from
+	pushdecl_class_level.
+	(globalize_nested_type): See to that both the class_shadowed and
+	type_shadowed lists in the binding stack gets updated correctly.
+	Don't call set_identifier_type_value on the DECL_NESTED_TYPENAME.
+	Clear DECL_CLASS_CONTEXT as well as DECL_CONTEXT.  Install a
+	correct IDENTIFIER_{CLASS,TYPE}_VALUE if needed.
+	(grokdeclarator): Prefer pushdecl_class_level over pushtag when
+	recording a nested typedef.
+	(build_enumerator): Don't install a method-local enumerator into
+	class scope.
+	* cp-decl2.c (grokfield): Don't call set_identifier_type_value.
+	* cp-search.c (closed_envelopes): New list containing information
+	of what decls should be pushed when entering a class scope.
+	(dfs_pushdecls): Build and maintain the closed_envelopes list
+	instead of managing the IDENTIFIER_CLASS_VALUEs directly.
+	(dfs_compress_decls): Adapted to recognize the envelopes
+	dfs_pushdecls has installed in the IDENTIFIER_CLASS_VALUE slots.
+	(push_class_decls): Tell overload_template_name to push the
+	template decls into class scope instead of building a new level.
+	Added code to open up the envelopes in closed_envelopes and
+	install the class/type values in the class binding contour with
+	proper shadowing.
+	(dfs_popdecls): Removed.
+	(pop_class_decls): Removed the actual decl-popping code, leaving
+	just the obstack freeing pop_search_level call.  The popping is
+	automatically handled by poplevel now.
+	* cp-tree.h (NEW_CLASS_SCOPING): A new macro constant defaulted to
+	the value 1.
+	(adjust_type_value): Prototype removed.
+	(push_class_level_binding): Added prototype.
+
+	Wed Jul  7 11:04:09 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (pushdecl): When processing a typedef statement,
+	generate a whole new ..._TYPE node.  Be careful that the type we're
+	looking at isn't an error_mark_node.
+
+	* cp-class.c (finish_struct): Set the DECL_CONTEXT on the type we've
+	found.
+	* cp-decl.c (pushtag): Mark the TYPE_DECL as ignored when using
+	dwarf debugging; don't ignore it if it's anonymous for dwarf
+	debugging.  Put the DECL_CONTEXT in the TYPE_CONTEXT of TYPE.
+	(globalize_nested_type): Remember to set TYPE_CONTEXT.
+	* cp-pt.c (overload_template_name): Set DECL_CONTEXT.
+	* cp-search.c (compute_visibility): Set DECL_CONTEXT if the context
+	is NULL.
+
+	* cp-class.c (finish_struct): Mark the tag as ignored for dwarf
+	debugging.
+
+	* cp-except.c (EHS_type): Don't make it static.
+	* cp-class.c (finish_struct): Don't create a default copy
+	constructor for the EHS_type.
+
+	* cp-class.c (get_vtable_name): Leave the numbers in the name for
+	the vtable, so we're uniform with what prepare_fresh_vtable is
+	doing.  Introduces a binary incompatability.
+
+	* cp-tree.c (build_cplus_method_type): Mark the first argtype (the
+	this pointer) as artificial.
+
+	* cp-init.c (do_friend): Don't allow a friend of a class that's not
+	yet been defined; instead, complain.  Make sure we mark every decl
+	that comes in as being a friend of something.
+
+	* cp-decl2.c (grokclassfn): Mark the __in_chrg parameter as
+	artificial.  Don't mark it as readonly, and for destructors make
+	sure the first arg in the arg_types chain has TREE_SIDE_EFFECTS set,
+	so it's seen as artificial.
+	(finish_vtable_vardecl): For dwarf debugging, make the vtable's
+	VAR_DECL node be ignored.  
+
+	* cp-decl.c (redeclaration_error_message): Use comptypes to see if
+	OLDDECL and NEWDECL have the same type.
+	* cp-typeck.c (comptypes): Compare the main variants of the types,
+	after we've checked the qualifiers that could have been used on them.
+
+	* cp-call.c (EVIL_RETURN, QUAL_RETURN, TRIVIAL_RETURN, ZERO_RETURN):
+	Rewrite definitions to not use do/while(0), to avoid bogus warnings
+	on compilers that can't deal with a return inside it.  Change all
+	uses of them to do `return FOO_RETURN'. 
+
+	Tue Jul  6 13:00:44 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (duplicate_decls): Set GIVE_ERROR so we know where the
+	previous declaration was for empty parameter name list declarations.
+
+	* cp-class.c (finish_struct): Clean up error message about anonymous
+	classes.
+
+	* cp-class.c (finish_struct): Don't play with TAIL when we're
+	dealing with a TYPE_DECL of a RECORD_TYPE; the list continues on
+	just fine, and TAIL is only used for managing FN_FIELDS.
+
+	* cp-decl.c (pushlevel): Change cast to HOST_WIDE_INT.
+	* cp-search.c (breadth_first_search): Likewise.
+
+	Fri Jul  2 19:24:55 1993  Steve Chamberlain  (sac@rtl.cygnus.com)
+
+	* cp-method.c: Include "cp-class.h"
+
+	Fri Jul  2 18:16:10 1993  Michael Tiemann  (tiemann@blues.cygnus.com)
+
+	* cp-call.c (build_overload_call_real): Don't look at a required
+	template instantiation and a speculative template instantiation as
+	two different functions if they are really the same function.
+
+	Thu Jul  1 22:28:46 1993  Michael Tiemann  (tiemann@blues.cygnus.com)
+
+	* cp-tree.h: Don't include "cp-class.h" here.
+	* cp-call.c, cp-cvt.c: Include it here instead.
+
+	Thu Jul  1 18:42:03 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (duplicate_decls): Fix typo.  (olddecl->olddecls)
+
+	Thu Jul  1 18:34:12 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	New implementation of argument matching.  This is now much cleaner
+	to read, and is designed such that it should be easy to tweak
+	things when incorrect decisions are made based on the candidates
+	being examined.
+
+	* cp-decl2.c (flag_ansi_overloading): New variable.
+	(lang_f_options): Add -fansi-overloading.
+	* toplev.c (lang_options): Add -fansi-overloading and
+	-fno-ansi-overloading.
+
+	* cp-class.h (harshness_code): New struct.
+	(candidate): New members `h' and `h_len' used by new method.  New
+	anonymous union `v', with ansi_harshness and old_harshness.
+	Deleted member `harshness' (used by old method, now in `v').
+	Change every file that uses harshness to refer to it in the union
+	as appropriate.
+	(EVIL_CODE, CONST_CODE, ELLIPSIS_CODE, USER_CODE, STD_CODE,
+	PROMO_CODE, QUAL_CODE, TRIVIAL_CODE): New macros.
+
+	* cp-call.c (EVIL_RETURN, QUAL_RETURN, TRIVIAL_RETURN,
+	ZERO_RETURN): New macros.
+	(rank_for_overload): Renamed to rank_for_overload_old.
+	(rank_for_overload_ansi): New function for new method.
+	(rank_for_overload): Call the appropriate fn based on the new flag.
+	(rank_for_ideal): New function for new method.
+	(compute_harshness): Renamed to compute_harshness_old.
+	(compute_harshness_ansi): New function for new method.
+	(compute_conversion_costs): Renamed to compute_conversion_costs_old.
+	(compute_conversion_costs_ansi): New function for new method.
+	(compute_conversion_costs): Call the appropriate fn based on the
+	new flag.
+	(ideal_candidate): Renamed to ideal_candidate_old.
+	(ideal_candidate_ansi): New function for new method.
+	(ideal_candidate): Call the appropriate fn based on the new flag.
+	(strictly_better): New function for new method.
+	(build_method_call): Change things to use the new method if
+	-fansi-overloading is set.
+	(build_overload_call_real): Likewise.
+	* cp-cvt.c (convert_to_aggr): Likewise.
+
+	* cp-call.c (build_overload_call_real): Only use the speed hack
+	to trigger immediately if the OVERLOAD_NAME has a global value if we
+	aren't using the new overloading scheme.
+
+	* cp-cvt.c (build_type_conversion): Only accept using an `operator
+	double' if there isn't a conflicting `operator int', if
+	-fansi-overloading is on. 
+
+	Thu Jul  1 17:54:44 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-decl.c (duplicate_decls): Propagate some changes from C
+	front-end.  Conflicts with built-in functions are now only warnings.
+
+	Thu Jul  1 15:43:48 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-call.c (build_field_call): Use real type if type is a
+	REFERENCE_TYPE.
+	* cp-parse.y (primary): Cleanup and move some code out into new
+	function build_object_ref.
+	* cp-tree.h (build_object_ref): New function.
+	* cp-typeck.c (build_object_ref): Define new function.
+	* cp-typeck.c (build_x_function_call): Return error_mark_node if
+	first argument is, and handle when TREE_PURPOSE is a binfo and comes
+	from lookup_fnfields.
+
+	Thu Jul  1 13:48:46 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-lex.c (readescape): Don't complain for \% unless pedantic.
+
+	Wed Jun 30 10:35:50 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl2.c (bad_specifiers): Moved to cp-decl.c.  New args
+	`inlinep' and `object' (old object renamed to type), so we can see
+	where the thing was declared.  Use error_with_decl instead of error.
+	* cp-decl.c (grokdeclarator): Pass INLINEP and DECL down; move calls
+	so we'll have a valid DECL to give it.
+	* cp-tree.h (bad_specifiers): Deleted prototype.
+
+	* cp-call.c (build_scoped_method_call): If it's a reference, work
+	with the actual type.
+	* cp-type2.c (build_scoped_ref): Likewise.
+
+	Tue Jun 29 19:49:57 1993  Mike Stump  (mrs@poseidon.cygnus.com)
+
+	* cp-lex.c (default_copy_constructor_body): Hack broken code to work
+	marginally better than how it worked before, so that PlotFile3D's
+	make check of libg++ works.
+
+	Tue Jun 29 12:44:48 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-typeck.c (mark_addressable): Don't complain about taking the
+	address of an object with register storage class; it's legal in C++. 
+
+	* cp-typeck.c (convert_arguments): Only warn about passing an object
+	through an ellipsis.
+
+	* cp-parse.y (typed_declspecs): Make sure the TYPESPEC we hit
+	upon is non-null.
+
+	Tue Jun 29 11:58:03 1993  Tony Deigh  (tonyd@bostech.com)
+
+	* cp-decl.c (grokdeclarator): Look at the decl as a FUNCTION_TYPE
+	before seeing if its TYPE_MAIN_VARIANT matches or it's a friend;
+	this way, we can properly detect declaration of another class's
+	methods inside another class.  Solves chainon aborts.
+
+	Tue Jun 29 09:47:36 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-class.c (finish_struct): Use pedwarn_with_decl for warnings
+	about non-static const/ref in class without a ctor, so the line
+	number is helpful.
+
+	Tue Jun 29 02:46:39 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-cvt.c (build_up_reference): Delete unneed cast.
+	* cp-typeck.c (convert_for_assignment): Likewise.
+
+	Mon Jun 28 19:19:34 1993  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-lex.c (real_yylex): Use pedwarn to warn about using catch, try
+	and throw as identifiers.
+
+	Mon Jun 28 11:13:17 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-method.c (hack_identifier): Only look for visibility if we have
+	a basetype path.
+
+	* cp-decl.c (grokdeclarator): Also forbid the subscripting operator,
+	and class member access operator being declared as a non-member
+	function.
+
+	* cp-init.c (add_friend): Pedwarn on duplicate friend decls.
+
+	* cp-init.c (is_friend_type): New function.
+	(is_friend): Call it; rewrite in minor ways, to clean the code up.
+	* cp-tree.h (is_friend_type): Add prototype.
+	* cp-search.c (compute_visibility): Also check if the
+	CURRENT_CLASS_TYPE is a friend of CONTEXT, which can buy us access
+	to the field in question.
+
+	* cp-init.c (sort_member_init): Disable assert that was wrong.
+
+	* cp-class.c (finish_struct): Make declaration of a non-static const
+	or reference member get a pedwarn if the class it's in has no
+	constructor.
+
+	* cp-decl2.c (grokfield): Fix up the error message about member
+	initialization.
+
+	* cp-typeck.c (c_expand_return): Make sure we don't set
+	CURRENT_FUNCTION_RETURNS_VALUE if we set CURRENT_FUNCTION_RETURNS_NULL.
+
+	* cp-method.c (dump_init): Don't emit digit_buffer if we're giving
+	an enum's tag.
+
+Fri Jul  9 16:45:25 1993  David d `zoo' Zuhn  (zoo@cygnus.com)
+
+	* config.sub: Make -solaris reflect the most recent major release.
+
+Fri Jul  9 16:18:20 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* Change length attributes to use bytes instead of instruction
+	counts.
+	* pa.h (CASE_VECTOR_MODE): Change to DImode.
+	* pa.c (compute_movstrsi_length): Return length in bytes.
+	(pa_adjust_insn_length): Return adjustment in bytes.
+	(output_cbranch): Handle lengths as bytes.
+	(output_bb, output_dbra, output_movb): Likewise.
+	* pa.md (default length define_attr): Lengths are in bytes now.
+	(asm_attributes): Likewise.
+	(delay slot attributes): Deal with lengths in bytes.
+	(explicit length computations): Compute length in bytes.
+
+	* Make more dbra insns and support movb insns.
+	* pa.h (output_dbra, output_movb): Declare.
+	* pa.md (dbra pattern): Use output_dbra.
+	(dbra pattern #2): New pattern.  Also use output_dbra.
+	(movb, inverted movb): New patterns.
+	* pa.c (pa_adjust_insn_length): dbra and movb insns which have
+	their output in a FP register do not need adjustment.
+	(output_cbranch, output_bb): Handle conditional jump to the
+	following instruction.
+	(output_dbra): New function extracted from dbra pattern.
+	(output_movb): New function.
+	(eq_neq_comparison_operator): New function.
+	(movb_comparison_operator): New function.
+
+Fri Jul  9 01:07:52 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/m68k/mot3300.h (ASM_OUTPUT_OPCODE): Don't add .w suffix
+	to jump insns.
+
+	* combine.c, cse.c: Include stdio.h before rtl.h.
+
+Wed Jul  7 18:06:45 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	From moshier@world.std.com:
+	* sparc.c (singlemove_string): Convert SFmode by REAL_VALUE... macros.
+	* sparc.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE):
+	Use REAL_VALUE_TO_DECIMAL to generate decimal string.
+	(REAL_ARITHMETIC): Define.
+
+	* sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Use
+	STARTING_FRAME_OFFSET.
+	(STARTING_FRAME_OFFSET): Set to -16.
+
+	* c-parse.in (simple_if): Save stmt_count, and print empty body
+	warning here.
+	(if_prefix): Don't save stmt_count here.
+	(stmt): Don't print empty body warning here.
+
+	* combine.c (simplify_comparison): Add parentheses to satify gcc.
+	* sparc.c (sparc_frw_save_restore): Likewise.
+	* expr.c (convert_to_mode): Move misplaced parentheses.
+
+Wed Jul  7 16:37:26 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* Improve code for conditional branches and dbra insns on the PA.  
+	* pa.c (pa_adjust_insn_length): Rewrite so that it only adjusts
+	insns which really need adjustment.
+	(output_cbranch): Rework so that output templates are simpler.  
+	Use shorter sequence for long backwards conditional branches with
+	a filled delay slot that is nullified.  More agressively use "skip"
+	instructions.  More agressively nullify the delay slot if nothing
+	useful could be placed there.
+	(output_bb): Likewise.
+	(forward_branch_p): New function.
+	* pa.md (conditional branches): Use the full displacement range
+	for the branch target.  Update length computations to match current
+	reality.
+	(branch on bit patterns): Likewise.
+	(decrement_and_branch_until_zero): Re-enable pattern.  Rewrite to
+	be simpler and more efficient.  Also handle case where loop counter
+	is in a FP register.
+
+Wed Jul  7 11:19:03 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* glimits.h (MB_LEN_MAX): Don't override the value from the system
+	<limits.h>.  Just define it if it is not already defined.
+
+	* collect2.c (main): Search for ld in the compiler directories.
+
+Wed Jul  7 13:40:55 1993  Jim Wilson  (wilson@kropotkin.gnu.ai.mit.edu)
+
+	* collect2.c (fork_execute, scan_prog_file): Use "fork" in error
+	messages instead of "vfork" when vfork is defined to fork.
+
+Tue Jul  6 16:38:36 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.c (sparc_type_code): Recognize SET_TYPE.  For special
+	Fortran/Pascal types, just return qualifiers instead of aborting.
+
+	* c-decl.c (insert_block): Correct typo in comment.
+
+	* combine.c (simplify_and_const_int, LSHIFTRT case): Must be at
+	least as many sign bit copies as bits in mask.
+
+	* c-typeck.c (build_conditional_expr):  All simplified results
+	must go through pedantic_non_lvalue.
+	* cp-typeck.c (build_conditional_expr): Likewise.
+	* fold-const.c (fold, COND_EXPR case): Likewise.
+	(pedantic_non_lvalue): New function.
+	* tree.h (pedantic_non_lvalue): Add declaration.
+
+	* fold-const.c (invert_truthvalue): Check for ERROR_MARK input.
+
+	* m68k.h (LEGITIMATE_BASE_REG_P): New macro.
+	(INDIRECTABLE_1_ADDRESS_P, GO_IF_INDEXABLE_BASE,
+	LEGITIMATE_INDEX_REG_P): Accept SUBREG everywhere REG is accepted.
+
+	* sparc.h (EXTRA_CONSTRAINT): For 'T', pass address not mem to
+	strict_memory_address_p call.  For 'U', don't accept unallocated
+	pseudo-reg when strict.
+
+	* sparc.c (output_move_quad): Implement CNSTOP case.
+
+	* i960.h (ASM_OUTPUT_COMMON): Use SIZE not ROUNDED.
+
+Tue Jul  6 02:12:15 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cse.c (simplify_binary_operation, case MINUS): Fix backwards
+	test added in last change.
+
+	* config/i386/sun.h (SIZE_TYPE): Deleted.
+
+	* c-typeck.c (convert_arguments): Don't warn for -Wconversion
+	about signedness of an arg that's extended from narrower unsigned type.
+
+	* c-decl.c (duplicate_decls): Don't warn for non-extern var decl
+	following an extern one (for -Wredundant-decls).
+
+Mon Jul  5 17:50:27 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (emit_reload_insns): Don't use gen_lowpart_common to
+	get reload register into proper mode.
+	* reload.c (subst_reloads): Likewise.
+
+	* combine.c (subst, case PLUS): Simplify (plus (comp A B) -1), etc.
+
+	* fold-const.c (fold, case EQ_EXPR, LE_EXPR): If comparing results
+	of signed MOD with zero, use an unsigned MOD.
+
+	* calls.c: Fix typo: had ARGS_GROW_DOWNARD.
+
+	* configure (rs6000-ibm-aix): Use default files for aix3.2 and
+	aix31.h for aix3.[01].  Add new file x-aix31.
+	* rs6000.c (input_operand): Fix missing operand on a return.
+	(print_operand): Add new code '.'.
+	(rs6000_sa_size): Delete unused variable `i'.
+	(output_prolog, output_epilog): Use new RS6000_CROR_BIT_NUMBER.
+	* rs6000.h (CPP_PREDEFINES): Define _AIX32.
+	(ASM_DECLARE_FUNCTION_NAME, TEXT_SECTION_ASM_OP): Use ".text[PR]" as
+	csect name.
+	(RS6000_CROR_BIT_NUMBER): New macro.
+	(PRINT_OPERAND_PUNCT_VALID_P): Allow `.' as valid.
+	* rs6000.md (call patterns): Use %. in cror.
+	* x-rs6000 (CLIB): No longer need -lm.
+	* aix31.h, x-aix31.h: New files.
+	* aix32.h: Deleted.
+
+Mon Jul  5 17:44:09 1993  John F Carr  (jfc@Athena.mit.edu)
+
+	* romp.md (movhi): When storing a constant in an HImode register, use
+	cal16 instead of cal so that the high bits are clear (combine
+	requires this).
+
+Mon Jul  5 17:15:27 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* objc-act.c (encode_type_qualifiers): Add casts to enums in indices.
+
+Mon Jul  5 02:25:54 1993  Doug Evans  (dje@wookumz.gnu.ai.mit.edu)
+
+	* Makefile.in: Parameterize libgcc.a and install-libgcc
+	(LIBGCC and INSTALL_LIBGCC).
+
+	* tree.c (get_narrower): Preserve unsignedness when bitschange == 0.
+
+Sun Jul  4 02:55:46 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expmed.c (store_split_bit_field, extract_split_bit_field):
+	Handle fields split across more than 2 aligned units.
+
+	* expr.c (store_field): Test STRICT_ALIGNMENT at run time.
+	(expand_expr, COMPONENT_REF case): Fetch unaligned field as bitfield.
+
+	* collect2.c (error, fatal, fatal_perror): Say collect2, not collect.
+
+	* c-parse.in (primary): In statement expression case,
+	if compstmt returns something other than a BLOCK,
+	return it unchanged.
+
+Sat Jul  3 20:32:43 1993  Minh Tran-Le  (tranle@intellicorp.com)
+
+	* fixinc.svr4: Added fixup for __STDC__ == 0 and __STDC__ == 1
+	cases found in sequent PTX-2.0.x headers.
+
+Sat Jul  3 18:54:07 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.c (call_operand_address): Do not accept registers anymore.
+	* pa.md (call expanders): Emit different patterns for named calls
+	and indirect calls.
+	(call_internal_symref, call_internal_reg): New patterns. 
+	(call_internal): Deleted.  Now handled by call_interal_{symref,reg}.
+	(call_value_internal_symref, call_value_internal_reg): New patterns.
+	(call_value_internal): Deleted.  Now handled by
+	call_value_internal_{symref,reg).
+
+Sat Jul  3 16:40:52 1993  Doug Evans  (dje@wookumz.gnu.ai.mit.edu)
+
+	* collect2.c (main): Give ld_file_name an initial value.
+
+Fri Jul  2 16:36:56 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)
+
+	* sparc.md (ashldi3+2): Change lshift to ashift.
+
+	* sparc.md (zero_extendhisi2, extendhisi2, extendqihi2,
+	extendqisi2): Preserve the SUBREG_WORD value of subreg operands.
+	(ashldi3): Delete, obsoleted by lshldi3 pattern.
+	(lshldi3): Rename to ashldi3 for consistency with SImode shifts.
+
+Fri Jul  2 01:10:56 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (install-headers-tar): Ignore exit status of the
+	first tar command.
+
+Thu Jul  1 14:31:45 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* flow.c (find_auto_inc): In *p=expr;q=p+size case, avoid clobbering q
+	if referenced in expr.
+
+Fri Jul  2 01:26:01 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* tree.h (pushcase, pushcase_range): Add a new converter
+	function argument that specifies how to convert case labels to the
+	nominal type.
+	* stmt.c (pushcase, pushcase_range): Likewise.
+	* c-parse.in (label): Use `convert_and_check' when checking for
+	overflow in case labels.
+	* cp-parse.y (simple-stmt): Similar change, but use `convert' instead;
+	this leaves the behavior unchanged for C++.  A C++ expert should look
+	into this.
+
+	* tree.h (TREE_OVERFLOW): New macro.
+	* c-common.c (constant_expression_warning, overflow_warning,
+	convert_and_check): Distinguish between TREE_OVERFLOW, which is just
+	for warnings, and TREE_CONSTANT_OVERFLOW, which is for required
+	pedantic diagnostics.
+	* c-typeck.c (c_sizeof, build_c_cast): Set TREE_OVERFLOW in addition
+	to TREE_CONSTANT_OVERFLOW.
+	(store_init_value): STRIP_TYPE_NOPS is required before
+	constant_expression_warning.
+	* fold-const.c: (const_binop, fold_convert, fold):
+	Set TREE_OVERFLOW in addition to TREE_CONSTANT_OVERFLOW.
+
+Thu Jul  1 20:55:27 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* reload1.c (eliminate_regs): Fix typo in BYTE_LOADS_ZERO_EXTEND.
+
+Thu Jul  1 20:00:00 1993 DJ Delorie (dj@ctron.com)
+
+	* gcc.c (choose_temp_base): Try multiple variables.  Don't
+	assume that the variable points to a valid directory.
+
+	* gcc.c (pexecute): Handle the MS-DOS return codes correctly.
+	Add .exe to file name when appropriate.
+
+	* configure.bat: Make gcc use its own obstack.o.
+
+	* objc/makefile.dos: New file for building with djgpp.
+
+Thu Jul  1 18:15:17 1993  Paul Eggert  (eggert@twinsun.com)
+
+	* fixincludes, fixinc.svr4: Don't create absolute symbolic links;
+	make them relative instead.
+	* fixincludes: Remove special case for IRIX 4.0.1 that was
+	superseded by a more general fix to fixincludes.
+
+	* fixinc.svr4: Remove everything after #endif, instead of trying
+        to turn it into comments, which loses inside comments.
+        * fixincludes: Likewise.  Remove #endif workarounds for Ultrix 4.[12]
+        and SunOS 4.1, which are no longer needed because of this bug fix.
+
+Thu Jul  1 14:56:56 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (OVERRIDE_OPTIONS): Define.  Give a warning if -fpic or 
+	-fPIC was specified on the command line.
+
+	* configure (hppa1.0-hp-hpux8.02): New target.
+	(hppa1.1-hp-hpux8.02): Accept "--gas" in this configuration.
+	* pa-oldas.h: New target for 1.0 machines running HPUX 8.02.
+	* pa.c (output_arg_descriptor): Reverse polarity of test for
+	HP_FP_ARG_DESCRIPTOR_REVERSED.
+	* pa.h (ASM_DOUBLE_ARG_DESCRIPTORS): Likewise.
+	* pa-hpux7.h (HP_FP_ARG_DESCRIPTOR_REVERSED): Define.
+	* pa1-oldas.h (HP_FP_ARG_DESCRIPTOR_REVERSED): Define.
+	(TARGET_DEFAULT): Clear useless bits in TARGET_DEFAULT.
+	* pa-utahmach.h (HP_FP_ARG_DESCRIPTOR_REVERSED): Do not define here.
+	* pa1-utahmach.h (HP_FP_ARG_DESCRIPTOR_REVERSED): Likewise.
+	* pa1-ghpux.h (HP_FP_ARG_DESCRIPTOR_REVERSED): Likewise.
+	* pa1-hpux.h (HP_FP_ARG_DESCRIPTOR_REVERSED): Likewise.
+
+Thu Jul  1 09:48:23 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold, case GE_EXPR, LT_EXPR): Don't assume 
+	result of comparison is integer_type_node.
+
+Thu Jul  1 00:23:16 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
+
+	* config/i386/mach.h (SIZE_TYPE): Definition deleted.
+
+Wed Jun 30 16:16:20 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/m68k/sun3.h (SIZE_TYPE): Definition deleted.
+
+Wed Jun 30 16:55:25 1993  John F Carr  (jfc@Athena.mit.edu)
+
+	* mips.c (gen_int_relational): For test with constant result,
+	copy const0_rtx or const_true_rtx to result register instead
+	of allocating a new pseudo-register.
+
+Wed Jun 30 15:19:42 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
+
+	* config.sub: Recognize `gnu' as a valid operating system.  Sheesh.
+
+Wed Jun 30 13:43:45 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.c (output_function_prologue): Emit SAVE_SP flag if a frame
+	pointer is needed.
+
+Wed Jun 30 00:52:25 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* collect2.c (main): Don't look for `gld' or `TARGET-gld'.
+
+	* fixincludes (stdtypes.h): Verify that size_t etc. follow whitespace.
+
+	* expr.c (expand_expr, case PLUS_EXPR): In the special case
+	to return sym+integer as an expression, limit it to when
+	the non-CONST_INT arg is at least a constant.
+	(expand_increment): Do preinc with single insn if there's such an insn.
+
+	* stmt.c (expand_end_case): Pass 1 as UNSIGNEDP to emit_cmp_insn
+	when handling wide values.
+	Save original minval in orig_minval and use for making the table.
+
+Tue Jun 29 22:28:06 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.c (singlemove_string): Use zdepi and ldil to load constants
+	into registers when appropriate.
+
+Tue Jun 29 11:26:35 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config.sub: Recognize -sysv* after -sysvr4.
+
+	* config/vax/vax.h (GO_IF_NONINDEXED_ADDRESS): Declare reg_equiv_mem.
+
+Mon Jun 28 20:12:04 1993  Steve Chamberlain  (sac@apple-gunkies.gnu.ai.mit.edu)
+
+	* config/sh/*:  Major rework.
+
+Mon Jun 28 02:46:47 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fixincludes (file): When changing VA_LIST to DUMMY_VA_LIST,
+	preserve _NEED___VA_LIST.
+
+	* config/ns32k/ns32k.c (output_move_double): 
+	Handle reg[n,n+1] = mem[reg[n] + reg[n+1]].
+	* config/ns32k/ns32k.md (movdf, movdi): Delete `&' from constraint.
+
+	* config/sparc/sparc.c (output_move_double): Use new local var
+	highest_first to make sure addreg1 gets handled in the overlap case.
+	In 2-reg-overlap case, really use proper reg in new address.
+
+	* config/i860/i860.c (output_move_double): 
+	Handle reg[n,n+1] = mem[reg[n] + reg[n+1]].  Use new local var
+	highest_first to make sure addreg1 gets handled in the overlap case.
+	* config/i860/i860.md (movdf, movdi): Delete `&' from load constraint.
+
+	* config/sparc/sol2.h (CPP_SPEC): For -compat-bsd, put the ucbinclude
+	dirs before, not after.
+
+	* expr.c (store_field): Store unaligned field with bit field methods.
+
+	* config/vax/vax.h (GO_IF_NONINDEXED_ADDRESS): If reload_in_progress,
+	check a REG's reg_equiv_mem the way we would check a MEM.
+
+	* reload.c (find_reloads_address): Be selective about what inner
+	addresses to allow in an indirect mem ref.
+
+Sun Jun 27 16:40:59 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* emit-rtl.c (copy_rtx_if_shared): Don't try to copy a 0-length vector.
+
+	* config/m68k/x-apollo68 (TAROUTOPTS): New definition.
+
+	* config.sub: Canonicalize -sco4 and -sco3.2.4 to -sco3.2v4.
+
+	* gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Check for -iwithprefixbefore.
+	(option_map): Add --include-with-prefix-before and
+	--include-with-prefix-after.
+
+Sun Jun 27 16:04:52 1993  Holger Teutsch  (holger@hotbso.rhein-main.de)
+
+	* va-clipper.h: Use and define Macro __GNUC_VA_LIST. Define struct
+	__gnuc_va_list.
+ 
+Sun Jun 27 08:32:19 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* machmode.h (INTEGRAL_MODE_P, FLOAT_MODE_P): New macros.
+	* cse.c (simplify_*_operation, fold_rtx, record_jump_cond, cse_insn):
+	Use them.
+	* combine.c (subst, apply_distributive_law): Likewise.
+	(reversible_comparison_p): Likewise.
+	Can reverse if MODE_COMPLEX_INT or MODE_PARTIAL_INT.
+
+	* function.c (fixup_stack_1): Handle
+	current_function_internal_arg_pointer. 
+
+	* stor-layout.c: Add prototypes for layout_record and layout_union.
+	(smallest_mode_for_size): New function.
+	(variable_size): Allow variable sizes if global_bindings_p returns a
+	negative value.
+	(mode_for_size): Fix incorrect comment.
+	(layout_decl): If DECL has a size already, don't copy from type.
+	(layout_type, case INTEGER_TYPE, ENUMERAL_TYPE): Use smallest
+	integer mode that fits, whether or not it fits exactly.
+	
+	* emit-rtl.c (restore_emit_status): Clear LAST_LABEL_NUM.
+
+	* calls.c (expand_call): If function hasn't been used before,
+	call assemble_external.
+
+	* expr.c (store_constructor): Treat QUAL_UNION_TYPE just
+	like UNION_TYPE.
+	(safe_from_p, case ADDR_EXPR): EXP is safe from X it is is static or
+	if the object whose address is being taken is safe from X.
+	(expand_expr): Fix misplaced comment from last change.
+	(expand_expr, case *_DECL): If not already used, assemble external.
+	(expand_expr, case EXIT_EXPR): Simplify.
+	(expand_expr, TRUTH_{AND,OR}IF_EXPR): Properly handle IGNORE case.
+
+	* tree.c (array_type_nelts): Tighten up code and make more general.
+	(build_function_type): Allow function to return array.
+	(decl_function_context): Treat QUAL_UNION_TYPE like UNION_TYPE.
+
+	* fold-const.c (fold, case TRUTH_XOR_EXPR): End with `return',
+	not `break'.
+
+	* dwarfout.c (output_compile_unit_die): Add support for Ada.
+
+	* c-iterate.c (collect_iterators, case SAVE_EXPR): Simplify code
+	added in previous change.
+
+	* expr.c: Fix typo: was ARGS_GROW_DOWNARD.
+
+	* combine.c (subst, case IF_THEN_ELSE): Install correct version of
+	last change.
+
+Sat Jun 26 15:38:33 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cccp.c (main): For -iwithprefix, if no include_prefix,
+	make a default from GCC_INCLUDE_DIR.
+	Support -iwithprefixbefore.
+
+	* reload.c (find_reloads): When merging reloads again after they have
+	been changed, do check reload_reg_class and reload_nocombine.
+
+	* config/sparc/sparc.md (movdf recognizer): Remove & from
+	constraint for loading mem to cpu reg.
+
+	* expr.c (expand_assignment): If FROM is scalar function call,
+	expand_expr FROM before TO.
+
+	* gcc.c (translate_options): `*' inhibits warning of extraneous arg.
+
+Sat Jun 26 11:07:23 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload): Use reg_equiv_address for invalid addresses
+	of the form (mem (reg)).
+
+	* config/*/xm-*.h: Remove line that #define's alloca
+	to __builtin_alloca.
+
+	* fold-const.c (fold, case PLUS_EXPR, MINUS_EXPR): Apply
+	distributive law to multiplication.
+	(fold, case *_DIV_EXPR): Replace code to handle (A*C1)/C2 with
+	more general code to handle addition as well.
+	(fold, case *_MOD_EXPR): Add simplified version of above code.
+
+	* integrate.c (function_cannot_inline_p): Can now inline nested
+	functions.
+	(expand_inline_function): Set up static chain if needed.
+	(output_inline_function): Don't switch to temporary allocation
+	here.
+	* toplev.c (compile_file): Switch to temporary allocation when
+	writing out inline function.
+	* cp-decl2.c (write_vtable_entries, finish_file): Likewise.
+	* c-decl.c, cp-decl.c (poplevel): Start new function context
+	when writing inline function.
+
+	* c-decl.c (init_decl_processing): When making SIZETYPE,
+	start with name in SIZE_TYPE.  If -traditional, use a
+	signed version of that type, if it is unsigned.
+
+	* fold-const.c: Add prototypes for static functions.
+	({l,r}{shift,rotate}_double): COUNT arg is HOST_WIDE_INT, PREC is int.
+	(all_ones_mask): Remove __inline__.
+	(range_test): Make static; not used elsewhere.
+	* tree.h: Add more decls for functions in fold-const.c.
+
+	* calls.c (expand_calls): Fix typo: ALLOCATE_OUTGOING_ARGS
+	should be ACCUMULATE_OUTGOING_ARGS.
+
+	* tree.def (TRUTH_{AND,OR,XOR}_EXPR): Make code class be 'e' like
+	the rest of the truth operations.
+	* fold-const.c (fold_truthop): Treat a BIT_AND_EXPR with a constant of
+	one as if it were surrounded with an NE_EXPR.
+	(fold): Don't move operation into conditional if it
+	is BIT_{AND,OR}_EXPR with the constant 1; change it to TRUTH_*_EXPR
+	instead.
+	When moving things inside conditions, move comparisons as well as
+	binary operations.
+	Don't make a SAVE_EXPR when moving things inside conditionals unless
+	the value would really have been used twice.
+
+	* expr.c (do_store_flag): When computing via a shift, allow for
+	an inner RSHIFT_EXPR in BITNUM.
+	Sometimes do the operations as signed.
+
+	* combine.c (subst): apply_distributive_law can also handle AND.
+	(subst, case IF_THEN_ELSE): Make a shift when appropriate.
+	(simplify_shift_const): If we have an outer operation and made
+	a shift, see if it can be simplified.
+
+Sat Jun 26 03:25:35 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* configure (i370-*-mvs*): New configuration.
+	* config/i370/i370.md, mvs370.c, tm-mvs.h, xm-mvs.h
+
+	* final.c, varasm.c: Include ctype.h.
+	* c-lex.c: Include ctype.h.
+	(isalnum, isdigit): Macros deleted.
+
+	* config/sparc/sparc.c (output_move_double): Handle
+	reg[n,n+1] = mem[reg[n] + reg[n+1]].
+	* config/sparc/sparc.md (movdi): Delete the earlyclobber in load case.
+
+Sat Jun 26 03:15:38 1993  Doug Evans  (dje@wookumz.gnu.ai.mit.edu)
+
+	* gcc.c (option_map): Add missing comma.
+
+Sat Jun 26 02:17:28 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config/we32k/we32k.c: Clean up formatting.
+
+	* calls.c (calls_function_1): Add declaration.
+
+	* config/m68k/m68k.md (fix_truncdfsi2, fix_truncdfhi2, fix_truncdfqi2):
+	Require TARGET_68881 as well as TARGET_68040.
+
+Fri Jun 25 20:13:51 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* calls.c (calls_function): Don't scan a single save_expr twice.
+	(calls_function_1): New subroutine for the actual recursion.
+
+	* c-parse.in (all_iter_stmt_simple): Add missing `else'.
+
+Fri Jun 25 15:53:59 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	Cygnus<->FSF merge.
+	Fri Jun 25 10:00:34 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c: Delete some #if 0'd code that has been there forever.
+
+	* cp-type2.c (my_friendly_abort): Update count of aborts (added by
+	emit_base_init rewrite).
+
+	Make default copy constructors work properly.
+	* cp-lex.c (cons_up_default_function): Mark the generated ctor with
+	RID_INLINE, so it won't get emitted unless it's needed.
+	* cp-decl.c (grok_ctor_properties): If CTYPE has virtual base
+	classes, make sure we don't pay attention to the int that we
+	magically added to the ctor decl.
+	* cp-ptree.c (print_lang_type): Note a const copy ctor vs a normal
+	copy ctor.  Say if TYPE_HAS_DEFAULT_CONSTRUCTOR.
+	* cp-tree.h (cons_up_default_function): Modify prototype.
+	* cp-class.c (finish_struct): Also check TYPE_HAS_CONSTRUCTOR, so
+	we don't generate a default ctor if they already declared one
+	(taking whatever arg types).
+
+	Wed Feb  3 17:41:02 1993  Chip Salzenberg  (chip@tct.com)
+
+	* cp-class.c (needs_const_ctor): Eliminate as meaningless.
+	(finish_struct) Always generate default functions.
+	Generate exactly one copy constructor: either "X(X&)" or
+	"X(const X&)", but not both.
+	* cp-lex.c (cons_up_default_function): Take list of fields
+	as a new parameter.  Use default_copy_constructor_body.
+	Set TREE_PUBLIC and DECL_EXTERNAL correctly for usage with
+	#pragma interface.	
+	(default_copy_constructor_body): New function (uses obstacks).
+
+	Thu Jun 24 12:41:16 1993  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-call.c (build_scoped_method_call, build_method_call): Remove
+	maybe_adjust argument to build_delete as it is unneeded and remove all
+	support for the magic cookie key in the area just before the data
+	allocated by new [].
+	* cp-decl.c (finish_function, maybe_build_cleanup,
+	push_exception_cleanup): Likewise.
+	* cp-decl2.c (delete_sanity, finish_file): Likewise.
+	* cp-init.c (init_init_processing, build_new,
+	maybe_adjust_addr_for_delete, build_delete, build_vbase_delete,
+	build_vec_delete): Likewise.
+	* cp-tree.c (build_cplus_new): Likewise.
+	* cp-tree.h (build_delete): Likewise.
+
+	Wed Jun 23 17:18:41 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (init_decl_processing): Also catch SIGBUS.
+	(sigsegv): Rename to signal_catch; also reset SIGBUS.
+
+	* cp-typeck.c (pointer_diff): Error if op1 is a pointer to an
+	incomplete type.
+
+	Wed Jun 23 16:17:43 1993  Mike Stump  (mrs@rtl.cygnus.com)
+
+	* cp-search.c (dfs_get_vbase_types, get_vbase_types): Conform to ARM
+	12.6.2 with respect to virtual bases.  Virtual bases are now
+	initialized in dfs order.
+
+	Wed Jun 23 16:04:17 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-tree.c (layout_basetypes): Disable the warning relating to a
+	non-virtual dtor.
+
+	Tue Jun 22 20:03:59 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-lex.c (reinit_parse_for_block): Detect EOFs inside templates.
+
+	Tue Jun 22 16:10:46 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-class.c (finish_struct): Set TYPE_NONCOPIED_PARTS now that the
+	right vtable can be found, so that the vtable pointers are set
+	correctly when implementing default copy constructors.
+	* cp-typeck.c (build_modify_expr): Use TYPE_NONCOPIED_PARTS in the
+	same way the backend uses it when implementing default copy
+	constructors.
+
+	Tue Jun 22 10:50:56 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Don't try to mangle the name of a fn
+	that has C linkage.
+
+	* cp-init.c (xref_friends): Deleted fn, since it's the same as
+	xref_friend.
+	(xref_friend): Make it static.
+	(do_friend): Change call to xref_friend.
+	* cp-tree.h (xref_friend, xref_friends): Delete extern decls.
+
+	* cp-tree.h (lang_type): Delete `dynamic' bit.
+	* gplus.gperf (dynamic): Delete reserved word.
+	* cp-hash.h: Generated a new version.
+	* cp-lex.c (init_lex): Delete doing an unset of `dynamic'.
+	* cp-parse.y (DYNAMIC): Delete token and setting it to %right.
+	(new, aggr): Delete DYNAMIC rules.
+	* cp-spew.c (init_spew, struct toks_follow_types): Delete DYNAMIC.
+
+	* cp-typeck.c (convert_for_assignment): There's no standard
+	conversion from a pointer to member to a `void *'.
+
+	* cp-decl.c (init_decl_processing): Add builtins for
+	__builtin_apply_args, __builtin_apply, and __builtin_return.
+
+	Mon Jun 21 12:05:28 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl2.c (grok_x_components): New function.  Adjust the code that
+	handles ENUMERAL_TYPEs and UNION_TYPEs to make more sense. 
+	* cp-parse.y (component_decl): Move a lot of code into that fn.
+	* cp-tree.h (grok_x_components): Add extern decl.
+
+	* cp-parse.y (component_decl_list): Don't warn about a semicolon
+	after a component_decl_list.
+
+	* cp-search.c (lookup_field): Be careful to handle operators
+	properly when complaining about ambiguities &c.
+
+	* cp-search.c (dfs_pushdecls): Make sure we have a context before
+	seeing if it derives from TYPE.
+
+	Fri Jun 18 08:14:11 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl2.c (finish_anon_union): Use simple_cst_equal to find the
+	member that can hold all the values, instead of just doing a compare
+	between the DECL_SIZEs.
+
+	Wed Jun 16 10:57:37 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-typeck.c (build_unary_op): Make sure it's the global fn `main'
+	before complaining about taking the address of it.
+
+	* cp-decl.c (grokdeclarator): Also forbid `operator ()' as a
+	non-member fn.
+
+	* cp-decl.c (grok_reference_init): Don't allow an initializer list
+	as the initializer for a reference.
+
+	* cp-method.c (dump_init): Handle a NON_LVALUE_EXPR.
+
+	Sun Jun 13 12:55:22 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (grokvardecl): Don't complain about duplicate
+	definitions of `extern "C"' declarations (parallelize it with how
+	regular `extern' decls are handled).
+
+	* cp-decl.c (start_function): Avoid a null-reference on CTYPE.
+
+	* cp-cvt.c (build_default_binary_type_conversion): Look deeper into
+	what ARG1 and ARG2 are if they're POINTER_TYPEs.
+
+	Thu Jun 10 12:09:17 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Make the warning about opr-eq being a
+	member function be a pedwarn.
+
+	Thu Jun 10 00:30:08 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-tree.h: (previous_class_type): Add external declaration.
+	* cp-class.c (prev_class_type): Rename to previous_class_type.
+	* cp-decl.c (struct saved_scope): Add previous_class_type slot.
+	* cp-decl.c (push_to_top_level, pop_from_top_level): Track
+	previous_class_type value.  The only trick is that we have to call
+	popclass(-1) when we have a previous_class_type that we are about to
+	destroy, to keep things in sync.
+
+	Tue Jun  8 16:48:49 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-cvt.c (build_thunk, convert_fn_ptr): New routines to handle
+	thunks.
+	* cp-cvt.c (cp_convert_to_pointer): Use convert_fn_ptr when
+	converting non-static pointer to members.
+
+	Tue Jun  8 16:41:59 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-lex.c (reinit_parse_for_block): Make sure not to try to use
+	consume_string on an escaped double-quote. 
+
+	Tue Jun  8 16:25:43 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-call.c (build_method_call): Don't search hidden functions from
+	base classes, as this violates chapter 10.
+
+	Mon Jun  7 18:46:01 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-init.c (emit_base_init): Rewrite, merging the two paths into
+	one for member initialization.  Now members will be initialized in
+	order of declaration, not in the order of the mem-initializer list.
+	(perform_member_init, sort_member_init): New functions.
+
+	Mon Jun  7 18:01:31 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-search.c (is_subobject_of_p, lookup_field, lookup_fnfields):
+	Because virtual bases don't necessarily share the same binfo, use
+	the binfo hierarchy of TYPE_BINFO of any virtual bases, when
+	performing hiding checks.  Fixes problem introduced on Thu Mar 25
+	23:09:27 1993.  The symptom is the compiler reports non ambiguous
+	members as being ambiguous.
+
+	Sun Jun  6 11:45:44 1993  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* cp-call.c (EVIL,TRIVIAL): New macros.
+	(convert_harshness): Use these macros.
+
+	Sat Jun  5 19:06:13 1993  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* cp-init.c (emit_base_init): Make clearing BINFO_BASEINIT_MARKED
+	symmetric with its setting.  Fixes p2825.
+
+	Thu Jun  3 16:24:30 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-parse.y (component_declarator, component_declarator0):
+	Allow attribute after nameless field.
+
+	* cp-lex.c (real_yylex): Take care to expand token_buffer before
+	storing each character.
+
+	* cp-lex.c (real_yylex): If an integer value overflows so the high
+	word is negative, it's of unsigned long long type.  Integer constant
+	is unsigned for purposes of int_fits_type_p so that it compares huge
+	constants properly.  Warn about integers so large that they are
+	unsigned.
+
+	* cp-cvt.c (convert_from_reference): Do an or-equals on setting
+	TREE_SIDE_EFFECTS for NVAL.
+	* cp-tree.c (lvalue_p): For a SAVE_EXPR, check its first argument.
+
+	Thu Jun  3 11:34:35 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl2.c (grok_alignof): New function.
+	* cp-parse.y (unary_expr, ALIGNOF unary_expr rule): Move the code
+	into the new function, to reduce the size of the parser.
+	* cp-tree.h (grok_alignof): Add prototype.
+
+	* cp-decl.c (grokdeclarator): Allow function-call notation for
+	initialization of scalars as well as aggregates.
+
+	* cp-decl.c (pushdecl): Don't pay attention to friends when noting a
+	missing `static' decl.  Disable this code for now.
+
+	Wed Jun  2 12:23:05 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (duplicate_decls): Do a regular error if the line number
+	on NEWDECL hasn't been set yet (e.g., before finish_struct).
+
+	* cp-class.c (finish_struct): Remove warning about a bit-field
+	having a bad type in ANSI C++, it's not appropriate given the
+	warning immediately above.
+
+	* cp-typeck.c (require_instantiated_type): Don't allow an
+	initializer list in an argument list.
+
+	* cp-decl.c (pushdecl): Change shadowing of a param in outermost
+	block of the fn from a pedwarn to an error, since it's a
+	redeclaration.
+
+	* cp-class.c (finish_struct): Say anonymous classes and structs are
+	useless, not just classes.
+
+	* cp-lex.c (real_yylex): Warn if catch, throw, or try are used as
+	identifier names.
+
+	* cp-decl.c (pushdecl): Make sure we have a CURRENT_FUNCTION_DECL
+	before setting its public flag.
+
+	* cp-decl.c (expand_static_init): Only complain about multiple
+	initializations of a static variable if we actually have an
+	initializer.
+	(finish_decl): Likewise for const.
+
+	* cp-search.c (build_mi_matrix): Fix off-by-one error in
+	clearing of MI_MATRIX.
+	(get_base_distance): Init NEW_BINFO to 0.
+
+	* cp-pt.c (instantiate_member_templates): Initialize XXX to 0.
+
+	* cp-call.c (build_method_call): Zero out candidates.
+	(build_overload_call_real): Likewise.
+
+	Wed Jun  2 11:53:24 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-search.c (lookup_fnfields_here): Use TYPE_MAIN_VARIANT on
+	context types before comparing.  Fixes const member functions not
+	being found in templates.
+
+	Tue Jun  1 18:26:18 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-parse.y (structsp): Avoid a null-ref on ID.
+	(left_curly): Likewise.
+
+	Tue Jun  1 13:49:20 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (pushdecl): Communicate a `static' decl of a prototype
+	into its definition, if they forget to take care of it.
+
+	* cp-init.c (emit_base_init): Make error message more useful about
+	insufficient initializers for a member of a class w/o a ctor.
+
+	Sun May 30 09:45:06 1993  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* cp-call.c (compute_conversion_costs): Penalise each argument that
+	matches an ellipsis, not just the ellipsis itself.
+	(build_method_call): Don't consider a candidate an easy match if
+	cp->ellipsis is non-zero (fixes p2778).
+
+	Sat May 29 09:34:57 1993  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* cp-cvt.c (convert_to_reference): Match ARM rules more closely by:
+	(1) not converting between types of different signedness, and
+	(2) converting between types of different varieties if a const&
+	suggests we can use a temporary (fixes p2780).
+
+	* cp-decl.c (decls_match): Handle pseudo-match of parameter lists
+	according to p308 of the ARM.
+	(push_overloaded_decl): Ditto.
+	* cp-typeck.c (comptypes): Rest of change (closes p2779).
+
+	* cp-call.c (compute_conversion_costs): Count ellipses when we see
+	them.
+	(ideal_candidate): Gracefully handle arg lists that have ellipses
+	(Fixes p2777).
+
+	* cp-call.c (build_method_call): Delete some #ifdefs that are
+	obsoleted by ANSI.
+
+	Fri May 28 12:15:21 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (finish_decl): Don't allow overloaded operators to have
+	default arguments.
+
+	* cp-cvt.c (convert): If it's an anonymous enum, say so instead of
+	giving the cryptic `._123' as the enum type.
+
+	Thu May 27 10:52:49 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl.c (grokdeclarator): Return 0 instead of doing a 155 abort,
+	so we'll get the right error message later.
+
+	* cp-type2.c (readonly_error): Give a more useful error when the arg
+	is a RESULT_DECL.
+
+	* cp-init.c (build_new): Set LOOKUP_COMPLAIN on the flags, so we'll
+	pay attention to the visibility of the constructor we're trying to
+	call.
+
+	* toplev.c (lang_options): Add warning about ctor/dtor privacy.
+	* cp-decl2.c (lang_decode_option): Grok it.  Make -Wall effect it.
+	(warn_ctor_dtor_privacy): New variable, default being on.
+	* cp-tree.h (warn_ctor_dtor_privacy): Add extern decl.
+	* cp-class.c (finish_struct_methods): Make the ctor warning
+	conditionalized on the flag.
+	(finish_struct): Likewise for ctors.
+	* invoke.texi (Option Summary, Warning Options): Add it.
+	(Options to Request or Suppress Warnings): Explain it.
+
+	* cp-decl.c (grokdeclarator): Use a pedwarn on extern inline.
+
+	Tue May 25 13:55:48 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-init.c (build_delete): Don't pass the size as an argument to
+	builtin delete for a non-aggregate type.  Only pass it for a class
+	when we'll be using its own operator delete(). (complies w/ $12.5)
+	(build_x_delete): Don't pass the size down to builtin delete.
+
+	* cp-decl2.c (delete_sanity): If it's a pointer to a type that has
+	no destructor, then build a regular delete expression, instead of a
+	vector one (since we didn't push any info into the BI_header_type
+	area).
+
+	* cp-decl2.c (grok_array_decl): Add a pedwarn if they do `5[a]'.
+
+	* cp-typeck.c (comptypes): Don't warn about t2 being an
+	error_mark_node.
+
+	* cp-decl.c (finish_decl): If type is laid out, but decl is not,
+	call layout_decl.
+
+	Mon May 17 10:35:55 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-tree.h (error_not_base_type): Add prototype.
+
+	Fri May 14 17:16:55 1993  Mike Stump  (mrs@poseidon.cygnus.com)
+
+	* cp-class.c (finish_struct): Use get_binfo instead of binfo_value
+	to find vfields.  Cures compiler_error.
+
+	Thu May 13 14:57:51 1993  Mike Stump  (mrs@cygnus.com)
+
+	* cp-tree.c (binfo_value): If type is the main binfo for elem,
+	return it.
+
+	Wed May 12 13:10:07 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-typeck.c (c_expand_return): Pedwarn on using return without a
+	value in a function that requires one.  Clear
+	CURRENT_FUNCTION_RETURNS_NULL, so we don't get a bogus warning about
+	reaching the end of a non-void function.
+
+	Tue May 11 17:51:16 1993  Mike Stump  (mrs@poseidon.cygnus.com)
+
+	* cp-decl.c (start_decl): Allow -fexternal-templates compiled code to
+	fall back to old strategy of generating static copies for templates
+	that are not under the control of #pragma interface/implementation,
+	but warn if this happens.
+	* cp-decl2.c (warn_if_unknown_interface): Likewise.
+	* cp-lex.c (reinit_parse_for_method, cons_up_default_function):
+	Likewise.
+	* cp-pt.c (end_template_decl, instantiate_member_templates,
+	instantiate_template): Likewise.
+	* cp-tree.h (warn_if_unknown_interface): Likewise.
+
+	Sat May  8 05:53:17 1993  Michael Tiemann  (tiemann@cygnus.com)
+
+	* cp-decl.c (finish_decl): TOPLEV should be set non-zero also if we
+	are at the pseudo-global level.  Use TOPLEV instead of testing
+	CURRENT_BINDING_LEVEL.
+
+	Fri May  7 12:42:46 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-decl2.c (grok_array_decl): New function.
+	* cp-parse.y (primary): Use it instead of lots of code in the
+	parser.
+	* cp-tree.h (grok_array_decl): Add prototype.
+
+	* cp-parse.y (component_decl): Disable change about TYPE_DECLs going
+	into the TYPE_FIELDS list for now.
+	* cp-type2.c (store_init_value): Disable checks for now.
+
+	Thu May  6 16:59:19 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-lex.c (check_newline): Use a while instead of a do-while to
+	avoid reading the line after the #pragma if we're at a newline.
+
+	Wed May  5 16:38:06 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* Makefile.in (stamp-cp-parse): Update reduce/reduce count to 13.
+
+	* cp-decl2.c (delete_sanity): New function.
+	* cp-parse.y (unary_expr): Call it, getting rid of a lot of
+	repeated code in the parser.
+	* cp-tree.h (delete_sanity): Add prototype.
+
+	* cp-init.c (emit_base_init): Don't try to do anything with a member
+	that lacks a DECL_NAME (e.g., types we added in component_decl from
+	the parser).
+
+	Wed May  5 12:57:33 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* cp-parse.y (get_current_declspecs):  Obsolete, deleted.
+
+	Tue May  4 13:46:09 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-type2.c (process_init_constructor): Don't check for private or
+	protected members; we do that in store_init_value now.
+
+	* cp-parse.y (simple_stmt): Use expr_no_commas instead of expr for
+	case labels.
+
+	* cp-typeck.c (build_binary_op_nodefault): Add 'right' and 'left' to
+	shift count warnings to distinguish them from each other.
+
+	* cp-decl.c (finish_decl, grokdeclarator): Report overflows in
+	storage sizes.
+	(build_enumerator): Report overflows on enumerators.
+	* cp-decl2.c (grokbitfield): Likewise.
+	* cp-parse.y (unary_expr): Warn about overflows in parser-built
+	unary expressions.
+	* cp-typeck.c (c_sizeof): Call force_fit_type only for INTEGER_CST.
+	(build_c_cast): Ignore any integer overflow caused by a cast.
+	(convert_for_assignment): Warn if source had overflow in folding.
+	(build_conditional_expr): Check conversions in if-then-else
+	expressions.
+	* cp-tree.h (convert_and_check, overflow_warning,
+	unsigned_conversion_warning): Add prototypes for fns in c-common.c.
+
+	* cp-decl.c (init_decl_processing): Make the arrays 200 long to
+	leave enough room for most names.
+
+	* cp-decl.c (lookup_label): Return a NULL_TREE if not within a
+	function.
+	* cp-parse.y (unary_expr, ANDAND identifier): Handle lookup_label
+	returning a NULL_TREE.
+
+	* cp-method.c (dump_init): Grok a FIELD_DECL as well.
+
+	* cp-decl.c (finish_function): Move setting of the DECL_RESULT's
+	context and calling setjmp_protect after poplevel, so we have a
+	valid DECL_INITIAL for the fndecl (not an error_mark_node).
+
+	Mon Jan 25 11:04:23 1993  Niklas Hallqvist  (niklas at della.appli.se)
+
+	* cp-parse.y (component_decl): Handle anonymous unions as static
+	class members.
+	* cp-decl.c (grokdeclarator): Ditto.
+
+	* cp-decl.c (shadow_tag): Emit error message if static or extern
+	is specified as per ARM 7.1.1.
+    
+        * cp-decl2.c (finish_anon_union): Issue error if a global
+	anonymous union is not declared static, remove old funny error
+	about some optimizer failing.
+
+        * cp-class.c (finish_struct): Corrected error message concerning
+	anonymous classes.
+
+	* cp-lex.c (check_for_missing_semicolon): Allow trailing storage
+	specifiers.
+
+	Fri Jan 29 09:39:17 1993  Niklas Hallqvist  (niklas at della)
+
+	* cp-parse.y (component_decl): Nested unions, enums and structs
+	should have their TYPE_DECLs in the TYPE_FIELDS slot of the
+	containing type so the access flags eventually will get correctly
+	set.
+
+	* cp-type2.c (store_init_value): Check for the aggregate conditions
+	described in ARM 8.4.1.
+
+	Mon May  3 19:10:28 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-lex.c (real_yylex): Don't warn about floating point out of
+	range if target floating-point format is IEEE.
+
+	* cp-class.c (finish_struct): Promote unsigned bitfields to signed
+	int if the field isn't as wide as an int.
+
+	* cp-search.c (dfs_pushdecls): Use warning_with_decl, so we give the
+	line number of the offending method declaration, rather than the
+	line number of the curly-brace that ends the class definition.
+
+	Mon May  3 18:04:15 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-cvt.c (convert): When doing int->enum conversions, always call
+	pedwarn, even if we didn't give `-pedantic'.
+
+	* cp-decl.c (start_function): Add extern decl of
+	`flag_external_templates'.
+
+	* cp-lex.c (check_newline): Warn if there's anything after a
+	`#pragma interface'.
+
+	Mon May  3 12:39:49 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-class.c (finish_struct_methods): Use `warning' on a class w/ a
+	private dtor and no friends, so the line number comes out right.  Also
+	only emit this warning when `extra_warnings' is true.
+
+	* cp-type2.c (process_init_constructor): Don't allow use of an
+	initializer list for a class with private or protected members.
+
+	Sat May  1 15:07:24 1993  Mike Stump  (mrs@poseidon.cygnus.com)
+
+	* cp-decl.c (start_decl, start_function): Add a new flag
+	-fexternal-templates.  Use flag_external_templates to determine when
+	template definitions should be made externally visible and
+	accessible.  This permits non-exponential growth in object files
+	that use templates.
+	* cp-decl2.c (lang_f_options): Likewise.
+	* cp-lex.c (reinit_parse_for_method, cons_up_default_function):
+	Likewise.
+	* cp-parse.y (template_instantiate_once): Likewise.
+	* cp-pt.c (end_template_decl, instantiate_member_templates,
+	instantiate_template, end_template_instantiation): Likewise.
+	* toplev.c (lang_options): Likewise.
+
+	Fri Apr 30 18:50:00 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* cp-spew.c (arbitrate_lookup): If the next character is a '[', then
+	have the compiler assume it's an expression instead of a type.
+
+	Fri Apr 30 14:39:28 1993  Mike Stump  (mrs@poseidon.cygnus.com)
+
+	* cp-class.c (maybe_fixup_vptrs): Use the VF_NORMAL_VALUE of the
+	vfields to get the binfo to get the vtable, so that we may pick up
+	the most derived version of the vtable.
+
+	* cp-class.c (finish_base_struct): Always set the VF_NORMAL_VALUE so
+	that maybe_fixup_vptrs can get the most derived vtable.
+
+Fri Jun 25 14:00:17 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config.sub: Convert ...-sysvr4 into ...-sysv4.
+
+	* config/m68k/news.h (CPP_PREDEFINES): Have two alternatives,
+	one for motorola and one for not motorola.
+
+	* config/m68k/tower-as.h, mot3300.h, m68kv4.h, hp320.h, amix.h:
+	* config/m68k/3b1.h, crds.h (CPP_PREDEFINES): Add __motorola__.
+
+	* expr.c (store_expr): If TARGET is volatile mem ref, return it.
+
+	* toplev.c (lang_options): Add -fdollars-in-identifiers.
+	* c-decl.c (c_decode_option): Handle -fdollars-in-identifiers.
+
+Fri Jun 25 13:33:39 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa-hpux.h (LINK_SPEC): Search shared libraries by default; turn
+	off shared library searching of -static is specified.
+	* pa-ghpux.h (LINK_SPEC): Likewise.
+
+	* pa.h (TARGET_SHARED_LIBS): Delete switch and all references to
+	the switch.
+	* pa.c: References to TARGET_SHARED_LIBS deleted.
+	* pa.md: Likewise.
+
+	* pa-utahmach.h (TARGET_DEFAULT): Allow indexing on Mach ports.
+	* pa1-utahmach.h (TARGET_DEFAULT): Likewise.
+	* pa.h (TARGET_DISABLE_INDEXING): Clean up comments.
+
+Fri Jun 25 00:50:48 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* expr.c (store_expr): Ignore SUGGEST_REG if target is volatile.
+
+	* config/mips/mips.md (negdi2, negdi2_internal): Renamed from negdi3...
+
+Thu Jun 24 00:31:27 1993  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* gcc.c (option_map): Make --version alias for -dumpversion.
+
+Wed Jun 23 07:50:21 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* romp.c (output_prologue): Delete unused var, INSN.
+	(output_encoded_offset): New function.
+	(output_epilogue): Minor changes to traceback table; call
+	new output_encoded_offset.
+	(romp_debugger_{auto,arg}_correction): New functions.
+	* romp.h (DBX_REGPARM_STABS_LETTER, DEBUGGER_{AUTO,ARG}_OFFSET):
+	New macros.
+
+	* reorg.c (fill_slots_from_thread): When replacing a use of a
+	register with what it was set to, don't do it when either the
+	destination or source of the copy is set in the insn.
+
+	* jump.c (jump_optimize): Properly make jump into store-flag
+	sequence when the jump can't be reversed but the TRUE branch
+	is const0_rtx. 
+
+	* expr.c (expand_expr): Set IGNORE if target is const0_rtx or
+	result type is VOID.
+	Move most IGNORE processing to one place to avoid expanding things
+	that don't need to be expanded.
+	(expand_expr, case CONSTRUCTOR, case COND_EXPR): If IGNORE, don't
+	expand anything we don't have to.
+	(expand_expr, case CONVERT_EXPR): Don't deal with IGNORE here.
+
+Wed Jun 23 07:47:32 1993  John F Carr  (jfc@Athena.mit.edu)
+
+	* regs.h (scratch_list, scratch_block, scratch_list_length): New vars.
+	* reload1.c (mark_scratch_live): New function.
+	(reload): Call it on each SCRATCH.
+	Free scratch list and block.
+	(spill_hard_reg): Reallocate any SCRATCH whose register we want to
+	spill.
+	* local-alloc.c (scratch_block, scratch_list{,_length}, scratch_index):
+	New variables.
+	(local_alloc): Allocate and initialize them.
+	(alloc_qty_for_scratch): Can allocate likely-spilled register
+	classes for SCRATCH.
+	(block_alloc): Likewise for regs in small register classes.
+	Only allocate a SCRATCH if it can fit in the block we make.
+	Don't mark regs used in SCRATCH live here; instead, make entry in
+	new tables.
+
+Tue Jun 22 19:52:08 1993  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* emit-rtl.c (copy_rtx_if_shared): In `E' case, get the length
+	before copying, and don't get it again after.
+
+Tue Jun 22 10:50:56 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* toplev.c (report_error_function): Change format of the
+	included-file stack to be more readable.
+	* cccp.c (print_containing_files): Likewise.
+
+Mon Jun 21 19:21:18 1993  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.c (print_operand, case 'J'): Write out shift count
+	of 0, not 32 for bit 31 of CCR.
+
+See ChangeLog.7 for earlier changes.
diff --git a/gcc/ChangeLog.9 b/gcc/ChangeLog.9
new file mode 100644
index 0000000..9cd8cdf
--- /dev/null
+++ b/gcc/ChangeLog.9
@@ -0,0 +1,9968 @@
+Tue Feb 28 16:36:58 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/eabi.asm (__eabi): Correctly reload r30 in the case where
+	the GOT pointers have to be relocated.
+
+	* rs6000/rs6000.md (floatsidf2, floatunssidf2): Add
+	TARGET_SOFT_FLOAT conditional dropped in the last change.
+	(movdf insns): Add -msoft-float varients that do not use 'f' register
+	constraints.
+	(movti): On PowerPC, don't clobber the MQ register, since it doesn't
+	exist.  Add abort to default switch case.
+	(store_multiple, load_multiple): Test for TARGET_POWER instead
+	of !TARGET_POWERPC to determine whether the MQ register exists.
+
+Tue Feb 28 14:46:48 1995  Doug Evans  <dje@cygnus.com>
+
+	* configure (extra_headers): Renamed from header_files.
+
+	* toplev.c (rest_of_compilation): Defer output of static inlines
+	even if not optimizing, they may never be referenced.
+
+Mon Feb 27 17:06:47 1995  Doug Evans  <dje@cygnus.com>
+
+	* cccp.c (do_include): Check for redundant file before opening in
+	relative path case.  Don't call fstat unnecessarily.
+
+Mon Feb 27 11:20:29 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* mips.md (muldi3_internal): Change dmul to dmult.
+
+Mon Feb 27 02:30:54 1995  Jeffrey A. Law  <law@mole.gnu.ai.mit.edu>
+
+	* pa.c (hppa_expand_prologue): Don't save the PIC register into
+	the stack for functions which have no stack of their own.
+
+Mon Feb 27 00:43:32 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* config/gnu.h (ASM_SPEC): Macro removed.
+
+Sun Feb 26 20:21:52 1995  Doug Evans  <dje@cygnus.com>
+
+	* reload.c (find_reloads_address): Fix typo in reg+const case.
+
+Sat Feb 25 10:21:13 1995  Doug Evans  <dje@cygnus.com>
+
+	* gcc.c (print_search_dirs): New variable.
+	(build_search_list): New function.
+	(putenv_from_prefixes): Call it.
+	(option_map): New option --print-search-dirs.
+	(process_command): Handle it.
+	(main): Print installation directory and exec/startfile_prefixes if
+	--print-search-dirs given.
+
+	* Makefile.in (Makefile): Delete config.run afterwards.
+	(distclean): Delete config.run.
+
+Sat Feb 25 08:36:40 1995  David Mosberger-Tang  (davidm@cs.arizona.edu)
+
+	* alpha.h (ASM_SPEC): Pass -pg to assembler.
+	(FUNCTION_PROFILER): Do nothing; the assembler does it for us.
+
+Sat Feb 25 08:24:27 1995  H.J. Lu   (hjl@nynexst.com)
+
+	* configure (native_prefix): New; lets some hosts put
+	files in /usr instead of /usr/local if no --prefix specified.
+
+Sat Feb 25 08:07:56 1995  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.h (RTX_COSTS): Add cost of FFS.
+
+Sat Feb 25 06:52:22 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* mips.c (mips_fill_delay_slot): Fix typo in call to FP_REG_P.
+
+	* cse.c (simplify_unary_operation): If operand mode is VOIDmode
+	for UNSIGNED_FLOAT and operand looks negative, can't simplify.
+
+	* rs6000.c (low_32_bit_operand): New function.
+	* rs6000.h (PREDICATE_CODES): Add low_32_bit_operand.
+	* rs6000.md: Remove unneeded tests on HOST_BITS_PER_INT from 
+	some extra conditions.
+	Use low_32_bit_operand for (plus:DI (zero_extend:DI ..) ..) cases.
+
+Sat Feb 25 00:49:29 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* config/xm-gnu.h (POSIX): Define this macro.
+
+	* config/gnu.h (GNU_CPP_PREDEFINES): Add missing backslash.
+
+Fri Feb 24 19:17:29 1995  Jeffrey A. Law  <law@snake.cs.utah.edu>
+
+	* configure (hppa1.?-hp-hpux9*): Use hpux9 configuration files.
+	* pa-hpux9.h, pa-ghpux9.h, pa1-hpux9.h, pa1-ghpux9.h: New
+	configuration files.
+
+Fri Feb 24 15:55:33 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* reorg.c (relax_delay_slots): When searching for next CODE_LABEL,
+	use next_real_insn not next_active_insn.
+
+	* stdarg.h, va-*.h, varargs.h (va_end): Expand to a void expression
+	instead of nothing.
+
+	* sh.h (PACKSTRUCT_BIT, TARGET_PACKSTRUCT): Change to PADSTRUCT.
+	Add comment saying that the option is not useful.
+	(TARGET_SWITCHES): Change -mpackstruct option to -mpadstruct.
+	(STRUCTURE_SIZE_BOUNDARY): Change PACKSTRUCT to PADSTRUCT changing
+	default value from 32 to 8.
+
+	* dwarfout.c (PUSHSECTION_FORMAT): Add a leading tab.
+
+	* expr.c (expand_expr, case COMPONENT_REF): Don't fetch unaligned
+	field if we only want its address.
+
+	* i960.c (fp_literal_one, fp_literal_zero): Don't accept VOIDmode.
+	(i960_output_ldconst): In DFmode code, delete code to handle FP_REG_P
+	target.  In DFmode and SFmode code, delete test for HOST_FLOAT_FORMAT
+	== TARGET_FLOAT_FORMAT.
+	* i960.h (REAL_ARITHMETIC): Define.
+	(LEGITIMATE_CONSTANT_P): Pass argument mode not VOIDmode to fp_literal.
+
+	* i960.h (CC1_SPEC): Don't output implicit -gstabs or -gcoff option
+	if user gave an explicit one.
+	* vx960-coff.h (CC1_SPEC): Likewise.
+
+	* dbxout.c (GDB_INV_REF_REGPARM_STABS_LETTER): New macro.
+	(dbxout_parms): For gdb, output use GDB_INV_REF_REGPARM_STABS_LETTER
+	for parameters passed by invisible reference in registers.
+
+	* mips.c (mips_secondary_reload_class): Also handle SUBREGs.
+	* mips.md (madsi): Don't use '+' constraint in a clobber.
+	(madsi_highpart, umadsi_highpart): Delete.
+
+	* dbxout.c (dbxout_parms): For parameters passed in memory, delete
+	obsolete code to handle parameters converted and stored back to
+	the stack slot where they were passed in.
+	(dbxout_reg_parms): Delete obsolete ifdefed out code.  Combine
+	redundant PARM_PASSED_IN_MEMORY tests.  For case where parameter
+	lives in memory, output stab if it doesn't live where it was passed.
+
+	* sh.c: Correct typos and formatting problems.
+	(add_constant, current_function_pretend_args_size,
+	flag_traditional, table_lab): Delete unnecessary declarations.
+	(sh_cpu): Change type from attr_cpu to processor_type.	
+	(need_slot, output_shift, lshiftrt_insns, howshift,
+	pop_operand): Delete.
+	(print_operand, output_branch): Delete calls to need_slot.
+	(synth_constant): Comment that it doesn't work.
+	(output_movedouble): Handle PRE_DEC dest not POST_INC dest.
+	(output_options): Don't use flag_traditional.
+	(shift_insns): Correct numbers to optimal sequences.
+	(shift_amounts): New table.
+	(shift_insns_rtx): New function.
+	(shiftinsns): Combine LSHIFTRT and ASHIFT cases.
+	(shiftcosts): Return true costs of shifts instead of estimate of 1.
+	(gen_ashift): Handle negative shift amounts.  Call gen_lshrsi3_m
+	for single bit LSHIFTRT, and gen_lshrisi3_k for multiple bit shifts.
+	(gen_shifty_op): Handle negative shift amounts at top.  Generate
+	optimal sequences for ASHIFT and LSHIFTRT.
+	(find_barrier): Correct pattern for matching mova instructions.
+	(general_movsrc_operand): Delete redundant test for (MEM LABEL_REF).
+	Don't reject POST_INC address for size > 4.
+	(general_movdst_operand): Don't reject PRE_DEC address for size > 4.
+	* sh.h: Correct typos and formatting problems.
+	(MODE_DISP_OK_[12]): Delete.
+	(GO_IF_LEGITIMATE_INDEX): Delete uses of MODE_DISP_OK_[12].
+	(RTX_COSTS): Add LSHIFTRT.
+	(table_lab): Delete declaration.
+	(enum processor_type): New enum.
+	(sh_cpu_attr): New macro.
+	(sh_cpu): Change type to enum processor_type to avoid incomplete
+	enum type.
+	* sh.md: Correct typos and formatting problems.
+	(cpu): Use sh_cpu_attr not sh_cpu.
+	(adddi3, subdi3, udivsi3-1, divsi3-1, mulsi3_call-1, ashrsi2_16,
+	ashrsi2_31, dect, casesi_worker): Use arith_reg_operand not
+	register_operand.
+	(ashlsi3_n, lshrsi3_n): Enable pattern.  Set length correctly.
+	Use '#' to output it.
+	(ashlsi3_n+1, lshrsi3_n+1): New patterns to split shifts.
+	(ashlsi3, lshrsi3): Use shiftby_operand instead of gen_shifty_op.
+	(lshlsi3_m): New pattern for single bit shifts.
+	(lshlsi3_k): Only handle multiple bit shifts.	
+	(negc): Use IOR not PLUS to set carry bit.
+	(push+2, pop+2, movsi_pi, movdi-2, movdf_k-1, movsf_i-1): Delete.
+	(movsi_i, movqi_i, movhi_i): Delete redundant < and > constraints.
+	(movsf_i): Delete incorrect < and > constraints.
+
+Fri Feb 24 13:07:55 1995  Stephen L Moshier  <moshier@world.std.com>
+
+	* i386/i386.md (sinxf2, cosxf2): Define.
+
+Thu Feb 23 14:14:20 1995  Mike Stump  <mrs@cygnus.com>
+
+	* rs6000.h/rs6000.h (RETURN_ADDR_RTX): Add definition to support
+	__builtin_return_address and __builtin_frame_address on the
+	rs6000.  This is necessary to support exception handling in g++ on
+	the rs6000. 
+
+Thu Feb 23 15:23:26 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/rs6000.h (TARGET_SWITCHES): All -mpower switches set
+	-mmultiple by default.  Rename -mno-fp-regs to -msoft-float and
+	-mfp-regs to -mhard-float.
+	(TARGET_NO_FPR): Rename all occurances of macro to be either
+	TARGET_HARD_FLOAT or TARGET_SOFT_FLOAT.
+	(FUNCTION_VALUE): If -msoft-float, floating point gets returned in
+	register 3.
+	(LIBCALL_VALUE): Ditto.
+	(USE_FP_FOR_ARG_P): Don't use floating point registers if
+	-msoft-float.
+	(MOVE_MAX): Use TARGET_MUTIPLE instead of TARGET_POWER to decide
+	to move 16 bytes at a time.
+	(GO_IF_LEGITIMATE_ADDRESS): Don't allow index + base register
+	addresses for DF's if -msoft-float.
+
+	* rs6000/rs6000.c (POWER_MASKS): Or in MASK_MULTIPLE.
+	(processor_target_table): Set MASK_MULTIPLE for Power CPUs and
+	don't set it for PowerPC CPUs.
+	(output_prolog): If -mrelocatable and a GOT pool is used, mark the link
+	register as being live.  Load the GOT address via a bl instruction.
+	(output_toc): If V.4 semantics, make the TOC label be the difference
+	from the start of the TOC section, rather a label the assembler has to
+	recognize as being an offset.
+
+	* rs6000/rs6000.md (all floating point ops): For all operations,
+	check if floating point is allowed.
+	(movti): Use TARGET_MULTIPLE to decide whether to expand movti
+	instead of TARGET_POWER.
+
+	* rs6000/sysv4.h (SUBTARGET_SWITCHES): Move here from eabi.h, so the
+	various macro overrides don't have to be recoded for eabi as well
+	as System V.4.  Add -mstrict-align to set STRICT_ALIGNMENT to 1.
+	Add -mrelocatable to specify that that the data/text sections may
+	be copied elsewhere, but not true V.4 style PIC.
+	(TOC_SECTION_FUNCTION): Handle TARGET_RELOCATABLE.
+	(TOC_SECTION_ASM_OP): Put quotes around ".got".
+	(MINIMAL_TOC_SECTION_ASM_OP): Put quotes around ".got1".
+
+	* rs6000/eabi.h (SUBTARGET_SWITCHES): Move to rs6000/sysv4.h.
+	(MINIMAL_TOC_SECTION_ASM_OP): Use ".got2" section if
+	-mrelocatable.
+
+	* rs6000/eabi.asm: New file to load up register 2 or relocate the .got2
+	addresses.  Called from main.
+
+	* rs6000/t-rs6000: Build two libgcc.a's, one for normal use, and one
+	used when compiling with -msoft-float.
+
+	* rs6000/t-eabi: New file, build two libgcc.a's, one for normal use,
+	and one used when compiling with -msoft-float.  Add support for eabi
+	module to relocate the .GOT2 section to support -mmultiple.
+
+	* configure (powerpc-*-eabi*): Use t-eabi, not t-rs6000.
+
+Thu Feb 23 06:58:46 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (ld): Add missing backslash to make continuation line.
+
+	* i386/winnt.c (gen_stdcall_suffix): Deleted.
+	* winnt/winnt.h (MODIFY_ASSEMBLER_NAME): Deleted.
+	(VALID_MACHINE_DECL_ATTRIBUTES): Deleted.
+	* varasm.c (make_decl_rtl): Remove reference to MODIFY_ASSEMBLER_NAME.
+
+	* alpha.h (RTX_COSTS): Update costs for FP operations.
+
+Thu Feb 23 00:13:05 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+        * c-typeck.c (build_binary_op): Warn if, in a comparison, a signed
+        operand that might be negative is converted to unsigned.
+
+Wed Feb 22 21:32:48 1995  Peter Schauer  (Peter.Schauer@regent.e-technik.tu-muenchen.de)
+
+	* config/svr4.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): New macro.
+
+Wed Feb 22 20:29:31 1995  J.T. Conklin  <jtc@netbsd.org>
+
+	* configure (*-*-netbsd*): Set tmake_file to t-libc-ok.
+
+	* config/xm-netbsd.h, i386/xm-netbsd.h, m68k/xm-netbsd.h: New files.
+	* sparc/xm-netbsd.h: New file.
+	* ns32k/xm-netbsd.h: Changed to use config/xm-netbsd.h and
+	ns32k/xm-ns32k.h.
+	* configure (i386-*-netbsd*): Use i386/xm-netbsd.h.
+	(m68k-*-netbsd*): Use m68k/xm-netbsd.h.
+	(sparc-*-netbsd*): Use sparc/xm-netbsd.h.
+
+	* cppp.c, collect2.c: Removed __NetBSD__ from conditional.
+	* collect2.c: Declare strerror if HAVE_STRERROR is defined;
+	otherwise declare sys_errlist and sys_nerr.
+
+Wed Feb 22 19:07:08 1995  Niklas Hallqvist  (niklas@appli.se)
+
+	* Makefile.in (libgcc1.a): Run ranlib.
+
+Wed Feb 22 18:46:50 1995  Yury Shevchuk  (sizif@botik.yaroslavl.su)
+
+	* explow.c (memory_address): Add missing "else".
+
+Wed Feb 22 15:29:58 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+        * collect2.c (libselect): New function for passing to scandir.
+        (libcompare): Ditto.
+        (locatelib): Use scandir to look for libraries with matching version
+        numbers.
+
+Wed Feb 22 18:27:14 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (enum sharp_token_type): New type.
+	(stringify, raw_before, raw_after): Use this type instead of char.
+	(collect_expansion, dump_single_macro): Keep track of white space
+	after # and around ## tokens, since the C Standard requires a
+	diagnostic if the white space doesn't match during a redefinition.
+	(sharp_token, sharp_sharp_token): Labels renamed from hash_token and
+	hash_hash_token for naming consistency.
+
+Wed Feb 22 17:37:12 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* gcc.c (SWITCH_TAKES_ARG): Add `x'.
+	(process_command): -Wl, -Xlinker, and -lm values always go to
+	linker even if -x was specified.
+
+Wed Feb 22 09:33:36 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+     
+        * fold-const.c (fold): Support folding CLEANUP_POINT_EXPRs into
+        arithmetic expressions.
+
+Wed Feb 22 08:40:30 1995  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.c (print_operand, case 'H', 'S'): Delete unused.
+
+	* rs6000.md (ffssi2): Use gpc_reg_operand predicate.
+	(Some maskir patterns): Likewise.
+	(ffsdi2): Likewise.
+
+	* rs6000.md (movsfcc, movdfcc): New standard patterns.
+	(fselsfsf4, fseldfsf4, fseldfdf4, fselsfdf4): Name and create
+	variants of existing anonymous patterns for movsfcc and movdfcc.
+	
+Wed Feb 22 08:10:36 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* final.c (output_asm_name): New function, using code taken
+	from output_asm_insn.
+	(output_asm_insn): If flag_print_asm_name, print the comment
+	after the first assembler instruction even in multi-instruction
+	templates.
+
+Wed Feb 22 07:04:25 1995  Ian Lance Taylor  (ian@cygnus.com)
+
+	* real.c (REAL_WORDS_BIG_ENDIAN): New macro.  Define as either
+	FLOAT_WORDS_BIG_ENDIAN or HOST_FLOAT_WORDS_BIG_ENDIAN.  Use it
+	instead of FLOAT_WORDS_BIG_ENDIAN. 
+
+Wed Feb 22 07:03:39 1995  Stephen L Moshier  (moshier@world.std.com)
+
+	* final.c (split_double): Handle CONST_INT that holds both words.
+	* i386.c (output_move_double): Let split_double extract any
+	constant in op 1; take size from op 0.
+
+	* real.c (m16m, edivm, emulm): Change `short' to `EMUSHORT', and `long'
+	to `EMULONG'.
+	Clean up comments.
+
+Wed Feb 22 00:52:40 1995  Jeffrey A. Law  <law@mole.gnu.ai.mit.edu>
+
+	* pa.h (ASM_DECLARE_FUNCTION_NAME): Handle invisible reference
+	arguments passed in registers.
+
+Tue Feb 21 19:03:09 1995  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* Makefile.in ($exeext, $objext, $oldobjext): New macros.
+	* Makefile.in: Copy config.status to config.run and then execute.
+	* configure, Makefile.in: Try a "cp" if "ln" fails.
+	* objc/Makefile: Added {} around file variable.
+
+	* c-parse.in: New rules to allow attributes in a prefix position.
+	* c-tree.h (decl_attributes): Added argument.
+	* c-decl.c (grokdeclarator): Added code to support machine attributes.
+	* c-common.c (decl_attributes): Add third argument prefix_attributes.
+	(valid_machine_attribute): Deleted; moved to tree.c.
+	* tree.h (union tree_decl): New field MACHINE_ATTRIBUTES.
+	(DECL_MACHINE_ATTRIBUTES): New macro.
+	* c-decl.c (duplicate_decls): Pass DECL_MACHINE_ATTRIBUTES to
+	descendent typedef; make duplicate typedefs that are identical 
+	generate a warning if they are both in system header files.  
+	(redeclaration_error_message): Make duplicate typedefs that 
+	are identical not an error if they are both in system header files.  
+	* print-tree.c (print_node{,_brief}): Print machine attributes.
+
+	* calls.c (emit_call_1): Added function declaration node argument
+	passed to RETURN_POPS_ARGS; also effects calls to emit_call_1.
+	* function.c (assign_parms): Added arg to RETURN_POPS_ARGS.
+	* 1750a.h, a29k.h, alpha.h, arm.h, clipper.h, convex.h: Likewise.
+	* dsp16xx.h, elxsi.h, fx80.h, gmicro.h, h8300.h, i370/mvs.h: Likewise.
+	* i386.h, i386/isc.h, i386/next.h, i386/sco.h: Likewise.
+	* i386/scodbx.h, i860.h, i960.h, m68k.h, m88k.h, mips.h: Likewise.
+	* ns32k.h, pa.h, pdp11.h, pyr.h, romp.h, rs6000.h, sh.h: Likewise.
+	* sparc.h, spur.h, tahoe.h, vax.h, we32k.h: Likewise.
+
+	* cccp.c (main): Don't set "Include" environment variable for NT.
+	* protoize.c: Added #ifdef's WINNT.
+	* toplev.c (get_run_time): Return an approximate value for NT.
+	* gbl-ctors.h, libgcc2.c (atexit): Prototype now works with NT.
+	* gcc.c (fix_argv): Rewrite.
+
+	* i386/winnt.c: New file
+	* winnt/ld.c (expand_lib): Look for both libfoo.a and foo.lib.
+	Modified to support linking with Windows NT graphics libraries. 
+	* i386/winnt.h, x-winnt: Support NT Graphics programs; also bug fixes.
+	* winnt/winnt.h (CPP_SPEC): Accept c++ style comments.
+	* winnt/xm-winnt.h: Reflect features/functions available in NT.
+
+	* fixinc.winnt: New file.
+	* configure (i[345]86-*-winnt): Add fixincludes and extra_objs.
+	* config-nt.bat: Deleted.
+	* configure.bat: Take arg specifying msdos or winnt batch file config.
+	* i386/config-nt.{bat,sed}: Updated to Windows NT 3.5.
+
+	* ginclude/stdarg.h, ginclude/varasgs.h: Test _VA_LIST_DEFINED macro.
+	* ginclude/stddef.h: Test _SIZE_T_DEFINED and _WCHAR_T_DEFINED.
+	* ginclude/varargs.h: Modifed to work with Windows NT.  Needed a 
+	_VA_LIST_DEFINED macro.
+
+	* tree.c: (chain_member_value, decl_attribute_variant): New functions.
+	(valid_machine_attribute): Moved here from c-common.c.
+
+	* varasm.c (make_decl_rtl): Call MODIFY_ASSEMBLER_NAME if defined.
+
+Tue Feb 21 12:40:05 1995  Jeffrey A. Law  <law@snake.cs.utah.edu>
+
+	* local-alloc.c (block_alloc): Stop looping over the input
+	operands once we find an input/output register pair which can
+	be combined into a single qty.
+
+	* integrate.c (finish_inline): Don't set DECL_INLINE.
+
+Tue Feb 21 10:19:51 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* toplev.c (lang_options): Move fortran switches here, fixing bad
+	patch.
+
+Tue Feb 21 07:30:11 1995  Stephen L Moshier  (moshier@world.std.com)
+
+	* rs6000.c (output_toc): Use REAL_VALUE_* macros.
+	* rs6000.h (REAL_ARITHMETIC): Define.
+
+Tue Feb 21 06:48:41 1995  Stephen R. van den Berg  (berg@pool.informatik.rwth-aachen.de)
+
+	* stmt.c (expand_value_return): Make function static.
+
+Tue Feb 21 06:42:33 1995  Paul Eggert  <eggert@twinsun.com>
+
+	Add support for ISO Normative Addendum 1 to the C Standard.
+	* ginclude/iso646.h: New file.
+	* Makefile.in (USER_H): Add iso646.h.
+	* c-lex.c (yylex): Add support for <: :> <% %> digraphs.
+	* cccp.c (rescan): Add support for %: and %:%: digraphs.
+	(collect_expansion, skip_if_group, dump_single_macro): Likewise.
+	(union hashval): Remove ival member; it doesn't suffice for `199409L'.
+	(special_symbol): Use cpval instead of ival for T_CONST macros.
+	(install): Remove ivalue argument, since string value now suffices.
+	All callers changed.
+	(initialize_builtins): Switch from int to string values for T_CONST.
+	If not traditional, initialize __STDC_VERSION__ to 199409L.
+	(STDC_VALUE): Remove no-longer-used configuration macro.
+
+Tue Feb 21 06:16:37 1995  Franz Korntner  (fkorntne@bazis.nl)
+
+	* gcc.c (read_specs): Use length read when inserting zero.
+
+	* c-lex.c (yylex): For float, build constant in long double.
+
+Tue Feb 21 05:57:42 1995  Craig Burley  (burley@gnu.ai.mit.edu)
+
+	* toplev.c (lang_options): Add options for Fortran.
+
+	* gcc.c (default_compilers): Add entries for .f and .F.
+
+Tue Feb 21 05:37:21 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* gcc.c (default_compilers): Remove rule for ".ada".
+	Pass .ads or .adb suffix to -dumpbase, depending on input filename.
+
+	* toplev.c (compile_file): Initialize input_file_stack before
+	calling lang_init, not after.
+	* c-lex.c (check_newline): Give warning if unrecognized data on #line.
+	(yylex): Give error for unterminated string constant.
+
+Mon Feb 20 14:46:56 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* varasm.c (output_constant):  Strip NOP_EXPRs for SET_TYPE too,
+	by using AGGREGATE_TYPE_P macro.
+
+Mon Feb 20 14:39:57 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* config/svr4.h (ASM_OUTPUT_SOURCE_LINE):  Use assemble_name.
+
+Mon Feb 20 15:26:05 1995  Doug Evans  <dje@cygnus.com>
+
+	* config.sub (sun4sol2): Alias for sparc-sun-solaris2.
+
+Sat Feb 18 16:15:33 1995  Mike Stump  <mrs@cygnus.com>
+
+	* libgcc2.c (__unwind_function): New function to support stack
+	unwinding on rs6000 for g++ exception handling.
+
+Sat Feb 18 13:55:02 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* tree.h (get_set_constructor_bytes): Fix prototype.
+	* varasm.c (output_constructor): Fix typo byte_size -> size.
+
+Sat Feb 18 12:36:12 1995  Doug Evans  <dje@cygnus.com>
+
+	Lynx patches from various Cygnus people.
+	* config.sub: Recognize lynx* as lynxos.
+	* configure (i386-lynx): Set xm_file to i386/xm-lynx.h
+	Set tmake_file to i386/t-i386bare.
+	(m68k-lynx): Set xm_file to m68k/xm-lynx.h.
+	Set tmake_file to m68k/t-lynx.
+	(rs6000-lynxos*): New target.
+	(sparc-lynxos*): Set xm_file to sparc/xm-lynx.h.
+	Set tmake_file to sparc/t-sunos41.
+	* config/lynx.h (LIB_SPEC, STARTFILE_SPEC): Update to LynxOS 2.2.2.
+	(FUNCTION_PROFILE): Undef.
+	* config/xm-lynx.h (HOST_BITS_PER_CHAR): Delete.
+	(HOST_BITS_PER_{SHORT,INT,LONG,LONGLONG}): Likewise.
+	(mktemp): Provide our own, lynx's definition isn't standard.
+	* i386/t-i386bare (LIBGCC1): Define to empty instead of libgcc1.null.
+	(CROSS_LIBGCC1): Likewise.
+	* i386/xm-lynx.h: New file.
+	* m68k/lynx.h (FUNCTION_VALUE): Redefine.
+	(LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, NEEDS_UNTYPED_CALL): Likewise.
+	* m68k/t-lynx: New file.
+	* m68k/xm-lynx.h: New file.
+	* rs6000/lynx.h: New file.
+	* rs6000/rs6000.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
+	(OVERRIDE_OPTIONS): Call it.
+	* rs6000/x-lynx: New file.
+	* rs6000/xm-lynx.h: New file.
+	* sparc/xm-lynx.h: New file.
+
+Thu Feb 16 17:02:51 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config/mips/mips.h (enum processor_type): Add PROCESSOR_R4650.
+	* config/mips/mips.c (override_options): Use PROCESSOR_R4650 for
+	the 4650, not PROCESSOR_R4600.  Check for it when doublechecking
+	mips_isa level.
+	* config/mips/mips.md: Add r4650 to cpu attr.  Update functional
+	units for r4650.
+	(mulsi3): If TARGET_MAD, generate mulsi3_r4650.
+	(mulsi3_r4650): New instruction, mul directly to register file,
+	supported on r4650.
+
+Thu Feb 16 11:44:51 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* rs6000/eabi.h (SUBTARGET_SWITCHES): Add support for
+	-mstrict-align to control whether STRICT_ALIGNMENT is 1 or 0.
+	(STRICT_ALIGNMENT): Redefine, to be 1 if -mstrict-align used.
+
+Wed Feb 15 13:03:38 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* libgcc2.c: Repair botch in application of patch.
+
+Tue Feb 14 16:00:52 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* tree.c (get_set_constructor_bytes):  New function.  Replaces ...
+	(get_set_constructor_words):  ... removed old function.
+	* tree.h: get_set_constructor_words -> get_set_constructor_bytes.
+	* expr.c (store_constructor):  Don't use get_set_constructor_words.
+	* varasm.c (const_hash):  Add support for SET_TYPE constructors.
+	(record_constant_1):  Likewise.
+	(copy_constant):  Likewise.
+	(output_constant):  Likewise.  (Also SET_TYPE INTEGER_CSTs.)
+
+Tue Feb 14 08:05:07 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.c (stabilize_reference_1): No longer static.
+	* tree.h (stabilize_reference_1): Add declaration.
+
+Mon Feb 13 19:37:15 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* config/mips/gnu.h: Rewritten to use ELF object format.
+	* config/gnu.h (GNU_CPP_PREDEFINES): New macro.
+	* config/i386/gnu.h (CPP_PREDEFINES): Use GNU_CPP_PREDEFINES macro.
+	* config/i386/gnuelf.h: Likewise.
+
+Mon Feb 13 14:06:04 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+        * libgcc2.c (__default_new_handler): Don't call write if
+        inhibit_libc is defined.
+        (__pure_virtual): Ditto.
+
+Mon Feb 13 16:42:38 1995  Doug Evans  <dje@cygnus.com>
+
+	* a29k/a29k-udi.h (DBX_DEBUGGING_INFO): Define.
+	(PREFERRED_DEBUGGING_TYPE): Define.
+
+	* expmed.c (store_split_bit_field): If value is VOIDmode,
+	pass word_mode to force_reg.
+
+	* varasm.c (function_section): New function.
+	(assemble_start_function): Call it.
+	* output.h (function_section): Declare it.
+	* final.c (final_scan_insn): Call function_section instead of
+	text_section.
+	* dwarfout.c (dwarfout_begin_block): Likewise.
+	(dwarfout_end_block): Likewise.
+	(dwarfout_label): Likewise.
+	(dwarfout_begin_function): Likewise.
+	(dwarfout_end_function): Likewise.
+	(dwarfout_line): Likewise.
+
+	* flow.c (find_basic_blocks): Revise calculation of when to
+	make another pass.
+
+	* libgcc2.c (exit): Don't call __do_global_dtors if
+	INIT_SECTION_ASM_OP and OBJECT_FORMAT_ELF.
+
+	* Makefile.in (libgcc1.S): New target.
+
+Mon Feb 13 12:45:11 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* tree.c (permanent_allocation):  Pop function_maybepermanent_obstack,
+	not hardwired &maybepermanent_obstack.
+
+Mon Feb 13 12:10:31 1995  J.T. Conklin  <jtc@netbsd.org>
+
+	* config/netbsd.h: Changed so that macro definitions used when gcc
+	is integrated into the NetBSD source tree are not defined unless
+	NETBSD_NATIVE is defined too.
+
+	* configure (*-netbsd-*): Rename netbsd config files so that they don't
+	have the machine type in them.
+	* i386/netbsd.h: Renamed from i386/netbsd-i386.h.
+	* m68k/netbsd.h: Renamed from m68k/netbsd-m68k.h.
+	* ns32k/netbsd.h: Renamed from ns32k/netbsd32k.h.
+
+Mon Feb 13 15:05:09 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+        * collect2.c (main): Remember all the .o files specified on the
+        command line, and scan them directly if COLLECT_SCAN_OBJECTS.
+        * rs6000/rs6000.h (COLLECT_SCAN_OBJECTS): Define.
+
+        * stmt.c (warn_if_unused_value): Don't warn about dereferenced
+        references.
+
+Mon Feb 13 14:00:51 1995  Jim Wilson  <wilson@mole.gnu.ai.mit.edu>
+
+	* m68k.h (RTX_COSTS): Fix typo from last change.
+
+	* reload1.c (last_spill_reg): Move definition to top of file.
+	Don't initialize here.  
+	(reload): Intialize here to -1.
+
+Mon Feb 13 09:29:49 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* fixinc.svr4 (longlong_t, u_longlong_t):
+	Work around bug in Solaris 2.4 <sys/types.h>.
+
+Mon Feb 13 08:31:18 1995  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.h, powerpc.h (CPP_SPEC): Define _POSIX_SOURCE if -posix.
+
+	* rs6000.md (extendsfdf2): Undo 30 Nov 94 change.  Use float_extend
+	instead of SUBREG and restore fmr instruction for differing FPRs.
+
+Mon Feb 13 05:25:09 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+        * convert.c (convert_to_{pointer,real,integer,complex}):
+	Handle references.
+
+Mon Feb 13 08:14:10 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-parse.in (ALIGN): Remove unused token.
+
+	* loop.c (mark_loop_jump): Remove bogus assignments to LABEL_
+	fields in default case.
+
+Mon Feb 13 07:55:30 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)
+
+	* a29k.h (TARGET_MULTM): New #define.
+	(TARGET_SWITCHES): Recognize "-mno-multm".
+	* a29k.md (smulsi3_highpart, umulsi3_highpart, mulsidi3, umulsidi3):
+	Make these conditional on TARGET_MULTM.
+
+	* a29k.md (multm matcher): Delete.
+	(multmu matcher): Delete.
+	(mulsidi3 DEFINE_SPLIT): Generate RTL for smulsi3_highpart instead of
+	for deleted pattern.  Fix typo in preparation code.
+	(umulsidi3 DEFINE_SPLIT): Analogous change.
+
+Mon Feb 13 07:09:02 1995  Peter Flass  (FLASS@LBDRSCS.BITNET)
+
+	* i370/mvs.h (ASM_OUTPUT_ASCII): Don't duplicate first char.
+
+Mon Feb 13 06:51:07 1995  Samuel A. Figueroa  (figueroa@CS.NYU.EDU)
+
+	* i386/os2.h (OBJECT_SUFFIX): New macro.
+	(LIB_SPEC, STARTFILE_SPEC): Adjust to include better set of libs.
+
+	* i386/xm-os2.h (DIR_SEPARATOR): Define if not already.
+	(strcasecmp): New definition.
+
+	* toplev.c (main): Look at DIR_SEPARATOR for finding last component.
+	* cccp.c (do_include, is_system_include, open_include_file):
+	Handle DIR_SEPARATOR.
+
+Sun Feb 12 20:20:28 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+        * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): Check to make
+        sure DECL is non-null before trying to reference it.
+        * config/mips/elf64.h (ASM_OUTPUT_SECTION_NAME): Likewise.
+
+Sun Feb 12 19:55:45 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* calls.c (expand_call): Add missing paren in last change.
+
+Sat Feb 11 18:09:27 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* libgcc2.c (L_fixunsxfsi, L_fixunsdfsi, L_fixunssfsi): Undef
+	normal types before including limits.h.
+
+	* calls.c (expand_call): When setting n_named_args, depend on new
+	macro STRICT_ARGUMENT_NAMING.
+
+	* expr.c (expand_builtin, case BUILT_IN_NEXT_ARG): Don't warn when
+	no argument if this is a varargs routine.
+
+Sat Feb 11 16:08:13 1995  Samuel A. Figueroa  (figueroa@CS.NYU.EDU)
+
+	* gcc.c (specs): Use %O instead of "o" for object file suffix.
+	(do_spec_1, case 'O'): New option.
+
+Sat Feb 11 14:58:19 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k/mot3300.h (RETURN_IN_MEMORY): Fix error in last change.
+
+Sat Feb 11 13:09:28 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cexp.y (%union): Delete VOIDVAL and SVAL; unused.
+
+	* c-decl.c (grokdeclarator): Use NAME, not IDENTIFIER_POINTER
+	of DECLARATOR for error messages; DECLARATOR might be null.
+
+	* expmed.c (expand_divmod): Always call expand_twoval_binop with
+	psuedos as targets.
+
+Fri Feb 10 14:55:05 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* caller-save.c: Replace MAX_UNITS_PER_WORD with MIN_UNITS_PER_WORD.
+	* h8300.h, mips.h, rs6000.h, sparc.h: Likewise.
+
+	* alpha.c (direct_return): Can't if have outgoing args.
+
+	* expr.c (store_constructor, ARRAY_TYPE): Use code for
+	non-integer INDEX for non-integer ELTTYPE size.
+	Allow INDEX to be zero in code and divide size by BITS_PER_UNIT.
+
+	* fold-const.c (fold): Don't modify tree with newly-allocated
+	nodes; instead make new tree in those cases.
+
+Wed Feb  8 15:13:49 1995  Doug Evans  <dje@cygnus.com>
+
+	* sparc/sparc.c (v9_regcmp_p): New function.
+	(v9_regcmp_op): Call it.
+	* sparc/sparc.md (movsicc): New pattern.
+	(movdicc, movsfcc, movdfcc, movtfcc): Likewise.
+
+	* sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flush
+	instead of knowing what pattern looks like.
+
+	* sparc/sparc.md (nonlocal_goto): Use Pmode instead of SImode.
+
+Wed Feb  8 10:05:11 1995  David J. MacKenzie  <djm@geech.gnu.ai.mit.edu>
+
+	* config.sub: Add a blank in the #! line for 4.2BSD, Dynix, etc.
+
+Wed Feb  8 02:52:21 1995  Jeffrey A. Law  <law@mole.gnu.ai.mit.edu>
+
+	* pa.md (call, call_value): Emit save of the PIC register
+	with "emit_insn" before emitting the call insn itself.
+
+Tue Feb  7 15:19:40 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* sh.c (prepare_scc_operands, from_compare): Force constant 0 into
+	register for unsigned comparisons.
+
+	* sh.c: Correct errors in comments.
+	(calc_live_regs, expand_acall): Delete TARGET_SMALLCALL support.
+	(need_slot): Add comment.  Delete test of INSN_ANNULLED_BRANCH_P.
+	(print_operand_address): Delete '*', '^', '!' support.
+	(synth_constant): Call zero_extend* instead of and*.  Call ashlsi3_k
+	instead of ashlsi3_n.
+	(prepare_scc_operands): Abort for NE case.
+	(output_move_double, output_far_jump, output_branch): Delete commented
+	out code.  Don't output assembler comments.
+	(gen_ashift): Don't call addsi3.
+	(fixit): Delete redundant test for QImode constants.
+	(hi_const): Delete TARGET_SHORTADDR support.
+	(find_barrier): Don't put constant pool between mova and its label.
+	(add_function, seen_function, bsr_operand, mac_operand,
+	fake_shift): Delete.
+	(sh_expand_prologue, expand_acall): Delete TARGET_BSR support.
+	(general_movsrc_operand): Don't reject non-I CONST_INT.
+	* sh.h: Correct errors in comments.
+	(CONDITIONAL_REGISTER_USAGE): Delete TARGET_NOSAVE support.
+	(TARGET_MAC, TARGET_TRYR0, TARGET_NOSAVE, TARGET_SMALLCALL,
+	TARGET_PARANOID, TARGET_RETR2, TARGET_SHORTADDR, TARGET_BSR): Delete.
+	(TARGET_SWITCHES): Delete above options.
+	(OVERRIDE_OPTIONS): Delete TARGET_BSR support.
+	(FUNCTION_BOUNDARY): Use 32 bit alignment when not TARGET_SMALLCODE.
+	(FIRST_RET_REG): Delete TARGET_RETR2 support.
+	(MODE_DISP_OK_[21]): Delete TARGET_TRYR0 support.
+	(EXTRA_CONSTRAINT_U): Delete.
+	(CONST_COSTS): For logical operations, give L constants cost 1.
+	(PRINT_OPERAND_PUNCT_VALID_P): Delete '*', '^', '!'.
+	* sh.md: Correct errors in comments.  Delete all assembler comments.
+	Delete commented out patterns.  Delete all peepholes but two.
+	Delete all define_splits but one.  Delete all `combiner' patterns.
+	(mpy): Correct multiply latencies.
+	(needs_delay_slot, hit_stack, interrupt_function, in_delay_slot,
+	define_delay): Correct and/or simplify all reorg related definitions.
+	(addsi3_real): Delete.
+	(addsi3): Use arith_operand for argument 1.
+	(mulhisi3): Use arith_reg_operand not mac_operand.
+	(and_ffff, and_ff): Delete.
+	(andsi3): Handle constant 255 specially.
+	(rot*): Correct and/or simplify all rotate patterns.
+	(ashlsi3_k): Delete clobber of T bit.  Output add for 1 bit shift.
+	(ashlsi3_n, lshrsi3_n): Delete use of fake_shift.
+	(negc): Correct pattern by adding set of T bit.
+	(extend*): Delete 'u' and 'U' constraint cases.
+	(pop): Separate 'l' and 'x' constraint cases.
+	(movsi-1): Better code for move to T bit case.
+	(bsr, bsr_value, mac): Delete.
+
+Tue Feb  7 14:23:52 1995  Doug Evans  <dje@cygnus.com>
+
+	* sparc/sparc.md (*): Give names to all anonymous patterns.
+
+Mon Feb  6 23:41:09 1995  Stephen L Moshier  <moshier@world.std.com>
+
+	* sparc/sysv4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE): Remove
+	  tests for host == target format and endianness.
+
+Mon Feb  6 16:52:38 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)
+
+	* i386.h (RTX_COSTS): Rewrite.
+
+	* m68k/lb1sf68.asm (__udivsi3, __divsi3, __umodsi3, __modsi3):
+	Rewrite to actually work for more than a few small operands,
+	and to be reasonably small.
+	(__mulsi3): Eliminate usage of link register (i.e. a6).
+	(shift patterns): Delete.
+	(__umulsi3): Delete.
+	* t-m68kbare (LIB1ASMFUNCS): Remove _umulsi3.
+	* t-vxworks68: Likewise.
+
+Mon Feb  6 15:22:39 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* ginclude/va-i960.h (va_start): Add __builtin_next_arg call.
+
+	* sh/sh.c (sh_function_arg): Don't reject unaligned structures.
+	(sh_function_arg_partial_nregs): Likewise.
+
+	* sparc/sparc.md (movsf-1, movdf-1, movtf-1): Use 'F' not 'E'.
+
+	* sparc/sol2.h (STARTFILE_SPEC): Delete explicit /usr/ccs/lib/
+	pathnames.
+
+	* reload1.c (alter_reg): New variable stack_slot.  Apply anti
+	BYTES_BIG_ENDIAN correction to stack slot address stored in
+	spill_stack_slot.
+
+	* jump.c (jump_optimize): When searching for a LOOP_END note to move,
+	stop if we find a LOOP_BEG note first.
+
+Mon Feb  6 15:03:35 1995  Doug Evans  <dje@cygnus.com>
+
+	* i386/sysv3.h (DBX_DEBUGGING_INFO): Define.
+	(PREFERRED_DEBUGGING_TYPE): Define.
+
+Mon Feb  6 11:56:14 1995  Jeffrey A. Law  <law@mole.gnu.ai.mit.edu>
+
+	* pa.md: Replace "misc" attribute with "multi" in recentlyadded
+	soft-float code.
+
+	* pa-osf.h (TARGET_DEFAULT): Protect definition.
+
+Mon Feb  6 11:52:25 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* fixincludes: When changing <assert.h> to include <stdio.h> or
+	<stdlib.h>, make it include them only for C++.
+
+Sun Feb  5 21:39:41 1995  Torbjorn Granlund  <tege@cygnus.com>
+
+	* pa.c (globally): Use GEN_INT.
+	(emit_move_sequence): Use expand_inc instead of plus_constant
+	(generates less rtl).
+	* pa.md (globally): Use GEN_INT.
+
+	* pa.h (PREDICATE_CODES): Fix many errors.  Enable.
+
+	* m68k.h (RTX_COSTS): Add special cases for a plain 68000.
+
+	* expmed.c (mul_cost, div_cost): New variables.
+	(mul_widen_cost, mul_highpart_cost): New variables.
+	(init_expmed): Init new variables.
+	(expand_mult_highpart): New argument, MAX_COST.
+	Use new argument in several places.  Simplify code that tries
+	widening multiply variants.
+	(expand_divmod): New variables MAX_COST, EXTRA_COST.
+	Initialize MAX_COST dependent on REM_FLAG.
+	Calculate and pass cost in all calls of expand_mult_highpart.
+
+Sat Feb  4 13:19:29 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* mips/abi64.h, mips/cross64.h, mips/iris6.h: New files.
+	* mips/iris5.h (TARGET_DEFAULT): Add #ifndef/#endif around define.
+	* mips/mips.c (mips_isa_string): Add mips4 to comment.
+	(large_int): Delete code for handling 64 bit constants.
+	(mips_const_double_ok): For irix6, reject all floating point constants.
+	(mips_move_2words): Use dli not li for 64 bit constants.
+	Use dla not la for 64 bit addresses.
+	(output_block_move): Likewise.
+	(function_arg): Add support for 64bit ABI.
+	(override_options): Add support for mips4 and R8000.
+	(print_operand): Handle new modifiers 'B', 'b', 'T', 't'.
+	Make 'X' case work for 64 bit host.
+	(mips_output_filename): Use ASM_OUTPUT_FILENAME.
+	(mips_asm_file_start): Go to text section for 64bit ABI.
+	(compure_frame_size, save_restore_insns, function_prologue,
+	mips_expand_prologue, function_epilogue): Add support for 64 bit ABI.
+	(type_dependent_reg, mips_function_value): New functions.
+	* mips/mips.h (__PTR_TO_INT, __INT_TO_PTR): Delete.
+	(enum processor_type): Add R8000.
+	(mips_isa_string, CC1_SPEC): Add mips4 to comment.
+	(CONDITIONAL_REGISTER_USAGE): Use SUBTARGET_CONDITIONAL_REGISTER_USAGE.
+	(SUBTARGET_CONDITIONAL_REGISTER_USAGE): New macro.
+	(ASM_SPEC, LINK_SPEC, CPP_SPEC): Add mips4 support.
+	(MIPS_TEMP[12]_REGNUM): Change to avoid clobbering 64bit abi
+	parameter registers.
+	(SMALL_INT, SMALL_INT_UNSIGNED, CONST_OK_FOR_LETTER_P): Fix for 64
+	bit host.
+	(ABI_64BIT): New macro.
+	(REG_PARM_STACK_SPACE): Use UNITS_PER_WORD not 4.
+	(GO_IF_LEGITIMATE_ADDRESS, CONSTANT_ADDRESS_P, LEGITIMATE_CONSTANT,
+	LEGITIMIZE_ADDRESS): Don't allow CONST addresses for Irix6.
+	(ASM_OUTPUT_FILENAME): New macro.
+	(ASM_OUTPUT_ADDR_DIFF_ELT): Add 64 bit ABI support.
+	* mips/mips.md (type attribute): Add fmadd.
+	(cpu attribute): Add r8000.
+	(umaddi+1, ..., umadddi+8): Add pattern for multiply accumulate.
+	(movdi): Legitimize addresses, just like movsi does.
+	(loadgp): New pattern for 64 bit ABI.
+	(shift patterns): Use INTVAL instead of XINT for constants.
+	(jump, tablejump_interal[12]): Add 64 bit ABI support.
+	(movsicc-8, ..., movsicc): Add patterns for conditional moves.
+	* mips/t-cross64, mips/t-iris6, mips/x-iris6, mips/xm-iris6.h:
+	New files.
+	* configure: Add irix6 and irix5cross64 configurations.
+	* ginclude/va-mips.h (*): Change __mips==3 to __mips>=3.
+	(sgidefs.h): Include if _MIPS_SIM is defined.
+	(va_start): Add support for 64 bit ABI.
+
+Sat Feb  4 10:31:37 1995  Doug Evans  <dje@cygnus.com>
+
+	* dbxout.c (dbxout_source_file): Don't switch to text section if
+	in function with section attribute.  Print Ltext label to correct
+	file (important on mips).
+
+Fri Feb  3 14:43:23 1995  Michael Meissner  (meissner@cygnus.com)
+
+	* rs6000/rs6000.md (call, call_value): If building for System V.4
+	or eABI, function pointers are just pointers, not pointers to a
+	three word area.
+
+Thu Feb  2 15:50:26 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* fixincludes: When fixing bool in <curses.h>, permit whitespace
+	before the semicolon.  Needed on AIX 3.2.5.
+
+Thu Feb  2 12:06:12 1995  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.md (smax:SF define_split): Change match_operand typo to
+	match_dup.
+	(smin:SF define_split): Likewise.
+	(smax:DF define_split): Likewise.
+	(smin:DF define_split): Likewise.
+
+Wed Feb  1 16:50:18 1995  Michael Meissner  (meissner@cygnus.com)
+
+	* config.sub: Add support for powerpc-*-{elf,svr4,eabi}.
+	* configure: Ditto.
+
+	* rs6000/xm-sysv4.h: New file, to support building GCC for a
+	System V.4 PowerPC system.
+	* rs6000/sysv4.h: Ditto.
+	* rs6000/x-sysv4: Ditto.
+
+	* rs6000/eabi.h: New file, to support building GCC for an embedded
+	PowerPC system.
+
+	* rs6000/rs6000.h (TARGET_SWITCHES): Add -mmultiple, -mno-multiple
+	to control emitting load/store multiple instructions.  On the
+	power, this is on by default, and on the powerpc it is off.
+	(SUBTARGET_SWITCHES): New macro, which defaults to nothing to
+	allow a subtarget to add new switches.
+	(SAVE_FP_*, RESTORE_FP_*): New macros that give the prefix and
+	suffix to use for the functions that save and restore the floating
+	point registers.
+
+	* rs6000/rs6000.c (output_prolog): Use TARGET_MULTIPLE instead of
+	TARGET_POWER to control whether to emitt load/store multiple
+	instructions.  Use the SAVE_FP_*/RESTORE_FP_* macros instead of
+	using the hardwired AIX names for the functions to save and
+	restore the floating point registers.
+	(output_epilog): Likewise.
+	(print_operand_address): Do not prepend a '.' for %z when using
+	the ELF object file format.
+	(svr4_traceback): New function to emit the word before the
+	procedure prologue that System V.4 expects to do tracebacks.
+	(output_prolog): Call svr4_traceback under ELF systems.
+	(output_epilog): Omit AIX style traceback tables for ELF systems.
+	(output_function_profiler): Abort for now in the ELF case.
+
+	* rs6000/rs6000.md (load_multiple, store_multiple): Test against
+	TARGET_MULTIPLE instead of TARGET_POWER.
+
+Tue Jan 31 19:27:43 1995  Torbjorn Granlund  <tege@cygnus.com>
+
+	* pa.h (REAL_ARITHMETIC): Define.
+	(ASM_OUTPUT_DOUBLE): Rewrite.
+	(ASM_OUTPUT_FLOAT): Rewrite.
+	* pa.md (SF and DF move): Use constraint 'E' instead of 'F'.
+	* pa.c (singlemove_string): Make case with SFmode CONST_DOUBLE abort.
+	(print_operand): #ifdef out CONST_DOUBLE cases.
+
+Tue Jan 31 19:27:43 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* pa/pa.h (TARGET_SOFT_FLOAT): New macro.
+	(TARGET_SWITCHES, CPP_SPEC, CONDITIONAL_REGISTER_USAGE, FUNCTION_VALUE,
+	LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P,
+	FUNCTION_ARG, ASM_DECLARE_FUNCTION_NAME, GO_IF_LEGITIMATE_ADDRESS,
+	RTX_COSTS): Use TARGET_SOFT_FLOAT.
+	* pa/pa.md (*sf*, *df*, etc): Make all floating point patterns depend
+	on ! TARGET_SOFT_FLOAT.
+	(movsi, movdi, movsf, movdf): Add patterns for TARGET_SOFT_FLOAT.
+
+Tue Jan 31 15:53:04 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+        * toplev.c (lang_options): Add -f{no-,}check-new.
+
+Tue Jan 31 13:55:37 1995  Doug Evans  <dje@cygnus.com>
+
+	* mips/mips.h (ASM_DECLARE_FUNCTION_NAME): Ensure section is .text if
+	no section attribute.
+	* mips/elf64.h (ASM_OUTPUT_SECTION_NAME): Use asm_out_text_file for
+	functions.
+
+Tue Jan 31 13:26:42 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* libgcc2.c: Include <limits.h>, not "glimits.h".
+
+Mon Jan 30 16:34:24 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+        * c-common.c (type_for_size): Try to match on int before other
+        types (which might be the same size).
+        (type_for_mode): Ditto.
+
+Sat Jan 28 16:28:15 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): #undef before
+ 	defining.
+
+Sat Jan 28 13:54:23 1995  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.md (call, call_value): Always save the PIC register before
+	a call.
+
+Sat Jan 28 07:31:26 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-typeck.c (c_expand_return): Refine check for returning pointer
+	to local variable to allow subtracting a pointer from it.
+
+	* calls.c (expand_call): When emitting queue for each arg,
+	call protect_from_queue; put in initial_value so EXPR_LIST in
+	is_const case won't have QUEUED.
+
+Sat Jan 28 04:36:46 1995  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.md (call_internal_reg): Use an even faster sequence for
+	TARGET_FAST_INDIRECT_CALLS.
+	(call_value_internal_reg): Likewise.
+
+Fri Jan 27 21:28:51 1995  Ronald F. Guilmette  (rfg@segfault.us.com)
+
+	* config.sub (unixware, svr4): Treat as synonyms for sysv4.
+
+Fri Jan 27 19:36:13 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* config/i386/gnuelf.h: New file.
+
+Fri Jan 27 16:55:05 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* libgcc1.c (perform_lshlsi3, __lshlsi3): Deleted.
+	* libgcc2.c (__lshldi3): Deleted.
+	* Makefile.in (LIB1FUNCS): Delete _lshlsi3.
+	(LIB2FUNCS): Delete _lshldi3.
+
+	* expr.c (expand_expr, case MINUS_EXPR): Remove bogus operand swap.
+
+	* optabs.c (expand_binop): Add missing test for VOIDmode
+	before calling convert_to_mode.
+
+	* final.c (high_{block,function}_linenum): New variables.
+	(final_start_function): Initialize them.
+	(final_end_function): Pass highest line number to function end
+	debugging routines.
+	(final_scan_insn): Pass highest line number in block to block end
+	debugging function.
+	(output_source_line): Update highest line in block and function.
+
+Thu Jan 26 03:46:35 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* configure (i[345]86-*linux*): Set $extra_parts if $elf.
+	(*-*-gnu*): Likewise.
+
+Wed Jan 25 18:11:19 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* sh.c (prepare_scc_operands): Force sh_compare_op1 to a register if
+	it is an invalid constant.
+	(output_branch): Add cases for 4, 8, and 18.  Correct branch offsets
+	in comments.
+	(find_barrier): Correct test for move instructions that need to be
+	fixed by verifying that the set source is a bad constant.
+	(arith_reg_or_0_operand): New function.
+	* sh.h (CONST_OK_FOR_LETTER_P): Add case for 'N'.  Correct comment.
+	(ADJUST_INSN_LENGTH, SHORTEN_WITH_AJUST_INSN_LENGTH): New macros.
+	* sh.md (define_attr type): Combine pcloadsi and pcloadhi into pcload.
+	(*): Likewise for all patterns that use them.
+	(define_attr length): Delete cases for pcloadsi and pcloadhi.
+	Modify branch offsets and lengths to be correct.  Correct comment.
+	(*): Correct length attributes for all patterns.
+	(in_delay_slot): Delete maybe value.  Change default case from yes to
+	no.  Delete case for lengths of 4, 6, 8, 10, and 12.
+	(cmpeq_0, cmpeq_0-1, cmpeq_0-2): Delete patterns.
+	(cmpeqsi_t): Delete case with constant as first operand.
+	(cmpgtsi_t, cmpgesi_t): Use arith_reg_or_0_operand not arith_operand.
+	Put register cases first.
+	(cmpgeusi_t, cmpgtusi_t): Delete cases for comparing against zero.
+	(jump): Call output_far_jump if insn length >= 14 instead of == 14.
+	(casesi): Use arith_reg_operand not arith_operand for operand 2.
+
+	* fixincludes (strings.h): Fix return type of strlen.
+
+	* expr.c (expand_expr, case MIN_EXPR): If must emit multiple
+	instructions, then don't allow a MEM target.
+
+Wed Jan 25 17:07:47 1995  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* cccp.c (do_include): For VMS, don't attempt to
+	treat `#include X' as `#include <X.h>' unless `X' has already been
+	macro expanded.
+	(main): For VMS, do a better job of picking out the base name from
+	argv[0]'s absolute name.
+	* vax/xm-vms.h (FAILURE_EXIT_CODE): Define.
+
+Wed Jan 25 14:50:45 1995  David S. Miller  (davem@nadzieja.rutgers.edu)
+
+	* genattrtab.c (check_attr_value): Change error message text.
+	(simplify_test_exp): Likewise.
+	* stmt.c (expand_asm, expand_asm_operands): Likewise.
+	* mips.c (print_operand, print_operand_address): Likewise.
+	* dsp16xx.c (dsp16xx_reg_class_from_letter): Likewise.
+	(limit_reload_class, double_reg_to_memory): Likewise.
+	(print_operand_address, emit_1600_core_shift): Likewise.
+	(gen_tst_reg, gen_compare_reg): Likewise.
+	* dsp16xx.md (compare): Likewise.
+	* unroll.c (find_splittable_givs): Likewise.
+
+Wed Jan 25 13:21:10 1995  Matthias Pfaller (leo@marco.de)
+
+	* configure (ns32k-pc532-netbsd): Use netbsd32k.h instead of netbsd.h.
+	* ns32k/netbsd32k.h: Renamed from netbsd.h.
+	Don't include ansi.h.
+	Include config/netbsd.h and delete definitions included from it.
+	* ns32k/xm-netbsd.h (HAVE_ATEXIT): Deleted.
+
+Wed Jan 25 12:53:40 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k/mot3300.h (DEFAULT_PCC_STRUCT_RETURN): Define as zero.
+	(RETURN_IN_MEMORY): Small aggregates are to be returned in d0.
+
+Wed Jan 25 12:48:43 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (handle_directive): Fix typo: '\' caused next char to
+	be copied blindly, which was an error if !traditional and if
+	the next char was newline or one of <\'"/.
+
+Wed Jan 25 08:15:49 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* jump.c: Include expr.h after insn-config.h and insn-flags.h.
+
+Tue Jan 24 23:19:28 1995  Doug Evans  <dje@cygnus.com>
+
+	Improved conditional move support from Richard Earnshaw.
+	* optabs.c (movcc_gen_code): New variable.
+	(init_optabs): Initialize it.
+	(emit_conditional_move): New function.
+	(can_conditionally_move_p): New function.
+	* combine.c (simplify_set): Call it.
+	* expr.h: (emit_conditional_move): Declare it.
+	(can_conditionally_move_p): Likewise.
+	(movcc_gen_code): Likewise.
+	* genopinit.c (optabs): Add entry for movcc_gen_code.
+	* genconfig.c (main): Delete #ifndef around HAVE_conditional_move.
+	* jump.c (jump_optimize): Try to emit a conditional move insn before
+	trying a store-flag insn.
+	* alpha.md (movsicc): New named pattern.
+	(movdicc, movsfcc, movdfcc): Likewise.
+	(SImode conditional move): New matcher.
+	* sparc.h (HAVE_conditional_move): Delete.
+
+	* configure: Recognize and ignore --x-* options.
+
+Mon Jan 23 23:23:33 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* config/svr4.h (ASM_OUTPUT_SECTION_NAME): Renamed from
+ 	ASM_OUTPUT_SECTION.  The old name was a typo.
+	(ASM_OUTPUT_SECTION_NAME): Take proper number of args.
+
+Mon Jan 23 18:51:38 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+        * collect2.c (main): Check LD_INIT_SWITCH and LD_FINI_SWITCH
+        separately.
+        (scan_prog_file): Don't add shared library initializers or
+        finalizers to list if LD_INIT_SWITCH or LD_FINI_SWITCH are
+        defined, respectively.
+
+Mon Jan 23 18:45:13 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config/mips/mips.c (override_options): Permit any small integral
+	mode in the HI/LO registers.
+
+Mon Jan 23 15:41:10 1995  Steve Chamberlain  <sac@cygnus.com>
+
+	* h8300.md (table_jump_h8300, table_jump_h8300h): Constrain
+	operand to use register.
+
+Sat Jan 21 00:01:08 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* configure (*-*-gnuelf*): Set elf=yes.
+	(*-*-gnu*): Use ${cpu_type}/gnuelf.h under --with-elf.
+
+Fri Jan 20 20:11:17 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* combine.c (num_sign_bit_copies): Can handle paradoxical subreg only
+	if LOAD_EXTEND_OP is defined to SIGN_EXTEND.
+
+	* loop.c (record_giv): Initialize new field same_insn.
+	* loop.h (structure induction): Add new field same_insn.
+	* unroll.c (copy_loop_body): When check for shared address givs, use
+	new same_insn field.
+	(find_splittable_givs): New variable v2.  Scan givs to set new
+	same_insn field.  Use same_insn to indentify address givs to be
+	shared.
+
+	* flow.c (find_basic_blocks): No longer need to check for deleted
+	nonlocal_labels.
+	* function.c (delete_handlers): When clear LABEL_PRESERVE_P,
+	also remove label from nonlocal_label list.
+	* integrate.c (save_for_inline_copying): Add comment that
+	nonlocal_label list should be updated if it ever can be nonzero.
+
+	* sdbout.c (syms.h): Don't include under Linux.
+
+	* loop.c (scan_loop): For the replace_rtx call, copy the rtx that is
+	being substituted in before the call.
+
+	* sh.c (machine_dependent_reorg): When remove SUBREG, add in
+	SUBREG_WORD to new register number.
+
+	* sh.c (multcosts): Do not compute cost of constant power-of-two
+	multiplies as if they were shifts.  Reduce multiply cost from 5 to 3.
+	Delete variable insn_cost.
+
+Fri Jan 20 14:21:49 1995  Mike Stump  <mrs@cygnus.com>
+
+	* stmt.c (expand_cleanups): Add 4th argument to indicate if code
+	needs to be expanded for the cleanup.
+	(expand_goto_internal): Ditto.
+	(bc_expand_goto_internal): Ditto.
+	(fixup_gotos): Ditto.
+	(expand_end_bindings): Ditto.  We now always call expand_cleanups,
+	even after BARRIERs, so that the call to the exception handling
+	routines is always done.
+
+Thu Jan 19 18:39:14 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config/mips/mips.h (MASK_SINGLE_FLOAT): Define.
+	(MASK_MAD): Define.
+	(TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT): Define.
+	(TARGET_MAD): Define.
+	(TARGET_SWITCHES): Add single-float, double-float, mad, no-mad,
+	4650.
+	(ASM_SPEC): For gas, pass down -m4650, and pass -m4650 if -mmad is
+	used.
+	(CC1_SPEC): If -mips3 is used, only set -mfp64 if neither
+	-msingle-float nor -m4650 are used.  Don't permit both -mfp64 and
+	-msingle-float, or both -mfp64 and -m4650.  If -m4650 is used,
+	pass down -mcpu=r4650.
+	(FIXED_REGISTERS): Change HI and LO to not be fixed.
+	(HARD_REGNO_NREGS): If TARGET_SINGLE_FLOAT, use floating point
+	registers in 4 byte units, not 8 byte units.
+	(SECONDARY_RELOAD_CLASS): Define.
+	(mips_secondary_reload_class): Declare.
+	(LIBCALL_VALUE): If TARGET_SINGLE_FLOAT, only use FP_RETURN if the
+	mode size is <= 4.
+	(REGISTER_MOVE_COST): Use a cost of 12 when moving HI or LO to
+	anything other than a general register.
+	* config/mips/mips.c (function_arg): If TARGET_SINGLE_FLOAT, pass
+	DFmode arguments in general registers.
+	(override_options): Accept 4650 as a cpu type.  If
+	TARGET_SINGLE_FLOAT, permit only small floating point modes in
+	floating point registers.  Always permit SImode modes in HI/LO
+	registers.
+	(compute_frame_size): If TARGET_SINGLE_FLOAT, only save 4 bytes
+	per floating point register.  Align the floating point register
+	save space to an eight byte boundary.
+	(save_restore_insns): If TARGET_SINGLE_FLOAT, save floating point
+	regisers in single precision.
+	(mips_secondary_reload_class): New function.
+	* config/mips/mips.md: Require TARGET_DOUBLE_FLOAT for all double
+	precision floating point insns.  Change the multiplication insns
+	to be single instructions which set a register of class l or h or
+	x, as appropriate, rather than explicitly setting HI and/or LO.
+	Use define_expand to avoid generating a shift near a multiply on
+	the r4000.  Use match_scratch in the division insns to clobber HI
+	and LO, rather than mentioning them explicitly.  Add support for
+	r4650 mad and madu insns.
+	* config/mips/t-ecoff (MULTILIB_OPTIONS): Add mips1/mips3.
+	(MULTILIB_DIRNAMES): Add mips1 mips3.
+
+Wed Jan 18 07:43:53 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.c (stabilize_reference): Fix typo in last change.
+	* expr.c (get_inner_reference): Don't ignore CONVERT_EXPR from
+	non-UNION_TYPE to UNION_TYPE.
+	(expand_expr, case CONVERT_EXPR): Check for conversion to union
+	before checking for not changing mode.
+
+Tue Jan 17 22:33:27 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.c (stabilize_reference, case RTL_EXPR): New case.
+
+Tue Jan 17 18:42:44 1995  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.c (emit_move_sequence): Also handle displacements which
+	do not fit in 14 bits for fp load/store secondary reloads.
+
+Tue Jan 17 13:34:22 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+        Avoid bogus errors for C++ lvalues.
+        * c-decl.c (init_decl_processing): Set pedantic_lvalues to pedantic.
+        * fold-const.c (pedantic_non_lvalue): Only force a non-lvalue if
+        pedantic_lvalues is set.
+        * tree.h: Declare pedantic_lvalues.
+
+        Generalize shared truthvalue code to allow for C++ bool.
+        * c-tree.h: Declare boolean_{type,true,false}_node.
+        * c-decl.c (init_decl_processing): Set up
+        boolean_{type,true,false}_node to equal
+        integer_{type,one,zero}_node.
+        * c-common.c (truthvalue_conversion): Use
+        boolean_{type,true,false}_node instead of
+        integer_{type,one,zero}_node.
+        (shorten_compare): Ditto.
+
+Mon Jan 16 07:11:50 1995  Paul Eggert  <eggert@twinsun.com>
+ 
+	* cccp.c (rescan): Fix typo that caused tokens to be glued
+	together improperly.
+
+Sun Jan 15 21:00:24 1995  Doug Evans  (dje@cygnus.com)
+
+	* configure (vintmsg): Delete.
+
+Sat Jan 14 17:50:06 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (get_inner_reference): Only treat offset of PLUS_EXPR
+	as special if second arg is integer constant.
+
+Sat Jan 14 01:28:15 1995  Doug Evans  (dje@cygnus.com)
+
+	* expmed.c (extract_bit_field, fields bigger than word case): Count
+	subwords in target.  Zero remaining upper bits if unsigned.
+
+	* c-common.c (decl_attributes): Fix typo in packed ignored warning.
+	Fix unrecognized mode warning.  Make string comparisons consistent.
+	Support machine attributes with arguments.  Make noreturn/volatile
+	warnings consistent with others.
+
+	* a29k.h (INIT_CUMULATIVE_INCOMING_ARGS): Reserve two regs for
+	caller's lr0,lr1.
+	* a29k.c (incoming_reg): Keep regstack aligned to even boundary.
+
+Fri Jan 13 20:29:30 1995  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* sdbout.c (plain_type_1): For LONG_LONG_TYPE_SIZE, return T_[U]LONG
+	instead of 0 (i.e. T_VOID).
+
+	* optabs.c (expand_binop): Do not force constant shift-count to
+	a register, to allow possible widening; do not convert_to_mode
+	mode{1,2} or copy_to_mode_reg if mode{1,2} is VOIDmode.
+	* m68k.md (zero_extendsidi2): New pattern.
+	(extendqidi2, extendhidi2, extendsidi2, extendplussidi): New patterns.
+	(adddia_sexthishl32, adddid_sexthishl32): New patterns.
+	(adddi_dilshr32, adddi_dishl32, adddi_mem): New patterns.
+	(adddi3, subdi3): Allow more alternatives.
+	(subdia_sexthishl32, subdid_sexthishl32): New patterns.
+	(subdi_dishl32, subdi_mem): New patterns.
+	(negdi2): New pattern.
+	(ashldi_sexthi, ashldi_const32, ashldi_const, ashldi3): New patterns.
+	(subreg1ashrdi_const32, ashrdi_const32): New patterns.
+	(ashrdi_const32_mem, ashrdi_const, ashrdi3): New patterns.
+	(subreg1lshrdi_const32, lshrdi_const32, lshrdi_const, lshrdi3): Ditto.
+	(lshrsi_31): New pattern.
+	(lshrsi_16, lshrsi_17_24): New names for old unnamed patterns.
+
+	* m68k.c (use_movqi, const_method): New functions.
+	(const_int_cost, output_move_const_into_data_reg): Likewise.
+	(singlemove_string): Call output_move_const_into_data_reg.
+	* m68k.md (fullword move): Likewise.
+	* m68k.h (CONST_COSTS): Call const_int_cost.
+
+Fri Jan 13 20:17:55 1995  Oliver Kellogg  (okellogg@salyko.cube.net)
+
+	* 1750a.h, 1750a.c: Remove use of function prototypes.
+
+Fri Jan 13 15:53:33 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+        * tree.h (DECL_STATIC_CONSTRUCTOR): New macro.
+        (DECL_STATIC_DESTRUCTOR): New macro.
+        (tree_decl): Add static_ctor_flag and static_dtor_flag.
+
+        * objc-act.c (finish_file): Renamed from objc_finish.
+
+        * c-parse.in (program): Call finish_file.
+
+        * c-decl.c (duplicate_decls): Propagate DECL_STATIC_{CON,DE}STRUCTOR.
+        (finish_function): Handle DECL_STATIC_{CON,DE}STRUCTOR.
+
+        * c-lang.c (finish_file): New function to emit code for calling
+        static constructor and destructor functions as necessary.
+
+        * c-common.c (decl_attributes): Support __attribute__s
+        "constructor" and "destructor".
+
+Fri Jan 13 19:38:08 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* gcc.c (execute): Don't wait for just any N subprocesses,
+	since we may have started with some subprocesses before we
+	started executing.  Wait just for _our_ N subprocesses.
+
+Fri Jan 13 18:08:17 1995  John F Carr  <jfc@mit.edu>
+
+	* gencodes.c, genemit.c, genflags.c (gen_insn):  Ignore insns whose
+	names begin with '*'.
+	* genoutput.c (output_epilogue): Do not reference gen_ functions for
+	insns whose names begin with '*'.
+
+Fri Jan 13 17:54:42 1995  Wolfgang Formann  (wolfi@exner.tgm.ac.at)
+
+	* i386/isc.h (ASM_FILE_START): New macro.
+
+Fri Jan 13 15:01:59 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-parse.in (unary_expr): If -pedantic, give error for &&.
+
+	* fold-const.c (fold, case COND_EXPR): Properly swap args 1 and 2.
+	Strip nops from ARG2, just like ARG1.
+	Make {MIN,MAX}_EXPR properly when type of result different than args.
+	
+	* function.c (optimize_bit_field): Don't remove a SUBREG that
+	changes mode class.
+
+	* Makefile.in (stmp-multilib*): Pass CC and CFLAGS to recursive make.
+
+	* alpha/osf12.h (LINK_SPEC): Add missing "\".
+
+Thu Jan 12 13:37:13 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* i960/t-* (LIBGCC1, CROSS_LIBGCC1): Define to empty instead of
+	to libgcc1.null.
+	* mips/t-*, sparc/t-*: Likewise.
+
+Thu Jan 12 08:13:55 1995  Steve Chamberlain  (sac@wombat.gnu.ai.mit.edu)
+
+	* libgcc2.c (__lshldi3, __lshrdi3,  __ashldi3, __ashrdi3):
+	Shift count comes as a word, not as an SI.  Keep temporary in
+	a word.
+	(__moddi3, __divdi3): Make negate flag `c' have word_type for
+	efficiency.
+
+Thu Jan 12 07:18:09 1995  Stephen L Moshier  (moshier@world.std.com)
+
+	* real.c (toe64):  Use Intel bit pattern for little-endian XFmode Inf.
+	(e64toe): Likewise; also check the exponent field properly.
+
+Wed Jan 11 14:24:55 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+        * toplev.c (lang_options): Add -f{no-,}gnu-keywords, 
+        -f{no-,}operator-names.
+
+Tue Jan 10 19:16:07 1995  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* rs6000.h (REGISTER_MOVE_COST): Add LINK_OR_CTR_REGS class to
+	expensive moves.
+
+Tue Jan 10 19:07:36 1995  Jonathan Beimel  (jbeimel@gomez.sc.intel.com)
+
+	* combine.c (simplify_if_then_else): Fix typo: "|" should be "||".
+
+Tue Jan 10 05:49:25 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold): Avoid infinite recursion caused by last change.
+
+Mon Jan  9 17:08:56 1995  Michael Meissner  (meissner@cygnus.com)
+
+	* configure: All AIX versions [456789].* use the AIX 4.1 support.
+
+Mon Jan  9 13:21:07 1995  David Edelsohn  <edelsohn@npac.syr.edu>
+
+	* rs6000/aix41ppc.h: New file.
+
+	* configure (powerpc-ibm-aix4.1*): Add support AIX version 4.1 on
+	the powerpc.
+
+Sat Jan  7 08:51:29 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* sparc.c (order_regs_for_local_alloc): Add casts to bcopy call.
+	(print_operand, case 'f'): New case.
+	(sparc_initialize_trampoline): Use gen_flush instead of knowing
+	what pattern looks like.
+	Use MEM instead of address in flush insn, so virtual reg
+	instantiation can update.
+	Ensure address in flush insn is valid.
+	* sparc.md (flush): Change to using a MEM instead of address.
+
+	* reorg.c (dbr_schedule): Add missing casts in bzero call.
+
+	* fold-const.c (fold, case CONVERT_EXPR): Don't remove an
+	integer conversion when outer is FP unless it doesn't change
+	signedness; rework code in this area to be clearer.
+
+Sat Jan  7 02:58:21 1995  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (enum processor_type): New enumeration describing the
+	processor to schedule for (700, 7100, 7100LC).
+	(pa_cpu_attr, TARGET_OPTIONS, OVERRIDE_OPTIONS): Define.
+	(pa_cpu_string, pa_cpu): Provide extern decls.
+	* pa.c (pa_cpu, pa_cpu_string): Provide definitions.
+	(override_options): New function.
+	(pa_adjust_cost): Handle PROCESSOR_7100 and PROCESSOR_7100LC
+	scheduling.  Handle anti-dependendy cases involving fp division
+	and sqrt.  Handle output dependencies correctly.  Break TYPE_FPMUL
+	into TYPE_FPMULSGL and TYPE_FPMULDBL.
+	* pa.md (cpu attribute): New attribute.
+	Clean up comments for PROCESSOR_700 scheduling info.  Slightly
+	simplify.  Make conditional on PROCESSOR_700.
+	Add comments and scheduling information for PROCESSOR_7100 and
+	PROCESSOR_7100LC.  Set types for instructions which use the shifter
+	to "shift".  Explicitly set lengths and types for all instructions.
+	Break type "fpmul" into "fmulsgl" and "fpmuldbl".
+
+Fri Jan  6 17:50:48 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* sh/sh.h (DO_GLOBAL_CTORS_BODY): Run constructors from right to
+	left not left to right.
+	* h8300/h8300.h: Likewise.
+
+Thu Jan  5 12:37:26 1995  Doug Evans  <dje@cygnus.com>
+
+	* loop.c (get_condition): Use CONST0_RTX instead of const0_rtx.
+
+Wed Jan  4 04:26:23 1995  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.md (call expander): Use emit_insn_before to emit an insn to
+	save the PIC register before a function call.
+	(call_value expander): Likewise.
+
+Tue Jan  3 15:23:49 1995  Jim Wilson  <wilson@cygnus.com>
+
+	* va-mips.h (va_arg, mips3 case): Use __PTRDIFF_TYPE__ not int in
+	casts.
+
+	* c-decl.c (duplicate_decls): Push to correct obstack before
+	creating new function types.
+
+Fri Dec 30 16:12:52 1994  Ian Lance Taylor  <ian@cygnus.com>
+
+	* fixinc.svr4: Remove special patch for <netinet/in.h>.
+
+Fri Dec 30 08:00:53 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* varasm.c: Include output.h.
+	Add prototyes for all static functions; remove forward declarations
+	of non-static functions.
+	(assemble_variable): Add missing arg decl.
+	(bc_make_decl_rtl, const_hash, const_hash_rtx): Now static.
+	(output_addressed_constants, output_constructor): Likewise.
+	(bc_output_constructor): Add missing argument.
+	(output_byte_asm): Delete, unused.
+	* output.h: Add decls of functions in varasm.c.
+	Allow to be included when rtl.h is not.
+	* function.h ({save_restore}_varasm_status): Add decls.
+	* c-decl.c, c-typeck.c, toplev.c: Include output.h.
+	* Makefie.in (c-decl.o, c-typeck.o, toplev.o, varasm.o): Likewise.
+
+Thu Dec 29 21:48:03 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* calls.c (expand_call): Set MEM_IN_STRUCT_P as needed on return
+	value from assign_stack_temp.
+	(store_one_arg): Likewise.
+	* expr.c (save_noncopied_parts): Likewise.
+	(expand_expr): Likewise.
+	* function.c (assign_parms): Likewise.
+	* integrate.c (expand_inline_function): Likewise.
+	* stmt.c (expand_decl): Likewise.
+
+Thu Dec 29 14:06:34 1994  Jim Wilson  <wilson@cygnus.com>
+
+	* cse.c (simplify_unary_operation): Cast constant 1 to HOST_WIDE_INT
+	before shifting left to form mask.
+	* gcc.c (print_multilib_info): Initialize last_path_len to 0.
+	* varasm.c (output_constructor): Change type of variable value to
+	HOST_WIDE_INT.
+
+	* expmed.c (expand_mult_highpart): Use convert_modes instead of
+	gen_lowpart to do conversions.
+
+Thu Dec 29 13:42:08 1994  Mike Stump  <mrs@cygnus.com>
+
+	* toplev.c (lang_options): Add -frtti flag for rtti support in C++.
+
+Wed Dec 28 22:04:42 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* config/pa/lib2funcs.asm: New file.
+	* config/pa/t-pa (LIB2FUNCS_EXTRA): Define.
+	* config/pa/pa.h (DO_GLOBAL_DTORS_BODY): Define.  Include a
+	reference to __gcc_plt_call so __gcc_plt_call always appears in
+	executables which reference __main.
+
+Wed Dec 28 21:18:26 1994  Jim Wilson  <wilson@cygnus.com>
+
+	* mips.md (truncdiqi2+[123]): Add patterns to optimize DImode to
+	SImode truncation.
+
+	* reorg.c (fill_simple_delay_slots): For the epilogue case, set needed
+	to include frame pointer and stack pointer, don't include all of
+	end_of_function_needs.	Reject insn if it sets a previously set
+	resource.
+
+	* sh.c (sh_expand_prologue): Clear extra_push at start.  Clear
+	current_function_anonymous_args if set.  Clear shiftsyms array.
+	(sh_expand_epilogue): Don't clear extra_push,
+	current_function_pretend_args_size, current_function_anonymous_args,
+	and shiftsyms array.
+
+	* reload.c (find_equiv_reg): Exclude registers clobbered in the
+	CALL_INSN_FUNCTION_USAGE field of a CALL_INSN.
+
+Tue Dec 27 19:22:35 1994  Mike Stump  <mrs@cygnus.com>
+
+	* stmt.c (expand_cleanups): Add third parameter so that we can
+	avoid marking a cleanup region if this cleanup is part of a fixup
+	style goto.
+	(expand_goto_internal): Pass a 1 to expand_cleanups.
+	(bc_expand_goto_internal): Ditto.
+	(fixup_gotos): Ditto.
+	(expand_end_bindings): Pass a 0 to expand_cleanups.
+
+Tue Dec 27 15:45:18 1994  Jeffrey A. Law  <law@snake.cs.utah.edu>
+
+	* pa.c (output_movb): Fix ttypo.
+
+Tue Dec 27 15:11:42 1994  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config/i960/i960.c (i960_output_double): Print hex constants if
+	REAL_VALUE_TO_TARGET_DOUBLE is defined.
+	(i960_output_float): Likewise with REAL_VALUE_TO_TARGET_SINGLE.
+
+Sun Dec 25 07:22:30 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* convert.c (convert_to_pointer): Eliminate ref to null_pointer_node.
+
+Thu Dec 22 12:51:31 1994  Stephen R. van den Berg  (berg@pool.informatik.rwth-aachen.de)
+
+	* limitx.h (syslimits.h): Find syslimits.h in the same directory.
+
+	* limity.h (_GCC_NEXT_LIMITS_H): If macro defined, recurse down
+	to real limits.h.
+
+	* gsyslimits.h (_GCC_NEXT_LIMITS_H): Define macro and start recursing
+	down to the real limits.h.
+
+Thu Dec 22 12:17:11 1994  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (LIMITS_H_TEST): New variable.
+	(xlimits.h): Use LIMITS_H_TEST.
+	* config/m68k/t-next (LIMITS_H_TEST): Define.
+	* config/i386/t-next (LIMITS_H_TEST): Define.
+
+Wed Dec 21 15:56:13 1994  Holger Teutsch  (teutsch@sw017.ffm-iw.Degussa.DE)
+
+	* clipper.h (TRAMPOLINE_TEMPLATE): Specify some code as explicit hex
+	words. Shorten template.
+	(TRAMPOLINE_SIZE,INITIALIZE_TRAMPOLINE): Update accordingly.
+	(FUNCTION_ARG,FUNCTION_ARG_ADVANCE): Aggregates are ALWAYS passed
+	on the stack.
+	* va-clipper.h (__va_rounded_size): Delete.
+	(__va_round): Args have at least PARM_BOUNDARY (=32) alignment.
+
+Wed Dec 21 15:36:46 1994  Stephen L Moshier  (moshier@world.std.com)
+
+	* m68k.md (sqrtsf2, sinsf2, sindf2, sinxf2): Define.
+	(cossf2, cosdf2, cosxf2): Likewise.
+	(sqrtxf2): Operand 1 now XFmode.
+
+Wed Dec 21 14:39:46 1994  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k.md (adddi3, subdi3): New patterns.
+
+Wed Dec 21 13:56:08 1994  Michael Gschwind  <mike@vlsivie.tuwien.ac.at>
+
+	* pdp11.md (mulhisi3): Add truncate to mulhisi3 to fix bug and
+	change from define_insn to define_expand to survive register
+	presssure.
+
+Wed Dec 21 12:51:10 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stmt.c (expand_asm_operands): Make sure input operands are
+	valid constants if they are constants.
+
+	* toplev.c (rest_of_compilation): Adjust tests for when to
+	inline and when to defer.
+	* calls.c (expand_call): Only inline if DECL_INLINE; don't
+	call function_cannot_inline_p here.
+
+	* stmt.c (expand_expr_stmt): If want values for statements,
+	convert function to address-of-function.
+
+Wed Dec 21 00:02:33 1994  Ian Lance Taylor  <ian@cygnus.com>
+
+	* combine.c (simplify_shift_const): Always copy flags to new MEM.
+
+Tue Dec 20 14:15:58 1994  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* rs6000/aix41.h (LINK_SPEC): Add case for -shared, just like rs6000.h.
+
+Tue Dec 20 09:14:00 1994  DJ Delorie (dj@ctron.com)
+
+	* i386/go32.h: support #pragma pack().
+
+	* msdos/configur.bat: add libgcc.a target.
+	* msdos/mklibgcc.c: new file, helps build libgcc.a.
+	* msdos/libgcc.mak: new file, makefile fragment for libgcc.a.
+	* msdos/top.sed: change Makefile to be able to build libgcc.a.
+
+Mon Dec 19 20:52:13 1994  Jim Wilson  <wilson@cygnus.com>
+
+	* mips/x-sysv (CLIB): Add -L/usr/lib/cmplrs/cc3.11.
+
+	* dsp16xx/dsp16xx.h (HAVE_VPRINTF): Delete.
+
+	* flow.c (mark_set_1): For multi-reg hard register, clear all
+	reg_next_use entries.
+
+Mon Dec 19 17:49:59 1994  Doug Evans  <dje@cygnus.com>
+
+	* Makefile.in (stmp-multilib): Check recursive make's return code.
+	(.PHONY): Tell GNU make the various LANGUAGES are phony targets.
+
+Mon Dec 19 17:07:41 1994  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config/mips/mips.c (print_operand): Don't print a CONST_DOUBLE
+	as a floating point value if it is not MODE_FLOAT.
+
+Mon Dec 19 15:27:42 1994  Jim Wilson  <wilson@cygnus.com>
+
+	* fp-bit.c (fpadd_parts): Adding infinities with opposite signs
+	yields a NaN.
+
+	* loop.c (invariant_p): Reject const volatile references.
+
+Sun Dec 18 21:55:26 1994  Jeffrey A. Law  <law@snake.cs.utah.edu>
+
+	* pa.md (pic2_highpart): Accept readonly operands.
+
+Sun Dec 18 16:29:20 1994  Jim Wilson  <wilson@cygnus.com>
+
+	* mips/dec-bsd.h (CPP_PREDEFINES): Change _MIPSEB to _MIPSEL.
+
+	* cccp.c (macarg1): Count newline at end of C++ comment.
+
+Sun Dec 18 06:54:34 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stor-layout.c (layout_decl): Allow DECL_BIT_FIELD for any type.
+
+Sat Dec 17 03:43:24 1994  Jeffrey A. Law  <law@snake.cs.utah.edu>
+
+	* pa.h (readonly_section): During PIC code generation, put
+	readonly data into the standard data section.
+
+	* pa.c (pic_label_operand): Disallow SYMBOL_REFs (constant data).
+
+Fri Dec 16 06:44:40 1994  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* sparc/litecoff.h (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_FUNCTION_FIRST,
+	DBX_OUTPUT_MAIN_SOURCE_FILE_END): Define.
+	(ASM_OUTPUT_SOURCE_LINE): Modify it to output function relative stabs.
+
+	* sh/lib1funcs.asm (ashiftrt_r4_1): Delete useless or instruction.
+	Add nop to rts delay slot.
+
+	* combine.c (distribute_notes): When output an insn to hold a REG_DEAD
+	note, update basic_block_head if necessary.
+
+Thu Dec 15 15:22:46 1994  Jeffrey A. Law  <law@snake.cs.utah.edu)
+
+	* pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Don't emit a ".text"
+	pseudo-op, we already make sure we're in the right space/subspace.
+
+Thu Dec 15 07:49:36 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (store_constructor): Properly get constant part of
+	bit position when DECL_FIELD_BITPOS is a PLUS_EXPR.
+
+Wed Dec 14 19:01:32 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (get_inner_reference): Use EXACT_DIV_EXPR to
+	compute byte offset from bit offset.
+
+Wed Dec 14 11:41:21 1994  Ian Lance Taylor  <ian@cygnus.com>
+
+	* fixincludes: Fix non const atof parameter on NEWS-OS 4.2R.
+
+Tue Dec 13 18:39:09 1994  Doug Evans  <dje@cygnus.com>
+
+	* h8300.c (handle_pragma): Only print warning once.
+
+	* function.c (instantiate_virtual_regs_1, case PLUS): If offset is
+	zero, make sure register replacement is still validated.
+
+Tue Dec 13 07:51:20 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tower-as.h (FUNCTION_EXTRA_EPILOGUE): Fix typo in mov.l opcode.
+	* tower.h (IMMEDIATE_PREFIX): Really define.
+
+	* expr.c (expand_expr, case MINUS_EXPR): Properly handle case
+	when the NEGATE overflows.
+
+Mon Dec 12 17:22:19 1994  der Mouse  (mouse@collatz.mcrcim.mcgill.edu)
+
+	* reload.c (debug_reload): Use GET_MODE_NAME to avoid warning.
+
+Mon Dec 12 13:15:04 1994  Doug Evans  <dje@cygnus.com>
+
+	* function.c (locate_and_pad_parm): Don't call pad_below for BLKmode
+	parms in regs.
+
+	* expmed.c (emit_store_flag): Set mode after canonicalizing op0/op1
+	so op1 is constant.
+
+Mon Dec 12 08:04:33 1994  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* cccp.c, toplev.c (vms_fopen): Call `fopen' through an indirect
+	pointer to inhibit checking argument list against its prototype.
+	Increase RMS multi-block count from 16 to 32.
+
+Sat Dec 10 17:03:59 1994  H.J. Lu   (hjl@nynexst.com)
+
+	* cccp.c (do_include): Avoid dynamic initialization of aggregate.
+
+Sat Dec 10 16:57:50 1994  Andreas Luik  (luik@isa.de)
+
+	* m68k.md (cmpsi): Make this into a define_expand; legitimize
+	PIC addresses if necessary.
+	Old cmpsi code now unnamed define_insn pattern.
+
+Sat Dec 10 16:06:03 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (pedantic_omit_one_operand): New function.
+	(fold, case COND_EXPR): Use it instead of calling
+	pedantic_non_lvalue on the result of omit_one_operand.
+
+Fri Dec  9 15:53:35 1994  Steve Chamberlain  (sac@wombat.gnu.ai.mit.edu)
+
+	* reload.c (find_reloads_address_1):  Handle TRUNCATE and
+	ZERO_EXTEND in same way as SIGN_EXTEND.
+
+Fri Dec  9 14:52:41 1994  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+        * rs6000/rs6000.h (LINK_SPEC): Add %{shared:-bM:SRE}.
+        (LINK_LIBGCC_SPECIAL_1): Use LIBGCC_SPEC instead.
+
+Fri Dec  9 14:24:02 1994  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* gcc.c (default_compilers):  Add support for Chill (.ch and .chi).
+
+Fri Dec  9 17:31:46 1994  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* fixinc.svr4 (sys/byteorder.h): Turn extern inlines back into
+	static inlines for targets (such as SPARC/Solaris) that don't
+	supply these functions in the C library.
+
+Fri Dec  9 17:19:44 1994  David Edelsohn  <edelsohn@npac.syr.edu>
+
+	* rs6000.h (MASK_NO_FPR, TARGET_NO_FPR): Define.
+	(TARGET_SWITCHES): Add "fp-regs" and "no-fp-regs".
+	(CONDITIONAL_REGISTER_USAGE): Set FPRs fixed and call_used if
+	TARGET_NO_FPR.
+
+Fri Dec  9 16:06:23 1994  Doug Evans  <dje@cygnus.com>
+
+	* fold-const.c (fold): Call real_zerop for real constants.
+
+Thu Dec  8 17:28:57 1994  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+        * dbxout.c (dbxout_type_method_1): Don't try to look at the first
+        argument of non-methods (which might not have a first argument).
+
+Thu Dec  8 16:07:27 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* configure (mips-*-gnu*): Recognize this configuration.
+	* config/mips/gnu.h: New file.
+
+Thu Dec  8 15:41:32 1994  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k.c (extend_operator): New predicate.
+	* m68k.md (bsetmemqi, bclrmemqi): New patterns to set bit in memory
+	byte with bit number dynamic (use bclr/bset instructions).
+
+Thu Dec  8 14:13:45 1994  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (do_include): Don't turn newline markers into spaces
+	when expanding an include file name.
+
+	* cccp.c (discard_comments): If traditional, replace a comment
+	with nothing instead of with a space.
+
+	* cccp.c (char_name): New var.
+	(initialize_char_syntax): Initialize it.
+	(handle_directive): Use it to simplify printing of diagnostics.
+	Warn about '\r' too.
+	(create_definition, do_pragma, do_endif, make_assertion): Be consistent
+	about skipping all horizontal white space, not just space and tab.
+
+Thu Dec  8 13:54:38 1994  H.J. Lu (hjl@nynexst.com)
+
+	* i386/linuxelf.h: Modified for stabs-in-ELF.
+	(PREFERRED_DEBUGGING_TYPE): Defined as DBX_DEBUG.
+	(FUNCTION_PROFILER): Use mcount instead of _mount.
+	(CPP_PREDEFINES): Add -D__ELF__.
+	(CPP_SPEC): Add -D__PIC__ -D__pic__ for -fPIC or -fpic.
+	(LIB_SPEC): Don't use any default library if -shared.
+	(LIBGCC_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): New specs.
+	* configure (gxx_include_dir): Set default to '$(prefix)/include/g++'
+	(i[345]86-*-linuxelf): New platform for ELF.
+	* crtstuff.c (CRT_END): Add dummy refs to ___brk_addr, __environ
+	and atexit if __linux__ and __PIC__  defined. 
+
+Thu Dec  8 12:58:34 1994  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* config/xm-freebsd.h, i386/xm-freebsd.h: New files.
+	* configure (i[345]86-*-freebsd*): Use i386/xm-freebsd.h.
+
+Wed Dec  7 16:51:56 1994  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k.md: New pattern for ior between SImode target and zero_extended
+	value.
+
+Wed Dec  7 16:42:46 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (distribute_notes): If can't find place for REG_DEAD
+	note, add an INSN with a USE to hold it.
+
+	* tree.c (preserve_momentary): New function.
+
+Wed Dec  7 15:59:00 1994  Doug Evans  <dje@cygnus.com>
+
+	* function.c (locate_and_pad_parm): Do padding before rounding
+	so pad_below knows how much is needed.
+
+Tue Dec  6 17:53:37 1994  Steve Chamberlain  (sac@wombat.gnu.ai.mit.edu)
+
+        * sh.md (ashrsi2_16): New pattern doesn't clobber reg 18.
+        (ashrsi2_31): Fix.
+
+Tue Dec  6 19:11:36 1994  Stephen L Moshier  (moshier@world.std.com)
+
+	* c-decl.c (init_decl_processing):  Implement built-in functions
+	fabsf, sqrtf, sinf, cosf, fabsl, sqrtl, sinl, cosl.
+
+Tue Dec  6 18:42:15 1994  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* make-gcc.com: Eliminate `set symbol/scope=noGlobal'.
+
+	* vax/vms.h (CPP_PREDEFINES): Set __GNUC_MINOR__ to 7.
+
+Tue Dec  6 15:10:37 1994  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+        * sparc/t-sol2 (CRTSTUFF_T_CFLAGS): Don't use PIC if
+        cross-compiling, use the native assembler otherwise.
+
+Tue Dec  6 05:48:32 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* configure (i[345]86-*-gnu*): Just set cpu_type=i386 here.
+	(*-*-gnu*): Match this in second case stmt and set other vars based on
+	$cpu_type.
+	* config/gnu.h: New file.
+	* config/i386/gnu.h: Include "gnu.h".
+
+Mon Dec  5 16:59:39 1994  Doug Evans  <dje@cygnus.com>
+
+	* sparc/t-sparcbare (LIB2FUNCS_EXTRA): Compile fp-bit.c.
+
+Mon Dec  5 14:48:53 1994  Jim Wilson  <wilson@mole.gnu.ai.mit.edu>
+
+	* unroll.c (copy_loop_body): Reformat CODE_LABEL_NUMBER macro call
+	to avoid HPUX compiler bug.
+
+Mon Dec  5 13:53:45 1994  Doug Evans  <dje@cygnus.com>
+
+	* m68k.md (negsf2): Flip sign bit if software floating point.
+	(negdf2,negxf2): Likewise.
+	(abssf2): Zero sign bit if software floating point.
+	(absdf2,absxf2): Likewise.
+
+Mon Dec  5 13:00:37 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.h (EXTRA_CONSTRAINT, case 'R'): Fix error in last change.
+
+Mon Dec  5 00:40:11 1994  Doug Evans  <dje@cygnus.com>
+
+	* Makefile.in (c-parse.h): Split away from c-parse.c for parallel
+	makes.
+	(bi-parser.h): Likewise with bi-parser.c.
+
+Sun Dec  4 21:04:40 1994  Doug Evans  <dje@cygnus.com>
+
+	Delete this patch:
+	* reorg.c (fill_slots_from_thread): Create a USE insn for any
+	redundant insn we pretend to fill a delay slot with.  Continue
+	searching for a suitable delay slot insn at the new USE insn.
+
+Fri Dec  2 11:29:41 1994  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* expr.c (store_constructor):  Add support for SET_TYPE.
+
+Fri Dec  2 18:14:09 1994  David Edelsohn  <edelsohn@npac.syr.edu>
+
+	* rs6000.h (MASK_64BIT, TARGET_64BIT, SHORT_TYPE_SIZE): Define.
+	(INT_TYPE_SIZE, MAX_INT_TYPE_SIZE, LONG_TYPE_SIZE): Define.
+	(MAX_LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, CHAR_TYPE_SIZE): Define.
+	(FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Define.
+	(POINTER_SIZE, PARM_BOUNDARY): Depend on TARGET_64BIT.
+	(BIGGEST_ALIGNMENT, STARTING_FRAME_OFFSET): Likewise.
+	(FIRST_PARM_OFFSET, REG_PARM_STACK_SPACE): Likewise.
+	(STACK_POINTER_OFFSET, Pmode, FUNCTION_MODE): TARGET_64BIT dependent.
+	* xcoffout.c (xcoff_output_standard_types): Add TARGET_64BIT
+	dependencies.  Add "wchar", "long long int", and "long long
+	unsigned int" built-in C types.
+
+Fri Dec  2 18:08:16 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* integrate.c (subst_constant): Don't treat all virtual regs as
+	constants, just those that are off FP and AP, but not SP.
+	(expand_inline_function): If called function calls alloca, save and
+	restore SP around its call.
+
+	* rs6000.c (input_operand): Correctly check for SYMBOL_REF 
+	referring to the TOC.
+	* rs6000.h (EXTRA_CONSTRAINT): Likewise.
+
+Wed Nov 30 20:42:57 1994  Jeffrey A. Law  <law@snake.cs.utah.edu)
+
+	* reorg.c (fill_slots_from_thread): Create a USE insn for any
+	redundant insn we pretend to fill a delay slot with.  Continue
+	searching for a suitable delay slot insn at the new USE insn.
+
+Wed Nov 30 19:02:49 1994  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* combine.c (record_dead_and_set_regs_1): Handle SUBREGs.
+
+	* expr.c (convert_move): When emit multiword conversion, force FROM
+	into a new pseudo-reg if it overlaps TO.
+
+	* fold-const.c (fold_truthop): Delete BIT_AND_EXPR of constants
+	with masks.
+
+Wed Nov 30 18:22:31 1994  David Edelsohn  <edelsohn@npac.syr.edu>
+
+	* rs6000.h (BITS_PER_WORD): TARGET_POWERPC64 dependent.
+	(MAX_BITS_PER_WORD): Define.
+	(UNITS_PER_WORD): TARGET_POWERPC64 dependent.
+	(MAX_UNITS_PER_WORD): Define.
+	(UNITS_PER_FP_WORD): Define.
+	(HARD_REGNO_NREGS): Use MAX_UNITS_PER_FP_WORD.
+	(HARD_REGNO_MODE_OK): Likewise.
+	(CLASS_MAX_NREGS): Likewise.
+	(MOVE_MAX): TARGET_POWER and TARGET_POWERPC64 dependent.
+	(MAX_MOVE_MAX): Define.
+	* rs6000.md (floatsidf2): Test BITS_PER_WORD in pattern condition
+	not during build.  Fail if TARGET_POWERPC64.
+	(floatunssidf2): Likewise.
+
+	* rs6000.md (extendsidi2): Use lwa_operand predicate.
+	(sign_extend load with update): New PowerPC64 pattern.
+	* rs6000.c (lwa_operand): New predicate.
+	* rs6000.h (PREDICATE_CODES): Add lwa_operand.
+
+Wed Nov 30 18:19:08 1994  Will Athanasiou  (will@westford.ccur.com)
+
+	* rs6000.md (extendsfdf2): SFmode and DFmode register format
+	identical so use define_expand with paradoxical subreg no-op and
+	accompanying new define_split.
+
+Wed Nov 30 18:05:03 1994  Michael Collison  (collison@sw.stratus.com)
+
+	* reload.c (combine_reloads): If using reg dying in this insn as
+	reload reg, ensure it can't be a secondary output reload reg.
+	
+Wed Nov 30 15:48:29 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (emit_block_move): Only use movstr if size is
+	small enough constant or MODE is at least BITS_PER_WORD.
+
+	* c-common.c (decl_attribute): Allow special names (e.g, `word')
+	for mode attribute.
+	* libgcc2.c (word_type): Use __attribute__ ((mode (__word__))).
+
+Tue Nov 29 16:50:37 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+    	* expmed.c (expand_shift): Open-code rotate even if by a variable.
+	* optabs.c (init_optabs): Don't set functions for rotl and rotr.
+
+Tue Nov 29 00:39:56 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (DEFAULT_PCC_STRUCT_RETURN): Define as zero.
+	(RETURN_IN_MEMORY): Only large structs (>8 bytes) and addressable
+	structs should be returned in memory.
+	* calls.c (expand_call): Handle returning BLKmode values in
+	registers.  Do not try to promote BLKmode.
+	* expr.c (expand_assignment): For BLKmode structure returns,
+	copy the return value from registers into the target memory
+	locations.
+	* integrate.c (function_cannot_inline_p): Do not inline functions
+	which return a BLKmode value in registers.
+	* stmt.c (expand_return): For BLKmode structure returns, copy
+	the return value from memory into the return registers.  Use
+	an integer mode rather than BLKmode for returning structures
+	in registers.
+	* explow.c (hard_function_value): Change a register in BLKmode
+	to a register in a sufficiently wide integer mode.
+
+	* calls.c (expand_call): Do not set is_integrable if the
+	function is not inlineable according to function_cannot_inline_p.
+
+Mon Nov 28 18:53:06 1994  Dave Love  (d.love@dl.ac.uk)
+
+	* Makefile.in (FLAGS_TO_PASS): Fix typo in GCC_FOR_TARGET.
+
+Mon Nov 28 18:15:58 1994  Stephen R. van den Berg  (berg@pool.informatik.rwth-aachen.de)
+
+	* configure (lang): Really fix the quoting bug in bash 1.12.
+
+Mon Nov 28 18:03:48 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* expmed.c (store_bit_field, extract_bit_field): Consistently use
+	SLOW_UNALIGNED_ACCESS instead of STRICT_ALIGNMENT.
+	* expr.c (move_by_pieces, move_by_pieces_ninsns, emit_push_insn,
+	expand_assignment, store_field, expand_expr): Likewise.
+	(SLOW_UNALIGNED_ACCESS): Default to STRICT_ALIGNMENT, not zero.
+
+	* cccp.c (create_definition): Error if comma not followed by an
+	identifier.
+	(collect_expansion): Error if # used in macro with no arguments.
+
+	* c-decl.c (finish_decl): Use DECL_CONTEXT instead of
+	current_binding_level to identify file-scope variables.
+
+Wed Nov 23 19:44:25 1994  Steve Chamberlain  (sac@jonny.cygnus.com)
+
+	* sh.c (MSW, LSW): New macros.
+        (print_operand_address): Added 'T' and 'S'.  Modified
+        to support alternate endianness.
+        (output_movedouble):  Support both byte orders.
+        (output_options): Tell assembler when in little endian mode.
+        (shiftinsns): New function to calculate shift cost more
+        accurately.
+        (gen_shifty_op): Use new function.
+        * sh.h (CPP_SPEC, ASM_SPEC, LINK_SPEC, LIBGCC2_WORDS_BIG_ENDIAN): New.
+        (TARGET_SWITCHES, WORDS_BIG_ENDIAN, BYTES_BIG_ENDIAN, ): Support
+        both byte orders.
+        * sh.md (addi3, subdi3, ashrdi3, ashldi3, extendsidi2, movdi, movdf):
+        Support both byte orders.
+        (ashrsi2_16, ashrsi2_31): New.
+        t-sh: Support both byte orders.
+
+Wed Nov 23 17:25:43 1994  Ian Dall  (dall@hfrd.dsto.gov.au)
+
+	* config/ns32k/{ns32k.c,ns32k.h}: Add -mhimem to
+	support linking above 0x20000000 boundary.
+
+	* config/ns32k/{netbsd.h,pc532.h, ns32k.c}: Fix meaning
+	of BASE_REG_NEEDED.
+
+Wed Nov 23 17:24:24 1994 Matthias Pfaller (leo@marco.de)
+
+	* configure (ns32k-pc532-netbsd): No need for fixincludes
+	and libgcc1.
+	* ns32k/ns32k.h (CONST_COSTS): Correct range is -0x1fff to 0x2000.
+	* ns32k/ns32k.md (everywhere): Correct range is -0x1fffffff
+	to 0x20000000, others have to be loaded with movd.
+	Shortcircuit with TARGET_32532 as early as possible.
+	(movsi): Use movd to load unknown symbol values. to allow
+	* ns32k/ns32k.c (print_operand): Removed dead code.
+	* ns32k/pc532.h (TARGET_DEFAULT): Forbid usage of bitfield
+	instructions.
+
+Wed Nov 23 14:09:42 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* mips.c (mips_output_external): Exclude __builtin_next_arg from list
+	of used external functions.
+
+	* sh.c (arith_reg_operand): Disallow MACH_REG and MACL_REG.
+
+	* sparc.h (SECONDARY_MEMORY_NEEDED_RTX, SECONDARY_MEMORY_NEEDED_MODE):
+	Use MODE not mode.
+
+Wed Nov 23 13:30:52 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (emit_move_insn): If splitting up into individual words
+	and X is a push_operand, do the push and reference top of stack.
+
+Tue Nov 22 21:39:52 1994  Doug Evans  (dje@cygnus.com)
+
+	* mips/elf64.h (ASM_OUTPUT_SECTION_NAME): Define.
+
+Tue Nov 22 06:29:21 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold_convert): Don't fold conversion if it would
+	produce constant larger than we can support.
+	* emit-rtl.c (gen_lowpart_common): Do nothing if size is
+	greater than twice host wordsize, not just if equal.
+
+	* optabs.c (emit_no_conflict_block): Just emit the insns if
+	the block contains something not an INSN or has an embedded block.
+
+	* emit-rtl.c (init_emit): Set REGNO_POINTER_FLAG
+	for HARD_FRAME_POINTER_REGNUM.
+
+	* machmode.h (ptr_mode): Add declaration.
+	* emit-rtl.c (ptr_mode): Add definition.
+	(init_emit_once): Initialize ptr_mode.
+	* stor-layout.c (layout_type): Use ptr_mode instead of equivalent
+	call to mode_for_size.
+
+Mon Nov 21 18:41:42 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* varasm.c (output_constant): When eliminating conversions,
+	treat ARRAY_TYPE like a record.
+
+	* m68k.md (movqi): Fix typo in push/pop case.
+
+Mon Nov 21 18:11:55 1994  Stephen R. van den Berg  (berg@pool.informatik.rwth-aachen.de)
+
+	* genopinit.c (gen_insn): Use GET_MODE_WIDER_MODE macro instead of
+	directly accessing the array.
+
+Mon Nov 21 17:59:07 1994  David Edelsohn  <edelsohn@npac.syr.edu>
+
+	* aix41.h (LINK_SPEC): New overriding defintion.
+
+Mon Nov 21 17:44:01 1994  John F Carr  (jfc@mit.edu)
+
+	* rs6000.c (input_operand):  Allow a SYMBOL_REF referring to a
+	symbol in the TOC.
+
+Mon Nov 21 14:39:13 1994  Doug Evans  (dje@cygnus.com)
+
+	* mips/t-ecoff (dp-bit.c): Fix typos.
+
+Mon Nov 21 14:06:29 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* emit-rtl.c (operand_subword): For CONST_DOUBLE, add case to
+	handle BITS_PER_WORD of 16.
+
+	* reload1.c (reload): When decrement max_groups of superclass, can
+	only do so if the group_size is smaller than the current group.
+
+	* c-lex.c (yylex): Do warn about floating point out of range if
+	target floating-point format is IEEE.  Use warning instead of
+	pedwarn to avoid getting errors.
+
+Mon Nov 21 13:37:03 1994  Doug Evans  (dje@cygnus.com)
+
+	* m88k/m88k-aout.h (CPP_PREDEFINES): Add -Acpu and -Amachine.
+	* m88k/m88k-coff.h (CPP_PREDEFINES): Likewise.
+	(DBX_DEBUGGING_INFO): Define.
+
+	* m68k/t-m68kbare (MULTILIB_MATCHES): Treat m68302/m68332 like m68000.
+
+Mon Nov 21 00:58:36 1994  Jeffrey A. Law  (law@mole.gnu.ai.mit.edu)
+
+	* pa.c (output_call): When emitting an inline long-call, use LP%
+	and RP% prefixes to get the function's address.
+
+Sun Nov 20 07:00:25 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (objc-parse.y): Fix typo.
+
+	* t-svr3: Deleted.
+	* t-svr4 (EXTRA_PARTS): Deleted.
+	* i386/t-crtstuff, i386/t-crtpic: New files.
+	* i386/t-svr3dbx (EXTRA_PARTS): Deleted.
+	* configure: Replace use of t-svr3 with extra_parts definition.
+	Add extra_parts to t-svr4 users; likewise for i386/t-svr3dbx.
+	(i386 configurations): Add t-crtstuff if can't build crtstuff.c
+	with -fomit-frame-pointer; use t-crtpic if also must build with -fpic.
+
+Sat Nov 19 17:14:54 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* m68k/lb1sf68.asm (addsf3): After using swap for 16 bit rotate,
+	branch back only if count still greater than 0.
+
+	* c-typeck.c (build_binary_op): Can shorten shift only if shift count
+	is less than size in bits of arg0.
+	* expmed.c (expand_shift): Re-enable truncation of immediate shift
+	count.
+
+	* mips.c (mips_const_double_ok): Accept VOIDmode not DImode.
+	(mips_move_1word): Accept VOIDmode CONST_DOUBLE.
+
+Sat Nov 19 05:36:35 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (print_operand, case 'c', case 'd'): New cases.
+	* alpha.md (sign_extend): Disable pattern with explicit SUBREG.
+	(cmov): Allow first operand of comparison to be zero, 2nd reg.
+
+	* a29k/unix.h (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
+	* a29k/x-unix (CLIB): Remove -lsysv.
+
+Fri Nov 18 22:37:26 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
+
+	* m88k/mot-sysv4.h: Remove, no longer needed.
+	* configure: Remove m88k-mot*-sysv4* special case.
+
+	* collect2.c: Make various functions static.
+
+	* sparc/sysv4.h ([CD]TORS_SECTION_ASM_OP): Remove #execinstr.
+
+	* svr4.h, i386/sol2.h, m88k/dgux.h, sparc/sol2.h
+	(LINK_SPEC): Pass -z text when -shared or -symbolic.
+	* svr4.h (LIBGCC_SPEC): Don't pass -lgcc when -symbolic.
+
+	* crtstuff.c: Fix comments.
+
+Fri Nov 18 22:36:26 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
+
+	* pa/pa-hpux.h (LDD_SUFFIX): Move to pa.h.
+	(PARSE_LDD_OUTPUT): Ditto.
+	* pa/pa.h: (LDD_SUFFIX): Move from pa-hpux.h.
+	(PARSE_LDD_OUTPUT): Ditto.
+	(LINK_SPEC): Pass -b if -shared.  Don't pass -u main if -shared.
+	* pa/pa1-osf.h: Reduce code duplication.
+
+Fri Nov 18 22:35:26 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
+
+	* Makefile.in (crt{begin,end}.o): Pass $(CRTSTUFF_T_CFLAGS).
+	(CRTSTUFF_T_CFLAGS): New variable.
+
+	* svr4.h, m88k/sysv4.h, sparc/sysv4.h (FINI_SECTION_ASM_OP): Define.
+	* i386/sol2.h (FORCE_FINI_SECTION_ALIGN): Define to
+	FORCE_INIT_SECTION_ALIGN.
+	* m88k/dgux.h, m88k/mot-sysv4.h, sparc/sysv4.h
+	(INIT_SECTION_PREAMBLE): Remove.
+	* svr4.h, sparc/sol2.h (STARTFILE_SPEC): Include crti.o and
+        values-X?.o when building a shared lib.
+	* svr4.h, i386/sol2.h, sparc/sol2.h (LIB_SPEC): Remove endfiles.
+	(ENDFILE_SPEC): Handle endfiles.
+
+	* libgcc2.c (__do_global_dtors): Don't define if
+        INIT_SECTION_ASM_OP and OBJECT_FORMAT_ELF.
+	(L_[cd]tor_list): Lose unused pieces.
+
+	* crtstuff.c (__[CD]TOR_{LIST,END}__): static if OBJECT_FORMAT_ELF.
+	(__do_global_ctors_aux): In .text if OBJECT_FORMAT_ELF.
+	(__do_global_dtors_aux): Ditto.
+	(init_dummy): Dummy function to stick a call to __do_global_ctors_aux
+	into the .init section if OBJECT_FORMAT_ELF.
+	(fini_dummy): Similarly.
+	Remove reference to INIT_SECTION_PREAMBLE.
+
+	* mips/iris5.h (HAS_INIT_SECTION): Define.
+	(LINK_SPEC): Pass -u __main -init __main if not -shared.
+	(STARTFILE_SPEC): Don't include these when -shared.
+	(LIB_SPEC): Don't include these when -shared.
+	(ENDFILE_SPEC): Define.
+	(LD_INIT_SWITCH): Define.
+	(LD_FINI_SWITCH): Define.
+
+	* alpha/alpha.h (LD_INIT_SWITCH): Define.
+	(LD_FINI_SWITCH): Define.
+	(INIT_NAME_FORMAT): Lose.
+	(FINI_NAME_FORMAT): Lose.
+
+Fri Nov 18 22:34:26 1994  Ronald F. Guilmette (rfg@segfault.us.com)
+
+	* crtstuff.c, svr4.h, i860/sysv4.h, m88k/sysv4.h, sparc/sysv4.h
+        (CTORS_SECTION_ASM_OP): Remove @progbits, add SHF_WRITE.
+	(DTORS_SECTION_ASM_OP): Ditto.
+
+	* t-svr4, i386/t-sol2, m88k/t-sysv4, sparc/t-sol2
+	(CRTSTUFF_T_CFLAGS): Define to -fpic.
+
+Fri Nov 18 22:33:26 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
+
+	* gcc.c (LIBGCC_SPEC): New spec.
+	(link_command_spec): Use LIBGCC_SPEC.
+	(set_spec): Handle LIBGCC_SPEC.
+	(process_command): Ditto.
+	(do_spec_1): %G is LIBGCC_SPEC.
+	(validate_all_switches): Also validate LIBGCC_SPEC.
+
+	* alpha/alpha.h (LIBGCC_SPEC): Do include libgcc when
+        creating a shared library.
+
+Fri Nov 18 22:32:26 1994  Steve Dum  (steve_dum@mentorg.com)
+
+	* collect2.c (SUNOS4_SHARED_LIBRARIES): Support scanning the
+        _DYNAMIC field of SunOS 4 shared libraries directly.
+
+Fri Nov 18 22:31:26 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
+
+	* collect2.c (main): For shared libraries, link in stubs even if
+	there are no constructors or destructors so that static objects
+	can be added without re-linking everything that uses the library.
+	(write_c_file_stat): Tweak.
+
+	* configure: Use sunos4.h instead of sparc.h for SunOS 4 targets.
+
+	* sparc/sunos4.h: New file for SunOS 4-specific things.
+	(SUNOS4_SHARED_LIBRARIES): Define to 1.
+	* sparc/sparc.h: (LINK_SPEC): Support -shared.
+	(LIB_SPEC): Ditto.
+
+	* pa/pa-hpux.h (LDD_SUFFIX): New macro.
+	(PARSE_LDD_OUTPUT): New macro.
+	(LINK_SPEC): Pass -b if -shared.  Don't pass -u	main if -shared.
+	(LIB_SPEC): Don't include if -shared.
+
+	* collect2.c (scan_prog_file): Ignore undefined symbols.
+
+Fri Nov 18 22:30:26 1994  Steve Dum (steve_dum@mentorg.com)
+
+	* collect2.c (enum pass): Add PASS_LIB.
+	(is_ctor_dtor): Check for shared library constructor and destructor
+	functions, too.
+	(main): Add o_file after any link libraries, too.
+	Create a shared object if COLLECT_GCC_OPTIONS contains -shared.
+	Also scan shared libraries for constructors and destructors if
+	LDD_SUFFIX is defined.
+	(write_c_file_stat): New function to write out file for a shared
+	object.
+	(write_c_file_glob): Renamed from write_c_file.
+	(write_c_file): Calls one of write_c_file_{stat,glob}.
+	(scan_prog_file): Update to deal with shared libraries.
+	(scan_libraries): New function to scan shared libraries for
+	constructors and destructors.
+
+Fri Nov 18 19:16:19 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.c (addrs_ok_for_quad_peep): New function.
+	(output_prolog): Use liu mnemonic.
+	(registers_ok_for_quad_peep): New function.
+	* rs6000.md (peepholes for two DF load/store): New peepholes.
+
+Fri Nov 18 19:10:24 1994  Kresten Krab Thorup  (krab@next.com)
+
+        * objc/object.c (class_create_instance):  Replace memchr
+	with memset.
+
+Fri Nov 18 19:06:15 1994  Doug Evans  (dje@cygnus.com)
+
+	* sparc/lite.h: #include "gofast.h"
+	(INIT_SUBTARGET_OPTABS): Define.
+
+Fri Nov 18 19:01:51 1994  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* Makefile.in (extraclean): Remove *.ps.
+
+Fri Nov 18 18:53:57 1994  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* cccp.c (create_definition): Allow carriage-return ('\r')
+	as white space in simple or empty expansion.
+
+Fri Nov 18 18:30:40 1994  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* winnt/ld.c (main): Fix off-by-one error allocating sdbuff.
+
+Fri Nov 18 18:23:54 1994  Mike Collison  (collison@sw.stratus.com)
+
+	* regclass.c (record_reg_classes): For single SET between hard reg
+	 alone in a class and pseudo, ensure reg is the only member of class.
+
+Fri Nov 18 15:15:27 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* sol2.h (MD_STARTFILE_PREFIX): Delete.
+
+Fri Nov 18 14:16:04 1994  Chris Huey  (cah@tactix.rain.com)
+
+	* Makefile.in (objc-parse.y, mostlyclean): Rename temp file 
+	for objc-parse.y to be under 14 characters.
+
+Thu Nov 17 20:46:15 1994  Doug Evans  <dje@cygnus.com>
+
+	VxWorks support from various people at Cygnus.
+	* config.sub: Vendor for vxworks is wrs.
+	* configure (i960-wrs-vxworks*): New target.
+	(m68k-wrs-vxworks*): New target.
+	(sparc-wrs-vxworks*, sparclite-wrs-vxworks*): New targets.
+	* i960/t-vxworks960, i960/vx960-coff.h, i960/vx960.h: New files.
+	* m68k/t-vxworks68, m68k/vxm68k.h: New files.
+	* sparc/t-vxsparc, sparc/vxsparc.h: New files.
+
+	* h8300/h8300.h (DBX_DEBUGGING_INFO): Define.
+	(PREFERRED_DEBUGGING_TYPE): Define to SDB_DEBUG.
+
+	* configure (--program-prefix, --program-suffix,
+	--program-transform-name, -v, -verbose): New arguments.
+	(as): If gas is in build tree, use it.
+	(ld, real-ld): Likewise but watch for use_collect.
+	(program_transform_name): Update Makefile if
+	--program-transform-name given.
+	(program_transform_cross_name): Likewise.
+	* Makefile.in (program_transform_name): Define.
+	(program_transform_cross_name): Define.
+	(GCC_INSTALL_NAME, GCC_CROSS_NAME): Define.
+	(install-common): Use them.
+	(install-man): Likewise.
+	(distclean): Delete *.asm.
+	(stage*, risky-stage*): If as/ld/real-ld exist, copy them to stage dir.
+
+	Embedded target support from various Cygnus people.
+	* config.sub (sparc): Recognize as a cpu.
+	(ecoff*, vsta, udi): Recognize as os's.
+	(udi29k): New alias.
+	* configure: (a29k-*-udi): New target.
+	(i[345]86-*-aout*): New target.
+	(i[345]86-*-coff*): New target.
+	(i[345]86-*-vsta): New target.
+	(m68k-*-aout*): New target.
+	(m68k-*-coff*): New target.
+	(m88k-*-aout*): New target.
+	(m88k-*-coff*): New target.
+	(mipsel-*-ecoff*): New target.
+	(mips-*-ecoff*): New target.
+	(mipsel-*-elf*): New target.
+	(mips-*-elf*): New target.
+	(mips64el-*-elf*): New target.
+	(mips64orionel-*-elf*): New target.
+	(mips64-*-elf*): New target.
+	(mips64orion-*-elf*): New target.
+	(sparc-*-aout*): New target.
+	(sparclite-*-coff*): New target.
+	(sparclite-*-*): Set tmake_file to sparc/t-sparclite.
+	(mips*-*-*): Changed from mips-*-*.
+	* optabs.c (expand_unop): Try subtraction from zero if there isn't a
+	negate library function.
+	* config/gofast.h: New file.
+	* a29k/a29k-udi.h, a29k/t-a29kbare: New files.
+	* i386/i386-aout.h, i386/i386-coff.h, i386/t-i386bare: New files.
+	* i386/vsta.h, i386/t-vsta, i386/x-vsta, i386/xm-vsta.h: New files.
+	* m68k/coff.h: New file (renamed from m68k-coff.h).
+	* m68k/lynx-ng.h, m68k/lynx.h: Include it.
+	* m68k/fpgnulib.c, m68k/lb1sf68.asm, m68k/m68kemb.h: New files.
+	* m68k/m68k-aout.h, m68k/m68k-coff.h, m68k/m68k-none.h: New files.
+	* m68k/t-m68kbare: New file.
+	* m88k/m88k-aout.h, m88k/m88k-coff.h, m88k/t-bug: New files.
+	* mips/ecoff-gdb.h, mips/ecoff.h, mips/ecoffl-gdb.h: New files.
+	* mips/ecoffl.h, mips/elf.h, mips/elf64.h, mips/elfl.h: New files.
+	* mips/elfl64.h, mips/elflorion.h, mips/elforion.h: New files.
+	* mips/t-ecoff: New files.
+	* sparc/lb1spc.asm, sparc/lb1spl.asm, sparc/litecoff.h: New files.
+	* sparc/sparc-aout.h, sparc/t-sparcbare, sparc/t-sparclite: New files.
+
+Thu Nov 17 18:32:24 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
+
+	* cse.c (simplify_binary_operation): Do (x - (x & y)) -> (x & ~y).
+
+Thu Nov 17 17:26:02 1994  Mark P. Gooderum  (mark@good.com)
+
+	* stddef.h: Include <machine/ansi.h> on NetBSD.
+	Check for _BSD_XXX_T_ as well as _XXX_T_.
+	Add _BSD_XXX_T_ to list of defines to check and define for a given
+	type for SIZE_T, PTRDIFF_T, and WCHAR_T.
+
+Thu Nov 17 11:11:50 1994  Mike Collison  (collison@sw.stratus.com)
+
+	* dsp16xx.c (notice_update_cc): Removed reference to obsolete LSHIFT.
+	* dsp16xx.h (RTX_COSTS): Likewise.
+
+Thu Nov 17 11:06:43 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (some_operand): New function.
+	* alpha.h (PREDICATE_CODES): Add `some_operand'.
+	* alpha.md (addsi3, adddi3): For patterns valid only
+	during reload, allow operand 1 to be `some_operand'.
+
+	* flow.c (find_auto_inc): Insert missing "return" statement.
+
+	* c-common.c (print_char_table): Allow `L' for `u'.
+
+Thu Nov 17 10:15:50 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+
+	* config.sub: Accept -domain as OS, and make it default for Apollo.
+
+Wed Nov 16 19:28:46 1994  Jim Wilson  (wilson@chestnut.cygnus.com)
+
+	* loop.c (move_movables): For move_insn case, skip notes when deleting
+	instructions.
+
+Wed Nov 16 16:13:48 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* bi-run.h: Always check BITS_BIG_ENDIAN, BYTES_BIG_ENDIAN, and
+	WORDS_BIG_ENDIAN at run time, never at compile time.
+	* bytecode.h, combine.c, cse.c, dbxout.c, dwarfout.c: Likewise.
+	* expmed.c, expr.h, final.c, fold-const.c, function.c: Likewise.
+	* jump.c, objc-act.c, real.c, real.h, recog.c, reload.c: Likewise.
+	* reload1.c, sdbout.c, tree.c, varasm.c: Likewise.
+	* real.c: Replace uses of MIEEE and IBMPC with a compile time
+	check of IEEE and a runtime check of FLOAT_WORDS_BIG_ENDIAN.
+	* libgcc.2 (LIBGCC2_WORDS_BIG_ENDIAN): If not defined, define to
+	WORDS_BIG_ENDIAN.  Use it instead of WORDS_BIG_ENDIAN.
+	* mips-tfile.c (init_file): Initialize fBigendian field based on
+	HOST_WORDS_BIG_ENDIAN, not BYTES_BIG_ENDIAN.
+	* config/mips/mips.h (MASK_BIG_ENDIAN): Define, replacing
+	MASK_UNUSED4.
+	(TARGET_BIG_ENDIAN): Define.
+	(TARGET_SWITCHES): Add eb and el.  Include TARGET_ENDIAN_DEFAULT
+	in default value.
+	(TARGET_ENDIAN_DEFAULT): Define if not defined, based on
+	DECSTATION.
+	(CC1_SPEC): Convert -EB to -meb, convert -EL to -mel, and warn if
+	-EB and -EL are both used.
+	(CPP_SPEC): If -EB is seen, undefine MIPSEL, _MIPSEL, __MIPSEL and
+	__MIPSEL__, and define _MIPSEB, __MIPSEB, __MIPSEB__ and MIPSEB
+	(the last only if -ansi was not seen).  Similarly if -EL is seen.
+	(REAL_ARITHMETIC): Define.
+	(BYTES_BIG_ENDIAN, WORDS_BIG_ENDIAN): Base on TARGET_BIG_ENDIAN.
+	(LIBGCC2_WORDS_BIG_ENDIAN): Define.
+	(CONST_COSTS): Use split_double in CONST_DOUBLE case.
+	* config/mips/mips.c (mips_move_2words): Use split_double rather
+	than CONST_DOUBLE_LOW and CONST_DOUBLE_HIGH.
+	(output_block_move): Check BYTES_BIG_ENDIAN at run time, not
+	compile time.
+	(print_operand): Check WORDS_BIG_ENDIAN, rather than using
+	MOST_SIGNIFICANT_WORD and LEAST_SIGNIFICANT_WORD.
+	* config/mips/t-mips (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
+	MULTILIB_MATCHES, LIBGCC, INSTALL_LIBGCC): Define to build both
+	big and little endian versions of libgcc.a.
+	* config/mips/t-mips-gas: LIkewise.
+	* config/mips/dec-bsd.h (CPP_SPEC): Same change as in mips.h.
+	* config/mips/dec-osf1.h (CPP_SPEC): Likewise.
+	* config/mips/iris3.h (CPP_SPEC): Likewise.
+	* config/mips/iris5.h (CPP_SPEC): Likewise.
+	* config/mips/osfrose.h (CPP_SPEC): Likewise.
+	(CC1_SPEC): Same change as in mips.h.
+
+Wed Nov 16 16:04:21 1994  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (rescan): Remove unnecessary comparisons of ibp to limit.
+
+Wed Nov 16 07:48:17 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* regclass.c (record_reg_classes): Handle case of single SET
+	between a hard register alone in a class and a pseudo.
+
+	* tree.c (integer_{zero,one,all_ones,pow2}p): Handle COMPLEX_CST.
+	(real_{zero,one,two}p): Likewise.
+
+	* gcc.c (main): For -V output, give both driver and compiler
+	versions, if they differ.
+
+	* toplev.c (rest_of_compilation): Always rerun jump_optimize
+	after CSE if -O2.
+
+	* fold-const.c (fold): If moved conversion into COND_EXPR,
+	leave it there if it is an integral conversion to word or narrower.
+	(fold, case NOP_EXPR): Ignore conversion to same type as operand.
+	(fold, case COND_EXPR): Make third operand the simplest.
+
+	* expr.c (convert_move): Don't put FROM in a register if it
+	is a SUBREG.
+	(store_expr): If don't want a value and storing into promoted
+	variable, do conversion at tree level; don't copy volatile MEM
+	unless want value, as comment says.
+
+Tue Nov 15 20:02:34 1994  Doug Evans  (dje@cygnus.com)
+
+	* varasm.c (named_section): New argument decl, all callers changed.
+	* h8300/h8300.h, sh/sh.h, sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME):
+	New arg DECL.
+
+Mon Nov 14 15:07:19 1994  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+        * tree.h (POINTER_TYPE_P): New macro.
+        * m68k/m68kv4.h, m68k/mot3300.h (FUNCTION_VALUE): Use
+        POINTER_TYPE_P rather than checking the type against
+        POINTER_TYPE (to include references).
+        * function.c (init_function_start): Ditto.
+
+        * alpha/alpha.h (FUNCTION_VALUE): Use INTEGRAL_MODE_P rather than
+        checking the type against various integral and pointer types.
+
+        * m68k/{3b1,3b1g,crds,mot3300}.h: Don't define __PTR_TO_INT and
+        __INT_TO_PTR.
+        * m68k/xm-{3b1,crds,mot3300}.h: Define __PTR_TO_INT and __INT_TO_PTR.
+
+Tue Nov 15 19:29:04 1994  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* tree.c (staticp):  A non-nested function is always static.
+
+Tue Nov 15 19:12:03 1994  Jim Meyering  (meyering@comco.com)
+
+	* Makefile.in (specs, float.h-cross, xlimits.h): Use temporary instead
+	of redirecting output directly to make target.
+	($(MD_FILE), xsys-protos.h): Likewise.
+	(mostlyclean): Remove any of these temporaries.
+	(libgcc2.a): Add missing semicolon in commented code that could cause
+	a /bin/sh syntax error if uncommented.
+
+Tue Nov 15 19:07:00 1994  Warner Losh  (imp@village.org)
+  
+        * i386/freebsd.h (NO_IMPLICIT_EXTERN_C): Define.
+
+Tue Nov 15 19:00:55 1994  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* reorg.c (redundant_insn): Renamed from redundant_insn_p; all
+        callers changed.
+
+Tue Nov 15 18:57:46 1994  Jim Wilson  (wilson@chestnut.cygnus.com)
+
+	* reorg.c (relax_delay_slots): When invert a conditional jump over a
+	single unconditional jump, invert the INSN_FROM_TARGET_P bit of insns
+	in the delay slots.
+
+	* reorg.c (redundant_insn_p): Change return type to rtx.  Return the
+	redundant insn instead of true.
+	(update_reg_unused_notes): New function.
+	(fill_slots_from_thread): Call update_reg_unused_notes after one of
+	the redundant_insn_p calls.
+
+Tue Nov 15 18:39:33 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
+
+	* expmed.c (expand_divmod, case ROUND_DIV_EXPR): Implement.
+	* expr.c (do_jump_by_parts_greater_rtx): No longer static.
+	(expand_expr): Delete code for plain `abs'.
+	* optabs.c (expand_abs): New function, code moved from expand_expr.
+	* expr.h: Declare expand_abs.
+
+Tue Nov 15 12:11:26 1994  Jeffrey A. Law  (law@mole.gnu.ai.mit.edu)
+
+	* pa.c (output_cbranch): Improve code for short backwards branch
+	with an unfilled delay slot.
+	(output_bb, output_dbra, output_movb): Likewise.
+
+Tue Nov 15 09:55:31 1994  Doug Evans  (dje@cygnus.com)
+
+	* jump.c (delete_insn): Delete labels in ADDR_VECs and
+	ADDR_DIFF_VECs if their use count becomes zero.
+	* flow.c (flow_delete_insn): New function.
+	(find_basic_blocks): Call it to physically delete insns in
+	unreachable blocks.  When scanning blocks after dead ones,
+	start scanning after the dead one (not at the dead one).
+	If there are lots of unreachable blocks, make another pass to squeeze
+	them out (this reduces memory usage in some pathalogical cases by a
+	significant amount without resorting to sparse matrices).
+	(propagate_block): Make code a bit more efficient (for example,
+	no need to test `loop_depth' for each insn, just notes).
+
+Tue Nov 15 09:42:31 1994  Lynn Shumaker  (shumaker@saifr00.ateng.az.honeywell.com)
+
+	* function.c (assign_stack_temp): Compute size of slot after
+	assign_stack_local has accounted for alignment.
+
+Mon Nov 14 23:47:20 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
+
+	* pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow
+	(lo_sum (reg) (unspec (symref))).
+
+	* pa.md (pic2_lo_sum): New pattern matching when -fPIC using UNSPEC.
+	* pa.c (legitimize_pic_address): Generate an insn matching
+	pic2_lo_sum when -fPIC.
+
+	* pa.md (pic_highpart): Add missing mode for PLUS.
+	(add_high_const): Likewise.
+
+	* pa.md (matcher for plain lo_sum): Call abort if this happens
+	when generating pic or PIC.
+
+Mon Nov 14 23:47:20 1994  Jeffrey A. Law  (snake.cs.utah.edu)
+
+	* Automatic generation of inline long call sequences when needed.
+	* pa.h (TARGET_LONG_CALLS): Delete.  Replace all uses of with
+	TARGET_PORTABLE_RUNTIME.
+	(TARGET_MILLICODE_LONG_CALLS): New target flag.
+	* pa.c (output_function_prologue): Keep track of the total number
+	of code bytes emitted for each source file.
+	(output_call): Handle TARGET_PORTABLE_RUNTIME and millicode calls
+	for TARGET_MILLICODE_LONG_CALLS.  Emit an inline long-call if
+	needed.  If emitting an inline long-call, perform argument relocations
+	before the call if they are needed, unfill the delay slot of the
+	call if necessary.
+	* pa.md (define_delay for millicode): Disable the delay slot if
+	TARGET_MILLICODE_LONG_CALLS.
+	(millicode insns and indirect calls): Properly compute length for 
+	both TARGET_PORTABLE_RUNTIME and TARGET_MILLICODE_LONG_CALLS.
+	(call_internal_symref): Properly compute the length when more
+	than 240000 bytes of code have already been output.  Take 
+	TARGET_MILLICODE_LONG_CALLS into account in the length
+	computation.
+
+	* pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Define.
+	(ASM_FILE_END): Delete unneeded definition.
+
+	* Fast indirect call support.
+	* pa.h (TARGET_FAST_INDIRECT_CALLS): New target switch.
+	(TARGET_SWITCHES): Add "fast-indirect-calls" and inverse.
+	* pa.md (call_internal_reg, call_value_internal_reg): Generate
+	appropriate code for TARGET_FAST_INDIRECT_CALLS.
+			  
+	* PA PIC support.
+	* pa.c (secondary_reload_class): Refine.  Readonly data needs a
+	secondary reload only during PIC generation.  Loading a floating
+	point register with a constant requires a register from R1_REGS
+	during -fPIC code generation.
+	(read_only_operand): Constant pool entries are no longer read only
+	during PIC code generation.
+	(hppa_legitimize_address): If flag_pic is nonzero, then
+	immediately call legitimize_pic_address.
+	(emit_move_sequence): Call legitimize_pic_address to handle
+	constant data.  Handle secondary reloads for PIC.  Use
+	pic_label_operand rather than open coding the test.  Handle
+	loading a LABEL_REF when generating PIC.
+	(legitimzie_pic_address): Handle constant data addressing for PIC
+	here.   Fix loading of symbolic addresses for -fPIC generation.
+	(pic_label_operand): Renamed from pic_operand.  Handle any read
+	only operand (such as constant data).  Reject function addresses,
+	Accept SYMBOL_REF with the read-only bit set.  Generalize to
+	handle (const (plus (reg) (int))).
+	(finalize_pic): Delete unused function.
+	(check_pic): Delete function.
+	(pic_pc_rtx): Delete variable definition.
+	(current_function_uses_pic_offset_table): Delete extern decl.
+	(force_reg, validize_mem): Likewise.
+        (output_global_address): Don't tack on "-$global$" when generating
+        PIC code.
+	(finalize_pic): Don't emit code for initialization of 
+	hppa_save_pic_table_rtx here.  Don't claim we USE
+	pic_offset_table_rtx at function end.
+	* pa.h (SELECT_RTX_SECTION): Define.  During PIC generation
+	everything (in the constant pool) goes into the data space.
+	(PRINT_OPERAND_ADDRESS): Handle CONST_INTs during PIC
+	generation.  Handle LO_SUM address during -fPIC generation.
+	(LEGITIMATE_CONSTANT_P): Reject function labels when generating
+	PIC code.
+	(GO_IF_LEGITIMATE_ADDRESS): Only accept pic_reg + SYMBOL_REF for
+	-fpic.
+	(EXTRA_SECTION_FUNCTIONS): For -fpic, use the TEXT section for
+	constants to avoid GAS lossage.
+	(OVERRIDE_OPTIONS): Delete.
+	(PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
+	(FINALIZE_PIC): Delete definition.
+	(INIT_EXPANDERS): Define.  Clear hppa_save_pic_table_rtx here.
+	* pa.md: Use !flag_pic rather than calling check_pic.
+	(HImode high and lo_sum): Only accept const_int_operands.
+	(pic_load_label): Force output to be in %r1. 
+	(pic_highpart): New pattern.  Output must go into %r1.  More
+	linker trickery.
+	(symbolic high and lo_sum): Disallow during PIC	generation if
+	source is a symbolic operand.  Handle CONST_INT LO_SUM during PIC
+	generation.  Simplify.
+	(define_split for symbolic_operand load): Do not accept a symbolic
+	operand that is a pic_label_operand.
+	(pic_load_label): Name this pattern.  Mask least significant bits
+	and optimize when a simple label is within reach of an ldo.
+	(call, call_value): Emit new-style USE information for
+	pic_offset_table_rtx.  Emit code for initialization of
+	hppa_save_pic_table_rtx and wrap it into push_topmost_sequence()
+	and pop_topmost_sequence() calls. 
+
+	* Various PA configuration cleanups.  
+	* configure (hppa*-*-h[pi]ux): Use xm-pahpux.h and x-pa-hpux instead
+	of the redundant hiux files.  Likewise for t-pa instead of t-pa-hpux.
+	* config/pa/xm-pahiux.h: Delete.  It's identical to xm-pahpux.h.
+	* config/pa/x-pa-hiux: Delete.  It's idential to x-pa-hpux.
+	* config/pa/x-pa (TAROUTOPTS): Delete.  It was an HPUX host
+	conditional, and x-pa is a BSD host target fragment.
+	(INSTALL_HEADERS): Define.
+	(STMP_FIXPROTO): Define.
+	* config/pa/t-pa (INSTALLED_H): Delete.
+	* config/pa/t-pa-hpux: Delete, it's identical to t-pa.
+	* config/pa/pa-hiux.h: Include "pa/pa-hpux.h" and just override
+	the CPP predefines.
+	(CPP_PREDEFINES): Add -A assertions.
+	* config/pa/{pa1-hiux.h, pa-ghiux.h, pa1-ghiux.h}: Likewise.
+	* config/pa/pa-ghpux.h: Simplify by including pa-hpux.h.
+	(DBX_DEBUGGING_INFO): Define.
+	(DEFAULT_GDB_EXTENSIONS): Define.
+
+Mon Nov 14 19:16:00 1994  Dennis Glatting  <war04!dennisg@kerby.ocsg.com>
+
+	* fixincludes: Fixes for NextStep 3.2.  Remove ``__const__'' from
+	sin and cos prototypes in ansi/math.h.  Remove keyword ``template''
+	from bfd/libc.h.  Remove ``volatile'' from abort in bsd/libc.h
+	and abort and exit in ansi/stdlib.h.
+
+Mon Nov 14 18:54:28 1994  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* i386/x-winnt (EXTRA_PROGRAM): Match target name.
+
+Mon Nov 14 18:48:21 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
+
+	* freebsd.h (INCLUDE_DEFAULTS): Move definition beyond
+	FREEBSD_NATIVE conditional.
+	(FUNCTION_PROFILER): Move down to make file more similar to
+	netbsd-i386.h.
+	(DEFAULT_TARGET_MACHINE, etc): Comment our this braindamage!
+
+Mon Nov 14 18:46:18 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* calls.c (expand_call): If IS_CONST and VALREG == 0, end our
+	sequence and emit the insns.
+
+Sat Nov 12 06:35:42 1994  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* Version 2.6.2 released.
+
+Sat Nov 12 06:35:21 1994  Torbjorn Granlund  (tege@cygnus.com)
+
+	* expmed.c (expand_divmod, case TRUNC_DIV_EXPR): Promote signed
+	division by 0x80000000 to unsigned.
+
+Fri Nov 11 17:07:35 1994  Michael Meissner  (meissner@osf.org)
+
+	* c-common.c (decl_attributes): Add double-underscore version of
+	printf and scanf for format type.
+
+Fri Nov 11 16:38:04 1994  Jim Wilson  (wilson@chestnut.cygnus.com)
+
+	* mips-tdump.c: Include <time.h>.  Delete ctime prototype.
+
+Fri Nov 11 14:16:00 1994  Holger Teutsch  <holger@hotbso.rhein-main.de>
+
+	* clipper.md (movsi+1): Allow r->m move during reloading.
+
+Fri Nov 11 12:40:51 1994  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* c-decl.c (duplicate_decls): Properly merge decls with
+	differing DECL_CONTEXT.
+
+	* function.c (preserve_rtl_expr_result): find_temp_slot_from_address
+	now used.
+	Don't bring the temp slot to an inner level than it was.	
+	(assign_stack_temp): Always initialize p->rtl_expr.
+
+	* m68k/mot3300g.h (SPACE_AFTER_L_OPTION): Deleted.
+
+Thu Nov 10 18:50:52 1994  Kresten Krab Thorup (krab@next.com)
+
+	* objc/list.h: Add ifndef/define for repeated inclusion.
+
+Thu Nov 10 18:02:58 1994  Michael Meissner  <meissner@pasta.osf.org>
+
+	* c-common.c (decl_attributes): Check for attributes with leading
+	and trailing double underscores.
+
+Thu Nov 10 17:55:07 1994  Chris Metcalf  (metcalf@catfish.lcs.mit.edu)
+
+	* fixincludes: Make argument type const for popen and tempnam in
+	stdio.h and for strdup in string.h, for OSF/1 V3.0.
+
+	* va-alpha.h (va_arg): Add cast to void * to suppress warning.
+
+Thu Nov 10 17:48:21 1994  Walter Misar  (hrz.th-darmstadt.de)
+
+	* m68k/hp320.h (FUNCTION_{PRO,EPI}LOGUE): Don't define.
+	(IMMEDIATE_PREFIX, REGISTER_PREFIX): Define.
+
+Thu Nov 10 15:04:57 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* m68k/crds.h (FUNCTION_{PRO,EPI}LOGUE): Add code to adjust stack
+	when no frame pointer.
+	* m68k.c (output_function_epilogue): Use a1 as scratch, not a0.
+	* m68k/tower-as.h (FUNCTION_{PRO,EPI}LOGUE): No longer defined.
+	(FUNCTION_EXTRA_EPILOGUE): Define.
+	* m68k/tower.h (REGISTER_PREFIX, IMMEDIATE_PREFIX): Define.
+
+	* i386/x-sco, i386/x-sco4 (CLIB): Add -lPW.
+	(ALLOCA): Delete.
+
+	* c-common.c ({print,scan}_char_table): Allow `L' modifier
+	for integer output formats.
+	(check_format_info): Treat `ll' like `q'.
+
+	* rs6000.md (movsi): In TOC symbol case, use "la" for PowerPC.
+	(movdi): Handle TOC symbol just like movsi.
+
+	* objc-act.c (init_objc): Add missing casts to args of bcopy.
+	(lang_init): Ensure line number is 0, not -1.
+
+Tue Nov  8 07:51:53 1994  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (dump_single_macro, dump_defn_1): If -traditional,
+	dump macros in traditional style.  This also avoids a bogus error
+	message if the macro uses traditional stringizing.
+
+Mon Nov  7 21:28:13 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>
+
+	* protoize.c [!POSIX]: Only define O_RDONLY and O_WRONLY if not
+	already defined.
+
+Mon Nov  7 19:33:31 1994  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* combine.c (try_combine): Update split_code after converting MULT
+	to ASHIFT.
+
+Mon Nov  7 12:26:24 1994  Torbjorn Granlund  <tege@cygnus.com>
+
+	* rs6000.md (DImode load-with-update matcher): Fix typo in MEM mode.
+	(compare patterns): Fix several typos, SImode => CCmode.
+	* sh.md (subdi3): Delete % from constraints.
+	* 1750a.md (subqi3): Likewise.
+	* clipper.md (subdi3): Likewise.
+	* i370.md (subqi3): Likewise.
+	(anonymous subqi3 matcher): Likewise.
+	* i860.md (subdi3): Likewise.
+	* dsp16xx.md (mulqi3): Fix typo in MULT mode.
+	* elxsi.md (one_cmplsi2): Fix typo in NOT mode.
+
+Mon Nov  7 12:47:37 1994  Ian Lance Taylor  <ian@cygnus.com>
+
+	* m68kv4.h (ASM_IDENTIFY_GCC): Use proper definition for SGS assembler.
+
+Mon Nov  7 11:02:25 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* gcc.c (process_command): Ignore LIBRARY_PATH and LPATH if
+	cross-compiler.
+
+Sun Nov  6 07:23:37 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cross-test.c (foo): Return value for BU in range for shifts.
+
+Sat Nov  5 14:25:36 1994  Jim Wilson  (wilson@chestnut.cygnus.com)
+
+	* m68k.h (PREFERRED_RELOAD_CLASS): FP constants rejected by 'G'
+	are OK for class FP_REGS.
+
+Sat Nov  5 14:08:31 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* calls.c (store_one_arg): Preserve any temp slots whose address
+	may have been taken.
+
+	* real.c (GET_REAL, PUT_REAL): Cast args to bcopy to char *.
+	* reload1.c (reload): Likewise.
+	* i386.c ({save,restore}_386_machine_status): Likewise.
+	* reg-stack.c (subst_asm_stack_regs): Likewise.
+	(BLOCK_NUM): Rework to avoid cast of abort to int *.
+	(find_blocks): Don't use BLOCK_NUM on lhs.
+	(reg_to_stack, record_arg_reg_life): Cast arg to bzero to char *.
+
+Sat Nov  5 08:29:45 1994  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (rescan): Do not preserve newlines after macro name
+	if rescanning a macro expansion.  Instead, preserve them if
+	not outputting marks.
+
+Fri Nov  4 17:25:29 1994  John David Anglin  (dave@hiauly1.hia.nrc.ca)
+
+	* vax.c: Include tree.h and VMS-specific functions #ifdef VMS_TARGET.
+	* vms.h (VMS_TARGET): Define.	
+
+Fri Nov  4 17:19:30 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* bi-arity.c (main): Cast enum to char in output.
+	* bc-emit.c (bc_emit_bytecode): Add missing cast.
+
+Thu Nov  3 14:17:22 1994  Mike Stump  <mrs@cygnus.com>
+
+	* libgcc2.c (__register_exceptions): Find max ending of a segment for
+	end, not min.
+	* libgcc2.c (__unwind_function): New function to support stack
+	unwinding on i[34]86 for g++ exception handling.
+
+Thu Nov  3 18:55:42 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (c-parse.o, c-lex.o): c-parse.h is in $(srcdir).
+
+Thu Nov  3 18:11:56 1994  John F Carr  (jfc@mit.edu)
+
+	* rs6000.md (movsi): New alternative for SYMBOL_REF source operand.
+	* rs6000.c (print_operand): New code '*' to print TOC register number.
+	* rs6000.h (EXTRA_CONSTRAINT): 'R' matches a SYMBOL_REF for TOC entry.
+	(PRINT_OPERAND_PUNCT_VALID_P): Recognize '*'.
+	(PREDICATE_CODES): input_operand can now match SYMBOL_REF.
+
+Thu Nov  3 18:03:24 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
+
+	* cccp.c: TOOL_INCLUDE_DIR is not C++-aware.
+
+Thu Nov  3 17:23:30 1994  Jim Wilson  (wilson@chestnut.cygnus.com)
+
+	* mips.c (mips_output_external): Exclude alloca from list of
+	used external functions.
+
+Tue Nov  1 19:19:41 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Version 2.6.1 released.
+
+Tue Nov  1 18:51:00 1994  Torbjorn Granlund  (tege@cygnus.com)
+
+	* pa.md (add_high_const): Add missing mode for PLUS.
+
+Tue Nov  1 18:39:53 1994  Stephen L Moshier  (moshier@world.std.com)
+
+	* cse.c (simplify_unary_operation, case TRUNCATE): Set LV and HV.
+
+Tue Nov  1 18:36:23 1994  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* vax.c (struct extern_list): Put code back outside of #ifdef VMS.
+	(vms_check_external, vms_flush_pending_externals): Likewise.
+
+Mon Oct 31 16:18:12 1994  Michael Meissner  <meissner@pasta.osf.org>
+
+	* i386/i386.md (movsf, movdf, movxf): If we are moving floating
+	point constants to a non-memory location that aren't 0 or 1,
+	assume we need the pic register if -fpic.
+
+Mon Oct 31 13:26:45 1994  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* sparc.h (GO_IF_LEGITIMATE_ADDRESS): Don't allow TFmode LO_SUM.
+	* sparc.md (movtf+3): Disable pattern.
+
+Mon Oct 31 08:11:47 1994  Doug Evans  <dje@canuck.cygnus.com>
+
+	* expr.c (expand_expr, COND_EXPR case): Don't use original target as
+	a temp if it's a volatile mem ref.  Finish previous patch (don't
+	expand "X ? A & 1 : A" as "A & (X != 0)").
+
+Mon Oct 31 08:07:09 1994  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* vax.c: Include tree.h #ifdef VMS.
+	(struct extern_list): Move inside #ifdef VMS; add SIZE and IN_CONST
+	fields; make `extern_head' static; add second list head.
+	(vms_check_external): Move inside #ifdef VMS; give new args; maintain
+	list of both pending external symbols and previously defined ones.
+	(vms_flush_pending_externals): New function.
+	* vax/vms.h (ASM_GLOBALIZE_LABEL): Pass new args to vms_check_external.
+	(ASM_OUTPUT_EXTERNAL): Just call vms_check_external.
+	(ASM_{,FINISH_}DECLARE_OBJECT_NAME, ASM_FILE_END): Define.
+
+Mon Oct 31 08:00:59 1994  Michael Gschwind  (mike@vlsivie.tuwien.ac.at)
+
+	* pdp11.h (TARGET_SWITCHES): Add -split and -no-split.
+	(TARGET_SPLIT, TARGET_NOSPLIT): New macros.
+	(TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Abort if -split.
+
+Mon Oct 31 07:53:34 1994  Warner Losh  <imp@village.org>
+
+	* i386/x-freebsd (CLIB): Add definition.
+
+Mon Oct 31 07:49:17 1994  Jeffrey A Law  <law@snake.cs.utah.edu>
+
+	* reorg.c (mark_set_resources): Properly handle SUBREGs.
+
+Mon Oct 31 07:24:32 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case COMPONENT_REF): Don't extract
+	field from a CONSTRUCTOR if it already has a TREE_CST_RTL.
+	(expand_expr, case ADDR_EXPR): Call mark_temp_addr_taken
+	on the temporary made when operand needs to be stored into memory.
+	* function.c (preserve_temp_slots): Preserve anything whose
+	address was taken when X is zero.
+
+Sun Oct 30 15:11:51 1994  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* msdos/top.sed, i386/config-nt.sed: Update version to 2.6.1.
+	* pa/t-pa-hpux: Add missing newline at end.
+
+Sat Oct 29 21:16:29 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (operand_subword): Fix typo: HOST_BITS_PER_INT
+	should be HOST_BITS_PER_WIDE_INT.
+
+Fri Oct 28 19:13:13 1994  Andrew McCallum  (mccallum@vein.cs.rochester.edu)
+
+	* objc/misc.c (__objc_xcalloc):  Use calloc instead malloc/bzero.
+
+Fri Oct 28 19:07:53 1994  Michael Gschwind  (mike@vlsivie.tuwien.ac.at)
+
+	* pdp11.h (TRAMPOLINE_SIZE): Install real implementation.
+	(INITIALIZE_TRAMPOLINE, TRAMPOLINE_TEMPLATE): Likewise.
+
+Fri Oct 28 19:01:27 1994  Craig Burley  (burley@gnu.ai.mit.edu)
+
+	* Makefile.in (stage?-start): Add semicolon between fi and done.
+  
+Fri Oct 28 17:12:26 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): Don't record a DEST if paradoxical SUBREG
+	and SRC is a SIGN_EXTEND or ZERO_EXTEND.
+
+	* alpha.md (reload_outqi): Correctly handle scratch assignments
+	for unaligned case when ADDR is a REG.
+
+Fri Oct 28 07:55:40 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/i386.md (adddi3): Fixup code in case operands[0] is equal
+	to operands[2].
+
+Thu Oct 27 18:58:39 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (count_possible_groups): Fix typo in setting
+	counted_for_groups.
+
+Thu Oct 27 15:30:41 1994  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* c-typeck.c (process_init_element):  In the case of
+	[LO .. HI] = VALUE, use save_expr to only evaluate VALUE once.
+
+Thu Oct 27 15:15:25 1994  Torbjorn Granlund  (tege@rtl.cygnus.com)
+
+	* gcc.c (process_command): Don't forget to split -Wl arguments at
+	commas.
+
+	* gcc.c (process_command): Handle -Wl, and -Xlinker similar to -l,
+	i.e., preserve their order with respect to linker input files.
+
+Thu Oct 27 13:11:16 1994  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* configure (i[345]86-*-winnt3*): Allow any version 3.x.
+	Don't use a t-winnt file and move x-winnt to config/i386.
+	* i386/x-winnt: Build ld-winnt.exe only on host.
+	* winnt/t-winnt: Deleted.
+
+Thu Oct 27 13:05:16 1994  Mike Collison  (collison@chianti.sw.stratus.com)
+
+	* reload.c (debug_reload): New function to print reload info
+	set up by find_reloads.
+
+Wed Oct 26 18:27:03 1994  David Mosberger-Tang  <davidm@piston.cs.arizona.edu>
+
+	* alpha.h (FUNCTION_PROFILER): Use $28 instead of $27.
+	(LINK_SPEC): Pass -pg to linker.
+	(LIB_SPEC): Link in -lprof1 with -pg, not -lprof2.
+	(STARTFILE_SPEC): USe gcrt0.o if -pg, not mcrt0.o.
+
+Wed Oct 26 18:22:34 1994  Doug Evans  (dje@cygnus.com)
+
+	* expr.c (expand_expr, COND_EXPR case): Don't expand
+	"X ? A & 1 : A" as "A & (X != 0)".
+
+Wed Oct 26 18:06:52 1994  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* winnt/ld.c (expand_lib, main): Fix off-by-one bugs in several
+	calls to malloc.
+
+Wed Oct 26 22:00:09 1994  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* winnt/t-winnt: Remove some spurious blank lines.
+
+Wed Oct 26 14:14:39 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h (REAL_NM_FILE_NAME): Use /usr/ccs/gcc/bfd-nm
+	instead of /usr/ccs/bin/nm, since the GNU nm does not output stab
+	symbols by default.
+
+Wed Oct 26 13:47:06 1994  Michael Gschwind  (mike@vlsivie.tuwien.ac.at)
+
+	* config.sub (pdp11): New machine name.
+	* configure (pdp11-*-*): New configuration.
+	* pdp11.c, pdp11.h, pdp11.md, xm-pdp11.h: New files.
+
+Wed Oct 26 07:33:40 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* flow.c (find_basic_blocks): Ensure each live basic block is
+	actually reachable.
+	(life_analysis): Clean up handling of basic_block_drops_in.
+
+Tue Oct 25 18:40:12 1994  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (rescan): ".." no longer terminates a preprocessing
+	number, since that's incompatible with the C standard.
+
+Tue Oct 25 16:16:40 1994  Michael Dobson  (dobson@info.usuhs.mil)
+
+	* we32k.h (CPP_PREDEFINES): Define u3b2, not u3b.
+
+Tue Oct 25 16:15:27 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* reorg.c (fill_slots_from_thread): Update THREAD if it is split.
+
+Mon Oct 24 00:12:46 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
+
+	* toplev.c (lang_options): Add -f{no-,}access-control.
+
+Mon Oct 24 06:14:03 1994  Richard Earnshaw (rwe@pegasus.esprit.ec.org)
+
+	* arm/arm.md (peepholes for call followed by branch): Disable.
+
+Sun Oct 23 08:54:27 1994  Richard Earnshaw (rwe@pegasus.esprit.ec.org)
+
+	* arm/x-riscix (INSTALL): Invoke install.sh with -c flag.
+
+Fri Oct 21 00:42:08 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
+
+	* Makefile.in (LIB2FUNCS): Add _pure.
+
+	* libgcc2.c (__pure_virtual): New function to go into vtable
+	entries for pure virtual methods instead of abort.
+
+Thu Oct 20 18:40:36 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.md (define_split comparison op with power of two minus 1):
+	Fix typo.
+
+Thu Oct 20 13:14:24 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
+
+	* collect2.c (add_to_list): Check for duplicates.
+
+	* alpha/alpha.h (LINK_SPEC): Pass -shared through; don't
+	pass -init __main if -shared.
+	(STARTFILE_SPEC): Wrap startfiles in %{!shared:}.
+	(INIT_NAME_FORMAT): Define.
+	(FINI_NAME_FORMAT): Define.
+	* alpha/osf12.h (LINK_SPEC): Ditto.
+	* alpha/gdb-osf12.h: #include osf12.h instead of alpha.h
+
+	* gcc.c (STARTFILE_SPEC): Wrap startfiles in %{!shared:}.
+
+Thu Oct 20 16:07:46 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* unroll.c (loop_iterations): Move all failure exits after the
+	computation of final_value.
+
+	* mips.md (movdf_internal2+1): Disable when TARGET_64BIT.
+
+	* i960.c (VARARGS_STDARG_FUNCTION): New macro.
+	(i960_function_name_declare, output_function_profiler,
+	i960_function_epilogue, i960_output_call_insn,  i960_output_ret_insn,
+	i960_reg_parm_stack_space): Use it.
+	(compute_frame_size): Don't use current_function_pretend_args_size.
+	(i960_function_arg_advance, i960_function_arg): Don't use parameter
+	named.
+	(i960_setup_incoming_varargs): No need to adjust first_reg_offset
+	after setting it.  Don't save last named argument to stack.
+	Don't set pretend_size.
+	* i960.h (SIGNED_CHAR_SPEC): Use #if instead of ?:.
+	* va-i960.h (va_start): Use builtin_arts_info instead of
+	builtin_next_arg.
+
+ 	* cse.c (merge_equiv_classes, cse_insn): Call rehash_using_reg
+	after insert_regs.
+	(canon_hash): Don't use qty_const to compute hash code for a
+	register.
+
+Thu Oct 20 09:41:51 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu)
+
+	* stor-layout.c (variable_size): Return SIZE if it contains
+	a PLACEHOLDER_EXPR.
+
+Tue Oct 18 19:51:24 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
+
+	* collect2.c (main): Check REAL_*_FILE_NAME first.
+
+Wed Oct 19 15:55:15 1994  David J. MacKenzie  <djm@duality.gnu.ai.mit.edu>
+
+	* config.sub: Add licensing exception for Autoconf.
+
+Wed Oct 19 06:43:46 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/i386.h (FUNCTION_BLOCK_PROFILER): Don't bother preserving
+	eax if -fpic, since it is a call clobbered register anyway.  Fix -fpic
+	code so that it is correct.
+
+Tue Oct 18 18:00:23 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/i386.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Move
+	macros here from osfrose, netbsd, and freebsd ports.  Remove
+	assumptions that the assembler is gas.  Rewrite and fix the
+	instructions produced with -fpic.
+
+	* i386/osfrose.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
+	* i386/freebsd.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
+	* i386/netbsd-i386.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER):
+	Delete.
+
+Tue Oct 18 20:27:29 1994  Doug Evans  (dje@cygnus.com)
+
+	* sparc.h (FRAME_POINTER_REQUIRED): Require frame pointer if
+	non-leaf flat function.
+	* sparc.c (sparc_frame_info): Combine members gp_sp_offset and
+	fp_sp_offset into reg_offset.  All uses changed.
+	(RETURN_ADDR_REGNUM): New macro.
+	(RETURN_ADDR_MASK, FRAME_POINTER_MASK): New macros.
+	(sparc_flat_compute_frame_info): Rename local mask to gmask.
+	Only ensure reg save area is 8 byte aligned if necessary.
+	(sparc_flat_save_restore): New arguments base_reg, offset, gmask,
+	and fmask.  All callers changed.  No longer use %g2 to save regs
+	in big stack frames.
+	(sparc_flat_output_function_prologue): Delete local tsize.
+	Reorder storing of previous frame pointer and return address reg to
+	make it easier for gdb to identify flat functions.  Decrement %sp
+	twice when saving call-saved regs in big frames.
+	Count fp regs as 4 bytes in assembler comment.
+	(sparc_flat_output_function_epilogue): Likewise when restoring
+	call-saved regs.
+
+Tue Oct 18 19:33:55 1994  Mike Collison  (collison@sw.stratus.com)
+
+	* reload1.c (reload): Correctly compute group additional needs when
+	the return register cannot be used as a spill register.
+
+Tue Oct 18 16:17:26 1994  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* mips.h (ASM_SPEC): Pass -mcpu= option to GNU as.
+
+Tue Oct 18 08:39:49 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* flow.c (propagate_block): Call mark_used_regs to show global regs
+	used by call.
+	* combine.c (can_combine_p): Don't combine into CALL_INSN where
+	DEST is a global reg.
+
+	* c-decl.c (start_function): Save immediate_size_expand
+	and initialize it to zero in case nested function.
+
+	* pa.c (non_hard_reg_operand): New function.
+	* pa.md (reload_{in,out}*): Replace general_operand with
+	non_hard_reg_operand.
+
+Fri Oct 14 18:35:30 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
+
+	* gcc.c (default_compilers): Treat files with an extension of .c++
+	as C++ code.
+
+Mon Oct 17 19:21:57 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* configure (rs6000-ibm-aix4.1*): New configuration.
+	* rs6000/aix41.h: New file.
+
+Mon Oct 17 19:15:14 1994  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* va-mips.h (va_arg): Add little endian mips3 support.
+
+	* sparc.h (RETURN_IN_MEMORY): Return true for TCmode values.
+
+	* README.IRIX5: Delete.
+	* install.texi: Update Irix 5 debugging info.
+
+	* mips.c (function_prologue): Only emit line number when SDB_DEBUG.
+
+	* configure: Delete new argument, --noguess.  Default build from
+	host if host specified, otherwise guess build.  Fix typo in
+	setting build from host.
+
+Mon Oct 17 15:54:56 1994  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* calls.c (expand_call, emit_library_call, emit_library_call_value):
+	Allways adjust current_function_outgoing_args_size, even #ifndef
+	ACCUMULATE_OUTGOING_ARGS.  (Useful for stack overflow checking.)
+	* function.c (current_function_outgoing_args_size):  Update comment.
+
+Mon Oct 17 18:49:01 1994  Paul Eggert  <eggert@twinsun.com>
+
+	* cccp.c (rescan): Preserve newlines after macro names at the top level
+	since this is more likely to do the right thing with line numbers.
+
+Mon Oct 17 11:31:42 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (gen_reload): Renamed from gen_input_reload.
+	(emit_reload_insns): Delete SECONDARY_MEM_NEEDED case for input
+	reloads that can't happen and doesn't work.
+	Fix errors in use of reload_outxx insns.
+	Simplify output reload code by using gen_reload.
+	* reload.h (gen_reload): Renamed from gen_input_reload.
+
+Mon Oct 17 09:26:57 1994  Richard Earnshaw (rwe@pegasus.esprit.ec.org)
+
+	* unroll.c (copy_loop_body, case JUMP_INSN): Don't abort if invert_exp
+	fails.  Instead, redirect the jump around an unconditional branch.
+
+Sun Oct 16 05:02:23 1994  Richard Earnshaw (rwe@pegasus.esprit.ec.org)
+
+	* emit-rtl.c (add_insn_{before,after}): Don't abort because AFTER was
+	deleted when not optimizing.
+
+Fri Oct 14 19:26:28 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.c (emit_move_sequence): Handle secondary reload when loading
+	a constant into SAR.
+
+Fri Oct 14 10:29:31 1994  Richard Earnshaw (rwe@pegasus.esprit.ec.org)
+
+	* fixincludes: Fix X11/Intrinsic.h for RISCiX to remove ___type from
+	XtOffset.
+	Add all files that receive special attention to REQUIRED, so that
+	dependent copies are done if necessary.
+
+	* getpwd.c: Always use getwd if HAVE_GETWD is defined.
+	* arm/xm-arm.h: Define HAVE_GETWD.
+
+	* arm/x-riscix, arm/t-riscix: New files
+	* configure (arm-*-riscix*): Use them.
+	
+Thu Oct 13 17:12:27 1994  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* i960.md (call, call_internal, call_value, call_value_internal):
+	Use memory_operand not general_operand.
+
+	* optabs.c (expand_fix): Correct typo with FIX/UNSIGNED_FIX
+	REG_NOTES.
+
+Thu Oct 13 10:44:32 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* genattrtab.c (optimize_attrs): Don't do anything if
+	num_insn_ents is zero.
+
+Wed Oct 12 19:06:48 1994  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* mips/mips.c (mips_expand_prologue): Handle types that need
+	constructing.  Rename TYPE to PASSED_TYPE and use consistently.
+
+Wed Oct 12 11:32:05 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* genattrtab.c (num_insn_ents): New static variable.
+	(remove_insn_ent): Decrement num_insn_ents.
+	(insert_insn_ent): Increment num_insn_ents.
+	(optimize_attrs): Use xmalloc to allocate all the attr_value_list
+	structures at once, rather than using alloca for each one.
+
+Wed Oct 12 09:17:34 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* optabs.c (??hf2_libfunc): Define like ??sf2_libfunc.
+	(emit_float_lib_cmp): Call HFmode library functions.
+	(init_optabs): Set names for HFmode comparison functions.
+	* expr.h (??hf2_libfunc): Add declarations, like  ??sf2_libfunc.
+
+Tue Oct 11 19:20:48 1994  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* winnt/ld.c (main): Pass -debug:full -debugtype:coff.
+	* winnt/t-winnt: Rework rules for ld.
+	* i386/config-nt.bat: Renamed from config/i386/config-winnt.bat.
+	Make specific for x86, not all winnt; change filenames.
+	* i386/config-nt.sed: Remove -g from CFLAGS.
+	Reflect changes to t-winnt and other minor changes.
+	* i386/x-winnt: Renamed from winnt/x-winnt.
+	* i386/config-nt.sed: Renamed from config/winnt/top.sed.
+	
+Tue Oct 11 18:40:41 1994  Peter Schauer  (Peter.Schauer@regent.e-technik.tu-muenchen.de)
+
+	* rs6000.h (ASM_DECLARE_FUNCTION_NAME): Always put out .lglobl
+	for static functions.
+
+Mon Oct 10 19:19:51 1994  Alex T. Ramos  (ramos@engr.latech.edu)
+
+	* expr.c (convert_move): Add TImode conversions.
+
+Mon Oct 10 18:46:44 1994  Alex Dreyzen  (alex@alex.jf.intel.com)
+
+	* optabs.c (expand_float): Copy TEMP to TARGET when
+	making recursive call and adjusting.
+
+Mon Oct 10 07:10:25 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/linux.h (DEFAULT_PCC_STRUCT_RETURN): Do not define as 0 if
+	LINUX_ELF is defined.
+	(perform.h): Include perform.h to define asm statements to use for
+	libgcc1.a builds.
+
+	* i386/linuxelf.h (DEFAULT_PCC_STRUCT_RETURN): Define as 1.
+	(RETURN_IN_MEMORY): Don't define.
+
+Sun Oct  9 11:49:20 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/i386.md (movsf_mem): Add & constraint, so that the scratch
+	register does not clobber the destination address.
+
+Sun Oct  9 12:40:43 1994  Richard Earnshaw (rwe@pegasus.esprit.ec.org)
+
+	* arm.md (reload_outdf): Don't call gen_addsi3 if the address is just
+	a register.
+
+Sat Oct  8 11:16:50 1994  Doug Evans  (dje@cygnus.com)
+
+	* objc/archive.c (__objc_free): New function.
+	(__objc_finish_read_root_object): Use it.
+
+Fri Oct  7 19:23:03 1994  J.T. Conklin  (jtc@cygnus.com)
+
+	* ginclude/stddef.h: Netware uses _SIZE_T_DEFINED_, _WCHAR_T_DEFINED_.
+
+Fri Oct  7 12:45:43 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/i386.c (legitimate_address_p): Disable SUBREGs as either
+	the index or base register.
+
+Fri Oct  7 08:24:44 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* i386/gnu.h (CPP_PREDEFINES): Define __HURD__.
+
+	* collect2.c (my_strerror): If HAVE_STRERROR defined, call strerror.
+	* xm-gnu.h (HAVE_STRERROR): Define.
+
+	* function.c (preserve_temp_slots): If X cannot be a temp
+	slot, preserve all things whose address was taken at the
+	present level.
+
+	* function.c (assign_stack_temp): Abort if SIZE == -1.
+
+	* expr.c (safe_from_p): If EXP has a variable size, assume safe.
+	(preexpand_calls): Don't preexpand a call that returns a variable-
+	sized object.
+
+	* emit-rtl.c (add_insn_{after,before}): Fix error in last change.
+
+Thu Oct  6 09:18:28 1994  Kresten Krab Thorup  (krab@next.com)
+
+	Adam Fedor (fedor@hopper.colorado.edu)
+	* objc/archive.c (__objc_finish_read_root_object): Delay freeing
+	of back-patch list.
+
+	Andrew McCallum (mccallum@cs.rochester.edu)
+	* objc/objc.h (BOOL): Changed from char to unsigned char.
+
+Thu Oct  6 08:17:04 1994  Stan Cox  (coxs@dg-rtp.dg.com)
+
+	* m88k/m88k.c (emit_move_sequence): If operand1 is an invalid PIC
+	 address, then legitimize it before doing anything else.
+
+Thu Oct  6 06:54:03 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): Don't call force_const_mem on (const (truncate)).
+
+	* expr.c (store_expr): Don't clobber TEMP with address.
+
+	* reorg.c (try_merge_delay_insns): Update THREAD if it is split.
+
+	* function.c (struct temp_slot): New field addr_taken.
+	(assign_stack_temp): Initialize it.
+	(mark_temp_addr_taken): New function.
+	(preserve_temp_slots): Decrement level of things at same level
+	but whose address has been taken.
+	* expr.c (expand_expr, case ADDR_EXPR): Call mark_temp_addr_taken.
+
+Wed Oct  5 14:17:39 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
+
+	* fold-const.c (fold, COMPONENT_REF): Don't die if the CONSTRUCTOR
+	doesn't initialize the field we want.
+
+Wed Oct  5 11:38:48 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/i386.c (legitimize_pic_address): Changes to support
+	LABEL_REF references when using -fpic.
+	(output_pic_addr_const): Ditto.
+	(print_operand_address): Ditto.
+
+	* i386/i386.md (movsi insn): Changes to support LABEL_REF
+	references when using -fpic.
+	(movsi_lea): Name insn supporting lea instruction so it shows up
+	more clearly when doing -dp.
+
+Wed Oct  5 06:56:36 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reorg.c (try_merge_delay_insns): Update THREAD if deleting first
+	insn in it.
+
+Wed Oct  5 01:19:14 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* configure (i[345]86-*-gnu*): Set xm_file=i386/xm-gnu.h.
+	* config/i386/xm-gnu.h: New file.
+	* config/xm-gnu.h: New file.
+	* config/i386/gnu.h: Move #include <fcntl.h> out of here, into
+	config/xm-gnu.h.
+
+Tue Oct  4 23:19:28 1994  Michael Meissner  <meissner@pasta.osf.org>
+
+	* protoize.c (POSIX includes): If POSIX is defined, include
+	sys/wait.h to get WIFSIGNALED, WTERMSIG, WIFEXITED, and
+	WEXITSTATUS.
+
+Tue Oct  4 21:48:02 1994  Michael I Bushnell  <mib@churchy.gnu.ai.mit.edu>
+
+	* config/i386/gnu.h: Include <fcntl.h> to get O_RDONLY definition.
+	* gcc.c (O_RDONLY): Define macro iff not already defined.
+	(read_specs): Second arg to open should be O_RDONLY, not constant 0.
+
+Tue Oct  4 19:06:38 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (do_jump_for_compare): Properly scan insns when
+	branch is at start of sequence.
+
+Tue Oct  4 16:53:54 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* gcc.c, collect2.c, protoize.c (WIFSIGNALED): Define if not
+	already defined.
+	(WTERMSIG, WIFEXITED, WEXITSTATUS): Likewise.
+	* gcc.c (execute): Use them.
+	* collect2.c (do_wait): Likewise.
+	* protoize.c (gen_aux_info_file): Likewise.
+
+Tue Oct  4 16:38:06 1994  Michael Meissner  <meissner@pasta.osf.org>
+
+	* i386/i386.h (RETURN_IN_MEMORY): Define so that large types such
+	as complex double values get returned like structures do, and
+	don't overwrite %ebx.
+
+Tue Oct  4 15:58:21 1994  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* lynx-ng.h, lynx.h (PREFERRED_DEBUGGING_INFO): Add undef before
+	define.
+
+Tue Oct  4 05:12:02 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+
+	* config.sub: Translate -gnu/linux* to -linux*.
+
+Mon Oct  3 11:43:45 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* config.sub: Add support for MIPS variants: mips64, mipsel,
+	mips64el, mips64orion, mips64orionel, mips3*.
+
+Sun Oct  2 18:26:34 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
+
+	* function.c (push_function_context_to): Renamed from
+	push_function_context, adds argument to indicate that the new
+	function is not a nested function.
+	(push_function_context): Call it.
+	(pop_function_context{,_from}): Similarly.
+
+	* tree.c (save_tree_status): Add argument to indicate that the new
+	function is not a nested function.
+	(restore_tree_status): Ditto.
+
+Sun Oct  2 18:05:37 1994  Doug Evans  (dje@cygnus.com)
+
+	* configure (i[34]86-*): Change to i[345]86-*.
+	(target_cpu_default): Treat i586 as an i486 (for now).
+
+Sun Oct  2 10:25:51 1994  Richard Earnshaw (rwe@pegasus.esprit.ec.org)
+
+	* arm.md (movsf): If reloading, create a scratch from the target for
+	loading a constant into integer regs.
+	(movdf): Likewise.
+
+	Support for variants that fault on unaligned addrs:
+	* arm.h (TARGET_SHORT_BY_BYTES): New macro.
+	(TARGET_SWITCHES): Recognize switches -m[no-]short-load-bytes.
+	(TARGET_DEFAULT): Only define if not already done so.
+	(PROMOTE_MODE): Promote HImode unsigned if TARGET_SHORT_BY_BYTES.
+	(SECONDARY_INPUT_RELOAD_CLASS): Need a scratch for reloading HImode if
+	TARGET_SHORT_BY_BYTES.
+	* arm.c (arm_reload_in_hi): New function.
+	* arm.md (zero_extendhisi2, extendhisi2): Expand to suitable byte
+	sequence when TARGET_SHORT_BYTES and loading a mem.
+	(movhi_bytes, extendhisi2_mem): New expands.
+	(movhi): Call movhi_bytes to load a short from memory if 
+	TARGET_SHORT_BY_BYTES.
+	(all matchers loading a short from memory): Don't match if 
+	TARGET_SHORT_BY_BYTES.
+	(matcher for movhi when TARGET_SHORT_BY_BYTES): New pattern to cover 
+	remaining valid cases.
+
+Sun Oct  2 08:54:30 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reg-stack.c (subst_stack_regs): Check for NOTE to see if insn was
+	deleted.
+
+	* reorg.c (fill_slots_from_thread): Update THREAD if deleting
+	its first insn.
+
+	* reg-stack.c (delete_insn_for_stacker): Don't set INSN_DELETED_P
+	on NOTE_INSN_DELETED.
+
+Sat Oct  1 20:42:33 1994  Chip Salzenberg  <chip@fin.uucp>
+
+	* sco4.h (CPP_PREDEFINES): Remove i386, unix.
+	(CPP_SPEC): Add them here, so that they're undefined if -ansi.
+	Also add _i386 and _unix, which are always defined.
+	* x-sco (CLIB): Add "-lmalloc".
+	(ALLOCA): Define as "-lPW".
+	* x-sco4 (CC, OLDCC, RCCFLAGS, CCLIBFLAGS, CLIB, ALLOCA): From x-sco.
+	(X_CFLAGS): Remove.
+
+Sat Oct  1 14:27:45 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/i386.md (movsf_push386): Rename to movsf_push_nomove.
+	(movdf_normal): Prefer to use float registers rather than general
+	purpose registers.
+
+Sat Oct  1 07:01:10 1994  Richard Earnshaw (rwe@pegasus.esprit.ec.org)
+
+	* c-decl.c (shadow_label): Emit an error if the label is already
+	declared at this label scope. 
+
+Sat Oct  1 06:44:58 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (add_insn_{before,after}): Abort if insertion point is
+	a deleted insn.
+	* jump.c (jump_optimize): When deleting a jump, properly set NEXT.
+	(duplicate_loop_exit_test): Don't insert NOTE_INSN_LOOP_VTOP
+	before deleted insn; insert first, then delete.
+
+	* gcc.c: Install omitted hunk from last diff.
+
+Fri Sep 30 18:26:11 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (add_insn_after): Abort if can't find AFTER and it
+	has no NEXT_INSN.
+	(add_insn_before): New function.
+	(emit_{insn,insns,jump_insn,call_insn,barrier,note}_before): Call it.
+
+Fri Sep 30 17:33:41 1994  Douglas Rupp  (drupp@cs.washington.edu)
+
+	* config.sub (windowsnt): Alias for winnt.
+	(winnt): New OS name.
+	* configure (extra_programs): New, like extra_parts.
+	(i[34]86-*-winnt3.1): New configuration.
+	* genattr.c (atoi): Remove declaration.
+	* getpwd.c: #ifdef WINNT, include direct.h.
+	* sdbout.c: Don't include syms.h for winnt.
+	* toplev.c: Don't include times.h for winnt.
+	(get_run_time): Just return zero for winnt.
+	(main): Don't print memory usage for OS/2 or winnt.
+	* cccp.c (main): Use DIR_SEPARATOR if defined.
+	Use "Include" environment variable instead of CPATH for winnt.
+	* gcc.c: Don't include sys/file.h for winnt; use process.h instead.
+	(concat): Now just concats two things; all callers changed.
+	(concat[346]): New functions.
+	(dir_separator_str): New variable.
+	(exec_prefixes, startfile_prefixes, include_prefixes): Renamed
+	from same names without plural; all users changed.
+	(find_a_file, process_command, do_spec_1): Use DIR_SEPARATOR.
+	(find_file, is_directory, main): Likewise.
+	(lookup_compiler): If OS/2, do case-independent search.
+	(fix_argv): New function on winnt.
+	(FIX_ARGV): New macro for some systems; use instead of argv.
+	* i386/unix.h: Treat ALMOST_STDC like __STDC__.
+	(AS2C): New macro.
+	* i386.c (output_387_binary_op): Use AS2C instead of AS2 with
+	null first arg.
+	* config/winnt/config-nt.bat, config/winnt/ld.c: New files.
+	* config/winnt/{[tx]-winnt, config/winnt/top.sed: New files.
+	* config/winnt/winnt.h, config/winnt/xm-winnt: New files.
+	* i386/winnt.h, i386/xm-winnt.h: New files.
+
+Thu Sep 29 19:53:14 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* sparc.md (movdf+3): Handle overlapping registers in define_split.
+
+	* gcc.c (default_compilers): Add %Z to all cpp specs.
+	(n_preprocessor_options, preprocessor_options): New variables.
+	(process_command): Handle -Wp option.
+	(do_spec_1): Handle %Z spec.
+
+	* i960/i960-coff.h: New file.
+	* t-960bare: New file.
+	* config.sub (os): Accept coff as an OS.
+	* configure (i960-*-coff): New configuration.
+
+	* expr.c (result_vector): Use INCOMING_REGNO when !savep instead
+	of when savep.
+	* sparc.md (call): Use struct value pattern is struct size is not
+	equal to zero instead of greater than zero.
+	(call+7, call+8): New patterns for untyped calls.
+	(untyped_call): Revise to emit explicit rtl for all operation.
+	Delete four old patterns that matched the unexpanded untyped_call
+	pattern.
+	(blockage): New pattern.
+	(flush_register_windows): Modify from 0 to 1.
+	(goto_handler_and_restore): Modify from 1 to 2.
+	(flush): Modify from 2 to 3.
+	* sparc.c (sparc_initialize_trampoline): FLUSH is now 3 not 2.
+
+	* calls.c (emit_library_call): For FUNCTION_ARG_PASS_BY_REFERENCE,
+	pass address through force_operand before using it.
+
+	* i960.c (i960_setup_incoming_varargs): Store parameter registers
+	at proper offset in argument block.
+
+Thu Sep 29 16:39:32 1994  Mike Stump  <mrs@cygnus.com>
+
+	* stmt.c (expand_return): We have to be careful of cleanups that can
+	be generated when expanding the return value, as they might otherwise
+	wipe out the return value.
+
+Thu Sep 29 13:35:24 1994  Mike Stump  <mrs@cygnus.com>
+
+	* expr.c (do_jump): Handle cleanups in TRUTH_ANDIF_EXPR and
+	TRUTH_ORIF_EXPR.
+
+Thu Sep 29 13:23:56 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* gcc.c (struct option_map): Sort in alphabetical order.
+	(translate_options): Ignore option once an error occurs.
+	Fix error with reversed 'a' and 'o'.
+	Give error if specified abbreviation is unambiguous.
+
+	* c-typeck.c (convert_for_assignment): When converting object
+	to union, allow converting the constant zero into a pointer
+	member of the union.
+
+Wed Sep 28 19:33:01 1994  Alex T Ramos  (ramos@engr.latech.edu)
+
+	* machmode.def (PSImode): Widens to PDImode.
+	* expr.c (convert_move): Added handling of PDImode conversions.
+
+Wed Sep 28 19:24:17 1994  H.J. Lu  (hjl@nynexst.com)
+
+	* configure: Don't make objc-runtime if cross-compiling gcc.
+	* build-make (FIXINCLUDES): Set to Makefile.in.
+
+Wed Sep 28 19:18:19 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (trampoline_address): Add missing call to 
+	round_trampoline.
+
+Wed Sep 28 18:34:13 1994  Michael Meissner  (meissner@osf.org)
+
+	* config/svr4.h (ESCAPES): Print \v in octal rather than as '\v',
+	since some older versions of gas didn't accept it.
+
+Wed Sep 28 14:29:20 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Comment out loop which handles symbolic links to
+	files.  It appears to not work, and to be unnecessary.
+
+Tue Sep 27 19:27:56 1994  Matthias Pfaller  (leo@marco.de)
+
+	* ns32k.h (ENCODE_SECTION_INFO): Only calls may go through the
+	PLT. All address loads, even function address loads, have to 
+	go through the GOT or function addresses will not be unique.
+
+Tue Sep 27 19:20:12 1994  Paul Eggert  (eggert@twinsun.com)
+
+	* cccp.c (newline_fix, name_newline_fix): Don't treat \r
+	specially here; it only causes bugs.  This undoes the
+	May 14 16:01:13 1990 change to newline_fix and name_newline_fix.
+
+Tue Sep 27 19:02:55 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* m88k.h (ASM_OUTPUT_SOURCE_LINE): Add missing #undef.
+
+Tue Sep 27 18:32:17 1994  William J. Eaton  (wje@hoffman.rstnu.bcm.tmc.edu)
+
+	* function.c (optimize_bit_field): Put any insns made by
+	change_address in front of INSN.
+	(expand_function_end): Don't pass DECL_INITIAL to setjmp_protect
+	if it is error_mark_node.
+
+	* genoutput.c, reload.c (n_occurrences): Make arg int, not char.
+	* objc-act.c (warn_with_method): Likewise.
+
+	* optabs.c (expand_fix): Call emit_library_call_value.
+
+Tue Sep 27 12:39:10 1994  Mike Stump  (mrs@cygnus.com)
+
+	* Makefile.in, libgcc2.c (L_eh): some support routines for C++.
+
+Mon Sep 26 06:45:20 1994  Michael Meissner  (meissner@osf.org)
+
+	* 386/i386.md (adddi3, subdi3): Rewrite to add a clobber of a
+	scratch variable, so that memory/memoroy adds and subtracts can be
+	done using just one scratch register.  Also, don't require op1 to
+	be the same as op0.
+
+Fri Sep 23 19:03:09 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* config/i386/gnu.h (LIB_SPEC): Remove macro.
+
+Fri Sep 23 16:11:26 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/lynx-ng.h (CALL_USED_REGISTERS): Copy definition from
+	i386/lynx.h that makes ebx be a call clobbered register, since
+	some system calls evidently trash it.
+
+Fri Sep 23 15:54:53 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* configure (mips-*riscos*): Changed to mips-*-riscos*.
+	(mips-*-riscos*-*): Deleted.
+
+	* cse.c (invalidate): New parameter FULL_MODE.  All callers
+	changed.
+	(set_nonvarying_address_components): Modify initial comment.
+	(cse_insn): When call invalidate for dest, use the actual dest not
+	inner_dest.
+
+Thu Sep 22 18:56:19 1994  Torbjorn Granlund  (tege@cygnus.com)
+
+	* expmed.c (expand_divmod): Special case for signed CEIL_DIV_EXPR
+	when divisor is power of 2.
+
+Thu Sep 22 12:28:53 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* fixinc.svr4: Fix size_t, ptrdiff_t and wchar_t like fixincludes
+	does.  Use extern inline rather than static inline in byteorder.h.
+
+Thu Sep 22 12:22:03 1994  Steve Dum  (steve_dum@mentorg.com)
+
+	* collect2.c (main): Discard the first executable once we've
+	exploited it.
+
+Thu Sep 22 11:38:34 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Tweaks for LynxOS 2.2.2: accept spaces after # when
+	removing #define void int in curses.h; change prototype of fnctl
+	in fcntl.h to match POSIX.1.
+
+Thu Sep 22 07:18:37 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure: Consistently put specified manufacturer names ahead
+	of entries with wildcard manufacturers.
+
+	* calls.c (emit_call_1): Fix typo in last change.
+
+Wed Sep 21 21:32:56 1994  Chris Smith  (csmith@convex.com)
+
+	* config.guess: Add convex c3* and c4* guesses.
+	* configure: Don't run fixincludes on convex.
+
+Wed Sep 21 15:59:12 1994  Ashley Saulsbury  (ans@sics.se)
+
+	* alpha.h (ASM_FILE_START): Write .set volatile.
+
+Wed Sep 21 14:45:45 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* calls.c (emit_call_1): Properly add a CLOBBER for sp 
+	to CALL_INSN_FUNCTION_USAGE.
+
+	* c-typeck.c (mark_addressable): Give different error if trying
+	to put object with volatile fields into register; don't use DECL_NAME.
+
+Wed Sep 21 14:02:10 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* reload1.c (eliminate_regs): Make test in LOAD_EXTEND_OP case
+	more precise.
+
+Wed Sep 21 11:34:12 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Don't try to remove empty directories until after
+	removing DONE files.
+
+Wed Sep 21 05:52:49 1994  Uwe Seimet  (seimet@chemie.uni-kl.de)
+
+	* m68k/atari.h (NO_{DOLLAR,DOT}_IN_LABEL): Define.
+
+Tue Sep 20 20:06:08 1994  Doug Evans  (dje@cygnus.com)
+
+	* final.c (asm_insn_count): Handle ASM_INPUTs too.
+
+Tue Sep 20 19:32:10 1994  Oliver Kellogg  (okellogg@salyko.cube.net)
+
+	* 1750a.h, 1750a.c, 1750a.md: New files, to use as1750.
+	* 1750a/m1750.inc: File deleted.
+	* 1750a/ms1750.inc: New file.
+
+Tue Sep 20 17:55:50 1994  Hallvard B Furuseth  (hbf@durin.uio.no)
+ 
+	* cccp.c (make_definition): Enable `-D' with macro arguments.
+
+Tue Sep 20 17:49:47 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cexp.y (HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT): New macros.
+	(expression_value): Now HOST_WIDE_INT.
+	(parse_c_expression): Now returns HOST_WIDE_INT.
+	* cccp.c (eval_if_expression): Likewise.
+	(do_if, do_elif): Reflect new return value of functions.
+
+	* alpha.c (mode_mask_operand): Always return a value.
+
+	* function.c (pop_function_context): Clear reg_renumber.
+
+	* gcc.c (process_command): Add new switch, -dumpmachine.
+
+Tue Sep 20 15:57:40 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* sched.c (sched_analyze_insn): Parameter loop_note type changed
+	to rtx, and name changed to loop_notes.  Code adding it to
+	REG_NOTES modified to account for type change.
+	(sched_analyze): Variable loop_note type changed to rtx, and name
+	changed to loop_notes.  Store LOOP_* REG_DEAD notes in it instead
+	of LOOP_* NOTE_LINE_NUMBER.
+	(schedule_block): Pass last not insn to emit_note_before call.
+
+	* iris5.h (ASM_OUTPUT_UNDEF_FUNCTION): Define.
+	(ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
+	(ASM_DECLARE_FUNCTION_SIZE): Define.
+	* mips.c (mips_output_external): Use ASM_OUTPUT_UNDEF_FUNCTION.
+	(mips_output_external_libcall): New function.
+	(mips_asm_file_end): Handle ASM_OUTPUT_UNDEF_FUNCTION.
+	* README.IRIX5: Update.
+
+Tue Sep 20 14:39:37 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/i386.h (output_move_memory): Add declaration.
+	(output_move_pushmem): Ditto.
+
+	* i386/i386.c (output_move_pushmem): New function to handle
+	pushing bytes from memory onto the stack, possibily using
+	temporary registers.
+	(output_move_memory): New function to handle moving bytes from
+	memory to memory via temporary registers.
+
+	* i386/i386.md (movsi insn): If -fpic and the value we are moving
+	is a constant pool address, emit a leal instruction instead of
+	movl.
+	(movsf_push): Allow pushes from memory.
+	(SF, DF, XF, DI pushes): Move most of the code to the common
+	function output_move_pushmem.
+	(SF, DF, XF, DI memory->memory moves): Move most of the code to
+	the common function output_move_memory.
+	(DI move patterns): Combine DI patterns into two, one for pushes,
+	and one for everything else, so that the combiner will combine a
+	load with a store into a memory->memory move.
+	(untyped_call): Replace non-working code with m68k version that
+	emits a regular call, then breaks the parallel moves into separate
+	moves, and then issue a blockage instruction.
+	(blockage): New unspec_volatile insn to block insns from being
+	moved across this point.
+	(untyped_return): Delete.
+	(update_return): Delete.
+
+	* objc/sendmsg.c (get_imp): Allow __inline__ on x86 platforms.
+
+Tue Sep 20 12:21:12 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Handle the case of a symlink to root/* from a
+	subdirectory of another symlink to root/*.
+
+Mon Sep 19 20:30:21 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* fold-const.c (fold): Handle COMPONENT_REFs involving CONSTRUCTORs.
+
+Mon Sep 19 20:25:38 1994  Will Athanasiou  (will@westford.ccur.com)
+
+	* rs6000.md (load sf with update): Fix RTL typo.
+
+Mon Sep 19 08:46:46 1994  Charles M. Hannum  (mycroft@duality.gnu.ai.mit.edu)
+
+	* c-common.c (check_format_info): Enable checking of format
+	specifiers using the `q' (quad) length modifier.
+	(format_char_info): Add `qlen'.
+	(print_char_table, scan_char_table): Add appropriate entries for
+	qlen.
+
+Sat Sep 17 12:48:57 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* stmt.c (mark_seen_cases):  Don't call fatal (or do anything
+	else) if case index out of range.  Warning is given later.
+
+Fri Sep 16 19:22:46 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* global.c (global_alloc): Mark regs assigned to SCRATCH as used by
+	more than just local alloc.
+
+Thu Sep 15 14:36:59 1994  Michael Meissner  <meissner@pasta.osf.org>
+
+	* i386/i386.c (order_regs_for_local_alloc): Instead of using
+	flag_cse_follow_jumps and not leaf_function_p to determine whether
+	to allocate EDX, and ECX before EAX, use whether or not a DImode
+	variable was used in the compilation.  DImode variables seem to
+	cause spill failures if EAX is allocated first, while smaller code
+	is generated if EAX is allocated first, assuming no spill failure.
+
+	* i386/i386.md (SF, DF, XF, and DI moves and pushes): Eliminate
+	special patterns for TARGET_386 that allow direct pushes from
+	memory, and instead allow direct pushes from memory as the last
+	alternative in case no scratch registers could be allocated.
+	(movxf_mem): Remove inadvertent !TARGET_386 condition.
+	(addsi3): Allow generation of lea on 486, since the single
+	instruction lea is at least as fast as the mov and add it
+	replaces.
+	(zero extend patterns): Replace !TARGET_486 with TARGET_386.
+	(bit extracts): Ditto.
+
+	* i386/osfrose.h (LONG_DOUBLE_TYPE_SIZE): Don't redefine to be 64
+	unless NO_LONG_DOUBLE is defined.
+
+Thu Sep 15 13:46:05 1994  Jim Wilson  (wilson@cygnus.com)
+
+ 	* expmed.c (store_split_bit_field): Use number of bits in arg not
+	BITS_PER_WORD to adjust arg in BYTES_BIG_ENDIAN case.
+
+Thu Sep 15 09:19:12 1994  Richard Earnshaw (rwe@pegasus.esprit.ec.org)
+
+	* optabs.c (expand_binop, multi-word shifts): Generate rtl
+	free of conflicts for shifts less than one word.
+
+Thu Sep 15 05:29:58 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* gcc.c: Rework last change so it's done like collect2.c.
+
+	* cse.c (cse_around_loop): Don't invalidate SUBREG unless 
+	it's a SUBREG of a REG.
+
+	* sched.c (sched_analyze_insn): Don't set SCHED_GROUP_P for previous
+	INSN a USE unless it's a USE of a REG.
+
+Wed Sep 14 10:08:58 1994  Michael I Bushnell  <mib@churchy.gnu.ai.mit.edu>
+
+	* gcc.c: Include <sys/errno.h> in case `errno' is really a macro
+	as permitted by ANSI C.  
+
+	* getpwd.c (GUESSPATHLEN): If there is no definition of
+	MAXPATHLEN, then set GUESSPATHLEN to be 100.  (It's used
+	as a starting point, not a limit, so this is harmless.)
+
+Tue Sep 13 15:02:19 1994  Michael Meissner  <meissner@pasta.osf.org>
+
+	* i386/i386.md (movxf_mem): Fix typo with memory/memory moves
+	of XFmode variables, where the store actually did a load, ie, the
+	source and destination operands were fixed.
+	(fixuns_trunc patterns): Revert to the old code.
+	(movdf_push486, movxf_push486, movdi_push486): If an address is
+	based on the stack pointer, account for the stack pointer changing
+	due to the intermediate pushes generated.
+
+Tue Sep 13 14:11:16 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* collect2.c (fatal_perror, fatal, error): Declare all args as char *.
+
+Tue Sep 13 12:40:39 1994  Jeffrey A. Law  (snake.cs.utah.edu)
+
+	* pa.c (emit_move_sequence): Handle secondary FP load/store
+	reloads of the form (subreg (mem (plus (reg) (disp)))).
+	(secondary_reload_class): A secondary register is needed to handle
+	out-of-range FP loads and stores.
+	* pa.md (reload_indf, reload_outdf): New expanders.
+	(reload_insf, reload_outsf): Likewise.
+
+Mon Sep 12 18:15:48 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* t-pa (ADA_CFLAGS): New override.
+	* pa/t-pa-hpux: New file.
+	* configure (hppa*-*-hpux*): Use t-pa-hpux instead of t-libc-ok.
+
+Mon Sep 12 14:52:17 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* function.c (assign_parms): Set RTX_UNCHANGING_P on stack_parm
+	for const parameter before calling move_block_from_reg.
+
+Mon Sep 12 14:27:58 1994  Doug Evans  (dje@cygnus.com)
+
+	* config/fp-bit.c (FLO_union_type): Add packed attribute to `bits'.
+
+Sat Sep 10 09:50:41 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (invalidate_for_call): Properly set IN_TABLE.
+
+Sat Sep 10 06:46:24 1994  Bill Burton  (billb@progress.com)
+
+	* Added improved support for Sequent DYNIX/ptx 1.x and 2.x:
+	* fixinc.ptx: New file.
+	* i386/seq-sysv3.h (HAVE_ATEXIT): No longer defined.
+	* i386/seq2-sysv3.h: New file.
+	* configure (i[34]86-sequent-ptx[12]*): New configurations.
+	(i[34]86-sequent-sysv*, i[34]84-sequent-ptx): Deleted configurations.
+	* config.sub (ptx): New OS; use for Sequent.
+
+Fri Sep  9 21:48:48 1994  Paul Eggert  (eggert@twinsun.com)
+
+	* cccp.c (rescan, handle_directive): Backslash no longer suppresses the
+	specialness of the following char unless -traditional.
+	(rescan): Remove backslash-newline only if at top level, since
+	backslash-newline-space can be encountered during macro processing.
+	(collect_expansion): Remove special hack for \# inside a #define;
+	it's not compatible with the C Standard.
+
+Thu Sep  9 17:36:03 1994  Jason Merrill  (jason@deneb.cygnus.com)
+ 
+	* Utilize OSF/1's limited .init support.
+	* alpha/alpha.h (HAS_INIT_SECTION): Define.
+	(LINK_SPEC): Add '-init __main'.
+	* alpha/osf12.h (LINK_SPEC): Ditto.
+ 
+	* function.c (expand_main_function): Don't call __main if
+	HAS_INIT_SECTION is defined.
+
+Fri Sep  9 16:36:46 1994  Mike Stump  (mrs@cygnus.com)
+
+	* tree.c (decl_function_context): Don't treat C++ member
+	functions of classes declared in a function, as nested functions.
+
+Fri Sep  9 16:10:25 1994  Steve Chamberlain  (sac@jonny.cygnus.com)
+
+	* sh/sh.c (prepare_move_operands): Generate better DI constant 
+	code.
+	(fake_shift): New function.
+	* sh/sh.md (ashlsi3_n, lshrsi3_n): Only recognise if fake_shift
+	enabled.
+	* sh/{lib1funcs.asm, ashlsi3.c, lshrsi3.c, ashrsi3.c} : New files.
+	* sh/t-sh : Build new files.
+
+Fri Sep  9 15:52:54 1994  Hallvard B Furuseth  (h.b.furuseth@usit.uio.no)
+
+	* cccp.c: Correct unprototyped pointer args from `0' to `NULL_PTR'
+
+Fri Sep  9 15:17:52 1994  Matthew Green  (mrg@splode.mame.mu.oz.au)
+
+	* configure (sparc-*-netbsd): New configuration.
+	* sparc/netbsd.h: New file.
+
+Fri Sep  9 15:15:48 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* mips.md (truncdisi2): Change from define_expand to define_insn.
+	(truncdihi2, truncdiqi2): Likewise.
+
+	* sparc.h (SQRTTF2_LIBCALL): Delete.
+	(INIT_TARGET_OPTABS): Define.
+	(INIT_SUBTARGET_OPTABS): Define.
+
+	* stmt.c (check_for_full_enumeration_handling): Cast malloc result
+	to `unsigned char *' not `char *'.
+
+	* dbxout.c (dbxout_symbol_location): Handle error_mark_node in
+	DECL_INITIAL for C++.
+
+	* mips.md (memory): Add missing !r4600 to first define_function_unit.
+
+	* sparc.md (negsi2): Use register_operand not general_operand for
+	output.
+
+Fri Sep  9 14:52:58 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* config/netbsd.h: Add #undef for everything we define; a few were
+	missing.
+
+	* reload.c (find_reloads, case 'p'): Operand is BASE_REG_CLASS.
+
+Fri Sep  9 14:00:28 1994  Mike Collison  (collison@world.std.com)
+
+	* configure (dsp16xx-*): New configuration.
+	* config.sub (dsp16xx): New basic machine.
+	* dsp16xx.c, dsp16xx.md, dsp16xx.h, xm-dsp16xx.h: New files.
+
+Fri Sep  9 12:47:00 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/i386.md (All SF, DF, XF, DI 486 push patterns): Merge the
+	memory and nonmemory push patterns together.
+
+Fri Sep  9 00:53:36 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+
+	* config.sub: Accept i586 like i386.
+	Do not use SCO as a default for i386-*.
+
+Thu Sep  8 18:49:35 1994  Steve Chamberlain  (sac@cygnus.com)
+
+	* config/fp-bit.c (_fpmul_parts):  Perform optimized
+	64bit*64bit multiply correctly.
+	* sh/sh.c (synth_constant): Ensure DI mode constants get their
+	high part zeroed.
+	(add_constant):  Entabled constants are only identical if their
+	sizes are the same.
+
+Thu Sep  8 14:40:31 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* flow.c (mark_used_regs, case REG): Correct typo, use GET_MODE
+	not GET_CODE.
+	* sched.c (attach_deaths): Likewise.
+
+Tue Sep  6 23:33:41 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* tree.c (get_set_constructor_bits, get_set_constructor_words):
+	New functions.  Extract bits or words from SET_TYPE CONSTRUCTOR.
+	* tree.h:  Declare above new functions.
+
+Thu Sep  8 14:02:05 1994  Michael Meissner  (meissner@osf.org)
+
+	* 386/i386.h (TARGET_OPTIONS): New macro to define -mreg-alloc=
+	switch to allow users to override the register allocation order.
+	(OVERRIDE_OPTIONS): Call the function override_options.
+	(REG_ALLOC_ORDER): Define to allocate in the natural order, this
+	is needed for ORDER_REGS_FOR_LOCAL_ALLOC to work.
+	(ORDER_REGS_FOR_LOCAL_ALLOC): Define to call the function
+	order_regs_for_local_alloc.
+	(regclass_map): Move declaration to end of file.
+	(i386_compare_op0, i386_compare_op1): Ditto.
+	(CLASS_LIKELY_SPILLED_P): Define, return 1 for AD_REGS in addition
+	to all of the single register classes, since AD_REGS is only used
+	to allocate EAX:EDX.
+	(override_options, order_regs_for_local_alloc): Add declarations.
+	(hi_reg_name): Add declaration.
+	(qi_reg_name): Ditto.
+	(qi_high_reg_name): Ditto.
+	(i386_reg_alloc_order): Add declaration for TARGET_OPTIONS to use.
+
+	* i386/i386.c (i386_compare_op0, i386_compare_op1): Initialize
+	with NULL_RTX.
+	(i386_reg_alloc_order):  Provide global variable definition.
+	(regs_allocated): Static array to note whether a register is noted
+	via -mreg-alloc=<xxx>.
+	(override_options): Provide checking for registers declared with
+	-mreg-alloc=<xxx>.
+	(order_regs_for_local_alloc): If -mreg-alloc=<xxx> was used,
+	allocate registers mentioned in order, and then allocate all other
+	registers in the normal register order.  If -mreg-alloc=<xxx> was
+	not used, allocate registers in natural order except for non-leaf
+	functions with CSE following jumps, allocate EAX after EDX and
+	ECX, to allow the function return to be CSE'd, and perl 4.036's
+	perly.y to be compiled without aborting due to not being able to
+	find a spill register.
+	(movsf, movdf, movdi): Rewrite all patterns to provide effecient
+	memory to memory moves, including pushes for i386 and i486.  Fixes
+	problems in compiling motif+ without optimization.
+	(swapsf): Add, like swapdf and swapxf.
+	(fixuns_truncsfsi2, fixuns_truncdfsi2): Use general_operand
+	instead of register_operand for define_expand, since the operand
+	is copied to a new pseudo register as part of the expansion.
+	(fix_truncxfdi2, fix_truncdfdi2, fix_truncsfdi2): Rewrite to call
+	the more primitive generator functions instead of knowing how many
+	clobbers of match_scratchs they do.
+
+	* Makefile.in (aux_output.o): Define TARGET_CPU_DEFAULT if
+	specified when compiling aux_output.o to allow the machine C file
+	access to this if it wants it.
+
+Thu Sep  8 07:15:29 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.md (movsi matcher): Merge TARGET_POWER and !TARGET_POWER
+	cases.  Rationalize mnemonics.
+	(movhi and movqi matchers): Likewise.
+	(movsf matcher): Correct length attribute for stfs which no longer
+	includes frsp.
+
+Thu Sep  8 07:06:31 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.h (REGISTER_MOVE_COST): Fix typo in last change.
+
+Wed Sep  7 19:31:52 1994  Paul Eggert  (eggert@twinsun.com)
+
+	* cccp.c (handle_directive): In `#include <xxx>' directives,
+	remove backslash-newline properly.  Don't allow any other newlines.
+
+Wed Sep  7 18:11:29 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.h (REGISTER_MOVE_COST): Moving between special registers
+	is expensive.
+
+	* combine.c (simplify_comparison): Convert comparison to unsigned
+	when stripping off a ZERO_EXTEND.
+
+	* combine.c (simplify_set): Only convert IF_THEN_ELSE to logical
+	expression if mode of object being compared is result mode.
+
+Wed Sep  7 18:09:17 1994  David J. MacKenzie  (djm@geech.gnu.ai.mit.edu)
+
+	* configure: Ignore --help, --version, --program-prefix,
+	--program-suffix, --cache-file, --quiet, --silent.
+
+Wed Sep  7 13:29:50 1994  Doug Evans  (dje@cygnus.com)
+
+	* stmt.c (expand_asm_operands): Move test for misspelled registers
+	higher so all cases caught.
+
+Wed Sep  7 09:54:14 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* configure:  Touch Makefile.ll before appending subdir stuff.
+	(Needed if there are no subdirs.)
+
+Wed Sep  7 11:19:18 1994  Kresten Krab Thorup  (krab@akvavit.next.com)
+
+	* objc/init.c (__objc_init_protocols): Remove assertion.
+	* objc/Object.m (conformsTo:): Make lookup allways happen in
+	the class object.
+
+Tue Sep  6 17:47:39 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* configure:  Rename *-next-ns[23] to *-next-nextstep[23].
+	* config.sub:  Cleanup NeXT support to emit nextstep*.
+
+Tue Sep  6 18:38:02 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads_address): Don't reorder the operands of a
+	PLUS when fixing up index.
+
+Tue Sep  6 18:24:50 1994  Matthias Pfaller  (leo@marco.de)
+
+	* ns32k.md (stackadjust/push peepholes): For the adjust/push/push
+	pattern one offset was wrong.
+	Don't use addr for register and and MEM refs.
+
+Tue Sep  6 11:24:06 1994  Steve Chamberlain  (sac@jonny.cygnus.com)
+
+	* sh/sh.c (push, pop): Generate REG_NOTES.
+	(synth_constant): Correct one of the patterns.
+	(output_file_start): Bump version number.
+	* sh/sh.h (EXIT_IGNORE_STACK): Now 1.
+	* sh/sh.md (adddi3, subdi3): Simplify.
+	(casesi_worker): Use TARGET_BIGTABLE.
+
+Mon Sep  5 12:29:15 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* ginclude/math-68881.h: Change inline functions from static to
+	extern.
+
+	* configure (i[34]86-*-sysv4*): If --with-stabs, set tm_file to
+	i386/sysv4gdb.h.
+	* config/i386/sysv4gdb.h: New file; sets PREFERRED_DEBUGGING_TYPE.
+
+Sun Sep  4 08:40:02 1994  Chris Smith  (csmith@convex.com)
+
+	* convex.h (VTABLE_USES_MASK, VINDEX_MAX, SET_DECL_VINDEX):
+	delete, no longer used.
+	(target_flags): delete cexp.c hack, no longer needed.
+	* convex.md (decr-and-set-cc0): fix HImode to use halfword
+	insns.
+	(cmpqi patterns): fix constraints not to use A regs
+
+Sat Sep  3 14:12:11 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/i386.md (DImode move and push insns): Eliminate movdi
+	wrapper that made a DI temp register to do a memory to memory
+	move because it creates too much register pressure, especially
+	when not optimizing.  On the 486, allocate and use 1-2 scratch
+	registers to push a DImode value.
+
+Fri Sep  2 15:11:59 1994  Jason Merrill  (jason@deneb.cygnus.com)
+ 
+        * c-decl.c (min_precision): Move from here.
+        * c-common.c: To here.
+
+Fri Sep  2 13:16:38 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* tree.h (maximum_field_alignment, set_alignment):  New declarations.
+
+Fri Sep  2 14:25:36 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* config/svr4.h (DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
+	DBX_BLOCKS_FUNCTION_RELATIVE, ASM_IDENTIFY_GCC,
+	ASM_IDENTIFY_GCC_AFTER_SOURCE, ASM_OUTPUT_SOURCE_LINE,
+	DBX_FUNCTION_FIRST): Define.  This adds support for -gstabs for
+	SVR4 configurations.  -gstabs requires gas and gdb.
+	* config/sparc/sol2.h (DBX_DEBUGGING_INFO,
+	DBX_BLOCKS_FUNCTION_RELATIVE, ASM_IDENTIFY_GCC,
+	ASM_IDENTIFY_GCC_AFTER_SOURCE, ASM_OUTPUT_SOURCE_LINE,
+	DBX_FUNCTION_FIRST): Don't define.  Now defined by config/svr4.h.
+	(PREFERRED_DEBUGGING_TYPE): Undefine before defining.
+	* config/sparc/sysv4.h (DBX_DEBUGGING_INFO): Don't bother to
+	undefine before including svr4.h.
+	(ASM_OUTPUT_SOURCE_LINE): Undefine before including svr4.h.
+
+Thu Sep  1 22:02:02 1994  Michael Meissner  (meissner@osf.org)
+
+	* toplev.c (fatal_insn): Move most of the code from
+	fatal_insns_not_found here, and add an argument to give the error
+	message.
+	(fatal_insn_not_found): Call fatal_insn.
+	* rtl.h (fatal_insn, fatal_insn_not_found): Add prototypes.
+	* genextra.c (main): Don't declare fatal_insn_not_found in
+	insn-extract.c.
+	* reload1.c (reload): Call fatal_insn where appropriate to print
+	an error message instead of calling abort.
+	(spill_failure): Ditto.
+	(reload_as_needed): Ditto.
+	(allocate_reload_reg): Ditto.
+	(emit_reload_insns): Ditto.
+
+Thu Sep  1 19:34:26 1994  Jason Merrill  (jason@deneb.cygnus.com)
+ 
+        * tree.c (type_list_equal): If the types of the default arguments
+        differ, the lists do not match.
+ 
+Thu Sep  1 19:29:58 1994  Matthias Pfaller  (leo@marco.de)
+
+	* ns32k.md (stack-adjust/push peepholes): Addresses are
+	moved with "addr", not with "movd".
+
+Thu Sep  1 19:17:55 1994  Paul Eggert  (eggert@twinsun.com)
+
+	* cccp.c (make_definition): Don't dump core when given an
+	unterminated string in a -D option.
+
+Thu Sep  1 19:13:35 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-typeck.c (convert_arguments): Give proper warnings when
+	converting COMPLEX_TYPE; widen check to include all integral types.
+
+Wed Aug 31 20:38:53 1994  Per Bothner  (bothner@spiff.gnu.ai.mit.edu)
+
+	* fixproto:  Define FIX_HEADER (needed by Aug 19 change).
+	Use FIX_HEADER instead of $original_dir/fix-header (twice).
+
+Wed Aug 31 16:56:15 1994  Jason Merrill  (jason@deneb.cygnus.com)
+ 
+        * stmt.c (warn_if_unused_value): Extend special case for casted
+        MODIFY_EXPRs to apply to INIT_EXPRs as well.
+ 
+Wed Aug 31 16:30:09 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* stor-layout.c (set_alignment):  New global.
+	(layout-type):  Add support for SET_TYPE.
+
+	* expmed.c (store_bit_field):  Semi-revert Aug 25 change:
+	Make it apply only for BLKmode, not integral modes.
+
+	* stmt.c (all_cases_count, mark_seen_cases):  New functions.
+	(BITARRAY_TEST, BITARRAY_SET):  New macros.  Used (mainly by
+	Chill) to check all cases are covered (for enums and ranges).
+	(check_for_full_enumeration_handling):  Re-write to use the
+	new functions, now that we have them.
+
+Wed Aug 31 19:19:29 1994  Richard Earnshaw  (rwe@pegasus.esprit.ec.org)
+
+	* combine.c (nonzero_bits, cases DIV, MOD, UDIV, UMOD): Declare
+	op0_maybe_minusp and op1_maybe_minusp as HOST_WIDE_INT.
+
+Wed Aug 31 18:54:54 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expmed.c (store_split_bit_field): Always adjust arg to 
+	extract_fixed_bit_field in BYTES_BIG_ENDIAN case.
+
+Wed Aug 31 02:49:34 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* config/i386/gnu.h (LIB_SPEC): New macro.
+
+Tue Aug 30 16:35:23 1994  Jason Merrill  (jason@deneb.cygnus.com)
+ 
+        * toplev.c (lang_options): Add -W{no-,}reorder.
+ 
+Tue Aug 30 13:55:58 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* combine.c (simplify_comparison, case GEU): Add missing break.
+
+Mon Aug 29 17:50:55 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* vax.md (extv, extzv): Don't use ROTL when field is outside
+	boundaries of a word.
+
+Mon Aug 29 11:43:18 1994  Kresten Krab Thorup  (krab@akvavit.next.com)
+
+	* objc/sendmsg.c (get_imp): Don't inline on 386.
+
+Sun Aug 28 18:56:03 1994  Andrew McCallum (mccallum@cs.rochester.edu)
+
+	* objc/class.c (objc_get_meta_class):  New function.
+
+Sat Aug 27 23:13:53 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/i386.c (legitimate_address_p): If index register is either
+	the arg pointer or the stack pointer, and there is no scale
+	factor, swap with the base register.
+
+	* i386/i386.h (REG_CLASS_CONTENTS): Don't allow the arg pointer
+	register as an index register, since the frame could be omitted,
+	and the stack pointer is not valid as an index.
+
+	* i386/i386.md (mov*, movstrict*): Don't create pushes of memory
+	values when creating insns, let the combiner create a push of a
+	memory value if -m386.  In particular, pushes of byte values was
+	broken because there is no pattern to recognize such a push.
+
+Fri Aug 26 16:03:09 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/i386.h (MASK_*): Add masks for all of the switches.
+	(TARGET_*): Use appropriate MASK_* instead of a number.  Add
+	-mdebug-addr switch to debug GO_IF_LEGITIMATE_ADDRESS,
+	-mno-wide-multiply to turn off widening multiplies, and -mno-move
+	to allow integer move insns to generate direct memory to memory
+	copies, which reload will fix up.  Add TARGET_386 which is not of
+	TARGET_486.
+	(REG_ALLOC_ORDER): Go to the order used in 2.5.8, eax, edx, ecx, ...
+	Add a comment describing the tradeoffs.
+	(REG_OK*): Add strict and non-strict versions of the macros that
+	are always present, and REG_OK_STRICT chooses between the two
+	inner macros.
+	(GO_IF_LEGIMATE_ADDRESS): Move processing to legitimate_address_p
+	function.
+	(LEGITIMIZE_ADDRESS): Move processing to legitimize_address
+	function.
+	(function declarations): Add function declarations for all extern
+	functions in i386.c.
+
+	* i386/i386.c (asm_add): Add support in case adding by 1 or -1 to
+	use inc/dec.
+	(various): Change TARGET_486 -> !TARGET_386.
+	(legitimate_address_p): Move GO_IF_LEGITIMATE_ADDRESS processing
+	here from i386.h.  Combine OSF/rose support from osfrose.h through
+	the use of conditional macros.  Only recognize addresses in
+	canonical formats, code adapted from the i960 port.  Add tracing
+	if -mdebug-addr.
+	(legitimize_address): Move LEGITIMIZE_ADDRESS here from i386.h,
+	and add adaptations from the i960 port.
+	(convert_387_op): Remove unused function.
+
+	* i386/i386.md (various): Remove cast to char * of output
+	functions, since i386.h now declares them all properly.  Change
+	TARGET_486 tests to !TARGET_386 and !TARGET_486 to TARGET_386.
+	(movsi, movstricthi, movhi, movstrictqi, movqi, movdi): Add
+	define_expand wrappers to prevent memory<->memory moves from being
+	generated unless -mno-move is used.  On 486's do not allow push of
+	memory insns to be generated unless -mno-move.
+	(movdi): For movdi patterns, add 2 (clobber (match_scratch...))
+	declarations to allow memory<->memory moves with non-contigous
+	registers, so that reload don't abort if it can't make a DI
+	register.
+	(umulsidi3, mulsidi3): Don't allow pattern if -mno-wide-multiply.
+	(smultsi3_highpart, umultsi3_highpart): Add patterns to make
+	division by constants generate better code.
+
+	* i386/osfrose.h (MASK_*): Use octal to define bitmasks, not hex,
+	for compatibility with i386.h.
+	(NO_IMPLICIT_EXTERN_C): Define.
+	(LONG_DOUBLE_TYPE_SIZE): Explicitly define to be 64 instead of
+	just #undef'ing it.
+	(GO_IF_LEGITIMATE_ADDRESS): Delete, merged with common i386 code.
+	(ASM_FILE_END): Print -fschedule-insns and -fschedule-insns2 in
+	ident string if those options are used.
+	(REAL_LD_FILE_NAME): Delete.
+	(ASM_OUTPUT_DOUBLE): Delete, use the common macros.
+	(ASM_OUTPUT_FLOAT): Ditto.
+	(ASM_OUTPUT_LONG_DOUBLE): Ditto.
+
+Thu Aug 25 17:15:18 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* expmed.c (store_bit_field):  Always store into multi-word
+	bitfields starting with low addresses.  (Old code was
+	incompatible with operand_subword_force on big-endian targets.)
+
+Thu Aug 25 18:31:20 1994  Antti Miettinen  (amiettin@ntc.nokia.com)
+
+	* m68k/lynx.h (CALL_USED_REGS): Add d2 and d3 as call-used.
+
+Thu Aug 25 11:30:44 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (record_jump_cond): Don't do anything if OP0 and OP1
+	are already equivalent.
+
+	* rtlanal.c (may_trap_p, case EXPR_LIST): New case.
+
+	* c-common.c (shorten_compare): Don't issue warning if both
+	operands constants and the signedness doesn't affect the 
+	comparison results.
+
+	* configure: Refine handling and error-checking of positional args.
+
+	* print-tree.c (print_node): Print more flags for types and decls.
+
+	* c-typeck.c (type_lists_compatible_p): Treat transparent unions
+	just like unnamed ones.
+
+Wed Aug 24 19:34:52 1994  Charles Hannum  (mycroft@duality.gnu.ai.mit.edu)
+
+	* configure: Rearrange handling of NetBSD ports to use the standard
+	`cpu-vendor-os' format.
+	* config.sub: Recognize names of NetBSD ports that do not correspond
+	to a CPU name.
+
+Wed Aug 24 18:43:30 1994  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* print-tree.c (print_node_brief, print_node): Use assignment instead
+	of initialization for aggregate local variable REAL_VALUE_TYPE d.
+
+Wed Aug 24 18:28:52 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* config/svr4.h (ASM_OUTPUT_SECTION_NAME): Define.
+	* config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): Output #alloc to
+	set SHF_ALLOC in section flags.
+
+Wed Aug 24 17:45:19 1994  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* c-parse.in (parmlist_2): Give error for function with only
+	ELLIPSIS as an argument.
+
+Wed Aug 24 17:36:22 1994  H.J. Lu (hjl@nynexst.com)
+
+	* i386/linux.h (STARTFILE_SPEC): Add %{static:-static}.
+
+Wed Aug 24 14:34:37 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* calls.c (expand_call): Check for variable-sized return value
+	in proper place.
+
+	* c-typeck.c (default_conversion): Don't substitute constant
+	value if array since will return address.
+
+	* configure (LANG_MAKEFILE): Include lang/Makefile.in in list.
+
+	* alpha.h (EXTRA_CONSTRAINT): Add new letter, `R'.
+	(ENCODE_SECTION_INFO): Don't check TREE_ASM_WRITTEN.
+	(PREDICATE_COSTS): Add call_operand.
+	* alpha.c (call_operand): New function.
+	(output_epilog): Don't set SYMBOL_REF_FLAG of current function.
+	* alpha.md (call): Rework to use macro version of jsr.
+	* osf2.h (LINK_SPEC): Don't define; should never have been.
+
+	* c-typeck.c (push_init_level): Don't blow up if construct_type
+	is null (can happen with missing brace).
+
+Wed Aug 24 10:49:35 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/i386.h (REG_ALLOC_ORDER): Restore previous version which
+	allocates edx first, then ecx, eax, ...  This is because perl
+	doesn't build when the order is eax, ecx, edx...
+
+Tue Aug 23 09:20:16 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure: Restore old behavior of positional arguments.
+	Add new argument, --noguess.
+	config.guess now guesses BUILD, not HOST; HOST defaults from BUILD.
+	Always compare canonical names, not user-specified names.
+	Numerous minor changes in the messages output to make the
+	configuration chosen clearer.
+
+Tue Aug 23 02:01:42 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+
+	* config.sub: Move m68k-ccur handling to proper part of file.
+	Canonicalize cpu type pentium into i486.  (Change it to i586 later.)
+
+Mon Aug 22 18:41:59 1994  Steve Chamberlain  (sac@jonny.cygnus.com)
+
+	* sh/sh.c (find_barrier):  Calculate the size of larger than
+	SI moves correctly.
+	(general_movsrc_operand): Allow label_refs plus const.
+	(sh_function_arg_partial_nregs, sh_function_arg): Pass BLKmode
+	objects in partial regs.
+	* sh.h (TARGET_DEFAULT): Turn off BIGTABLE_BIT.
+	(EXTRA_CONSTRAINT_Q): Allow label_refs plus const.
+	(READONLY_DATA_SECTION_ASM_OP, EXTRA_SECTIONS, rdata_section):
+	Delete rdata section and refs.
+	* sh.md (dimode split): Don't allow a Q constraint source.
+
+Sun Aug 21 23:15:35 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (FUNCTION_ARG): Use indirect calling conventions when
+	TARGET_LONG_CALLS is in effect.
+
+Sat Aug 20 13:31:34 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* sched.c (sched_analyze_insn): Add new parameter loop_note.
+	If loop_note set, then serialize on this insn.
+	(sched_analyze): New variable loop_note.  Pass to
+	sched_analyze_insn.  Set it if we pass a NOTE_INSN_LOOP_BEG or
+	NOTE_INSN_LOOP_END.
+	(unlink_notes): Don't save away NOTE_INSN_LOOP_BEG or
+	NOTE_INSN_LOOP_END notes.
+	(schedule_block): Generalize code that looks for magic REG_DEAD
+	notes and converts them to notes.
+
+Sat Aug 20 12:47:21 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386.h (REG_ALLOC_ORDER): Allocate eax first, then ecx, edx, and
+	then do the nromal allocation order for the remaining registers.
+
+Fri Aug 19 20:14:35 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* tree.c (build_type_variant): Only return existing type if it
+	also has the same TYPE_NAME.
+
+	* irix5.h (NO_IMPLICIT_EXTERN_C): Comment out.
+
+Fri Aug 19 16:41:43 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* fixproto:  Use $FIX_HEADER macro instead of calling
+	fix-header directly in 2nd location.
+
+Fri Aug 19 17:34:19 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (emit_move_insn_1): Never make a no-conflict block.
+
+	* tree.h (struct tree_type): New field transparent_union_flag.
+	(struct tree_decl): New field transparent_union.
+	({DECL,TYPE}_TRANSPARENT_UNION): New macros.
+	* c-common.c (decl_attribute): Handle "transparent_union" attribute.
+	* function.c (assign_parms): If parm is transparent union, use
+	type of first field.
+	* calls.c (expand_call): Likewise.
+	* integrate.c (function_cannot_inline): Don't inline if any
+	parm is a transparent union.
+
+Fri Aug 19 12:01:11 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Canonicalize ${INPUT} to avoid automounter
+	problems.
+
+Fri Aug 19 11:31:24 1994  Kresten Krab Thorup  (krab@akvavit.next.com)
+
+	* objc-act.c (build_selector_translation_table): Reset
+	current_function_decl after hack_function_prototype build it.
+	(build_module_descriptor): Return constructor name from functions
+	decl_rtl. 
+
+Thu Aug 18 17:23:18 1994  Per Bothner  (bothner@spiff.gnu.ai.mit.edu)
+
+	* README.FRESCO:  New file.  Notes about compiling the Fresco
+	toolkit with g++.
+
+Thu Aug 18 14:10:22 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* combine.c (distribute_notes, case REG_UNUSED): Ignore notes when
+	from_insn != i3 only if the notes would remain as REG_UNUSED notes.
+
+Wed Aug 17 18:31:43 1994  Holger Teutsch  (holger@hotbso.rhein-main.de)
+
+	* clipper.h (CLIPPER_ARG_SIZE): Return size in bytes.
+	(FUNCTION_ARG_ADVANCE): Fix argument alignment processing.
+
+Wed Aug 17 18:03:54 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fx80.md (casesi_2): Operand 0 is HImode; add SIGN_EXTEND
+	when adding to pc.
+	(casesi): Operand 0 is HImode.
+	(unnamed PC addition pattern): Add SIGN_EXTEND to add HImode
+	offset to SImode PC.
+	* m68k.md (tablejump): Add SIGN_EXTEND to HImode offset
+	so can add to SImode PC.
+	Likewise for matching pattern.
+	* cse.c (fold_rtx): When folding tablejump, allow LABEL_REF
+	to be in arg0; also allow other arg to be MINUS, not just be
+	equivalent to it.
+
+Mon Aug 15 19:19:11 1994  Paul Eggert  (eggert@twinsun.com)
+
+	* cccp.c (index0): New function.
+	(trigraph_pcp): Use index0 instead of index, so that a null
+	byte doesn't suppress further trigraph preprocessing.
+
+	* cccp.c (rescan, do_ident): Pass more accurate size request
+	to check_expand.
+
+	* cccp.c (main): Don't dump core if given -pcp, -MD, or -MMD
+	without following arg.
+
+Mon Aug 15 17:56:38 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stmt.c (expand_elseif): New function.
+
+Mon Aug 15 14:16:18 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* configure: If the host is guessed, and the target name is a
+	prefix of the host name, then use the target name as the host
+	name.
+
+Mon Aug 15 13:35:24 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+	* m68k/m68k-coff.h: New file.
+
+Sun Aug 14 00:28:15 1994  Andrew McCallum  (mccallum@vein.cs.rochester.edu)
+
+	* objc/encoding.c (objc_sizeof_type): Assign from ROUND,
+	don't increment.  Remove ; after while to fix infinite loop.
+	Add float and double cases.
+	(objc_alignof_type):  Add float and double cases.
+	* objc/selector.c (): Use __objc_selector_names, not
+	__objc_selector_array.
+	(sel_types_match): New function.
+	(sel_get_typed_uid): Use sel_types_match.  Change strcmp to !strcmp.
+
+Sun Aug 14 21:54:29 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL):
+	Define.
+	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
+
+	* pa.c (hppa_expand_prologue): Avoid writing outside the current
+	stack boundary in code to handle large stack frames.
+
+Sun Aug 14 18:55:51 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* unroll.c (loop_iterations): Use PREV_INSN not prev_nonnote_insn.
+
+	* bsd-5.h (ASM_OUTPUT_NEWLINE): Delete.
+	(ASM_OUTPUT_ASCII): Define.
+	* mips-5.h, svr3-5.h, svr4-5.h: Likewise.
+	* mips.h (ASM_OUTPUT_NEWLINE): Delete.
+	(ASM_OUTPUT_ASCII): Don't use ASM_OUTPUT_NEWLINE.
+
+	* va-mips.h (va_start): Add cast to __gnuc_va_list type.
+
+	* flow.c (mark_used_regs): When adding REG_DEAD notes, check for
+	the case where a multiple register hard reg overlaps a register
+	set by the insn.
+	* sched.c (attach_deaths): Likewise.
+	* combine.c (distribute_notes, case REG_DEAD): Add another
+	find_reg_fusage call.
+
+	* unroll.c (calculate_giv_inc): Handle constants loaded with IOR.
+
+Sun Aug 14 16:40:04 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+
+	* cccp.c (skip_if_group): New arg op.  All callers changed.
+	If output_conditionals is true, output text of failed conditionals.
+	(conditional_skip): New arg op.  All callers changed.
+	(main): Handle -ifoutput option.
+
+Sun Aug 14 05:49:29 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* print-tree.c (print_node{,_brief}): Use REAL_VALUE_TO_DECIMAL
+	to print REAL_CST ifdef REAL_ARITHMETIC.
+
+	* reload1.c (count_possible_groups) Pass CLASS as arg and only
+	try to find groups of that class.
+
+	* configure: If config.guess fails and target specified, use as host. 
+	Print a message when making a cross-compiler.
+
+Sat Aug 13 17:12:30 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* configure (sparc-*-sunos4.0*): New configuration.
+	* t-sunos4: Rename file to t-sunos41.
+	* t-sunos40: New file.
+
+Sat Aug 13 13:50:22 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* reload1.c (emit_reload_insns): Handle a secondary input reload
+	which needs to use secondary memory too.
+
+Fri Aug 12 18:53:24 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* mips/mips.c (override_options): If neither -mcpu= nor -mipsN was
+	used, and MIPS_CPU_DEFAULT is defined, set mips_cpu to
+	MIPS_CPU_DEFAULT and set mips_cpu_string to
+	MIPS_CPU_STRING_DEFAULT.
+
+Fri Aug 12 10:54:35 1994  Stan Cox  (coxs@dg-rtp.dg.com)
+
+	* m88k/dgux.h, m88k/dguxbcs.h (ASM_SPEC,CPP_SPEC): 
+	Made -pipe work for -msvr4. Added -D*_TARGET definitions.
+
+	* m88k.c (emit_bcnd): Improved code generated by changing cmp/bbx
+	instruction pair to single bcnd instruction
+
+Fri Aug 12 07:52:20 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (set_nonvarying_address_components): If BASE is CONST_INT,
+	add value to start and set BASE to const0_rtx.
+	(refers_to_mem_p): Don't do it here.
+
+	* function.c (expand_function_start): Add redundant copy to
+	static_chain_incoming_rtx if SMALL_REGISTER_CLASS so inlining
+	works properly.
+	* integrate.c (expand_inline_function): Use single_set when
+	appropriate.
+	Delete insn that sets static_chain_incoming_rtx before its use.
+	(subst_constants): Treat virtual reg as constant.
+
+	* flow.c (mark_used_regs): Only show changes size if one mode is
+	integral.
+	* stupid.c (stupid_mark_refs): Likewise.
+	* combine.c (simplify_rtx, case FLOAT_TRUNCATE): Remove
+	redundant float_truncate.
+	* rs6000.md (movsf): Don't truncate if not register; clean up.
+
+	* c-decl.c (duplicate_decls): Suppress -Wredundant-decls warning
+	if we have already given an error.
+
+Thu Aug 11 18:44:25 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+        * stmt.c (expand_anon_union_decl): Fix up the alignment and mode
+        of the member VAR_DECLs.
+
+Thu Aug 11 13:36:14 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* tree.c (stabilize_reference):  Handle COMPOUND_EXPR.
+
+	* fix-header.c (write_rbrac):  If NO_IMPLICIT_EXTERN_C is defined,
+	add extern "C" { ... } to added prototypes.  (Needed for hpux.)
+
+Thu Aug 11 14:23:59 1994  Paul Eggert  (eggert@twinsun.com)
+
+	* cccp.c (rescan): Fix botches with `-lint': the output buffer
+	pointer was not recached properly, leading to lost output.
+	Also, buffer overrun was possible.
+
+	* cccp.c (dump_defn_1): Skip newlines and strings correctly.
+
+Thu Aug 11 14:13:17 1994  Niklas Hallqvist  (niklas@appli.se)
+
+	* configure (m68k-*-netbsd*): New target, like others.
+
+Thu Aug 11 14:09:23 1994  David Mosberger-Tang  (davidm@piston.cs.arizona.edu)
+
+      * alpha.h (FUNCTION_PROFILER):  Load global pointer from $27, not $26. e
+ 
+Thu Aug 11 13:52:15 1994  Walter Misar  (misar@rbg.informatik.th-darmstadt.de)
+
+	* m68k/hp320.h (NO_DOT_IN_LABEL): Define if HPUX_ASM.
+
+Thu Aug 11 13:12:12 1994  David Mosberger-Tang  (davidm@cs.arizona.edu)
+
+	* alpha.h (BLOCK_PROFILER): Use $26 and $27 instead of $0 and $1.
+
+Thu Aug 11 13:09:36 1994  Antti Miettinen  (amiettin@trshp.trs.ntc.nokia.com)
+
+	* config/lynx.h (ASM_OUTPUT_SOURCE_LINE): Call assemble_name.
+
+Thu Aug 11 12:57:22 1994  Stephen L Moshier  (moshier@world.std.com)
+
+	* expr.c (expand_builtin): Relegate sin and cos to ffast-math.
+
+Thu Aug 11 12:45:20 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* flow.c (find_auto_inc): Ensure that all proposed changes to
+	insns are valid before commiting to the auto-inc.
+
+	* calls.c (expand_call): Ensure we call force_operand on
+	structure_value_addr.
+
+	* configure: Use config.guess to get default value for host,
+	not target.
+
+Thu Aug 11 12:43:24 1994  Robert Wilhelm  (Robert.Wilhelm@physik.tu-muenchen.de)
+
+	* Makefile.in (mostlyclean): Add missing -f.
+
+Tue Aug  9 02:02:07 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.md (default set high): Do not accept function label arithmetic
+	as a valid operand.
+	(default lo_sum): Likewise.
+	* pa.c (hppa_legitimize_address): Do nothing with function label
+	arithmetic.
+	(emit_move_sequence): Split up function label arithmetic so that
+	function's address is loaded first, then constant part is added to
+	the function's address.
+	(is_function_label_plus_const): New function.
+
+Mon Aug  8 19:57:05 1994  Matthias Pfaller  (leo@marco.de)
+
+	* ns32k.md (all patterns that use ins/inss and ext/exts):
+	Disallow use of these instructions when -mnobitfield is
+	specified.
+	* ns32k.h (TARGET_BITFIELD): New macro.
+	(TARGET_SWITCHES): Support for TARGET_BITFIELD.
+	* ns32k/netbsd.h (TARGET_DEFAULT): Added -mnobitfield.
+	(CPP_PREDEFINES): Added -Dpc532.
+	(WCHAR_{TYPE, UNSIGNED, TYPE_SIZE}): Changed to match new definition
+	in NetBSD 1.0.
+	* ns32k.c (print_operand_address): A patch for 2.5.8 ended up at the
+	wrong place.  Moved.
+
+Mon Aug  8 19:42:09 1994  Paul Eggert  (eggert@twinsun.com)
+
+	* cccp.c (create_definition): Warn about `#define a@', since a
+	diagnostic is now required (see ISO TC1's addition to
+	subclause 6.8).  Also warn about `#define is-empty(x) (!x)'.
+
+Mon Aug  8 16:32:37 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fix-header.c (write_rbrac): Set up to use fixed headers
+	if __USE_FIXED_HEADERS__ is defined.
+
+	* reload1.c (emit_reload_insns): Always clear new_spill_reg_store.
+
+	* reload.c (find_reloads): Force reload for paradoxical SUBREG
+	of MEM if BYTES_BIG_ENDIAN.
+
+	* m68k/hp320.h (READONLY_DATA_SECTION): Remove definition.
+
+	* function.c (expand_function_start): Only use
+	static_chain_incoming_rtx once if it is a REG and we 
+	have SMALL_REGISTER_CLASSES.
+
+	* local-alloc.c (find_free_reg): Fix typo in last change.
+	* rs6000.h (CLASS_CANNOT_CHANGE_SIZE): New macro.
+
+Sun Aug  7 08:54:42 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* regs.h (reg_changes_size): Add declaration.
+	* flow.c (reg_changes_size): New variable.
+	(allocate_for_life_analysis): Allocate and initialize it.
+	(mark_used_regs, case SUBREG): Set it.
+	* local-alloc.c (qty_changes_size): New variable.
+	(alloc_qty{,_for_scratch}, update_qty_class): Set it.
+	(local_alloc): Allocate it.
+	(find_free_reg): If CLASS_CANNOT_CHANGE_SIZE, avoid its registers
+	if qty_changes_size.
+	* global.c (find_reg) If CLASS_CANNOT_CHANGE_SIZE, avoid its
+	registers if reg_changes_size.
+	* stupid.c (regs_change_size): New variable.
+	(stupid_life_analysis): Alloc, init and pass it to stupid_free_reg.
+	(stupid_mark_regs): Set it.
+	(stupid_find_reg): New arg, CHANGES_SIZE; avoid regs
+	in CLASS_CANNOT_CHANGE_SIZE if defined and CHANGES_SIZE nonzero.
+	* reload.c (push_reload): Make test in LOAD_EXTEND_OP case more
+	precise; handle CLASS_CANNOT_CHANGE_SIZE.
+	(find_relods): When setting force_reloads, make LOAD_EXTEND_OP
+	case more precise.
+	* alpha.h (CLASS_CANNOT_CHANGE_SIZE): New macro.
+
+	* reload1.c (eliminate_regs, case SUBREG): Add USE of pseudo
+	so we don't improperly delete an output reload.
+
+Fri Aug  5 15:08:39 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+        * expr.c (expand_expr, COND_EXPR case): Use truthvalue_conversion
+        to make the condition for running cleanups acceptable to
+        invert_truthvalue.
+
+Fri Aug  5 12:29:42 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* expmed.c (expand_mult): Accept DImode for synth_mult only if
+	CONST_DOUBLE_HIGH is zero.  Reject negative values for synth_mult
+	if the mode is larger than HOST_BITS_PER_INT.  Don't do the
+	negate_variant if the mode is larger than HOST_BITS_PER_INT.
+
+Fri Aug  5 12:23:17 1994  Stephen L Moshier  (moshier@world.std.com)
+
+	* gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use long instead of
+	HOST_WIDE_INT.
+
+Fri Aug  5 12:18:18 1994  Kaveh R. Ghazi  (ghazi@caip.rutgers.edu)
+
+	* configure: In subdirectories, make link to include directory.
+	* Makefile.in (distclean): Delete it.
+
+Thu Aug  4 17:21:02 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+        * expr.c (defer_cleanups_to): Put back line which was mistakenly
+        removed.
+
+Wed Aug  3 21:37:31 1994  Doug Evans  (dje@cygnus.com)
+
+	* sparc.c (v9 sparc_builtin_saveregs): Save quadword fp regs on
+	16 byte boundaries.  Handle non-zero number of named fp args.
+	* va-sparc.h (v9 va_start): Pass an arg to __builtin_next_arg.
+	(v9 va_arg): Advance over float's.
+
+Wed Aug  3 11:10:32 1994  Ian Lance Taylor  (ian@mole.gnu.ai.mit.edu)
+
+	* fixincludes: Changes for glibc.  In the main loop, don't fix
+	files which contain the string ``This file is part of the GNU C
+	Library''.  Don't include <stdarg.h> in <stdio.h> if <stdio.h>
+	contains the string ``__need___va_list''.  In <stdio.h>, don't
+	change GNUC_VA_LIST to GNUC_DUMMY_VA_LIST.  Don't add extern "C"
+	to <assert.h> if it contains the string ``__BEGIN_DECLS''.  Don't
+	add multiple inclusion protection to <time.h> or <sys/time.h> if
+	they contain the string ``#ifndef''.
+
+Tue Aug  2 18:38:46 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_unary_operation): Clean up some mode and
+	size checks with CONST_DOUBLEs; TRUNCATE should do nothing.
+
+	* combine.c (subst_prev_insn): Remove variable and all uses.
+
+Tue Aug  2 14:42:29 1994  Doug Evans  (dje@canuck.cygnus.com)
+
+	* sparc.h (V9_SWITCHES): Add -mmedlow, -mmedany.
+	(TARGET_OPTIONS): Delete.
+	(CONDITIONAL_REGISTER_USAGE): Don't unfix %g4 if -mmedany.
+	* sparc.c (sparc_code_model): Delete.
+	(sparc_override_options): Code model flags only useable with v9.
+
+	* sparc.h (enum reg_class): New values EXTRA_FP_REGS,
+	GENERAL_OR_EXTRA_FP_REGS for the v9 case.
+	(REG_CLASS_NAMES): Likewise.
+	(REG_CLASS_CONTENTS): Likewise.
+	(REGNO_REG_CLASS): Handle EXTRA_FP_REGS.
+	(REG_CLASS_FROM_LETTER): Likewise, as `e'.
+	Treat `e' like `f' in v8 case.
+	(FP_REG_CLASS_P): New macro.
+	(PREFERRED_RELOAD_CLASS): Use it.
+	(SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
+	SECONDARY_MEMORY_NEEDED, CLASS_MAX_NREGS, REGISTER_MOVE_COST):
+	Likewise.
+	* sparc.md (all DF/TFmode patterns): Use `e' in contraint field
+	instead of `f'.
+
+Mon Aug  1 20:05:51 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* config/i386/gnu.h: New file.
+	* configure (i[34]86-*-gnu*): Deal with this on its own, not like
+	i[34]86-*-mach*.  Use i386/gnu.h and t-libc-ok; set gnu_ld and
+	gas, and disable fixincludes.
+
+Mon Aug  1 19:27:44 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.c (permanent_allocation): When freeing to
+	momentary_function_firstobj, set momentary_firstobj to be
+	the next available location (i.e., momentary_function_firstobj).
+
+Mon Aug  1 18:52:40 1994  Chris Arthur  (csa@gnu.ai.mit.edu)
+
+	* stddef.h: Handle _BSD_WCHAR_T_ like _WCHAR_T_, since
+	at least BSD/386 1.1 uses the former instead of the latter.
+	If _BSD_RUNE_T_ is defined, then define rune_t when we define
+	wchar_t.  Test definedness of _GCC_SIZE_T as well as
+	_GCC_SIZE_T_; likewise for _GCC_PTRDIFF_T and _GCC_WCHAR_T.
+
+Mon Aug  1 05:20:44 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa-ghpux.h, pa-hpux.h (LINK_SPEC): Any -g argument implies
+	static linking.
+
+Sun Jul 31 17:19:37 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+        * integrate.c (expand_inline_function): Don't fall down trying to
+        pass things by invisible reference.
+
+Sun Jul 31 06:56:46 1994  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* cccp.c (my_strerror): New function.
+	(error_from_errno, perror_with_name): Use it.
+
+Sat Jul 30 12:59:01 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold_truthop): Apply masks to constants.
+
+	* print-tree.c (print_node{,_brief}): Use correct printf code to
+	print INTEGER_CST if HOST_WIDE_INT is wider than int.
+
+	* expmed.c ({store,extract}_bit_field): Don't use bitfield insn
+	if OP0 is register and bitfield spans it.
+
+	* m88k.c (arith64_operand): Integer CONST_DOUBLE is not DImode.
+	* sparc.c (reg_or_0_operand): Likewise.
+	* ns32k.c, pa.c (print_operand): Likewise.
+	* fx80.h, gmicro.h, ns32/{genix,merlin}.h (PRINT_OPERAND): Likewise.
+	* m68k/crds.h, m68k/news.h, pyr.h (PRINT_OPERAND): Likewise.
+
+	* alpha.h (CASE_VECTOR_PC_RELATIVE): Define.
+	(ASM_OUTPUT_ADDR_VEC_ELT): Abort.
+	(ASM_OUTPUT_ADDR_DIFF_ELT): Now what used to be previous definition.
+	* alpha.md (tablejump): Rework to look like normal add but verify
+	that label is for next insn and is tablejump; look for ADDR_DIFF_ELT.
+	* cse.c (fold_rtx, case MEM): Surround TRUNCATE for jump table
+	entry with a CONST.
+	(fold_rtx, case '1'): Handle operand 0 of a CONST.
+	(fold_rtx, case PLUS): Handle (const (minus (label_ref) (label_ref))).
+
+Fri Jul 29 19:27:17 1994  Lee Iverson  (leei@ai.sri.com)
+
+	* c-decl.c (finish_decl): Preserve initialializer if iterator.
+
+Fri Jul 29 19:07:23 1994  Hallvard B Furuseth  (h.b.furuseth@usit.uio.no)
+
+	* libgcc2.c: Add declaration of ctime.
+	* bc-emit.c (bc_sym_write): Change %d to %lu in printf calls.
+	* fix-header.c (write_{l,r}brac): Specify return type of int.
+	* tree.c (change_main_variant): Return type now void.
+	* varasm.c (bc_output_constructor): Return type now rtx.
+
+Fri Jul 29 18:33:48 1994  Ken Duda  (kjd@cache.crc.ricoh.com)
+
+	* c-typeck.c (build_unary_op, case *INCREMENT_EXPR):
+	Add size in bytes, not value of sizeof.
+
+Fri Jul 29 17:36:38 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (expand_function_start): Initialize VALUE_ADDRESS.
+
+	* romp.md (tst?f): Use CONST0_RTX instead of incorrect call
+	to immed_real_const_1.
+
+	* expr.c (move_block_to_reg): Do nothing if NREGS == 0.
+
+Fri Jul 29 17:17:18 1994  Tom Tromey  (tromey@busco.lanl.gov)
+
+	* cccp.c (special_symbol, do_xifdef): Don't access value.defn
+	of a T_CONST.
+
+Thu Jul 28 17:19:32 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+        * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Reverse order of execution
+        of constuctor lists.
+        * config/svr3.h (DO_GLOBAL_CTORS_BODY): Ditto.
+
+        * libgcc2.c (__do_global_dtors): Reverse order of execution of
+        destructor lists.
+
+Thu Jul 28 19:56:30 1994  Jim Pendergraft  (jimp@dg-rtp.dg.com)
+
+	* dwarfout.c (output_decl, case FUNCTION_DECL): Corrected
+	and simplified code that determined when to generate
+	varargs or ANSI stdargs variable length parameter list
+	DWARF information.
+
+Thu Jul 28 19:38:57 1994  Andreas Schwab  (schwab@issan.informatik.uni-dortmund.de)
+
+	* m68k.md (extv, extzv): In patterns that will use movb and
+	movw, ensure size is 8 or 16.
+
+Thu Jul 28 19:28:31 1994  David Robinson  (drtr@mail.ast.cam.ac.uk)
+
+	* expr.c (expand_expr, case CONJ_EXPR): Use correct mode for
+	parts of a complex expression.
+
+	* optabs.c (expand_binop, case MULT [complex]) Fix typo.
+
+Thu Jul 28 19:21:38 1994  Uwe Seimet  (seimet@chemie.uni-kl.de)
+
+	* am68k/atari.h (FUNCTION_VALUE): New override.
+
+Thu Jul 28 17:27:38 1994  Paul Eggert  (eggert@twinsun.com)
+
+	* Makefile.in (c-lex.o, distdir-start):
+	Depend on $(srcdir)/c-gperf.h, not c-gperf.h.
+
+Thu Jul 28 15:14:33 1994  Oliver Kellogg  (okellogg@salyko.cube.net)
+
+	* m1750.inc (DNR.M): Add missing macro.
+
+Thu Jul 28 13:02:56 1994  Kresten Krab Thorup  (krab@akvavit)
+
+	* objc/misc.c (__objc_xcalloc): Remove declaration of bzero.
+
+Thu Jul 28 07:29:52 1994  Markus Wild  (mw@eunet.ch)
+
+	* c-common.c (decl_attributes): Correct string check for "format"
+	to include unsigned and signed char.
+
+Thu Jul 28 07:11:36 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (compare_spill_regs): Simplify and return zero if
+	registers are the same.
+
+	* c-decl.c (finish_struct): Don't look at alignment of error_mark_node.
+
+	* combine.c (try_combine): Don't make a MULT if none of the insns
+	in our input had one.
+
+Wed Jul 27 19:06:53 1994  R Bowler  (rbowler@cix.compulink.co.uk)
+
+	* i370/mvs.h (ASM_OUTPUT_ASCII): Fix bug when first character
+	of string constant is single quote.
+
+Wed Jul 27 22:44:32 1994  Jason Merrill  (jason@deneb.cygnus.com)
+  
+        * m68k/next.h: #undef PCC_STATIC_STRUCT_RETURN.
+
+        * alpha/alpha.h: #define NO_IMPLICIT_EXTERN_C.
+
+Wed Jul 27 14:06:37 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expmed.c (expand_mult): Properly set ADD_TARGET for add_variant.
+
+	* alpha.h (INITIAL_ELIMINATION_OFFSET): Properly compute offset
+	between	AP and SP when get_frame_size and
+	current_function_pretend_args_size are not a multiple of 16 bytes.
+
+	* expmed.c (expand_divmod): Don't make REG_NOTE if last insn's
+	destination isn't QUOTIENT.
+
+Tue Jul 26 19:45:54 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.c (expand_expr, case ARRAY_REF): Don't fold L"foo"[2].
+
+Tue Jul 26 14:10:52 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.sub:  Refer to NeXT's operating system as nextstep.
+
+Tue Jul 26 13:50:37 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* c-typeck.c (process_init_element): Do not call push_init_level
+	if the value is error_mark_node.
+
+	* iris5.h (NO_IMPLICIT_EXTERN_C): Define.
+
+Mon Jul 25 00:20:36 1994  Chris Arthur  (csa@gnu.ai.mit.edu)
+
+	* configure (canon_target): add cases to recognize BSD/386
+	specifically, so we can use a tm_file that will cause __bsdi__
+	to get defined (since emacs, among other things, needs it).
+
+	* config/i386/bsd386.h: New.  Use 386bsd.h, and just override
+	CPP_PREDEFINES (add -Dbsdi) and WCHAR stuff.
+
+Sat Jul 23 16:30:12 1994  Kaveh R. Ghazi  (ghazi@caip.rutgers.edu)
+
+	* fixinc.svr4: Change i860 in #if to __i860__, as with other CPUs.
+
+Fri Jul 22 14:33:59 1994  Doug Evans  (dje@cygnus.com)
+
+	* h8300.md (andhi3, iorhi3, xorhi3): Change constraint on
+	operand 2 from `i' to `n'.
+
+Fri Jul 22 09:30:39 1994  DJ Delorie  (dj@ctron.com)
+
+	* configure.bat: move code to config/msdos/* (simplification)
+
+	* config/msdos/configure.bat [new file]: moved most processing
+	here so that as things get more complicated with the language
+	breakouts, the top directory won't get too messy.  Sed script
+	broken out to simplify processing and avoid quoting errors.
+	* config/msdos/top.sed [new file]: sed script to change Makefile.in
+	to Makefile in top directory (currently used for cp directory also)
+	sed commands changed to handle language breakout
+
+	* gcc.c (pexecute): use spawn*() for djgpp to ensure that quotes
+	are properly preserved.  Response file code left for 16-bit
+	compilers, which can't handle the long command lines that gcc
+	may generate.
+
+	* config/i386/go32.h: define NO_IMPLICIT_EXTERN_C.
+
+Thu Jul 21 23:19:03 1994  Steve Chamberlain  (sac@wombat.gnu.ai.mit.edu)
+
+        * sh/sh.h (TARGET_SWITCHES, PACKSTRUCT_BIT, STRUCTURE_SIZE_BOUNDARY):
+        parse and handle new option.
+        (LEGITIMATE_CONSTANT_P): LABEL_REFs are no longer illegal.
+        (WCHAR_TYPE, WCHAR_TYPE_SIZE): New definitions.
+        (HANDLE_PRAGMA): Has return.
+
+        * sh/sh.c (add_function, seen_function): Experimental code to
+        generate bsrs.
+        (handle_pragma): Return final char.
+        (expand_acall): Handle TARGET_BSR.
+        (general_movdst_operand, general_movsrc_operand): Allow ok
+        autoinc/dec.
+        (bsr_operand): New function.
+        (fixit): Need to fix LABEL_REFs.
+
+        * sh/sh.md (addc): Simplify.
+        (adddi3, subdi3, negdi3): Use operand_subword.
+        (subc, negc): New pattern.
+        (shifts): Fix constraints.
+
+Thu Jul 21 17:59:43 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* objc-act.c (build_module_descriptor): Don't set DECL_EXTERNAL on
+	current_function_decl.
+
+	* combine.c (simplify_rtx): For (not (xor X C)) generate new rtx
+	instead of modifying old rtx.
+
+	* c-decl.c (start_function): If old_decl is NULL, then set it to
+	the implicit decl if any.  Delete superfluous test from warn missing
+	prototypes code.  For warn missing declarations code, only warn if
+	previous decl is implicit.
+
+Thu Jul 21 17:47:05 1994  Paul Eggert  (eggert@twinsun.com)
+
+	* fold-const.c (fold): Don't fold X-X to 0 if X is floating point
+	and !flag_fast_math.
+
+Thu Jul 21 02:07:45 1994  Charles Levert  (charles@comm.polymtl.ca)
+
+	* Makefile.in (stmp-multilib): Rework to handle make -n.
+	(stmp-multilib-sub): New target.
+
+Tue Jul 19 23:14:42 1994  Larry Jones  (larry.jones@sdrc.com)
+
+	* configure (i[34]86-*-isc*): Treat isc4 like isc3.
+	Remove references to nonexistant files and add extra_parts
+	when needed.
+	(i[34]86-*-solaris2*): Remove reference to nonexistant
+	t-sco and use extra_parts instead.
+	(i[34]86-*-sysv*, i860-*-sysv3*, m68k-*-sysv3*, m68k-ncr-sysv*):
+	Replace t-svr3 with extra_parts.
+
+Tue Jul 19 20:31:34 1994  Doug Evans  (dje@cygnus.com)
+
+	* configure (find lang subdirs loop): Try to work around an
+	apparent bug in bash 1.12 on linux.
+
+	* Makefile.in (clean): Remove multilib build dirs.
+
+	* h8300.c (print_operand, default case): Handle SFmode regs.
+
+Mon Jul 18 22:02:53 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* sparc.c (call_operand): Use symbolic_operand not CONSTANT_P.
+	(call_operand_address): Likewise.
+	* sparc.md (call*): Use symbolic_operand not immediate_operand.
+	Use 's' constraint not 'i' constraint.
+
+	* toplev.c (rest_of_compilation): Clear DECL_ABSTRACT_ORIGIN if
+	clear DECL_INLINE.
+
+	* global.c (find_reg): Store divide results in temporary variables.
+
+	* gcc.c (process_command): When have -BstageN option, pass include
+	not stageN/../include to preprocessor.
+
+Mon Jul 18 21:58:27 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
+
+	* loop.c (move_movables): Aviod lossage when CALL_INSN_FUNCTION_USAGE
+	is NULL.
+
+Mon Jul 18 20:53:54 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Rework required loop to avoid crash on decstation.
+
+Thu Jul 14 09:42:23 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Version 2.6.0 released.
+
+	* explow.c (force_reg): Don't make a REG_EQUAL note for an insn
+	that doesn't set TEMP.
+
+Wed Jul 13 17:00:35 1994  Torbjorn Granlund  (tege@rtl.cygnus.com)
+
+	* expmed.c (expand_divmod, case CEIL_DIV_EXPR):
+	Handle emit_store_flag returning 0.
+
+Wed Jul 13 16:35:57 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* expr.c (store_field): Set MEM_IN_STRUCT_P on object and
+	blk_object.
+
+Wed Jul 13 08:40:11 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* Makefile.in (distdir-start): Make tmp/ginclude and copy its files.
+	(distdir-finish): Don't use -f Makefile.in.
+	(gcc.xtar.gz): Add --best.
+
+	* fold-const.c (decode_field_reference): Merge operand of
+	a BIT_AND_EXPR with the mask made from the description of the field.
+
+	* fold-const.c (fold, case MULT_EXPR): Remove last change.
+
+Wed Jul 13 07:12:32 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* xm-pa.h, xm-pahpux.h, xm-pahiux.h (USE_C_ALLOCA): Define.
+
+Wed Jul 13 03:30:36 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+        * tree.h (TYPE_NEEDS_CONSTRUCTING): New macro.
+        (tree_type): Add needs_constructing_flag.
+        * function.c (assign_parms): If TYPE_NEEDS_CONSTRUCTING, pass by
+        invisible reference.
+        * calls.c (expand_call): Ditto.
+
+Wed Jul 13 06:49:05 1994  Simon Cooper  (scooper@hardees.rutgers.edu)
+
+	* objc/Object.m: Include stdarg.h before stdio.h.
+
+Tue Jul 12 21:31:59 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* c-decl.c (pushdecl): Don't call lookup_name_current_level_global
+	when traditional.  When doing checks against
+	IDENTIFIER_LIMBO_VALUE, also do check against
+	INDENTIFIER_GLOBAL_VALUE when traditional.
+
+	* final.c (getpwd): Declare.
+
+Tue Jul 12 16:24:10 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (GO_IF_LEGITIMATE_ADDRESS): Only allow immediate addressing
+	using 5 bits to avoid losing with FP loads and stores on page zero.
+
+Tue Jul 12 16:20:09 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.md (ashlsi3, lshrsi3, ashrsi3): Only output low-order five
+	bits for !TARGET_POWER case.
+
+Tue Jul 12 13:06:14 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* combine.c (record_dead_and_set_regs_1): Can only handle SUBREG
+	if the register is smaller or equal to BITS_PER_WORD.
+
+	* sparc/sysv4.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Define.
+
+	* final.c (end_final): Store full path name in .d file not just
+	the filename.
+
+	* README.IRIX5: New file.
+
+Tue Jul 12 10:55:14 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h (CC1_SPEC): If both -pic-extern/-pic-lib and
+	-pic-none, use -pic-extern win, instead of -pic-none.
+
+	* i386/osfelf.h (CC1_SPEC): Ditto.
+
+Tue Jul 12 09:08:06 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads): Don't try to call force_const_mem on
+	a HIGH.
+
+	* fold-const.c (fold, case MULT_EXPR): If arg is an unsigned
+	CEIL_DIV_EXPR, convert to TRUNC_DIV_EXPR of a PLUS_EXPR in some cases.
+
+	* alpha.md (ashldi3): Update pattern for (sign_extend (ashift ..))
+	to match the current canonicalization.
+
+	* explow.c (round_push, allocate_dynamic_stack_space): Avoid
+	using CEIL_DIV_EXPR; add adjustment and use TRUNC_DIV_EXPR instead.
+
+Tue Jul 12 08:12:04 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* dbxout.c (dbxout_source_file): Increment source_label_number outside
+	of macro expansion.
+
+	* arm.c (reversible_cc_register): New function.
+	(final_prescan_insn): Don't try to conditionalize jumps with JUMP_CLOB
+	attribute.
+	* arm.h (PREDICATE_CODES): Add reversible_cc_register.
+	* arm.md (matcher for SFmode inequality comparison): Use cmfe, not cfm.
+	(matchers for {store-flag, not-store-flag, neg-store-flag}): Output
+	if-false instruction first before if-true instruction.
+	(matcher for (AND store-flag x)): Only match if reversible_cc_register.
+	(matcher for (IF-THEN-ELSE reg (NOT reg))): Likewise.
+
+	* arm.h (FRAME_POINTER_REQUIRED): Always true if the function has
+	nonlocal labels.
+	* arm.md ({save,restore}_stack_nonlocal): Delete.
+
+Mon Jul 11 19:29:15 1994  Oliver Kellogg  (okellogg@salyko.cube.net)
+
+	* machmode.def (TQFmode): New mode.
+	* expr.c (convert_move): Add some conversions for TQFmode.
+	* varasm.c (assemble_real): Handle TQFmode output.
+	* config.sub (basic_machine): Add 1750a.
+	* configure (1750a-*-*): New configuration.
+	* 1750a.c, 1750a.h, 1750a.md, m1750a.inc: New files.
+
+Mon Jul 11 18:38:42 1994  Doug Evans  (dje@cygnus.com)
+
+	Add support for the h8/300h cpu.
+	* config/h8300/lib1funcs.asm: New file.
+	* h8300/t-h8300 (CROSS_LIBGCC1): Use libgcc1-asm.a.
+	(LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA, MULTILIB_OPTIONS,
+	MULTILIB_DIRNAMES, LIBGCC, INSTALL_LIBGCC): Define.
+	(fp-bit.c): Build it.
+	* h8300/h8300.h (CPP_PREDEFINES, CPP_SPEC, LIB_SPEC, TARGET_SWITCHES,
+	BITS_PER_WORD, MAX_BITS_PER_WORD, UNITS_PER_WORD, MAX_UNITS_PER_WORD,
+	POINTER_SIZE, PARM_BOUNDARY, BIGGEST_ALIGNMENT,
+	BIGGEST_FIELD_ALIGNMENT, STACK_BOUNDARY, HARD_REGNO_NREGS,
+	HARD_REGNO_MODE_OK, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
+	REGNO_REG_CLASS, PUSH_ROUNDING, FUNCTION_ARG_ADVANCE,
+	TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE,
+	CONSTANT_ADDRESS, MOVE_MAX, Pmode, SIZE_TYPE, PTRDIFF_TYPE):
+	Add h8/300h support.
+	(LINK_SPEC, TARGET_RTL_DUMP, TARGET_H8300, TARGET_H8300H,
+	REAL_ARITHMETIC, SETUP_INCOMING_VARARGS, HAVE_POST_INCREMENT,
+	HAVE_PRE_DECREMENT, MAX_MOVE_MAX, NO_BUILTIN_SIZE_TYPE,
+	NO_BUILTIN_PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE,
+	MAX_WCHAR_TYPE_SIZE, ASM_WORD_OP, INIT_SECTION_ASM_OP,
+	CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, EXTRA_SECTIONS,
+	EXTRA_SECTION_FUNCTIONS, ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR,
+	DO_GLOBAL_CTORS_BODY, DO_GLOBAL_DTORS_BODY, INIT_TARGET_OPTABS):
+	Define.
+	(CAN_DEBUG_WITHOUT_FP, PCC_STATIC_STRUCT_RETURN, STRUCT_VALUE_REGNUM,
+	STRUCT_VALUE_INCOMING, STRUCTURE_SIZE_BOUNDARY): Undefine.
+	(enum reg_class): Add h8/300h support.
+	(emit_a_shift): Declare.
+	(TARGET_DEFAULT): Set default to -mquickcall.
+	(DOUBLE_TYPE_SIZE): Fix at 32.  DFmode support doesn't exist.
+	(CALL_USED_REGISTERS, REG_ALLOC_ORDER): Swap registers 2,3 with 4,5.
+	Registers 0,1 contain function result, allocate after 2,3.
+	(STATIC_CHAIN_REGNUM): Use reg 4.
+	(CONST_OK_FOR_LETTER_P): 'O' is ok_for_bclr, 'P' is small_power_of_two.
+	(FUNCTION_PROFILER, FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): First
+	attempt at an implementation.
+	(CONST_COSTS): Move code into function const_costs.
+	(BRANCH_COST): Set to 0.
+	(NOTICE_UPDATE_CC): Move code into function notice_update_cc.
+	(ASM_FILE_START): Move code into function asm_file_start.
+	(ASM_FILE_END): Move code into function asm_file_end.
+	(ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Use REAL_VALUE_TO_DECIMAL.
+	* h8300/h8300.c (cpu_type, names_extended, names_upper_extended,
+	h8_reg_names, h8_push_ops, h8_pop_ops, h8_mov_ops, h8_push_op,
+	h8_pop_op, h8_mov_op, current_function_anonymous_args, extra_pop,
+	hand_list): New variables.
+	(h8300_init_once, asm_file_start, asm_file_end, ok_for_bclr, o_operand,
+	p_operand, call_insn_operand, jump_address_operand, bit_operand,
+	eq_operator, const_costs, notice_update_cc, bit_operator,
+	nshift_operator, expand_a_shift, get_shift_alg, emit_a_shift,
+	fix_bit_operand): New functions.
+	(shift_alg, shift_type, shift_mode): New enums.
+	(shift_insn): New struct.
+	(shift_n_bits, can_shift): Deleted.
+	(shift_one, rotate_one): New variables.
+	(WORD_REG_USED): New macro (was function word_reg_used).
+	(dosize, function_prologue, function_epilogue, print_operand_address):
+	Add h8/300h support.
+	(small_power_of_two): Renamed from potl8.
+	(potg8): Deleted.
+	(general_operand_src): Fix POST_INC case.
+	(general_operand_dst): Fix PRE_DEC case.
+	(function_arg): 3 regs of args are passed if -mquickcall.
+	4 regs of args are passed to handwritten assembler routines.
+	(print_operand): New cases 'A', 'P', 'S', 'U', 'W', 'b', 'c', 'd', 'g'.
+	Delete case 'O'.  Sort cases.  Add h8/300h support.
+	(do_movsi): Renamed from domovsi.
+	Handle reload_in_progress and reload_completed.
+	(initial_offset): Renamed from io.  Add h8/300h support.
+	* h8300/h8300.md (cpu): New attribute.
+	(attribute length): Add h8/300h support.
+	(attribute cc): New value `cbit'.
+	(all anonymous insns): Give them names.
+	(move insns): Add h8/300h support.
+	(tstqi, tsthi): Use btst insn if able.
+	(arithmetic insns): Add h8/300h support.
+	(boolean insns): Likewise.
+	(negate insns): Likewise.
+	(branch insns): Likewise.
+	(call_value): Use call_insn_operand for operand 1.
+	(shift insns): Completely rewritten.  Add h8/300h support.
+	(zero/sign extension insns): Add h8/300h support.
+	(extv): Deleted.
+	(insv, extzv): Only use for h8/300.
+	(bitfield insns): Completely rewritten.
+	(fancyb*): New insns for speeding up bit accesses.
+
+	* optabs.c (init_optabs): Allow target specific libcalls
+	with INIT_TARGET_OPTABS.
+
+Mon Jul 11 18:32:42 1994  Steve Chamberlain  (sac@cygnus.com)
+
+	* config/fp-bit.c: New file.  Provides simple fp emulation library.
+
+Mon Jul 11 18:27:42 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (libgcc1-asm.a): New target for building libgcc1.a
+	in cross compilers.
+
+Mon Jul 11 17:00:45 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.md (movsi matcher): Add nop for moving special register
+	to itself for !TARGET_POWER.
+	(movhi and movqi matcher): Likewise and add mtjmpr attribute.
+	Separate MQ from CTR and LR target registers for TARGET_POWER.
+
+	* powerpc.h (CPP_SPEC): Fix typo.
+
+Mon Jul 11 16:50:29 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-parse.in (stmt): Don't give more than one error message if a
+	nested `if' has an empty body.
+
+	* a29k.md (movqi): Call loadhi, not loadqi.
+
+Mon Jul 11 16:46:09 1994  Jeffrey A. Law  (law@mole.gnu.ai.mit.edu)
+
+	* pa.h (DEBUGGER_ARG_OFFSET): Define.  If no frame pointer
+	is available, then adjust the offset by the size of the
+	current frame.
+
+Mon Jul 11 16:34:14 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+ 	* configure (*-*-lynxos*): Always run fixincludes, and if not using
+	gas, set tm_file to lynx-ng.h.
+	* config/x-lynx: Always run fixproto.
+	* config/lynx.h, i386/lynx.h, m68k/lynx.h, sparc/lynx.h: Rewrite
+	to work with gas producing coff files.
+	* config/lynx-ng.h, i386/lynx-ng.h, m68k/lynx-ng.h,
+	sparc/lynx-ng.h: New files.
+
+Mon Jul 11 15:16:28 1994  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* make-cc1.com: Compile most of cc1plus in the `cp' subdirectory.
+	* vmsconfig.com: When setting up tm.h, convert "vax/vax.h" into
+	"config-vax.h" rather than "[.config.vax]vax.h" for #include so
+	it will work from [.cp] subdirectory; copy vax.h to config-vax.h
+	as part of configuration setup.  Also, manually include cc1plus
+	in the list of buildable compilers (a temporary measure; it
+	should process cp/Makefile.in like it does for primary makefile).
+
+	* make-cc1.com: Use `=' rather than `:=' when setting up CC,
+	so that `gcc' can be defined as a foreign command if necessary;
+	eliminate `set symbol/scope=noGlobal' for same reason; use `='
+	with all other symbols, for consistency; add explicit .obj
+	extension to some lists of object files passed to the linker;
+	general cleanup of the command text echoed during execution.
+	* make-cccp.com: Revise to be more consistent with make-cc1.com
+	for symbol setup & usage and for echoing command execution.
+
+Mon Jul 11 15:03:23 1994  Charles Hannum  (mycroft@duality.gnu.ai.mit.edu)
+
+	* configure: Recognize m68k-*-netbsd* and i[345]86-*-netbsd*.
+	* cccp.c, collect2.c, gcc.c, protoize.c, cp/g++.c (sys_errlist)
+	[bsd4_4]: Do this for __NetBSD__ also.
+
+Mon Jul 11 14:16:28 1994  Kresten Krab Thorup  (krab@spiff.gnu.ai.mit.edu)
+
+	* mips/mips.h (STRUCT_VALUE): Change definition from `(rtx)0' to
+	just `0' so it is a valid expression for the pre-processor. 
+
+Mon Jul 11 10:54:35 1994  Stan Cox  (coxs@dg-rtp.dg.com)
+
+	* configure (m88k-dg-dguxbcs): New configuration.  m88k-dg-dgux
+	Now builds an elf compiler.  Both targets will create bcs or elf.
+
+	* m88k/dgux.h (ASM_SPEC,STARTFILE_SPEC,LIB_SPEC): svr4 default.
+
+	* m88k/dguxbcs.h (ASM_SPEC,STARTFILE_SPEC,LIB_SPEC): 
+	New target for svr3.
+
+	* m88k/x-dgux, m88k/t-dgux, m88k/x-dguxbcs: 
+	Changed for svr4/svr4/svr3 respectively.
+
+	* m88k/m88k.h (TARGET_SVR3): New target switch.
+
+Wed Jun 29 19:23:27 1994  David Mosberger-Tang  (davidm@piston.cs.arizona.edu)
+  
+  	* alpha.h (LIB_SPEC): If -pg, add -lprof2.
+
+Mon Jul 11 13:17:38 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* combine.c (simplify_set): Only turn IF_THEN_ELSE into AND if
+	MODE_INT.
+
+Sun Jul 10 06:03:12 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (eliminate_regs_in_insn): Handle special case of
+	assignment from hard frame pointer to frame pointer (for
+	nonlocal goto).
+	* function.c (instantiate_virtual_regs_1): Remove last change.
+	* stmt.c (expand_end_bindings): When adjusting FP, set it
+	from hard_frame_pointer_rtx.
+
+	* expr.c (expand_builtin, case BUILT_IN_FSQRT): Don't use
+	asterisk in name of `errno'.
+
+Fri Jul  8 22:07:32 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* stdarg.h: Delete include of <stdarg.h> when not gcc.
+	* varargs.h: Delete include of <varargs.h> when not gcc.
+
+Fri Jul  8 18:45:56 1994  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Copy a0 to d0, not
+	the other way.
+
+Fri Jul  8 17:41:39 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* expr.c (get_inner_unaligned_p): New function.
+	(expand_assignment, expand_expr): Use it.
+
+Fri Jul  8 17:16:25 1994  Doug Evans  (dje@cygnus.com)
+
+	* expmed.c (extract_split_bit_field): Set UNIT to BITS_PER_WORD for
+	register values.
+	(store_split_bit_field): Likewise.  Call operand_subword_force.
+
+Fri Jul  8 13:48:23 1994  Mike Stump  (mrs@cygnus.com)
+
+	* expr.c (target_temp_slot_level): New variable to keep track of
+	the current stack level for temporaries created by TARGET_EXPRs.
+	* expr.h (target_temp_slot_level): Declare it.
+	* expr.c (expand_expr): Add code to maintain the new temporary
+	stack for TARGET_EXPRs to the CLEANUP_POINT_EXPR code and change
+	the allocation of temporaries for TARGET_EXPRs to be from the new
+	stack, so that they may live longer, and only be reused after they
+	are no longer in use.
+	* function.c (assign_stack_temp): KEEP can now also be 2, to
+	indicate allocation from the longer term frontend controlled
+	temporary stack.
+	* function.c (init_function_start): Initialize
+	target_temp_slot_level to zero.
+
+Fri Jul  8 16:52:38 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* combine.c (distribute_notes, REG_DEAD case): When check to see
+	if insn uses register, also call find_regno_fusage.
+
+	* sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Call assign_stack_local
+	if the frame has zero size.
+
+Fri Jul  8 11:46:50 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* varasm.c (record_constant_rtx, force_const_mem): Ensure everything
+	is in saveable_obstack, not current_obstack.
+
+	* combine.c (force_to_mode): OP_MODE must be MODE if MODE and
+	mode of X are of different classes.
+	(nonzero_bits, num_sign_bit_copies): Say nothing known for
+	floating-point modes.
+
+	* function.c (instantiate_virtual_regs_1, case SET):
+	If DEST is virtual_stack_vars_rtx, replace with hardware
+	frame pointer.
+
+	* expr.c (expand_expr, case CONVERT_EXPR): If changing signedness
+	and we have a promoted SUBREG, clear the promotion flag.
+
+	* c-decl.c (finish_decl): Put RTL and other stuff in 
+	permanent_obstack if DECL is.
+
+	* combine.c (gen_unary): Add new arg, OP0_MODE.
+	All callers changed.
+
+Thu Jul  7 19:58:35 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+        * varasm.c (assemble_variable): Do set TREE_ASM_WRITTEN on
+        erroneous incomplete decls.
+
+Thu Jul  7 17:59:46 1994  Joseph Arceneaux  (jla@gnu.ai.mit.edu)
+
+	* configure (m68k-motorola-sysv*): Use mot3300g.h for gas.
+	* m68k/mot3300g.h: New file.
+
+Thu Jul  7 17:42:21 1994  Philippe De Muyter  (phdm@info.ucl.ac.be)
+
+	* m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Fix typo in last change.
+
+Thu Jul  7 17:36:26 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expmed.c (expand_mult_highpart): Build constant forms of CNST1
+	in MODE or WIDE_MODE, as appropriate.
+
+	* optabs.c (expand_binop, case DIV [complex]): Fix typo in last change.
+
+	* alpha.md (reload_inqi): Make operand[2] be TImode and
+	pass register number that differs to unaligned_loadqi.
+	(reload_outqi): Change overlap in temps to unaligned_storeqi.
+	* alpha.c ({un,}aligned_memory_operand): Check against
+	hard_frame_pointer_rtx, not frame_pointer_rtx.
+
+Thu Jul  7 01:39:33 1994  Doug Evans  (dje@cygnus.com)
+
+	* combine.c (make_compound_operation, AND case): Do extraction in
+	desired result mode.
+
+	* flow.c (mark_set_1): Record explicit hard registers in their
+	raw mode.
+	(mark_used_regs): Likewise.
+	* combine.c (distribute_notes): Likewise.
+
+Wed Jul  6 14:45:08 1994  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* longlong.h (vax sdiv_qrnnd): Fix typo.
+
+Wed Jul  6 19:59:12 1994  Mike Stump  (mrs@cygnus.com)
+
+	* expr.c (expand_expr, defer_cleanups_to, expand_cleanups_to): All
+	cleanups have to be protected by interim exception handling code.
+	* stmt.c (expand_decl_cleanup, expand_cleanups): Ditto.
+	* toplev.c (interim_eh_hook): Hook for interim exception handling.
+	* toplev.c (interim_eh): Default implementation for exception
+	handling that does nothing.
+	* toplev.c (main): Set default for interim_eh_hook.
+
+Wed Jul  6 17:56:37 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (output_prolog): Start memory probing with $2.
+
+Wed Jul  6 14:21:14 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* stmt.c (struct nesting): Add new field alt_end_label.
+	(expand_start_loop): Initialize it to zero.
+	(expand_end_loop): Reorder loop if find either a jump to end_label
+	or a jump to alt_end_label.
+	(expand_exit_loop_if_false): Set alt_end_label.
+
+Wed Jul  6 05:07:31 1994  Richard Earnshaw  (rwe11@cl.cam.ac.uk)
+
+	* c-common.c (decl_attributes): If TREE_TYPE for the DECL is updated,
+	then update TYPE as well.
+
+	* longlong.h (arm umul_ppmm): Fix use of uninitialized register. 
+	Eliminate clobbers of hard registers.
+
+Wed Jul  6 03:22:04 1994  Torbjorn Granlund  (tege@rtl.cygnus.com)
+
+	* expmed.c (expand_divmod): Clear out TARGET also if OP1 is a
+	constant, when TARGET == OP0.
+
+Tue Jul  5 18:58:28 1994  Torbjorn Granlund  (tege@rtl.cygnus.com)
+
+	* Makefile.in (c-parse.y): Redirect through tmp file.
+	(objc-parse.y): Likewise.
+	(c-gperf.h): Likewise.
+	(mostlyclean): Delete the new tmp files.
+
+	* expmed.c (expand_divmod): Fix typo setting op1_is_pow2.
+	(expand_divmod): Handle powers-of-two specifically for unsigned
+	CEIL_*_EXPR.
+
+	* longlong.h: Really fix the test for _IBMR2.  Change test of
+	__powerpc__ to _ARCH_PPC.
+
+Tue Jul  5 17:00:19 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (try_combine): Don't check for replacing
+	arg of function here.
+	(can_combine_p): Do it here.
+
+	* expr.c (expand_increment): If pre-incrementing a promoted
+	variable, don't adjust OP0 since the result won't be used.
+
+	* jump.c (duplicate_loop_exit_test): Handle SUBREG in SET_DEST
+	of loop exit test statements.
+
+	* combine.c (try_combine): If I2DEST was used in I2SRC, it isn't
+	unused just because there is no SET for I2 anymore.
+
+Mon Jul  4 11:15:13 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.h (RS6000_OUTPUT_BASENAME): Always call assembler_name
+	and pass the actual symbol name.
+
+	* varasm.c (assemble_name): Call STRIP_NAME_ENCODING.
+
+	* cse.c (canon_hash, exp_equiv_p): Refer to string in SYMBOL_REF
+	with XSTR, not XEXP.
+
+Sat Jul  2 18:53:19 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* mips.md (smuldi3_highpart, smuldi3_highpart_internal,
+	umuldi3_highpart, umuldi3_highpart_internal): New patterns.
+
+	* unroll.c (loop_iterations): Only use REG_EQUAL note value if it
+	is constant.
+
+	* dbxout.c (dbxout_type_methods): Enable debugging info for
+	template classes.
+
+	* c-lex.c (yylex): Reject imaginary numbers when pedantic.
+
+	* c-decl.c (duplicate_decls): When make void* match char*, set
+	DECL_IN_SYSTEM_HEADER.
+
+	* Makefile.in (clean): Delete LIB2FUNCS_EXTRA.
+
+	* alpha.h (FUNCTION_PROFILER, FUNCTION_BLOCK_PROFILER,
+	BLOCK_PROFILER): Use multiple fputs/fprintf calls instead of ANSI
+	C concatenated strings.
+	(PREDICATE_CODES): Add cint8_operand.
+
+	* gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -isystem.
+
+Sat Jul  2 09:34:20 1994  Torbjorn Granlund  (tege@rtl.cygnus.com)
+
+	* expmed.c (expand_divmod): Always return gen_lowpart (mode, ...).
+
+Fri Jul  1 19:28:39 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* reorg.c (make_return_insns): Make sure redirecting a jump to
+	a RETURN insn does not invalidate the delay slots of the jump.
+
+Fri Jul  1 16:32:58 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* longlong.h: (arm umul_ppmm): Fix typos in last change.  Mark
+	hard-coded registers with "%|".
+
+Fri Jul  1 10:08:47 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* toplev.c (compile_file): Pass through static consts and inlines
+	multiple times in case they reference each other.
+
+Fri Jul  1 07:41:19 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
+
+	* longlong.h: Test for _AM29K and _IBMR2, not ___AM29K__
+	and ___IBMR2__.
+	(arm umul_ppmm): New definition.
+	(clipper umul_ppmm, smul_ppmm, __umulsidi3): New definitions.
+	(hppa count_leading_zeros): New definition.
+	(i960 umul_ppmm, __umulsidi3): New definitions.
+	(mc68000 umul_ppmm): Use %. before size suffixes.
+	(mc88110 umul_ppmm, udiv_qrnnd): Rewrite,
+	(mc88000): Get UMUL_TIME and UDIV_TIME right.
+	(mips): Get UMUL_TIME right.
+	(ns32000 umul_ppmm): New definition.
+	(ns32000 udiv_qrnnd): Rename from bogus div_qrnnd, rewrite.
+	(powerpc umul_ppmm, smul_ppmm): New definitions.
+	(_IBMR2/powerpc add_ssaaaa, sub_ddmmss): Improve.
+	(pyr umul_ppmm): Fix typo.
+	(sparc add_ssaaaa, sub_ddmmss): Match constant 0 for all inputs.
+	(vax sdiv_qrnnd): New definition.
+
+	* expmed.c (expand_divmod): Put OP0 in a register when computing
+	remainder, or when OP1 is constant.
+
+Fri Jul  1 06:46:09 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): Don't convert if (foo) x++ into an
+	add of an scc unless X has no side effects and can't trap.
+
+	* c-parse.in (initelt): The equal sign is optional when
+	positioning to a single element of an array.
+
+	* c-typeck.c (push_init_level): If not at "unfilled" position,
+	set constructor_incremental to 0; likewise for range.
+
+	* xm-alpha.h: If GNUC, include alloca.h, else declare alloca.
+
+	* m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): New macro.
+
+	* expmed.c (expand_divmod): Don't set REG_NOTES unless we generated
+	a quotient.
+
+Thu Jun 30 18:25:52 1994  David Edelsohn (edelsohn@npac.syr.edu)
+
+	* gcc.c (do_spec_1, case 'P'): Don't add underscores to macros
+	starting with '_[A-Z]'.
+
+Thu Jun 30 18:16:36 1994  Will Athanasiou  (will@guardian.westford.ccur.com)
+
+	* m68k.md (umulsi3_highpart, smulsi3_highpart): Fix constraint
+	for operand 0 in define_insn.
+
+Thu Jun 30 16:07:33 1994  Kaveh R. Ghazi  (ghazi@noc.rutgers.edu)
+
+	* fixincludes: Put wrappers around <time.h> and <sys/time.h> to
+	avoid multiple inclusion errors on m88k-tektronix-sysv3.
+
+Thu Jun 30 12:08:48 1994  Kresten Krab Thorup  (krab@spiff.gnu.ai.mit.edu)
+
+	* objc-act.c, objc/init.c (OBJC_VERSION): Incremented to 6.
+
+	* objc/sendmsg.c (INVISIBLE_STRUCT_RETURN): New macro.
+	(__objc_block_forward): Declare depending on the above.
+
+	* objc/class.c (objc_next_class):  New function.
+	* objc/objc-api.h (objc_next_class):  New function.
+
+	* objc-act.c (get_proto_encoding, build_typed_selector_reference):
+	New fucnctions. (UTAG_PROTOCOL): New define.
+	(objc_selector_template, flag_typed_selectors): New variables.
+	(objc_init): set flag_typed_selectors if -fgnu-runtime.
+	(synth_module_prologue): Change declaration of
+	_OBJC_SELECTOR_TABLE when flag_typed_selectors is non-null.
+	(build_module_descriptor): Make sure the generated constructor
+	function is declared public.
+	(build_selector): Only cast to SEL when not doing typed selectors.
+	(build_selector_translation_table): Rewrite initialization.
+	(build_tmp_function_decl): Make up new name when called, since it
+	may now be called multiple times.
+	(hack_method_prototype): Use init_function_start to reinit args
+	machinery.  Also set current_function_decl before calling
+	assign_parms.
+	(generate_protocols):  Don't generate encoding twice.
+	(build_selector_template): New function.
+	(build_method_list_template): Generate (void*)0 as first element,
+	not (int)0.
+	(build_message_expr): move the call to build_selector_reference 
+	towards the end, where we have determined the function prototype.
+
+	* objc/Object.h, objc/Object.m (read:, write:, streamVersion:):
+	Un-disable for alpha.  (forward::, performv::): Declare and fix to
+	return retval_t. 
+	* objc/archive.c: Completely rewritten to handle 64 bit longs and
+	pointers. 
+	* objc/class.c (class_pose_as): Rewritten.
+	* objc/encoding.c: use new ROUND macro for alignment rounding.
+	* objc/init.c, objc/selector.c, objc/sendmsg.c: Rewritten to
+	handle new selectors.
+
+Thu Jun 30 07:49:50 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* arm.h (INITIAL_ELIMINATION_OFFSET): Check frame_pointer_needed when
+	eliminating the arg pointer into the stack pointer.
+
+Thu Jun 30 06:25:50 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-common.c (c_build_type_variant): Remove last change; instead,
+	copy TYPE if not in old obstack.
+
+Wed Jun 29 21:51:52 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* toplev.c (lang_options): Add -W{no-,}non-virtual-dtor.
+
+Wed Jun 29 19:23:27 1994  David Mosberger-Tang  (davidm@piston.cs.arizona.edu)
+
+	* final.c (end_final,profile_function): Profiling variables are
+	size of pointer, not int.
+	* alpha.h (LIB_SPEC): If -pg, add -lprof2.
+	(STARTFILE_SPEC, {FUNCTION,BLOCK,FUNCTION_BLOCK}_PROFILER): New macros.
+
+Wed Jun 29 15:52:45 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* loop.c (basic_induction_var, case REG): Allow previous
+	insn to set a SUBREG of X.
+
+	* alpha.c (alpha_sa_size): Round size to 16-byte boundary.
+	(add_long_const): Add new arg, TEMP_REG.
+	(output_{pro,epi}log): Rework to put save area between outgoing
+	args and local variables.
+	* alpha.h (FRAME_POINTER_REGNUM): Now register 63.
+	(HARD_FRAME_POINTER_REGNUM): New macro.
+	(CONDITIONAL_REGISTER_USAGE, REG_CLASS_CONTENTS, REGNO_REG_CLASS):
+	Show register 63 is not an FP register.
+	(REGHNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGISTER_NAMES): Likewise.
+	(ALPHA_ROUND): New macro.
+	(STARTING_FRAME_OFFSET, ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET):
+	Modify to reflect save area between outgoing args and local vars.
+	* alpha.md: Add new pattern for double-add when have
+	reg + frame pointer.
+	Slight changes to all such patterns and add define_splits for them.
+
+	* global.c (global_alloc): Make a more accurate attempt to see
+	if the frame pointer will be used.
+	If it is, show HARD_FRAME_POINTER_REGNUM used if its not
+	the same as FRAME_POINTER_REGNUM.
+	* reload1.c (reload): Can't eliminate if frame pointer needed
+	and TO is stack pointer.
+	Spill HARD_FRAME_POINTER_REGNUM if not FRAME_POINTER_REGNUM
+	and frame pointer is needed.
+	(spill_hard_reg): If CANT_ELIMINATE, set regs_ever_live;
+	no longer done by callers.	
+
+	* a29k.md (movqi): Add missing `DONE'.
+
+Wed Jun 29 15:44:18 1994  Doug Evans  (dje@canuck.cygnus.com)
+
+	* sparc/sparc.h	(CPP_SPEC): Split up v9/non-v9 stuff.
+	Move -Acpu and -Amachine from here.
+	(CPP_PREDEFINES): To here.
+	(NO_BUILTIN_PTRDIFF_TYPE): Undefine.
+	(NO_BUILTIN_SIZE_TYPE): Likewise.
+	(PTRDIFF_TYPE): Split up v9/non-v9 definitions.
+	(SIZE_TYPE): Likewise.
+	* sparc/sp64-elf: (PTRDIFF_TYPE): Remove dependence on POINTER_SIZE.
+	(SIZE_TYPE): Likewise.
+
+Wed Jun 29 15:28:17 1994  Michael Meissner  (meissner@osf.org)
+
+	* cccp.c (collect_expansion): Always put 1 space after the macro
+	expansion in ANSI mode to fix regression from June 24th.
+
+Tue Jun 28 22:41:52 1994  Doug Evans  (dje@cygnus.com)
+
+	* combine.c (simplify_set): Evaluate HAVE_conditional_move at runtime.
+
+Tue Jun 28 20:27:08 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* optab.c (expand_binop): Convert OP0 to mode for library calls.
+
+	Changes to optimize division-by-constants, and make ceil and floor
+	rounding work correctly:
+	* expmed.c (expand_mult): Generalize to call synth_mult also
+	for OP1 - 1.
+	(ceil_log2): New function.
+	(choose_multiplier): New function.
+	(invert_mod2n): New function.
+	(expand_mult_highpart_adjust): New function.
+	(expand_mult_highpart): New function.
+	(EXACT_POWER_OF_2_OR_ZERO_P): New macro.
+	(expand_divmod): Almost completely rewritten.
+	(expand_shift): Don't truncate immediate shift count, it doesn't work
+	for types smaller than int.
+	* expr.h (smul_highpart_optab, umul_highpart_optab): New variables.
+	* genopinit.c (optabs): Add [us]mul_highpart_optab.
+	* optabs.c (smul_highpart_optab, umul_highpart_optab): New variables.
+	(expand_binop): Handle [us]mul_highpart_optab as commutative.
+	(init_optabs): Initialize [us]mul_highpart_optab.
+	* fold-const.c (div_and_round_double): Make it globally accessible.
+	* a29k.md (smulsi3_highpart, umulsi3_highpart): New patterns.
+	* alpha.md (umuldi3_highpart): New expander and matcher.
+	* alpha.c (cint8_operand): New predicate.
+	* m68k.md (umulsi3_highpart, const_umulsi3_highpart):
+	New expander and matcher.
+	(smulsi3_highpart, const_smulsi3_highpart): Likewise.
+
+Tue Jun 28 13:42:10 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* sol2.h (CPP_SPEC): Handle -msupersparc.
+	* sparc.c (cpu_type, sparc_cpu_type): Rename to arch_type and
+	sparc_arch_type.  Fix all users.
+	(supersparc_adjust_cost): New function.
+	* sparc.h (cpu_type, sparc_cpu_type): Rename to arch_type and
+	sparc_arch_type.
+	(CPP_SPEC): Handle -msupersparc.
+	(MASK_SUPERSPARC, TARGET_SUPERSPARC): New macros.
+	(TARGET_SWITCHES): Add -msupersparc and -mcypress.
+	(ADJUST_COST): New macro.
+	* sparc.md (cpu attribute): Rename to arch attribute.  Add a new
+	cpu attribute.  Fix all users.
+	(type attribute): Add ialu, shift, imul, fpdivs, and fpdivd.
+	Delete fpdiv.
+	(function units): Add Cypress and Supersparc versions of each.
+	(addsi3, subsi3, andsi3, iorsi3, xorsi3): Add ialu type attribute.
+	(mulsi3): Add imul type attribute.
+	(divtf3, divdf3): Use fpdivd not fpdiv type attribute.
+	(divsf3); Use fpdivs not fpdiv type attribute.
+	(ashlsi3, ashrsi3, lshrsi3): Add shift type attribute.
+
+	* i960.md (andsi3+6): Replace bad clrbit pattern with two working
+	ones.
+
+Tue Jun 28 13:31:31 1994  Uwe Seimet  (seimet@iris1.chemie.uni-kl.de)
+
+	* configure (m68k-atari-sysv4*): New configuration.
+	* m68k/atari.h, m68k/xm-atari.h: New files.
+
+Tue Jun 28 12:41:32 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.md (define_split for (plus (reg) (large_constant))): Treat
+	large_constant as signed.
+
+Tue Jun 28 05:46:55 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (eliminate_regs_in_insn): When checking for moves
+	and adds, use single_set.
+
+	* reload1.c (reloads_conflict): Handle R1_TYPE of RELOAD_OTHER.
+
+	* expr.c (do_jump, case BIT_AND_EXPR): Only narrow to a type
+	that corresponds to a mode.
+
+Tue Jun 28 05:41:29 1994  Will R. Athanasiou (will@westford.ccur.com)
+
+	* rs6000.h (MEMORY_MOVE_COST): Make processor-dependent.
+	* rs6000.md (movsf): Emit frsp if storing to memory and not PowerPC.
+	(movsf matcher): Remove explicit frsp.
+	(store sf with update): Likewise.
+	* rs6000.c: Include ctype.h.
+
+Tue Jun 28 05:40:44 1994  Mike Collison  (collison@chianti.sw.stratus.com)
+
+	* real.c: Treat HFmode like SFmode, for now.
+
+Mon Jun 27 19:16:49 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* optabs.c (expand_binop, multi-words shifts and rotates):
+	Fix errors in last change.
+
+Mon Jun 27 11:29:18 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* arm.c: Include "expr.h".
+	(arm_fpu): New variable.
+	(arm_gen_movstrqi): Fix typo.
+	* arm.h: (enum floating_point_type): New enumeration type.
+	(arm_fpu): New declaration.
+	* arm.md: (function_unit fpa): Add more accurate scheduling
+	information.
+	(all floating point patterns): Add more detailed instruction type
+	information to attributes.
+	* riscix.h: (STARTFILE_SPEC,SIZE_TYPE,PTRDIFF_TYPE): Fix typos.
+	(ASM_FINAL_SPEC): Only reject -mbsd and -mxopen when -pedantic.
+
+Sun Jun 26 05:37:26 1994  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* toplev.c (v_message_with_decl): Avoid fwrite for stderr; mixing
+	it with fprintf and fputs can cause strange results under VMS.
+
+Sat Jun 25 06:07:56 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* combine.c (distribute_notes, case REG_DEAD): If a call uses a
+	hard reg, then this is where it dies.
+
+Fri Jun 24 19:09:33 1994  Chip Salzenberg  (chip@fin.uucp)
+
+	* cccp.c (create_definition): Eliminate whitespace before and
+	after macro definitions.
+
+Fri Jun 24 16:19:27 1994  Philippe De Muyter  (phdm@info.ucl.ac.be)
+
+	* c-decl.c (lang_decode_option): Set warn_bad_function_cast
+	for -Wbad-function-cast.
+	* c-typeck.c (build_c_cast): Issue a warning for non-matching cast
+	from a function call (like malloc without proto).
+	* c-tree.h: Declare warn_bad_function_cast.
+	* toplev.c (lang_options): Add -W[no]-bad-function-cast.
+
+Fri Jun 24 16:09:12 1994  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* vax.h (ASM_IDENTIFY_LANGUAGE): New macro.
+
+Fri Jun 24 15:36:37 1994  Richard Earnshaw  (rwe11@cl.cam.ac.uk)
+
+	* jump.c (jump_optimize): If we reverse "if (foo) bar else break;"
+	and there follows a NOTE_INSN_LOOP_END, move the note before "bar".
+
+	* arm.md (movstrsi): Delete.
+	(movstrqi): New expand.
+	* arm.h (arm_gen_movstrqi): New function.
+
+Fri Jun 24 14:43:46 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.c (alpha_builtin_saveregs): Fix typo in computing value
+	for __base.
+
+	* vax.md (zero_extract patterns): Don't allow constants in
+	the first operand of ZERO_EXTRACT since the recognizer
+	function forces them to match the mode of the match_operand.
+
+	* c-typeck.c (decl_constant_value): Test for const and
+	not iterator.
+	(default_conversion, digest_init): Remove redundant checks
+	before calling decl_constant_value.
+	(convert_for_assignment): See if RHS has a constant value.
+
+	* m68k.md (ashrsi3, lshrsh3): Remove patterns using bfext[su].
+
+	* reg-stack.c (goto_block_pat): Ignore undefined label.
+
+Thu Jun 23 22:07:42 1994  Doug Evans  (dje@cygnus.com)
+
+	* sparc/sp64-elf.h (LINK_SPEC): Fix typo.
+	(PTRDIFF_TYPE): Likewise.
+
+Thu Jun 23 19:15:36 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* tree.h (TREE_SYMBOL_REFERENCED): New macro.
+	* varasm.c (assemble_name): Set TREE_SYMBOL_REFERENCED on the
+	identifier for `name'.
+	* toplev.c (compile_file): Use TREE_SYMBOL_REFERENCED instead of
+	TREE_USED and TREE_ADDRESSABLE where appropriate.
+
+Thu Jun 23 19:06:05 1994  Randy Wright  (rwright@dhostwo.convex.com)
+
+	* cse.c (simplify_unary_operation, case UNSIGNED_FLOAT): Add
+	missing cast to unsigned.
+
+Thu Jun 23 19:00:18 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.md (fix_truncdfsi2, movsf, movdi): Use assign_stack_temp.
+	(mulsidi3): Add earlyclobber constraint modifier to PowerPC
+	version and !TARGET_POWERPC64 to final condition.
+
+	* rs6000.h (CPP_PREDEFINES): Define _POWER (alias for _IBMR2).
+	(CPP_SPEC): New macro.
+	* powerpc.h (ASM_SPEC): Use PowerPC mode, not 601 mode.
+	(CPP_SPEC): New macro.
+	(TARGET_DEFAULT): Generate pure PowerPC code, not 601-specific.
+
+Thu Jun 23 18:09:23 1994  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* vax.h (CPP_PREDEFINES): Add `__vax__'.
+	* vax/vms.h (CPP_PREDEFINES): Add `__vax__', `__vms__', and `__VMS__';
+	update __GNUC_MINOR__ to 6.
+
+Thu Jun 23 17:59:41 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* toplev.c (compile_file): Don't try to write function if we
+	didn't save insns for it.
+
+	* reload.c (find_reloads): Don't rejecting non-const due to value
+	of PREFERRED_RELOAD_CLASS if no regs were valid for alternative.
+
+Thu Jun 23 17:45:55 1994  Matthias Pfaller  (leo@marco.de)
+
+	* ns32k.c (output_move_double): If the dest is register pair and both
+	regs are used in src address, use ADDR to compute src address, not
+	ADDD, which throws away scaled index.
+
+Thu Jun 23 17:40:06 1994  Craig Burley  (burley@gnu.ai.mit.edu)
+
+	* c-decl.c (clear_binding_level): Add missing fields in initializer.
+	(c_decode_option): Correct misspelling of -fno-dollars-in-identifiers.
+
+Thu Jun 23 13:47:23 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Fix return type of sbrk in <unistd.h> on Alpha
+	OSF/1 V2.0.  Also, redirect grep errors to /dev/null in <assert.h>
+	fix.
+
+Thu Jun 23 12:08:23 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* arm.c: Include tree.h.
+	(const_ok_for_arm): Add fast return for 0 or just one non-zero bit.
+	(const_ok_for_op, arm_split_constant): New functions.
+	(arm_rtx_costs, reg_or_int_operand): New functions.
+	(shift_operator): Accept ROTATERT.
+	(multi_register_push): New function.
+	(shift_op): Don't abort if a constant is outside the acceptable range,
+	but convert the whole shift expression into something legal.  If the
+	shift is zero, then return NULL.
+	(output_return_instruction): Output a call to abort if the function is
+	volatile.
+	(arm_volatile_func): New function.
+	(get_prologue_size): Remove all adjustments for insns that are now
+	output as rtx.
+	(output_func_prologue): Remove all code that outputs instructions,
+	just print a few comments.
+	(output_func_epilogue): Output a call to abort if a volatile function
+	tries to return.
+	(emit_multi_reg_push): New function.
+	(arm_expand_prologue): New function.  Don't bother to push call-saved
+	regs if we will never return.
+	(arm_print_operand, case 'S'): If shift_op returns NULL, then no shift
+	is required.
+	* arm.h (TARGET_WHEN_DEBUGGING): Delete.
+	(MODES_TIEABLE_P): All modes of the same class are tieable.
+	(CONST_OK_FOR_LETTER_P): Add 'M' for constants valid in a shift.
+	(FUNCTION_PROFILER): Don't call arm_increase_location.
+	(INITIAL_ELIMINATION_OFFSET): Call saved regs are no-longer pushed for
+	functions that don't return.
+	(LEGITIMIZE_ADDRESS): Push constants that will never be legitimate -- 
+	symbols and labels -- into registers.  Handle DImode better.
+	(DEFAULT_SIGNED_CHAR): Use unsigned unless already defined.
+	(RTX_COSTS): Call arm_rtx_costs.
+	(ADDRESS_COST): Since most operations have the same rtx cost, make the
+	more complex addresses cheaper.
+	(PREDICATE_CODES): Add ROTATERT to shift_operator; and new predicates
+	for reg_or_int_operand and multi_register_push.
+	(DBX_CONTIN_LENGTH): Only define if not already done.
+	(PRINT_OPERAND_ADDRESS): Let arm_print operand output the ", " for
+	shifts.
+	* arm.md (addsi3, subsi3, andsi3, iorsi3, ashlsi3, ashrsi3, lshrsi3,
+	rotrsi3): Rewrite as expand patterns.
+	(rotlsi3): New expand.
+	(matchers, and split patterns for above): New.
+	(all patterns with shifts): Let arm_print_operand output the ", "
+	before a shift if it is needed.
+	(zero_extendqihi2): Delete.
+	(zero_extendqisi2): Expand to (and ...) if not memory.
+	(movsi): Call arm_split_constant to generate a constant.
+	(movqi): Only force a MEM into a register if not reloading.
+	(movsf, movdf): If loading a non-immediate floating point value, or
+	loading and floating point immediate into integer regs, push the
+	constant straight into the pool.
+	(movdf): Get rid of the scratch register.
+	(reload_outdf): Rewrite to expand to the two required insns.
+	(matcher for movdf): Remove alternative that used scratch register for
+	storing.
+	(movxf): rewrite as expand.
+	(matcher for movxf): Recognize even when XFmode code is disabled, so
+	that prologue insns can be generated.
+	(Matcher for reversed conditional jump): Don't match if the mode of the
+	CC register is not reversible.
+	(prologue): New expand.
+	(matcher for multi_register_push insn): New.
+	* riscix.h: Delete some dead code.
+	(STARTFILE_SPEC): Look in the correct places for start files.
+	(LIB_SPEC): Define.
+	(LINK_SPEC): Define.
+	(TARGET_WHEN_DEBUGGING): Delete.
+	(DEFAULT_SIGNED_CHAR): Set to unsigned.
+	(SIZE_TYPE, PTRDIFF_TYPE, TARGET_EDOM): Define.
+	* rix-gas.h (DBX_CONTIN_LENGTH): Set to 80.
+	(DEFAULT_GDB_EXTENSIONS, DBX_NO_XREFS): Don't try to pander to dbx, it
+	is just to broken to use.
+
+Wed Jun 22 20:13:03 1994  Will Athanasiou  (will@westford.ccur.com)
+
+	* configure (m68k-ccur-rtu): New configuration.
+	* config.sub (m68k-ccur): New system.
+	* protoize.c: Include <dirent.h>, not <sys/dir.h> on Concurrent.
+	* ccur-GAS.h, x-ccur: New files.
+
+Wed Jun 22 18:49:17 1994  Walter Misar  (misar@rbg.informatik.th-darmstadt.de)
+
+	* m68k/hp320.h (LINK_SPEC): New macro.
+
+Wed Jun 22 18:43:51 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* configure: For target alpha-*-*, if using gas, set
+	target_cpu_default to 4.
+	* config/alpha/alpha.h (TARGET_SWITCHES): Include
+	TARGET_CPU_DEFAULT in default value.
+	(TARGET_CPU_DEFAULT): Define as 0 if not already defined.
+	(ASM_FINAL_SPEC): Include TARGET_CPU_DEFAULT in test for which
+	version to define.
+
+Wed Jun 22 18:15:41 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* loop.c (strength_reduce): When replacing DEST_ADDR givs, make
+	sure resulting insn is valid.
+
+	* optabs.c (expand_binop): New variable next_methods; pass to
+	most recursive calls when trying to avoid libcalls.
+	Always check for a return value of zero in recursive calls.
+	(expand_float): Ensure TARGET has proper mode.
+	Pass OPTAB_LIB_WIDEN to expand_binop calls.
+
+Tue Jun 21 14:35:38 1994  Doug Evans  (dje@cygnus.com)
+
+	* cccp.c (skip_to_end_of_comment): Catch unterminated comments.
+
+Sat Jun 18 17:49:41 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* fixproto: Move hacking of assert.h from here.
+	* fixincludes: To here.
+
+Sat Jun 18 16:42:31 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* c-typeck.c (process_init_element): For fieldtype, don't access
+	TYPE_MAIN_VARIANT field if the type is error_mark_node.
+
+	* jump.c (duplicate_loop_exit_test): Initialize copy to zero.
+	Emit jump to end lable if copy is still zero.
+
+	* mips.md (truncdisi2): Change from define_insn to define_expand.
+	(truncdihi2, truncdiqi2, extendsidi2): Likewise.
+	(extendsidi2_internal): New pattern.
+
+	* loop.c (move_movables): Copy CALL_INSN_FUNCTION_USAGE field.
+
+	* sdbout.c (sdbout_one_type): Use DECL_ASSEMBLER_NAME if
+	DECL_LANG_SPECIFIC is set.  Use DECL_ASSEMBLER_NAME not
+	DECL_NAME for child_type that is a template type.
+	(sdbout_symbol): Use DECL_ASSEMBLER_NAME if DECL_LANG_SPECIFIC
+	is set.
+
+Sat Jun 18 16:39:03 1994  Kung Hsu  (kung@mexican.cygnus.com)
+
+	* dbxout.c (dbxout_symbol): Replace DECL_IGNORED_P with
+	TYPE_DECL_SUPPRESS_DEBUG.
+
+Sat Jun 18 10:21:44 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expmed.c (expand_shift): Don't try extzv for lshr.
+
+	* vax.md (lshrsi3): New define_expand.
+
+	* optabs.c: Pass NULL_RTX for TARGET in calls to expand_{un,bin}op.
+	(expand_float): Use expand_shift instead of expand_binop.
+
+Fri Jun 17 15:05:58 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Correct math.h on Lynx handling again.
+
+Fri Jun 17 10:52:41 1994  Richard Earnshaw  (rwe11@cl.cam.ac.uk)
+
+	* cse.c (simplify_binary_operation, case MINUS): Check mode of op0,
+	instead of op1, before calling plus_constant.
+
+Fri Jun 17 01:42:37 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (DEBUGGER_AUTO_OFFSET): Define.  If no frame pointer
+	is available, then adjust the offset by the size of the current
+	frame.
+
+Thu Jun 16 16:35:12 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* tree.h (DECL_DEFER_OUTPUT): New macro.
+	* toplev.c (compile_file): Unset DECL_DEFER_OUTPUT on decls
+	considered at end of file.
+	* integrate.c (output_inline_function): Unset DECL_DEFER_OUTPUT on
+	fndecl.
+	* toplev.c (rest_of_compilation): Also postpone compilation of
+	inlines with DECL_DEFER_OUTPUT set.
+	(compile_file): Always emit postponed inlines if
+	-fkeep-inline-functions.
+
+Thu Jun 16 11:00:14 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Fix argument type for ffs in <string.h> on Alpha
+	OSF/1 V2.0.
+
+Thu Jun 16 06:49:03 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload_reg_free_p, case RELOAD_OTHER): Allowed
+	to conflict with RELOAD_FOR_OTHER_ADDRESS.
+
+	* cse.c (set_nonvarying_address_components): Rework and also
+	handle an AND used for non-aligned accesses.
+
+Thu Jun 16 06:36:49 1994  Chip Salzenberg  (chip@fin.uucp)
+
+	* i386.h (REG_ALLOC_ORDER): Prefer registers listed in
+	CALL_USED_REGISTERS.
+
+Wed Jun 15 20:45:14 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* tree.h (TREE_NO_UNUSED_WARNING): Note that this can be applied
+	to COMPOUND_EXPRs, too.
+
+	* stmt.c (warn_if_unused_value): Handle TREE_NO_UNUSED_WARNING for
+	COMPOUND_EXPRs, too.
+
+Wed Jun 15 20:35:21 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.md (divsi3): Fix divide by 2^N with compare RTL.
+
+	* rs6000.md (maxsf3, minsf3, maxdf3, mindf3): Fix predicate of
+	define_split.
+	(muldi3): Fix predicate.
+	(movdf matcher): Allow update and indexed for lfd instruction.
+
+Wed Jun 15 19:24:23 1994  Doug Evans  (dje@cygnus.com)
+
+	* dbxout.c (dbxout_type): Fix call to bzero.
+
+Wed Jun 15 19:20:34 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (simplify_unary_operation): Fix typo in last change.
+
+Wed Jun 15 15:20:54 1994  Per Bothner  (bothner@cygnus.com)
+
+	* dbxout.c (dbxout_range_type):  Handle the case that an array
+	range is neither an integer nor a sub-range.  (In Pascal or
+	Chill it could be a Boolean, character, or enumeral type.)
+
+Wed Jun 15 04:00:42 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* genmultilib: New shell script to generate multiple library
+	information.
+	* Makefile.in (multilib.h, stmp-multilib, install-multilib): New
+	targets.
+	(gcc.o): Depend on multilib.h.
+	(clean): Remove multilib.h and tmpmultilib*.
+	* gcc.c: Include multilib.h.
+	(print_multi_lib, print_multi_directory, multilib_select,
+	multilib_dir): New static variables.
+	(option_map): Added --print-multi-lib and --print-multi-directory.
+	(set_spec): Get multilib_select from specs file.
+	(process_command): Dump multilib_select into specs file.  Handle
+	-print-multi-lib and -print-multi-directory.
+	(do_spec_1): Try multilib_dir for %D case.
+	(find_file): Try multilib_dir.
+	(main): Call set_multilib_dir.  Handle print_multi_lib and
+	print_multi_directory.
+	(used_arg, set_multilib_dir, print_multilib_info): New functions.
+	* configure (sparc-*-sunos4*): Use target fragment sparc/t-sunos4.
+	* sparc/t-sunos4: New file.
+
+Wed Jun 15 03:54:32 1994  Doug Evans  (dje@cygnus.com)
+
+	Add support for the SPARC V9 cpu.
+	* configure (sparc64-*-aout): New target.
+	(sparc64-*-elf): New target.
+	* config.sub (sparc64): New cpu.
+	(aout, elf): New os's.
+	* genconfig.c (main): Allow targets to override HAVE_conditional_move.
+	* jump.c (jump_optimize): Use it at run-time.
+	* sparc/t-sp64: New file.
+	* sparc/sp64-aout.h: New file.
+	* sparc/sp64-elf.h: New file.
+	* sparc/sysv4.h (ASM_OUTPUT_CASE_LABEL): Handle 64 bit pointers.
+	* sparc/sparc.h (cpu_type): New enum.
+	(CPP_PREDEFINES,CPP_SPEC): Add v9 support.
+	(NO_BUILTIN_PTRDIFF_TYPE, NO_BUILTIN_SIZE_TYPE, MAX_WCHAR_TYPE_SIZE,
+	SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE,
+	FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE, MAX_INT_TYPE_SIZE,
+	MAX_LONG_TYPE_SIZE): Define.
+	(PTRDIFF_TYPE, SIZE_TYPE, BITS_PER_WORD, MAX_BITS_PER_WORD,
+	UNITS_PER_WORD, MAX_UNITS_PER_WORD, LONG_DOUBLE_TYPE_SIZE,
+	POINTER_SIZE, PARM_BOUNDARY, STACK_BOUNDARY, SPARC_STACK_ALIGN,
+	EMPTY_FIELD_BOUNDARY, BIGGEST_ALIGNMENT, FIRST_PSEUDO_REGISTER,
+	FIXED_REGISTERS, CALL_USED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
+	Add v9 support.
+	(sparc_override_options, sparc_code_model): Declare.
+	(OVERRIDE_OPTIONS): Call it.
+	(MASK_*): Define bits set by target flags.
+	(TARGET_*): Use them.
+	({MASK,TARGET}_{V9,INT64,LONG64,PTR64,ENV32,STACK_BIAS,
+	MEDLOW,MEDANY,FULLANY}): Define.
+	(MEDANY_BASE_REG): Define.
+	(V9_SWITCHES, TARGET_OPTIONS): Define.
+	(TARGET_SWITCHES, TARGET_DEFAULT): Use MASK_*.
+	(SPARC_STACK_BIAS, SECONDARY_MEMORY_NEEDED_MODE): Define.
+	(SECONDARY_MEMORY_NEEDED): Simplify.
+	(hard_regno_mode_class, sparc_mode_class, sparc_cpu_type): Declare.
+	(REG_PARM_STACK_SPACE): Do not define if v9.
+	(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, MODES_TIEABLE_P,
+	RETURN_IN_MEMORY, STRUCT_VALUE, STRUCT_VALUE_INCOMING, reg_class,
+	REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS, REG_ALLOC_ORDER,
+	REG_LEAF_ALLOC_ORDER, LEAF_REGISTERS, REG_CLASS_FROM_LETTER,
+	CLASS_MAX_NREGS, STARTING_FRAME_OFFSET, FIRST_PARM_OFFSET,
+	BASE_RETURN_VALUE_REG, BASE_OUTGOING_VALUE_REG, BASE_PASSING_ARG_REG,
+	BASE_INCOMING_ARG_REG, FUNCTION_ARG_REGNO_P): Add v9 support.
+	(sparc_arg_class): New enum (v9 only).
+	(sparc_args): New struct to record v9 arguments.
+	(CUMULATIVE_ARGS): Use it (v9 only).
+	(GET_SPARC_ARG_CLASS): Define.
+	(sparc_arg_count, sparc_n_named_args): Declare.
+	(PASS_IN_REG_P): Define.
+	(ROUND_REG, ROUND_ADVANCE, INIT_CUMULATIVE_ARGS, FUNCTION_ARG_ADVANCE,
+	FUNCTION_ARG, FUNCTION_INCOMING_ARG, FUNCTION_ARG_PARTIAL_NREGS,
+	FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES):
+	Add v9 support.
+	(sparc64_init_expanders, sparc64_fpconv_stack_temp): Declare.
+	(INIT_EXPANDERS): Define (v9 only).
+	(gen_v9_scc, output_v9branch): Declare.
+	(HAVE_conditional_move): Define.
+	(FUNCTION_PROFILER, FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER,
+	DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX, REGNO_OK_FOR_FP_P,
+	REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P, EXTRA_CONSTRAINT,
+	CASE_VECTOR_MODE, Pmode, EXTRA_CC_MODES, EXTRA_CC_NAMES,
+	SELECT_CC_MODE, REGISTER_NAMES): Add v9 support.
+	(REGNO_OK_FOR_CCFP_P): Define.
+	(sparc_initialize_trampoline, sparc64_initialize_trampoline): Declare.
+	(INITIALIZE_TRAMPOLINE): Call them.
+	(ENCODE_SECTION_INFO): Mark functions in v9.
+	(RTX_COSTS): Assume MULT costs the same for v9 as v8.
+	(ASM_LONGLONG, ASM_FLOAT): Define.
+	(ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Add v9 support.
+	* sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Define.
+	(sparc_cpu_type, sparc_arg_count, sparc_n_named_args,
+	frame_base_offset, fpconv_stack_temp): New globals.
+	(leaf_reg_remap): Add additional registers for v9.
+	(sparc_override_options, sparc64_init_expanders,
+	sparc64_fpconv_stack_temp, intreg_operand, ccfp_reg_operand,
+	data_segment_operand, text_segment_operand, v9_regcmp_op,
+	arith11_operand, arith10_operand, arith11_double_operand,
+	arith10_double_operand, gen_v9_scc, emit_v9_brxx_insn,
+	sparc_init_modes, build_big_number, output_v9branch,
+	sparc_initialize_trampoline, sparc64_initialize_trampoline):
+	New functions.
+	(arith_double_operand, gen_compare_reg, finalize_pic,
+	emit_move_sequence, mem_aligned_8, output_move_double,
+	output_move_quad, output_fp_move_double, output_fp_move_quad,
+	output_block_move, save_regs, restore_regs): Add v9 support.
+	(sparc_mode_class): New enum.
+	(*_MODES): Redefine to use it.
+	(hard_32bit_mode_classes): Renamed from hard_regno_mode_ok.
+	(hard_regno_mode_classes, hard_64bit_mode_classes, 
+	sparc_mode_class): New globals.
+	(num_gfregs): Renamed from num_fregs.
+	(compute_frame_size): Add v9 support.  Simplify calculations.
+	(output_function_prologue): Call build_big_number to compute stack
+	size in %g1, then adjust %sp.
+	Fix saving of call saved registers.  Handle new v9 registers.
+	(output_function_epilogue): Fix restoration of call saved registers.
+	Handle new v9 registers.
+	Use SKIP_CALLERS_UNIMP_P to see if unimp insn is at return address.
+	(sparc_builtin_saveregs): Define v9 version.
+	(output_cbranch): New argument fp_cond_reg.  All callers changed.
+	Add v9 support.
+	(output_return): Use SKIP_CALLERS_UNIMP_P.
+	(print_operand): New codes '_', '@', 'C', 'D'.
+	(output_double_int): Handle LABEL_REF and MINUS for v9.
+	Use ASM_LONGLONG if assembler can handle it.
+	* sparc/sparc.md (cpu): New attribute.
+	(type attribute): New value cmove (conditional moves).
+	(cmpdi): New pattern for v9.
+	(seq*, sne*): Add v9 support.
+	(sgt,slt,sge,sle): Explicitly restrict operand 0 to the integer
+	registers.  Try emitting a conditional move for v9.
+	(sgtu,sltu,sgeu,sleu): Likewise.
+	(comparison insns): Add v9 versions.
+	(scc insns): Add DImode versions for v9.
+	(beq, bne, bgt, blt, bge, ble): If comparing DImode with 0 on v9,
+	use brxx insns.  Use emit_jump_insn, not emit_insn, as the latter
+	mishandles brxx insns.
+	(branch insns): Update calls to output_cbranch.
+	Add v9 versions to support multiple floating point condition code regs.
+	Add v9 versions to support brxx insns.
+	(lo_sum, high, pic): Add v9 support.
+	(symbolic move patterns): Disable for v9.
+	(DImode, DFmode, TFmode moves): Add v9 support.
+	(conditional move insns): Define for v9.
+	(zero_extendqidi2, extendqidi2, zero_extendhidi2, extendhidi2,
+	zero_extendsidi2, extendsidi2, floatdisf2, floatdidf2, floatditf2,
+	fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2, muldi3, divdi3,
+	udivdi3, ashldi3, ashrdi3, lshrdi3, ffsdi2): New patterns for v9.
+	(bitfield compare insn): Add DImode version for v9.
+	(adddi3, subdi3, negdi2, anddi3, iordi3, xordi3, one_cmpldi2,
+	mixed mode fp mult insns, negdf2, negtf2, absdf2, abstf2, tablejump,
+	call, call_value, untyped_call, untyped_return, indirect_jump,
+	flush_register_windows, flush): Add v9 support.
+	(ldd peep holes): Disable for v9.
+	(set/compare peep hole): Define DImode version for v9.
+	(sign extend/compare peep hole): Likewise.
+	(return peep holes): Add v9 support.
+	(call/jump peep holes): Add v9 support.
+	* ginclude/va-sparc.h: Add v9 support.
+
+Tue Jun 14 22:44:52 1994  Michael Meissner  (meissner@osf.org)
+
+	* config/i386/i386.h (reg_class): Add AD_REGS that match %eax and
+	%edx to allow %eax:%edx to be specified as one DI register.
+	(REG_CLASS_NAMES): Ditto.
+	(REG_CLASS_CONTENTS): Ditto.
+	(REG_CLASS_FROM_LETTER): 'A' specifies AD_REGS.
+
+	* config/i386/i386.md (umulqihi3): Name the insn with the standard
+	name.
+	(mulqihi3, umulsidi3, mulsidi3): Add new widening multiply
+	patterns.
+
+Tue Jun 14 22:25:16 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* fold-const.c (encode, decode): Use 4 HOST_WIDE_INTs for encoded
+	value with HOST_BITS_PER_WIDE_INT/2 bits in each.
+	(LOWPART, HIGHPART): New macros.
+	(BASE): Move definition outside of div_and_round_double.
+	(add_double, mul_double, lshift_double, rshift_double): Rewrite.
+	(lrotate_double): Use LOWPART, HIGHPART, and BASE.
+	(rrotate_double): Likewise.
+	(div_and_round_double): Major changes to code for general case.
+	Now it actually produces non-garbage results for large operands.
+	(div_and_round_double): Simplify condition for special code used when
+	divisor < BASE.
+	(const_binop): Delete special cases for multiplying by 0, 1, 2, 4, 8.
+	(fold, case *_DIV_EXPR): Don't try to optimize for overflow.
+	* machmode.h (MAX_SHORTS): Deleted.
+
+	* m68k.md: Trivial simplification of many patterns.
+	(subsi3): Don't handle CONST_INT for operand 2.
+	(ashiftrt, op2 > 8): New pattern.
+	(lshiftrt, op2 > 8): New pattern.
+
+	* a29k.md (logical patterns): Tune to give better code for immediate
+	values.
+	* a29k.c (cmplsrcb_operand): New predicate.
+	* a29k.h (PREDICATE_CODES): Add cmplsrcb_operand.
+
+Tue Jun 14 17:52:10 1994  Tor Egge  (tegge@flipper.pvv.unit.no)
+
+	* m88k/sysv3.h (DO_GLOBAL_CTORS_BODY): Call __builtin_alloca 
+	with a non-zero argument, forcing a frame pointer to be needed.
+
+Tue Jun 14 17:37:41 1994  Mike Collison  (collison@sw.stratus.com)
+
+	* reload.h (RELOAD_FOR_OPADDR_ADDR): New reload class.
+	* reload.c (find_reloads): Change secondary reloads of class
+	RELOAD_FOR_OPERAND_ADDRESS to RELOAD_FOR_OPADDR_ADDR.
+	* reload1.c (reload): Process and accumulate needs for
+	RELOAD_FOR_OPADDR_ADDR reloads.
+	When determining if needs are nongroup needs, ignore
+	inactive or optional reloads.
+	(reload_reg_used_in_op_addr_reload): New variable to indicate
+	when reloads of class RELOAD_FOR_OPADDR_ADDR are in use.
+	(mark_reload_reg_in_use, clear_reload_reg_in_use):
+	Process reloads of class RELOAD_FOR_OPADDR_ADDR.
+	(reload_reg_free_p, reload_reg_free_before_p, reloads_conflict):
+	Likewise.
+	(choose_reload_regs): Support RELOAD_FOR_OPADDR_ADDR reloads.
+	(emit_reload_insns): Output RELOAD_FOR_OPADDR_ADDR reloads.
+
+Tue Jun 14 17:29:53 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cccp.c, toplev.c, tree.c, print-tree.c, fold-const.c:
+	Cast pointer operands to bzero, bcopy, and bcmp to (char *).
+	* function.c, stmt.c, expmed.c, varasm.c, emit-rtl.c: Likewise.
+	* dbxout.c, integrate.c, jump.c, real.h, calls.c, cse.c: Likewise.
+	* loop.c, unroll.c, flow.c, stupid.c, combine.c, regclass.c: Likewise.
+	* local-alloc.c, global.c, reload.c, reload1.c, sched.c: Likewise.
+	* genattrtab.c, bc-emit.c, gcc.c, collect2.c: Likewise.
+
+	* c-decl.c (min_precision): New function.
+	(finish_enum): Rewrite code to determine precision required
+	for enumeral type.
+
+	* cse.c (simplify_unary_operation): Correctly and consistently
+	handle CONST_INT cases for FLOAT and UNSIGNED_FLOAT.
+
+	* xm-alpha.h (sbrk): Don't declare here.
+
+	* alpha.h (CONST_COSTS, case CONST_INT): Fix typo.
+
+	* tree.c (staticp, case FUNCTION_DECL): A nested function isn't static.
+
+	* i386/linux.h (STARTFILE_SPEC): Don't force -static for -g.
+
+	* gcc.c (find_a_file): Try EXECUTABLE_SUFFIX first, then file
+	without the suffix.
+
+	* jump.c (jump_optimize): Don't delete dead insn if it has a
+	REG_RETVAL note.
+
+	* fix-header.c (xstrdup): Renamed from strdup.
+	(check_protection): Call xstrdup, not strdup.
+
+Tue Jun 14 17:26:08 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.h (TARGET_SWITCHES): Remove -mpowerpc64 and -mno-powerpc64.
+	* rs6000.c (rs6000_override_options): Remove MPC620 cpu variants.
+
+	* rs6000.c (output_prolog): Fix error in loading size of large
+	stack frames.
+
+Tue Jun 14 17:24:09 1994  Chip Salzenberg  (chip@fin.uucp)
+
+	* reload1.c (reload_as_needed): Clear spill_reg_store at start.
+	(emit_reload_insns): Omit erroneous predicate of reload
+	deletion -- reload_spill_index is not indexed by regno.
+
+Tue Jun 14 15:59:55 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Wrap assert.h in extern "C" { } to avoid problem on
+	HP/UX, which uses NO_IMPLICIT_EXTERN_C.  Also fix 12 May 94
+	change.
+
+Tue Jun 14 15:12:50 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* jump.c (condjump_in_parallel_p): New function to detect
+	conditional jumps within PARALLEL insns.
+	(jump_optimize): Allow for some simple optimizations involving
+	conditional jumps within PARALLEL insns.
+	* reorg.c (get_jump_flags): Handle conditional jumps in PARALLEL
+	insns.
+	(get_branch_condition, fill_simple_delay_slots): Likewise.
+	(fill_eager_delay_slots, relax_delay_slots, dbr_schedule): Likewise.
+
+	* pa-osf.h (SIZE_TYPE): Define as "long unsigned int" to be
+	compatable with system include files.
+	* pa1-osf.h (SIZE_TYPE): Likewise.
+
+	* pa1-osf.h (WCHAR_TYPE): Define as "short unsigned int".
+	(WCHAR_TYPE_SIZE): Define as 16 bits.
+
+	* pa.c (output_arg_descriptor): Restore old behavior for SImode
+	USE insns of FP registers (used by untyped call support).
+
+Mon Jun  6 09:15:43 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* arm.c (arm_reload_out_hi): Rewrite.  Add support for processors
+	running in big-endian mode.
+	(fp_immediate_constant): Fix typo in argument declaration.
+	* arm.h (PROMOTE_MODE): Promote HImode integers as signed.
+	(BYTES_BIG_ENDIAN): Allow OS description to override default.
+	(LOAD_EXTEND_OP): When big-endian, HImode loads are sign extended.
+	* arm.md (storehi_bigend): New expansion pattern.
+	(storeinthi): Rework to generate better code, add big-endian support.
+	(movhi): Add support for processors running in big-endian mode.
+	(movhi_bigend): New expansion pattern.
+	(matcher for movhi): Remove incorrect alternative for storing HImode to
+	memory.  Only match when little endian.
+	(matcher for big-endian movhi): New pattern.
+	(matchers/peepholes for extended pre/post increment HImode loads): Only
+	match when little-endian.
+	(matcher for operating on adjacent memory locations): Load operation
+	into arith operands.
+	(peepholes for extended pre-increment byte loads): New patterns.
+
+Sat Jun  4 21:06:29 1994  Kaveh R. Ghazi  (ghazi@noc.rutgers.edu)
+
+	* sys-types.h (__gnuc_va_list): Use instead of va_list.
+	* sys-protos.h (*): Use __gnuc_va_list, not va_list.
+
+Sat Jun  4 07:19:39 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* arm.c (print_multi_reg, output_call, output_call_mem,
+	output_mov_long_double_fpu_from_arm,
+	output_mov_long_double_arm_from_fpu,
+	output_mov_double_fpu_from_arm, output_mov_double_arm_from_fpu,
+	output_return_instruction, output_func_{prologue,epilogue},
+	arm_print_operand, output_load_symbol):  Print the register prefix
+	before each register name.
+	(output_func_prologue, output_lcomm_directive):  Output the target
+	dependent comment char for asm comments.
+	* arm.h (FUNCTION_PROFILER): Delete duplicate definition.
+	(FUNCTION_PROFILER, TRAMPOLINE_TEMPLATE, ASM_FILE_START,
+	ASM_OUTPUT_REG_{PUSH,POP}, PRINT_OPERAND_ADDRESS):  Output register
+	prefix before any explicit register name.
+	(ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT,
+	ASM_OUTPUT_COMMON): Output the target dependent comment char.
+	(ASM_FILE_START): Output register alias for r10.
+	(REGISTER_NAMES): Output "r9" now for r9, not "rfp".
+	(ADDITIONAL_REGISTER_NAMES): New macro.
+	* arm.md (all patterns explicitly mentioning register names): Output
+	the target dependent prefix before the register name.
+	(all patterns with asm comments): Output the target dependent comment
+	character.
+
+Fri Jun  3 18:14:07 1994  Doug Evans  (dje@cygnus.com)
+
+	* c-common.c (decl_attributes): Fix section attributes.
+	* varasm.c (make_decl_rtl): If section attribute is being ignored,
+	really ignore it.
+
+Fri Jun  3 15:53:57 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* pa.h (FP_REGNO_P): New macro for intra file usage.
+	(REGNO_OK_FOR_FP_P): Use FP_REGNO_P.
+	(FUNCTION_VALUE_REGNO_P): Revert last change.
+	* pa.md (mulsi3): Use MATCH_DUP for op3, not MATCH_OPERAND.
+
+	* pa.h 	(CONDITIONAL_REGISTER_USAGE): Partially revert last changes;
+	Make non-existing 1.0 fp regs fixed, including odd-numbered regs.
+	(enum reg_class): Get rid of SNAKE_FP_REGS, GENERAL_OR_SNAKE_FP_REGS,
+	and NON_SHIFT_REGS.
+	(REG_CLASS_NAMES): Likewise.
+	(REG_CLASS_CONTENTS): Likewise.
+	(REGNO_REG_CLASS): Likewise.
+	(HARD_REGNO_MODE_OK): Corresponding changes.  Don't force 1.0 fpregs
+	to even regno here; fixed_regs does the job better.
+	(FP_REG_CLASS_P): Get rid of SNAKE_FP_REGS.
+	(REG_CLASS_FROM_LETTER, case 'z'): Deleted.
+	(HARD_REGNO_NREGS): Partially revert last change.
+	(CLASS_MAX_NREGS): Partially revert last change.
+	* pa.md (globally): Delete 'x' constraint or change it to 'f',
+	as apropriate.
+
+Fri Jun  3 09:18:55 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* arm.h (CONST_OK_FOR_LETTER_P): Only allow constants that are valid
+	when inverted for 'K'.  Only allow constants that are valid when
+	negated for 'L'.
+	* arm.md (all patterns): Update instruction generation to reflect new
+	meanings of constraints 'K' and 'L'.  Use output type 'B' to
+	generate an inverted constant.  Use output type 'N' to generate a
+	negated floating point constant.
+
+Thu Jun  2 22:43:58 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	 * pa.h (TARGET_SWITCHES): Enable TARGET_LONG_CALLS when
+	TARGET_PORTABLE_RUNTIME is enabled.
+	* pa.c (output_call): If TARGET_LONG_CALLS is enabled, then emit
+	an inline long-call sequence.
+	* pa.md (millicode define_delay): Disable delay slots if
+	TARGET_LONG_CALLS.
+	(call_internal_reg, call_value_internal_reg): If TARGET_LONG_CALLS
+	is enabled, then emit an inline long-call sequence.  Fix length
+	computation for TARGET_LONG_CALLS.
+	(millicode calls): Fix length computation for TARGET_LONG_CALLS.
+
+	* pa.h (ASM_DECLARE_FUNCTION_NAME): Fix typo.
+
+Thu Jun  2 18:28:07 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* stmt.c (expand_end_bindings): Don't bother emitting cleanups
+	after a barrier.
+
+Thu Jun  2 18:10:36 1994  Stephen L Moshier  (moshier@world.std.com)
+
+	* libgcc2.c (__floatdisf):  Protect against double-rounding error.
+
+Thu Jun  2 17:47:54 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.h (MASK_PPCFPX): Delete.
+	(MASK_PPC_GPOPT, MASK_PPC_GFXOPT, TARGET_PPC_GPOPT, TARGET_PPC_GFXOPT):
+	New Macros.
+	(TARGET_SWITCHES): Remove -mpowerpc-fpx; add -mpowerpc-gpopt
+	and -mpowerpc-gfxopt.
+	* rs6000.c (processor_target_table): Use new macros.
+	* rs6000.md (define_function_unit): Remove ppc604 from sqrt list.
+	(divsi3, udivsi3): Remove spaces from PowerPC output templates.
+	(sqrtsf2, maxsf3, minsf3, sqrtdf2, maxdf3, mindf3): Use new macros.
+	(floatdidf2, fix_truncdfdi2, ffsdi2, muldi3): New patterns.
+	({s,u}muldi3_highpart, divdi3, udivdi3, rotldi3): Likewise.
+	(movdi): Handle moves between FPRs and GPRs.
+	(scc insn): Correct swapped compare and delayed_compare attributes.
+
+Thu Jun  2 14:45:04 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* arm.c (arm_condition_code): Move to start of file.
+	(const_pool_offset): Correct typo.
+	(fp_const_from_val): New function.
+	(all instruction generators): mark position where conditionalization
+	should be with '%?'.
+	(output_move_double): Use new '%m' output type to simplify load/store
+	multiple generation.
+	(shift_instr): Delete.
+	(shift_op): New function.
+	(output_arithmetic): Delete.
+	(output_arithmetic_with_shift): Delete.
+	(output_arithmetic_with_immediate_multiply): Delete.
+	(output_shifted_move): Delete.
+	(output_shift_compare): Delete.
+	(arm_print_operand): New function.
+	* arm.h (output_func_{prologue,epilogue}): Change declarations from
+	output_{prologue,epilogue}.
+	(arm_output_llc, arithmetic_instr,
+	 output_arithmetic_with_immediate_mulitply,
+	 output_arithmetic_with_shift, shift_instr): Delete function
+	definitions.
+	(ASM_OUTPUT_OPCODE): Delete.
+	(PRINT_OPERAND): Call arm_print_operand, instead of doing it directly.
+	(ARM_COMMENT_CHAR): New macro.
+	(ARM_REG_PREFIX): New macro.
+	(ARM_SIGN_EXTEND): New macro.
+	(PRINT_OPERAND_ADDRESS): Delete variable 'shift'.  Change type of
+	variable 'offset' to HOST_WIDE_INT.  Use arm_print_operand to handle
+	shifts in addresses.
+	* arm.md (all output patterns): Use new capabilities of
+	arm_print_operand to simplify output sequences.  Mark position of
+	condition code with '%?'.
+
+	* riscix.h (ASM_FINAL_SPEC [CROSS_COMPILE]): Correct typo.
+
+Thu Jun  2 08:14:00 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-common.c (c_build_type_variant): Don't change TYPE_MAIN_VARIANT
+	of new type.
+
+	* expr.c (expand_expr, case ADDR_EXPR): If result is ignored,
+	just return const0_rtx.
+
+Wed Jun  1 13:52:01 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* i386/sco4.h: #define NO_IMPLICIT_EXTERN_C.
+
+Wed Jun  1 04:55:06 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* arm.c: General tidy up.
+	#include <string.h>.
+	Declare some prototypes.
+	(output_memory_reference_mode): Change type to enum machine_mode.
+	(arm_const_nmoves): Delete.
+	(adjacent_mem_locations, {load,store}_multiple_operation): Explicitly
+	declare to return int.
+	({load,store}_multiple_operation): Change type of 'count', 'base' and
+	'i' to HOST_WIDE_INT.
+	(output_add_immediate): Change type of 'n' to HOST_WIDE_INT.
+	(output_multi_immediate): Change type of Argument 'n' to
+	HOST_WIDE_INT, if wider than 32 bits, mask out the high bits.
+	(output_arithmetic_with_immediate_multiply): Change type of 'shift'
+	to HOST_WIDE_INT.
+	(output_func_{prologue,epilogue}): Renamed from
+	output_{prologue,epilogue}.  Check all registers to see if they are
+	live, but only push/pop them if they are not in call_used_regs.
+	* arm.h: Delete some dead code.
+	(FUNCTION_{PROLOGUE,EPILOGUE}): Call output_func_{prologue,epilogue}.
+	(INITIAL_ELIMINATION_OFFSET): Inspect all registers, but only add
+	those that are not in call_used_regs.
+	(GO_IF_LEGITIMATE_INDEX): Change type of variable 'range' to
+	HOST_WIDE_INT; change type of variable 'code' to enum rtx_code.
+	(REVERSIBLE_CC_MODE): New macro.
+
+	* arm.c (const_pool_offset): New function.
+	(get_prologue_size): New function.
+	(output_func_prologue): Eliminate variable code_size.
+	(output_func_epilogue): Only call arm_increase_location when
+	optimizing; also add the size of the function just compiled, and the
+	size of the prologue.
+	(arm_output_asm_insn): Delete.  All callers changed to use
+	output_asm_insn.
+	(arm_output_llc): Delete.
+	(output_load_symbol): New first parameter 'insn'.  Rewrite so that
+	assembler can detect whether we made a mistake.
+	* arm.h (arm_output_asm_insn): Delete declaration.
+	(EXTRA_CONSTAINT): New constraint 'R' to match a constant pool label.
+	Make constraint 'S' never match when not optimizing.
+	(CONSTANT_ADDRESS_P): Only accept symbols marked with SYMBOL_REF_FLAG
+	when optimizing.
+	(ENCODE_SECTION_INFO): Don't mark any symbols when not optimizing.
+	(ASM_OUTPUT_REG_{PUSH,POP}: Don't call arm_increase_location.
+	(ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
+	* arm.md (all insn and peephole patterns): Rewrite without using
+	arm_output_asm_insn.
+	(matcher for movsi): New alternative to load symbol directly into a
+	register.  Add new parameter in call to output_load_symbol.
+
+	* arm.md (all patterns): Length attribute now describes length in
+	bytes.
+	* arm.c (short_branch): Convert length calculations to bytes.
+
+Tue May 31 20:35:39 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* pa.c (emit_move_sequence): Add missing argument to symbolic_operand.
+	(output_block_move): Prefer addl to add.
+	(print_operand): Print fp regs with L suffix when appropriate.
+	(output_arg_descriptor): Rewrite to accomodate new convention for
+	USE information.
+
+	* pa.h (SECONDARY_MEMORY_NEEDED): Simplify.
+	(ADDITIONAL_REGISTER_NAMES): Define.
+	(CONDITIONAL_REGISTER_USAGE): Make PIC_OFFSET_TABLE_REGNUM fixed
+	again.
+
+	Changes to combine fp registers for 1.0 and 1.1 architectures.
+	(Make explicit clobbers of fp registers work.)
+	* pa.h (FIRST_PSEUDO_REGISTER): Now 89.
+	(FIXED_REGISTERS): Delete 1.0 fp registers,
+	(CALL_USED_REGISTERS): Likewise.
+	(CONDITIONAL_REGISTER_USAGE): Almost deleted.
+	(REG_ALLOC_ORDER): Update register numbers.
+	(HARD_REGNO_NREGS): Delete special case for 1.0 fp registers.
+	(HARD_REGNO_MODE_OK): Rewrite.  Don't allow use of odd fp registers
+	(enum reg_class): Delete HI_SNAKE_FP_REGS and FP_OR_SNAKE_FP_REGS.
+	(REG_CLASS_NAMES): Corresponding change.
+	(REG_CLASS_CONTENTS): Delete HI_SNAKE_FP_REGS and
+	FP_OR_SNAKE_FP_REGS.  Make SNAKE_FP_REGS class contain all fp
+	registers.  Update all values for changed register numbering.
+	(REGNO_REG_CLASS): Corresponding changes.
+	(REG_CLASS_FROM_LETTER): Delete 'y'.
+	(FP_REG_CLASS_P): No longer test HI_SNAKE_FP_REGS.
+	(CLASS_MAX_NREGS): Delete special case for 1.1 fp registers.
+	(FUNCTION_VALUE): Remove TARGET_SNAKE conditionals.
+	(LIBCALL_VALUE): Likewise.
+	(FUNCTION_ARG_REGNO_P): Likewise.
+	(FUNCTION_VALUE_REGNO_P): Likewise.  Add registers 29 and 33.
+	(FUNCTION_ARG): Remove TARGET_SNAKE conditionals.  Update register
+	numbers.
+	(REGNO_OK_FOR_FP_P): Update register number.
+	(REGISTER_NAMES): Delete special entries for 1.0 fp registers.
+	(DBX_REGISTER_NUMBER): Likewise.
+	* pa.c (compute_frame_size): Update for changed register numbers.
+	Simplify loops over general registers to stop at register 4.
+	(hppa_expand_prologue): Likewise.
+	(hppa_expand_epilogue): Likewise.
+
+Tue May 31 19:32:18 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* mips.md (movesi_unaligned, movsi_ulw, movsi_usw): Delete.
+	(extv, extzv, insv, movsi_ulw, movsi_usw): New patterns.
+
+	* dbxout.c (dbxout_type): Always emit cross-references if
+	use_gnu_debug_info_extensions set.
+
+	* final.c (output_source_line): Call xcoffout_source_line.
+	* xcoffout.c (xcoff_lastfile): New variable.
+	(ABS_OR_RELATIVE_LINENO, ASM_OUTPUT_SOURCE_LINE): Define here.
+	(xcoffout_source_file, xcoffout_source_line): New functions.
+	(xcoffout_declare_function): Use xcoffout_source_file.
+	* xcoffout.h (xcoff_lastfile): Declare.
+	(DBX_OUTPUT_MAIN_SOURCE_FILENAME): Clean up.  Set xcoff_lastfile.
+	(ABS_OR_RELATIVE_LINENO, ASM_OUTPUT_SOURCE_LINE): Delete here.
+	(DBX_OUTPUT_SOURCE_FILENAME): Delete.
+
+	* unroll.c (copy_loop_body): Copy CALL_INSN_FUNCTION_USAGE field.
+
+	* sparc.h (ASM_SPEC): Don't pass -k when -pg or -p given.
+	(OVERRIDE_OPTIONS): Warn when disabling -fpic.
+
+	* mips-tdump.c (print_global_hdr): Remove "l" from printf format
+	for flags.
+	(print_sym_hdr): Add missing "l" to printf formats.
+	(print_symbol, print_file_desc): Likewise.
+
+	* i960.h (PUT_SDB_TYPE): Adjust value for compatibility with GNU960
+	toolchain.
+
+	* sparc.h (LIB_SPEC): Don't link in /usr/lib/bb_link.o with -a.
+	(CONDITIONAL_REGISTER_USAGE): When -a, make %g1 and %g2 fixed.
+
+	* mips/iris5gas.h, mips/iris5gdb.h: New files.
+	* configure (mips-sgi-irix5): Use iris5gas.h and iris5gdb.h.
+
+Tue May 31 19:21:44 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* pa.md (movsi matcher): Use ldi for moving of 0 to a reg.
+	(movhi matcher): Likewise.
+	(movqi matcher): Likewise.
+	(many patterns): Prefer addl to add, and shNaddl to shNadd.
+	(define_split for (plus (reg) (large_constant))): Cleanup.
+	(divsi3): Use match_dup for operand 3, not match_operand.
+	(udivsi3): Likewise.
+	(modsi3): Likewise.
+	(umodsi3): Likewise.
+
+Tue May 31 19:15:31 1994  Doug Evans  (dje@cygnus.com)
+
+	* toplev.c (v_pedwarn_with_decl): Don't even issue warnings from
+	pedantic errors in system header files.
+
+Tue May 31 17:16:41 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.md (extendqidi2, extendqisi2, extendqihi2): Remove
+	non-existent lba instruction.
+	(ashrdi3): Undo previous change.
+
+Tue May 31 12:30:00 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* toplev.c (lang_options): Add -f{no-,}implicit-templates.
+	(compile_file): Don't output SDB debugging info for
+	externals.
+
+Tue May 31 07:20:18 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stmt.c (expand_asm_operands): Make MEM with BLKmode for clobber
+	of "memory".
+	* loop.c (note_addr_stored): A SET or CLOBBER of a BLKmode MEM means
+	that all memory is clobbered.
+
+Mon May 30 14:01:48 1994  Doug Evans  (dje@cygnus.com)
+
+	* gcc.c (default_compilers): Pass -MG to cpp if present.
+	(option_map): New option --print-missing-file-dependencies/-MG.
+	* cccp.c (print_deps_missing_files): New global.
+	(main): New argument -MG.  Treat missing include files as
+	generated files and output dependencies for them.
+
+Mon May 30 10:42:14 1994  Frederic Pierresteguy  (F.Pierresteguy@frcl.bull.fr)
+
+	* m68k/dpx2cdbx.h (PREFERRED_DEBUGGING_TYPE): Define as SDB_DEBUG.
+	* m68k/dpx2g.h: Disable code that manages gcc.ifile.
+
+Mon May 30 10:35:49 1994  Stephen L Moshier  (moshier@world.std.com)
+
+	* optabs.c (expand_float):  Avoid double-rounding when float is 
+	is narrower than int.
+	* real.c (significand_size): New function.
+	* real.h (significand_size): Declare.
+
+Sun May 29 15:58:21 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): When deleting unneeded stack adjusts
+	or mem-mem copies, use delete_computation.
+
+	* combine.c (force_to_mode): NEXT_SELECT is true for NEG.
+	Only exit quickly if X is narrower than MODE and MASK has all
+	bits in X's mode set.
+	(force_to_mode, case SUBREG): Don't check for WORD_REGISTER_OPERATIONS.
+	(force_to_mode, case NEG): Special-case test for low-order bit.
+
+	* rtlanal.c (volatile_insn_p): Call ourselves in recursive scan.
+
+Sat May 28 19:03:23 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-parse.in (init, compstmt, stmt, all_iter_stmt_with_decl):
+	If the lookahead token is a constant and we need to pop the
+	momentary obstack, don't free it.
+
+	* stmt.c (expand_end_case): Have INDEX_TYPE track conversions done
+	to INDEX_EXPR.
+
+Sat May 28 06:25:40 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* pa.md (call): Force address into register in non-symbol case.
+	(call_value): Likewise.
+
+Fri May 27 19:29:30 1994  Doug Evans  (dje@cygnus.com)
+
+	* toplev.c (compile_file): Call init_regs after `word_mode' is valid.
+	* regclass.c (init_reg_modes): If choose_hard_reg_mode can't find a
+	valid mode, fall back to word_mode.
+
+	* expr.c (use_reg): Fix recording of USE information.
+	(use_regs): Likewise.
+	Delete argument `reg'.  All callers changed.
+	* expr.h (use_regs): Update prototype.
+	* calls.c (expand_call): Update call to use_regs.  Call use_reg
+	if parm is wholly in registers.
+
+	* configure: If compiling in separate dir, add subdirs to .gdbinit.
+
+Fri May 27 18:18:23 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.md (zero_extendqidi2, zero_extendhidi2): Use rldicl
+	instruction.
+	* rs6000.h (RTX_COSTS): Update PPC603 and PPC604 values.
+
+Fri May 27 17:56:07 1994  Douglas Rupp (drupp@cs.washington.edu)
+
+	* i386/xm-dos.h (DIR_SEPARATOR): New macro.
+
+Fri May 27 17:45:08 1994  Holger Teutsch  (teutsch@ffm-iw.Degussa.DE)
+
+	* clipper.h (PCC_STATIC_STRUCT_RETURN): No longer defined.
+
+Fri May 27 17:36:53 1994  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* make-l2.com: Update to handle `ginclude' subdirectory
+	when compiling libgcc2.
+
+Fri May 27 17:30:37 1994  Matthias Pfaller  (leo@marco.de)
+	
+	* ns32k.c (print_operand_address): print_operand_address
+	creates PLUS-rtls for internal use, so it has to handle them.
+
+Fri May 27 16:13:53 1994  Chris Torek  (torek@elf.bsdi.com)
+
+	* function.c (assign_parms): Set REG_USERVAR_P when parm
+	is passed by invisible reference but can live in register.
+
+Fri May 27 06:03:11 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads): Revert to old code and change secondary
+	reloads to RELOAD_FOR_OPERAND_ADDRESS too.
+
+	* combine.c (try_combine): Don't make complemented XOR for
+	constant out of range.
+
+	* alpha.c (or_operand): Renamed from ior_operand.
+	* alpha.h (PREDICATE_CODES): Likewise.
+	* alpha.md (iordi3): Likewise.
+	(xordi3): Use or_operand and add second alternative.
+	(eqv): Only accept registers.
+
+	* expr.c (expand_expr, case CONSTRUCTOR): If constant and large
+	enough for memcpy to be used, build constructor into static memory.
+
+	* alpha.md: Add define_split for sign-extended PLUS of a MULT
+	of an SImode comparison.
+
+	* combine.c (simplify_comparison): Narrow comparison for AND's
+	that are ZERO_EXTENDs.
+	Can widen for all comparisons if inputs are both sign extended.
+
+	* reload1.c (reload_as_needed): Update spill_reg_order once we sort
+	spill_regs.
+
+	* alpha.md: Add define_split for sign-extended PLUS of an SImode
+	comparison; change comparison to DImode.
+
+	* stmt.c (expand_end_case): Use old type of INDEX_EXPR when making
+	a constant.
+
+	* local-alloc.c (requires_inout): Renamed from requires_inout_p and
+	returns number of alternatives that require a match.
+	(block_alloc): Use new function and handle case where all
+	alternatives have some operand that must match operand 0.
+
+	* local-alloc.c (qty_phys_num{,_copy}_sugg): New variables.
+	(qty_phys_has{,_copy}_sugg): Deleted.
+	(qty_sugg_compare{,_1}): New functions.
+	(local_alloc): Allocate and init new vars instead of deleted ones.
+	(block_alloc): Update and use new vars.
+	Order quantities using new functions when allocating quantities
+	with suggested registers.
+	(combine_regs, find_free_reg): Use new vars to count number
+	of suggestions.
+
+Thu May 26 11:55:44 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* jump.c (jump_optimize): When looking for an `if' statement
+	that takes two insns to compute a result using a temporary,
+	allow the temporary to be a SUBREG.
+
+	* combine.c (simplify_comparison): Call CANONICALIZE_COMPARISON,
+	if defined.
+	* alpha.h (CANONICALIZE_COMPARISON): New macro.
+
+	* combine.c (simplify_if_then_else): Don't make (mult (cond))
+	in simple case; leave as IF_THEN_ELSE instead.
+
+	* expmed.c (expand_divmod): Correctly set CAN_CLOBBER_OP0 when we've
+	converted OP0 to COMPUTE_MODE.
+
+Thu May 26 11:41:58 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Protect bool in curses.h with #ifndef __cplusplus,
+	since g++ now defines bool as a basic type.
+
+	* fixinc.svr4: Protect definition of __P used in Solaris math.h
+	and floatingpoint.h to avoid future fixproto conflicts.
+
+	* Makefile.in (stmp-fixinc): Don't pass ${srcdir} argument to
+	$(FIXINCLUDES); no longer needed, and always problematical for
+	binary only installations.
+	* fixincludes: Remove initialization of ${SRCDIR}.  Don't
+	explicitly copy over multimedia/audio_errno.h; should be handled
+	by Oct 11, 1993 change.
+	* fixinc.svr4: Remove initialization of ${SRCDIR}.
+	* fixinc.sco, fixinc.dgux: Likewise.
+
+Fri May 20 12:48:24 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* stmt.c (expand_exit_loop_if_false): Emit conditional jump around
+	unconditional loop exit instead of conditional loop exit.
+
+	* rs6000.c (output_prolog): Use multiple fputs calls instead of
+	one call with multiple strings.
+
+	* iris4.h (STARTFILE_SPEC, LIB_SPEC): Define.
+
+	* xcoffout.c (MAKE_LINE_SAFE): Delete.
+	(ASM_OUTPUT_LBB, ASM_OUTPUT_LBE): Don't use MAKE_LINE_SAFE.
+
+Fri May 20 01:18:30 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config.sub (basic_machine): Accept cxux*.
+
+Thu May 19 19:12:41 1994  Mike Stump  (mrs@cygnus.com)
+
+	* calls.c (expand_call): Only destroy temps here, if -fshort-temps
+	is given.
+
+Thu May 19 19:07:59 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config.sub: Fix unrecognized os error message.
+
+Thu May 19 17:46:55 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (emit_reload_insns): When seeing if an equivalent
+	register can have it's output reload deleted, check for REG_DEAD
+	notes for reload_in instead of calling dead_or_set_p.
+
+Thu May 19 16:38:32 1994  Stephen L Moshier  (moshier@world.std.com)
+
+	* emit-rtl.c (operand_subword): Fix arg of REAL_VALUE_TO_TARGET_SINGLE
+	and .._DOUBLE.  Permit float subword extraction when host's word
+	width is wider than target's.
+
+Thu May 19 15:09:21 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Make OSF/1 getopt.h fix work on AIX also.
+
+Wed May 18 15:34:10 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* fixincludes: Add forward declaration of struct exception to
+	SunOS 4 math.h.
+
+Wed May 18 12:46:46 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* stor-layout.c (layout_decl):  Allow any integral types
+	for bit fields.  (Specifically, C++ now has a 'bool' type.)
+
+Wed May 18 16:32:40 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (compare_spill_regs): Fix typo in declaration.
+
+Wed May 18 10:39:00 1994  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* fixinc.svr4: Avoid the SVR4 typedef of bool in curses.h when
+	compiling for C++, since g++ now supports it as an official typename.
+
+Tue May 17 18:06:32 1994  Matthias Pfaller  (leo@marco.de)
+
+	* ns32k.md: Don't use the extsd/extd instructions on the ns32532.
+
+Tue May 17 17:44:38 1994  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* make-cc1.com (CFLAGS): Separate include file handling; for
+	stage 1, CFLAGS1 is appended to CFLAGS, otherwise CFLAGS2.
+
+Tue May 17 16:35:22 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* convert.c (convert_to_real): Accept boolean values.
+
+	* config/m68k/hp320.h: #define NO_IMPLICIT_EXTERN_C
+
+Tue May 17 15:52:05 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* libgcc2.c (__umoddi3): Correct type of variable `w'.
+
+	* combine.c (simplify_set): Move call to make_field_assignment
+	to end; if SRC or DEST is a (clobber (const_int 0)), return it.
+	(force_to_mode): If X is a CALL, just return it.
+
+	* reload.c (find_reloads): Properly account for cost when
+	constant is forced to memory to ensure same alternative chosen later.
+
+Tue May 17 11:30:19 1994  Richard Earnshaw  (rwe11@cl.cam.ac.uk)
+
+	* combine.c (simplify_set): Use rtx_equal_p to compare cc_use and its
+	setter.
+	(make_extraction): Don't put a subreg around a register if it is 
+	already in the correct mode.
+
+	* reload1.c (compare_spill_regs): New function.
+	(reload_as_needed): Sort the spilled regs.
+	(allocate_reload_reg): If we have group needs and failure would be
+	fatal, do not try to do round-robin allocation of the spill regs.
+
+Mon May 16 18:58:10 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.md (zero_extendqidi2): Fix omission of TARGET_POWERPC64
+	test in previous change.
+
+Mon May 16 14:59:25 1994  Per Bothner  (bothner@cygnus.com)
+
+	* dbxout.c (dbxout_type):  When emitting an ENUMERAL_TYPE, if
+	the precision is different from the default precision (perhaps
+	because of -fshort-enums), write out the precision.
+
+Mon May 16 17:44:49 1994  Stephen L Moshier  (moshier@world.std.com)
+
+	* real.c (ereal_from_int, ereal_to_int, etarsingle):  Correct
+	signed/unsigned discrepancies.
+	(ereal_from_double): Avoid "right shift count too big" warning
+	in previous change.
+	* final.c (split_double): Fix arg of REAL_VALUE_TO_TARGET_DOUBLE.
+
+	* real.h (REAL_VALUE_FROM_TARGET_SINGLE, .._DOUBLE):  Change
+	arg from long to HOST_WIDE_INT.
+	* real.c (ereal_from_float, .._double): Likewise, and unpack
+	the HOST_WIDE_INTs.
+
+Mon May 16 16:16:32 1994  Richard Earnshaw  (rwe11@cl.cam.ac.uk)
+
+	* flow.c (try_pre_increment_1): Don't try to create a pre-increment
+	expression if the register dies in the succeeding insn.
+
+	* expr.c: Use #ifdef TARGET_EDOM, not #if.
+
+	* expr.c (convert_move): When {zero,sign}_extending, allow a wider
+	intermediate than to_mode if truncation is a no-op.
+
+Mon May 16 11:49:28 1994  Doug Evans  (dje@cygnus.com)
+
+	* m68k/apollo68.h (REGISTER_PREFIX_MD): Delete.
+
+Mon May 16 08:11:57 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.c (rs6000_convert_preincs): Delete.
+	* rs6000.h (FINAL_PRESCAN_INSN): Delete.
+
+	* c-typeck.c (initializer_constant_valid_p): Rework to use
+	precision, not size.
+	Allow conversions from integer to pointer if int is wide enough.
+
+	* c-decl.c (finish_enum): Handle VALUES being an ERROR_MARK.
+
+	* rs6000.md: Replace bogus "andil" opcode with rlinm.
+
+Sat May 14 21:26:05 1994  Doug Evans  (dje@cygnus.com)
+
+	* hard-reg-set.h (GO_IF_HARD_REG_EQUAL): Fix typo.
+
+	* jump.c (find_cross_jump): Two CALL_INSNs only compare equal if
+	their CALL_INSN_FUNCTION_USAGEs are the same as well.
+
+	* stupid.c (stupid_life_analysis): Make sure a function result reg
+	is still live if it contains an argument.
+
+Fri May 13 22:17:48 1994  Doug Evans  (dje@cygnus.com)
+
+	* reorg.c (mark_referenced_resources): Fix typo.
+
+Fri May 13 18:54:38 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* integrate.c (integrate_decl_tree): Use copy_node to make a copy
+	of the decl.  Also call copy_lang_decl to copy the
+	language-specific bits.
+	* tree.h: Declare copy_lang_decl.
+	* c-decl.c (copy_lang_decl): No-op function that will never
+	actually be called.
+
+Fri May 13 15:12:20 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cse.c (cse_insn): Correctly check for two modes being the
+	same number of words.
+
+Fri May 13 05:03:51 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-parse.in (enumlist): Add error alternative.
+
+Thu May 12 23:25:38 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* c-common.c (truthvalue_conversion): If expr is a BIT_AND_EXPR
+	where one of the operands is integer_onep, just return expr.
+
+Thu May 12 20:08:49 1994  Mike Stump  (mrs@cygnus.com)
+
+	Fixup lifetime of temporaries.
+
+	* calls.c (expand_call): Only destroy temporaries at the end
+	of function calls, if flag_short_temps is set.
+	* expr.c (safe_from_p, expand_expr): Handle CLEANUP_POINT_EXPRs.
+	* expr.c (expand_expr): Improve handling of temporaries inside
+	COND_EXPRs, cures call to sorry.
+	* expr.c (defer_cleanups_to): New routine to handle the deferral
+	of cleanups.
+	* flags.h (flag_short_temps): New flag, to allow better control
+	over the lifetime of temporaries.
+	* toplev.c (flag_short_temps, lang_options): Ditto.
+	* tree.def (CLEANUP_POINT_EXPR): Add, to allow better control over 
+	the lifetime of temporaries.
+
+Thu May 12 19:33:54 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.md (function units): Numerous cycle count change.
+	(zero_extendqidi2, extendqidi2, zero_extendhidi2): New patterns.
+	(extendhidi2, zero_extendsidi2, extendsidi2): Likewise.
+	(zero_extendqisi2, zero_extendqihi2, zero_extendhisi2): Use
+	andil/andi instead of rlinm/rlwinm.
+	(zero_extendqihi2): Add condition register variants.
+	(extendqisi2, extendqihi2): Use extsb for PowerPC.
+	(adddi3, subdi3, negdi2, ashrdi3): Emulate only if !TARGET_POWERPC64.
+	(movdf, movdi, movti): New PowerPC64 versions.
+	(load/store with update): New PowerPC64 patterns.
+
+Thu May 12 18:50:55 1994  Stephen L Moshier  (moshier@world.std.com)
+
+	* real.c (m16m): Change first arg to int; all callers changed.
+
+Thu May 12 18:46:26 1994  Bill Cox  (bill@cygnus.com)
+
+	* fixincludes: Add definition of DBL_MAX to math.h for Lynx math.h.
+	Correct return type of strlen in Lynx string.h.
+	Delete definition of 'void' as 'int' from Lynx curses.h.
+
+Thu May 12 18:11:33 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads): Don't change a secondary reload
+	to RELOAD_FOR_OPERAND_ADDRESS.
+
+	* function.c (assign_parms): Fix typo in previous change.
+
+Thu May 12 15:48:54 1994  Stephen R. van den Berg  (berg@pool.informatik.rwth-aachen.de)
+
+	* c-common.c (decl_attributes): Revert to identifiers for
+	mode attributes.
+	* libgcc2.c: Likewise.
+
+Thu May 12 15:41:38 1994  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* vax/xm-vms.h (lookup_name_current_level_global): New macro.
+
+Wed May 11 17:44:47 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* cse.c (cse_insn): Set src_eqv if the dest is a STRICT_LOW_PART.
+
+	* expmed.c (store_fixed_bit_field): Delete code to handle
+	MODE_FLOAT values here.
+	(store_bit_field): Put it here instead.
+
+Wed May 11 16:18:21 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* a29k.c (a29k_clobbers_to): New function.
+	* a29k.md (clobbers_to): Deleted.
+	(call_internal, call_value_internal): New patterns.
+	(call, call_value): Just call new patterns and a29k_clobbers_to.
+
+	* stor-layout.c (layout_type): Use POINTER_SIZE, instead of width
+	of Pmode, when appropriate.
+
+	* calls.c (emit_call_1): Put new function usage data at end of
+	any data already there.
+	* expr.c (expand_builtin_apply): Likewise.
+
+	* sched.c (sched_analyze_insn): Fix typo in last change.
+
+Wed May 11 14:45:12 1994  Doug Evans  (dje@cygnus.com)
+
+	* configure: Fix handing case of no language subdirs.
+
+Wed May 11 12:11:40 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixincludes: Don't recursively search symlinks to `.'.
+
+Tue May 10 17:49:57 1994  Stephen R. van den Berg  (berg@pool.informatik.rwth-aachen.de)
+
+	* configure: Include stage4 in the list.
+
+	* gcc.c (process_command): Kludge in stageN/../include instead of
+	include.
+
+Mon May  9 21:04:19 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* sparc.h (*TF*_LIBCALL): Delete `*' from libcall name.
+
+Mon May  9 18:42:10 1994  Matthias Pfaller  (leo@marco.de)
+
+	* ns32k.c (output_move_dconst): Fix errors on ranges.
+
+Mon May  9 18:33:16 1994  Chris Torek  (torek@bsdi.com)
+
+	* gcc.c (delete_if_ordinary): New function.
+	(delete_temp_files, delete_failure_queue): Call it.
+
+Sat May  7 12:12:58 1994  Andreas Neubacher  (aneubach@risc.uni-linz.ac.at)
+
+	* i386/seq-sysv3.h (LIB_SPEC): Support -fshared-data.
+	(CPP_SPEC): Set _SEQUENT_ to 1.
+	(SHARED_SECTION_ASM_OP, ASM_OUTPUT_SHARED_COMMON): Supply new macros.
+	(SHARED_BSS_SECTION_ASM_OP, BSS_SECTION_FUNCTION): Likewise.
+
+Sat May  7 10:09:49 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reorg.c (mark_{referenced,set}_resources): Fix typos in last change.
+
+	* reload1.c (emit_reload_insns): Don't try to delete output reload
+	if there isn't one.
+
+	* i386.h (REG_ALLOC_ORDER): New macro.
+
+	* sched.c (sched_analyze_insn, attach_deaths_insn): Look at
+	CALL_INSN_FUNCTION_USAGE.
+
+	* reload1.c (choose_reload_regs): Remove previous change.
+
+Fri May  6 20:32:22 1994  Doug Evans  (dje@canuck.cygnus.com)
+
+	* sparc.c (leaf_reg_backmap): Delete.
+	(sparc_flat_compute_frame_size): Renamed from
+	sparc_frw_compute_frame_size.  All callers changed.
+	(sparc_flat_save_restore): Likewise.
+	(sparc_flat_output_function_prologue): Likewise.
+	Delete decl of call_used_regs.
+	Delete reference to frame_base_name, use frame pointer explicitly.
+	Print prologue end marker.
+	(sparc_flat_output_function_epilogue): Likewise (renaming).
+	Delete decls of asm_out_data_file, asm_out_file, call_used_regs.
+	Print epilogue start marker.
+	(sparc_flat_epilogue_delay_slots): Likewise (renaming).
+	(sparc_flat_eligible_for_epilogue_delay): Likewise.
+	* sparc.h (TARGET_FRW): Add note saying this option is deprecated.
+	(TARGET_FLAT): Renamed from TARGET_FRW_COMPAT.
+	(TARGET_SWITCHES): Delete references to -mfrw, -mfrw-compat.
+	Add -mflat.
+	(CONDITIONAL_REGISTER_USAGE): If -mflat, fix %i7, rename "%fp"
+	to "%i7", and make %g7 a global_reg.
+	(FRAME_POINTER_REQUIRED): Handle -mflat.
+	(INITIAL_FRAME_POINTER_OFFSET): Likewise.
+	(ARG_POINTER_REGNUM): Explicitly say it's the frame pointer.
+	(LEAF_REGISTERS): Make %g7 not a leaf register.
+	(leaf_reg_backmap): Delete.
+	(LEAF_REG_BACKMAP): Likewise.
+	(FUNCTION_PROLOGUE): Handle -mflat.
+	(FUNCTION_EPILOGUE): Likewise.
+	(DELAY_SLOTS_FOR_EPILOGUE): Likewise.
+	(ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
+
+Fri May  6 14:05:00 1994  Stephen R. van den Berg  (berg@pool.informatik.rwth-aachen.de)
+
+	* tree.h (TYPE_ATTRIBUTES): New macro.
+	(struct tree_type): attributes, new field.
+	(precision): Move this field up for better alignment.
+	(attribute_list_{equal,contained}): Prototype for new functions.
+	(build_type_attribute_variant): Prototype for new function.
+	* c-parse.in: Rewrite attribute parsing; update the expected
+	conflicts and state numbers.
+	* tree.c (TYPE_HASH): Move definition to top of file.
+	(make_node): Add support for SET_DEFAULT_TYPE_ATTRIBUTES.
+	(build_type_attribute_variant): New function.
+	(type_hash_lookup): Check if the attributes match.
+	(attribute_list_{equal,contained}): New functions.
+	* c-typeck.c (common_type): Add attribute merging.
+	(comp_types): Use COMP_TYPE_ATTRIBUTES macro.
+	* print-tree.c (print_node): Print attributes.
+	* c-common.c (decl_attributes): Move the attribute
+	recognition and rejection here from c-parse.in.
+	(decl_attributes): Use VALID_MACHINE_ATTRIBUTE macro.
+
+	* regclass.c (init_reg_sets_1): Eliminate several permanent
+	call_fixed_regs.
+
+	* rtl.def (CALL_INSN): Define new CALL_INSN_FUNCTION_USAGE field.
+	* rtl.h (CALL_INSN_FUNCTION_USAGE): New macro.
+	(find_reg{,no}_fusage): Prototype for new function.
+	* rtlanal.c (reg_used_between_p): Check usage exprs on CALL_INSNs.
+	(reg_referenced_between_p, reg_set_p, dead_or_set_regno_p): Likewise.
+	(find_reg{,no}_fusage): New functions.
+	* combine.c (try_combine): Restrict combining on CALL_INSNs.
+	(distribute_{notes,links}): Look at CALL_INSN_FUNCTION_USAGE.
+	* cse.c (cse_insn): Invalidate CLOBBERed registers.
+	(count_reg_usage): Count registers in USE rtls on CALL_INSNs.
+	* emit-rtl.c (make_call_insn_raw): New function.
+	(emit_call_insn{,_before}): Use make_call_insn_raw.
+	* calls.c (prepare_call_address, emit_call_1, expand_call): Change
+	from USE and CLOBBER insns to using CALL_INSN_FUNCTION_USAGE.
+	(emit_library_call{,_value}): Likewise.
+	* expr.c (use_regs, expand_builtin_apply): Likewise.
+	* expr.h (use_regs): Likewise.
+	* flow.c (flow_analysis, find_basic_blocks): Likewise.
+	* caller-save.c (insert_save_restore): Likewise.
+	* function.c (fixup_var_refs_insns): Likewise.
+	* jump.c (find_cross_jump, get_label_{before,after}): Likewise.
+	* reload1.c (emit_reload_insns): Likewise.
+	* reorg.c (mark_referenced_resources, mark_set_resources): Likewise.
+	* integrate.c (save_for_inline_copying, expand_inline_function):
+	Copy CALL_INSN_FUNCTION_USAGE field.
+	* reload1.c (choose_reload_regs): Ban filled argument registers.
+	* caller-save.c (save_call_clobbered_regs): CALL_INSN_FUNCTION_USAGE
+	requires a sharper liveliness check.
+	* flow.c (propagate_block): Mark all registers mentioned in USE
+	usage expressions on a CALL_INSN as used.
+	* jump.c (find_cross_jump): If STACK_REGS is defined two
+	CALL_INSNs only compare equal if their USE usage rtls are
+	the same as well.
+	* stupid.c (stupid_life_analysis): Check the usage information
+	on CALL_INSNs.
+
+	* function.c (assign_parms): Spread out the REG_EQUIV notes
+	on CONCATs.
+
+Fri May  6 12:43:10 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload.c (find_reloads): Ignore alternatives that will
+	not be reloadable due to PREFERRED_RELOAD_CLASS.
+
+	* explow.c (allocate_dynamic_stack_space): Just return
+	virtual_stack_dynamic_rtx if asking for zero bytes.
+	Set current_function_calls_alloca here and also record new
+	stack level for nonlocal gotos.
+	* expr.c (expand_builtin, case BUILT_IN_ALLOCA): Don't
+	set current_function_calls_alloca here nor record new
+	stack level for nonlocal gotos.
+	* stmt.c (expand_decl): Likewise.
+
+	* function.c (assign_parms): Use expr_size when appropriate.
+
+	* c-typeck.c (comptypes): An enum type is compatible with type of
+	same signedness as well as precision.
+
+	* alpha.h (CONST_COSTS): Revise all costs.
+	* alpha.md (addsi3, subsi3): Add define_expand to make 
+	adddi3/subdi3; old pattern is now anonymous.
+
+	* combine.c (simplify_rtx, case MULT): Don't convert MULT to
+	shift here.
+	(simplify_logical, case IOR): Convert back to PLUS if valid and
+	it will combine with another PLUS.
+	(extract_left_shift): New function.
+	(make_compound_operation, case ASHIFTRT): Simplify by calling it.
+	(force_to_mode): Don't ignore if X is a SUBREG.
+	(force_to_mode, case AND): Try to turn unchecked bits on
+	instead of just off and see which is cheaper.
+
+Fri May  6 11:22:23 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (libgcc1.a, libgcc2.a): Don't ignore errors in for
+	loops over $(LIB[12]FUNCS_EXTRA).
+
+Fri May  6 06:14:56 1994  Mike Stump  (mrs@cygnus.com)
+
+	* expr.c (expand_cleanups_to): Tell expand_expr that we are going
+	to ignore the result of the cleanup.
+
+Thu May  5 17:45:02 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+	* gcc.c (do_spec_1): If -save-temps, always clear the deletion flag.
+
+Thu May  5 13:39:35 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* combine.c (simplify_rtx, case SUBREG): Don't call force_to_mode.
+	(simplify_set): Call force_to_mode here.
+
+	* m68k.md (movhi): Simplify code involving jump-table
+	reference.
+	(load_address): Handle case of jump-table reference; output
+	required label.
+
+Thu May  5 12:28:16 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* cccp.c (main): Include source file name in dependency output.
+
+Wed May  4 18:45:07 1994  Doug Evans  (dje@cygnus.com)
+
+	* config.sub: Remove duplicate -freebsd* entry.
+
+Wed May  4 18:03:34 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* cccp.c (special_symbol): Don't copy simple strings, use wchar_type.
+	(main): Setup wchar_type for C++ if needed.
+	(initialize_builtins): Use wchar_type.
+
+Wed May  4 17:19:34 1994  Mike Collison  (collison@sw.stratus.com)
+
+	* reload.c (push_secondary_reload): Use TYPE for secondary type
+	if it is RELOAD_FOR_{INPUT,OUTPUT}_ADDRESS.
+
+Wed May  4 16:35:49 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure (i386-gnu): New, same as i386-mach.
+
+	* global.c (find_reg): When looking for locally-allocated hard
+	regs to reclaim, use REG_ALLOC_ORDER to find least used.
+
+	* reload1.c (emit_reload_insns): Add another way to delete an
+	output reload.
+
+	* reload1.c (reload, reload_as_needed): Check for use of return
+	register with reg_referenced_p, not reg_mentioned_p.
+
+Wed May  4 14:23:51 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* mips.c (override_options): Delete TARGET_LLONG128 references.
+	* mips.h (MASK_LLONG128, TARGET_LLONG128): Delete.
+	(TARGET_SWITCHES): Delete -mlonglong128 option.
+	(LONG_LONG_TYPE_SIZE): Delete TARGET_LLONG128 reference.
+
+	* mips/bsd-4.h, mips/bsd-5.h, mips/news4.h, mips/news5.h,
+	mips/nws3250v4.h, mips/svr3-4.h, mips/svr3-5.h, mips/svr4-4.h,
+	mips/svr4-5.h (CPP_SPEC): Delete.
+	* mips/dec-bsd.h (CPP_SPEC): Define __SIZE_TYPE__,
+	__PTRDIFF_TYPE__, and __mips.
+	(SIZE_TYPE): Delete.
+	* mips/dec-osf1.h (PTRDIFF_TYPE): Delete.
+	(CPP_SPEC): Define, overriding ultrix.h version.
+	* mips/iris5.h (CPP_SPEC): Define __SIZE_TYPE__, __PTRDIFF_TYPE__,
+	and __mips.
+	* mips/osfrose.h (CPP_SPEC): Define __PTRDIFF_TYPE__ and __mips.
+	(PTRDIFF_TYPE): Delete.
+	(SIZE_TYPE): Define.
+	(SET_ASM_OP): Define.
+	* config/mips/ultrix.h (CPP_SPEC): Delete.
+	(SIZE_TYPE): Delete.
+
+Tue May  3 19:04:43 1994  Jason Merrill (jason@deneb.cygnus.com)
+
+	* Makefile.in (stamp-objlist): Depend on OBJS and BC_OBJS so that
+	subdir makes will know to re-link.
+
+Mon May  2 16:05:05 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* toplev.c (compile_file):  If static consts haven't been written
+	out yet, don't do it just because TREE_USED is set (if we're
+	optimizing).  (This wins for C++, which uses static consts a lot.)
+
+Mon May  2 16:42:59 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* stmt.c (expand_end_case): Make sure gen_casesi operands are
+	valid by passing them through copy_to_mode_reg if necessary.
+	* mips.md (casesi): Delete force_reg calls.
+
+	* ns32k.c (output_move_double): Always use split_double for the
+	CNSTOP case.
+
+	* gcc.c (translate_options): For options that take an argument,
+	don't skip the argument if it doesn't exist.
+
+	* c-decl.c (pushdecl): Use lookup_name_current_level_global instead
+	of lookup_name for extern references.  Don't return duplicate decl
+	if it came from the global binding level, and there exists a
+	conflicting decl in an intervening block.
+	(lookup_name_current_level_global); New function.
+	* c-tree.h (lookup_name_current_level_global): Declare.
+
+	* sys-protos.h (read, write): Last parm is size_t not unsigned int.
+
+	* unroll.c (remap_split_bivs): New function.
+	(unroll_loop): When remapping split bivs in the last instruction,
+	handle JUMP_INSNs in addition to INSNs.
+
+Mon May  2 12:53:57 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* config/nextstep.h (INCLUDE_DEFAULTS): Add cxx_aware field.
+	* config/vax/xm-vms.h (INCLUDE_DEFAULTS): Ditto.
+
+Fri Apr 29 18:30:38 1994  Kung Hsu  (kung@cygnus.com)
+
+	* tree.h (TYPE_DECL_SUPPRESS_DEBUG): new macro to support
+	suppressing of detail type infos into stabs.
+	* dbxout.c (dbxout_type): check the above flag to generate cross
+	reference in stabs.
+
+Fri Apr 29 01:01:45 1994  Doug Evans  (dje@cygnus.com)
+
+	* Makefile.in (stamp-objlist): New target.
+
+Thu Apr 28 22:17:15 1994  Doug Evans  (dje@cygnus.com)
+
+	* Makefile.in (USE_ALLOCA): Rearrange "'s.
+	(FLAGS_TO_PASS): Delete CLIB, MALLOC, OBSTACK.
+
+Thu Apr 28 19:04:17 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* stmt.c (expand_end_case): Correct test for sign extending
+	unsigned constant index when creating index_expr.
+
+	* cccp.c (macroexpand): Use start_line for line number of the new
+	instack level pushed at the end.
+
+Thu Apr 28 18:59:17 1994  Mike Stump  (mrs@cygnus.com)
+
+	* stmt.c: Remove old exception handling support from the backend.
+
+Thu Apr 28 18:59:53 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
+
+	* sparc.c (arith_double_operand): Modify to accept all possible constants.
+	* sparc.md (adddi3, subdi3, anddi3, iordi3, xordi3): Corresponding changes.
+	(one_cmpldi3): Don't allow constants for operand 1.
+
+Thu Apr 28 18:10:18 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.md (addsi3): Prefer add without carry instructions and
+	flag input operands as commutative for condition register variant.
+	(subsi3): Define PowerPC patterns using subtract without carry.
+	(numerous): Flag input operands as commutative for condition
+	register variant.
+	(mov* matchers): Use mr instruction in ! TARGET_POWERPC case as
+	well and mr. in condition register variant.
+	* rs6000.c (output_prolog): Use mr, lis, and li instructions.
+	Use subf instruction if TARGET_POWERPC.
+	(output_epilog): Use cal/addi instruction.
+
+Thu Apr 28 12:48:59 1994  Andreas Neubacher  (aneubach@risc.uni-linz.ac.at)
+
+	* i386/seq-sysv3.h (SHARED_SECTION_ASM_OP): Defined.
+
+Thu Apr 28 12:40:28 1994  Doug Evans  (dje@cygnus.com)
+
+	* expr.c (expand_builtin): Fix typo in previous patch
+	(allow __builtin_next_arg in varargs functions).
+
+Tue Apr 26 16:31:44 1994  Per Bothner  (bothner@cygnus.com)
+
+	* tree.h (AGGREGATE_TYPE_P):  New macro.
+	* calls.c, expr.c, function.c, stmt.c, varasm.c:  Use
+	new macro AGGREGATE_TYPE_P.
+
+Mon Apr 25 18:45:28 1994  John Hassey  (hassey@dg-rtp.dg.com)
+
+	* varasm.c (copy_constant, case CONSTRUCTOR): Fix typo; copied list
+	was placed on old CONSTRUCTOR, not new one.
+
+Mon Apr 25 15:04:53 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-decl.c (grokdeclarator): Never warn about `long long' in
+	system header.
+
+	* c-decl.c (finish_decl): Redo last change.
+
+	* Makefile.in (*compare*): Add missing semicolons.
+
+Mon Apr 25 15:02:31 1994  Doug Evans  (dje@cygnus.com)
+
+	* configure (m68k-hp-hpux): t-hp320g no longer needed as of gas 2.1.
+	* m68k/t-hp320g: Deleted.
+
+Mon Apr 25 14:23:18 1994  Poul-Henning Kamp  (phk@login.dkuug.dk)
+
+	* config.sub, configure: Recognize FreeBSD.
+	* i386/freebsd.h, x-freebsd: New files.
+	* i386/x-freebsd: New file.
+	* i386.h (TARGET_NO_FANCY_MATH_387): New option.
+	* i386.md (TARGET_NO_FANCY_MATH_387): Implement new option.
+	* ginclude/stdarg.h, ginclude/stddef.h, ginclude/varargs.h:
+	Recognize __FreeBSD__.
+	* gcc.c (link_command_spec): Add -Z argument for ZMAGIC's on FreeBSD.
+	
+Mon Apr 25 14:08:26 1994  Doug Evans  (dje@cygnus.com)
+
+	* configure (language search loop): Correct test for no languages.
+	(CC): Use single quotes to avoid shell expansion of $(CC).
+
+Mon Apr 25 13:10:07 1994  Andreas Stolcke  (stolcke@icsi.berkeley.edu)
+
+	* Makefile.in (install-common): Install EXTRA_PARTS with
+	INSTALL_DATA, not INSTALL_PROGRAM.
+
+Mon Apr 25 06:34:00 1994  Stephen L Moshier  (moshier@world.std.com)
+
+	* fold-const.c (fold-convert): Use assignment, instead of
+	initializing, aggregate local variable REAL_VALUE_TYPE.
+
+Sun Apr 24 11:17:20 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reorg.c (redirect_with_delay_list_safe_p): Fix off-by-one error.
+
+	* real.c (etoe53, etoe24): Make all occurrences static.
+
+	* emit-rtl.c (try_split): Don't try to recursively split deleted insn.
+
+	* rs6000.md (movti): Adjust constraints to avoid impossible reload.
+
+	* expr.c (expand_expr, case SAVE_EXPR): Fix error in last change.
+
+Sat Apr 23 06:45:50 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reloads_conflict, case RELOAD_FOR_OUTPUT): Fix typo.
+
+Fri Apr 22 18:43:08 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* configure (alpha-dec-osf): Fix typo.
+
+Fri Apr 22 15:02:22 1994  Hallvard B Furuseth  (h.b.furuseth@usit.uio.no)
+
+	* gcc.c (handle_braces, check_live_switch): Refine previous change.
+
+Fri Apr 22 03:27:26 1994  Doug Evans  (dje@cygnus.com)
+
+	* configure: Sort machines.
+
+	* Language directory reorganization.
+	* configure: Auto-configure each language subdirectory by looking
+	for */config-lang.in.
+	Add language makefile fragments (Make-lang.in) to top level makefile,
+	and hook them in via lang.* targets.
+	Configure each language subdirectory.  On hosts that support them,
+	create stage[123] symlinks in each subdirectory.
+	If there is a configure script in the subdirectory, run it.
+	* Makefile.in (LANGUAGES): Remove c++.
+	(SUBDIRS): New variable.
+	(LEX, LEXFLAGS): Ditto.
+	(MAKEOVERRIDES): Ditto.
+	(COMPILERS): Remove cc1plus.
+	(LANG_MAKEFILES, LANG_STAGESTUFF, LANG_DIFF_EXCLUDES, FLAGS_TO_PASS):
+	New variables.
+	(CPLUS_OBJS, CPLUS_TREE_H, C++, c++, g++, g++-cross, cc1plus,
+	cp-*.o, g++.o, gplus.info): Deleted.
+	(STAGESTUFF): Remove g++, g++-cross, cc1plus.  Add $(LANG_STAGESTUFF).
+	(Makefile): Depend on $(LANG_MAKEFILES).
+	(####language hooks, ####language fragments): New spots for sed
+	to insert things.
+	(all.cross, all.build, start.encap, rest.encap, info, dvi,
+	install-normal, install-common, install-info, install-man,
+	uninstall, distdir, mostlyclean, clean, distclean, extraclean,
+	realclean, stage1, stage2, stage3, stage4): Depend on lang.foo.
+	(mostlyclean, clean, distclean, extraclean, realclean): Clean as
+	much of the language subdirectories as we can.
+	(install-common):  Remove g++ installation.
+	(install-man): Remove g++.1 installation.
+	(uninstall): Remove g++ reference.
+	(TAGS): Remove cp-parse.? reference.
+	(distdir): Ditto.
+	(distdir-start, distdir-finish): New targets.
+	(diff): Remove cp-parse.? reference.  Add $(LANG_DIFF_EXCLUDES).
+	(compare, compare3, gnucompare, gnucompare3): Compare language
+	subdirectories too.
+	(stage1-start, stage2-start, stage3-start, stage4-start): New targets.
+	Ensure stage subdirectory exists before processing language
+	dependent part.
+	* cp/Makefile.in: New file, makefile for c++ subdirectory.
+	* cp/Make-lang.in: New file, c++ language makefile fragment.
+	This file provides c++ specific support to the top level makefile via
+	several well defined targets: c++.all.build, c++.all.cross,
+	c++.start.encap, c++.rest.encap, c++.info, c++.dvi,
+	c++.install-normal, c++.install-common, c++.install-info,
+	c++.install-man, c++.uninstall, c++.distdir, c++.mostlyclean,
+	c++.clean, c++.distclean, c++.extraclean, c++.realclean,
+	c++.stage1, c++.stage2, c++.stage3, c++.stage4.
+	* cp/config-lang.in: New file, defines language name and other
+	configuration parameters for the c++ language: compilers, stagestuff,
+	and diff_excludes.
+	* g++.c: Move into cp subdirectory.
+	* g++.1: Ditto.
+	* g++int.texi: Ditto.
+	* cp-*: Ditto, remove "cp-" prefix except for cp-tree.h.
+
+Thu Apr 21 15:47:01 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* sparc.c (mem_aligned_8): Don't assume addresses with
+	MEM_IN_STRUCT_P set are 8 byte aligned.
+
+	* iris5.h (CPP_SPEC): Define _LANGUAGE_C for Objective C also.
+
+	* unroll.c (find_splittable_givs): Share dest_reg for multiple
+	address givs within a single instruction.
+	(copy_loop_body): Only update psuedo-reg for shared giv once.
+
+	* sparc.c (sparc_type_code): Don't put more than 30 bits of info
+	into the variable qualifiers.
+
+	* expr.c (store_expr): Don't check the TYPE_MODE of an ERROR_MARK.
+
+Thu Apr 21 15:34:11 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* calls.c (calls_function_1): A language-specific code must
+	be assumed to call a function and also call alloca.
+	Check for inlined functions that call alloca.
+
+	* reload1.c (reload): Clear forbidden_regs earlier.
+	(new_spill_reg): Mention in error message that asm clauses can also 
+	cause the compiler to run out of spill regs.
+	(scan_paradoxical_regs): If SMALL_REGISTER_CLASSES, forbid
+	hard regs used in explicit user variables.
+
+	* combine.c (can_combine_p, combinable_i3pat, try_combine): Allow
+	combination involving hard regs if the hard reg is a user variable.
+
+	* gcc.c (default_compilers): If -E and the file is (e.g.) x.s,
+	don't run the assembler; similarly for .i, .ii, .adb, etc.
+
+	* Cleanups related to adding prototypes to many declarations.
+	* rtl.h: If TREE_CODE undefined, make an incomplete union for tree.
+	(STDIO_PROTO): Define here if not already defined.
+	(read_rtx): Use STDIO_PROTO.
+	(output_constant_def, immed_real_const): Use "union tree_node *".
+	(immed_real_const_1): Move declaration to real.h.
+	(rtx_to_tree_code): Supply prototype.
+	* tree.h: If RTX_CODE undefined, make an incomplete struct for rtx.
+	Add some missing declarations of functions in stmt.c.
+	(STDIO_PROTO): Define here if not already defined.
+	* real.h: Add prototypes to declarations of functions in real.c.
+	(immed_real_const_1): Move declaration from rtl.h.
+	* output.h: Add missing declarations of functions in final.c.
+	(STDIO_PROTO): Don't define here.
+	* c-tree.h (STDIO_PROTO): Likewise.
+	* reload.h (PROTO, STDIO_PROTO): Likewise.
+	* bi-opcode.c (main): Don't write overly-long line.
+	* cse.c, emit-rtl.c: Use CONST_DOUBLE_FROM_REAL_VALUE macro for immed
+	real_const_1.
+	* expmed.c: Add prototypes for static functions.
+	* expr.c (bc_expand_expr): Call expand_decl and expand_decl_init,
+	not the bc_ versions.
+	* final.c: Include stdio.h and ctype.h early.
+	Add prototypes for static functions.
+	* function.c: Add prototypes for static functions.
+	(bc_expand_function_end, expand_function_end): Call new
+	expand_fixups instead of old fixup_gotos.
+	* global.c, local-alloc.c: Add prototypes for static functions.
+	* integrate.c: Likewise.
+	Use CONST_DOUBLE_FROM_REAL_VALUE macro for immed_real_const_1.
+	* optabs.c: Likewise.
+	* real.c: Make most functions static and add prototypes for
+	all static functions.
+	(GET_REAL, PUT_REAL): Cast parameter to proper pointer type in
+	some cases; use unsigned array.
+	* stmt.c: Add prototypes for static functions.
+	(expand_fixups): New function.
+	(fixup_gotos): Now static.
+	Don't call bc_fixup_gotos with wrong type (but now probably wrong
+	value).
+	(bc_*): Now static.
+	(expand_exit_loop_if_false): Call bc_expand_goto_internal with
+	proper null pointer.
+	(expand_decl_init): Call bc_expand_decl_init if writing bytecode.
+	
+Thu Apr 21 14:21:56 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	Support taking the address of a text segment symbol when using
+	MIPS -membedded-pic.
+	* mips.h (embedded_pic_fnaddr_rtx): Declare.
+	(embedded_pic_offset): Declare.
+	(mips_finalize_pic): Declare.
+	(FINALIZE_PIC): Define.
+	(GO_IF_LEGITIMATE_ADDRESS): When using -membedded-pic, reject
+	combining an embedded PIC text reference with a register.
+	(ENCODE_SECTION_INFO): Under -membedded-pic set SYMBOL_REF_FLAG to
+	0 for text segment symbols, 1 for data segment symbols.
+	* mips.c (embedded_pic_fnaddr_rtx): New variable.
+	(embedded_pic_offset): New function.
+	(mips_finalize_pic): New function.
+	(mips_select_section): When using -membedded-pic and not using
+	-fwritable-strings, put strings in the text section, not the read
+	only data section.
+	* mips.md (movsi): When using -membedded-pic, add special code
+	when loading a symbol directly to use an offset from the start of
+	the current function.
+	(get_fnaddr): New insn to get address of current function.
+
+Wed Apr 20 19:38:38 1994  Doug Evans  (dje@cygnus.com)
+
+	* regclass.c (init_reg_sets_1): Make static.
+	(init_reg_modes): New function.
+	(init_regs): Likewise.
+	* toplev.c (compile_file): Call init_regs after init_rtl.
+	(main): Delete call to init_reg_sets_1.
+
+Wed Apr 20 15:06:35 1994  Steve Chamberlain  (sac@cygnus.com)
+
+	* sh.c (REG_ODD): Allow DIs and DFs into odd registers.
+	(print_operand): New command char '@', change nop insn.
+	(synth_constant): Don't allocate temp reg during reload.
+	(expand_block_move): Don't expand if TARGET_SMALLCODE.
+	(prepare_split_double_ops): Deleted.
+	(howshift, multcosts): Work out costs exactly.
+	(dump_table): Emit a label before the align.
+	(hi_const): TARGET_SHORTADDR makes more things HI consts.
+	(machine_dependent_reorg): Look through SUBREGS.
+	(from_compare): Get better code when relational args are loaded
+	into regs now.
+	(expand_acall): Cope with TARGET_BSR.
+	(general_movdst_operand): Don't allow illegal autoincs.
+	(mac_operand): New function.
+	(sh_function_arg, sh_function_partial_nregs): From sh.h
+	* sh.h (PARANOID_BIT, RETR2_BIT, CONSTLEN0_BIT, BSR_BIT,
+	SHORTADDR_BIT, TARGET_PARANOID, TARGET_RETR2, TARGET_CONSTLEN0,
+	TARGET_BSR, TARGET_SHORTADDR, TARGET_SWITCHES):  New options.
+	(OVERRIDE_OPTIONS): No function_cse when TARGET_BSR.
+	(FIRST_RET_REG): Depends on TARGET_RETR2.
+	(FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS): Moved to sh.c
+	(HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Define.
+	(MODE_DISP_OK_8): Define.
+	(REG_OK_FOR_PRE_POST_P): Allow a pseudoreg.
+	(GO_IF_LEGITIMATE_ADDRESS): Allow DI addressing modes.
+	(MOVE_RATIO): Depends on TARGET_SMALLCODE.
+	* sh.md (interrupt_function): New attr.
+	(define_delay): Account for interrupt functions.
+	(addc): Describe pattern better.
+	(adddi3): Expanded better.
+	(peepholes): Deleted many obsolete patterns.
+	
+Wed Apr 20 13:37:58 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* expr.c (expand_expr): Don't force ignore when expanding the
+	subexpression of a WITH_CLEANUP_EXPR.  Don't check ignore when
+	deciding whether or not to expand the cleanup for a TARGET_EXPR.
+
+Wed Apr 20 12:20:16 1994  Doug Evans  (dje@cygnus.com)
+
+	* h8300/h8300.h (RTX_COSTS): Remove LSHIFT.
+	* h8300/h8300.md (lshrhi3_eight): Fix name.
+	(lshrhi3): Use it.
+	* i860/i860.c (safe_insn_src_p): Remove LSHIFT.
+	(single_insn_src_p): Likewise.
+	* i960/i960.c (i960_expr_alignment): Remove LSHIFT.
+	* sh/sh.c (output_shift, ASHIFTRT case): Do opposite shift as ASHIFT.
+	Delete LSHIFT case.
+	* sh/sh.h (RTX_COSTS): Remove LSHIFT, add LSHIFTRT.
+	* spur/spur.md (lshlsi3): Delete.
+
+Wed Apr 20 06:40:15 1994  Philippe De Muyter  (phdm@info.ucl.ac.be)
+
+	* c-lex.c (check_newline): Avoid unreachable statement when
+	HANDLE_SYSV_PRAGMA defined.
+
+Wed Apr 20 01:52:24 1994  Steve Chamberlain  (sac@mole.gnu.ai.mit.edu)
+
+	* flow.c (find_auto_inc, try_pre_increment): Make sure
+	that insertion of autoinc addressing mode would yield a valid
+	instructon.
+
+Tue Apr 19 23:41:14 1994  Doug Evans  (dje@cygnus.com)
+
+	* Makefile.in (expr.o): Depend on regs.h.
+	* rtl.h (choose_hard_reg_mode): Declare.
+	* regs.h (reg_raw_mode): Declare.
+	* caller-save.c (choose_hard_reg_mode): Delete from here.
+	* regclass.c (choose_hard_reg_mode): Define here.
+	(reg_raw_mode): Define.
+	(init_reg_sets_1): Initialize reg_raw_mode.
+	* expr.c: #include regs.h.
+	(use_regs): Use reg_raw_mode.
+	* reload1.c (emit_reload_insns): Record additional spill registers
+	in their intrinsic mode.
+	* combine.c (move_deaths): Record death information of remaining
+	registers in their intrinsic mode.
+	* sched.c (attach_deaths): Create partial register dead notes using
+	register's intrinsic mode.
+
+Tue Apr 19 21:40:57 1994  Mike Stump  (mrs@cygnus.com)
+
+	* toplev.c (lang_options): Add -fhandle-signatures for C++
+	frontend.
+
+Tue Apr 19 19:00:30 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cccp.c (do_error): Don't terminate.
+
+Tue Apr 19 17:48:41 1994  Hallvard B Furuseth  (hbf@durin.uio.no)
+
+	* gcc.c: Add new options -print-file-name= and -print-prog-name=.
+
+	* gcc.c (struct switchstr): New field LIVE_COND.
+	(process_command): Initialize it.
+	(check_live_switch): New function.
+	(handle_braces): Call it.
+
+Mon Apr 18 19:22:25 1994  Lee Iverson  (leei@ai.sri.com)
+
+	* mips.h (RTX_COSTS): Remove LSHIFT.
+
+Mon Apr 18 17:56:22 1994  Philippe De Muyter  (phdm@info.ucl.ac.be)
+
+	* c-decl.c (duplicate_decls): Always warn when const declaration
+	follows non-const one for variables.
+
+Mon Apr 18 16:38:30 1994  Stephen R. van den Berg  (berg@pool.informatik.rwth-aachen.de)
+
+	* calls.c (prepare_call_address): New arg REG_PARM_SEEN.
+	All callers changed.
+	(expand_call): Pre-load args if small reg classes and reg parms.
+	* expr.h (prepare_call_address): Extend prototype.
+	* expr.c (expand_builtin_apply): Pass new arg to prepare_call_address.
+
+Mon Apr 18 14:53:14 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (const_binop): If arg is NaN, just return it
+	(fold_convert): Handle NaN in real->int and real->real cases.
+
+	* c-lex.c (yylex): If FP value is NaN, use value of zero.
+
+	* expr.h (PROMOTE_MODE): Don't supply default here.
+	(promote_mode): Add declaration.
+	* explow.c (promote_mode): New function.
+	* calls.c (expand_call): Use it.
+	* function.c (assign_parms, promoted_input_arg, expand_function_start):
+	Likewise.
+	* expr.c (expand_expr, case VAR_DECL, SAVE_EXPR): Likewise.
+	* stmt.c (expand_value_return, expand_decl): Likewise.
+
+Mon Apr 18 11:36:04 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* Makefile.in (LIB2FUNCS): Change _op_vec_delete to _op_vec_del.
+	* libgcc2.c: Ditto.
+
+Mon Apr 18 11:19:07 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* reorg.c (redirect_with_delay_list_safe_p): New function,
+	similar to redirect_with_delay_slots_safe_p.
+	(fill_slots_from_thread): Do not redirect a jump if doing
+	so would invalidate the delay list for the jump.
+
+Mon Apr 18 03:09:30 1994  Doug Evans  (dje@cygnus.com)
+
+	* scan-types.sh: Fix program's name in error message.
+	Rename dummy.c to avoid collisions in parallel makes.
+
+Sun Apr 17 18:29:00 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.h (PROCESSOR_COMMON, PROCESSOR_POWER, PROCESSOR_POWERPC):
+	New macros.
+	* rs6000.c (processor_target_table): Change "all" to "common".
+	Add "power" and "powerpc" generic processors.  Explicitly turn off
+	new mnemonics for all members of the POWER architecture family.
+
+Sun Apr 17 10:04:18 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* tree.h (DECL_PRINT_NAME): Deleted.
+	(struct tree_decl): Field print_name deleted.
+
+Sun Apr 17 06:59:58 1994  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* vax.h (RTX_COSTS), vax.c (vax_rtx_cost): Remove LSHIFT case.
+
+Sun Apr 17 01:15:27 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* function.c (locate_and_pad_parm): For ARGS_GROW_DOWNWARD,
+	Round sizetree for both upward and downward padding, nuke
+	the (now unnecessary) call to pad_below for arg_size_ptr.
+
+Sat Apr 16 21:05:40 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.md (one_cmplsi2): Always use nor instruction;
+	remove extraneous minus sign from condition register set constraint.
+
+Sat Apr 16 17:12:40 1994  Philippe De Muyter  (phdm@info.ucl.ac.be)
+
+	* m68k.c (print_operand): 'x' and 'y' mode letters only
+	if SUPPORT_SUN_FPA.
+	(print_operand_address): If (new) ASM_OUTPUT_CASE_FETCH defined,
+	use it to emit the address for the insn before a tablejump.
+	* m68k/mot3300.h (FUNCTION_ARG_PADDING, FUNCTION_PROLOGUE): Deleted.
+	(FUNCTION_EPILOGUE, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Deleted.
+	(SGS_SWITCH_TABLES, ASM_OUTPUT_CASE_END): Deleted.
+	(ASM_OUTPUT_FLOAT_OPERAND, ASM_OUTPUT_DOUBLE_OPERAND): Deleted.
+	(SGS_NO_LI, ASM_OUTPUT_CASE_FETCH, ASM_RETURN_CASE_JUMP): Defined.
+
+	* configure (header_files): Use ${srcdir} instead of $(srcdir).
+
+Sat Apr 16 16:51:15 1994  DJ Delorie  (dj@ctron.com)
+
+	* objc/makefile.dos (OBJC_O): Add encoding.o.
+
+Sat Apr 16 16:38:32 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-lex.c (yylex): Turn off overflow flag when fixing up large
+	traditional hex constants.
+
+	* c-decl.c (finish_decl): If asmspec_tree, clear DECL_BUILT_IN
+	for function and DECL_RTL always.
+
+Wed Apr 13 13:08:10 1994  Per Bothner  (bothner@cygnus.com)
+
+	* toplev.c (compile_file):  Never warn about unused static consts,
+	since it is reasonable to have those in header files.
+
+Wed Apr 13 12:25:21 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* varasm.c (contains_pointers_p): When examining a RECORD_TYPE,
+	only look at the FIELD_DECLs.
+
+Tue Apr 12 18:14:42 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* Makefile.in (LIB2FUNCS): Add _op_vec_{delete,new}.
+
+	* libgcc2.c (__builtin_vec_{delete,new}): New functions per the
+	latest C++ working paper.
+	(__default_new_handler): No longer static.
+	(__set_new_handler): Lose.
+  
+	* cccp.c: Don't implicitly wrap LOCAL_INCLUDE_DIR.
+	(struct default_include): Add cxx_aware field.
+	(include_defaults_array): Ditto.
+	(main): Use cxx_aware field.
+
+Tue Apr 12 16:13:10 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config.sub (next): Fix typo in m68k-next-ns3 alternative.
+
+Tue Apr 12 07:41:17 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/i386.c (notice_update_cc): Remove LSHIFT case, since there
+	is no LSHIFT rtl code any more.
+
+	* halfpic.h (NO_STDIO_H): Do not include stdio.h if this is defined.
+
+Mon Apr 11 17:24:46 1994  Philippe De Muyter  (phdm@info.ucl.ac.be)
+
+	* scan.c (get_token): Correctly increment lineno after
+	encountering #ident (or other #-directive).
+
+Mon Apr 11 13:22:51 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* reorg.c (try_merge_delay_insns): Account for resources set/used
+	by a filled insn before trying to simplify insns in delay slots.
+
+	* x-iris, x-iris3, x-mips, x-sony, x-sysv (OLDCC): Change -XNh1500
+	to -XNh2000.
+
+	* c-decl.c (finish_decl): Don't preserve initializer if it is
+	error_mark_node.
+
+	* reorg.c (try_merge_delay_insns): Move next_trial update
+	immediately after the try_split call.
+
+	* mips.c (mips_select_rtx_section, mips_select_section): New
+	functions.  Prefer rdata when TARGET_EMBEDDED_DATA, and prefer
+	sdata otherwise.
+	* mips.h (MASK_EMBEDDED_DATA, TARGET_EMBEDDED_DATA): New macros.
+	(TARGET_SWITCHED): Add new option -membedded-data.
+	(SELECT_RTX_SECTION, SELECT_SECTION): Call function in mips.c.
+
+	* Makefile.in (all.cross, rest.encap): Delete objc-runtime and
+	SYSCALLS.c.X.
+	(OBJC, OBJECTIVE-C): Add objc-runtime.
+	(proto): Add SYSCALLS.c.X.
+	(libgcc2.ready, libobjc.a, sublibobjc.a, SYSCALLS.c.X): Add
+	dependence on stmp-int-hdrs.
+
+	* cccp.c (rescan): Don't look for C++ // comment before directive.
+	Handle \-newline inside a C++ // comment.
+	(skip_if_group): Likewise.
+	(handle_directive): Also handle C++ // comment after #.  Point
+	ip->bufp after the comment start before calling
+	skip_to_end_of_comment.
+	(validate_else): Handle \-newline inside a C++ // comment.
+	(skip_to_end_of_comment, macarg1, discard_comments): Likewise.
+
+	* varasm.c (immed_double_const): Sign-extend constants when they
+	have the most significant bit set for the target.
+
+Mon Apr 11 06:20:56 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload): When accumulating needs, use nested
+	structures to simplify and speed up the code.
+
+	* alpha.md (compare define_split): Fix bugs in last addition.
+
+	* calls.c (expand_call, emit_library_call{,_value}, store_one_arg):
+	Use convert_modes instead of convert_to_mode.
+
+	* tree.h (frame_size): Now a union.
+	(DECL_ALIGN, DECL_FRAME_SIZE, DECL_FUNCTION_CODE): Access proper
+	field of frame_size union.
+	(DECL_SET_FUNCTION_CODE): Simplified; retained for compatibility.
+	* c-decl.c (duplicate_decls, pushdecl, builtin_function):
+	Use DECL_FUNCTION_CODE instead of DECL_SET_FUNCTION_CODE.
+
+Mon Apr 11 05:50:26 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+	* mips-tfile.c (update_headers): Do not copy stStatic symbols that
+	result from internal labels.
+
+Sun Apr 10 07:13:24 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rtl.def (LSHIFT): Deleted.
+	* combine.c, cse.c, function.c: No longer handle LSHIFT.
+	* genattrtab.c, loop.c, reload1.c: Likewise.
+	* expr.h (lshl_optab): Deleted.
+	* optabs.c (lshl_optab): Deleted.
+	(expand_binop, init_optabs): No longer reference it.
+	* genopinit.c, expmed.c (expand_shift): Likewise.
+
+	* arm.c, arm.h, arm.md: Remove references to LSHIFT and lshlsi3.
+	* clipper.h, clipper.md, convex.h, convex.md, elxsi.md: Likewise.
+	* fx80.h, fx80.md, gmicro.md, i370.md: Likewise.
+	* m68k.c, m68k.h, m68k.md, m88k.c, m88k.md, ns32k.md: Likewise.
+	* rs6000.md, tahoe.md: Likewise.
+
+	* combine.c (simplify_shift_count, case EQ): LSHIFT should be
+	LSHIFTRT.
+
+Sun Apr 10 04:48:37 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa-ghiux.h (LIB_SPEC): Remove last change until we've got the
+	go ahead from HP to distribute /usr/lib/end.o.
+	* pa-ghpux.h, pa-hiux.h, pa-ghiux.h: Likewise.
+
+Sat Apr  9 15:06:22 1994  Christian Kranz  (kranz@sent5.uni-duisburg.de)
+
+	* config.sub: Add ns* as operating systems; default to ns2 for NeXT.
+	* configure (m68k-next-ns2*): New configuration.
+	* libgcc2.c: Include <mach.h>, not <mach/mach.h> for NeXTStep 2.1.
+	* config/nextstep21.h, m68k/next21.h: New files.
+
+Sat Apr  9 10:56:06 1994  Randy Wright  (rwright@convex.com)
+
+	* combine.c (force_to_mode, case ROTATE): Don't assume
+	simplify_binary_operation always returns CONST_INT.
+	(simplify_shift_const, case IOR, PLUS): Likewise.
+
+Sat Apr  9 09:13:10 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+	* i386/sequent.h (STRUCT_VALUE{,_INCOMING,_REGNUM}):
+	Redefine for calling conventions of native cc.
+
+Sat Apr  9 08:25:43 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* rs6000.h (FINAL_PRESCAN_INSN): Define.
+	* rs6000.c (rs6000_convert_preincs): New function.
+
+	* i386.md (mulhi3): Use SImode for MULT RTL.
+
+	* fold-const.c (fold): Avoid exponential work when simplifying
+	conditional expressions; don't recurse twice if ARG1 is constant.
+
+	* function.c (unitialized_vars_warning, setjmp_args_warning):
+	Reword warning to be less ambiguous.
+
+	* c-typeck.c (convert_arguments): Truncate and reextend
+	for PROMOTE_PROTOTYPES so we can give error on overflow.
+
+	* reload1.c (reload_conflicts): Rewrite to clean up and fix
+	numerous bugs; move to later in file.
+
+	* c-decl.c (duplicate_decls): Put new type in same obstack as
+	old ones, or permanent if old ones in different obstacks.
+
+Fri Apr  8 18:18:18 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* fold-const.c (fold, case GT_EXPR): Simplify X < (1 << Y)
+	into X >> Y == 0.
+
+Fri Apr  8 11:23:51 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	Add support for -membedded-pic to MIPS backend, to create
+	genuinely position independent code without using a global offset
+	table.  Requires GNU as and ld.
+	* mips.h (MASK_EMBEDDED_PIC): Define.
+	(TARGET_EMBEDDED_PIC): Define.
+	(TARGET_SWITCHES): Add embedded-pic and no-embedded-pic.
+	(ASM_SPEC): Pass -membedded-pic to assembler.
+	(ASM_OUTPUT_ADDR_DIFF_ELT): If TARGET_EMBEDDED_PIC output a
+	difference, rather than using .gpword.
+	(ASM_OUTPUT_CASE_LABEL): Define.
+	* mips.md (casesi, casesi_internal): New instructions, used only
+	for TARGET_EMBEDDED_PIC.
+	* mips.c (override_options): For TARGET_EMBEDDED_PIC warn
+	if -mabicalls or -G were used, and set flag_pic and
+	mips_section_threshold.
+	(print_operand): Handle 'S' by printing a label with a leading LS.
+
+Thu Apr  7 22:20:09 1994  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* calls.c (emit_library_call_value): Move is_const set after ifdef.
+
+Wed Apr  6 21:34:17 1994  Pat Rankin  (rankin@eql.caltech.edu)
+
+	* expr.c (expand_builtin, case BUILT_IN_NEXT_ARG): Test whether
+	an argunment has been passed to __builtin_next_arg; warn if not.
+
+Wed Apr  6 17:28:44 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* toplev.c (lang_options):  Add -f[no-]vtable-thunks (for C++).
+
+Wed Apr  6 15:35:42 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* cccp.c (discard_comments): Replace comments with a single space.
+
+	* Makefile.in (USER_H): Add $(srcdir)/ before every ginclude use.
+
+	* calls.c (emit_library_call_value): New variable is_const.  Clear
+	it for functions that return an aggregate in memory.
+
+	* configure (header_files): Prepend $(srcdir)/ginclude/ to each
+	element before substituting into the Makefile.  Delete ginclude/
+	at each point where we set header_files.
+
+	* c-decl.c (finish_decl): Correct typo in use of tree_int_cst_sgn.
+
+Wed Apr  6 07:39:47 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.md: Add define_split to simplify "(unsigned) x > 0xffffff".
+
+	* toplev.c (lang_options): Group and alphabetize some options.
+
+Wed Apr  6 07:03:13 1994  Stephen R. van den Berg  (berg@pool.informatik.rwth-aachen.de)
+
+	* function.c (push_function_context): Use current_function_varargs.
+	(pop_function_context): Likewise.
+	(assign_parms): Respect current_function_varargs.
+	Save args_so_far in any case.
+	* expr.c (expand_builtin): Allow builtin_next_arg for varargs
+	functions as well.
+	* function.h (struct function): New field for current_function_varargs.
+	* integrate.c (function_cannot_inline_p): Use current_function_varargs.
+	* va-alpha.h, va-m88k.h, va-sparc.h (va_dcl): Add ... to
+	set current_function_varargs.
+
+	* c-decl.c (warn_missing_declarations): New variable.
+	(c_decode_option): -Wmissing-declarations.
+	(start_function): Actually do the checking.
+	* toplev.c (lang_options): Add -Wmissing-declarations.
+
+	* function.c (expand_function_start): Delay copying static chain.
+
+	* calls.c (emit_library_call): Move the invocation of
+	prepare_call_address before the assignments of the function arguments.
+	(emit_library_call_value): Likewise.
+
+	* i386.h (DEBUG_PRINT_REG): Fix printing of coprocessor regs in QImode.
+
+Wed Apr  6 06:42:50 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+	* mips-tfile.c (update_headers): Copy stStatic symbols from the old
+	local symbol table to the new local symbol table if they did not get
+	added via debugging psuedo ops.
+
+Wed Apr  6 06:36:05 1994  Philippe De Muyter  (phdm@info.ucl.ac.be)
+
+	* stdarg.h, varargs.h (__va_rounded_size): Round to multiple
+	of sizeof (short) on sysV68.
+
+	* m68k.c (output_function_prologue): pea/move: Fix typos.
+	asm_fprintf("add%.[wl] ...): Undo previous change.
+
+Tue Apr  5 20:05:10 1994  Doug Evans  (dje@cygnus.com)
+
+	* gcc.c (process_command): Add "include" prefix for [foo/]stageN.
+
+Tue Apr  5 01:22:08 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa-ghiux.h (LIB_SPEC): Link in /usr/lib/end.o
+	* pa-ghpux.h, pa-hiux.h, pa-hpux.h (LIB_SPEC): Likewise.
+
+Mon Apr  4 17:36:55 1994  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* final.c (final_scan_insn): Pass new arg, block num, to
+	sdbout_end_block.
+	* sdbout.c (sdbout_begin_block): Don't output block for function
+	level scope unless MIPS_DEBUGGING_INFO is defined.
+	(sdbout_end_block): Likewise.  Add new parameter n for the block
+	number.
+
+	* calls.c (expand_call): If PCC_STATIC_STRUCT_RETURN defined, mark
+	function as addressable same time as we clear is_integrable.
+
+Mon Apr  4 17:11:17 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* Makefile.in (xsys-protos.h): Undefine __*_TYPE when
+	preprocessing fixtmp.c.
+	* fixincludes: Fix ptrdiff_t and wchar_t in system headers like we
+	do size_t.
+	* scan-types.sh: Use __WCHAR_TYPE__, __PTRDIFF_TYPE__, and
+	__SIZE_TYPE__.  Still deduce size_t so that it can be used for
+	ssize_t if necessary.
+	* stddef.h (wchar_t): Always define as __WCHAR_TYPE__.
+	* cccp.c (special_symbol, case T_WCHAR_TYPE): Output "__wchar_t"
+	for C++.
+
+Sat Apr  2 08:14:02 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h (FUNCTION_PROLOGUE, FUNCTION_PROFILER): Correct
+	code for -fpic ELF case.
+
+Fri Apr  1 17:33:35 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* fixproto: Add strncpy, strpbrk, strrchr, strspn, strstr, strtok
+	and strxfrm to the required list for string.h.
+
+Fri Apr  1 01:05:53 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* configure: Change math-68881.h to ginclude/math-68881.h.
+	(EXTRA_HEADERS): Use | not / in sed command.
+	* math-68881.h, math-3300.h: Move to ginclude directory.
+
+	* libgcc2.c: Modify all uses of __attribute__ mode to use new
+	syntax.
+
+	* Makefile.in (USER_H): Files in ginclude now.  Add stdarg.h,
+	stddef.h, varargs.h.
+	(all.cross, rest.encap): Move LIBGCC after stmp-headers.  Add
+	objc-runtime, and SYSCALLS.c.X.
+	(for-bootstrap): Delete.
+	(OBJC, OBJECTIVE-C): Delete objc-runtime.
+	(proto): Delete SYSCALLS.c.X.
+	(*.o): Delete gvarargs.h dependencies.
+	(stmp-int-hdrs): Delete gvarargs.h, gstdarg.h, gstddef.h deps, and
+	code to copy them.
+
+	* bc-emit.c: Change <gvarargs.h> to <varargs.h>.
+	* enquire.c, libgcc2.c, sys-types.h: Change "gstddef.h" to <stddef.h>.
+	* gcc.c: Change "gstdarg.h" to <stdarg.h> and "gvarargs.h" to
+	<varargs.h>.
+	* objc/Object.m: Change "gstdarg.h" to <stdarg.h>.
+	* objc/runtime.h, scan-types.sh: Change "gstddef.h" to <stddef.h>.
+	Change "gstdarg.h" to <stdarg.h>.
+	* objc/hash.h, objc/objc.h, objc/sarry.h: Delete use of IN_GCC to
+	control stddef.h/gstddef.h include.
+	* cccp.c (pcfinclude): Modify comment referring to gstddef.h.
+	* sparc/sparc.h (CPP_PREDEFINES): Update GCC_NEW_VARARGS comment.
+	* i386/x-next, m68k/x-next (libgcc2.a, stdarg.h): Delete rules.
+	* fixincludes: Modify comment referring to gvarargs.h.
+	* cp/Makefile.in: Modify comments that refer to gvarargs.h and
+	gstddef.h.
+
+	* gstdarg.h, gstddef.h, gvarargs.h: Move to ginclude directory
+	and strip off initial `g'.
+	* va-*.h, proto.h: Move to ginclude directory.
+
+Thu Mar 31 19:49:17 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* sparc.h (SPARC_STACK_ALIGN): Use ~7 not 0xfffffff8 for portability.
+
+	* xcoffout.h (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Disable.
+
+	* sol2.h: Delete ifdefed out section defining *_SECTION_ASM_OP
+	macros.
+	({CTORS,DTORS}_SECTION_ASM_OP) Delete definitions.
+	* sysv4.h (INIT_SECTION_ASM_OP): Don't set the alloc flag.
+	({CTORS,DTORS}_SECTION_ASM_OP): Set execinstr flag.
+
+	* dbxout.c (dbxout_type): Re-enable debugging output for anonymous
+	structures.  Change all three places that refer to xrefs to use
+	exactly the same condition.
+
+	* c-typeck.c (pop_init_level): Correct typo in use of
+	tree_int_cst_sgn.
+
+	* mips.c (mips_rtx_classify, md_register_operand,
+	fpsw_register_operand, cmp2_op, uns_cmp_op, fcmp_op): Delete.
+	(mips_const_double_ok, mips_fill_delay_slot, output_block_move,
+	print_operand, function_epilogue): Don't treat gas differently
+	than native assembler.
+	(equality_op, cmp_op): Delete use of classify_op.
+	(override_options): Delete uses of mips_rtx_classify.
+	(final_prescan_insn): Simplify based on other changes.
+	* mips.h (mips_rtx_classify, cmp2_op, fcmp_op,
+	fpsw_register_operand, md_register_operand, uns_cmp_op,
+	classify_op, additive_op, divmod_op, unsigned_op, CLASS_*_OP,
+	NOTICE_UPDATE_CC): Delete.
+	(RTX_COSTS): Use different numbers for R3000/R6000/R4000.
+	(REGISTER_MOVE_COST): Use cost of 2 within same register class, 4
+	for FP to GR copy, 6 otherwise.
+	(ADJUST_COST): Give anti and output dependencies zero cost.
+	(PREDICATE_CODES): Delete obsolete functions from list.
+	* mips.md (addsi3_internal): Don't output subtract.
+	(subsi3_internal): Don't output add.
+	(smulsi3_highpart, umulsi3_highpart): Add missing third operand to
+	mips_move_1word call.
+
+Thu Mar 31 12:09:42 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* longlong.h: Change RS/6000 macros to use PowerPC mnemonics when
+	using -mnew-mnemonics.
+
+Wed Mar 30 17:37:16 1994  Frederic Pierresteguy (F.Pierresteguy@frcl.bull.fr)
+
+	* m68k/dpx2.h (NO_ASM_FMOVECR): Defined.
+	* m68k.c (standard_68881_constant_p): Return 0 if NO_ASM_FMOVECR
+	defined.
+
+	* configure: Add case for rs6000-bull-bosx.
+
+Wed Mar 30 17:31:24 1994  Matthias Pfaller  (leo@marco.de)
+
+	* ns32k.c (global_symbolic_reference_mentioned_p): New  parameter F.
+	(print_operand_address): When generating pic baseregisters are
+	only allowed if offset is CONST_INT. For {SYMBOL,LABEL}_REF
+	a indexregister has to be used instead. (sb) is no longer
+	emitted for constant absolute addresses.
+	(output_move_double): Use CONSTANT_P instead of CONSTANT_ADDRESS_P.
+	* ns32k.h (FUNCTION_PROLOGUE): use __GLOBAL_OFFSET_TABLE_,
+	not _GLOBAL_OFFSET_TABLE_.
+	(LEGITIMATE_CONSTANT_P, LEGITIMATE_PIC_OPERAND_P): Use
+	LEGITIMATE_PIC_OPERAND_P, not LEGITIMATE_CONSTANT_P,
+	to set current_function_uses_pic_offset_table.
+	(INDIRECTABLE_1_ADDRESS_P): Baseregisters are not legal
+	for {LABEL,SYMBOL}_REFS when emitting pic.
+	(GO_IF_INDEXABLE_ADDRESS): INDIRECTABLE_1_ADDRESSes are indexable too.
+	* ns32k/netbsd.h, ns32k/xm-netbsd.h:  New files.
+	* configure (ns32k-pc532-netbsd*): New case, to use new files.
+
+Wed Mar 30 16:39:24 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload): Fix typo in previous change.
+
+	* gcc.c (process_command, case 'B'): If name is "stageN/",
+	add "include" to system include prefix.
+
+	* bc-emit.c, calls.c, combine.c, emit-rtl.c, final.c, g++.c:
+	Include <stdarg.h> instead of "gstdarg.h"; similarly for varargs.
+	* genattrtab.c, mips-tfile.c, protoize.c, toplev.c, tree.c: Likewise.
+
+	* fold-const.c (strip_compound_expr): New function.
+	(fold): Call it; avoid exponential work when simplifying
+	binary op over a COND_EXPR.
+
+	* cse.c (cse_insn): Add missing definition of var TEM; clean up
+	shadowed uses.
+
+	* sparc.c (sparc_type_code): Revise so it supports non-C types.
+
+Wed Mar 30 14:52:26 1994  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
+
+	* xm-alpha.h (string.h): Don't include when inhibit_libc is defined.
+
+Wed Mar 30 10:37:51 1994  Stan Coxs  (coxs@dg-rtp.dg.com)
+
+	* m88k.md (movdf): Do not consider extended registers when doing
+	define_split. 
+
+Wed Mar 30 01:49:06 1994  Torbjorn Granlund  (tege@cygnus.com)
+
+	* config/m68k/m68k.c (output_move_double): Use `%.' where appropriate.
+
+Tue Mar 29 10:46:18 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (ASM_OUTPUT_LABEL): TARGET_GAS no longer needs trailing colons.
+	(ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_COMMON): Likewise.
+
+	* pa.h (TARGET_PORTABLE_RUNTIME): Define.
+	(TARGET_SWITCHES): Add -mportable-runtime and -mno-portable-runtime.
+	(CUMULATIVE_ARGS): Now a "struct hppa_args" rathern than an int.
+	All references changed.
+	(INIT_CUMULATIVE_ARGS): Also initialize nargs_prototype.
+	(INIT_CUMULATIVE_INCOMING_ARGS): Define.
+	(FUNCTION_ARG_ADVANCE): Decrement nargs_prototype for each arg seen.
+	(FUNCTION_ARG): Handle TARGET_PORTABLE_RUNTIME.
+	(ASM_DECLARE_FUNCTION_NAME): Explicitly disallow argument relocations
+	for TARGET_PORTABLE_RUNTIME.
+	(ASM_OUTPUT_INT): Do not use a P% prefix for function references
+	if TARGET_PORTABLE_RUNTIME.
+
+	* pa.md (high and lo_sum for function addresses): Provide alternate
+	definitions for TARGET_PORTABLE_RUNTIME.
+
+	* pa.c (output_arg_descriptor): Explicitly disallow argument
+	relocations for TARGET_PORTABLE_RUNTIME.
+
+Tue Mar 29 07:45:44 1994  Chris Smith  (csmith@convex.com)
+
+	* convex.h (check_float_value): fix return type in extern.
+
+Mon Mar 28 18:36:56 1994  Philippe De Muyter  (phdm@info.ucl.ac.be)
+
+	* m68k/mot3300.h (ASM_IDENTIFY_GCC): Define to be non-null.
+
+Sun Mar 27 20:26:36 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* c-parse.in (attrib): Handle string args as expressions,
+	merging the two rules.  `mode' attribute now takes a string arg.
+	Delete the rule for an identifier as arg.
+	* c-common.c (decl_attributes): `mode' attribute now takes string arg.
+
+Sun Mar 27 14:42:39 1994  Doug Evans  (dje@cygnus.com)
+
+	* c-parse.in (attrib): Back out last patch.
+
+Fri Mar 25 17:52:44 1994  Walter Misar  (misar@rbg.informatik.th-darmstadt.de)
+
+	* m68k.md (movsi): New strategy for moving small constants into dregs,
+	if it can't be done with moveq. 
+	* m68k.h (CONST_COSTS): Reflect the change in m68k.md.
+
+Fri Mar 25 14:30:47 1994  Philippe De Muyter  (phdm@info.ucl.ac.be)
+
+	* m68k.md (call): If (new) MOTOROLA_BSR defined, try to emit 'bsr'.
+	* m68k/mot3300.h (MOTOROLA_BSR): Defined.
+
+	* m68k.c (output_function_prologue): Use link.w on 68040;
+	emit pea fp + movl sp,fp instead of linkw 0 for 68040.
+
+Fri Mar 25 14:21:06 1994  Jim Meyering  (meyering@idefix.comco.com)
+
+	* bc-emit.c (bc_emit_bytecode): Remove decl of unused variable NPUSHES.
+	(bc_emit_instruction): Remove decl of unused variable LITERAL.
+	* c-aux-info.c (gen_decl): Remove decl of unused variable.
+	* c-common.c (truthvalue_conversion): Remove decl of unused CODE.
+	* c-decl.c (push_parm_decl): Move decl of unused variable OLDDECL
+	into #if 0 block.
+	(finish_enum): Remove decls of unused variables I and TEMPORARY.
+	* c-parse.in (primary): Remove decl of unused variable CONTEXT.
+	* c-typeck.c (convert_arguments): Remove decls of unused variables.
+	* collect2.c (putenv): Remove decl of unused variable STR_LEN.
+	(main): Remove decls of unused variables LEN and CLEN.
+	* combine.c (try_combine): Remove decls of unused variables.
+	(subst): Remove decls of unused variables ORIG_CODE.
+	(simplify_if_then_else): Remove decl of unused variable C2.
+	(make_compound_operation): Remove decl of unused variable COUNT.
+	(known_cond): Remove decl of unused variable NEW.
+	(make_field_assignment): Remove decl of unused variable OURDEST.
+	(simplify_and_const_int): Remove decls of unused variables.
+	(simplify_shift_const): Remove decl of unused variable INNER.
+	* cse.c (cse_insn): Remove decl of unused variable TEM.
+	* dbxout.c (dbxout_symbol): Remove decls of unused variables.
+	* emit-rtl.c (reset_used_flags): Remove decl of unused variable.
+	(gen_sequence): Remove decl of unused variable NEWVEC.
+	* enquire.c (f_rep): Remove decl of unused variable F1.
+	* final.c (output_source_line): Remove decl of unused variable.
+	* fix-header.c (read_scan_file): Remove decl of unused variable RPTR.
+	(write_rbrac): Remove decl of unused variable PARTIAL.
+	(main): Likewise.
+	* g++.c (main): Remove decl of unused variable FN.
+	* genattr.c (main): Remove decl of unused variable MAX_ISSUE_TIME.
+	* genattrtab.c (expand_units): Remove decl of unused variable.
+	* genrecog.c (break_out_subroutines): Remove decl of unused variable.
+	* global.c (global_conflicts): Move decl of unused variable I into
+	#if 0 block.
+	* integrate.c (save_for_inline_nocopy): Remove decls of unused vars.
+	(expand_inline_function): Remove two block-scope decls of unused
+	variable COPY.
+	* jump.c (invert_jump): Remove decl of unused variable OLABEL.
+	* loop.c (init_loop): Remove decls of unused variables.
+	(loop_optimize): Remove decl of unused variable END.
+	(combine_movables): Remove decls of unused variables.
+	(check_final_value): Remove decl of unused variable TEM.
+	(check_dbra_loop): Remove decls of unused variables.
+	(maybe_eliminate_biv): Remove decls of unused variables SET and V.
+	* reload.c (find_reloads_address): Remove two block-scope decls of
+	unused variable OLDREF.
+	* rtl.c (read_rtx): Remove decl of unused variable STRINGBUFSIZE.
+	* scan.c (get_token): Remove decl of unused variable QUOTE.
+	(get_token): Remove unused label AGAIN.
+	* sched.c (clear_units): Remove decl of unused variable UNIT.
+	(actual_hazard_this_instance): Remove decl of unused variable I.
+	(actual_hazard): Remove two block-scope decls of unused variable BEST.
+	(sched_analyze_1): Remove decls of unused variables OFFSET and BIT.
+	(sched_analyze): Remove decl of unused variable DEST.
+	(sched_note_set): Remove decl of unused variable J.
+	(create_reg_dead_note): Remove decl of unused variable BACKLINK.
+	(new_sometimes_live): Remove decl of unused variable I.
+	(schedule_block): Remove decls of unused variables LAST_NOTE and REGNO.
+	(schedule_insns): Remove decls of unused variables I and INSNS.
+	* sdbout.c (sdbout_symbol): Remove decl of unused variable LETTER.
+	(sdbout_type): Remove decl of unused variable TEM.
+	* toplev.c (compile_file): Remove unused label.
+	* tree.c (stabilize_reference_1): Remove decl of unused variable.
+	* unroll.c (unroll_loop): Remove decl of unused variable V.
+	(precondition_loop_p): Remove decls of unused variables.
+	(final_giv_value): Remove decl of unused variable CODE.
+
+Fri Mar 25 13:40:05 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (DBX_REGISTER_NUMBER): Fix numerous bugs in handling
+	of FP registers and the SAR register.
+
+Fri Mar 25 12:46:56 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* i386.md (movhi, movqi): Properly recognize unsigned forms of -1
+	for dec[bw] insns.
+
+	* expr.c (expand_expr, case ADDR_EXPR): Return const0_rtx if
+	taking address of an ERROR_MARK; also do some minor cleanup.
+
+	* calls.c (expand_call): Don't require both -W and -Winline to say
+	that call can't be inlined.
+	Warn if inlining is tried but fails.
+
+	* cccp.c (for_lint): Variable renamed from `lint'.
+
+	* expr.c (expand_expr, case ABS_EXPR): Compare with 0 of proper mode.
+
+	* fold-const.c (fold, case *_DIV_EXPR): Correct result when
+	product of constants overflows.
+
+	* alpha.c (output_prolog): Correctly compute floating-reg save
+	area offset.
+
+	* stmt.c (init_stmt_for_function): Clear stack_block_stack.
+
+	* reload1.c (reload): Fix error in last change; only check
+	against group reloads and check all reloads.
+
+Thu Mar 24 13:19:43 1994  Doug Evans  (dje@cygnus.com)
+
+	* toplev.c (v_pedwarn_with_decl): Don't cause compilation to fail
+	from pedantic errors in system header files.
+
+Thu Mar 24 03:01:05 1994  Frederic Pierresteguy  (F.Pierresteguy@frcl.bull.fr)
+
+	* config.sub: Add case for Bull dpx20.
+
+	* config/m68k/dpx2.h (CPP_PREDEFINES): Fix typo.
+
+Wed Mar 23 17:29:56 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* reload1.c (reload): Fix error in last change; compute MODE before
+	it's used.
+
+	* loop.c (get_condition): Exit if we don't recognize SET_SRC of 
+	a SET that modifies OP0.
+
+	* combine.c (simplify_rtx, case FLOAT_TRUNCATE): Simplify
+	case of (float_truncate (abs (float_extend X))).
+
+Wed Mar 23 17:20:54 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* dbxout.c (dbxout_parms): For parameter living in psuedo-reg that
+	was optimized away, use declared type instead of passed type.
+
+	* mips.c (mips_asm_file_start): Add comment on TARGET_GP_OPT code.
+
+	* c-decl.c (init_decl_processing): Change builtin_next_arg type so
+	that it accepts any parameter instead of none.
+	* cp/decl.c (init_decl_processing): Likewise.
+	* expr.c (expand_builtin, BUILT_IN_NEXT_ARG case): Verify that
+	parameter is last named argument.
+	* gstdarg.h (va_start): Pass LASTARG as a parameter to
+	builtin_next_arg.
+	* va-h8300.h, va-i860.h, va-i960.h, va-mips.h, va-sparc.h
+	(va_start): Likewise.
+	* va-alpha.h (va_start): Add call to builtin_next_arg.
+	* va-clipper.h, va-m88k.h, va-pa.h, va-sparc.h (va_start):
+	Likewise.
+
+Tue Mar 22 18:57:54 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* iris5.h (MIPS_DEFAULT_GVALUE): Define to zero.
+	* mips.c (pic_address_needs_scratch): New function.
+	(override_options): Set flag_pic when TARGET_ABICALLS.
+	* mips.h (GO_IF_LEGITIMATE_ADDRESS): Also pretend that we have REG
+	plus CONST_INT addresses by deleting an else.
+	(CONSTANT_ADDRESS_P): When pic, don't accept addresses which are
+	symbol_ref plus a large integer.
+	(LEGITIMATE_PIC_OPERAND_P): Likewise.
+	(LEGITIMIZE_ADDRESS): When pic, convert addresses which are
+	symbol_reg plus a large integer, to reg plus a large integer.
+	(ASM_OUTPUT_ADDR_DIFF_ELT): Use .gpword instead of subtracting
+	labels.
+	* mips.md (movsi): Add special handling for constants which are
+	illegal addresses when pic.
+	(tablejump_internal1, tablejump_internal2): Emit .cpadd when
+	TARGET_ABICALLS.  Adjust length to include .cpadd.
+
+	* mips.h (TRAMPOLINE_TEMPLATE): Add `move $25,$3' for when
+	TARGET_ABICALLS.  Delete padding for 64 bit case.  Adjust offsets.
+	(TRAMPOLINE_SIZE): Increase from 9 to 10 words for 32 bit case.
+	(INITIALIZE_TRAMPOLINE): Increase offsets by 4 bytes for 32 bit case.
+
+Tue Mar 22 15:46:42 1994  Michael Meissner  (meissner@osf.org)
+
+	* i386/osfrose.h (HANDLE_PRAGMA_WEAK): Define in terms of
+	TARGET_ELF.
+	(ASM_OUTPUT_DEF): Provide a definition.
+
+Mon Mar 21 15:56:58 1994  Per Bothner  (bothner@cygnus.com)
+
+	* fix-header.c:  Make sstring buf extern (rather than "common").
+ 
+Mon Mar 21 17:45:56 1994  Doug Evans  (dje@cygnus.com)
+
+	* configure: Accept and ignore --without-*.
+
+Mon Mar 21 17:05:25 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* dbxout.c (source_label_number): New variable.
+	(dbxout_source_file): Use it.  Output an Ltext label.
+
+	* c-decl.c (duplicate_decls): When pedantic, warn when any static
+	declaraction follows a non-static.
+
+	* sparc.md (seq, sne, sgt, slt, sge, sle): Add support
+	for !TARGET_HARD_QUAD.
+
+Mon Mar 21 16:59:02 1994  Mike Collison  (collison@chianti.sw.stratus.com)
+
+	* reload1.c (reload): More accurately compute nongroup needs.
+	(reloads_conflict): New function.
+
+Mon Mar 21 16:21:07 1994  Doug Evans  (dje@cygnus.com)
+
+	* libgcc2.c (__builtin_saveregs): Fix return type.
+
+Mon Mar 21 07:37:13 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (preserve_temp_slots): If argument is REG, see if it
+	is address of a temp slot we know about.
+	* expr.c (expand_expr, case ADDR_EXPR): Update temp slot address
+	if we put it in a register; mark result as pointer.
+
+	* cse.c (FIXED_REGNO_P): Treate global regs as fixed.
+	(CHEAP_REGNO): Renamed from CHEAP_REG.
+	(CHEAP_REG): New macro; user var in hard reg is cheap.
+	(COST): Pass RTL to CHEAP_REG, not regno.
+	(rtx_cost, case REG): Likewise.
+
+Sun Mar 20 19:38:44 1994  Stephen L Moshier  (moshier@world.std.com)
+
+	* m68k/news.h (PRINT_OPERAND): Print float infinity
+	and NaN's as +/-99e999.
+
+Sun Mar 20 17:42:09 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+	* mips-tfile.c (update_headers): Align symbol table sections,
+	using ALIGN_SYMTABLE_OFFSET. Provide a default definition which
+	does no alignment.
+	* alpha.h (ALIGN_SYMTABLE_OFFSET): New macro.
+
+Sun Mar 20 06:38:41 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* emit_rtl.c (try_split): Rename third parameter as LAST.
+	Recursively call try_split for each new insn created.
+
+	* combine.c (mark_used_regs_combine): Correct typo.
+
+Sun Mar 20 06:28:23 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* vax.h (CHECK_FLOAT_VALUE): Add missing continuation character.
+	* tree.c (build_real): Add `overflow' var; pass to CHECK_FLOAT_VALUE.
+
+Sat Mar 19 17:44:14 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* expr.c (expand_expr, case ABS_EXPR): Fix typo in last change.
+
+Sat Mar 19 17:13:47 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* combine.c (newpat_used_regs): New variable.
+	(mark_used_regs_combine): New function.
+	(try_combine): Use them.
+	(reg_dead_at_p): Registers marked in newpat_used_regs must always be 
+	considered to be live.
+
+Sat Mar 19 06:29:38 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* c-parse.in (attrib): Use `identifier' instead of `IDENTIFIER'
+	since names that are (e.g.) typedef names are still OK.
+
+	* m68k/next.h (GO_IF_INDEXABLE_BASE): Make compatible with m68k.h.
+
+	* genoutput.c (output_epilogue, insn_names): Write correct names
+	for patterns before first named pattern.
+
+	* nextstep.h (SELECT_SECTION): Fix typo (arg names) in last change.
+
+	* c-decl.c (grokdeclarator): Use signed version of `sizetype' for
+	type of array index.
+
+Sat Mar 19 06:25:39 1994  Stephen L Moshier  (moshier@world.std.com)
+
+	* fold-const.c (const_binop): Avoid initialized aggregate
+	local variables, for antique compilers.
+
+Fri Mar 18 18:43:28 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* i386/osfrose.h (SELECT_SECTION): Variables go in readonly data
+	only if the initializer is constant.
+	* i386/svr3gas.h, m88k/m88k.h, mips/mips.h, nexstep.h,
+	rs6000/rs6000.h, sparc/sparc.h, svr3.h, svr4.h, vax/vms.h
+	(SELECT_SECTION): Likewise.
+	* varasm.c (assemble_variable): Likewise.
+
+Fri Mar 18 17:54:12 1994  David Edelsohn  (edelsohn@npac.syr.edu)
+
+	* rs6000.md (divmodsi4, udivsi3, divsi3, udivmodsi4): Add AIX
+	common-mode cases.
+	(mulh_call, mull_call, divss_call, divus_call, quoss_call, quous_call):
+	AIX common-mode call patterns.
+	(ashlsi3): More TARGET_POWERPC to ! TARGET_POWER changes.
+	(addsf3, subsf3, mulsf3, divsf3, etc.): Change TARGET_POWER
+	to ! TARGET_POWERPC.
+	(fix_truncdfsi2): Use POWER/2 and PowerPC FP convert instruction.
+	(fpcvtsi): New pattern.
+	(mulsidi3): Add AIX common-mode case, add imul attribute to POWER
+	pattern, add PowerPC pattern, flag input operands as commutative.
+	(smulsi3_highpart): Add AIX common-mode case.
+	(movsi matcher): Add mtjmpr attribute to ! TARGET_POWER case.
+	(movsf): Clean up load from memory or integer register test.
+	(movdi matcher): Add FP register support.
+
+	* rs6000.c (common_mode_defined): New variable.
+	(output_prolog): Define external common-mode calls.
+
+	* rs6000.h (HARD_REGNO_MODE_OK): Allow DImode in FP registers.
+	(CONDITIONAL_REGISTER_USAGE): Delete ppcas mention from comment.
+	(RTX_COSTS): Costs based upon processor_type enum.
+
+Fri Mar 18 17:53:35 1994  Torbjorn Granlund  (tege@cygnus.com)
+
+	* rs6000.md (smulsi3_highpart): New patterns.
+	(umulsi3_highpart_power): New pattern.
+
+Fri Mar 18 15:26:56 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* sol2.h (SELECT_RTX_SECTION): Delete.
+	* sysv4.h (SELECT_RTX_SECTION): Add.
+	(ASM_SPEC): Pass -K to assembler when PIC.
+
+	* cccp.c (before_system, last_before_system): New variables.
+	(main): Handle -isystem option.  Insert -isystem directories in
+	search chain at first_system_include.
+	* gcc.c (include_prefix): New variable.
+	(process_command): Add path/include to include_prefix when see a
+	-Bpath option.
+	(do_spec_1, case 'I'): Pass include_prefix directories to cpp with
+	the -isystem option.
+
+	* loop.c (scan_loop): New variable loop_depth.	Increment and
+	decrement on LOOP_BEG and LOOP_END notes.  Only use LOOP_VTOP note
+	if loop_depth is zero.
+	(strength_reduce): Likewise.
+
+	* sparc/sparc.h (FIXUNS_TRUNCTFSI2_LIBCALL): Define.
+	* optabs.c (init_optabs): Use FIXUNS_TRUNCTFSI2_LIBCALL macro.
+
+Thu Mar 17 13:13:46 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* stor-layout.c (layout_type, case BOOLEAN_TYPE):
+	Set TREE_UNSIGNED unless TYPE_MIN_VALUE is negative.
+
+Thu Mar 17 18:36:34 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* c-common.c (shorten_compare): When simplify compare against
+	zero, check for restype_ptr unsigned instead of primop0 unsigned.
+
+	* calls.c (expand_call): Undo Feb 27 change.  Set nregs to -1 for
+	normal case.
+
+Thu Mar 17 17:43:28 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixinc.svr4: Define BYTE_ORDER in <sys/byteorder.h> as on
+	UnixWare 1.1.
+
+Thu Mar 17 06:02:24 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stor-layout.c (layout_type, case INTEGER_TYPE): Properly test for
+	nonnegative lower bound.
+
+Wed Mar 16 12:41:19 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* tree.c (build_nt, build_parse_node): Don't declare last
+	parameter to be register, since it is used in VA_START, which
+	may take its address.
+	* genattrtab.c (attr_printf): Likewise.
+
+Wed Mar 16 12:00:40 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* pa.h (INITIALIZE_TRAMPOLINE): Do not mask off high
+	bits of address passed to icacheflush.
+
+	* pa.h (WCHAR_TYPE): Use "unsigned int" by default.
+	(WCHAR_TYPE_SIZE): Change appropriately.
+	* pa-ghiux.h, pa-ghpux.h, pa-gux7.h, pa-hiux.h, pa-hpux.h,
+	pa-hpux7.h (WCHAR_TYPE): Delete definition.
+	(WCHAR_TYPE_SIZE): Likewise.
+	* pa-osf.h (WCHAR_TYPE): Override appropriately for OSF1.
+	(WCHAR_TYPE_SIZE): Likewise.
+
+	* pa.md (DImode lo_sum): Add earlyclobber for alternative one.
+
+	* pa.h (ASM_OUTPUT_ADDR_DIFF_ELT): Rewrite to match
+	ASM_OUTPUT_ADDR_VEC_ELT which is PIC-safe.
+
+Wed Mar 16 09:07:34 1994  Matthias Pfaller  (leo@marco.de)
+
+	* ns32k.c (global_symbolic_reference_mentioned_p): Recurse only
+	if GET_CODE (op) == CONST.
+
+	* ns32k.h (FUNCTION_PROLOGUE): Load sb through r0 if TARGET_REGPARM
+	is false.
+
+Wed Mar 16 06:57:45 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu)
+
+	* emit-rtl.c (gen_lowpart_common, gen_highpart, operand_subword):
+	Test input against RTX for FP, AP, and SP, not same register number.
+
+	* expr.c (expand_expr): Update comments and fix formatting.
+	(expand_expr, case VAR_DECL, STRING_CST, CONSTRUCTOR): If
+	flag_force_addr, put address in register unless REG.
+	(expand_expr, case CONSTRUCTOR, CONVERT_EXPR): Make TARGET with
+	TMODE, if specified.
+	(expand_expr, case IN_EXPR): Clean up.  Allow INDEX to be an
+	unsigned type.  Always evaluate SET and INDEX in case of side effects.
+	(expand_expr, case CONVERT_EXPR): Use convert_modes to handle consts.
+	(expand_expr, case ABS_EXPR): Simplify processing of COMPLEX.
+	Compare with zero word-by-word if required.
+	(expand_expr, case ABS_EXPR, MIN_EXPR, COND_EXPR): Don't use TARGET
+	if not MODE.
+	(expand_expr, case TRUTH_*_EXPR): Modes of input and output must agree.
+	(expand_expr, case CONJ_EXPR): Remove redundant def of MODE.
+
+	* stor-layout.c (layout_record): If the place where we were going
+	to put a field changed, lay it out again.
+
+Tue Mar 15 07:53:36 1994  Paul A Vixie  (paul@vix.com)
+
+	* Makefile.in (stmp-fixproto): Add missing "-" in front of "if".
+	(install-headers-tar, gcc.xtar): Use "-" in front of tar options.
+
+Mon Mar 14 16:28:16 1994  Paul Eggert  (eggert@twinsun.com)
+
+	* fixincludes: Insert newlines just before the end of 'sed'
+	command strings if the last 'sed' command is 'a' or 'i';
+	BSDI 1.1 'sed' needs this.
+
+Mon Mar 14 15:46:29 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* fixinc.svr4: Don't name variables in mmap prototype.
+
+Mon Mar 14 15:16:38 1994  Doug Evans  (dje@cygnus.com)
+
+	* objc/Makefile (*.o): Add explicit dependencies for Sun's VPATH.
+
+Mon Mar 14 05:11:42 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* function.c (assign_parms, expand_function_start): Properly
+	set MEM_IN_STRUCT_P for DECL_RTL of function result.
+
+	* c-decl.c (grokdeclarator): Convert to sizetype when manipulating
+	size of array and use care to avoid mixed-type operations.
+
+	* expr.c (expand_expr): Don't call bc_expand_expr
+	if EXPAND_INITIALIZER.
+	* bc-optab.c (bc_expand_{binary,unary}_operation): Add missing
+	args to call to expand_expr.
+	* stmt.c (bc_expand_start_cond): Set exit_label if not EXITFLAG.
+	(bc_expand_end_bindings): Only define exit_label if set.
+	Don't pop nesting_stack.
+	* varasm.c (output_constant_def): Do hashing and make label
+	even if bytecode.
+	* bc-emit.c (bc_seg_write): Don't make unaligned reference to
+	seg->data.
+	* toplev.c (compile_file): Call bc_write_file here and pass
+	asm_out_file, not stdout.
+	(main): Don't call bc_write_file here.
+	Fix wording on error if -fbytecode specified on unsupported target.
+
+	* fold-const.c (fold, associate): If -ffast-math, associate FP mults.
+	(fold, case RDIV_EXPR): Split case; ignore division by 1.
+	If -ffast-math, convert to multply by reciprocal.
+	(fold, case *_DIV_EXPR): Simplify A/C1/C2.
+
+	* tree.h (tree_int_cst_sgn): New declaration.
+	* tree.c (tree_int_cst_sgn): New function.
+	* c-decl.c (finish_{decl,struct,enum}): Call it.
+	* c-typeck.c (build_binary_op, pop_init_level): Likewise.
+	(output_pending_init_elements): Likewise.
+	* expr.c (expand_builtin, case BUILT_IN_RETURN_ADDRESS): Likewise.
+	* fold-const.c (fold): Likewise.
+	(fold, case *_DIV_EXPR): Add missing conversion.
+	* convert.c (convert_to_integer): Convert integer_one_node to
+	proper type before tree_int_cst_lt call.
+
+Sun Mar 13 06:46:13 1994  Wolfgang Stukenbrock (wgstuken@immd4.informatik.uni-erlangen.de)
+
+	* gcc.c (do_spec_1): Don't duplicate a macro starting with '__'.
+
+Sun Mar 13 05:54:00 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* convert.c (convert_to_integer): When changing type of truthvalue
+	operation, change types of inputs too.
+	* c-common.c (TRUTH_*_EXPR): Convert to integer_type_node.
+
+	* tree.c: Include setjmp.h.
+	(build_real_from_int_cst): Propagate overflow flags and
+	establish float handler.
+	(build_complex): Propagate overflow flags.
+	* cse.c (simplify_binary_operation): Protect real_value_truncate
+	inside handler.
+	* fold-const.c (force_fit_value): Operate on REAL_CST as well.
+	(real_value_truncate): Don't use its own handler.
+	(const_binop): Set overflow on FP error and call force_fit_type.
+	(fold_convert): Likewise.
+	* c-common.c (constant_expression_warning, overflow_warning):
+	Handle REAL_CST and COMPLEX_CST.
+	* convex.h, convex.c, fx80.h, tahoe.h, vax.h, vax.c: Add OVERFLOW
+	operand to CHECK_FLOAT_VALUE.
+
+	* jump.c (rtx_equal_for_thread_p): Correct error in previous
+	change; add missing arg in recursive call.
+
+Sat Mar 12 19:42:03 1994  H.J. Lu  (hjl@nynexst.com)
+
+	* configure (gxx-include-dir): Replacement for gxx-prefix.
+	* Makefile.in (gxx_include_dir): Likewise, for gxx_prefix.
+
+	* i386/linux.h (NO_IMPLICIT_EXTERN_C): Defined.
+
+Sat Mar 12 07:42:12 1994  Paul Eggert  (eggert@twinsun.com)
+
+	* Makefile.in (stmp-fixproto): Work around a `make' bug in BSDI 1.1.
+
+Sat Mar 12 07:38:08 1994  Klaus Kaempf  (kkaempf@didymus.rmi.de)
+
+	* bi-run.h: Properly test BYTES_BIG_ENDIAN.
+	* bytecode.h: Likewise for WORDS_BIG_ENDIAN.
+
+	* cccp.c (do_include, hack-vms_include_specification): Change handling
+	of '#include filename' to be compatible with VAX-C.
+
+	* genemit.c (gen_exp): Added \n to printf to shorten line for VAX-C.
+
+Sat Mar 12 06:42:38 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* expr.h (emit_float_lib_cmp): Add declaration here.
+	* optabs.c: Don't define emit_float_lib_cmp now that no longer static.
+
+	* jump.c: Add prototypes for static functions.
+	(jump_optimize, delete_insn): Use GET_RTX_CLASS to test for insns.
+	(mark_jump_label): Delete dead code.
+	(delete_computation, redirect_tablejump): No longer static.
+
+Fri Mar 11 14:40:40 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* lite.h (TARGET_DEFAULT): Use parentheses.
+	* sparc.h (TARGET_HARD_QUAD): New macro.
+	(TARGET_SWITCHES): Add hard-quad-float, soft-quad-float.
+	(TARGET_DEFAULT): Use parentheses.
+	({ADDTF3,SUBTF3,MULTF3,DIVTF3,SQRTTF2,FLOATSITF2,FIX_TRUNCTFSI2,
+	EXTENDSFTF2,TRUNCTFSF2,EXTENDDFTF2,TRUNCTFDF2,EQTF2,NETF2,GTTF2,
+	GETF2,LTTF2,LETF2}_LIBCALL): New macros.
+	* sparc.md (sleu+4, sleu+7, extendsftf2, extenddftf2, trunctfsf2,
+	trunctfdf2, floatsitf2, fix_trunctfsi2, addtf3, subtf3, multf3,
+	divtf3, sqrttf2): Disable when -msoft-quad-float.
+	(beq, bne, bgt, blt, bge, ble): When -msoft-quad-float, account
+	for return value of SPARC ABI routines that differs from libgcc.
+	* flow.c (libcall_dead_p): Fail not abort for libcall that returns
+	value via invisible pointer.
+	* optabs.c (emit_float_lib_cmp): Make non static.
+	(init_optabs): Use {ADDTF3,SUBTF3,MULTF3,DIVTF3,SQRTTF2,FLOATSITF2,
+	FIX_TRUNCTFSI2,EXTENDSFTF2,TRUNCTFSF2,EXTENDDFTF2,TRUNCTFDF2,EQTF2,
+	NETF2,GTTF2,GETF2,LTTF2,LETF2}_LIBCALL macros.
+
+	* sparc/sparc.h (STARTING_FRAME_OFFSET): Depend on
+	LONG_DOUBLE_TYPE_SIZE.
+
+Fri Mar 11 08:01:54 1994  Stephen R. van den Berg  (berg@pool.informatik.rwth-aachen.de)
+
+	* rtl.h, tree.h, g++.c, gcc.c (PVPROTO): New macro.
+	* combine.c, expr.h, rtl.h, tree.h, gcc.c: Use it for varargs protos..
+	* genattrtab.c, mips-tfile.c, output.h, toplev.c: Likewise.
+
+Fri Mar 11 07:21:36 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* emit-rtl.c (copy_rtx_if_shared, case LABEL_REF): Can't share.
+	* jump.c (jump_optimize): Delete REG_LABEL note if label no
+	longer in insn.
+
+	* c-decl.c (finish_decl): When preserving an initializer, ensure
+	its type is on a good obstack.
+
+Thu Mar 10 15:32:42 1994  Mike Collison  (collison@sw.stratus.com)
+
+	* reload1.c (emit_reload_insns): When clearing reg_last_reload_reg,
+	clear all hard regs in reload_out.
+
+Thu Mar 10 15:23:10 1994  Hallvard B Furuseth  (hbf@durin.uio.no)
+
+	* collect2.c (dup2): Catch `dup' failure.  Return correct value.
+
+Thu Mar 10 15:18:08 1994  Richard Earnshaw  (rwe11@cl.cam.ac.uk)
+
+	* gcc.c ([__MSDOS__]): Use #ifdef, not #if.
+	* collect2.c ([__MSDOS__]): Likewise.
+
+Thu Mar 10 15:03:01 1994  Paul Eggert  (eggert@twinsun.com)
+
+	* cccp.c (main, finclude, check_precompiled): When safe_read
+	returns a partial buffer, this means EOF has been reached;
+	don't try to read any more.
+
+Wed Mar  9 18:47:29 1994  Paul Eggert  (eggert@twinsun.com)
+
+	* real.c (target_negative): -0 counts as negative.
+
+Wed Mar  9 15:32:01 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* m68k.md (movqi): Disable special-case of stack push if operand
+	one is an address register.
+
+	* c-typeck.c (pointer_int_sum): Multiplication should be
+	done signed.
+	(pointer_diff): Likewise the division.
+	* fold-const.c (fold, case MULT_EXPR): Simplify MULT_EXPR of an
+	EXACT_DIV_EXPR with the same divisor as our multiplicand.
+
+	* jump.c (rtx_equal_for_thread_p): Commutative operations
+	are identical if the operands match in the opposite order.
+	* sched.c (rtx_equal_for_memref_p): Likewise.
+
+Wed Mar  9 12:07:29 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+	* cse.c (simplify_relational_operation): Fix typos; use
+	 ARG_POINTER_REGNUM and FRAME_POINTER_REGNUM in condtionals.
+
+Tue Mar  8 16:12:07 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* explow.c (break_out_memory_refs): Don't call mark_reg_pointer
+	here.
+	(memory_address): Call it here if X changed and is now a REG
+	or REG + CONST_INT.
+
+Tue Mar  8 15:57:29 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* c-decl.c (finish_decl): When saving/discarding initializers,
+	don't check TREE_PERMANENT and TREE_STATIC.
+	(finish_decl, finish_function): Pass new argument to
+	permanent_allocation.
+	* cp/decl.c (finish_function): Likewise.	
+	* cp/decl2.c (write_vtable_entries, finish_file): Likewise.
+	* toplev.c (compile_file): Likewise.
+	* function.h (struct function): Add momentary_function_firstobj
+	field.
+	* tree.c (momentary_function_firstobj): New variable.
+	(init_obstack): Set it.
+	(save_tree_status): Save it and set it.
+	(restore_tree_status): Use it and restore it.
+	(permanent_allocation): New parameter function_end.  Clear
+	momentary_obstack to momentary_function_firstobj if true.
+	(preserve_initializer): Set base field of every momentary
+	level on the momentary stack to new momentary_firstobj.
+	(pop_momentary): Only free back to previous base.
+	* tree.h (permanent_allocation): Add prototype.
+
+Mon Mar  7 20:10:56 1994  Jim Wilson  (wilson@cygnus.com)
+
+	* iris4gl.h: Rewrite.  Include iris4loser.h not iris4-gdb.h.
+	Define PREFERRED_DEBUGGING_TYPE not ASM_SPEC.
+
+	* bsd-4.h (LINK_SPEC): Do not depend on gas.  Don't interpret -EB
+	and -EL options, but do pass them.
+	* bsd-5.h (LINK_SPEC): Likewise.
+	* decl-osf1.h (LINK_SPEC): Likewise.
+	* iris5.h (LINK_SPEC): Likewise.
+	* mips-5.h (LINK_SPEC): Likewise.
+	* mips.h (LINK_SPEC): Likewise.
+	* svr3-4.h (LINK_SPEC): Likewise.
+	* svr3-5.h (LINK_SPEC): Likewise.
+	* svr4-4.h (LINK_SPEC): Likewise.
+	* svr4-5.h (LINK_SPEC): Likewise.
+
+	* dec-bsd.h (LINK_SPEC): Pass all normal linker options to gld.
+	(ASM_SPEC): Pass all normal assembler options to gas.
+	* osfrose.h (LINK_SPEC): Likewise.
+	(ASM_SPEC): Likewise.
+
+	* mips.h (ASM_SPEC): Make definition depend on whether or
+	not the default assembler is gas.  Pass all normal assembler
+	options to gas.  
+	* iris4loser.h (ASM_SPEC): Likewise.  Pass -O0 if the assembler is
+	not gas.
+
+	* iris3.h (ASM_SPEC, LINK_SPEC): Delete.
+	* news4.h (ASM_SPEC, LINK_SPEC): Delete.
+	* news5.h (LINK_SPEC): Delete.
+	* nws3250v4.h (ASM_SPEC, LINK_SPEC): Delete.
+	* ultrix.h (ASM_SPEC, LINK_SPEC): Delete.
+
+	* mips.h (ASM_FINAL_SPEC): Cross compiling does not presume gas.
+
+	* osfrose.h (SIZE_TYPE): Delete.
+	(MAX_WCHAR_TYPE_SIZE): Define.
+
+	* calls.c (expand_call): For pcc_struct_value case, set
+	MEM_IN_STRUCT_P correctly on target.
+
+	* Makefile.in (mostlyclean): Don't explicitly delete ld.
+
+Mon Mar  7 20:06:38 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* mips-tdump.c (print_symbol): The index field of a global symbol
+	is the symbol table index of the corresponding local symbol, not
+	an index into the aux table.
+	(print_file_desc): Print out size of line number information
+	rather than repeating line number count.  The cbLineOffset field
+	of a PDR is relative to the cbLineOffset field of the FDR.  Also,
+	when computing line_end of the last PDR, use cbLineOffset, not
+	ilineBase.
+
+Mon Mar  7 17:42:35 1994  H.J. Lu (hjl@nynexst.com)
+
+	* Makefile.in (gxx_prefix):  New; default to $(libdir).
+	(GPLUSPLUS_INCLUDE_DIR): Change to $(gxx_prefix)/g++-include.
+	* configure (gxx_prefix): New; default to $(libdir).
+
+	* i386/linux.h (GPLUSPLUS_INCLUDE_DIR): Deleted.
+	(STARTFILE_SPEC): Remove "-nojump".
+
+Mon Mar  7 17:06:08 1994  Stephen R. van den Berg  (berg@pool.informatik.rwth-aachen.de)
+
+	* i386/xm-linux.h (malloc): Remove disabled code.
+
+Mon Mar  7 13:27:09 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* cccp.c (no_record_file): New variable.
+	(main): Set it for -imacros and -include files.
+	(do_endif): Don't call record_control_macro for -include or -imacros
+	files or files included from -imacros.
+
+Sun Mar  6 21:48:51 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config.sub: Accept freebsd as OS.
+
+Sun Mar  6 14:40:00 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* stupid.c: Add prototypes for static functions.
+	(last_{jump,label}_suid): Deleted; all uses deleted.
+	(reg_crosses_blocks): Likewise.
+	(stupid_life_analysis): Only allocate MAX_SUID entries
+	of after_insn_hard_regs.
+	Use GET_RTX_CLASS when possible.
+	Initialize all of reg_renumber.
+	Use reg_alternate_class when reg not available in preferred class.
+	(stupid_find_reg): Delete argument CROSSES_BLOCKS.
+
+	* stupid.c (stupid_mark_refs): If setting reg_where_dead, set
+	regs_live so we don't later clobber it.
+
+	* recog.c (constrain_operands): Properly handle '#' in constraint.
+
+	* combine.c (subst): Split into five functions.
+	(simplify_{rtx,if_then_else,set,logical}): New functions.
+
+Sun Mar  6 13:12:48 1994  James Van Artsdalen  (james at bigtex.cactus.org)
+
+	* reg-stack.c (find_blocks): Undo previous change to block
+	delineation algorithm.
+	(reg_to_stack): Make algorithm identical to that in find_blocks.
+
+Sat Mar  5 16:27:58 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* genattrtab.c (attr_printf): Remove `register' from decl of FMT.
+	* tree.c (build_nt, build_parse_node): Remove `register' from decl
+	of CODE.
+
+	* reload.c (get_secondary_mem): Call SECONDARY_MEMORY_NEEDED_MODE
+	if it is defined.
+	* alpha.h (SECONDARY_MEMORY_NEEDED_MODE): New macro.
+	* alpha.c (output_{pro,epi}log): Round var size to quadword boundary.
+
+	* alpha.md (unaligned_{load,store}hi): Clear low bit of
+	address before using as operand to extwl, mskwl, and inswl.
+	(movhi, reload_inhi, reload_outhi): Pass extra scratch value.
+
+Fri Mar  4 17:16:23 1994  Leonard Norrgard  (vinsci@nic.funet.fi)
+
+	* c-lex.c: Delete gperf-generated source from here.
+	* c-gperf.h: New file; contains just gperf output.
+	* Makefile.in (c-gperf.h): New rule.
+	(c-lex.o): Depends on c-gperf.h.
+	(realclean): Delete c-gperf.h.
+	(distdir): Build c-gperf.h.
+	(diff): Omit differences in c-gperf.h.
+
+Fri Mar  4 06:35:26 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* svr4.h, m88k.h (ASM_FINISH_DECLARE_OBJECT): Set
+	size_directive_output to 1.
+
+	* reload1.c (emit_reload_insns): Don't call gen_input_reload if
+	src and dest are identical.
+
+Thu Mar  3 15:32:55 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* alpha.md (mskXl): Add missing NOT in patterns.
+
+	* t-m88k: Remove added realclean rule.
+
+See ChangeLog.8 for earlier changes.
diff --git a/gcc/INSTALL b/gcc/INSTALL
new file mode 100644
index 0000000..d4ac7c5
--- /dev/null
+++ b/gcc/INSTALL
@@ -0,0 +1,1906 @@
+This file documents the installation of the GNU compiler.  Copyright
+(C) 1988, 1989, 1992, 1994, 1995 Free Software Foundation, Inc.  You
+may copy, distribute, and modify it freely as long as you preserve this
+copyright notice and permission notice.
+
+Installing GNU CC
+*****************
+
+   Here is the procedure for installing GNU CC on a Unix system.  See
+*Note VMS Install::, for VMS systems.  In this section we assume you
+compile in the same directory that contains the source files; see *Note
+Other Dir::, to find out how to compile in a separate directory on Unix
+systems.
+
+   You cannot install GNU C by itself on MSDOS; it will not compile
+under any MSDOS compiler except itself.  You need to get the complete
+compilation package DJGPP, which includes binaries as well as sources,
+and includes all the necessary compilation tools and libraries.
+
+  1. If you have built GNU CC previously in the same directory for a
+     different target machine, do `make distclean' to delete all files
+     that might be invalid.  One of the files this deletes is
+     `Makefile'; if `make distclean' complains that `Makefile' does not
+     exist, it probably means that the directory is already suitably
+     clean.
+
+  2. On a System V release 4 system, make sure `/usr/bin' precedes
+     `/usr/ucb' in `PATH'.  The `cc' command in `/usr/ucb' uses
+     libraries which have bugs.
+
+  3. Specify the host, build and target machine configurations.  You do
+     this by running the file `configure'.
+
+     The "build" machine is the system which you are using, the "host"
+     machine is the system where you want to run the resulting compiler
+     (normally the build machine), and the "target" machine is the
+     system for which you want the compiler to generate code.
+
+     If you are building a compiler to produce code for the machine it
+     runs on (a native compiler), you normally do not need to specify
+     any operands to `configure'; it will try to guess the type of
+     machine you are on and use that as the build, host and target
+     machines.  So you don't need to specify a configuration when
+     building a native compiler unless `configure' cannot figure out
+     what your configuration is or guesses wrong.
+
+     In those cases, specify the build machine's "configuration name"
+     with the `--build' option; the host and target will default to be
+     the same as the build machine.  (If you are building a
+     cross-compiler, see *Note Cross-Compiler::.)
+
+     Here is an example:
+
+          ./configure --build=sparc-sun-sunos4.1
+
+     A configuration name may be canonical or it may be more or less
+     abbreviated.
+
+     A canonical configuration name has three parts, separated by
+     dashes.  It looks like this: `CPU-COMPANY-SYSTEM'.  (The three
+     parts may themselves contain dashes; `configure' can figure out
+     which dashes serve which purpose.)  For example,
+     `m68k-sun-sunos4.1' specifies a Sun 3.
+
+     You can also replace parts of the configuration by nicknames or
+     aliases.  For example, `sun3' stands for `m68k-sun', so
+     `sun3-sunos4.1' is another way to specify a Sun 3.  You can also
+     use simply `sun3-sunos', since the version of SunOS is assumed by
+     default to be version 4.  `sun3-bsd' also works, since `configure'
+     knows that the only BSD variant on a Sun 3 is SunOS.
+
+     You can specify a version number after any of the system types,
+     and some of the CPU types.  In most cases, the version is
+     irrelevant, and will be ignored.  So you might as well specify the
+     version if you know it.
+
+     See *Note Configurations::, for a list of supported configuration
+     names and notes on many of the configurations.  You should check
+     the notes in that section before proceeding any further with the
+     installation of GNU CC.
+
+     There are four additional options you can specify independently to
+     describe variant hardware and software configurations.  These are
+     `--with-gnu-as', `--with-gnu-ld', `--with-stabs' and `--nfp'.
+
+    `--with-gnu-as'
+          If you will use GNU CC with the GNU assembler (GAS), you
+          should declare this by using the `--with-gnu-as' option when
+          you run `configure'.
+
+          Using this option does not install GAS.  It only modifies the
+          output of GNU CC to work with GAS.  Building and installing
+          GAS is up to you.
+
+          Conversely, if you *do not* wish to use GAS and do not specify
+          `--with-gnu-as' when building GNU CC, it is up to you to make
+          sure that GAS is not installed.  GNU CC searches for a
+          program named `as' in various directories; if the program it
+          finds is GAS, then it runs GAS.  If you are not sure where
+          GNU CC finds the assembler it is using, try specifying `-v'
+          when you run it.
+
+          The systems where it makes a difference whether you use GAS
+          are
+          `hppa1.0-ANY-ANY', `hppa1.1-ANY-ANY', `i386-ANY-sysv',
+          `i386-ANY-isc',
+          `i860-ANY-bsd', `m68k-bull-sysv', `m68k-hp-hpux',
+          `m68k-sony-bsd',
+          `m68k-altos-sysv', `m68000-hp-hpux', `m68000-att-sysv',
+          `ANY-lynx-lynxos', and `mips-ANY').  On any other system,
+          `--with-gnu-as' has no effect.
+
+          On the systems listed above (except for the HP-PA, for ISC on
+          the 386, and for `mips-sgi-irix5.*'), if you use GAS, you
+          should also use the GNU linker (and specify `--with-gnu-ld').
+
+    `--with-gnu-ld'
+          Specify the option `--with-gnu-ld' if you plan to use the GNU
+          linker with GNU CC.
+
+          This option does not cause the GNU linker to be installed; it
+          just modifies the behavior of GNU CC to work with the GNU
+          linker.  Specifically, it inhibits the installation of
+          `collect2', a program which otherwise serves as a front-end
+          for the system's linker on most configurations.
+
+    `--with-stabs'
+          On MIPS based systems and on Alphas, you must specify whether
+          you want GNU CC to create the normal ECOFF debugging format,
+          or to use BSD-style stabs passed through the ECOFF symbol
+          table.  The normal ECOFF debug format cannot fully handle
+          languages other than C.  BSD stabs format can handle other
+          languages, but it only works with the GNU debugger GDB.
+
+          Normally, GNU CC uses the ECOFF debugging format by default;
+          if you prefer BSD stabs, specify `--with-stabs' when you
+          configure GNU CC.
+
+          No matter which default you choose when you configure GNU CC,
+          the user can use the `-gcoff' and `-gstabs+' options to
+          specify explicitly the debug format for a particular
+          compilation.
+
+          `--with-stabs' is meaningful on the ISC system on the 386,
+          also, if `--with-gas' is used.  It selects use of stabs
+          debugging information embedded in COFF output.  This kind of
+          debugging information supports C++ well; ordinary COFF
+          debugging information does not.
+
+          `--with-stabs' is also meaningful on 386 systems running
+          SVR4.  It selects use of stabs debugging information embedded
+          in ELF output.  The C++ compiler currently (2.6.0) does not
+          support the DWARF debugging information normally used on 386
+          SVR4 platforms; stabs provide a workable alternative.  This
+          requires gas and gdb, as the normal SVR4 tools can not
+          generate or interpret stabs.
+
+    `--nfp'
+          On certain systems, you must specify whether the machine has
+          a floating point unit.  These systems include
+          `m68k-sun-sunosN' and `m68k-isi-bsd'.  On any other system,
+          `--nfp' currently has no effect, though perhaps there are
+          other systems where it could usefully make a difference.
+
+     The `configure' script searches subdirectories of the source
+     directory for other compilers that are to be integrated into GNU
+     CC.  The GNU compiler for C++, called G++ is in a subdirectory
+     named `cp'.  `configure' inserts rules into `Makefile' to build
+     all of those compilers.
+
+     Here we spell out what files will be set up by `configure'.
+     Normally you need not be concerned with these files.
+
+        * A file named `config.h' is created that contains a `#include'
+          of the top-level config file for the machine you will run the
+          compiler on (*note The Configuration File:
+          (gcc.info)Config.).  This file is responsible for defining
+          information about the host machine.  It includes `tm.h'.
+
+          The top-level config file is located in the subdirectory
+          `config'.  Its name is always `xm-SOMETHING.h'; usually
+          `xm-MACHINE.h', but there are some exceptions.
+
+          If your system does not support symbolic links, you might
+          want to set up `config.h' to contain a `#include' command
+          which refers to the appropriate file.
+
+        * A file named `tconfig.h' is created which includes the
+          top-level config file for your target machine.  This is used
+          for compiling certain programs to run on that machine.
+
+        * A file named `tm.h' is created which includes the
+          machine-description macro file for your target machine.  It
+          should be in the subdirectory `config' and its name is often
+          `MACHINE.h'.
+
+        * The command file `configure' also constructs the file
+          `Makefile' by adding some text to the template file
+          `Makefile.in'.  The additional text comes from files in the
+          `config' directory, named `t-TARGET' and `x-HOST'.  If these
+          files do not exist, it means nothing needs to be added for a
+          given target or host.
+
+  4. The standard directory for installing GNU CC is `/usr/local/lib'.
+     If you want to install its files somewhere else, specify
+     `--prefix=DIR' when you run `configure'.  Here DIR is a directory
+     name to use instead of `/usr/local' for all purposes with one
+     exception: the directory `/usr/local/include' is searched for
+     header files no matter where you install the compiler.  To override
+     this name, use the `--local-prefix' option below.
+
+  5. Specify `--local-prefix=DIR' if you want the compiler to search
+     directory `DIR/include' for locally installed header files
+     *instead* of `/usr/local/include'.
+
+     You should specify `--local-prefix' *only* if your site has a
+     different convention (not `/usr/local') for where to put
+     site-specific files.
+
+     *Do not* specify `/usr' as the `--local-prefix'!  The directory
+     you use for `--local-prefix' *must not* contain any of the
+     system's standard header files.  If it did contain them, certain
+     programs would be miscompiled (including GNU Emacs, on certain
+     targets), because this would override and nullify the header file
+     corrections made by the `fixincludes' script.
+
+  6. Make sure the Bison parser generator is installed.  (This is
+     unnecessary if the Bison output files `c-parse.c' and `cexp.c' are
+     more recent than `c-parse.y' and `cexp.y' and you do not plan to
+     change the `.y' files.)
+
+     Bison versions older than Sept 8, 1988 will produce incorrect
+     output for `c-parse.c'.
+
+  7. If you have chosen a configuration for GNU CC which requires other
+     GNU tools (such as GAS or the GNU linker) instead of the standard
+     system tools, install the required tools in the build directory
+     under the names `as', `ld' or whatever is appropriate.  This will
+     enable the compiler to find the proper tools for compilation of
+     the program `enquire'.
+
+     Alternatively, you can do subsequent compilation using a value of
+     the `PATH' environment variable such that the necessary GNU tools
+     come before the standard system tools.
+
+  8. Build the compiler.  Just type `make LANGUAGES=c' in the compiler
+     directory.
+
+     `LANGUAGES=c' specifies that only the C compiler should be
+     compiled.  The makefile normally builds compilers for all the
+     supported languages; currently, C, C++ and Objective C.  However,
+     C is the only language that is sure to work when you build with
+     other non-GNU C compilers.  In addition, building anything but C
+     at this stage is a waste of time.
+
+     In general, you can specify the languages to build by typing the
+     argument `LANGUAGES="LIST"', where LIST is one or more words from
+     the list `c', `c++', and `objective-c'.  If you have any
+     additional GNU compilers as subdirectories of the GNU CC source
+     directory, you may also specify their names in this list.
+
+     Ignore any warnings you may see about "statement not reached" in
+     `insn-emit.c'; they are normal.  Also, warnings about "unknown
+     escape sequence" are normal in `genopinit.c' and perhaps some
+     other files.  Likewise, you should ignore warnings about "constant
+     is so large that it is unsigned" in `insn-emit.c' and
+     `insn-recog.c' and a warning about a comparison always being zero
+     in `enquire.o'.  Any other compilation errors may represent bugs in
+     the port to your machine or operating system, and should be
+     investigated and reported.
+
+     Some commercial compilers fail to compile GNU CC because they have
+     bugs or limitations.  For example, the Microsoft compiler is said
+     to run out of macro space.  Some Ultrix compilers run out of
+     expression space; then you need to break up the statement where
+     the problem happens.
+
+  9. If you are building a cross-compiler, stop here.  *Note
+     Cross-Compiler::.
+
+ 10. Move the first-stage object files and executables into a
+     subdirectory with this command:
+
+          make stage1
+
+     The files are moved into a subdirectory named `stage1'.  Once
+     installation is complete, you may wish to delete these files with
+     `rm -r stage1'.
+
+ 11. If you have chosen a configuration for GNU CC which requires other
+     GNU tools (such as GAS or the GNU linker) instead of the standard
+     system tools, install the required tools in the `stage1'
+     subdirectory under the names `as', `ld' or whatever is
+     appropriate.  This will enable the stage 1 compiler to find the
+     proper tools in the following stage.
+
+     Alternatively, you can do subsequent compilation using a value of
+     the `PATH' environment variable such that the necessary GNU tools
+     come before the standard system tools.
+
+ 12. Recompile the compiler with itself, with this command:
+
+          make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O2"
+
+     This is called making the stage 2 compiler.
+
+     The command shown above builds compilers for all the supported
+     languages.  If you don't want them all, you can specify the
+     languages to build by typing the argument `LANGUAGES="LIST"'.  LIST
+     should contain one or more words from the list `c', `c++',
+     `objective-c', and `proto'.  Separate the words with spaces.
+     `proto' stands for the programs `protoize' and `unprotoize'; they
+     are not a separate language, but you use `LANGUAGES' to enable or
+     disable their installation.
+
+     If you are going to build the stage 3 compiler, then you might
+     want to build only the C language in stage 2.
+
+     Once you have built the stage 2 compiler, if you are short of disk
+     space, you can delete the subdirectory `stage1'.
+
+     On a 68000 or 68020 system lacking floating point hardware, unless
+     you have selected a `tm.h' file that expects by default that there
+     is no such hardware, do this instead:
+
+          make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O2 -msoft-float"
+
+ 13. If you wish to test the compiler by compiling it with itself one
+     more time, install any other necessary GNU tools (such as GAS or
+     the GNU linker) in the `stage2' subdirectory as you did in the
+     `stage1' subdirectory, then do this:
+
+          make stage2
+          make CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O2"
+
+     This is called making the stage 3 compiler.  Aside from the `-B'
+     option, the compiler options should be the same as when you made
+     the stage 2 compiler.  But the `LANGUAGES' option need not be the
+     same.  The command shown above builds compilers for all the
+     supported languages; if you don't want them all, you can specify
+     the languages to build by typing the argument `LANGUAGES="LIST"',
+     as described above.
+
+     If you do not have to install any additional GNU tools, you may
+     use the command
+
+          make bootstrap LANGUAGES=LANGUAGE-LIST BOOT_CFLAGS=OPTION-LIST
+
+     instead of making `stage1', `stage2', and performing the two
+     compiler builds.
+
+ 14. Then compare the latest object files with the stage 2 object
+     files--they ought to be identical, aside from time stamps (if any).
+
+     On some systems, meaningful comparison of object files is
+     impossible; they always appear "different."  This is currently
+     true on Solaris and some systems that use ELF object file format.
+     On some versions of Irix on SGI machines and DEC Unix (OSF/1) on
+     Alpha systems, you will not be able to compare the files without
+     specifying `-save-temps'; see the description of individual
+     systems above to see if you get comparison failures.  You may have
+     similar problems on other systems.
+
+     Use this command to compare the files:
+
+          make compare
+
+     This will mention any object files that differ between stage 2 and
+     stage 3.  Any difference, no matter how innocuous, indicates that
+     the stage 2 compiler has compiled GNU CC incorrectly, and is
+     therefore a potentially serious bug which you should investigate
+     and report.
+
+     If your system does not put time stamps in the object files, then
+     this is a faster way to compare them (using the Bourne shell):
+
+          for file in *.o; do
+          cmp $file stage2/$file
+          done
+
+     If you have built the compiler with the `-mno-mips-tfile' option on
+     MIPS machines, you will not be able to compare the files.
+
+ 15. Install the compiler driver, the compiler's passes and run-time
+     support with `make install'.  Use the same value for `CC',
+     `CFLAGS' and `LANGUAGES' that you used when compiling the files
+     that are being installed.  One reason this is necessary is that
+     some versions of Make have bugs and recompile files gratuitously
+     when you do this step.  If you use the same variable values, those
+     files will be recompiled properly.
+
+     For example, if you have built the stage 2 compiler, you can use
+     the following command:
+
+          make install CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O" LANGUAGES="LIST"
+
+     This copies the files `cc1', `cpp' and `libgcc.a' to files `cc1',
+     `cpp' and `libgcc.a' in the directory
+     `/usr/local/lib/gcc-lib/TARGET/VERSION', which is where the
+     compiler driver program looks for them.  Here TARGET is the target
+     machine type specified when you ran `configure', and VERSION is
+     the version number of GNU CC.  This naming scheme permits various
+     versions and/or cross-compilers to coexist.
+
+     This also copies the driver program `xgcc' into
+     `/usr/local/bin/gcc', so that it appears in typical execution
+     search paths.
+
+     On some systems, this command causes recompilation of some files.
+     This is usually due to bugs in `make'.  You should either ignore
+     this problem, or use GNU Make.
+
+     *Warning: there is a bug in `alloca' in the Sun library.  To avoid
+     this bug, be sure to install the executables of GNU CC that were
+     compiled by GNU CC.  (That is, the executables from stage 2 or 3,
+     not stage 1.)  They use `alloca' as a built-in function and never
+     the one in the library.*
+
+     (It is usually better to install GNU CC executables from stage 2
+     or 3, since they usually run faster than the ones compiled with
+     some other compiler.)
+
+ 16. If you're going to use C++, it's likely that you need to also
+     install the libg++ distribution.  It should be available from the
+     same place where you got the GNU C distribution.  Just as GNU C
+     does not distribute a C runtime library, it also does not include
+     a C++ run-time library.  All I/O functionality, special class
+     libraries, etc., are available in the libg++ distribution.
+
+Configurations Supported by GNU CC
+==================================
+
+   Here are the possible CPU types:
+
+     1750a, a29k, alpha, arm, cN, clipper, dsp16xx, elxsi, h8300,
+     hppa1.0, hppa1.1, i370, i386, i486, i586, i860, i960, m68000, m68k,
+     m88k, mips, mipsel, mips64, mips64el, ns32k, powerpc, powerpcle,
+     pyramid, romp, rs6000, sh, sparc, sparclite, sparc64, vax, we32k.
+
+   Here are the recognized company names.  As you can see, customary
+abbreviations are used rather than the longer official names.
+
+     acorn, alliant, altos, apollo, att, bull, cbm, convergent, convex,
+     crds, dec, dg, dolphin, elxsi, encore, harris, hitachi, hp, ibm,
+     intergraph, isi, mips, motorola, ncr, next, ns, omron, plexus,
+     sequent, sgi, sony, sun, tti, unicom, wrs.
+
+   The company name is meaningful only to disambiguate when the rest of
+the information supplied is insufficient.  You can omit it, writing
+just `CPU-SYSTEM', if it is not needed.  For example, `vax-ultrix4.2'
+is equivalent to `vax-dec-ultrix4.2'.
+
+   Here is a list of system types:
+
+     386bsd, aix, acis, amigados, aos, aout, bosx, bsd, clix, coff,
+     ctix, cxux, dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms,
+     genix, gnu, gnu/linux, hiux, hpux, iris, irix, isc, luna, lynxos,
+     mach, minix, msdos, mvs, netbsd, newsos, nindy, ns, osf, osfrose,
+     ptx, riscix, riscos, rtu, sco, sim, solaris, sunos, sym, sysv,
+     udi, ultrix, unicos, uniplus, unos, vms, vsta, vxworks, winnt,
+     xenix.
+
+You can omit the system type; then `configure' guesses the operating
+system from the CPU and company.
+
+   You can add a version number to the system type; this may or may not
+make a difference.  For example, you can write `bsd4.3' or `bsd4.4' to
+distinguish versions of BSD.  In practice, the version number is most
+needed for `sysv3' and `sysv4', which are often treated differently.
+
+   If you specify an impossible combination such as `i860-dg-vms', then
+you may get an error message from `configure', or it may ignore part of
+the information and do the best it can with the rest.  `configure'
+always prints the canonical name for the alternative that it used.  GNU
+CC does not support all possible alternatives.
+
+   Often a particular model of machine has a name.  Many machine names
+are recognized as aliases for CPU/company combinations.  Thus, the
+machine name `sun3', mentioned above, is an alias for `m68k-sun'.
+Sometimes we accept a company name as a machine name, when the name is
+popularly used for a particular machine.  Here is a table of the known
+machine names:
+
+     3300, 3b1, 3bN, 7300, altos3068, altos, apollo68, att-7300,
+     balance, convex-cN, crds, decstation-3100, decstation, delta,
+     encore, fx2800, gmicro, hp7NN, hp8NN, hp9k2NN, hp9k3NN, hp9k7NN,
+     hp9k8NN, iris4d, iris, isi68, m3230, magnum, merlin, miniframe,
+     mmax, news-3600, news800, news, next, pbd, pc532, pmax, powerpc,
+     powerpcle, ps2, risc-news, rtpc, sun2, sun386i, sun386, sun3,
+     sun4, symmetry, tower-32, tower.
+
+Remember that a machine name specifies both the cpu type and the company
+name.  If you want to install your own homemade configuration files,
+you can use `local' as the company name to access them.  If you use
+configuration `CPU-local', the configuration name without the cpu prefix
+is used to form the configuration file names.
+
+   Thus, if you specify `m68k-local', configuration uses files
+`m68k.md', `local.h', `m68k.c', `xm-local.h', `t-local', and `x-local',
+all in the directory `config/m68k'.
+
+   Here is a list of configurations that have special treatment or
+special things you must know:
+
+`1750a-*-*'
+     MIL-STD-1750A processors.
+
+     Starting with GCC 2.6.1, the MIL-STD-1750A cross configuration no
+     longer supports the Tektronix Assembler, but instead produces
+     output for `as1750', an assembler/linker available under the GNU
+     Public License for the 1750A. Contact *kellogg@space.otn.dasa.de*
+     for more details on obtaining `as1750'.  A similarly licensed
+     simulator for the 1750A is available from same address.
+
+     You should ignore a fatal error during the building of libgcc
+     (libgcc is not yet implemented for the 1750A.)
+
+     The `as1750' assembler requires the file `ms1750.inc', which is
+     found in the directory `config/1750a'.
+
+     GNU CC produced the same sections as the Fairchild F9450 C
+     Compiler, namely:
+
+    `Normal'
+          The program code section.
+
+    `Static'
+          The read/write (RAM) data section.
+
+    `Konst'
+          The read-only (ROM) constants section.
+
+    `Init'
+          Initialization section (code to copy KREL to SREL).
+
+     The smallest addressable unit is 16 bits (BITS_PER_UNIT is 16).
+     This means that type `char' is represented with a 16-bit word per
+     character.  The 1750A's "Load/Store Upper/Lower Byte" instructions
+     are not used by GNU CC.
+
+`alpha-*-osf1'
+     Systems using processors that implement the DEC Alpha architecture
+     and are running the DEC Unix (OSF/1) operating system, for example
+     the DEC Alpha AXP systems.  (VMS on the Alpha is not currently
+     supported by GNU CC.)
+
+     GNU CC writes a `.verstamp' directive to the assembler output file
+     unless it is built as a cross-compiler.  It gets the version to
+     use from the system header file `/usr/include/stamp.h'.  If you
+     install a new version of DEC Unix, you should rebuild GCC to pick
+     up the new version stamp.
+
+     Note that since the Alpha is a 64-bit architecture,
+     cross-compilers from 32-bit machines will not generate code as
+     efficient as that generated when the compiler is running on a
+     64-bit machine because many optimizations that depend on being
+     able to represent a word on the target in an integral value on the
+     host cannot be performed.  Building cross-compilers on the Alpha
+     for 32-bit machines has only been tested in a few cases and may
+     not work properly.
+
+     `make compare' may fail on old versions of DEC Unix unless you add
+     `-save-temps' to `CFLAGS'.  On these systems, the name of the
+     assembler input file is stored in the object file, and that makes
+     comparison fail if it differs between the `stage1' and `stage2'
+     compilations.  The option `-save-temps' forces a fixed name to be
+     used for the assembler input file, instead of a randomly chosen
+     name in `/tmp'.  Do not add `-save-temps' unless the comparisons
+     fail without that option.  If you add `-save-temps', you will have
+     to manually delete the `.i' and `.s' files after each series of
+     compilations.
+
+     GNU CC now supports both the native (ECOFF) debugging format used
+     by DBX and GDB and an encapsulated STABS format for use only with
+     GDB.  See the discussion of the `--with-stabs' option of
+     `configure' above for more information on these formats and how to
+     select them.
+
+     There is a bug in DEC's assembler that produces incorrect line
+     numbers for ECOFF format when the `.align' directive is used.  To
+     work around this problem, GNU CC will not emit such alignment
+     directives while writing ECOFF format debugging information even
+     if optimization is being performed.  Unfortunately, this has the
+     very undesirable side-effect that code addresses when `-O' is
+     specified are different depending on whether or not `-g' is also
+     specified.
+
+     To avoid this behavior, specify `-gstabs+' and use GDB instead of
+     DBX.  DEC is now aware of this problem with the assembler and
+     hopes to provide a fix shortly.
+
+`arm'
+     Advanced RISC Machines ARM-family processors.  These are often
+     used in embedded applications.  There are no standard Unix
+     configurations.  This configuration corresponds to the basic
+     instruction sequences and will produce a.out format object modules.
+
+     You may need to make a variant of the file `arm.h' for your
+     particular configuration.
+
+`arm-*-riscix'
+     The ARM2 or ARM3 processor running RISC iX, Acorn's port of BSD
+     Unix.  If you are running a version of RISC iX prior to 1.2 then
+     you must specify the version number during configuration.  Note
+     that the assembler shipped with RISC iX does not support stabs
+     debugging information; a new version of the assembler, with stabs
+     support included, is now available from Acorn.
+
+`a29k'
+     AMD Am29k-family processors.  These are normally used in embedded
+     applications.  There are no standard Unix configurations.  This
+     configuration corresponds to AMD's standard calling sequence and
+     binary interface and is compatible with other 29k tools.
+
+     You may need to make a variant of the file `a29k.h' for your
+     particular configuration.
+
+`a29k-*-bsd'
+     AMD Am29050 used in a system running a variant of BSD Unix.
+
+`decstation-*'
+     DECstations can support three different personalities: Ultrix, DEC
+     OSF/1, and OSF/rose.  To configure GCC for these platforms use the
+     following configurations:
+
+    `decstation-ultrix'
+          Ultrix configuration.
+
+    `decstation-osf1'
+          Dec's version of OSF/1.
+
+    `decstation-osfrose'
+          Open Software Foundation reference port of OSF/1 which uses
+          the OSF/rose object file format instead of ECOFF.  Normally,
+          you would not select this configuration.
+
+     The MIPS C compiler needs to be told to increase its table size
+     for switch statements with the `-Wf,-XNg1500' option in order to
+     compile `cp/parse.c'.  If you use the `-O2' optimization option,
+     you also need to use `-Olimit 3000'.  Both of these options are
+     automatically generated in the `Makefile' that the shell script
+     `configure' builds.  If you override the `CC' make variable and
+     use the MIPS compilers, you may need to add `-Wf,-XNg1500 -Olimit
+     3000'.
+
+`elxsi-elxsi-bsd'
+     The Elxsi's C compiler has known limitations that prevent it from
+     compiling GNU C.  Please contact `mrs@cygnus.com' for more details.
+
+`dsp16xx'
+     A port to the AT&T DSP1610 family of processors.
+
+`h8300-*-*'
+     The calling convention and structure layout has changed in release
+     2.6.  All code must be recompiled.  The calling convention now
+     passes the first three arguments in function calls in registers.
+     Structures are no longer a multiple of 2 bytes.
+
+`hppa*-*-*'
+     There are two variants of this CPU, called 1.0 and 1.1, which have
+     different machine descriptions.  You must use the right one for
+     your machine.  All 7NN machines and 8N7 machines use 1.1, while
+     all other 8NN machines use 1.0.
+
+     The easiest way to handle this problem is to use `configure hpNNN'
+     or `configure hpNNN-hpux', where NNN is the model number of the
+     machine.  Then `configure' will figure out if the machine is a 1.0
+     or 1.1.  Use `uname -a' to find out the model number of your
+     machine.
+
+     `-g' does not work on HP-UX, since that system uses a peculiar
+     debugging format which GNU CC does not know about.  However, `-g'
+     will work if you also use GAS and GDB in conjunction with GCC.  We
+     highly recommend using GAS for all HP-PA configurations.
+
+     You should be using GAS-2.3 (or later) along with GDB-4.12 (or
+     later).  These can be retrieved from all the traditional GNU ftp
+     archive sites.
+
+     Build GAS and install the resulting binary as:
+
+          /usr/local/lib/gcc-lib/CONFIGURATION/GCCVERSION/as
+
+     where CONFIGURATION is the configuration name (perhaps
+     `hpNNN-hpux') and GCCVERSION is the GNU CC version number.  Do
+     this *before* starting the build process, otherwise you will get
+     errors from the HPUX assembler while building `libgcc2.a'.  The
+     command
+
+          make install-dir
+
+     will create the necessary directory hierarchy so you can install
+     GAS before building GCC.
+
+     To enable debugging, configure GNU CC with the `--with-gnu-as'
+     option before building.
+
+     It has been reported that GNU CC produces invalid assembly code for
+     1.1 machines running HP-UX 8.02 when using the HP assembler.
+     Typically the errors look like this:
+          as: bug.s @line#15 [err#1060]
+            Argument 0 or 2 in FARG upper
+                   - lookahead = ARGW1=FR,RTNVAL=GR
+          as: foo.s @line#28 [err#1060]
+            Argument 0 or 2 in FARG upper
+                   - lookahead = ARGW1=FR
+
+     You can check the version of HP-UX you are running by executing
+     the command `uname -r'.   If you are indeed running HP-UX 8.02 on
+     a PA and using the HP assembler then configure GCC with
+     "hpNNN-hpux8.02".
+
+`i370-*-*'
+     This port is very preliminary and has many known bugs.  We hope to
+     have a higher-quality port for this machine soon.
+
+`i386-*-linuxoldld'
+     Use this configuration to generate a.out binaries on Linux if you
+     do not have gas/binutils version 2.5.2 or later installed. This is
+     an obsolete configuration.
+
+`i386-*-linuxaout'
+     Use this configuration to generate a.out binaries on Linux. This
+     configuration is being superseded. You must use gas/binutils
+     version 2.5.2 or later.
+
+`i386-*-linux'
+     Use this configuration to generate ELF binaries on Linux.  You must
+     use gas/binutils version 2.5.2 or later.
+
+`i386-*-sco'
+     Compilation with RCC is recommended.  Also, it may be a good idea
+     to link with GNU malloc instead of the malloc that comes with the
+     system.
+
+`i386-*-sco3.2v4'
+     Use this configuration for SCO release 3.2 version 4.
+
+`i386-*-isc'
+     It may be a good idea to link with GNU malloc instead of the
+     malloc that comes with the system.
+
+     In ISC version 4.1, `sed' core dumps when building `deduced.h'.
+     Use the version of `sed' from version 4.0.
+
+`i386-*-esix'
+     It may be good idea to link with GNU malloc instead of the malloc
+     that comes with the system.
+
+`i386-ibm-aix'
+     You need to use GAS version 2.1 or later, and and LD from GNU
+     binutils version 2.2 or later.
+
+`i386-sequent-bsd'
+     Go to the Berkeley universe before compiling.  In addition, you
+     probably need to create a file named `string.h' containing just
+     one line: `#include <strings.h>'.
+
+`i386-sequent-ptx1*'
+     Sequent DYNIX/ptx 1.x.
+
+`i386-sequent-ptx2*'
+     Sequent DYNIX/ptx 2.x.
+
+`i386-sun-sunos4'
+     You may find that you need another version of GNU CC to begin
+     bootstrapping with, since the current version when built with the
+     system's own compiler seems to get an infinite loop compiling part
+     of `libgcc2.c'.  GNU CC version 2 compiled with GNU CC (any
+     version) seems not to have this problem.
+
+     See *Note Sun Install::, for information on installing GNU CC on
+     Sun systems.
+
+`i[345]86-*-winnt3.5'
+     This version requires a GAS that has not let been released.  Until
+     it is, you can get a prebuilt binary version via anonymous ftp from
+     `cs.washington.edu:pub/gnat' or `cs.nyu.edu:pub/gnat'. You must
+     also use the Microsoft header files from the Windows NT 3.5 SDK.
+     Find these on the CDROM in the `/mstools/h' directory dated
+     9/4/94.  You must use a fixed version of Microsoft linker made
+     especially for NT 3.5, which is also is available on the NT 3.5
+     SDK CDROM.  If you do not have this linker, can you also use the
+     linker from Visual C/C++ 1.0 or 2.0.
+
+     Installing GNU CC for NT builds a wrapper linker, called `ld.exe',
+     which mimics the behaviour of Unix `ld' in the specification of
+     libraries (`-L' and `-l').  `ld.exe' looks for both Unix and
+     Microsoft named libraries.  For example, if you specify `-lfoo',
+     `ld.exe' will look first for `libfoo.a' and then for `foo.lib'.
+
+     You may install GNU CC for Windows NT in one of two ways,
+     depending on whether or not you have a Unix-like shell and various
+     Unix-like utilities.
+
+       1. If you do not have a Unix-like shell and few Unix-like
+          utilities, you will use a DOS style batch script called
+          `configure.bat'.  Invoke it as `configure winnt' from an
+          MSDOS console window or from the program manager dialog box.
+          `configure.bat' assumes you have already installed and have
+          in your path a Unix-like `sed' program which is used to
+          create a working `Makefile' from `Makefile.in'.
+
+          `Makefile' uses the Microsoft Nmake program maintenance
+          utility and the Visual C/C++ V8.00 compiler to build GNU CC.
+          You need only have the utilities `sed' and `touch' to use
+          this installation method, which only automatically builds the
+          compiler itself.  You must then examine what `fixinc.winnt'
+          does, edit the header files by hand and build `libgcc.a'
+          manually.
+
+       2. The second type of installation assumes you are running a
+          Unix-like shell, have a complete suite of Unix-like utilities
+          in your path, and have a previous version of GNU CC already
+          installed, either through building it via the above
+          installation method or acquiring a pre-built binary.  In this
+          case, use the `configure' script in the normal fashion.
+
+`i860-intel-osf1'
+     This is the Paragon.  If you have version 1.0 of the operating
+     system, you need to take special steps to build GNU CC due to
+     peculiarities of the system.  Newer system versions have no
+     problem.  See the section `Installation Problems' in the GNU CC
+     Manual.
+
+`*-lynx-lynxos'
+     LynxOS 2.2 and earlier comes with GNU CC 1.x already installed as
+     `/bin/gcc'.  You should compile with this instead of `/bin/cc'.
+     You can tell GNU CC to use the GNU assembler and linker, by
+     specifying `--with-gnu-as --with-gnu-ld' when configuring.  These
+     will produce COFF format object files and executables;  otherwise
+     GNU CC will use the installed tools, which produce a.out format
+     executables.
+
+`m68000-hp-bsd'
+     HP 9000 series 200 running BSD.  Note that the C compiler that
+     comes with this system cannot compile GNU CC; contact
+     `law@cs.utah.edu' to get binaries of GNU CC for bootstrapping.
+
+`m68k-altos'
+     Altos 3068.  You must use the GNU assembler, linker and debugger.
+     Also, you must fix a kernel bug.  Details in the file
+     `README.ALTOS'.
+
+`m68k-att-sysv'
+     AT&T 3b1, a.k.a. 7300 PC.  Special procedures are needed to
+     compile GNU CC with this machine's standard C compiler, due to
+     bugs in that compiler.  You can bootstrap it more easily with
+     previous versions of GNU CC if you have them.
+
+     Installing GNU CC on the 3b1 is difficult if you do not already
+     have GNU CC running, due to bugs in the installed C compiler.
+     However, the following procedure might work.  We are unable to
+     test it.
+
+       1. Comment out the `#include "config.h"' line on line 37 of
+          `cccp.c' and do `make cpp'.  This makes a preliminary version
+          of GNU cpp.
+
+       2. Save the old `/lib/cpp' and copy the preliminary GNU cpp to
+          that file name.
+
+       3. Undo your change in `cccp.c', or reinstall the original
+          version, and do `make cpp' again.
+
+       4. Copy this final version of GNU cpp into `/lib/cpp'.
+
+       5. Replace every occurrence of `obstack_free' in the file
+          `tree.c' with `_obstack_free'.
+
+       6. Run `make' to get the first-stage GNU CC.
+
+       7. Reinstall the original version of `/lib/cpp'.
+
+       8. Now you can compile GNU CC with itself and install it in the
+          normal fashion.
+
+`m68k-bull-sysv'
+     Bull DPX/2 series 200 and 300 with BOS-2.00.45 up to BOS-2.01. GNU
+     CC works either with native assembler or GNU assembler. You can use
+     GNU assembler with native coff generation by providing
+     `--with-gnu-as' to the configure script or use GNU assembler with
+     dbx-in-coff encapsulation by providing `--with-gnu-as --stabs'.
+     For any problem with native assembler or for availability of the
+     DPX/2 port of GAS, contact `F.Pierresteguy@frcl.bull.fr'.
+
+`m68k-crds-unox'
+     Use `configure unos' for building on Unos.
+
+     The Unos assembler is named `casm' instead of `as'.  For some
+     strange reason linking `/bin/as' to `/bin/casm' changes the
+     behavior, and does not work.  So, when installing GNU CC, you
+     should install the following script as `as' in the subdirectory
+     where the passes of GCC are installed:
+
+          #!/bin/sh
+          casm $*
+
+     The default Unos library is named `libunos.a' instead of `libc.a'.
+     To allow GNU CC to function, either change all references to
+     `-lc' in `gcc.c' to `-lunos' or link `/lib/libc.a' to
+     `/lib/libunos.a'.
+
+     When compiling GNU CC with the standard compiler, to overcome bugs
+     in the support of `alloca', do not use `-O' when making stage 2.
+     Then use the stage 2 compiler with `-O' to make the stage 3
+     compiler.  This compiler will have the same characteristics as the
+     usual stage 2 compiler on other systems.  Use it to make a stage 4
+     compiler and compare that with stage 3 to verify proper
+     compilation.
+
+     (Perhaps simply defining `ALLOCA' in `x-crds' as described in the
+     comments there will make the above paragraph superfluous.  Please
+     inform us of whether this works.)
+
+     Unos uses memory segmentation instead of demand paging, so you
+     will need a lot of memory.  5 Mb is barely enough if no other
+     tasks are running.  If linking `cc1' fails, try putting the object
+     files into a library and linking from that library.
+
+`m68k-hp-hpux'
+     HP 9000 series 300 or 400 running HP-UX.  HP-UX version 8.0 has a
+     bug in the assembler that prevents compilation of GNU CC.  To fix
+     it, get patch PHCO_4484 from HP.
+
+     In addition, if you wish to use gas `--with-gnu-as' you must use
+     gas version 2.1 or later, and you must use the GNU linker version
+     2.1 or later.  Earlier versions of gas relied upon a program which
+     converted the gas output into the native HP/UX format, but that
+     program has not been kept up to date.  gdb does not understand
+     that native HP/UX format, so you must use gas if you wish to use
+     gdb.
+
+`m68k-sun'
+     Sun 3.  We do not provide a configuration file to use the Sun FPA
+     by default, because programs that establish signal handlers for
+     floating point traps inherently cannot work with the FPA.
+
+     See *Note Sun Install::, for information on installing GNU CC on
+     Sun systems.
+
+`m88k-*-svr3'
+     Motorola m88k running the AT&T/Unisoft/Motorola V.3 reference port.
+     These systems tend to use the Green Hills C, revision 1.8.5, as the
+     standard C compiler.  There are apparently bugs in this compiler
+     that result in object files differences between stage 2 and stage
+     3.  If this happens, make the stage 4 compiler and compare it to
+     the stage 3 compiler.  If the stage 3 and stage 4 object files are
+     identical, this suggests you encountered a problem with the
+     standard C compiler; the stage 3 and 4 compilers may be usable.
+
+     It is best, however, to use an older version of GNU CC for
+     bootstrapping if you have one.
+
+`m88k-*-dgux'
+     Motorola m88k running DG/UX.  To build 88open BCS native or cross
+     compilers on DG/UX, specify the configuration name as
+     `m88k-*-dguxbcs' and build in the 88open BCS software development
+     environment.  To build ELF native or cross compilers on DG/UX,
+     specify `m88k-*-dgux' and build in the DG/UX ELF development
+     environment.  You set the software development environment by
+     issuing `sde-target' command and specifying either `m88kbcs' or
+     `m88kdguxelf' as the operand.
+
+     If you do not specify a configuration name, `configure' guesses the
+     configuration based on the current software development
+     environment.
+
+`m88k-tektronix-sysv3'
+     Tektronix XD88 running UTekV 3.2e.  Do not turn on optimization
+     while building stage1 if you bootstrap with the buggy Green Hills
+     compiler.  Also, The bundled LAI System V NFS is buggy so if you
+     build in an NFS mounted directory, start from a fresh reboot, or
+     avoid NFS all together.  Otherwise you may have trouble getting
+     clean comparisons between stages.
+
+`mips-mips-bsd'
+     MIPS machines running the MIPS operating system in BSD mode.  It's
+     possible that some old versions of the system lack the functions
+     `memcpy', `memcmp', and `memset'.  If your system lacks these, you
+     must remove or undo the definition of `TARGET_MEM_FUNCTIONS' in
+     `mips-bsd.h'.
+
+     The MIPS C compiler needs to be told to increase its table size
+     for switch statements with the `-Wf,-XNg1500' option in order to
+     compile `cp/parse.c'.  If you use the `-O2' optimization option,
+     you also need to use `-Olimit 3000'.  Both of these options are
+     automatically generated in the `Makefile' that the shell script
+     `configure' builds.  If you override the `CC' make variable and
+     use the MIPS compilers, you may need to add `-Wf,-XNg1500 -Olimit
+     3000'.
+
+`mips-mips-riscos*'
+     The MIPS C compiler needs to be told to increase its table size
+     for switch statements with the `-Wf,-XNg1500' option in order to
+     compile `cp/parse.c'.  If you use the `-O2' optimization option,
+     you also need to use `-Olimit 3000'.  Both of these options are
+     automatically generated in the `Makefile' that the shell script
+     `configure' builds.  If you override the `CC' make variable and
+     use the MIPS compilers, you may need to add `-Wf,-XNg1500 -Olimit
+     3000'.
+
+     MIPS computers running RISC-OS can support four different
+     personalities: default, BSD 4.3, System V.3, and System V.4 (older
+     versions of RISC-OS don't support V.4).  To configure GCC for
+     these platforms use the following configurations:
+
+    `mips-mips-riscos`rev''
+          Default configuration for RISC-OS, revision `rev'.
+
+    `mips-mips-riscos`rev'bsd'
+          BSD 4.3 configuration for RISC-OS, revision `rev'.
+
+    `mips-mips-riscos`rev'sysv4'
+          System V.4 configuration for RISC-OS, revision `rev'.
+
+    `mips-mips-riscos`rev'sysv'
+          System V.3 configuration for RISC-OS, revision `rev'.
+
+     The revision `rev' mentioned above is the revision of RISC-OS to
+     use.  You must reconfigure GCC when going from a RISC-OS revision
+     4 to RISC-OS revision 5.  This has the effect of avoiding a linker
+     bug.
+
+`mips-sgi-*'
+     In order to compile GCC on an SGI running IRIX 4, the "c.hdr.lib"
+     option must be installed from the CD-ROM supplied from Silicon
+     Graphics.  This is found on the 2nd CD in release 4.0.1.
+
+     In order to compile GCC on an SGI running IRIX 5, the
+     "compiler_dev.hdr" subsystem must be installed from the IDO CD-ROM
+     supplied by Silicon Graphics.
+
+     `make compare' may fail on version 5 of IRIX unless you add
+     `-save-temps' to `CFLAGS'.  On these systems, the name of the
+     assembler input file is stored in the object file, and that makes
+     comparison fail if it differs between the `stage1' and `stage2'
+     compilations.  The option `-save-temps' forces a fixed name to be
+     used for the assembler input file, instead of a randomly chosen
+     name in `/tmp'.  Do not add `-save-temps' unless the comparisons
+     fail without that option.  If you do you `-save-temps', you will
+     have to manually delete the `.i' and `.s' files after each series
+     of compilations.
+
+     The MIPS C compiler needs to be told to increase its table size
+     for switch statements with the `-Wf,-XNg1500' option in order to
+     compile `cp/parse.c'.  If you use the `-O2' optimization option,
+     you also need to use `-Olimit 3000'.  Both of these options are
+     automatically generated in the `Makefile' that the shell script
+     `configure' builds.  If you override the `CC' make variable and
+     use the MIPS compilers, you may need to add `-Wf,-XNg1500 -Olimit
+     3000'.
+
+     On Irix version 4.0.5F, and perhaps on some other versions as well,
+     there is an assembler bug that reorders instructions incorrectly.
+     To work around it, specify the target configuration
+     `mips-sgi-irix4loser'.  This configuration inhibits assembler
+     optimization.
+
+     In a compiler configured with target `mips-sgi-irix4', you can turn
+     off assembler optimization by using the `-noasmopt' option.  This
+     compiler option passes the option `-O0' to the assembler, to
+     inhibit reordering.
+
+     The `-noasmopt' option can be useful for testing whether a problem
+     is due to erroneous assembler reordering.  Even if a problem does
+     not go away with `-noasmopt', it may still be due to assembler
+     reordering--perhaps GNU CC itself was miscompiled as a result.
+
+     To enable debugging under Irix 5, you must use GNU as 2.5 or later,
+     and use the `--with-gnu-as' configure option when configuring gcc.
+     GNU as is distributed as part of the binutils package.
+
+`mips-sony-sysv'
+     Sony MIPS NEWS.  This works in NEWSOS 5.0.1, but not in 5.0.2
+     (which uses ELF instead of COFF).  Support for 5.0.2 will probably
+     be provided soon by volunteers.  In particular, the linker does
+     not like the code generated by GCC when shared libraries are
+     linked in.
+
+`ns32k-encore'
+     Encore ns32000 system.  Encore systems are supported only under
+     BSD.
+
+`ns32k-*-genix'
+     National Semiconductor ns32000 system.  Genix has bugs in `alloca'
+     and `malloc'; you must get the compiled versions of these from GNU
+     Emacs.
+
+`ns32k-sequent'
+     Go to the Berkeley universe before compiling.  In addition, you
+     probably need to create a file named `string.h' containing just
+     one line: `#include <strings.h>'.
+
+`ns32k-utek'
+     UTEK ns32000 system ("merlin").  The C compiler that comes with
+     this system cannot compile GNU CC; contact `tektronix!reed!mason'
+     to get binaries of GNU CC for bootstrapping.
+
+`romp-*-aos'
+`romp-*-mach'
+     The only operating systems supported for the IBM RT PC are AOS and
+     MACH.  GNU CC does not support AIX running on the RT.  We
+     recommend you compile GNU CC with an earlier version of itself; if
+     you compile GNU CC with `hc', the Metaware compiler, it will work,
+     but you will get mismatches between the stage 2 and stage 3
+     compilers in various files.  These errors are minor differences in
+     some floating-point constants and can be safely ignored; the stage
+     3 compiler is correct.
+
+`rs6000-*-aix'
+`powerpc-*-aix'
+     Various early versions of each release of the IBM XLC compiler
+     will not bootstrap GNU CC.  Symptoms include differences between
+     the stage2 and stage3 object files, and errors when compiling
+     `libgcc.a' or `enquire'.  Known problematic releases include:
+     xlc-1.2.1.8, xlc-1.3.0.0 (distributed with AIX 3.2.5), and
+     xlc-1.3.0.19.  Both xlc-1.2.1.28 and xlc-1.3.0.24 (PTF 432238) are
+     known to produce working versions of GNU CC, but most other recent
+     releases correctly bootstrap GNU CC.  Also, releases of AIX prior
+     to AIX 3.2.4 include a version of the IBM assembler which does not
+     accept debugging directives: assembler updates are available as
+     PTFs.  Also, if you are using AIX 3.2.5 or greater and the GNU
+     assembler, you must have a version modified after October 16th,
+     1995 in order for the GNU C compiler to build.  See the file
+     `README.RS6000' for more details on of these problems.
+
+     GNU CC does not yet support the 64-bit PowerPC instructions.
+
+     Objective C does not work on this architecture because it makes
+     assumptions that are incompatible with the calling conventions.
+
+     AIX on the RS/6000 provides support (NLS) for environments outside
+     of the United States.  Compilers and assemblers use NLS to support
+     locale-specific representations of various objects including
+     floating-point numbers ("." vs "," for separating decimal
+     fractions).  There have been problems reported where the library
+     linked with GNU CC does not produce the same floating-point
+     formats that the assembler accepts.  If you have this problem, set
+     the LANG environment variable to "C" or "En_US".
+
+     Due to changes in the way that GNU CC invokes the binder (linker)
+     for AIX 4.1, you may now receive warnings of duplicate symbols
+     from the link step that were not reported before.  The assembly
+     files generated by GNU CC for AIX have always included multiple
+     symbol definitions for certain global variable and function
+     declarations in the original program.  The warnings should not
+     prevent the linker from producing a correct library or runnable
+     executable.
+
+`powerpc-*-elf'
+`powerpc-*-sysv4'
+     PowerPC system in big endian mode, running System V.4.
+
+     This configuration is currently under development.
+
+`powerpc-*-eabiaix'
+     Embedded PowerPC system in big endian mode with -mcall-aix
+     selected as the default.  This system is currently under
+     development.
+
+`powerpc-*-eabisim'
+     Embedded PowerPC system in big endian mode for use in running
+     under the PSIM simulator.  This system is currently under
+     development.
+
+`powerpc-*-eabi'
+     Embedded PowerPC system in big endian mode.
+
+     This configuration is currently under development.
+
+`powerpcle-*-elf'
+`powerpcle-*-sysv4'
+     PowerPC system in little endian mode, running System V.4.
+
+     This configuration is currently under development.
+
+`powerpcle-*-sysv4'
+     Embedded PowerPC system in little endian mode.
+
+     This system is currently under development.
+
+`powerpcle-*-eabisim'
+     Embedded PowerPC system in little endian mode for use in running
+     under the PSIM simulator.
+
+     This system is currently under development.
+
+`powerpcle-*-eabi'
+     Embedded PowerPC system in little endian mode.
+
+     This configuration is currently under development.
+
+`vax-dec-ultrix'
+     Don't try compiling with Vax C (`vcc').  It produces incorrect code
+     in some cases (for example, when `alloca' is used).
+
+     Meanwhile, compiling `cp/parse.c' with pcc does not work because of
+     an internal table size limitation in that compiler.  To avoid this
+     problem, compile just the GNU C compiler first, and use it to
+     recompile building all the languages that you want to run.
+
+`sparc-sun-*'
+     See *Note Sun Install::, for information on installing GNU CC on
+     Sun systems.
+
+`vax-dec-vms'
+     See *Note VMS Install::, for details on how to install GNU CC on
+     VMS.
+
+`we32k-*-*'
+     These computers are also known as the 3b2, 3b5, 3b20 and other
+     similar names.  (However, the 3b1 is actually a 68000; see *Note
+     Configurations::.)
+
+     Don't use `-g' when compiling with the system's compiler.  The
+     system's linker seems to be unable to handle such a large program
+     with debugging information.
+
+     The system's compiler runs out of capacity when compiling `stmt.c'
+     in GNU CC.  You can work around this by building `cpp' in GNU CC
+     first, then use that instead of the system's preprocessor with the
+     system's C compiler to compile `stmt.c'.  Here is how:
+
+          mv /lib/cpp /lib/cpp.att
+          cp cpp /lib/cpp.gnu
+          echo '/lib/cpp.gnu -traditional ${1+"$@"}' > /lib/cpp
+          chmod +x /lib/cpp
+
+     The system's compiler produces bad code for some of the GNU CC
+     optimization files.  So you must build the stage 2 compiler without
+     optimization.  Then build a stage 3 compiler with optimization.
+     That executable should work.  Here are the necessary commands:
+
+          make LANGUAGES=c CC=stage1/xgcc CFLAGS="-Bstage1/ -g"
+          make stage2
+          make CC=stage2/xgcc CFLAGS="-Bstage2/ -g -O"
+
+     You may need to raise the ULIMIT setting to build a C++ compiler,
+     as the file `cc1plus' is larger than one megabyte.
+
+Compilation in a Separate Directory
+===================================
+
+   If you wish to build the object files and executables in a directory
+other than the one containing the source files, here is what you must
+do differently:
+
+  1. Make sure you have a version of Make that supports the `VPATH'
+     feature.  (GNU Make supports it, as do Make versions on most BSD
+     systems.)
+
+  2. If you have ever run `configure' in the source directory, you must
+     undo the configuration.  Do this by running:
+
+          make distclean
+
+  3. Go to the directory in which you want to build the compiler before
+     running `configure':
+
+          mkdir gcc-sun3
+          cd gcc-sun3
+
+     On systems that do not support symbolic links, this directory must
+     be on the same file system as the source code directory.
+
+  4. Specify where to find `configure' when you run it:
+
+          ../gcc/configure ...
+
+     This also tells `configure' where to find the compiler sources;
+     `configure' takes the directory from the file name that was used to
+     invoke it.  But if you want to be sure, you can specify the source
+     directory with the `--srcdir' option, like this:
+
+          ../gcc/configure --srcdir=../gcc OTHER OPTIONS
+
+     The directory you specify with `--srcdir' need not be the same as
+     the one that `configure' is found in.
+
+   Now, you can run `make' in that directory.  You need not repeat the
+configuration steps shown above, when ordinary source files change.  You
+must, however, run `configure' again when the configuration files
+change, if your system does not support symbolic links.
+
+Building and Installing a Cross-Compiler
+========================================
+
+   GNU CC can function as a cross-compiler for many machines, but not
+all.
+
+   * Cross-compilers for the Mips as target using the Mips assembler
+     currently do not work, because the auxiliary programs
+     `mips-tdump.c' and `mips-tfile.c' can't be compiled on anything
+     but a Mips.  It does work to cross compile for a Mips if you use
+     the GNU assembler and linker.
+
+   * Cross-compilers between machines with different floating point
+     formats have not all been made to work.  GNU CC now has a floating
+     point emulator with which these can work, but each target machine
+     description needs to be updated to take advantage of it.
+
+   * Cross-compilation between machines of different word sizes is
+     somewhat problematic and sometimes does not work.
+
+   Since GNU CC generates assembler code, you probably need a
+cross-assembler that GNU CC can run, in order to produce object files.
+If you want to link on other than the target machine, you need a
+cross-linker as well.  You also need header files and libraries suitable
+for the target machine that you can install on the host machine.
+
+Steps of Cross-Compilation
+--------------------------
+
+   To compile and run a program using a cross-compiler involves several
+steps:
+
+   * Run the cross-compiler on the host machine to produce assembler
+     files for the target machine.  This requires header files for the
+     target machine.
+
+   * Assemble the files produced by the cross-compiler.  You can do this
+     either with an assembler on the target machine, or with a
+     cross-assembler on the host machine.
+
+   * Link those files to make an executable.  You can do this either
+     with a linker on the target machine, or with a cross-linker on the
+     host machine.  Whichever machine you use, you need libraries and
+     certain startup files (typically `crt....o') for the target
+     machine.
+
+   It is most convenient to do all of these steps on the same host
+machine, since then you can do it all with a single invocation of GNU
+CC.  This requires a suitable cross-assembler and cross-linker.  For
+some targets, the GNU assembler and linker are available.
+
+Configuring a Cross-Compiler
+----------------------------
+
+   To build GNU CC as a cross-compiler, you start out by running
+`configure'.  Use the `--target=TARGET' to specify the target type.  If
+`configure' was unable to correctly identify the system you are running
+on, also specify the `--build=BUILD' option.  For example, here is how
+to configure for a cross-compiler that produces code for an HP 68030
+system running BSD on a system that `configure' can correctly identify:
+
+     ./configure --target=m68k-hp-bsd4.3
+
+Tools and Libraries for a Cross-Compiler
+----------------------------------------
+
+   If you have a cross-assembler and cross-linker available, you should
+install them now.  Put them in the directory `/usr/local/TARGET/bin'.
+Here is a table of the tools you should put in this directory:
+
+`as'
+     This should be the cross-assembler.
+
+`ld'
+     This should be the cross-linker.
+
+`ar'
+     This should be the cross-archiver: a program which can manipulate
+     archive files (linker libraries) in the target machine's format.
+
+`ranlib'
+     This should be a program to construct a symbol table in an archive
+     file.
+
+   The installation of GNU CC will find these programs in that
+directory, and copy or link them to the proper place to for the
+cross-compiler to find them when run later.
+
+   The easiest way to provide these files is to build the Binutils
+package and GAS.  Configure them with the same `--host' and `--target'
+options that you use for configuring GNU CC, then build and install
+them.  They install their executables automatically into the proper
+directory.  Alas, they do not support all the targets that GNU CC
+supports.
+
+   If you want to install libraries to use with the cross-compiler,
+such as a standard C library, put them in the directory
+`/usr/local/TARGET/lib'; installation of GNU CC copies all all the
+files in that subdirectory into the proper place for GNU CC to find
+them and link with them.  Here's an example of copying some libraries
+from a target machine:
+
+     ftp TARGET-MACHINE
+     lcd /usr/local/TARGET/lib
+     cd /lib
+     get libc.a
+     cd /usr/lib
+     get libg.a
+     get libm.a
+     quit
+
+The precise set of libraries you'll need, and their locations on the
+target machine, vary depending on its operating system.
+
+   Many targets require "start files" such as `crt0.o' and `crtn.o'
+which are linked into each executable; these too should be placed in
+`/usr/local/TARGET/lib'.  There may be several alternatives for
+`crt0.o', for use with profiling or other compilation options.  Check
+your target's definition of `STARTFILE_SPEC' to find out what start
+files it uses.  Here's an example of copying these files from a target
+machine:
+
+     ftp TARGET-MACHINE
+     lcd /usr/local/TARGET/lib
+     prompt
+     cd /lib
+     mget *crt*.o
+     cd /usr/lib
+     mget *crt*.o
+     quit
+
+`libgcc.a' and Cross-Compilers
+------------------------------
+
+   Code compiled by GNU CC uses certain runtime support functions
+implicitly.  Some of these functions can be compiled successfully with
+GNU CC itself, but a few cannot be.  These problem functions are in the
+source file `libgcc1.c'; the library made from them is called
+`libgcc1.a'.
+
+   When you build a native compiler, these functions are compiled with
+some other compiler-the one that you use for bootstrapping GNU CC.
+Presumably it knows how to open code these operations, or else knows how
+to call the run-time emulation facilities that the machine comes with.
+But this approach doesn't work for building a cross-compiler.  The
+compiler that you use for building knows about the host system, not the
+target system.
+
+   So, when you build a cross-compiler you have to supply a suitable
+library `libgcc1.a' that does the job it is expected to do.
+
+   To compile `libgcc1.c' with the cross-compiler itself does not work.
+The functions in this file are supposed to implement arithmetic
+operations that GNU CC does not know how to open code for your target
+machine.  If these functions are compiled with GNU CC itself, they will
+compile into infinite recursion.
+
+   On any given target, most of these functions are not needed.  If GNU
+CC can open code an arithmetic operation, it will not call these
+functions to perform the operation.  It is possible that on your target
+machine, none of these functions is needed.  If so, you can supply an
+empty library as `libgcc1.a'.
+
+   Many targets need library support only for multiplication and
+division.  If you are linking with a library that contains functions for
+multiplication and division, you can tell GNU CC to call them directly
+by defining the macros `MULSI3_LIBCALL', and the like.  These macros
+need to be defined in the target description macro file.  For some
+targets, they are defined already.  This may be sufficient to avoid the
+need for libgcc1.a; if so, you can supply an empty library.
+
+   Some targets do not have floating point instructions; they need other
+functions in `libgcc1.a', which do floating arithmetic.  Recent
+versions of GNU CC have a file which emulates floating point.  With a
+certain amount of work, you should be able to construct a floating
+point emulator that can be used as `libgcc1.a'.  Perhaps future
+versions will contain code to do this automatically and conveniently.
+That depends on whether someone wants to implement it.
+
+   Some embedded targets come with all the necessary `libgcc1.a'
+routines written in C or assembler.  These targets build `libgcc1.a'
+automatically and you do not need to do anything special for them.
+Other embedded targets do not need any `libgcc1.a' routines since all
+the necessary operations are supported by the hardware.
+
+   If your target system has another C compiler, you can configure GNU
+CC as a native compiler on that machine, build just `libgcc1.a' with
+`make libgcc1.a' on that machine, and use the resulting file with the
+cross-compiler.  To do this, execute the following on the target
+machine:
+
+     cd TARGET-BUILD-DIR
+     ./configure --host=sparc --target=sun3
+     make libgcc1.a
+
+And then this on the host machine:
+
+     ftp TARGET-MACHINE
+     binary
+     cd TARGET-BUILD-DIR
+     get libgcc1.a
+     quit
+
+   Another way to provide the functions you need in `libgcc1.a' is to
+define the appropriate `perform_...' macros for those functions.  If
+these definitions do not use the C arithmetic operators that they are
+meant to implement, you should be able to compile them with the
+cross-compiler you are building.  (If these definitions already exist
+for your target file, then you are all set.)
+
+   To build `libgcc1.a' using the perform macros, use
+`LIBGCC1=libgcc1.a OLDCC=./xgcc' when building the compiler.
+Otherwise, you should place your replacement library under the name
+`libgcc1.a' in the directory in which you will build the
+cross-compiler, before you run `make'.
+
+Cross-Compilers and Header Files
+--------------------------------
+
+   If you are cross-compiling a standalone program or a program for an
+embedded system, then you may not need any header files except the few
+that are part of GNU CC (and those of your program).  However, if you
+intend to link your program with a standard C library such as `libc.a',
+then you probably need to compile with the header files that go with
+the library you use.
+
+   The GNU C compiler does not come with these files, because (1) they
+are system-specific, and (2) they belong in a C library, not in a
+compiler.
+
+   If the GNU C library supports your target machine, then you can get
+the header files from there (assuming you actually use the GNU library
+when you link your program).
+
+   If your target machine comes with a C compiler, it probably comes
+with suitable header files also.  If you make these files accessible
+from the host machine, the cross-compiler can use them also.
+
+   Otherwise, you're on your own in finding header files to use when
+cross-compiling.
+
+   When you have found suitable header files, put them in
+`/usr/local/TARGET/include', before building the cross compiler.  Then
+installation will run fixincludes properly and install the corrected
+versions of the header files where the compiler will use them.
+
+   Provide the header files before you build the cross-compiler, because
+the build stage actually runs the cross-compiler to produce parts of
+`libgcc.a'.  (These are the parts that *can* be compiled with GNU CC.)
+Some of them need suitable header files.
+
+   Here's an example showing how to copy the header files from a target
+machine.  On the target machine, do this:
+
+     (cd /usr/include; tar cf - .) > tarfile
+
+   Then, on the host machine, do this:
+
+     ftp TARGET-MACHINE
+     lcd /usr/local/TARGET/include
+     get tarfile
+     quit
+     tar xf tarfile
+
+Actually Building the Cross-Compiler
+------------------------------------
+
+   Now you can proceed just as for compiling a single-machine compiler
+through the step of building stage 1.  If you have not provided some
+sort of `libgcc1.a', then compilation will give up at the point where
+it needs that file, printing a suitable error message.  If you do
+provide `libgcc1.a', then building the compiler will automatically
+compile and link a test program called `libgcc1-test'; if you get
+errors in the linking, it means that not all of the necessary routines
+in `libgcc1.a' are available.
+
+   You must provide the header file `float.h'.  One way to do this is
+to compile `enquire' and run it on your target machine.  The job of
+`enquire' is to run on the target machine and figure out by experiment
+the nature of its floating point representation.  `enquire' records its
+findings in the header file `float.h'.  If you can't produce this file
+by running `enquire' on the target machine, then you will need to come
+up with a suitable `float.h' in some other way (or else, avoid using it
+in your programs).
+
+   Do not try to build stage 2 for a cross-compiler.  It doesn't work to
+rebuild GNU CC as a cross-compiler using the cross-compiler, because
+that would produce a program that runs on the target machine, not on the
+host.  For example, if you compile a 386-to-68030 cross-compiler with
+itself, the result will not be right either for the 386 (because it was
+compiled into 68030 code) or for the 68030 (because it was configured
+for a 386 as the host).  If you want to compile GNU CC into 68030 code,
+whether you compile it on a 68030 or with a cross-compiler on a 386, you
+must specify a 68030 as the host when you configure it.
+
+   To install the cross-compiler, use `make install', as usual.
+
+Installing GNU CC on the Sun
+============================
+
+   On Solaris (version 2.1), do not use the linker or other tools in
+`/usr/ucb' to build GNU CC.  Use `/usr/ccs/bin'.
+
+   Make sure the environment variable `FLOAT_OPTION' is not set when
+you compile `libgcc.a'.  If this option were set to `f68881' when
+`libgcc.a' is compiled, the resulting code would demand to be linked
+with a special startup file and would not link properly without special
+pains.
+
+   There is a bug in `alloca' in certain versions of the Sun library.
+To avoid this bug, install the binaries of GNU CC that were compiled by
+GNU CC.  They use `alloca' as a built-in function and never the one in
+the library.
+
+   Some versions of the Sun compiler crash when compiling GNU CC.  The
+problem is a segmentation fault in cpp.  This problem seems to be due to
+the bulk of data in the environment variables.  You may be able to avoid
+it by using the following command to compile GNU CC with Sun CC:
+
+     make CC="TERMCAP=x OBJS=x LIBFUNCS=x STAGESTUFF=x cc"
+
+Installing GNU CC on VMS
+========================
+
+   The VMS version of GNU CC is distributed in a backup saveset
+containing both source code and precompiled binaries.
+
+   To install the `gcc' command so you can use the compiler easily, in
+the same manner as you use the VMS C compiler, you must install the VMS
+CLD file for GNU CC as follows:
+
+  1. Define the VMS logical names `GNU_CC' and `GNU_CC_INCLUDE' to
+     point to the directories where the GNU CC executables
+     (`gcc-cpp.exe', `gcc-cc1.exe', etc.) and the C include files are
+     kept respectively.  This should be done with the commands:
+
+          $ assign /system /translation=concealed -
+            disk:[gcc.] gnu_cc
+          $ assign /system /translation=concealed -
+            disk:[gcc.include.] gnu_cc_include
+
+     with the appropriate disk and directory names.  These commands can
+     be placed in your system startup file so they will be executed
+     whenever the machine is rebooted.  You may, if you choose, do this
+     via the `GCC_INSTALL.COM' script in the `[GCC]' directory.
+
+  2. Install the `GCC' command with the command line:
+
+          $ set command /table=sys$common:[syslib]dcltables -
+            /output=sys$common:[syslib]dcltables gnu_cc:[000000]gcc
+          $ install replace sys$common:[syslib]dcltables
+
+  3. To install the help file, do the following:
+
+          $ library/help sys$library:helplib.hlb gcc.hlp
+
+     Now you can invoke the compiler with a command like `gcc /verbose
+     file.c', which is equivalent to the command `gcc -v -c file.c' in
+     Unix.
+
+   If you wish to use GNU C++ you must first install GNU CC, and then
+perform the following steps:
+
+  1. Define the VMS logical name `GNU_GXX_INCLUDE' to point to the
+     directory where the preprocessor will search for the C++ header
+     files.  This can be done with the command:
+
+          $ assign /system /translation=concealed -
+            disk:[gcc.gxx_include.] gnu_gxx_include
+
+     with the appropriate disk and directory name.  If you are going to
+     be using libg++, this is where the libg++ install procedure will
+     install the libg++ header files.
+
+  2. Obtain the file `gcc-cc1plus.exe', and place this in the same
+     directory that `gcc-cc1.exe' is kept.
+
+     The GNU C++ compiler can be invoked with a command like `gcc /plus
+     /verbose file.cc', which is equivalent to the command `g++ -v -c
+     file.cc' in Unix.
+
+   We try to put corresponding binaries and sources on the VMS
+distribution tape.  But sometimes the binaries will be from an older
+version than the sources, because we don't always have time to update
+them.  (Use the `/version' option to determine the version number of
+the binaries and compare it with the source file `version.c' to tell
+whether this is so.)  In this case, you should use the binaries you get
+to recompile the sources.  If you must recompile, here is how:
+
+  1. Execute the command procedure `vmsconfig.com' to set up the files
+     `tm.h', `config.h', `aux-output.c', and `md.', and to create files
+     `tconfig.h' and `hconfig.h'.  This procedure also creates several
+     linker option files used by `make-cc1.com' and a data file used by
+     `make-l2.com'.
+
+          $ @vmsconfig.com
+
+  2. Setup the logical names and command tables as defined above.  In
+     addition, define the VMS logical name `GNU_BISON' to point at the
+     to the directories where the Bison executable is kept.  This
+     should be done with the command:
+
+          $ assign /system /translation=concealed -
+            disk:[bison.] gnu_bison
+
+     You may, if you choose, use the `INSTALL_BISON.COM' script in the
+     `[BISON]' directory.
+
+  3. Install the `BISON' command with the command line:
+
+          $ set command /table=sys$common:[syslib]dcltables -
+            /output=sys$common:[syslib]dcltables -
+            gnu_bison:[000000]bison
+          $ install replace sys$common:[syslib]dcltables
+
+  4. Type `@make-gcc' to recompile everything (alternatively, submit
+     the file `make-gcc.com' to a batch queue).  If you wish to build
+     the GNU C++ compiler as well as the GNU CC compiler, you must
+     first edit `make-gcc.com' and follow the instructions that appear
+     in the comments.
+
+  5. In order to use GCC, you need a library of functions which GCC
+     compiled code will call to perform certain tasks, and these
+     functions are defined in the file `libgcc2.c'.  To compile this
+     you should use the command procedure `make-l2.com', which will
+     generate the library `libgcc2.olb'.  `libgcc2.olb' should be built
+     using the compiler built from the same distribution that
+     `libgcc2.c' came from, and `make-gcc.com' will automatically do
+     all of this for you.
+
+     To install the library, use the following commands:
+
+          $ library gnu_cc:[000000]gcclib/delete=(new,eprintf)
+          $ library gnu_cc:[000000]gcclib/delete=L_*
+          $ library libgcc2/extract=*/output=libgcc2.obj
+          $ library gnu_cc:[000000]gcclib libgcc2.obj
+
+     The first command simply removes old modules that will be replaced
+     with modules from `libgcc2' under different module names.  The
+     modules `new' and `eprintf' may not actually be present in your
+     `gcclib.olb'--if the VMS librarian complains about those modules
+     not being present, simply ignore the message and continue on with
+     the next command.  The second command removes the modules that
+     came from the previous version of the library `libgcc2.c'.
+
+     Whenever you update the compiler on your system, you should also
+     update the library with the above procedure.
+
+  6. You may wish to build GCC in such a way that no files are written
+     to the directory where the source files reside.  An example would
+     be the when the source files are on a read-only disk.  In these
+     cases, execute the following DCL commands (substituting your
+     actual path names):
+
+          $ assign dua0:[gcc.build_dir.]/translation=concealed, -
+                   dua1:[gcc.source_dir.]/translation=concealed  gcc_build
+          $ set default gcc_build:[000000]
+
+     where the directory `dua1:[gcc.source_dir]' contains the source
+     code, and the directory `dua0:[gcc.build_dir]' is meant to contain
+     all of the generated object files and executables.  Once you have
+     done this, you can proceed building GCC as described above.  (Keep
+     in mind that `gcc_build' is a rooted logical name, and thus the
+     device names in each element of the search list must be an actual
+     physical device name rather than another rooted logical name).
+
+  7. *If you are building GNU CC with a previous version of GNU CC, you
+     also should check to see that you have the newest version of the
+     assembler*.  In particular, GNU CC version 2 treats global constant
+     variables slightly differently from GNU CC version 1, and GAS
+     version 1.38.1 does not have the patches required to work with GCC
+     version 2.  If you use GAS 1.38.1, then `extern const' variables
+     will not have the read-only bit set, and the linker will generate
+     warning messages about mismatched psect attributes for these
+     variables.  These warning messages are merely a nuisance, and can
+     safely be ignored.
+
+     If you are compiling with a version of GNU CC older than 1.33,
+     specify `/DEFINE=("inline=")' as an option in all the
+     compilations.  This requires editing all the `gcc' commands in
+     `make-cc1.com'.  (The older versions had problems supporting
+     `inline'.)  Once you have a working 1.33 or newer GNU CC, you can
+     change this file back.
+
+  8. If you want to build GNU CC with the VAX C compiler, you will need
+     to make minor changes in `make-cccp.com' and `make-cc1.com' to
+     choose alternate definitions of `CC', `CFLAGS', and `LIBS'.  See
+     comments in those files.  However, you must also have a working
+     version of the GNU assembler (GNU as, aka GAS) as it is used as
+     the back-end for GNU CC to produce binary object modules and is
+     not included in the GNU CC sources.  GAS is also needed to compile
+     `libgcc2' in order to build `gcclib' (see above); `make-l2.com'
+     expects to be able to find it operational in
+     `gnu_cc:[000000]gnu-as.exe'.
+
+     To use GNU CC on VMS, you need the VMS driver programs `gcc.exe',
+     `gcc.com', and `gcc.cld'.  They are distributed with the VMS
+     binaries (`gcc-vms') rather than the GNU CC sources.  GAS is also
+     included in `gcc-vms', as is Bison.
+
+     Once you have successfully built GNU CC with VAX C, you should use
+     the resulting compiler to rebuild itself.  Before doing this, be
+     sure to restore the `CC', `CFLAGS', and `LIBS' definitions in
+     `make-cccp.com' and `make-cc1.com'.  The second generation
+     compiler will be able to take advantage of many optimizations that
+     must be suppressed when building with other compilers.
+
+   Under previous versions of GNU CC, the generated code would
+occasionally give strange results when linked with the sharable
+`VAXCRTL' library.  Now this should work.
+
+   Even with this version, however, GNU CC itself should not be linked
+with the sharable `VAXCRTL'.  The version of `qsort' in `VAXCRTL' has a
+bug (known to be present in VMS versions V4.6 through V5.5) which
+causes the compiler to fail.
+
+   The executables are generated by `make-cc1.com' and `make-cccp.com'
+use the object library version of `VAXCRTL' in order to make use of the
+`qsort' routine in `gcclib.olb'.  If you wish to link the compiler
+executables with the shareable image version of `VAXCRTL', you should
+edit the file `tm.h' (created by `vmsconfig.com') to define the macro
+`QSORT_WORKAROUND'.
+
+   `QSORT_WORKAROUND' is always defined when GNU CC is compiled with
+VAX C, to avoid a problem in case `gcclib.olb' is not yet available.
+
+`collect2'
+==========
+
+   Many target systems do not have support in the assembler and linker
+for "constructors"--initialization functions to be called before the
+official "start" of `main'.  On such systems, GNU CC uses a utility
+called `collect2' to arrange to call these functions at start time.
+
+   The program `collect2' works by linking the program once and looking
+through the linker output file for symbols with particular names
+indicating they are constructor functions.  If it finds any, it creates
+a new temporary `.c' file containing a table of them, compiles it, and
+links the program a second time including that file.
+
+   The actual calls to the constructors are carried out by a subroutine
+called `__main', which is called (automatically) at the beginning of
+the body of `main' (provided `main' was compiled with GNU CC).  Calling
+`__main' is necessary, even when compiling C code, to allow linking C
+and C++ object code together.  (If you use `-nostdlib', you get an
+unresolved reference to `__main', since it's defined in the standard
+GCC library.  Include `-lgcc' at the end of your compiler command line
+to resolve this reference.)
+
+   The program `collect2' is installed as `ld' in the directory where
+the passes of the compiler are installed.  When `collect2' needs to
+find the *real* `ld', it tries the following file names:
+
+   * `real-ld' in the directories listed in the compiler's search
+     directories.
+
+   * `real-ld' in the directories listed in the environment variable
+     `PATH'.
+
+   * The file specified in the `REAL_LD_FILE_NAME' configuration macro,
+     if specified.
+
+   * `ld' in the compiler's search directories, except that `collect2'
+     will not execute itself recursively.
+
+   * `ld' in `PATH'.
+
+   "The compiler's search directories" means all the directories where
+`gcc' searches for passes of the compiler.  This includes directories
+that you specify with `-B'.
+
+   Cross-compilers search a little differently:
+
+   * `real-ld' in the compiler's search directories.
+
+   * `TARGET-real-ld' in `PATH'.
+
+   * The file specified in the `REAL_LD_FILE_NAME' configuration macro,
+     if specified.
+
+   * `ld' in the compiler's search directories.
+
+   * `TARGET-ld' in `PATH'.
+
+   `collect2' explicitly avoids running `ld' using the file name under
+which `collect2' itself was invoked.  In fact, it remembers up a list
+of such names--in case one copy of `collect2' finds another copy (or
+version) of `collect2' installed as `ld' in a second place in the
+search path.
+
+   `collect2' searches for the utilities `nm' and `strip' using the
+same algorithm as above for `ld'.
+
+Standard Header File Directories
+================================
+
+   `GCC_INCLUDE_DIR' means the same thing for native and cross.  It is
+where GNU CC stores its private include files, and also where GNU CC
+stores the fixed include files.  A cross compiled GNU CC runs
+`fixincludes' on the header files in `$(tooldir)/include'.  (If the
+cross compilation header files need to be fixed, they must be installed
+before GNU CC is built.  If the cross compilation header files are
+already suitable for ANSI C and GNU CC, nothing special need be done).
+
+   `GPLUS_INCLUDE_DIR' means the same thing for native and cross.  It
+is where `g++' looks first for header files.  `libg++' installs only
+target independent header files in that directory.
+
+   `LOCAL_INCLUDE_DIR' is used only for a native compiler.  It is
+normally `/usr/local/include'.  GNU CC searches this directory so that
+users can install header files in `/usr/local/include'.
+
+   `CROSS_INCLUDE_DIR' is used only for a cross compiler.  GNU CC
+doesn't install anything there.
+
+   `TOOL_INCLUDE_DIR' is used for both native and cross compilers.  It
+is the place for other packages to install header files that GNU CC will
+use.  For a cross-compiler, this is the equivalent of `/usr/include'.
+When you build a cross-compiler, `fixincludes' processes any header
+files in this directory.
+
diff --git a/gcc/NEWS b/gcc/NEWS
index 04d8a7c..6483738 100644
--- a/gcc/NEWS
+++ b/gcc/NEWS
@@ -3,12 +3,17 @@
 The -specs=file switch allows you to override default specs used in invoking
 programs like cc1, as, etc.
 
+Options -Wall and -Wimplicit now cause GCC to warn about implicit int
+in declarations (e.g. `register i;'), since the C Standard committee
+has decided to disallow this in the next revision of the standard.
+
 The following new targets are supported:
 
     Solaris 2.5 running on UltraSPARC's.
     The sparclet cpu (a.out file format).
     Solaris 2.51 running on PowerPC's.
     Linux running on PowerPC's.
+    Embedded target m32r-elf.
 
 New features for the Hitachi H8/300(H).
 
@@ -23,6 +28,17 @@
     -mtune=xxx
     -mimpure-text and -mno-impure-text
 
+New features for all rs6000 and PowerPC systems:
+
+    -mcpu=604e
+    -mcpu=801
+    -mcpu=823
+    -mtune=xxx
+    -mupdate
+    -mno-update
+    -mfused-madd
+    -mno-fused-madd
+
 New features for PowerPC-based systems running either System V, Linux, Solaris,
 or embedded systems:
 
@@ -33,10 +49,16 @@
     -mcall-sysv-eabi
     -mcall-sysv-noeabi
     -msdata
+    -msdata=none
+    -msdata=default
+    -msdata=sysv
+    -msdata=eabi
     -memb
-    -mtune=xxx
     -msim
     -mmvme
+    wchar_t is now of type long, not unsigned short as per ABI.
+    -p/-pg support
+    -mcpu=403 now implies -mstrict-align.
 
 Options -mno-v8 and -mno-sparclite are no longer supported on SPARC
 targets.  Options -mcypress, -mv8, -msupersparc, -msparclite, -mf930,
diff --git a/gcc/ORDERS b/gcc/ORDERS
new file mode 100644
index 0000000..ac183c9
--- /dev/null
+++ b/gcc/ORDERS
@@ -0,0 +1,4003 @@
+The actual order form follows the descriptions of media contents.
+
+Most of this file is excerpted from the January 1997 GNU's Bulletin.
+
+Please send suggestions for improvements to gnu@prep.ai.mit.edu or the postal
+address at the end of the order form.  Thank You.
+
+-----------------------------------------------------------------------------
+
+ 
+FSF Order Form with Descriptions                       January, 1997
+   
+
+
+Free Software Foundation, Inc.     Telephone: +1-617-542-5942
+59 Temple Place - Suite 330        Fax: (including Japan) +1-617-542-2652
+Boston, MA   02111-1307            Electronic Mail: `gnu@prep.ai.mit.edu'
+USA                                World Wide Web: http://www.gnu.ai.mit.edu
+ 
+-----------------------------------------------------------------------------
+
+
+
+There are some sections (e.g. ``Forthcoming GNUs'' and ``How to Get GNU
+Software'') which are not in this Order Form file.  If you wish to see them,
+ask gnu@prep.ai.mit.edu for the complete July, 1996 GNU's Bulletin.
+
+
+
+Table of Contents
+-----------------
+
+	Donations Translate Into Free Software
+	Cygnus Matches Donations!
+	Free Software Redistributors Donate
+	Help from Free Software Companies
+	Major Changes in GNU Software and Documentation
+	The Deluxe Distribution
+	GNU Documentation
+	GNU Software
+
+	Program/Package Cross Reference
+	CD-ROMs
+	   Pricing of the GNU CD-ROMs
+	      What Do the Different Prices Mean?
+	      Why Is There an Individual Price?
+	      Is There a Maximum Price?
+	   January 1997 Compiler Tools Binaries CD-ROM
+	   Source Code CD-ROMs
+	      January 1997 Source Code CD-ROMs
+	      July 1996 Source Code CD-ROMs
+	CD-ROM Subscription Service
+	FSF T-shirt
+	Free Software Foundation Order Form
+
+
+-----------------------------------------------------------------------------
+
+
+
+Donations Translate Into Free Software
+**************************************
+
+If you appreciate Emacs, GNU CC, Ghostscript, and other free software, you
+may wish to help us make sure there is more in the future--remember,
+*donations translate into more free software!*
+
+Your donation to us is tax-deductible in the United States.  We gladly accept
+*any* currency, although the U.S. dollar is the most convenient.
+
+If your employer has a matching gifts program for charitable donations,
+please arrange to: add the FSF to the list of organizations for your
+employer's matching gifts program; and have your donation matched (note *Note
+Cygnus Matches Donations!::).  If you do not know, please ask your personnel
+department.
+
+Circle amount you are donating, cut out this form, and send it with your
+donation to:
+
+        Free Software Foundation, Inc.
+        59 Temple Place - Suite 330
+        Boston, MA  02111-1307
+        USA
+
+      $500   $250   $100   $50   Other $_____  Other currency:_____
+
+You can charge a donation to any of Carte Blanche, Diner's Club, JCB,
+MasterCard, Visa, or American Express.  Charges may also be faxed to
++1-617-542-2652.
+
+      Card type: __________________  Expiration Date: _____________
+     
+      Account Number: _____________________________________________
+     
+      Cardholder's Signature: _____________________________________
+     
+      Name: _______________________________________________________
+     
+      Street Address: _____________________________________________
+     
+      City/State/Province: ________________________________________
+     
+      Zip Code/Postal Code/Country: _______________________________
+     
+      Telephone Number: ___________________________________________
+     
+      Email Address: ______________________________________________
+
+ 
+
+Cygnus Matches Donations!
+*************************
+
+To encourage cash donations to the Free Software Foundation, Cygnus Solutions
+will continue to contribute corporate funds to the FSF to accompany gifts by
+its employees, and by its customers and their employees.
+
+Donations payable to the Free Software Foundation should be sent by eligible
+persons to Cygnus Solutions, which will add its gifts and forward the total
+to the FSF each quarter.  The FSF will provide the contributor with a receipt
+to recognize the contribution (which is tax-deductible on U.S.  tax returns).
+To see if your employer is a Cygnus customer, or for more information,
+please contact Cygnus:
+
+        Cygnus Solutions
+        1325 Chesapeake Terrace
+        Sunnyvale, CA   94089
+        USA
+     
+        Telephone: +1 408 542 9600
+                   +1 800 Cygnus1 (-294-6871)
+        Fax:       +1 408 542 9700
+        Electronic-Mail: `info@cygnus.com'
+        FTP: `ftp.cygnus.com'
+        World Wide Web: `http://www.Cygnus.com/'
+
+ 
+
+Free Software Redistributors Donate
+***********************************
+
+In adddition to their conference donation, Red Hat Software has agreed to
+donate $1.00 to the FSF for every copy of Red Hat Archives sold.  They have
+also added a GNU logo to the back of that CD with the words "Supports the
+Free Software Foundation".
+
+The SNOW 2.1 CD producers added the words "Includes $5 donation to the FSF"
+to the front of their CD.  Potential buyers will know just how much of the
+price is for the FSF & how much is for the redistributor.
+
+The Sun Users Group Deutschland has made it even clearer: their CD says,
+"Price 90 DM, + 12 DM donation to the FSF." We thank them for their
+contribution to our efforts.
+
+Kyoto Micro Computer of Japan regularly gives us 10% of their GNU-related
+sales.
+
+Mr. Hiroshi, Mr. Kojima, and the other authors of the `Linux Primer' in Japan
+have donated money from the sales of their book.
+
+Infomagic has continued to make sizeable donations to the FSF.
+
+At the request of author Arnold Robbins, Specialized Systems Consultants, Inc.
+continues to donate 3% of their profits from selling `Effective AWK
+Programming'.  We would also like to acknowledge the many SSC authors who
+have donated their royalties and fees to the FSF.
+
+In the long run, the success of free software depends on how much new free
+software people develop.  Free software distribution offers an opportunity to
+raise funds for such development in an ethical way.  These redistributors
+have made use of the opportunity.  Many others let it go to waste.
+
+You can help promote free software development by convincing for-a-fee
+redistributors to contribute--either by doing development themselves or by
+donating to development organizations (the FSF and others).
+
+The way to convince distributors to contribute is to demand and expect this
+of them.  This means choosing among distributors partly by how much they give
+to free software development.  Then you can show distributors they must
+compete to be the one who gives the most.
+
+To make this work, you must insist on numbers that you can compare, such as,
+"We will give ten dollars to the Foobar project for each disk sold." A vague
+commitment, such as "A portion of the profits is donated," doesn't give you a
+basis for comparison.  Even a precise fraction "of the profits from this
+disk" is not very meaningful, since creative accounting and unrelated
+business decisions can greatly alter what fraction of the sales price counts
+as profit.
+
+Also, press developers for firm information about what kind of development
+they do or support.  Some kinds make much more long-term difference than
+others.  For example, maintaining a separate version of a GNU program
+contributes very little; maintaining a program on behalf of the GNU Project
+<contributes much.  Easy new ports contribute little, since someone else
+would surely do them; difficult ports such as adding a new CPU to the GNU
+compiler or Mach contribute more; major new features & programs contribute
+the most.
+
+By establishing the idea that supporting further development is "the proper
+thing to do" when distributing free software for a fee, we can assure a
+steady flow of resources for making more free software.
+
+ 
+
+Help from Free Software Companies
+*********************************
+
+When choosing a free software business, ask those you are considering how
+much they do to assist free software development, e.g., by contributing money
+to free software development or by writing free software improvements
+themselves for general use.  By basing your decision partially on this
+factor, you can help encourage those who profit from free software to
+contribute to its growth.
+
+Wingnut (SRA's special GNU support group) regularly donates a part of its
+income to the FSF to support the development of new GNU programs.  Listing
+them here is our way of thanking them.  Wingnut has made a pledge to donate
+10% of their income to the FSF, and has purchased several Deluxe Distribution
+packages in Japan.  Also see *Note Cygnus Matches Donations!::.
+
+        Wingnut Project
+        Software Research Associates, Inc.
+        1-1-1 Hirakawa-cho, Chiyoda-ku
+        Tokyo 102, Japan
+     
+        Phone:  (+81-3)3234-2611
+        Fax:    (+81-3)3942-5174
+        E-mail: `info-wingnut@sra.co.jp'
+        WWW: `http://www.sra.co.jp/public/sra/product/wingnut/'
+
+ 
+
+Major Changes in GNU Software and Documentation
+***********************************************
+
+   * Hurd Progress   (Also *note What Is the Hurd::.)
+
+     We have made two test releases of the Hurd, and we will make another
+     (version 0.2) in this month.  Stability is improving, and we have begun
+     modifying various user-level utilities to understand new Hurd filesystem
+     features (fileutils, shellutils, tar, etc.).
+
+     One way for people to help out is to compile and run as much third-party
+     free software as they can; in this way we can find bugs and deficiencies
+     with some rapidity.  Volunteers with a PC are therefore eagerly sought
+     to get the new 0.2 release and compile their favorite Unix programs and
+     games.
+
+   * GNU System Progress
+
+     Version 0.2 of the GNU system will be released in this month, to coincide
+     with the 0.2 release of the Hurd.  This complete GNU system is available
+     by FTP.  We are working with Ian Murdock to develop an excellent package
+     management system for GNU.  This will make administering and upgrading
+     the system much easier.  Because of features only the Hurd has, the GNU
+     package management system will be simpler and more featureful than
+     similar package systems for various GNU/Linux distributions.
+
+   * New Source Code CD!   (See *Note January 1997 Source Code CD-ROMs::)
+
+     We are releasing the January 1997 (Edition 9) Source Code CD-ROM this
+     month.  Once again, it is a two disk set.  It includes several new
+     programs: `gforth', `gpc', <Meta-HTML>, `stow', `units', VRweb, `wget',
+     `windows32api', and `xinfo'.  On the CD-ROMs are full distributions of
+     X11R6.3, MIT Scheme, Emacs, GCC, and current versions of all other GNU
+     Software.  *Note GNU Software::, for more about these packages.
+
+   * New Compiler Tools CD-ROM  
+
+     We are releasing the January 1997 (Edition 4) Compiler Tools Binaries
+     CD.  Support is included for several new operating systems.
+
+     The Compiler Tools Binaries CD-ROM contains executables of the GNU
+     compiler tools for some systems that don't normally come with a
+     compiler.  This allows users of those systems to compile their own
+     software without having to buy a proprietary compiler.
+
+     We hope to include more systems with each update of this CD-ROM.  If you
+     can help build binaries for new systems or have one to suggest, please
+     contact us at either address on the top menu.  For more information, see
+     *Note Compiler Tools Binaries CD-ROM::.
+
+   * New/Updated Manuals since Last Bulletin   (See *Note Documentation::)
+
+     Since the last bulletin, we have published new editions of: `Debugging
+     with GDB', for version 4.16 with a new color cover; `Texinfo' Manual,
+     edition 2.24; & the `GNU Emacs Manual', for version 19.33 with a new
+     color cover.  `Using and Porting GNU CC' has been re-printed in a
+     lay-flat bound edition with a new color cover.  A new Bison Manual with
+     a new color cover is planned.
+
+   * Give to GNU the United Way!
+
+     As a 501(c)3 tax-exempt organization, the FSF is eligible to receive
+     United Way funds.  When donating to United Way, one can specify that all
+     or part of the donation be directed to the FSF.  On the donor form,
+     check the "Specific Requests" box and include the sentence, "Send my
+     gift to the Free Software Foundation, 59 Temple Place, Suite 330,
+     Boston, MA 02111." We especially appreciate the donations from Microsoft
+     matching the United Way donations of their employees.  Also see *Note
+     Donations Translate Into Free Software:: and *Note Cygnus Matches
+     Donations!::.
+
+   * GNU Software Works on MS-DOS   (Also *note GNU Software::.)
+
+     GNU Emacs 19 and many other GNU programs have been ported to MS-DOS for
+     i386/i486/Pentium machines.  We ship binaries & sources on the *Note
+     Compiler Tools Binaries CD-ROM::.
+
+   * MULE Merge Almost Complete
+
+     MULE is the Multi-Lingual Emacs developed by Ken'ichi Handa at the
+     Electro-Technical Lab in Tsukuba, Japan.  Handa has readied the code for
+     merging into Emacs and we expect to complete the merge soon.
+
+   * GCC   (For current status on GCC and GNAT, *note GNU Software::.)
+
+     New front ends for GCC are being done for Pascal & Chill.  Pascal,
+     `gpc', stagnated for some years, but should be released by the time you
+     read this.  See `http://agnes.dida.physik.uni-essen.de/~gnu-pascal'.
+
+   * GUILE
+
+     GUILE is currently available as a test release.  GNU's Ubiquitous
+     Intelligent Language for Extension is an SCM-based library that can make
+     any ordinary C program extensible.  (For SCM info, see "JACAL" in *Note
+     GNU Software::.)
+
+     Also being developed are SCSH-compatible system call & Tk interfaces, a
+     module system, dynamic linking support, & a byte-code interpreter.
+     Support for Emacs Lisp & a more C-like language is coming.
+
+   * Texinfo   (For current status, *note GNU Software::.)
+
+     Texinfo now provides macro facilities and supports multicolumn tables.
+     It comes with an `install-info' program that packages can use to update
+     the `dir' file automatically when they install their Info files.
+
+   * GNU Common Lisp   (For current status, *note GNU Software::.)
+
+     Version 2.2.1 of GNU Common Lisp (GCL) was released in December '96.  It
+     now includes a graphical interface to the Tk widget system.  All
+     documentation is now Texinfo-based, with built-in regexp matching used
+     to access the documentation.  A first pass at the Common Lisp condition
+     system is also included.  Version 2.2.1 contains mainly updates to allow
+     GCL 2.2 to work correctly with current operating system levels, and to
+     fix bugs.  Volunteers to help with the move to the ANSI standard are
+     most welcome; please contact `schelter@math.utexas.edu'.
+
+   * Experimental Electronic Cash
+
+     `http://www.lysator.liu.se/~nisse/NCash' is an experimental
+     implementation of anonymous electronic cash which is to be released as
+     free software.
+
+   * HTML Professional and GPL
+
+     The recent development and release of HTML Professional was made under
+     the terms of the GNU GPL.  In order to facilitate distribution, the GPL
+     text was re-encoded into this more recent version of HTML, and is now
+     distributed with HTML Pro.  An online copy can be retrieved at
+     `http://www.arbornet.org/~silmaril/dtds/html/gnugpl.html'.
+
+     HTML Pro is an unofficial version of the HTML DTD.  HTML Pro is
+     distributed for discussion by the `www-html' mailing list.  It
+     composites all other known versions, and allows World Wide Web designers
+     to use recent experimental additions in a rational and structured manner.
+     It comes with a `.ced' file for GNU Emacs/psgml-mode and can be gotten at
+     `ftp://www.ucc.ie/pub/html/htmlpro.{zip|tar.gz|zip.hqx}'.
+     Documentation is at
+     `http://www.arbornet.org/~silmaril/dtds/html/htmlpro.html'.
+
+   * Meta-HTML 5.01 Source Release
+
+     Version 5.01 of Universal Access Inc.'s <Meta-HTML> is now available.
+
+     <Meta-HTML> is a programming language specifically designed to work
+     within the environment of the World Wide Web.  Although it is a genuine
+     programming language, suitable for large-scale symbolic manipulation,
+     <Meta-HTML> also provides the most commonly wanted Web functionality as
+     built-in primitives, so you don't have to write them.  You can find out
+     more about the theory of implementation in this white paper
+     `http://www.metahtml.com/meta-html/manifesto.html'.
+
+     Web pages are authored using HTML and <Meta-HTML> statements freely
+     intermixed.  When a page is requested by a browser, the page is passed
+     through the <Meta-HTML> engine, which dynamically processes any
+     <Meta-HTML> statements to produce a final HTML page which is delivered
+     to the browser.
+
+     The source distribution provides several different interpreter options:
+     a CGI engine which can be run by any Unix Web server; a full-featured
+     Web server (mhttpd) with the interpreter built in; a standalone
+     processor, much like Perl or Tcl; and an interactive debugger, with a
+     feel similar to GDB (mdb).
+
+     There is a user mailing list: `metahtml-users@metahtml.com'.  You can
+     subscribe on the Web at `http://www.metahtml.com/E-Mail/', or by sending
+     mail to `metahtml-users-request@metahtml.com'.
+
+     Pre-compiled distribution sets for some systems are available via the
+     <Meta-HTML> Web site at `http://www.metahtml.com'.
+
+   * VRweb Browser
+
+     VRweb, a browser for 3D models on the Web written in the Virtual Reality
+     Modeling Language (VRML), is now available under the GPL.  VRweb works
+     in conjunction with Web browsers on Unix & Windows platforms.
+
+     VRweb is a joint project of IICM (home of Hyper-G), NCSA (home of
+     Mosaic), & the University of Minnesota (home of Gopher).  The software
+     is freely available in binary & source.  VRweb 1.2 for Unix has just
+     been released, VRweb 1.2 for Windows will follow in due course.  You can
+     download VRweb from `ftp://iicm.tu-graz.ac.at/pub/Hyper-G/VRweb/UNIX'
+     and numerous mirror sites.  Further information on VRweb can be found at
+     `http://hyperg.iicm.tu-graz.ac.at/vrweb'.
+
+     VRML is a non-proprietary, platform-independent file format for 3D
+     graphics on the Internet.  Also see `http://www.sdsc.edu/vrml/',  the
+     VRML Repository.
+
+
+
+The Deluxe Distribution
+***********************
+
+The Free Software Foundation has been asked repeatedly to create a package
+that provides executables for all of our software.  Normally we offer only
+sources.  The Deluxe Distribution provides binaries with the source code and
+includes six T-shirts, all our CD-ROMs, printed manuals, & reference cards.
+
+The FSF Deluxe Distribution contains the binaries and sources to hundreds of
+different programs including Emacs, the GNU C/C++ Compiler, the GNU Debugger,
+the complete X Window System, and all the GNU utilities.
+
+We will make a Deluxe Distribution for most machines/operating systems.  We
+may be able to send someone to your office to do the compilation, if we can't
+find a suitable machine here.  However, we can only compile the programs that
+already support your chosen machine/system - porting is a separate matter.
+(To commission a port, see the GNU Service Directory; details in *Note Free
+Software Support::.) Compiling all these programs takes time; a Deluxe
+Distribution for an unusual machine will take longer to produce than one for
+a common machine.  Please contact the FSF Office with any questions.
+
+We supply the software on a write-once CD-ROM (in ISO 9660 format with "Rock
+Ridge" extensions), or on one of these tapes in Unix `tar' format: 1600 or
+6250bpi 1/2in reel, Sun DC300XLP 1/4in cartridge - QIC24, IBM RS/6000 1/4in
+c.t. - QIC 150, Exabyte 8mm c.t., or DAT 4mm c.t.  If your computer cannot
+read any of these, please contact us to see if we can handle your format.
+
+The manuals included are one each of `Bison', `Calc', `GAWK', `GCC', `GNU C
+Library', `GDB', `Flex', `GNU Emacs Lisp Reference', `Programming in Emacs
+Lisp: An Introduction', `Make', `Texinfo', & `Termcap' manuals; six copies of
+the `GNU Emacs' manual; and ten reference cards each for Emacs, Bison, Calc,
+Flex, & GDB.
+
+Every Deluxe Distribution also has a copy of the latest editions of our
+CD-ROMs that have sources of our software & compiler tool binaries for some
+systems.  The CDs are in ISO 9660 format with Rock Ridge extensions.
+
+The price of the Deluxe Distribution is $5000 (shipping included).  These
+sales provide enormous financial assistance to help the FSF develop more free
+software.  To order, please fill out the "Deluxe Distribution" section on the
+*note Free Software Foundation Order Form::.  and send it to:
+
+        Free Software Foundation, Inc.
+        59 Temple Place - Suite 330
+        Boston, MA   02111-1307
+        USA
+     
+        Telephone: +1-617-542-5942
+        Fax (including Japan): +1-617-542-2652
+        Electronic Mail: gnu@prep.ai.mit.edu
+        World Wide Web: http://www.gnu.ai.mit.edu
+
+ 
+
+GNU Documentation
+*****************
+
+GNU is dedicated to having quality, easy-to-use online & printed
+documentation.  GNU manuals are intended to explain underlying concepts,
+describe how to use all the features of each program, & give examples of
+command use.  GNU manuals are distributed as Texinfo source files, which
+yield both typeset hardcopy via the TeX document formatting system and online
+hypertext display via the menu-driven Info system.  Source for these manuals
+comes with our software; here are the manuals that we publish as printed
+books.  See the *note Free Software Foundation Order Form::., to order them.
+
+Most GNU manuals are bound as soft cover books with "lay-flat" bindings.
+This allows you to open them so they lie flat on a table without creasing the
+binding.  They have an inner cloth spine and an outer cardboard cover that
+will not break or crease as an ordinary paperback will.  Currently, the
+`Using and Porting GNU CC', `GDB', `Emacs', `Emacs Lisp Reference',
+`Programming in Emacs Lisp: An Introduction', `GNU Awk User's Guide', `Make',
+& `Bison' manuals have this binding.  Our other manuals also lie flat when
+opened, using a GBC binding.  Our manuals are 7in by 9.25in except the 8.5in
+by 11in `Calc' manual.
+
+The edition number of the manual and version number of the program listed
+after each manual's name were current at the time this Bulletin was published.
+
+`Debugging with GDB' (for Version 4.16) tells how to run your program under
+GNU Debugger control, examine and alter data, modify a program's flow of
+control, and use GDB through GNU Emacs.
+
+The `GNU Emacs Manual' (12th Edition for Version 19.33) describes editing with
+GNU Emacs.  It explains advanced features, including outline mode and regular
+expression search; how to use special programming modes to write languages
+like C++ and TeX; how to use the `tags' utility; how to compile and correct
+code; how to make your own keybindings; and other elementary customizations.
+
+`Programming in Emacs Lisp: An Introduction' (October 1995 Edition 1.04) is
+for people who are not necessarily interested in programming, but who do want
+to customize or extend their computing environment.  If you read it in Emacs
+under Info mode, you can run the sample programs directly.
+
+`The GNU Emacs Lisp Reference Manual' (Edition 2.4 for Version 19.29) and
+`The GNU Emacs Lisp Reference, Japanese Edition' (Japanese Draft Revision
+1.0, from English Edition 2.4 for Version 19.29) cover this programming
+language in depth, including data types, control structures, functions,
+macros, syntax tables, searching/matching, modes, windows, keymaps, byte
+compilation, and the operating system interface.
+
+`The GNU Awk User's Guide' (Edition 1.0 for Version 3.0) tells how to use
+`gawk'.  It is written for those who have never used `awk' and describes
+features of this powerful string and record manipulation language.  It
+clearly delineates those features which are part of POSIX `awk' from `gawk'
+extensions, providing a comprehensive guide to `awk' program portability.
+
+`GNU Make' (Edition 0.50 for Version 3.75 Beta) describes GNU `make', a
+program used to rebuild parts of other programs.  The manual tells how to
+write "makefiles", which specify how a program is to be compiled and how its
+files depend on each other.  Included are an introductory chapter for novice
+users and a section about automatically generated dependencies.
+
+The `Flex' manual (Edition 1.03 for Version 2.3.7) teaches you to write a
+lexical scanner definition for the `flex' program to create a C++ or C-coded
+scanner that recognizes the patterns defined.  You need no prior knowledge of
+scanners.
+
+`The Bison Manual' (November 1995 Edition for Version 1.25) teaches you how
+to write context-free grammars for the Bison program that convert into
+C-coded parsers.  You need no prior knowledge of parser generators.
+
+`Using and Porting GNU CC' (November 1995 Edition for Version 2.7.2) tells
+how to run, install, and port the GNU C Compiler to new systems.  It lists
+new features and incompatibilities of GCC, but people not familiar with C
+will still need a good reference on the C programming language.  It also
+covers G++.
+
+The `Texinfo' manual (Edition 2.24 for Version 3) explains the markup
+language that produces our online Info documentation & typeset hardcopies.
+It tells you how to make tables, lists, chapters, nodes, accented & special
+characters, indexes, cross references, & how to catch mistakes.
+
+`The Termcap Manual' (3rd Edition for Version 1.3), often described as "twice
+as much as you ever wanted to know about termcap," details the format of the
+termcap database, the definitions of terminal capabilities, and the process
+of interrogating a terminal description.  This manual is primarily for
+programmers.
+
+The `C Library Reference Manual' (Edition 0.08 for Version 2.0) describes the
+library's facilities, including both what Unix calls "library functions" &
+"system calls."  We are doing small copier runs of this manual until it
+becomes more stable.  Please send fixes to `bug-glibc-manual@prep.ai.mit.edu'.
+
+The `Emacs Calc Manual' (for Version 2.02) is both a tutorial and a reference
+manual.  It tells how to do ordinary arithmetic, how to use Calc for algebra,
+calculus, and other forms of mathematics, and how to extend Calc.
+
+ 
+
+GNU Software
+************
+
+All our software is available via FTP; see *Note How to Get GNU Software::.
+We also offer *Note CD-ROMs::, and printed *Note Documentation::, which
+includes manuals and reference cards.  In the articles describing the
+contents of each medium, the version number listed after each program name
+was current when we published this Bulletin.  When you order a newer CD-ROM,
+some of the programs may be newer and therefore the version number higher.
+See the *note Free Software Foundation Order Form::., for ordering
+information.
+
+Some of the contents of our FTP distributions are compressed.  We have
+software on our FTP sites to uncompress these files.  Due to patent troubles
+with `compress', we use another compression program, `gzip'.  (Such
+prohibitions on software development are fought by the League for Programming
+Freedom; *note What Is the LPF::., for details.)
+
+You may need to build GNU `make' before you build our other software.  Some
+vendors supply no `make' utility at all and some native `make' programs lack
+the `VPATH' feature essential for using the GNU configure system to its full
+extent.  The GNU `make' sources have a shell script to build `make' itself on
+such systems.
+
+We welcome all bug reports and enhancements sent to the appropriate
+electronic mailing list (*note Free Software Support::.).
+
+ 
+
+Configuring GNU Software
+------------------------
+
+We are using Autoconf, a uniform scheme for configuring GNU software packages
+in order to compile them (see "Autoconf" and "Automake" below, in this
+article).  The goal is to have all GNU software support the same alternatives
+for naming machine and system types.
+
+Ultimately, it will be possible to configure and build the entire system all
+at once, eliminating the need to configure each individual package separately.
+
+You can also specify both the host and target system to build
+cross-compilation tools.  Most GNU programs now use Autoconf-generated
+configure scripts.
+
+ 
+
+GNU Software Now Available
+--------------------------
+
+For future programs and features, see *Note Forthcoming GNUs::.
+
+Key to cross reference:
+
+        BinCD        January 1997 Binaries CD-ROM
+        SrcCD        January 1997 Source CD-ROMs
+
+[FSFman] shows that we sell a manual for that package.  [FSFrc] shows we sell
+a reference card for that package.  To order them, see the *note Free
+Software Foundation Order Form::.  *Note Documentation::, for more
+information on the manuals.  Source code for each manual or reference card is
+included with each package.
+
+   * `acm'   (SrcCD)
+
+     `acm' is a LAN-oriented, multiplayer, aerial combat simulation that runs
+     under the X Window System.  Players engage in air to air combat against
+     one another using heat seeking missiles and cannons.  We are working on
+     a more accurate simulation of real airplane flight characteristics.
+
+   * Apache   *Also see* `http://www.apache.org/'   (SrcCD)
+
+     Apache is an HTTP server designed as a successor to the NCSA family of
+     web servers.  It adds a significant amount of new functionality, has an
+     extensive API for modular enhancements, is extremely flexible without
+     compromising speed, and has an active development group and user
+     community.
+
+   * Autoconf   (SrcCD)
+
+     Autoconf produces shell scripts which automatically configure source code
+     packages.  These scripts adapt the packages to many kinds of Unix-like
+     systems without manual user intervention.  Autoconf creates a script for
+     a package from a template file which lists the operating system features
+     which the package can use, in the form of `m4' macro calls.  Autoconf
+     requires GNU `m4' to operate, but the resulting configure scripts it
+     generates do not.
+
+   * Automake   (SrcCD)
+
+     Automake is a tool for generating `Makefile.in's for use with Autoconf.
+     The generated makefiles are compliant with GNU Makefile standards.
+
+   * BASH   (SrcCD)
+
+     GNU's shell, BASH (Bourne Again SHell), is compatible with the Unix `sh'
+     and offers many extensions found in `csh' and `ksh'.  BASH has job
+     control, `csh'-style command history, command-line editing (with Emacs
+     and `vi' modes built-in), and the ability to rebind keys via the
+     `readline' library.  BASH conforms to the POSIX 1003.2-1992 standard.
+
+   * `bc'   (SrcCD)
+
+     `bc' is an interactive algebraic language with arbitrary precision
+     numbers.  GNU `bc' follows the POSIX 1003.2-1992 standard with several
+     extensions, including multi-character variable names, an `else'
+     statement, and full Boolean expressions.  The RPN calculator `dc' is now
+     distributed as part of the same package, but GNU `bc' is not implemented
+     as a `dc' preprocessor.
+
+   * BFD   (BinCD, SrcCD)
+
+     The Binary File Descriptor library allows a program which operates on
+     object files (e.g., `ld' or GDB) to support many different formats in a
+     clean way.  BFD provides a portable interface, so that only BFD needs to
+     know the details of a particular format.  One result is that all
+     programs using BFD will support formats such as a.out, COFF, and ELF.
+     BFD comes with Texinfo source for a manual (not yet published on paper).
+
+     At present, BFD is not distributed separately; it is included with
+     packages that use it.
+
+   * Binutils   (BinCD, SrcCD)
+
+     Binutils includes these programs: `ar', `c++filt', `demangle', `gas',
+     `gprof', `ld', `nlmconv', `nm', `objcopy', `objdump', `ranlib', `size',
+     `strings', & `strip'.
+
+     Binutils version 2 uses the BFD library.  The GNU assembler, `gas',
+     supports the a29k, Alpha, H8/300, H8/500, HP-PA, i386, i960, m68k, m88k,
+     MIPS, NS32K, SH, SPARC, Tahoe, Vax, and Z8000 CPUs, and attempts to be
+     compatible with many other assemblers for Unix and embedded systems.  It
+     can produce mixed C and assembly listings, and includes a macro facility
+     similar to that in some other assemblers.  GNU's linker, `ld', emits
+     source-line numbered error messages for multiply-defined symbols and
+     undefined references, and interprets a superset of AT&T's Linker Command
+     Language, which gives control over where segments are placed in memory.
+     `nlmconv' converts object files into Novell NetWare Loadable Modules.
+     `objdump' can disassemble code for most of the CPUs listed above, and
+     can display other data (e.g., symbols and relocations) from any file
+     format read by BFD.
+
+   * Bison   *See *Note Documentation::* (BinCD, SrcCD)   [FSFman, FSFrc]
+
+     Bison is an upwardly compatible replacement for the parser generator
+     `yacc'.  Texinfo source for the `Bison Manual' and reference card are
+     included.
+
+   * C Library   *See *Note Forthcoming GNUs::*   (BinCD, SrcCD)   [FSFman]
+
+     The GNU C library supports ISO C-1989, ISO C/amendment 1-1995, POSIX
+     1003.1-1990, POSIX 1003.1b-1993, POSIX 1003.1c-1995 (when the underlying
+     system permits), & most of the functions in POSIX 1003.2-1992.  It is
+     nearly compliant with the extended XPG4.2 specification which guarantees
+     upward compatibility with 4.4BSD & many System V functions.
+
+     When used with the GNU Hurd, the C Library performs many functions of the
+     Unix system calls directly.  Mike Haertel has written a fast `malloc'
+     which wastes less memory than the old GNU version.
+
+     GNU `stdio' lets you define new kinds of streams, just by writing a few
+     C functions.  Two methods for handling translated messages help writing
+     internationalized programs & the user can adopt the environment the
+     program runs in to conform with local conventions.  Extended `getopt'
+     functions are already used to parse options, including long options, in
+     many GNU utilities.  The name lookup functions now are modularized which
+     makes it easier to select the service which is needed for the specific
+     database & the document interface makes it easy to add new services.
+     Texinfo source for the `GNU C Library Reference Manual' is included
+     (*note Documentation::.).
+
+     Previous versions of the GNU C library ran on a large number of systems.
+     The architecture-dependent parts of the C library have not been updated
+     since development on version 2.0 started, so today it runs out of the
+     box only on GNU/Hurd (all platforms GNU/Hurd also runs on) & GNU/Linux
+     (ix86, Alpha, m68k, work is in progress for MIPS & Sparc).  Other
+     architectures will become available again as soon as somebody does the
+     port.
+
+   * C++ Library   (BinCD, SrcCD)
+
+     The GNU C++ library (libg++) contains an extensive collection of
+     container and utility classes, including Obstacks, multiple-precision
+     Integers and Rationals, Complex numbers, BitSets, and BitStrings.
+
+     The distribution also includes the libstdc++ library.  This implements
+     library facilities defined by the forthcoming ANSI/ISO C++ standard,
+     including strings, the iostream library, and a port of the Standard
+     Template Library.
+
+   * Calc   (SrcCD)   [FSFman, FSFrc]
+
+     Calc (written by Dave Gillespie in Emacs Lisp) is an extensible, advanced
+     desk calculator & mathematical tool that runs as part of GNU Emacs.  You
+     can use Calc as a simple four-function calculator, but it has many more
+     features including: choice of algebraic or RPN (stack-based) entry;
+     logarithmic, trigonometric, & financial functions; arbitrary precision;
+     complex numbers; vectors; matrices; dates; times; infinities; sets;
+     algebraic simplification; & differentiation & integration.  It outputs to
+     `gnuplot', & comes with source for a manual & reference card (*note
+     Documentation::.).
+
+   * `cfengine'   (SrcCD)
+
+     `cfengine' is used to maintain site-wide configuration of a
+     heterogeneous Unix network using a simple high level language.  Its
+     appearance is similar to `rdist', but allows many more operations to be
+     performed automatically.  See Mark Burgess, "A Site Configuration
+     Engine", `Computing Systems', Vol. 8, No. 3 (ask `office@usenix.org' how
+     to get a copy).
+
+   * Chess   (SrcCD)
+
+     GNU Chess lets most modern computers play a full game of chess.  It has
+     a plain terminal interface, a curses interface, & the unique X Windows
+     interface `xboard'.  Best results are obtained using GNU C to compile
+     GNU Chess.
+
+     Recent improvements include "configure"-capability, correct thinking on
+     opponent's time, makefile for Windows NT, full Windows 95/NT
+     compatibility, parallel Unix & Windows 95/NT versions, major crash bug
+     fix & various other minor improvements & bug fixes.
+
+     Stuart Cracraft founded GNU Chess & is the project lead for the 10+ year
+     history of GNU Chess.  Acknowledgements for this past year's work
+     include Chua Kong Sian, National Supercomputing Research Center,
+     Singapore; & Conor McCarthy, Biomolecular/Biomed Science at Griffith
+     University, Australia.
+
+     Send bugs to `bug-gnu-chess@prep.ai.mit.edu' & general comments to
+     `info-gnu-chess@prep.ai.mit.edu'.  Visit the author's website at
+     `http://www.win.net/~msm/index.html'.  Play GNU Chess on the web at
+     `http://www.delorie.com/game-room/chess'.
+
+   * CLISP   (SrcCD)
+
+     CLISP is a Common Lisp implementation by Bruno Haible & Michael Stoll.
+     It mostly supports the Lisp described by `Common LISP: The Language (2nd
+     edition)' & the ANSI Common Lisp standard.  CLISP includes an
+     interpreter, a byte-compiler, a large subset of CLOS & a foreign language
+     interface.  The user interface language (English, German, French) can be
+     chosen at run time.  An X11 API is available through CLX & Garnet.
+     CLISP needs only 2 MB of memory & runs on many microcomputers (including
+     MS-DOS systems, OS/2, Windows NT, Windows 95, Amiga 500-4000, & Acorn
+     RISC PC) & all kinds of Unix systems.
+
+   * Common Lisp   *Also *note GNUs Flashes::.*   (SrcCD)
+
+     GNU Common Lisp (GCL, formerly known as Kyoto Common Lisp) is a compiler
+     & interpreter for Common Lisp.  GCL is very portable & extremely
+     efficient on a wide class of applications, & compares favorably in
+     performance with commercial Lisps on several large theorem-prover &
+     symbolic algebra systems.  GCL supports the CLtL1 specification but is
+     moving towards the proposed ANSI standard.
+
+     GCL compiles to C & then uses the native optimizing C compiler (e.g.,
+     GCC).  A function with a fixed number of args & one value turns into a C
+     function of the same number of args, returning one value--so GCL is
+     maximally efficient on such calls.  Its conservative garbage collector
+     gives great freedom to the C compiler to put Lisp values in registers.
+     It has a source level Lisp debugger for interpreted code & displays
+     source code in an Emacs window.  Its profiler (based on the C profiling
+     tools) counts function calls & the time spent in each function.
+
+     There is now a built-in interface to the Tk widget system.  It runs in a
+     separate process, so users may monitor progress on Lisp computations or
+     interact with running computations via a windowing interface.
+
+     There is also an Xlib interface via C (xgcl-2).  CLX runs with GCL, as
+     does PCL (see "PCL" later in this article).
+
+     GCL version 2.2.1 is released under the GNU Library General Public
+     License.
+
+   * CLX   (SrcCD)
+
+     CLX is an X Window interface library for GCL.  This is separate from the
+     built-in TK interface.
+
+   * `cpio'   (SrcCD)
+
+     `cpio' is an archive program with all the features of SVR4 `cpio',
+     including support for the final POSIX 1003.1 `ustar' standard.  `mt', a
+     program to position magnetic tapes, is included with `cpio'.
+
+   * CVS   (SrcCD)
+
+     CVS is a version control system (like RCS or SCCS) which allows you to
+     keep old versions of files (usually source code), keep a log of who,
+     when, and why changes occurred, etc.  It handles multiple developers,
+     multiple directories, triggers to enable/log/control various operations,
+     and can work over a wide area network.  It does not handle build
+     management or bug-tracking; these are handled by `make' and GNATS,
+     respectively.
+
+   * DejaGnu   (SrcCD)
+
+     DejaGnu is a framework to test programs with a single front end for all
+     tests.  DejaGnu's flexibility & consistency makes it easy to write tests.
+     DejaGnu will also work with remote hosts and embedded systems.
+
+     DejaGnu comes with `expect', which runs scripts to conduct dialogs with
+     programs.
+
+   * Diffutils   (SrcCD)
+
+     GNU `diff' compares files showing line-by-line changes in several
+     flexible formats.  It is much faster than traditional Unix versions.  The
+     Diffutils package has `diff', `diff3', `sdiff', & `cmp'.  Future plans
+     include support for internationalization (e.g., error messages in
+     Chinese) & some non-Unix PC environments, & a library interface that can
+     be used by other free software.
+
+   * DJGPP   *Also see "GCC" in this article*   (BinCD)
+
+     DJ Delorie has ported GCC/G++ to i386s running DOS.  DJGPP has a 32-bit
+     i386 DOS extender with a symbolic debugger, development libraries, &
+     ports of Bison, `flex', & Binutils.  Full source code is provided.  It
+     needs at least 5MB of hard disk space to install & 512K of RAM to use.
+     It supports SVGA (up to 1024x768), XMS & VDISK memory allocation,
+     `himem.sys', VCPI (e.g., QEMM, DESQview, & 386MAX), & DPMI (e.g.,
+     Windows 3.x, OS/2, QEMM, & QDPMI).  Version 2 was released in Feb. 1996,
+     & needs a DPMI environment; a free DPMI server is included.
+
+     FTP from `ftp.simtel.net' in `/pub/simtelnet/gnu/djgpp/' (or a SimTel
+     mirror site).
+
+     Ask `listserv@delorie.com', to join a DJGPP users mailing list.
+
+   * `dld'   (SrcCD)
+
+     `dld' is a dynamic linker written by W. Wilson Ho.  Linking your program
+     with the `dld' library allows you to dynamically load object files into
+     the running binary.  `dld' supports a.out object types on the following
+     platforms: Convex C-Series (BSD), i386/i486/Pentium (GNU/Linux), Sequent
+     Symmetry i386 (Dynix 3), Sun-3 (SunOS 3 & 4), Sun-4 (SunOS 4), & VAX
+     (Ultrix).
+
+   * `doschk'   (SrcCD)
+
+     This program is a utility to help software developers ensure that their
+     source file names are distinguishable on System V platforms with
+     14-character filenames and on MS-DOS systems with 8+3 character
+     filenames.
+
+   * `ed'   (SrcCD)
+
+     `ed' is the standard text editor.  It is line-oriented and can be used
+     interactively or in scripts.
+
+   * Elib   (SrcCD)
+
+     Elib is a small library of Emacs Lisp functions, including routines for
+     using AVL trees and doubly-linked lists.
+
+   * Elisp archive   (SrcCD)
+
+     This is a snapshot of Ohio State's GNU Emacs Lisp FTP Archive.  FTP it
+     from `archive.cis.ohio-state.edu' in `/pub/gnu/emacs/elisp-archive'.
+
+   * Emacs   *Also *note Forthcoming GNUs::.*   [FSFman(s), FSFrc]
+
+     In 1975, Richard Stallman developed the first Emacs, an extensible,
+     customizable real-time display editor & computing environment.  GNU Emacs
+     is his second implementation.  It offers true Lisp--smoothly integrated
+     into the editor--for writing extensions & provides an interface to the X
+     Window System.  It runs on Unix, MS-DOS, & Windows NT or 95.  In
+     addition to its powerful native command set, Emacs can emulate the
+     editors vi & EDT (DEC's VMS editor).  Emacs has many other features which
+     make it a full computing support environment.  Source for the `GNU Emacs
+     Manual' & a reference card comes with the software.  Sources for the
+     `GNU Emacs Lisp Reference Manual', & `Programming in Emacs Lisp: An
+     Introduction' are distributed in separate packages.  *Note
+     Documentation::.
+
+   * Emacs 19   (SrcCD)   [FSFman(s), FSFrc]
+
+     Emacs 19 works with character-only terminals & with the X Window System
+     (with or without an X toolkit).  Features new to Emacs 19 include:
+     multiple X windows ("frames" to Emacs), with a separate X window for the
+     minibuffer or a minibuffer attached to each X window; use of the X
+     toolkit; interfacing with the X resource manager; property lists
+     associated with regions of text in a buffer; multiple fonts & colors
+     defined by those properties; simplified/improved processing of function
+     keys, mouse movement & clicks; X selection processing, including
+     clipboard selections; hooks to be run if the point or mouse moves
+     outside a certain range; menu bars & popup menus defined by keymaps;
+     scrollbars; before- & after-change hooks; a source-level debugger for
+     Emacs Lisp programs; floating point numbers; improved buffer allocation,
+     including returning storage to the system when a buffer is killed; many
+     updated libraries; Autoconf-based configuration; support for version
+     control systems (CVS, RCS, & SCCS); & European character sets.
+
+     Features added recently to Emacs 19 include the ability to open frames
+     on more than one X display from a single Emacs job, operation under
+     MS-DOS, MS Windows, and Windows NT, displaying multiple views of an
+     outline at the same time, Lisp-level timers for real time and idle time,
+     version control support for CVS and for multiple branches, text
+     properties for formatting text, commands to edit text properties and
+     save them in files, and GNU-standard long-named command line options.
+     Also see *Note Forthcoming GNUs::.
+
+     Emacs 19 works on: Acorn RISC (RISCiX); Alliant FX/2800 (BSD); Alpha
+     (OSF/1 or GNU/Linux); Apollo (DomainOS); Bull DPX/2 2nn & 3nn (SysV.3) &
+     sps7 (SysV.2); Clipper; Convex (BSD); Cubix QBx (SysV); Data General
+     Aviion (DGUX); DEC MIPS (Ultrix 4.2, OSF/1, not VMS); Elxsi 6400 (SysV);
+     Gould Power Node & NP1 (4.2 & 4.3BSD); Harris Night Hawk 1200, 3000,
+     4000 & 5000 (cxux); Harris Night Hawk Power PC (powerunix); Honeywell
+     XPS100 (SysV); HP 9000 series 200, 300, 700, 800 (but not 500) (4.3BSD;
+     HP-UX 7, 8, 9; NextStep); Intel i386/i486/Pentium (GNU/Hurd, GNU/Linux,
+     386BSD, AIX, BSDI/386, FreeBSD, Esix, ISC, MS-DOS, NetBSD, SCO3.2v4,
+     Solaris, SysV, Xenix, WindowsNT, Windows95); IBM RS/6000 (AIX 3.2) &
+     RT/PC (AIX, BSD); Motorola Delta 147 & 187 (SysV.3, SysV.4, m88kbcs);
+     National Semiconductor 32K (Genix); NeXT (BSD, Mach 2 w/ NeXTStep 3.0);
+     Paragon (OSF/1); Prime EXL (SysV); Pyramid (BSD); Sequent Symmetry (BSD,
+     ptx); Siemens RM400 & RM600 (SysV); SGI Iris 4D (Irix 4.x & 5.x); Sony
+     News/RISC (NewsOS); Stardent i860 (SysV); Sun 3 & 4, SPARC 1, 1+, 2, 10,
+     Classic (SunOS 4.0, 4.1, Solaris 2.0-2.3); Tadpole 68k (SysV); Tektronix
+     XD88 (SysV.3) & 4300 (BSD); & Titan P2 & P3 (SysV).
+
+   * Emacs 18   (SrcCD)   [FSFrc]
+
+     Emacs 18 is several years old.  We no longer maintain it, but still
+     distribute it for those using platforms which Emacs 19 does not support:
+     Alliant FX/80, Altos 3068, Amdahl (UTS), AT&T (3Bs & 7300 PC), CCI 5/32
+     & 6/32, Celerity, DEC (VAX VMS), Dual, Encore (APC, DPC, & XPC), HLH
+     Orion (original & 1/05), ISI (Optimum V, 80386), Masscomp, NCR Tower 32
+     (SVR2 & SVR3), Nixdorf Targon 31, Nu (TI & LMI), pfa50, Plexus, Prime
+     EXL, Stride (system rel. 2), Tahoe, Tandem Integrity S2, Tektronix 16000,
+     Triton 88, Ustation E30 (SS5E), Whitechapel (MG1), & Wicat.
+
+   * `es'   (SrcCD)
+
+     `es' is an extensible shell (based on `rc') with first-class functions,
+     lexical scope, exceptions, and rich return values (i.e., functions can
+     return values other than just numbers).  `es''s extensibility comes from
+     the ability to modify and extend the shell's built-in services, such as
+     path searching and redirection.  Like `rc', it is great for both
+     interactive use and scripting, particularly since its quoting rules are
+     much less baroque than the C and Bourne shells.
+
+   * `enscript'   (SrcCD)
+
+     `enscript' is an upwardly-compatible replacement for the Adobe
+     `enscript' program.  It formats ASCII files (outputting in Postscript)
+     and stores generated output to a file or sends it directly to the
+     printer.
+
+   * Exim   (SrcCD)
+
+     Exim is a new Internet mail transfer agent, similar in style to Smail 3.
+     It can handle relatively high volume mail systems, header rewriting,
+     control over which hosts/nets may use it as a relay, blocking of
+     unwanted mail from specified hosts/nets/senders, and multiple local
+     domains on one mail host ("virtual domains") with several options for
+     the way these are handled.
+
+   * `f2c'   *Also see "Fortran" below & in *Note Forthcoming GNUs::*  
+     (SrcCD)
+
+     `f2c' converts Fortran-77 source into C or C++, which can be compiled
+     with GCC or G++.  Get bug fixes by FTP from site `netlib.bell-labs.com'
+     or by email from `netlib@netlib.bell-labs.com'.  For a summary, see the
+     file `/netlib/f2c/readme.Z'.
+
+   * `ffcall'   (SrcCD)
+
+     `ffcall' is a C library for implementing foreign function calls in
+     embedded interpreters by Bill Triggs and Bruno Haible.  It allows C
+     functions with arbitrary argument lists and return types to be called or
+     emulated (callbacks).
+
+   * Fileutils   (SrcCD)
+
+     The Fileutils are: `chgrp', `chmod', `chown', `cp', `dd', `df', `dir',
+     `dircolors', `du', `install', `ln', `ls', `mkdir', `mkfifo', `mknod',
+     `mv', `rm', `rmdir', `sync', `touch', & `vdir'.
+
+   * Findutils   (SrcCD)
+
+     `find' is frequently used both interactively and in shell scripts to
+     find files which match certain criteria and perform arbitrary operations
+     on them.  Also included are `locate', which scans a database for file
+     names that match a pattern, and `xargs', which applies a command to a
+     list of files.
+
+   * Finger   (SrcCD)
+
+     GNU Finger has more features than other finger programs.  For sites with
+     many hosts, a single host may be designated as the finger "server" host
+     and other hosts at that site configured as finger "clients".  The server
+     host collects information about who is logged in on the clients.  To
+     finger a user at a GNU Finger site, a query to any of its client hosts
+     gets useful information.  GNU Finger supports many customization
+     features, including user output filters and site-programmable output for
+     special target names.
+
+   * `flex'   (BinCD, SrcCD)   [FSFman, FSFrc]
+
+     `flex' is a replacement for the `lex' scanner generator.  `flex' was
+     written by Vern Paxson of the Lawrence Berkeley Laboratory and generates
+     far more efficient scanners than `lex' does.  Sources for the `Flex
+     Manual' and reference card are included (*note Documentation::.).
+
+   * Fortran (`g77')   *Also *note Forthcoming GNUs::.*   (SrcCD)
+
+     GNU Fortran (`g77'), developed by Craig Burley, is available for public
+     beta testing on the Internet.  For now, `g77' produces code that is
+     mostly object-compatible with `f2c' & uses the same run-time library
+     (`libf2c').
+
+   * Fontutils   (SrcCD)
+
+     The Fontutils convert between font formats, create fonts for use with
+     Ghostscript or TeX (starting with a scanned type image & converting the
+     bitmaps to outlines), etc.  It includes: `bpltobzr', `bzrto',
+     `charspace', `fontconvert', `gsrenderfont', `imageto', `imgrotate',
+     `limn', & `xbfe'.
+
+   * GAWK   (SrcCD)   [FSFman]
+
+     GAWK is upwardly compatible with the latest POSIX specification of
+     `awk'.  It also provides several useful extensions not found in other
+     `awk' implementations.  Texinfo source for the `The GNU Awk User's
+     Guide' comes with the software (*note Documentation::.).
+
+   * `gcal'   (SrcCD)
+
+     `gcal' is a program for printing calendars.  It displays different
+     styled calendar sheets, eternal holiday lists, and fixed date warning
+     lists.
+
+   * GCC   *Also *note GNUs Flashes::.*   (BinCD, SrcCD)   [FSFman]
+
+     Version 2 of the GNU C Compiler supports the languages C, C++, and
+     Objective-C; the source file name suffix or a compiler option selects
+     the language.  (Also see "GNAT" later in this article for Ada language
+     supports.) Objective-C support was donated by NeXT.  The runtime support
+     needed to run Objective-C programs is now distributed with GCC (this
+     does not include any Objective-C classes aside from `object', but see
+     "GNUstep" in *Note Forthcoming GNUs::).  As much as possible, G++ is
+     kept compatible with the evolving draft ANSI standard, but not with
+     `cfront' (AT&T's compiler), which has been diverging from ANSI.
+
+     GCC is a fairly portable optimizing compiler which performs many
+     optimizations.  They include: automatic register allocation, common
+     sub-expression elimination (CSE) (including a certain amount of CSE
+     between basic blocks - though not all the supported machine descriptions
+     provide for scheduling or delay slots), invariant code motion from
+     loops, induction variable optimizations, constant propagation, copy
+     propagation, delayed popping of function call arguments, tail recursion
+     elimination, integration of inline functions & frame pointer elimination,
+     instruction scheduling, loop unrolling, filling of delay slots, leaf
+     function optimization, optimized multiplication by constants, the
+     ability to assign attributes to instructions, & many local optimizations
+     automatically deduced from the machine description.
+
+     GCC can open-code most arithmetic on 64-bit values (type `long long
+     int').  It supports extended floating point (type `long double') on the
+     68k; other machines will follow.  GCC supports full ANSI C, traditional
+     C, & GNU C extensions (including: nested functions support, nonlocal
+     gotos, & taking the address of a label).
+
+     GCC can generate a.out, COFF, ELF, & OSF-Rose files when used with a
+     suitable assembler.  It can produce debugging information in these
+     formats: BSD stabs, COFF, ECOFF, ECOFF with stabs, & DWARF.
+
+     GCC generates code for many CPUs, including the a29k, Alpha, ARM, AT&T,
+     DSP1610, Clipper, Convex cN, Elxsi, Fujitsu Gmicro, i370, i860, i960,
+     MIL-STD-1750a, MIPS, ns32k, PDP-11, Pyramid, ROMP, RS/6000, SH, SPUR,
+     Tahoe, VAX, & we32k.
+
+     Position-independent code is generated for the Clipper, Hitachi H8/300,
+     HP-PA (1.0 & 1.1), i386/i486/Pentium, m68k, m88k, SPARC, & SPARClite.
+
+     Operating systems supported include: GNU/Hurd, GNU/Linux, ACIS, AIX, AOS,
+     BSD, Clix, Concentrix, Ctix, DG/UX, Dynix, FreeBSD, Genix, HP-UX, Irix,
+     ISC, Luna, LynxOS, Minix, NetBSD, NewsOS, NeXTStep, OS/2, OSF, OSF-Rose,
+     RISCOS, SCO, Solaris 2, SunOS 4, System/370, SysV, Ultrix, Unos, VMS, &
+     Windows/NT.
+
+     Using the configuration scheme for GCC, building a cross-compiler is as
+     easy as building a native compiler.
+
+     Version 1 of GCC, G++, & libg++ are no longer maintained.
+
+     Texinfo source for the `Using and Porting GNU CC' manual is included
+     with GCC (*note Documentation::.).
+
+   * GDB   (BinCD, SrcCD)   [FSFman, FSFrc]
+
+     GDB, the GNU DeBugger, is a source-level debugger for C, C++, & Fortran.
+     It provides partial support for  Modula-2 & Chill.
+
+     GDB can debug both C & C++, & will work with executables made by many
+     different compilers; but, C++ debugging will have some limitations if
+     you do not use GCC.
+
+     GDB has a command line user interface, and Emacs has GDB mode as an
+     interface.  Two X interfaces (not distributed or maintained by the FSF)
+     are: `gdbtk' (FTP it from `ftp.cygnus.com' in directory `/pub/gdb'); and
+     `xxgdb' (FTP it from `ftp.x.org' in directory `/contrib/utilities').
+
+     Executable files and symbol tables are read via the BFD library, which
+     allows a single copy of GDB to debug programs with multiple object file
+     formats (e.g., a.out, COFF, ELF).  Other features include a rich command
+     language, remote debugging over serial lines or TCP/IP, and watchpoints
+     (breakpoints triggered when the value of an expression changes).
+
+     GDB uses a standard remote interface to a simulator library which (so
+     far) has simulators for the ARM, Hitachi H8/300, Hitachi H8/500, Hitachi
+     Super-H, PowerPC, WDC 65816, & Zilog Z8001/2.
+
+     GDB can perform cross-debugging.  To say that GDB "targets" a platform
+     means it can perform native or cross-debugging for it.  To say that GDB
+     can "host" a given platform means that it can be built on it, but cannot
+     necessarily debug native programs.
+
+     GDB can:
+
+        * "target" & "host": Amiga 3000 (Amix, NetBSD), DEC Alpha (OSF/1),
+          DECstation 3100 & 5000 (Ultrix), HP 9000/300 (BSD, HP-UX), HP
+          9000/700 (HP-UX 9, 10), i386/i486/Pentium (GNU/Hurd, GNU/Linux,
+          BSD, FreeBSD, LynxOS, NetBSD, SCO, Windows NT), IBM RS/6000 (AIX
+          3.x, AIX 4.x, LynxOS), Motorola Delta m88k (System V, CX/UX), PC532
+          (NetBSD), Motorola m68k MVME-167 (LynxOS), NCR 3000 (SVR4), PowerPC
+          (AIX 4.x, MacOS, Windows NT), SGI (Irix V3, V4, V5), SONY News
+          (NewsOS 3.x), SPARC (LynxOS, NetBSD, Solaris 2.x, & SunOS 4.1 )
+          Sun-3 (SunOS 4.1), & Ultracomputer (a29k running Sym1).
+
+        * "target", but not "host": AMD 29000 (COFF & a.out), ARM (RDP),
+          Hitachi H8/300, Hitachi SH (CMON, SH3, E7000), HP PA Pro (Winbond,
+          Oki), i386 (a.out, COFF, OS/9000), i960 (MON960, Nindy, VxWorks),
+          m68k/m68332 (a.out, COFF, CPU32BUG, EST, ROM68K, VxWorks), MIPS
+          (ELF, IDT ecoff, PMON, VxWorks), PowerPC (PPCBug), Matra Sparclet,
+          Fujitsu SPARClite (a.out, COFF), WDC 65816, & Z8000.
+
+        * "host", but not "target": IBM RT/PC (AIX), HP/Apollo 68k (BSD), &
+          m68k Apple Macintosh (MacOS).  Sources for the manual,
+     `Debugging with GDB', and a reference card are included (*note
+     Documentation::.).
+
+   * `gdbm'   (SrcCD)
+
+     `gdbm' is the GNU replacement for the traditional `dbm' and `ndbm'
+     libraries.  It implements a database using quick lookup by hashing.
+     `gdbm' does not ordinarily make sparse files (unlike its Unix and BSD
+     counterparts).
+
+   * `gettext'    *Also *note Help the GNU Translation Project::.*   (SrcCD)
+
+     The GNU `gettext' tool set has everything maintainers need to
+     internationalize a package's user messages.  Once a package has been
+     internationalized, `gettext''s many tools help translators localize
+     messages to their native language and automate handling the translation
+     files.
+
+   * Generic NQS   (SrcCD)
+
+     Generic NQS is a network queuing system for spreading batch jobs across a
+     network of machines.  It is designed to be simple to install on a
+     heterogeneous network of machines, and has optimizations for running on
+     the high end, symmetric multiprocessing servers that are currently on the
+     market.  It is available for many more UNIX variants than any other
+     comparable product, and inter-operates with other NQS systems, including
+     Cray's NQE.
+
+   * `geomview'   *See* `http://www.geom.umn.edu/software/geomview'   (SrcCD)
+
+     `geomview' is an interactive geometry viewing program, for UNIX systems
+     with Motif, using X, GL, or OpenGL graphics.  It allows multiple
+     independently controllable objects and cameras.  `geomview' provides
+     interactive control for motion, appearances (including lighting,
+     shading, and materials), picking on an object, edge or vertex level, and
+     snapshots in PPM or SGI image files, Postscript, and Renderman RIB
+     format.  `geomview' can be controlled through direct mouse manipulation,
+     control panels, and keyboard shortcuts.  External programs can also
+     drive desired aspects of the viewer (such as continually loading
+     changing geometry or controlling the motion of certain objects) while
+     allowing interactive control of everything else.
+
+   * `gforth'   (SrcCD)
+
+     `gforth' is a fast, portable implementation of the ANS Forth language.
+
+   * Ghostscript   (SrcCD)
+
+     Ghostscript is an interpreter for the Postscript and PDF graphics
+     languages.
+
+     The current version of GNU Ghostscript, 3.33, includes nearly a full
+     Postscript Level 2 interpreter and a PDF 1.0 interpreter.  Significant
+     new features include: support for anti-aliased characters; the ability
+     to scan a directory and register all the fonts in it; support for Type 0
+     (Japanese / Chinese / Korean) fonts; and the ability to compile all the
+     external initialization files into the executable.  This version can
+     also run as a 32-bit MS Windows application.
+
+     Thanks to the generosity of URW++ (Hamburg, Germany), the low-quality
+     bitmap-derived fonts distributed with older versions have been replaced
+     with commercial-quality, hinted outline fonts.
+
+     Ghostscript executes commands in the Postscript language by writing
+     directly to a printer, drawing on an X window, or writing to files for
+     printing later or manipulating with other graphics programs.
+
+     Ghostscript includes a C-callable graphics library (for client programs
+     that do not want to deal with the Postscript language).  It also supports
+     i386/i486/Pentiums running DOS with EGA, VGA or SuperVGA graphics (but
+     please do *not* ask the FSF staff any questions about this; we do not
+     use DOS).
+
+   * Ghostview   (SrcCD)
+
+     Tim Theisen, `ghostview@cs.wisc.edu', created Ghostview, a previewer for
+     multi-page files with an X Window interface.  Ghostview & Ghostscript
+     work together; Ghostview creates a viewing window & Ghostscript draws in
+     it.
+
+   * GIT   (SrcCD)
+
+     The GNU Interactive Tools package includes: an extensible file system
+     browser, an ASCII/hex file viewer, a process viewer/killer, & other
+     related utilities & shell scripts.  It can be used to increase the speed
+     & efficiency of many daily tasks, such as copying & moving files &
+     directories, invoking editors, compressing/uncompressing files, creating
+     & expanding archives, compiling programs, sending mail, etc.  It looks
+     nice, has colors (if the standard ANSI color sequences are supported), &
+     is user-friendly.
+
+   * `gmp'   (SrcCD)
+
+     GNU `mp' is a library for arithmetic on arbitrary precision integers,
+     rational numbers, and floating-point numbers.  It has a rich set of
+     functions with a regular interface.
+
+     A major new release, version 2, came out in Spring '96.  Compared to
+     previous versions, it is much faster, contains lots of new functions, &
+     has support for arbitrary precision floating-point numbers.
+
+   * Gnans    (SrcCD)
+
+     Gnans is a program (and language) for the numerical study of
+     deterministic and stochastic dynamical systems.  The dynamical systems
+     may evolve in continuous or discrete time.  Gnans has graphical &
+     command line interfaces.
+
+   * GNAT: The GNU Ada Translator   (SrcCD)
+
+     GNAT, a front end for the entire Ada 95 language, including all special
+     needs annexes, is available via anonymous FTP from `cs.nyu.edu' and
+     various mirror sites in `/pub/gnat'.  SGI, DEC, and Siemens Nixdorf have
+     chosen GNU Ada 95 as the Ada compiler for their systems.  GNAT is
+     maintained by Ada Core Technologies.  For more information, see
+     `http://www.gnat.com'.
+
+   * GNATS   (SrcCD)
+
+     GNATS, GNats: A Tracking System, is a bug-tracking system.  It is based
+     upon the paradigm of a central site or organization which receives
+     problem reports and negotiates their resolution by electronic mail.
+     Although it has been used primarily as a software bug-tracking system so
+     far, it is sufficiently generalized that it could be used for handling
+     system administration issues, project management, or any number of other
+     applications.
+
+   * GNUMATH (`gnussl')   (SrcCD)
+
+     GNUMATH is a library (`gnussl') that simplifies scientific programming
+     in C & C++.  Its focus is on problems that can be solved by a
+     straight-forward application of numerical linear algebra.  It also
+     handles plotting.  It is in beta release; it is expected to grow more
+     versatile & offer a wider scope in time.
+
+   * `gnuplot'   (SrcCD)
+
+     `gnuplot' is an interactive program for plotting mathematical
+     expressions and data.  It plots both curves (2 dimensions) & surfaces (3
+     dimensions).  It was neither written nor named for the GNU Project; the
+     name is a coincidence.  Various GNU programs use `gnuplot'.
+
+   * `gnuserv'   (SrcCD)
+
+     `gnuserv' is an enhanced version of Emacs' `emacsclient' program.  It
+     lets the user direct a running Emacs to edit files or evaluate arbitrary
+     Emacs Lisp constructs from another process.
+
+   * GnuGo   (SrcCD)
+
+     GnuGo plays the game of Go.  It is not yet very sophisticated.
+
+   * `gperf'   (SrcCD)
+
+     `gperf' generates perfect hash tables.  The C version is in package
+     cperf.  The C++ version is in libg++.  Both produce hash functions in
+     either C or C++.
+
+   * Graphics   (SrcCD)
+
+     GNU Graphics produces x-y plots from ASCII or binary data.  It outputs
+     in Postscript, Tektronix 4010 compatible, and Unix device-independent
+     "plot" formats.  It has a previewer for the X Window System.  Features
+     include a `spline' interpolation program; examples of shell scripts
+     using `graph' and `plot'; a statistics toolkit; and output in TekniCAD
+     TDA and ln03 file formats.  Email bugs or queries to Rich Murphey,
+     `Rich@lamprey.utmb.edu'.
+
+   * grep   (SrcCD)
+
+     This package has GNU `grep', `egrep', and `fgrep', which find lines that
+     match entered patterns.  They are much faster than the traditional Unix
+     versions.
+
+   * Groff   (SrcCD)
+
+     Groff is a document formatting system based on a device-independent
+     version of `troff', & includes: `eqn', `nroff', `pic', `refer', `tbl',
+     `troff'; the `man', `ms', & `mm' macros; & drivers for Postscript, TeX
+     `dvi' format, the LaserJet 4 series of printers, and typewriter-like
+     devices.  Groff's `mm' macro package is almost compatible with the DWB
+     `mm' macros with several extensions.  Also included is a modified
+     version of the Berkeley `me' macros and an enhanced version of the X11
+     `xditview' previewer.  Written in C++, these programs can be compiled
+     with GNU C++ Version 2.7.2 or later.
+
+     Groff users are encouraged to contribute enhancements.  Most needed are
+     complete Texinfo documentation, a `grap' emulation (a `pic' preprocessor
+     for typesetting graphs), a page-makeup postprocessor similar to `pm'
+     (see `Computing Systems', Vol. 2, No. 2; ask `office@usenix.org' how to
+     get a copy), and an ASCII output class for `pic' to integrate `pic' with
+     Texinfo.  Questions and bug reports from users who have read the
+     documentation provided with Groff can be sent to
+     `bug-groff@prep.ai.mit.edu'.
+
+   * `gzip'   (SrcCD)
+
+     `gzip' can expand LZW-compressed files but uses another, unpatented
+     algorithm for compression which generally produces better results.  It
+     also expands files compressed with System V's `pack' program.
+
+   * `hello'   (SrcCD)
+
+     The GNU `hello' program produces a familiar, friendly greeting.  It
+     allows non-programmers to use a classic computer science tool which would
+     otherwise be unavailable to them.  Because it is protected by the GNU
+     General Public License, users are free to share and change it.  `hello'
+     is also a good example of a program that meets the GNU coding standards.
+     Like any truly useful program, `hello' contains a built-in mail reader.
+
+   * `hp2xx'   (SrcCD)
+
+     GNU `hp2xx' reads HP-GL files, decomposes all drawing commands into
+     elementary vectors, and converts them into a variety of vector and raster
+     output formats.  It is also an HP-GL previewer.  Currently supported
+     vector formats include encapsulated Postscript, Uniplex RGIP, Metafont,
+     various special TeX-related formats, and simplified HP-GL (line drawing
+     only) for imports.  Raster formats supported include IMG, PBM, PCX, &
+     HP-PCL (including Deskjet & DJ5xxC support).  Previewers work under X11
+     (Unix), OS/2 (PM & full screen), & MS-DOS (SVGA, VGA, & HGC).
+
+   * HylaFAX   *Also see* `http://www.vix.com/hylafax/'   (SrcCD)
+
+     HylaFAX (once named FlexFAX) is a facsimile system for Unix systems.  It
+     supports sending, receiving, & polled retrieval of facsimile, as well as
+     transparent shared data use of the modem.
+
+   * Hyperbole   (SrcCD)
+
+     Hyperbole, written by Bob Weiner in Emacs Lisp, is an open, efficient,
+     programmable information management, autonumbered outliner, & hypertext
+     system, intended for everyday work on any platform Emacs runs on.
+
+   * ID Utils   (SrcCD)
+
+     ID Utils is a package of simple, fast, high-capacity,
+     language-independent tools that index program identifiers, literal
+     numbers, or words of human-readable text.  Queries can be issued from
+     the command-line, or from within Emacs, serving as an augmented tags
+     facility.
+
+   * `indent'   (SrcCD)
+
+     GNU `indent' formats C source code into the GNU, BSD, K&R, or your own
+     special indentation style.  GNU `indent' is more robust & provides more
+     functionality than other such programs, including handling C++ comments.
+     It runs on Unix, DOS, VMS and ATARI systems.
+
+     The next version will also format C++ source code.  A Java version may
+     be considered in the future.
+
+   * Inetutils   (SrcCD)
+
+     Inetutils has common networking utilities & servers.
+
+     This release is mainly support the GNU Hurd, which is source compatible
+     with BSD in many ways, & will probably only work on systems that are
+     similarly compatible.
+
+   * Ispell   (SrcCD)
+
+     Ispell is an interactive spell checker that suggests "near misses" to
+     replace unrecognized words.  System & user-maintained dictionaries for
+     multiple languages can be used.  Standalone & Emacs interfaces are
+     available.
+
+   * JACAL   *Not available from the FSF except by FTP*
+
+     JACAL is a symbolic mathematics system for the manipulation &
+     simplification of algebraic equations & expressions.  It is written in
+     Scheme using the SLIB portable Scheme Library.  JACAL comes with SCM, an
+     IEEE P1178 & R4RS compliant Scheme implementation written in C.  SCM runs
+     on Amiga, Atari-ST, MacOS, MS-DOS, OS/2, NOS/VE, Unicos, VMS, Unix, &
+     similar systems.
+
+     The FSF is not distributing JACAL on any physical media.  You can FTP it
+     or get it from the Web site below.  Documentation is at
+     `http://www-swiss.ai.mit.edu/~jaffer/JACAL.html'.
+
+   * Karma   (SrcCD)
+
+     Karma is a signal and image processing library and visualization toolkit
+     that provides interprocess communications, authentication, graphics
+     display, and user interface to and manipulation of the Karma network
+     data structure. Several foreign data formats are also supported.  Karma
+     comes packaged with a number of generic visualization tools and some
+     astronomy-specific tools.
+
+   * `less'   (SrcCD)
+
+     `less' is a display paginator similar to `more' and `pg', but with
+     various features (such as the ability to scroll backwards) that most
+     pagers lack.
+
+   * Lynx   *Also see* `http://www.cc.ukans.edu/about_lynx'  (SrcCD)
+
+     Lynx is a text-only World Wide Web browser for those running
+     character-only ("cursor-addressable") terminals or terminal emulators.
+
+   * `m4'   (SrcCD)
+
+     GNU `m4' is an implementation of the traditional Unix macro processor.
+     It is mostly SVR4 compatible, although it has some extensions (e.g.,
+     handling more than 9 positional parameters to macros).  `m4' also has
+     built-in functions for including files, running shell commands, doing
+     arithmetic, etc.
+
+   * `make'   (BinCD, SrcCD) [FSFman]
+
+     GNU `make' supports POSIX 1003.2 and has all but a few obscure features
+     of the BSD and System V versions of `make', and runs on MS-DOS,
+     AmigaDOS, VMS, & Windows NT or 95, as well as all Unix-compatible
+     systems.  GNU extensions include long options, parallel compilation,
+     flexible implicit pattern rules, conditional execution, & powerful text
+     manipulation functions.  Source for the `Make Manual' comes with the
+     program (*note Documentation::.).
+
+   * MandelSpawn   (SrcCD)
+
+     A parallel Mandelbrot generation program for the X Window System.
+
+   * Maxima   (SrcCD)
+
+     Maxima is a Common Lisp implementation of MIT's Macsyma system for
+     computer based algebra.
+
+   * Meta-HTML   (SrcCD)
+
+     <Meta-HTML> is a programming language specifically designed for working
+     within the World Wide Web environment.  Although it is a genuine
+     programming language, suitable for large-scale symbolic manipulation, it
+     provides the most commonly wanted Web functionality as built-in
+     primitives, so you don't have to write them.
+
+   * Midnight Commander (`mc')   (SrcCD)
+
+     The Midnight Commander is a user friendly & colorful Unix file manager &
+     shell, useful to novice & guru alike.  It has a built-in virtual file
+     system that manipulates files inside tar files or files on remote
+     machines using the FTP protocol.  This mechanism is extendable with
+     external Unix programs.
+
+   * Miscellaneous Files Distribution   (SrcCD)
+
+     The GNU Miscellaneous Files are non-crucial files that are common on
+     various systems, including word lists, airport codes, ZIP codes etc.
+
+   * `mkisofs'   (SrcCD)
+
+     `mkisofs' is a pre-mastering program to generate an ISO 9660 file system.
+     It takes a snapshot of a directory tree, and makes a binary image which
+     corresponds to an ISO 9660 file system when written to a block device.
+
+     It can also generate the System Use Sharing Protocol records of the Rock
+     Ridge Interchange Protocol (used to further describe the files in an ISO
+     9660 file system to a Unix host; it provides information such as longer
+     filenames, uid/gid, permissions, and device nodes).
+
+     The `mkisofs' program is often used with `cdwrite'.  The `cdwrite'
+     program works by taking the image that `mkisofs' generates and driving a
+     cdwriter drive to actually burn the disk.  `cdwrite' works under
+     GNU/Linux, and supports popular cdwriter drives.  Older versions of
+     `cdwrite' were included with older versions of `mkisofs';
+     `sunsite.unc.edu' has the latest version:
+     `/pub/Linux/utils/disk-management/cdwrite-2.0.tar.gz'.
+
+   * `mtools'   (SrcCD)
+
+     `mtools' is a set of public domain programs to allow Unix systems to
+     read, write, and manipulate files on an MS-DOS file system (usually a
+     diskette).
+
+   * MULE   (SrcCD)
+
+     MULE is a MULtilingual Enhancement to GNU Emacs.  MULE text buffers can
+     contain a mix of characters from many languages including: Japanese,
+     Chinese, Korean, Vietnamese, Thai, modern European languages (including
+     Greek & Russian), Arabic, & Hebrew.  MULE also provides input methods
+     for all of them.  MULE is being merged into GNU Emacs.  *Note GNU &
+     Other Free Software in Japan::, for more information about MULE.
+
+   * `ncurses'   (SrcCD)
+
+     `ncurses' implements the Unix `curses' API for developing screen-based
+     programs that are terminal independent.  It is not merely an emulation
+     of old (BSD) curses/termcap, but is fully compatible with SVR4
+     curses/terminfo.  It includes color, multiple-highlight, & xterm
+     mouse-event support.
+
+   * NetHack   (SrcCD)
+
+     NetHack is a Rogue-like adventure game supporting character & X displays.
+
+   * NIH Class Library   (SrcCD)
+
+     The NIH Class Library is a set of C++ classes (similar to
+     Smalltalk-80's) written in C++ by Keith Gorlen of the National Institutes
+     of Health (NIH).
+
+   * `nvi'   (SrcCD)
+
+     `nvi' is an implementation of the `ex'/`vi' Unix editor.  It has all the
+     functionality of the original `ex'/`vi', except `open' mode & the `lisp'
+     edit option.  Enhancements include multiple buffers, command-line
+     editing & path completion, integrated Perl5 & Tcl scripting languages,
+     Cscope support & tag stacks, 8-bit data support, infinite file/line
+     lengths, infinite undo, language catalogs, incremental search, extended
+     regular expressions, and security fixes.  It uses Autoconf for
+     configuration and runs on any Unix-like system.
+
+   * Oaklisp    (SrcCD)
+
+     Oaklisp is a fast, portable, object-oriented Scheme with first class
+     types.
+
+   * Objective-C Library   (SrcCD)
+
+     Our Objective-C Class Library (`gstep-base.tar.gz', `libgnustep-base')
+     has general-purpose, non-graphical Objective-C objects written by Andrew
+     McCallum & others.  It includes collection classes for maintaining
+     groups of objects, I/O streams, coders for formatting objects & C types
+     to streams, ports for network packet transmission, distributed objects
+     (remote object messaging), string classes, invocations, notifications,
+     event loops, timers, exceptions, pseudo-random number generators, &
+     more.  It has the base classes for the GNUstep project; all but a few of
+     them have already been written.  Send queries & bugs to
+     `mccallum@gnu.ai.mit.edu'.  See "GNUstep" in *Note Forthcoming GNUs::.
+
+   * OBST   (SrcCD)
+
+     OBST is a persistent object management system with bindings to C++.
+     OBST supports incremental loading of methods.  Its graphical tools
+     require the X Window System.  It features a hands-on tutorial including
+     sample programs.  It compiles with G++, and should install easily on
+     most Unix platforms.
+
+   * Octave   *Also see* `http://www.che.wisc.edu/octave'   (SrcCD)
+
+     Octave does arithmetic for real and complex scalars and matrices, solves
+     sets of nonlinear algebraic equations, integrates systems of ordinary
+     differential & differential-algebraic equations, and integrates
+     functions over finite & infinite intervals.  Two- & three-dimensional
+     plotting is available using `gnuplot'.
+
+     Version 2.0 of Octave was released in December '96.  It includes support
+     for dynamically linked functions, user-defined data types, many new
+     functions, & a completely revised manual.  Octave works on most Unix
+     systems & OS/2.  A port to Windows NT/95 is underway.
+
+   * Oleo     (SrcCD)
+
+     Oleo is a spreadsheet program (better for you than the more expensive
+     spreadsheets).  It supports the X Window System and character-based
+     terminals, and can output Embedded Postscript renditions of spreadsheets.
+     Keybindings should be familiar to Emacs users and are configurable.
+     Oleo supports multiple variable-width fonts when used under the X Window
+     System or outputting to Postscript devices.
+
+   * `p2c'   (SrcCD)
+
+     `p2c' is Dave Gillespie's Pascal-to-C translator.  It inputs many
+     dialects (HP, ISO, Turbo, VAX, etc.)  & generates readable,
+     maintainable, portable C.
+
+   * `patch'   (SrcCD)
+
+     `patch' is our version of Larry Wall's program to take `diff''s output
+     and apply those differences to an original file to generate the modified
+     version.
+
+   * PCL   (SrcCD)
+
+     PCL is a free implementation of a large subset of CLOS, the Common Lisp
+     Object System.  It runs under both GCL and CLISP, mentioned above.
+
+   * `perl'   (SrcCD)
+
+     Larry Wall's `perl' combines the features & capabilities of C, `sed',
+     `awk', & `sh', and provides interfaces to the Unix system calls & many C
+     library routines.
+
+   * `pine'   *Also *note Bad News and Good News about Pine::.*   (SrcCD)
+
+     `pine' is a friendly menu-driven electronic mail manager and user
+     interface.
+
+   * `ptx'    *Also *note Forthcoming GNUs::.*   (SrcCD)
+
+     GNU `ptx' is our version of the traditional permuted index generator.
+     It handles multiple input files at once, has TeX compatible output, &
+     outputs readable "KWIC" (KeyWords In Context) indexes without using
+     `nroff'.
+
+     It does not yet handle input files that do not fit in memory all at once.
+
+   * `rc'   (SrcCD)
+
+     `rc' is a shell that features a C-like syntax (much more so than `csh')
+     and far cleaner quoting rules than the C or Bourne shells.  It's
+     intended to be used interactively, but is also great for writing
+     scripts.  It inspired the shell `es'.
+
+   * RCS   (SrcCD)
+
+     RCS, the Revision Control System, is used for version control &
+     management of software projects.  Used with GNU `diff', RCS can handle
+     binary files (8-bit data, executables, object files, etc).  RCS now
+     conforms to GNU configuration standards & to POSIX 1003.1b-1993.  Also
+     see the CVS item above.
+
+   * `recode'    *Also *note Forthcoming GNUs::.*   (SrcCD)
+
+     GNU `recode' converts files between character sets and usages.  When
+     exact transliterations are not possible, it may delete the offending
+     characters or fall back on approximations.  This program recognizes or
+     outputs nearly 150 different character sets and is able to transliterate
+     files between almost any pair.  Most RFC 1345 character sets are
+     supported.
+
+   * `regex'   (SrcCD)
+
+     The GNU regular expression library supports POSIX.2, except for
+     internationalization features.  It is included in many GNU programs which
+     do regular expression matching & is available separately.  An alternate
+     regular expression package, `rx', is faster than `regex' in many cases;
+     we were planning to replace `regex' with `rx', but it is not certain
+     this will happen.
+
+   * Roxen   (SrcCD)
+
+     Roxen is a modularized, object-oriented, non-forking World Wide Web
+     server with high performance and throughput.  It was formerly named
+     Spinner, but was renamed for trademark reasons.
+
+   * `rx'   (SrcCD)
+
+     Tom Lord has written `rx', a new regular expression library which is
+     faster than the older GNU `regex' library.  It is being distributed with
+     `sed'.  `rx' is also an installation option for `fileutils', `id-utils',
+     and `textutils', and maybe for future versions of `cpio', `m4' and `ptx'.
+
+   * SAOimage   (SrcCD)
+
+     SAOimage is an X-based astronomical image viewer.  It reads array data
+     images, which may be in specific formats, and displays them with a
+     pseudocolor colormap.  There is full interactive control of the
+     colormap, panning and zooming, graphical annotation, and cursor tracking
+     in pixel and sky coordinates, among other features.
+
+   * Scheme   (SrcCD)
+
+     Scheme is a simplified, lexically-scoped dialect of Lisp.  It was
+     designed at MIT and other universities to teach students the art of
+     programming and to research new parallel programming constructs and
+     compilation techniques.
+
+     We now distribute MIT Scheme 7.3, which conforms to the "Revised^4
+     Report On the Algorithmic Language Scheme" (MIT AI Lab Memo 848b), for
+     which TeX source is included.  It is written partly in C, but is
+     presently hard to bootstrap.  Binaries to bootstrap it exist for: HP9000
+     series 300, 400, 700, & 800 (running HP-UX 9.0), NeXT (NeXT OS 2 or 3.2),
+     DEC Alpha (OSF/1), IBM RS/6000 (AIX), Sun-3 or Sun-4 (SunOS 4.1),
+     DECstation 3100/5100 (Ultrix 4.0), Sony NeWS-3250 (NEWS OS 5.01), &
+     Intel i386 (MS-DOS, Windows 3.1 or NT).  If your system isn't on this
+     list & you don't enjoy the bootstrap challenge, see "JACAL" earlier in
+     this article.
+
+   * `screen'   (SrcCD)
+
+     `screen' is a terminal multiplexer that runs several separate "screens"
+     (ttys) on a single character-based terminal.  Each virtual terminal
+     emulates a DEC VT100 plus several ISO 2022 and ISO 6429 (ECMA 48, ANSI
+     X3.64) functions, including color.  Arbitrary keyboard input translation
+     is also supported.  `screen' sessions can be detached and resumed later
+     on a different terminal type.  Output in detached sessions is saved for
+     later viewing.
+
+   * `sed'   (SrcCD)
+
+     `sed' is a stream-oriented version of `ed'.  It comes with the `rx'
+     library.
+
+   * Sharutils   (SrcCD)
+
+     `shar' makes so-called shell archives out of many files, preparing them
+     for transmission by electronic mail services; `unshar' helps unpack
+     these shell archives after reception.  `uuencode' and `uudecode' are
+     POSIX compliant implementations of a pair of programs which transform
+     files into a format that can be safely transmitted across a 7-bit ASCII
+     link.
+
+   * Shellutils   (SrcCD)
+
+     The Shellutils are: `basename', `chroot', `date', `dirname', `echo',
+     `env', `expr', `factor', `false', `groups', `hostname', `id', `logname',
+     `nice', `nohup', `pathchk', `printenv', `printf', `pwd', `seq', `sleep',
+     `stty', `su', `tee', `test', `true', `tty', `uname', `uptime', `users',
+     `who', `whoami', & `yes'.
+
+   * Shogi   (SrcCD)
+
+     Shogi is a Japanese game similar to Chess; a major difference is that
+     captured pieces can be returned into play.
+
+     GNU Shogi is a variant of GNU Chess; it implements the same features &
+     similar heuristics.  As a new feature, sequences of partial board
+     patterns can be introduced to help the program play toward specific
+     opening patterns.  It has both character and X display interfaces.
+
+     It is primarily supported by Matthias Mutz on behalf of the FSF.
+
+   * SIPP    (SrcCD)
+
+     SIPP is a library for photorealisticly rendering 3D scenes.  Scenes can
+     be illuminated by an arbitrary number of light sources; they are built up
+     of object hierarchies, with arbitrarily many subobjects and subsurfaces.
+     Surfaces can be rendered with either Phong, Gouraud, or flat shading.
+     The library supports programmable shaders and texture mapping.
+
+   * Smail   (SrcCD)
+
+     Smail is a mail transport system, designed as a compatible drop-in
+     replacement for `sendmail'.  It uses a much simpler configuration format
+     than `sendmail' and is designed to be setup with minimal effort.
+
+   * Smalltalk   *Also *note Forthcoming GNUs::.*   (SrcCD)
+
+     GNU Smalltalk is an interpreted object-oriented programming language
+     system written in highly portable C.  It has been ported to DOS, many
+     Unix, & other OSes.  Features include a binary image save capability,
+     the ability to call user-written C code with parameters, an Emacs
+     editing mode, a version of the X protocol invocable from Smalltalk,
+     optional byte-code compilation and/or execution tracing, & automatically
+     loaded per-user initialization files.  It implements all of the classes
+     & protocol in the book "Smalltalk-80: The Language", except for the
+     graphic user interface (GUI) related classes.
+
+   * SNePS    (SrcCD)
+
+     SNePS is the Semantic Network Processing System.  It is an
+     implementation of a fully intensional theory of propositional knowledge
+     representation and reasoning.  SNePS runs under CLISP or GCL.
+
+   * Superopt   (SrcCD)
+
+     Superopt is a function sequence generator that uses an exhaustive
+     generate-and-test approach to find the shortest instruction sequence for
+     a given function.  You provide a function as input, a CPU to generate
+     code for, and how many instructions you want.  Its use in GCC is
+     described in the `ACM SIGPLAN PLDI'92 Proceedings'.  It supports: SPARC,
+     m68k, m68020, m88k, IBM POWER and PowerPC, AMD 29k, Intel x86 & 960,
+     Pyramid, DEC Alpha, Hitachi SH, & HP-PA.
+
+   * `stow'   (SrcCD)
+
+     `stow' manages the installation of software packages, keeping them
+     separate while making them appear to be installed in the same place.
+
+   * `tar'   (SrcCD)
+
+     GNU `tar' includes multi-volume support, the ability to archive sparse
+     files, compression/decompression, remote archives, and special features
+     that allow `tar' to be used for incremental and full backups.  GNU `tar'
+     uses an early draft of the POSIX 1003.1 `ustar' format which is
+     different from the final version.  This will be corrected in the future.
+
+   * Termcap Library   (SrcCD)   [FSFman]
+
+     The GNU Termcap library is a drop-in replacement for `libtermcap.a' on
+     any system.  It does not place an arbitrary limit on the size of Termcap
+     entries, unlike most other Termcap libraries.  Included is source for the
+     `Termcap Manual' in Texinfo format (*note Documentation::.).
+
+   * Termutils   (SrcCD)
+
+     The Termutils package contains programs for controlling terminals.
+     `tput' is a portable way for shell scripts to use special terminal
+     capabilities.  `tabs' is a program to set hardware terminal tab settings.
+
+   * TeX   (SrcCD)
+
+     TeX is a document formatting system that handles complicated
+     typesetting, including mathematics.  It is GNU's standard text formatter.
+
+     The University of Washington maintains & supports a tape distribution of
+     TeX for Unix systems.  The core material is Karl Berry's `web2c' TeX
+     package.  Sources are available via anonymous FTP; retrieval
+     instructions are in `/pub/tex/unixtex.ftp' on `ftp.cs.umb.edu'.  If you
+     receive any installation support from the University of Washington,
+     consider sending them a donation.
+
+     To order a full distribution written in `tar' on either a 1/4inch
+     4-track QIC-24 cartridge or a 4mm DAT cartridge, send $210.00 to:
+
+          Pierre A. MacKay
+          Department of Classics
+          DH-10, Denny Hall 218
+          University of Washington
+          Seattle, WA   98195
+          USA
+          
+          Electronic-Mail: `mackay@cs.washington.edu'
+          Telephone: +1-206-543-2268
+
+     Please make checks payable to: `University of Washington'.  Do not
+     specify any other payee.  That causes accounting problems.  Checks must
+     be in U.S. dollars, drawn on a U.S. bank.  Only prepaid orders can be
+     handled.  Overseas sites: please add to the base cost $20.00 to ship via
+     air parcel post or $30.00 to ship via courier.  Please check with the
+     above for current prices & formats.
+
+   * Texinfo   (SrcCD)   [FSFman]
+
+     Texinfo is a set of utilities (`makeinfo', `info', `install-info',
+     `texi2dvi', `texindex', & `texinfmt.el') which generate printed manuals,
+     plain ASCII text, & online hypertext documentation (called "Info"), &
+     can read online Info documents; Info files can also be read in Emacs.
+     Version 3 has both Emacs Lisp & standalone programs written in C or as
+     shell scripts.  Texinfo mode for Emacs enables easy editing & updating
+     of Texinfo files.  Source for the `Texinfo Manual' is included (*note
+     Documentation::.).
+
+   * Textutils   (SrcCD)
+
+     The Textutils programs manipulate textual data.  They include: `cat',
+     `cksum', `comm', `csplit', `cut', `expand', `fmt', `fold', `head',
+     `join', `md5sum', `nl', `od', `paste', `pr', `sort', `split', `sum',
+     `tac', `tail', `tr', `unexpand', `uniq', and `wc'.
+
+   * TIFF library   (SrcCD)
+
+     The TIFF library, `libtiff', is a library for manipulating Tagged Image
+     File Format files, a commonly used bitmap graphics format.
+
+   * Tile Forth   (SrcCD)
+
+     Tile Forth is a 32-bit implementation of the Forth-83 standard written
+     in C, allowing it to be easily ported to new systems & extended with any
+     C-function (graphics, windowing, etc).
+
+     Many documented Forth libraries are available, e.g. top-down parsing,
+     multi-threads, & object-oriented programming.
+
+   * `time'   (SrcCD)
+
+     `time' reports (usually from a shell) the user, system, & real time used
+     by a process.  On some systems it also reports memory usage, page
+     faults, etc.
+
+   * `ucblogo'   (SrcCD)
+
+     `ucblogo' implements the classic teaching language, Logo.
+
+   * UUCP   (SrcCD)
+
+     GNU's UUCP system (written by Ian Lance Taylor) supports the `f', `g'
+     (all window & packet sizes), `v', `G', `t', `e', Zmodem, & two new
+     bidirectional (`i' & `j') protocols.  With a BSD sockets library, it can
+     make TCP connections.  With TLI libraries, it can make TLI connections.
+     Source is included for a manual (not yet published by the FSF).
+
+   * viewfax   (SrcCD)
+
+     Viewfax is a tool for displaying fax files on an X display.  It can
+     display raw, digifax or tiff/f files, such as those received by HylaFAX.
+
+   * W3   (SrcCD)
+
+     W3 (written by William Perry in Emacs Lisp) is an extensible, advanced
+     World Wide Web browser that runs as part of Emacs.  It understands many
+     protocols & file formats: FTP, gopher, HTML, SMTP, Telnet, WAIS, etc.
+
+   * `wdiff'   (SrcCD)
+
+     `wdiff' is a front-end to GNU `diff'.  It compares two files, finding
+     the words deleted or added to the first to make the second.  It has many
+     output formats and works well with terminals and pagers.  `wdiff' is
+     very useful when two texts differ only by a few words and paragraphs
+     have been refilled.
+
+   * `wget'   (SrcCD)
+
+     `wget' non-interactively retrieves files from the WWW using HTTP & FTP.
+     It is suitable for use in shell scripts.
+
+   * `windows32api'   (SrcCD)
+
+     `windows32' is a set of header files & import libraries that can be used
+     by GNU tools for compiling & linking programs to be run on Windows NT/95.
+
+   * WN   (SrcCD)
+
+     WN is a World Wide Web server designed to be secure and flexible.  It
+     offers many different capabilities in pre-parsing files before passing
+     them to the client, and has a very different design from Apache and the
+     NCSA server.
+
+   * X11   (SrcCD)
+
+     We distribute Version 11, Release 6.3 of the X Window System with the
+     latest patches & bug fixes.  X11 includes all of the core software,
+     documentation, contributed clients, libraries, & toolkits, games, etc.
+
+     While supplies last, we will distribute X11R5 on the November 1993
+     Source Code CD-ROM.
+
+   * `xboard'   (SrcCD)
+
+     `xboard' is a graphical chessboard for X Windows.  It can serve as a
+     user interface to the Crafty or GNU chess programs, the Internet Chess
+     Servers, e-mail correspondence chess, or games saved in Portable Game
+     Notation.
+
+   * `xgrabsc'   (SrcCD)
+
+     `xgrabsc' is a screen capture program similar to `xwd' but with a
+     graphical user interface, more ways of selecting the part of the screen
+     to capture, & different types of output: Postscript, color Postscript,
+     xwd, bitmap, pixmap, & puzzle.
+
+   * `xinfo'   (SrcCD)
+
+     `xinfo' is an X-windows program for reading Info files.  It uses a
+     special widget, which is available for use in other programs.
+
+   * `xshogi'   (SrcCD)
+
+     `xshogi' is a graphical Shogi (Japanese Chess) board for the X Window
+     System.  It can serve as a user interface to GNU Shogi, as a referee for
+     games between two humans, or as a client for the Internet Shogi Server.
+
+   * `Ygl'   (SrcCD)
+
+     `Ygl' emulates a subset of SGI's GL (Graphics Language) library under
+     X11 on most platforms with an ANSI C compiler (including GCC).  It has
+     most two-dimensional graphics routines, the queue device & query
+     routines, double buffering, RGB mode with dithering, FORTRAN bindings,
+     etc.
+
+ 
+
+Program/Package Cross Reference
+*******************************
+
+Here is a list of the package each GNU program or library is in.  You can FTP
+the current list in the file `/pub/gnu/ProgramIndex' from a GNU FTP host
+(listed in *Note How to Get GNU Software::).
+
+        * 4dview geomview
+     
+        * a2p perl
+        * a2x xopt
+        * ac bsd44
+        * accton bsd44
+        * ackpfd phttpd
+        * acl bsd44
+        * acm acm
+        * acms acm
+        * addbbox geomview
+        * addftinfo Groff
+        * adventure bsd44
+        * afm2tfm TeX
+        * aid ID Utils
+        * amd bsd44
+        * ansitape bsd44
+        * AnswerGarden xopt
+        * apply bsd44
+        * appres xreq
+        * apropos bsd44
+        * ar Binutils
+        * arithmetic bsd44
+        * arp bsd44
+        * atc bsd44
+        * authwn WN
+        * autoconf Autoconf
+        * autoheader Autoconf
+        * automake Automake
+        * autoreconf Autoconf
+        * autoscan Autoconf
+        * autoupdate Autoconf
+        * auto_box xopt
+        * auto_box xreq
+     
+        * b2m Emacs
+        * backgammon bsd44
+        * bad144 bsd44
+        * badsect bsd44
+        * banner bsd44
+        * basename Shellutils
+        * bash BASH
+        * battlestar bsd44
+        * bc bc
+        * bcd bsd44
+        * bdes bsd44
+        * bdftops Ghostscript
+        * beach_ball xopt
+        * beach_ball xreq
+        * beach_ball2 xopt
+        * bibtex TeX
+        * biff bsd44
+        * bison Bison
+        * bitmap xreq
+        * boggle bsd44
+        * bpltobzr Fontutils
+        * bugfiler bsd44
+        * buildhash Ispell
+        * bzrto Fontutils
+     
+        * c++ GCC
+        * c++filt Binutils
+        * c2ph perl
+        * ca100 xopt
+        * caesar bsd44
+        * cal bsd44
+        * calendar bsd44
+        * canfield bsd44
+        * cat Textutils
+        * cbars wdiff
+        * cc GCC
+        * cc1 GCC
+        * cc1obj GCC
+        * cc1plus GCC
+        * cccp GCC
+        * cdwrite mkisofs
+        * cfengine cfengine
+        * cgi Spinner
+        * charspace Fontutils
+        * checknr bsd44
+        * chess bsd44
+        * chflags bsd44
+        * chgrp Fileutils
+        * ching bsd44
+        * chmod Fileutils
+        * chown Fileutils
+        * chpass bsd44
+        * chroot bsd44
+        * ci RCS
+        * cksum Textutils
+        * cktyps g77
+        * clisp CLISP
+        * clri bsd44
+        * cmail xboard
+        * cmmf TeX
+        * cmodext xopt
+        * cmp Diffutils
+        * co RCS
+        * col bsd44
+        * colcrt bsd44
+        * colrm bsd44
+        * column bsd44
+        * comm Textutils
+        * compress bsd44
+        * comsat bsd44
+        * connectd bsd44
+        * cp Fileutils
+        * cpicker xopt
+        * cpio cpio
+        * cpp GCC
+        * cppstdin perl
+        * cribbage bsd44
+        * crock xopt
+        * csh bsd44
+        * csplit Textutils
+        * ctags Emacs
+        * ctwm xopt
+        * cu UUCP
+        * cut Textutils
+        * cvs CVS
+        * cvscheck CVS
+        * cvtmail Emacs
+        * cxterm xopt
+     
+        * d Fileutils
+        * date Shellutils
+        * dc bc
+        * dd Fileutils
+        * ddd DDD
+        * defid ID Utils
+        * delatex TeX
+        * demangle Binutils
+        * descend CVS
+        * detex TeX
+        * df Fileutils
+        * dhtppd phttpd
+        * diff Diffutils
+        * diff3 Diffutils
+        * diffpp enscript
+        * digest-doc Emacs
+        * dipress bsd44
+        * dir Fileutils
+        * dircolors Fileutils
+        * dirname Shellutils
+        * dish xopt
+        * disklabel bsd44
+        * diskpart bsd44
+        * dld dld
+        * dm bsd44
+        * dmesg bsd44
+        * doschk doschk
+        * dox xopt
+        * du Fileutils
+        * dump bsd44
+        * dump mkisofs
+        * dumpfs bsd44
+        * dvi2tty TeX
+        * dvicopy TeX
+        * dvips TeX
+        * dvitype TeX
+     
+        * ecc ecc
+        * echo Shellutils
+        * ed ed
+        * edit-pr GNATS
+        * editres xreq
+        * edquota bsd44
+        * eeprom bsd44
+        * egrep grep
+        * eid ID Utils
+        * emacs Emacs
+        * emacsclient Emacs
+        * emacsserver Emacs
+        * emacstool Emacs
+        * emu xopt
+        * enscript enscript
+        * env Shellutils
+        * eqn Groff
+        * error bsd44
+        * es es
+        * esdebug es
+        * etags Emacs
+        * ex nvi
+        * example geomview
+        * exicyclog Exim
+        * exigrep Exim
+        * exim Exim
+        * eximon Exim
+        * eximon Exim
+        * eximstats Exim
+        * exinext Exim
+        * exiwhat Exim
+        * expand Textutils
+        * expect DejaGnu
+        * expr Shellutils
+        * exterm xopt
+     
+        * f2c f2c
+        * factor bsd44
+        * fakemail Emacs
+        * false Shellutils
+        * fastboot bsd44
+        * fax2ps HylaFAX
+        * faxalter HylaFAX
+        * faxanswer HylaFAX
+        * faxcover HylaFAX
+        * faxd HylaFAX
+        * faxd.recv HylaFAX
+        * faxmail HylaFAX
+        * faxquit HylaFAX
+        * faxrcvd HylaFAX
+        * faxrm HylaFAX
+        * faxstat HylaFAX
+        * fc f2c
+        * fdraw xopt
+        * ffe g77
+        * fgrep grep
+        * fid ID Utils
+        * file bsd44
+        * find Findutils
+        * find2perl perl
+        * finger Finger
+        * fingerd Finger
+        * fish bsd44
+        * fixfonts Texinfo
+        * fixinc.svr4 GCC
+        * fixincludes GCC
+        * flex flex
+        * flex++ flex
+        * flythrough geomview
+        * fmt bsd44
+        * fnid ID Utils
+        * fold Textutils
+        * font2c Ghostscript
+        * fontconvert Fontutils
+        * forth Tile Forth
+        * forthicon Tile Forth
+        * forthtool Tile Forth
+        * fortune bsd44
+        * fpr bsd44
+        * freq Ispell
+        * freqtbl Ispell
+        * from bsd44
+        * fsck bsd44
+        * fsplit bsd44
+        * fstat bsd44
+        * ftp bsd44
+        * ftp Inetutils
+        * ftpd bsd44
+        * ftpd Inetutils
+     
+        * g++ GCC
+        * gas Binutils
+        * gawk GAWK
+        * gcal gcal
+        * gcc GCC
+        * gcore bsd44
+        * gdb GDB
+        * genclass libg++
+        * geomstuff geomview
+        * gettext gettext
+        * getty bsd44
+        * gftodvi TeX
+        * gftopk TeX
+        * gftype TeX
+        * ghostview Ghostview
+        * gid ID Utils
+        * ginsu geomview
+        * git GIT
+        * gitaction GIT
+        * gitcmp GIT
+        * gitkeys GIT
+        * gitmatch GIT
+        * gitmount GIT
+        * gitps GIT
+        * gitredir GIT
+        * gitrgrep GIT
+        * gitview GIT
+        * gitwipe GIT
+        * gn GN
+        * gnans Gnans
+        * gnanslator Gnans
+        * gnats GNATS
+        * gnuchess Chess
+        * gnuchessc Chess
+        * gnuchessn Chess
+        * gnuchessr Chess
+        * gnuchessx Chess
+        * gnuclient gnuserv
+        * gnudoit gnuserv
+        * gnupdisp Shogi
+        * gnuplot gnuplot
+        * gnuplot_x11 gnuplot
+        * gnuserv gnuserv
+        * gnushogi Shogi
+        * gnushogir Shogi
+        * gnushogix Shogi
+        * go GnuGo
+        * gpc xopt
+        * gpc xreq
+        * gperf cperf
+        * gperf libg++
+        * gprof Binutils
+        * graffiti geomview
+        * graph Graphics
+        * grep grep
+        * grodvi Groff
+        * groff Groff
+        * grops Groff
+        * grotty Groff
+        * groups Shellutils
+        * gs Ghostscript
+        * gsbj Ghostscript
+        * gsdj Ghostscript
+        * gslj Ghostscript
+        * gslp Ghostscript
+        * gsnd Ghostscript
+        * gsrenderfont Fontutils
+        * gunzip gzip
+        * gvclock geomview
+        * gwm xopt
+        * gzexe gzip
+        * gzip gzip
+     
+        * h2ph perl
+        * h2pl perl
+        * hack bsd44
+        * hangman bsd44
+        * head Textutils
+        * hello hello
+        * hexdump bsd44
+        * hexl Emacs
+        * hinge geomview
+        * hostname Shellutils
+        * hp2xx hp2xx
+        * hterm xopt
+        * htmlencode phttpd
+        * httpd apache
+        * httpdecode phttpd
+     
+        * i18nOlwmV2 xopt
+        * i2mif xopt
+        * ico xopt
+        * ico xreq
+        * id Shellutils
+        * ident RCS
+        * ifconfig bsd44
+        * ifnames Autoconf
+        * ImageMagick xopt
+        * imageto Fontutils
+        * iman xopt
+        * imgrotate Fontutils
+        * indent indent
+        * indxbib Groff
+        * inetd bsd44
+        * inetd Inetutils
+        * info Texinfo
+        * inimf TeX
+        * init bsd44
+        * initex TeX
+        * inn bsd44
+        * install Fileutils
+        * iostat bsd44
+        * isodiag mkisofs
+        * isodump mkisofs
+        * ispell Ispell
+        * ixterm xopt
+        * ixx xopt
+     
+        * join Textutils
+        * jot bsd44
+        * jove bsd44
+     
+        * kdestroy bsd44
+        * kdump bsd44
+        * kermit bsd44
+        * kgames xopt
+        * kgmon bsd44
+        * kill bsd44
+        * kinit bsd44
+        * kinput2 xopt
+        * klist bsd44
+        * kpasswdd bsd44
+        * ksrvtgt bsd44
+        * kterm xopt
+        * ktrace bsd44
+     
+        * lam bsd44
+        * larn bsd44
+        * lasergnu gnuplot
+        * last bsd44
+        * lastcomm bsd44
+        * latex TeX
+        * lclock xopt
+        * ld Binutils
+        * leave bsd44
+        * less less
+        * lesskey less
+        * libavcall.a ffcall
+        * libbfd.a Binutils
+        * libbfd.a GDB
+        * libbzr.a Fontutils
+        * libc.a C Library
+        * libcompat.a bsd44
+        * libcurses.a bsd44
+        * libcurses.a ncurses
+        * libdcurses.a ncurses
+        * libedit.a bsd44
+        * libF77.a f2c
+        * libF77.a g77
+        * libg++.a libg++
+        * libgdbm.a gdbm
+        * libgf.a Fontutils
+        * libgmp.a gmp
+        * libgnanslib.a Gnans
+        * libgnussl.a gnussl
+        * libI77.a f2c
+        * libI77.a g77
+        * libkvm.a bsd44
+        * libm.a bsd44
+        * libncurses.a ncurses
+        * libnihcl.a NIHCL
+        * libnihclmi.a NIHCL
+        * libnihclvec.a NIHCL
+        * libnls.a xreq
+        * libobjects.a libobjects
+        * liboctave.a Octave
+        * liboldX.a xreq
+        * libpbm.a Fontutils
+        * libPEXt.a xopt
+        * libpk.a Fontutils
+        * libresolv.a bsd44
+        * librpc.a bsd44
+        * libsipp.a SIPP
+        * libtcl.a DejaGnu
+        * libtelnet.a bsd44
+        * libterm.a bsd44
+        * libtermcap.a Termcap
+        * libtfm.a Fontutils
+        * libtiff.a tiff
+        * libutil.a bsd44
+        * libvacall.a ffcall
+        * libWc.a xopt
+        * libwidgets.a Fontutils
+        * libX.a xreq
+        * libXau.a xreq
+        * libXaw.a xreq
+        * libXcp.a xopt
+        * libXcu.a xopt
+        * libXdmcp.a xreq
+        * libXmp.a xopt
+        * libXmu.a xreq
+        * libXO.a xopt
+        * libXop.a xopt
+        * libXp.a xopt
+        * libXpex.a xopt
+        * libXt.a xopt
+        * libXt.a xreq
+        * libXwchar.a xopt
+        * liby.a bsd44
+        * libYgl.a Ygl
+        * lid ID Utils
+        * limn Fontutils
+        * listres xopt
+        * listres xreq
+        * lkbib Groff
+        * ln Fileutils
+        * locate Findutils
+        * lock bsd44
+        * logcvt-ip2n phttpd
+        * logger bsd44
+        * login bsd44
+        * logname Shellutils
+        * logo ucblogo
+        * lookbib Groff
+        * lorder bsd44
+        * lpr bsd44
+        * ls Fileutils
+        * lynx lynx
+     
+        * m4 m4
+        * mail bsd44
+        * mail-files Sharutils
+        * mailq smail
+        * mailshar Sharutils
+        * make make
+        * make-docfile Emacs
+        * make-path Emacs
+        * makeindex TeX
+        * makeinfo Texinfo
+        * MakeTeXPK TeX
+        * man bsd44
+        * man-macros Groff
+        * maniview geomview
+        * mattrib mtools
+        * maze xopt
+        * maze xreq
+        * mazewar xopt
+        * mc mc
+        * mcd mtools
+        * mcopy mtools
+        * mcserv mc
+        * md5sum Textutils
+        * mdel mtools
+        * mdir mtools
+        * me-macros Groff
+        * medit2gv geomview
+        * merge RCS
+        * mesg bsd44
+        * mf TeX
+        * mformat mtools
+        * mft TeX
+        * mgdiff xopt
+        * mh bsd44
+        * mille bsd44
+        * mkafmmap enscript
+        * mkcache GN
+        * mkdep bsd44
+        * mkdir Fileutils
+        * mkfifo Fileutils
+        * mkid ID Utils
+        * mkisofs mkisofs
+        * mklocale bsd44
+        * mkmanifest mtools
+        * mkmf bsd44
+        * mkmodules CVS
+        * mknod Fileutils
+        * mkstr bsd44
+        * mlabel mtools
+        * mm-macros Groff
+        * mmd mtools
+        * monop bsd44
+        * more bsd44
+        * morse bsd44
+        * mount bsd44
+        * mountd bsd44
+        * movemail Emacs
+        * mprof bsd44
+        * mrd mtools
+        * mread mtools
+        * mren mtools
+        * ms-macros Groff
+        * msgcmp gettext
+        * msgfmt gettext
+        * msgmerge gettext
+        * msgs bsd44
+        * msgunfmt gettext
+        * mst Smalltalk
+        * mt cpio
+        * mterm xopt
+        * mtree bsd44
+        * mtype mtools
+        * mule MULE
+        * muncher xopt
+        * mv Fileutils
+        * mvdir Fileutils
+        * mwrite mtools
+     
+        * NDview geomview
+        * nethack NetHack
+        * netstat bsd44
+        * newfs bsd44
+        * nfsd bsd44
+        * nfsiod bsd44
+        * nfsstat bsd44
+        * nice Shellutils
+        * nl Textutils
+        * nlmconv Binutils
+        * nm Binutils
+        * nohup Shellutils
+        * nose geomview
+        * notify HylaFAX
+        * nroff Groff
+        * number bsd44
+     
+        * objc GCC
+        * objcopy Binutils
+        * objdump Binutils
+        * objective-c GCC
+        * obst-boot OBST
+        * obst-CC OBST
+        * obst-cct OBST
+        * obst-cgc OBST
+        * obst-cmp OBST
+        * obst-cnt OBST
+        * obst-cpcnt OBST
+        * obst-csz OBST
+        * obst-dir OBST
+        * obst-dmp OBST
+        * obst-gen OBST
+        * obst-gsh OBST
+        * obst-init OBST
+        * obst-scp OBST
+        * obst-sil OBST
+        * obst-stf OBST
+        * oclock xreq
+        * octave Octave
+        * od Textutils
+        * oleo Oleo
+        * ora-examples xopt
+     
+        * p2c p2c
+        * pagesize bsd44
+        * palette xopt
+        * pascal bsd44
+        * passwd bsd44
+        * paste Textutils
+        * patch patch
+        * patgen TeX
+        * pathalias bsd44
+        * pathchk Shellutils
+        * pathto smail
+        * pax bsd44
+        * pbmplus xopt
+        * perl perl
+        * pfbtops Groff
+        * phantasia bsd44
+        * phttpd phttpd
+        * pic Groff
+        * pico pine
+        * pig bsd44
+        * pine pine
+        * ping bsd44
+        * pixedit xopt
+        * pixmap xopt
+        * pktogf TeX
+        * pktype TeX
+        * plaid xopt
+        * plot2fig Graphics
+        * plot2plot Graphics
+        * plot2ps Graphics
+        * plot2tek Graphics
+        * pltotf TeX
+        * pollrcvd HylaFAX
+        * pom bsd44
+        * pooltype TeX
+        * portmap bsd44
+        * ppt bsd44
+        * pr Textutils
+        * pr-addr GNATS
+        * pr-edit GNATS
+        * primes bsd44
+        * printenv Shellutils
+        * printf Shellutils
+        * protoize GCC
+        * proxygarb Spinner
+        * ps bsd44
+        * ps2ascii Ghostscript
+        * ps2epsi Ghostscript
+        * ps2fax HylaFAX
+        * psbb Groff
+        * pstat bsd44
+        * psycho xopt
+        * ptester phttpd
+        * ptx ptx
+        * pubdic+ xopt
+        * puzzle xopt
+        * puzzle xreq
+        * pwd Shellutils
+        * pyramid xopt
+     
+        * query-pr GNATS
+        * quiz bsd44
+        * quot bsd44
+        * quota bsd44
+        * quotacheck bsd44
+        * quotaon bsd44
+     
+        * rain bsd44
+        * random bsd44
+        * ranlib Binutils
+        * rbootd bsd44
+        * rc rc
+        * rcp bsd44
+        * rcp Inetutils
+        * rcs RCS
+        * rcs-to-cvs CVS
+        * rcs2log Emacs
+        * rcsdiff RCS
+        * rcsfreeze RCS
+        * rcsmerge RCS
+        * rdist bsd44
+        * reboot bsd44
+        * recode recode
+        * recvstats HylaFAX
+        * red ed
+        * refer Groff
+        * remsync Sharutils
+        * renice bsd44
+        * repquota bsd44
+        * restore bsd44
+        * rev bsd44
+        * rexecd bsd44
+        * rexecd Inetutils
+        * rlog RCS
+        * rlogin bsd44
+        * rlogin Inetutils
+        * rlogind bsd44
+        * rlogind Inetutils
+        * rm Fileutils
+        * rmail bsd44
+        * rmdir Fileutils
+        * rmt cpio
+        * rmt tar
+        * robots bsd44
+        * rogue bsd44
+        * route bsd44
+        * routed bsd44
+        * rr xopt
+        * rs bsd44
+        * rsh bsd44
+        * rsh Inetutils
+        * rshd bsd44
+        * rshd Inetutils
+        * rsmtp smail
+        * runq smail
+        * runtest DejaGnu
+        * runtest.exp DejaGnu
+        * ruptime bsd44
+        * rwho bsd44
+        * rwhod bsd44
+     
+        * s2p perl
+        * sail bsd44
+        * saoimage SAOimage
+        * savecore bsd44
+        * sc bsd44
+        * sccs bsd44
+        * sccs2rcs CVS
+        * scdisp xopt
+        * screen screen
+        * script bsd44
+        * scsiformat bsd44
+        * sctext xopt
+        * sdiff Diffutils
+        * sed sed
+        * send-pr GNATS
+        * sendfax HylaFAX
+        * sendmail bsd44
+        * sgi2fax HylaFAX
+        * sgn GN
+        * sh bsd44
+        * shar Sharutils
+        * shinbun xopt
+        * shogi Shogi
+        * showfont xopt
+        * showmount bsd44
+        * shutdown bsd44
+        * size Binutils
+        * sj3 xopt
+        * sjxa xopt
+        * slattach bsd44
+        * sleep Shellutils
+        * sliplogin bsd44
+        * smail smail
+        * smtpd smail
+        * snake bsd44
+        * snftobdf xopt
+        * soelim Groff
+        * sort Textutils
+        * sos2obst OBST
+        * spider xopt
+        * split Textutils
+        * startslip bsd44
+        * stereo geomview
+        * stf OBST
+        * strings Binutils
+        * strip Binutils
+        * stty Shellutils
+        * su Shellutils
+        * sum Textutils
+        * superopt Superopt
+        * swapon bsd44
+        * sweep geomview
+        * sync bsd44
+        * sysctl bsd44
+        * syslog Inetutils
+        * syslogd bsd44
+        * syslogd Inetutils
+        * systat bsd44
+     
+        * tabs Termutils
+        * tac Textutils
+        * tackdown geomview
+        * tail Textutils
+        * taintperl perl
+        * talk bsd44
+        * talk Inetutils
+        * talkd bsd44
+        * talkd Inetutils
+        * tangle TeX
+        * tar tar
+        * tbl Groff
+        * tcal gcal
+        * tcl DejaGnu
+        * tclsh DejaGnu
+        * tcopy bsd44
+        * tcp Emacs
+        * tee Shellutils
+        * tek2plot Graphics
+        * telnet bsd44
+        * telnet Inetutils
+        * telnetd bsd44
+        * telnetd Inetutils
+        * test Shellutils
+        * test-g++ DejaGnu
+        * test-tool DejaGnu
+        * tetris bsd44
+        * tex TeX
+        * tex3patch Texinfo
+        * texi2dvi Texinfo
+        * texindex Texinfo
+        * texspell TeX
+        * textfmt HylaFAX
+        * tfmtodit Groff
+        * tftopl TeX
+        * tftp bsd44
+        * tftp Inetutils
+        * tftpd bsd44
+        * tftpd Inetutils
+        * tgrind TeX
+        * time time
+        * timed bsd44
+        * timer Emacs
+        * timex xopt
+        * tip bsd44
+        * tkpostage xopt
+        * tn3270 bsd44
+        * togeomview geomview
+        * touch Fileutils
+        * tput Termutils
+        * tr Textutils
+        * traceroute bsd44
+        * transcript HylaFAX
+        * transfig xopt
+        * transformer geomview
+        * trek bsd44
+        * trigrp geomview
+        * trn3 bsd44
+        * troff Groff
+        * trpt bsd44
+        * trsp bsd44
+        * true Shellutils
+        * tset bsd44
+        * tsort bsd44
+        * tty Shellutils
+        * ttygnans Gnans
+        * tunefs bsd44
+        * tupdate gettext
+        * tvtwm xopt
+        * twm xreq
+     
+        * ul bsd44
+        * ulpc Spinner
+        * umount bsd44
+        * uname Shellutils
+        * uncompress gzip
+        * unexpand Textutils
+        * unifdef bsd44
+        * unify wdiff
+        * uniq Textutils
+        * unprotoize GCC
+        * unshar Sharutils
+        * unvis bsd44
+        * update bsd44
+        * updatedb Findutils
+        * users Shellutils
+        * uuchk UUCP
+        * uucico UUCP
+        * uuconv UUCP
+        * uucp UUCP
+        * uucpd bsd44
+        * uucpd Inetutils
+        * uudecode Sharutils
+        * uudir UUCP
+        * uuencode Sharutils
+        * uulog UUCP
+        * uuname UUCP
+        * uupath smail
+        * uupick UUCP
+        * uurate UUCP
+        * uusched UUCP
+        * uustat UUCP
+        * uuto UUCP
+        * uux UUCP
+        * uuxqt UUCP
+     
+        * v Fileutils
+        * vacation bsd44
+        * vandal xopt
+        * vcdiff Emacs
+        * vdir Fileutils
+        * vftovp TeX
+        * vgrind bsd44
+        * vi nvi
+        * viewres xopt
+        * viewres xreq
+        * vine xopt
+        * vipw bsd44
+        * virmf TeX
+        * virtex TeX
+        * vis bsd44
+        * vmstat bsd44
+        * vptovf TeX
+     
+        * w bsd44
+        * waisgn GN
+        * wakeup Emacs
+        * wall bsd44
+        * wargames bsd44
+        * wc Textutils
+        * wdiff wdiff
+        * weave TeX
+        * what bsd44
+        * whatis bsd44
+        * whereis bsd44
+        * who Shellutils
+        * whoami Shellutils
+        * whois bsd44
+        * window bsd44
+        * winterp xopt
+        * wish DejaGnu
+        * wn WN
+        * wndex WN
+        * worm bsd44
+        * worms bsd44
+        * write bsd44
+        * wump bsd44
+     
+        * x11perf xreq
+        * x2p perl
+        * xalarm xopt
+        * xancur xopt
+        * xargs Findutils
+        * xauth xreq
+        * xbfe Fontutils
+        * xbiff xopt
+        * xbiff xreq
+        * xboard xboard
+        * xboing xopt
+        * xbuffy3 xopt
+        * xcalc xopt
+        * xcalc xreq
+        * xcalendar xopt
+        * xcdplayer xopt
+        * xcell xopt
+        * xclipboard xreq
+        * xclock xreq
+        * xcmdmenu xopt
+        * xcms xopt
+        * xcmsdb xreq
+        * xcmstest xreq
+        * xco xopt
+        * xcolorize xopt
+        * xcolors xopt
+        * xconsole xreq
+        * xcrtca xopt
+        * xdaliclock xopt
+        * xdiary xopt
+        * xditview Groff
+        * xditview xopt
+        * xditview xreq
+        * xdm xreq
+        * xdpyinfo xreq
+        * xdu xopt
+        * xdvi TeX
+        * xdvi xopt
+        * xdvorak xopt
+        * xearth xopt
+        * xed xopt
+        * xedit xopt
+        * xedit xreq
+        * xev xopt
+        * xev xreq
+        * xexit xopt
+        * xeyes xopt
+        * xeyes xreq
+        * xfd xreq
+        * xfed xopt
+        * xfedor xopt
+        * xfeoak xopt
+        * xferstats HylaFAX
+        * xfig xopt
+        * xfontsel xopt
+        * xfontsel xreq
+        * xforecast xopt
+        * xgas xopt
+        * xgas xreq
+        * xgc xopt
+        * xgc xreq
+        * xgettext gettext
+        * xhearts xopt
+        * xhelp xopt
+        * xhost xreq
+        * xinit xreq
+        * xkeycaps xopt
+        * xkill xreq
+        * xlax xopt
+        * xlayout xopt
+        * xlbiff xopt
+        * xless xopt
+        * xload xopt
+        * xload xreq
+        * xlogin xopt
+        * xlogo xreq
+        * xlsatoms xreq
+        * xlsclients xreq
+        * xlsfonts xreq
+        * xmag xreq
+        * xmail xopt
+        * xmailbox xopt
+        * xmailwatcher xopt
+        * xman xopt
+        * xman xreq
+        * xmandel xopt
+        * xmessage xopt
+        * xmeter xopt
+        * xmh xreq
+        * xmh-icons xopt
+        * xmh.editor xopt
+        * xmodmap xreq
+        * xmon xopt
+        * xmove xopt
+        * xmphone xopt
+        * xpd xopt
+        * xphoon xopt
+        * xpipeman xopt
+        * xplot Graphics
+        * xpostit xopt
+        * xpr xopt
+        * xpr xreq
+        * xprompt xopt
+        * xproof xopt
+        * xprop xreq
+        * xpserv xopt
+        * xrdb xreq
+        * xrefresh xreq
+        * xrsh xopt
+        * xrubik xopt
+        * xrunclient xopt
+        * xscope xopt
+        * xscreensaver xopt
+        * xsession xopt
+        * xset xreq
+        * xsetroot xreq
+        * xshogi xshogi
+        * xstdcmap xreq
+        * xstr bsd44
+        * xtalk xopt
+        * xterm xreq
+        * xterm_color xopt
+        * xtetris xopt
+        * xTeXcad.13 xopt
+        * xtiff xopt
+        * xtokid ID Utils
+        * xtree xopt
+        * xtv xopt
+        * xwd xreq
+        * xwininfo xreq
+        * xwud xreq
+     
+        * yacc bsd44
+        * yes Shellutils
+        * youbin xopt
+        * yow Emacs
+     
+        * zcat gzip
+        * zcmp gzip
+        * zdiff gzip
+        * zforce gzip
+        * zgrep gzip
+        * zmore gzip
+        * znew gzip
+     
+        * [ Shellutils
+
+ 
+
+CD-ROMs
+*******
+
+We offer these CD-ROMs:
+
+   * Several editions of our *Note Source Code CD-ROMs::.
+
+   * January 1997 *Note Compiler Tools Binaries CD-ROM::.
+
+   * December 1995 Compiler Tools Binaries CD-ROM, see the *note Free
+     Software Foundation Order Form::.
+
+   * December 1994 Compiler Tools Binaries CD-ROM, see the *note Free
+     Software Foundation Order Form::.
+
+   * December 1993 Compiler Tools Binaries CD-ROM, see the *note Free
+     Software Foundation Order Form::.
+
+Our CDs are in ISO 9660 format & can be mounted as a read-only file system on
+most computers.  If your driver supports it, you can mount each CD with "Rock
+Ridge" extensions & it will look like a regular Unix file system, rather than
+one full of truncated & otherwise mangled names that fit vanilla ISO 9660.
+
+You can build most of the software without copying the sources off the CD.
+You only need enough disk space for object files and intermediate build
+targets.
+
+ 
+
+Pricing of the GNU CD-ROMs
+--------------------------
+
+If a business or organization is ultimately paying, the January 1997 Source CD
+set costs $240.  The set costs $60 if you, an individual, are paying out of
+your own pocket.  The January 1997 Compiler Tools Binaries CD-ROM costs $220
+for a business or organization, and $55 for an individual.
+
+ 
+
+What Do the Different Prices Mean?
+..................................
+
+The software on our disks is free; anyone can copy it and anyone can run it.
+What we charge for is the physical disk and the service of distribution.
+
+We charge two different prices depending on who is buying.  When a company or
+other organization buys the January 1997 Source CD-ROMs, we charge $240.
+When an individual buys the same CD-ROMs, we charge just $60.  This
+distinction is not a matter of who is allowed to use the software.  In either
+case, once you have a copy, you can distribute as many copies as you wish and
+there's no restriction on who can have or run them.  The price distinction is
+entirely a matter of what kind of entity pays for the CDs.
+
+You, the reader, are certainly an individual, not a company.  If you are
+buying a disk "in person", then you are probably doing so as an individual.
+But if you expect to be reimbursed by your employer, then the disk is really
+for the company; so please pay the company price and get reimbursed for it.
+We won't try to check up on you--we use the honor system--so please cooperate.
+
+Buying CDs at the company price is very helpful for GNU; just
+150 Source CDs at that price support an FSF programmer or tech writer for a
+year.
+
+ 
+
+Why Is There an Individual Price?
+.................................
+
+In the past, our distribution tapes were ordered mainly by companies.  The CD
+at the price of $240 provides them with all of our software for a much lower
+price than they would previously have paid for six different tapes.  To lower
+the price more would cut into the FSF's funds very badly and decrease the
+software development we can do.
+
+However, for individuals, $240 is too high a price; hardly anyone could
+afford that.  So we decided to make CDs available to individuals at the lower
+price of $60.
+
+ 
+
+Is There a Maximum Price?
+.........................
+
+Our stated prices are minimum prices.  Feel free to pay a higher price if you
+wish to support GNU development more.  The sky's the limit; we will accept as
+high a price as you can offer.  Or simply give a donation (tax-deductible in
+the U.S.) to the Free Software Foundation, a tax-exempt public charity.
+
+ 
+
+January 1997 Compiler Tools Binaries CD-ROM
+-------------------------------------------
+
+The fourth edition of our CD-ROM that has binaries and complete sources for
+GNU compiler tools for some systems which lack a compiler, will be available
+at the end of January 1997.  This enables the people who use these systems to
+compile GNU and other free software without having to buy a proprietary
+compiler.  You can also use these GNU tools to compile your own
+C/C++/Objective-C programs.  Older editions of this CD are available while
+supplies last at a reduced price; see the *note Free Software Foundation
+Order Form::.
+
+We hope to have more systems on each update of this CD.  If you can help
+build binaries for new systems (especially those that don't come with a C
+compiler), or have one to suggest, please contact us at the addresses on the
+top menu.
+
+These packages:
+
+        * DJGPP
+        * GCC/G++/Objective-C
+        * GNU C Library
+        * GDB
+        * Binutils
+        * Bison
+        * Emacs (MS-DOS only)
+        * Flex
+        * Make
+        * libg++
+
+On these platforms:
+
+        * `i386-msdos'
+        * `hppa1.1-hp-hpux9'
+        * `hppa1.1-hp-hpux10'
+        * `powerpc-ibm-aix4.2'
+        * `sparc-sun-solaris2.4'
+        * `sparc-sun-solaris2.5'
+        * `sparc-sun-sunos4.1'
+
+ 
+
+Source Code CD-ROMs
+-------------------
+
+We have several versions of our Source Code CD-ROMs available, including:
+
+   * *Note January 1997 Source Code CD-ROMs::, the newest release, has
+     programs, bug fixes, & improvements not on the other CDs.
+
+   * *Note July 1996 Source Code CD-ROMs::.
+
+   * December 1995 Source Code CD-ROMs, see the *note Free Software
+     Foundation Order Form::.
+
+   * June 1995 Source Code CD-ROM, see the *note Free Software Foundation
+     Order Form::.
+
+   * May 1994 Source Code CD-ROM, see the *note Free Software Foundation
+     Order Form::.
+
+   * November 1993 Source Code CD-ROM, see the *note Free Software Foundation
+     Order Form::.
+
+   * May 1993 Source Code CD-ROM, see the *note Free Software Foundation
+     Order Form::.
+
+   * October 1992 Source Code CD-ROM, see the *note Free Software Foundation
+     Order Form::.
+
+The older Source CDs are available while supplies last at a reduced price
+(please note that the December 1994 Source CD is permanently out of stock).
+All the Source CDs have Texinfo source for the GNU manuals listed in *Note
+Documentation::.
+
+MIT Scheme & much of X11 is *not* on the older Source CDs.
+
+There are no precompiled programs on these Source CDs.  You will need a C
+compiler (programs which need some other interpreter or compiler normally
+provide the C source for a bootstrapping program).  We ship C compiler
+binaries for some systems on the *Note Compiler Tools Binaries CD-ROM::.
+
+ 
+
+January 1997 Source Code CD-ROMs
+................................
+
+The 9th edition of our Source Code CD will be available at the end of January
+1997 with two CD-ROM disks.  It has programs, bug fixes, & improvements not
+on the older Source CDs.  It has these packages, & some manuals that are not
+part of packages.  The version number of each package listed might be higher
+on the 9th edition CD due to new releases being made between now and then.
+
+
+        * acm 4.7
+        * apache 1.2b2
+        * Autoconf 2.12
+        * Automake 1.0
+        * BASH 1.14.7
+        * bc 1.03
+        * Binutils 2.7
+        * Bison 1.25
+        * C Library 2.0
+        * Calc 2.02f
+        * cfengine 1.3.17a
+        * Chess 4.0.pl77
+        * CLISP 1996.05.30
+        * Common Lisp 2.2
+        * cperf 2.1a
+        * cpio 2.4.2
+        * CVS 1.9
+        * DejaGnu 1.3
+        * Diffutils 2.7
+        * dld 3.3
+        * doschk 1.1
+        * ed 0.2
+        * Elib 1.0
+        * elisp archive
+        * Emacs 18.59
+        * Emacs 19.34
+        * enscript 1.4.0
+        * es 0.84
+        * Exim 1.59
+        * f2c 1996.09.25
+        * ffcall 1.1
+        * Fileutils 3.14
+        * Findutils 4.1
+        * Finger 1.37
+        * flex 2.5.4
+        * Fontutils 0.6
+        * g77 0.5.19
+        * GAWK 3.0.1
+        * gcal 2.10
+        * GCC/G++/Objective-C 2.7.2.1
+        * GDB 4.16
+        * gdbm 1.7.3
+        * Generic NQS 3.50.2
+        * geomview 1.6.1
+        * gettext 0.10
+        * gforth 0.2.0
+        * Ghostscript 3.33
+        * Ghostview 1.5
+        * Ghostview for Windows 1.0
+        * GIT 4.3.14
+        * gmp 2.0.2
+        * GN 2.24
+        * Gnans 1.5.1
+        * gnat 3.05
+        * GNATS 3.2
+        * GNU Emacs Lisp Reference Manual 1.03
+        * GNU Emacs Lisp Reference Manual 2.4.2
+        * GnuGo 1.2
+        * gnuplot 3.5
+        * gnuserv 2.1alpha
+        * gnussl 0.2.1
+        * Graphics 0.17
+        * grep 2.0
+        * Groff 1.10
+        * gzip 1.2.4
+        * hello 1.3
+        * hp2xx 3.1.4
+        * HylaFAX 4.0b018
+        * Hyperbole 4.01
+        * ID Utils 3.2
+        * indent 1.9.1
+        * Inetutils 1.2
+        * Ispell 3.1.20
+        * karma 1.6
+        * less 321
+        * libg++ 2.7.2
+        * libobjects 0.1.19
+        * lynx 2.6
+        * m4 1.4
+        * make 3.75
+        * MandelSpawn 0.07
+        * maxima 5.2
+        * mc 3.2.1
+        * <Meta-HTML> 5.01
+        * miscfiles 1.0
+        * mkisofs 1.05GNU
+        * mm 1.07
+        * mtools 3.0
+        * MULE 2.3
+        * ncurses 1.9.9e
+        * NetHack 3.2.1
+        * NIHCL 3.1.4
+        * nvi 1.76
+        * Oaklisp 930720
+        * OBST 3.4.3
+        * Octave 2.0
+        * Oleo 1.6
+        * p2c 1.20
+        * patch 2.1
+        * perl 4.036
+        * perl 5.003
+        * phttpd 0.99.72.1
+        * pine 3.91
+        * Programming in Emacs Lisp an Introduction 1.04
+        * ptx 0.4
+        * rc 1.4
+        * RCS 5.7
+        * readline 2.0
+        * recode 3.4
+        * regex 0.12
+        * rx 1.4
+        * SAOimage 1.19
+        * screen 3.7.2
+        * sed 2.05
+        * Sharutils 4.2
+        * Shellutils 1.14
+        * Shogi 1.2p03
+        * SIPP 3.1
+        * smail 3.2
+        * Smalltalk 1.1.5
+        * Roxen 1.0
+        * stow 1.3.2
+        * Superopt 2.5
+        * tar 1.11.8
+        * Termcap 1.3
+        * Termutils 2.0
+        * TeX 3.145
+        * Texinfo 3.9
+        * Textutils 1.20
+        * tiff 3.4b035
+        * Tile Forth 2.1
+        * time 1.7
+        * ucblogo 3.4
+        * UUCP 1.06.1
+        * W3 2.2.26
+        * wdiff 0.5
+        * wget 1.4.2
+        * windows32api 0.1.2
+        * WN 1.17.1
+        * X11R6.3
+        * xboard 3.4.pl1
+        * xgrabsc 2.41
+        * xinfo 1.01.01
+        * xshogi 1.2p03
+        * Ygl 3.1
+
+ 
+
+July 1996 Source Code CD-ROMs
+.............................
+
+We still have copies of the 8th edition of our Source CD with two CD-ROM
+disks.  It has these packages, & some manuals that are not part of packages:
+
+
+        * acm 4.7
+        * apache 1.1
+        * Autoconf 2.10
+        * Automake 1.0
+        * BASH 1.14.6
+        * bc 1.03
+        * Binutils 2.7
+        * Bison 1.25
+        * C Library 1.93
+        * Calc 2.02d
+        * cfengine 1.3.7
+        * Chess 4.0.pl77
+        * CLISP 1996.05.30
+        * Common Lisp 2.2
+        * cperf 2.1a
+        * cpio 2.4.2
+        * CVS 1.8.1
+        * DejaGnu 1.3
+        * Diffutils 2.7
+        * dld 3.3
+        * doschk 1.1
+        * ed 0.2
+        * Elib 1.0
+        * elisp archive
+        * Emacs 18.59
+        * Emacs 19.31
+        * Emacs 19.32
+        * enscript 1.4.0
+        * es 0.84
+        * Exim 0.53
+        * f2c 1996.07.23
+        * ffcall 1.0
+        * Fileutils 3.13
+        * Findutils 4.1
+        * Finger 1.37
+        * flex 2.5.3
+        * Fontutils 0.6
+        * g77 0.5.18
+        * GAWK 3.0.0
+        * gcal 1.01
+        * GCC/G++/Objective-C 2.7.2
+        * GCC 2.7.2.1
+        * GDB 4.16
+        * gdbm 1.7.3
+        * Generic NQS 3.50.0
+        * geomview 1.5.0
+        * gettext 0.10
+        * Ghostscript 3.33
+        * Ghostview 1.5
+        * Ghostview for Windows 1.0
+        * GIT 4.3.11
+        * gmp 2.0.2
+        * GN 2.24
+        * Gnans 1.5.1
+        * gnat 3.05
+        * GNATS 3.2
+        * GNU Emacs Lisp Reference Manual 1.03
+        * GNU Emacs Lisp Reference Manual 2.4
+        * GnuGo 1.2
+        * gnuplot 3.5
+        * gnuserv 2.1alpha
+        * gnussl 0.2
+        * Graphics 0.17
+        * grep 2.0
+        * Groff 1.10
+        * gzip 1.2.4
+        * hello 1.3
+        * hp2xx 3.1.4
+        * HylaFAX 4.0b018
+        * ID Utils 3.1
+        * indent 1.9.1
+        * Inetutils 1.0
+        * Ispell 3.1.20
+        * karma 1.4
+        * less 321
+        * libg++ 2.7.2
+        * libobjects 0.1.19
+        * lynx 2.5
+        * m4 1.4
+        * make 3.75
+        * MandelSpawn 0.07
+        * maxima 5.2
+        * mc 3.2.1
+        * miscfiles 1.0
+        * mkisofs 1.05GNU
+        * mm 1.07
+        * mtools 3.0
+        * MULE 2.3
+        * ncurses 1.9.9e
+        * NetHack 3.2.1
+        * NIHCL 3.1.4
+        * nvi 1.71
+        * Oaklisp 930720
+        * OBST 3.4.3
+        * Octave 1.1.1
+        * Oleo 1.6
+        * p2c 1.20
+        * patch 2.1
+        * perl 4.036
+        * perl 5.003
+        * phttpd 0.99.72.1
+        * pine 3.91
+        * Programming in Emacs Lisp an Introduction 1.04
+        * ptx 0.4
+        * rc 1.4
+        * RCS 5.7
+        * readline 2.0
+        * regex 0.12
+        * rx 1.0
+        * SAOimage 1.18
+        * screen 3.7.1
+        * sed 2.05
+        * Sharutils 4.2
+        * Shellutils 1.12
+        * Shogi 1.2p03
+        * SIPP 3.1
+        * smail 3.2
+        * Smalltalk 1.1.1
+        * Spinner 1.0b14
+        * Superopt 2.5
+        * tar 1.11.8
+        * Termcap 1.3
+        * Termutils 2.0
+        * TeX 3.145
+        * Texinfo 3.7
+        * Textutils 1.19
+        * tiff 3.4b035
+        * Tile Forth 2.1
+        * time 1.7
+        * ucblogo 3.3
+        * UUCP 1.06.1
+        * W3 2.2.26
+        * wdiff 0.5
+        * WN 1.15.3
+        * X11R6.3
+        * xboard 3.4.pl1
+        * xgrabsc 2.41
+        * xshogi 1.2p03
+        * Ygl 3.1
+
+ 
+
+CD-ROM Subscription Service
+***************************
+
+Our subscription service enables you to stay current with the latest GNU
+developments.  For a one-time cost equivalent to three Source CD-ROMs (plus
+shipping in some cases), we will ship you four new versions of the *Note
+Source Code CD-ROMs::.  The CD-ROMs are sent as they are issued (currently
+twice a year, but we hope to make it more frequent).  We do not yet know if
+we will be offering subscriptions to the Compiler Tools Binaries CD.
+
+A subscription is an easy way to keep up with the regular bug fixes to the X
+Window System.  Each edition of the *Note Source Code CD-ROMs::, has updated
+sources for the X Window System.
+
+Please note: In two cases, you must pay 4 times the normal shipping required
+for a single order when you pay for each subscription.  If you're in Alaska,
+Hawaii, or Puerto Rico you must add $20.00 for shipping for each
+subscription.  If you're outside of the U.S., Canada, and Puerto Rico, you
+must add $80.00 for each subscription.  See "CD-ROMs" and "Tax and Shipping
+Costs" on the *note Free Software Foundation Order Form::.
+
+ 
+
+FSF T-shirt
+***********
+
+The front of our T-shirt has the GNU Emacs Lisp code `(USE 'GNU)' with "`()'"
+being the dancing parentheses from the cover of our `GNU Emacs Lisp Reference
+Manual' (drawn by Berkeley, CA artist Etienne Suvasa).  The shirt's back has
+the Preamble to the GNU General Public License.
+
+These shirts come in black, purple, red, pink, burgundy, blue, and natural
+(off-white).  When you order, please give 3 choices.  Black and purple are
+printed in white; the other colors are printed in black.  All shirts are
+thick 100% cotton, and come in sizes S, M, L, XL, and XXL (but they run small
+so you may want a larger size than usual).
+
+GNU T-shirts often create spontaneous friendships at conferences & on
+university campuses.  They also make great gifts for friends & family,
+including children!
+
+ 
+
+Free Software Foundation Order Form
+***********************************
+
+All items are distributed with permission to copy and to redistribute.
+Texinfo source for each manual and source for each reference card is on the
+appropriate CD-ROM; the prices for these media do not include printed
+documentation.  All items are provided on an ``as is'' basis, with no
+warranty of any kind.  Please allow four weeks for delivery (though it
+won't usually take that long).
+
+
+     PRICE AND CONTENTS MAY CHANGE WITHOUT NOTICE AFTER July 31, 1997.
+
+
+A possibly more current version of this order form can be found on the
+World Wide Web at `http://www.gnu.ai.mit.edu/order/order.html' or
+can be found in file `/pub/gnu/GNUinfo/ORDERS' on a GNU FTP host
+(listed in *Note How to Get GNU Software::).
+
+
+
+FSF Deluxe Distribution
+.......................
+(Please contact us with any questions.  *note Deluxe Distribution::.
+for machine, operating system, and media types.)
+
+
+____ @ $5000 = $ ______   The Deluxe Distribution, with manuals, etc.
+
+Machine: _____________________________________________________________________
+
+Operating system: ____________________________________________________________
+
+Media type: __________________________________________________________________
+
+Version of X Window System to build: _________________________________________
+
+
+
+CD-ROMs, in ISO 9660 format (*note CD-ROMs::.):
+..............................................
+
+
+GNU Source Code CD-ROMs, Version 9 with X11R6.3 (*note January 1997 Source Code CD-ROMs::.):
+
+____ @ $240  = $ ______   for corporations and other organizations.
+
+____ @ $ 60  = $ ______   for individuals.
+
+
+Subscriptions, next 4 updates, of the Source Code CD-ROM, in ISO 9660 format
+(*note CD-ROM Subscription Service::.):
+
+____ @ $720  = $ ______   for corporations and other organizations.
+
+____ @ $180  = $ ______   for individuals.
+
+
+GNU Compiler Tools Binaries CD-ROM, Version 4, January 1997 Edition
+(*note Compiler Tools Binaries CD-ROM::.):
+
+____ @ $220  = $ ______   for corporations and other organizations.
+
+____ @  $55  = $ ______   for individuals.
+
+
+
+Proceedings
+-----------
+
+____ @ $ 25  = $ ______   The Proceedings of the First Conference
+                          on Freely Redistributable Software - only
+                          available while supplies last.
+
+
+
+Manuals
+-------
+
+These manuals (*note Documentation::.).  The latest version of each manual
+will be shipped.  Please contact us if you want a specific version.
+
+____ @ $ 25  = $ ______   GNU Emacs manual, with a reference card.
+
+____ @ $ 50  = $ ______   GNU Emacs Lisp Reference manual, in two volumes.
+
+____ @ $ 60  = $ ______   GNU Emacs Lisp Reference, Japanese Edition.
+
+____ @ $ 50  = $ ______   Using and Porting GNU CC.
+
+____ @ $ 50  = $ ______   GNU C Library Reference Manual.
+
+____ @ $ 50  = $ ______   GNU Emacs Calc manual, with a reference card.
+
+____ @ $ 20  = $ ______   Programming in Emacs Lisp: An Introduction.
+
+____ @ $ 20  = $ ______   Debugging with GDB, with a reference card.
+
+____ @ $ 25  = $ ______   GNU Awk User's Guide.
+
+____ @ $ 20  = $ ______   Make manual.
+
+____ @ $ 20  = $ ______   Bison manual, with a reference card.
+
+____ @ $ 20  = $ ______   Flex manual, with a reference card.
+
+____ @ $ 20  = $ ______   Texinfo manual.
+
+____ @ $ 15  = $ ______   Termcap manual.
+
+
+
+Reference Cards
+---------------
+
+The following reference cards, in packets of ten.  For single copies please
+contact us.
+
+____ @ $ 10  = $ ______   GNU Emacs version 19 reference cards.
+
+____ @ $ 10  = $ ______   GNU Emacs Calc reference cards.
+
+____ @ $ 10  = $ ______   GDB reference cards.
+
+____ @ $ 10  = $ ______   Bison reference cards.
+
+____ @ $ 10  = $ ______   Flex reference cards.
+
+
+
+T-shirts
+--------
+
+GNU/FSF T-shirts, thick 100% cotton in sizes: M, L, XL, & XXL (they run
+small); and in colors: black, purple, red, pink, burgundy, blue, &
+natural (off-white); please list 1st, 2nd, and 3rd choice of color
+(*note FSF T-shirt::.):
+
+____ @ $ 15  = $ ______   Size _____
+
+                          Color choice: 1st _______ 2nd _______ 3rd _______
+
+____ @ $ 15  = $ ______   Size _____
+
+                          Color choice: 1st _______ 2nd _______ 3rd _______
+
+____ @ $ 15  = $ ______   Size  _____
+
+                          Color choice: 1st _______ 2nd _______ 3rd _______
+
+____ @ $ 15  = $ ______   Size _____
+
+                          Color choice: 1st _______ 2nd _______ 3rd _______
+
+
+Older Items
+-----------
+
+Older items are only available while supplies last.
+
+____ @ $  5  = $ ______   GNU Emacs version 18 reference cards, in packets
+                           of ten.
+
+____ @ $ 15  = $ ______   GNU Emacs Manual for Emacs version 19.29.
+
+
+____ @ $ 10  = $ ______   Gawk Manual, Edition 0.16 for version 2.16.
+
+
+____ @ $ 40  = $ ______   Using and Porting GCC, 8.5 x 11 inches, with
+                           plastic binding (same text as current edition)
+
+____ @ $ 15  = $ ______   Debugging with GDB for Version 4.14
+
+
+Please fill in the number of each older CD-ROM you order:
+
+     GNU Compiler Tools Binaries CD-ROMs:
+
+Version 1 (December '93)  ______    Version 2 (December '94) ______
+
+Version 3 (December '95)  ______
+
+     GNU Source Code CD-ROMs: (Version 5 (Dec. '94) is not available.)
+
+Version 1 (October '92)   ______    Version 2 (May '93) ______
+
+Version 3 (November '93 - last edition with X11R5)  ______
+
+Version 4 (May '94 - first edition with X11R6)  ______
+
+Version 6 (June '95)  ______        Version 7 (Dec. '95)  ______
+
+Version 8 (June '96)  ______
+
+Please put the total count and cost of the above older CD-ROMs here:
+
+____ @ $ 80  = $ ______   for corporations and other organizations.
+
+____ @ $ 20  = $ ______   for individuals.
+
+                 ======
+
+      Subtotal $ ______
+
+
+
+Tax and Shipping Costs
+----------------------
+
+             + $ ______   For addresses in Massachusetts: add 5% sales tax
+                          or give tax exempt number.  There is no sales tax
+                          on T-shirts.
+             + $ ______   Shipping fee for addresses in Alaska, Hawaii, or
+                          Puerto Rico:
+                            $  5.00 base charge;
+                          + $  5.00 for *each* Emacs Calc or Emacs Lisp
+                            Reference manual ($ 5.00 * #ofMans);
+                          + $ 20.00 for *each* CD-ROM subscription
+                                             ($20.00 * #ofSubs);
+                          + $  1.00 for *each* item other then the above
+                            (shipping for all other items =
+                                                     $ 1.00 * #ofOtherItems).
+             + $ ______   Shipping fee for most Foreign Destinations: (Please
+                          do *not* use this formula for addresses in China,
+                          Guam, Indonesia, Israel, Malaysia, New Zealand,
+                          Philippines, and Thailand.  Please fax,
+                          or contact us for an exact shipping quote.)
+                            $ 20.00 base charge for orders to other
+                              addresses outside of U.S., Canada, & Puerto Rico:
+                          + $ 10.00 for each item ordered, ($ 10.00 * #ofItems)
+                          + $ 80.00 for each CD-ROM subscription
+                              ($ 80.00 * #ofSubs) (don't count as an item).
+             + $ ______   Optional (tax-deductible in the U.S.) donation.
+                 ------   We suggest 5% if paying by credit card.
+
+         TOTAL $ ______   We pay for shipping via UPS ground transportation in
+                          the contiguous 48 states and Canada.  For very
+                          large orders, ask about actual shipping costs for
+                          that order.
+
+Note:  The shipping fee for foreign destinations covers express courier
+       shipping.  If you would like shipping via air mail, please contact
+       our distribution offfice for a quote on your order.
+
+Shipping Information
+--------------------
+
+Name: ________________________________________________________________________
+
+Mail Stop/Dept. Name: ________________________________________________________
+
+Organization: ________________________________________________________________
+
+Street Address: ______________________________________________________________
+
+City, State/Province: ________________________________________________________
+
+Zip Code/Postal Code Country: ________________________________________________
+
+Telephone number in case of a problem with your order.
+For international orders, please include a Fax number. _______________________
+
+E-mail Address: ______________________________________________________________
+
+
+------------------------------------------------------------------------------
+|                                                                            |
+|  Orders filled only upon receipt of check, money order, or credit card     |
+|  order in U.S. dollars.  Unpaid orders will be returned to the sender.     |
+|  We do not have the staff to handle the billing of unpaid orders.  Please  |
+|  help keep our lives simple by including your payment with your order.     |
+|                                                                            |
+------------------------------------------------------------------------------
+
+
+
+For orders from outside the U.S.:
+---------------------------------
+
+You are responsible for paying all duties, tariffs, and taxes.  If you
+refuse to pay the charges, the shipper will return or abandon the order.
+
+
+ ---------------------------------------------------------------------------
+ |                                                                         |
+ |      Please make checks payable to the ``Free Software Foundation''.    |
+ |                                                                         |
+ |           Checks must be in U.S. dollars, drawn on a U.S. bank.         |
+ |                                                                         |
+ ---------------------------------------------------------------------------
+
+
+
+For Credit Card Orders:
+-----------------------
+
+The Free Software Foundation takes these credit cards: Carte Blanche,
+Diner's Club, JCB, MasterCard, Visa, or American Express.  Please note that
+we are charged about 5% of an order's total amount in credit card
+processing fees.  Please consider paying by check instead, or adding on a 5%
+donation to make up the difference.  To place a credit card order, please
+give us this information:
+
+
+Card type: ___________________________________________________________________
+
+Account Number: ______________________________________________________________
+
+Expiration Date: _____________________________________________________________
+
+Cardholder's Name: ___________________________________________________________
+
+Cardholder's Signature: ______________________________________________________
+
+
+
+------------------------------------------------------------------------------
+|                                                                            |
+|     If you wish to pay by wire transfer or you are a reseller, please      |
+|     contact us or write us for details.                                    |
+|                                                                            |
+------------------------------------------------------------------------------
+
+
+
+A possibly more current version of this order form can be found on the
+World Wide Web at `http://www.gnu.ai.mit.edu/order/order.html' or
+can be found in file `/pub/gnu/GNUinfo/ORDERS' on a GNU FTP host
+(listed in *Note How to Get GNU Software::).
+
+
+
+                Please mail orders to:  Free Software Foundation
+                                        59 Temple Place - Suite 330
+                                        Boston, MA   02111
+PRICES AND CONTENTS MAY CHANGE          +1-617-542-5942
+WITHOUT NOTICE AFTER July 31, 1997     Fax (including Japan): +1-617-542-2652
+
+Version: January 1997 ASCII etc/ORDERS
+
+-----------------------------------------------------------------------------
diff --git a/gcc/README b/gcc/README
new file mode 100644
index 0000000..43ed75d
--- /dev/null
+++ b/gcc/README
@@ -0,0 +1,26 @@
+This directory contains the version 2.7.2 release of the GNU C
+compiler.  It includes all of the support for compiling C++ and
+Objective C, including a run-time library for Objective C.
+
+The GNU C compiler is free software.  See the file COPYING for copying
+permission.
+
+See the file gcc.texi (together with other files that it includes) for
+installation and porting information.  The file INSTALL contains a
+copy of the installation information, as plain ASCII.
+
+Installing this package will create various files in subdirectories of
+/usr/local/lib, which are passes used by the compiler and a library
+named libgcc.a.  It will also create /usr/local/bin/gcc, which is
+the user-level command to do a compilation.
+
+See the Bugs chapter of the GCC Manual for how to report bugs
+usefully.  An online readable version of the manual is in the files
+gcc.info*.
+
+The files pself.c and pself1.c are not part of GCC.
+They are programs that print themselves on standard output.
+They were written by Dario Dariol and Giovanni Cozzi, and are
+included for your hacking pleasure.  Likewise pself2.c
+(Who is the author of that?) and pself3.c (by Vlad Taeerov and Rashit
+Fakhreyev).
diff --git a/gcc/README-bugs b/gcc/README-bugs
new file mode 100644
index 0000000..06e15bb
--- /dev/null
+++ b/gcc/README-bugs
@@ -0,0 +1,144 @@
+The purpose of GCC pretesting is to verify that the new GCC
+distribution, about to be released, works properly on your system *with
+no change whatever*, when installed following the precise
+recommendations that come with the distribution.
+
+Here are some guidelines on how to do pretesting so as to make it
+helpful.  All of them follow from common sense together with the
+nature of the purpose and the situation.
+
+* It is absolutely vital that you mention even the smallest change or
+departure from the standard sources and installation procedure.
+
+Otherwise, you are not testing the same program that I wrote.  Testing
+a different program is usually of no use whatever.  It can even cause
+trouble if you fail to tell me that you tested some other program
+instead of what I know as GCC.  I might think that GCC works, when in
+fact it has not been properly tried, and might have a glaring fault.
+
+* Even changing the compilation options counts as a change in the
+program.  The GCC sources specify which compilation options to use.
+Some of them are specified in makefiles, and some in machine-specific
+configuration files.
+
+You have ways to override this--but if you do, then you are not
+testing what ordinary users will do.  Therefore, when pretesting, it
+is vital to test with the default compilation options.
+
+(It is okay to test with nonstandard options as well as testing with
+the standard ones.)
+
+* The machine and system configuration files of GCC are parts of
+GCC.  So when you test GCC, you need to do it with the
+configuration files that come with GCC.
+
+If GCC does not come with configuration files for a certain machine,
+and you test it with configuration files that don't come with GCC,
+this is effectively changing GCC.  Because the crucial fact about
+the planned release is that, without changes, it doesn't work on that
+machine.
+
+To make GCC work on that machine, I would need to install new
+configuration files.  That is not out of the question, since it is
+safe--it certainly won't break any other machines that already work.
+But you will have to rush me the legal papers to give the FSF
+permission to use a large piece of text.
+
+* Look for recommendations for your system.
+
+You can find these recommendations in the Installation node of the
+manual, and in the file INSTALL.  (These two files have the same text.)
+
+These files say which configuration name to use for your machine, so
+use the ones that are recommended.  If you guess, you might guess
+wrong and encounter spurious difficulties.  What's more, if you don't
+follow the recommendations then you aren't helping to test that its
+recommendations are valid.
+
+These files may describe other things that you need to do to make GCC
+work on your machine.  If so, you should follow these recommendations
+also, for the same reason.
+
+Also look at the Trouble chapter of the manual for items that
+pertain to your machine.
+
+* Don't delay sending information.
+
+When you find a problem, please double check it if you can do so
+quickly.  But don't spend a long time double-checking.  A good rule is
+always to tell me about every problem on the same day you encounter
+it, even if that means you can't find a solution before you report the
+problem.
+
+I'd much rather hear about a problem today and a solution tomorrow
+than get both of them tomorrow at the same time.
+
+* Make each bug report self-contained.
+
+If you refer back to another message, whether from you or from someone
+else, then it will be necessary for anyone who wants to investigate
+the bug to find the other message.  This may be difficult, it is
+probably time-consuming.
+
+To help me save time, simply copy the relevant parts of any previous
+messages into your own bug report.
+
+In particular, if I ask you for more information because a bug report
+was incomplete, it is best to send me the *entire* collection of
+relevant information, all together.  If you send just the additional
+information, that makes me do extra work.  There is even a risk that
+I won't remember what question you are sending me the answer to.
+
+* Always be precise when talking about changes you have made.  Show
+things rather than describing them.  Use exact filenames (relative to
+the main directory of the distribution), not partial ones.  For
+example, say "I changed Makefile" rather than "I changed the
+makefile".  Instead of saying "I defined the MUMBLE macro", send a
+diff that shows your change.
+
+* Always use `diff -c' to make diffs.  If you don't include context,
+it may be hard for me to figure out where you propose to make the
+changes.  I might have to ignore your patch because I can't tell what
+it means.
+
+* When you write a fix, keep in mind that I can't install a change
+that would break other systems.
+
+People often suggest fixing a problem by changing machine-independent
+files such as toplev.c to do something special that a particular
+system needs.  Sometimes it is totally obvious that such changes would
+break GCC for almost all users.  I can't possibly make a change like
+that.  All I can do is send it back to you and ask you to find a fix
+that is safe to install.
+
+Sometimes people send fixes that *might* be an improvement in
+general--but it is hard to be sure of this.  I can install such
+changes some of the time, but not during pretest, when I am trying to
+get a new version to work reliably as quickly as possible.
+
+The safest changes for me to install are changes to the configuration
+files for a particular machine.  At least I know those can't create
+bugs on other machines.
+
+* Don't try changing GCC unless it fails to work if you don't change it.
+
+* Don't even suggest changes that would only make GCC cleaner.
+Every change I install could introduce a bug, so I won't install
+a change unless I see it is necessary.
+
+* If you would like to suggest changes for purposes other than fixing
+serious bugs, don't wait till pretest time.  Instead, send them just
+after I make a release.  That's the best time for me to install them.
+
+* In some cases, if you don't follow these guidelines, your
+information might still be useful, but I might have to do more work to
+make use of it.  Unfortunately, I am so far behind in my work that I
+just can't get the job done unless you help me to do it efficiently.
+
+
+				Thank you
+				   rms
+
+Local Variables:
+mode: text
+End:
diff --git a/gcc/SERVICE b/gcc/SERVICE
new file mode 100644
index 0000000..786d476
--- /dev/null
+++ b/gcc/SERVICE
@@ -0,0 +1,1460 @@
+							-*- text -*-
+GNU Service Directory
+---------------------
+
+This is a list of people who have asked to be listed as offering
+support services for GNU software, including GNU Emacs, for a fee
+or in some cases at no charge.
+
+The information comes from the people who asked to be listed;
+we do not include any information we know to be false, but we
+cannot check out any of the information; we are transmitting it to
+you as it was given to us and do not promise it is correct.
+Also, this is not an endorsement of the people listed here.
+We have no opinions and usually no information about the abilities of
+any specific person.  We provide this list to enable you to contact
+service providers and decide for yourself whether to hire one.
+
+Before FSF will list your name in the GNU Service Directory, we ask
+that you agree informally to the following terms:
+
+1. You will not restrict (except by copyleft) the use or distribution
+of any software, documentation, or other information you supply anyone
+in the course of modifying, extending, or supporting GNU software.
+This includes any information specifically designed to ameliorate the
+use of GNU software.
+
+2. You will not take advantage of contact made through the Service
+Directory to advertise an unrelated business (e.g., sales of
+non-GNU-related proprietary information).  You may spontaneously
+mention your availability for general consulting, but you should not
+promote a specific unrelated business unless the client asks.
+
+Please include some indication of your rates, because otherwise users
+have nothing to go by.	Please put each e-mail address inside "<>".
+Please put nothing else inside "<>".  Thanks!
+
+For a current copy of this directory, or to have yourself listed, ask:
+	gnu@prep.ai.mit.edu
+
+** Please keep the entries in this file alphabetical **
+
+Altrasoft	<info@altrasoft.com>
+4880 Stevens Creek Blvd., Suite 205
+San Jose, CA  95129-1034
++1 408 243 3300
+http://www.altrasoft.com
+
+Altrasoft provides corporate-quality support, development and user
+documentation for GNU Emacs, XEmacs and InfoDock.  (InfoDock is a turnkey
+information management and software development toolset built atop emacs,
+written by one of our associates.)  Emacs distributions for a variety of
+platforms are also available, as is support for other emacs variants, such as
+those often found on PCs.
+
+Our unique focus on emacs-related work allows us to attract expert talent in
+this area to keep you on the leading edge of productivity, especially if you
+do software development work.  We do the porting, patching, coding,
+integrating, debugging, documenting and testing so that your people spend
+much more productive time on their mainline tasks.
+
+Standard support packages include help on all aspects of the packages
+supported, including all tools shipped as a standard part of the original
+package distribution.  In general, we want to give you an unbelievably strong
+level of support, so where we can, we will also answer questions concerning
+any add-on Lisp code that is used at your site.  Setup and customization
+help, bug fixes, and announcements of new releases are, of course, included.
+
+Support rates start at $1,500 USD, for single user support for one year.
+Discounts are available for group contracts.  We also offer Golden Support
+contracts for those who need the absolute best in mission-critical support;
+contact us for details.  Hourly development rates and fixed bid work are
+available.
+
+Updated: 1997-05-12
+
+Magnus Alvestad <magnus@itanalyse.no>
+
+GNU Emacs, GCC, the Unix tools, Linux, Jolt.
+
+Rates: Free, or from $50/hour.
+
+Updated:  1997-05-09
+
+AO UrbanSoft <info@usoft.spb.su>
+St. Petersburg State University Science Campus
+St. Petersburg, Russia
+www.usoft.spb.ru
+
+AO UrbanSoft packages, markets and supports
+industry standard free software products,
+including the Linux operating system and
+TeX document compiler.
+The company also provides programming services 
+based on TeX, Tk, Python, HTML, Java, Perl and
+Intranet. 
+
+Rates approximately 15 USD per hour.
+
+Updated: 1997-05-25
+
+Joseph Arceneaux        	<jla@ai.mit.edu>
+PO Box 460633			http://www.samsara.com/~jla
+San Francisco, CA  94146-0633
++1 415 648 9988
++1 415 285 9088
+
+Recently led the project making Wells Fargo Bank the first to provide
+secure customer account access over the Internet.
+
+Former FSF staffmember.  Performed X11 implementation of Emacs version
+19, designed and implemented WYSIWYG Emacs.  Installed and
+administered FSF network.  Maintainer of GNU indent.  Over 15 years
+experience with Unix and other systems, from writing ROM monitors to
+UI design and system administration.
+
+I provide installation, porting, debugging and customization or
+development of GNU and other Unix software.  I also design and
+implement free software projects and consult on software engineering
+and systems design.  Handholding and  teaching services are also
+available as well as things like LAN and compute--infrastructure design.
+
+Time and material rates around $150 USD per hour, depending upon the
+particular job.  I am also very interested in fixed-bid jobs.  For
+selected non-profit organizations with worthy goals, I work for free.
+
+Updated: 1995-10-17
+
+Gerd Aschemann		<Aschemann@Informatik.TH-Darmstadt.de>
+Osannstr. 49
+D-64285 Darmstadt
+Tel.: +49 6151 16 2259
+http://www.informatik.th-darmstadt.de/~ascheman/
+
+- System Administrator (UNIX) at CS Department, TU Darmstadt, Germany
+- 17 years experience with CS, System administration on different platforms
+- 10 years with UNIX/Networking/FreeWare/GNU/X11
+-  8 years organizer of Operating Systems and Distributed Systems courses
+- Lectures on System and Network Administration
+- Platforms: Solaris, SunOS, Ultrix, OSF1, HP-UX, Linux, FreeBSD, AIX, SCO
+- Distributed Platforms and Information Systems (CORBA, WWW, Java, FTP)
+- Experience with parallel environments (Connection Machine, Meiko, Parsytec)
+- Consultant
+
+Rates are at 130,-- DM (~80 US$) per hour minimum, depending on the job.
+I am willing to travel for sufficiently large jobs.
+
+Updated: 1997-05-07
+
+
+			Basis Technology Corp.
+		     One Kendall Square, Bldg 200
+			 Cambridge, MA 02139
+				U.S.A.
+
+			 Tel: +1-617-252-5636
+			 Fax: +1-617-252-9150
+		      E-mail: <info@basistech.com>
+		    Web: http://www.basistech.com
+
+Technical Expertise:
+  Multilingual software development
+  Internationalization and localization of software products
+  International character encodings, including Unicode, ISO-10646,
+    ISO-2022, ISO-8859-n, JIS, KSC5601, BIG5, GB2312
+  Translation of technical materials into Japanese, Korean, and Chinese
+    including HTML, SGML, RTF, MIF, etc.
+
+GNU-related Services:
+  Custom internationalization and localization of GNU software, or
+    applications developed using GNU tools (GCC, G++, Emacs Lisp, etc.)
+  Custom multilingual application development based on MULE.
+
+GNU Contributions:
+  Organized 1992, 1993, and 1994 fund-raising seminars and lecture
+    tours for FSF in Japan.
+  Negotiated book royalty agreements with Japanese publishers on
+    behalf of the FSF.
+  Negotiated hardware contributions from Japanese PC vendors to
+    the FSF.
+
+Contacts:
+  Carl Hoffman, Steve Cohen, or Karen Watts
+
+Updated:  1997-05-07
+
+Laurent Bernardin
+16, rue Dicks
+L-6944 Niederanven
+Luxemburg
+<bernardin@inf.ethz.ch>
++41 1 632 7469
+
+Support and installation of all GNU software.
+
+Expertise: C, C++, Java, Motif, X, Unix administration, network security
+
+Rates: ~60 US$ / hour (Flux 2000.-)
+
+Updated:  1997-05-07
+
+Paul Black                                      <paulb@triode.apana.org.au>
+Sydney, Australia
+
+     I am available for general consulting on GNU software.  My specific
+areas of interest are:
+	- general C, C++, ADA and APL programming
+	- Gnu/unix utilities
+	- Troff
+	- Real Time Software
+	- Linux
+	- IP Comms, SMTP, NNTP, HTTP and WWW
+	- Simulation
+
+I am happy to provide free consulting/services if the work is of the order of
+a couple of hours. If more time is required, I am happy to negotiate depending
+on the nature of the work, my indicative rate is $40 per hour.
+
+Entered: 1996-07-10
+
+Keith Bostic
+
+	I'm interested in supporting/extending the ex/vi editors,
+	which I wrote.  On-site or by email, rates are based on the
+	project.  <bostic@cs.berkeley.edu>
+
+Entered:  1996-07-15
+
+Philip Brown
+<phil@mitre.org>
+(703) 893-8967 (prefer email)
+Northern-VA, D.C. Area
+Rates: $40/Hr; less for educational or charitable organizations
+
+Systems Supported:
+	 HP9000/7xx running HP/UX 8.07 - 10.X
+	 IBM RS6000 running AIX 3.2.X
+	 Also SGI/Indy and Sun/Sparcs
+
+Software Supported:
+	 Most all FSF (Gnu) software
+	 esp. GCC, Emacs, Binutils, GS, etc...
+
+Statement:
+        I'd be more than happy to assist anyone in my area with acquiring,
+        installing, and configuring any FSF tools/utilities on any of the
+        above systems.  I'm also willing to work with other UNIX systems not
+        listed above. In addition, I'd be happy to share my many years of
+        experience with anyone having difficulty using or configuring these
+        tools.  I've been installing and using them for about 5 years now
+        and I'll swear by their quality and the people/principles that made
+        them available.
+
+
+			Phil Brown
+
+Updated:  1997-05-07
+
+James Craig Burley
+97 Arrowhead Circle
+Ashland, MA 01721-1987
+508 881-6087, -4745
+(Please call only between 0900-1700 Eastern time, and only if you
+are prepared to hire me -- ask me to help you for free only
+via email, to which I might or might not respond.)
+Email: <burley@gnu.ai.mit.edu> --preferred--
+       <burley@cygnus.com>
+       <burley@world.std.com>
+
+Expertise:
+    Compiler Internals (author of GNU Fortran, for example)
+    Operating Systems Internals
+    Tools/Utilities Development and Maintenance
+    Microcode Development and Maintenance (primarily VLIW machines)
+    System Design (computers, operating systems, toolsets, &c)
+    Debugging (often asked to help debug Other People's Code)
+    Documentation (authored many books and ran a few doc projects)
+    Extensive experience with a variety of operating systems, hardware,
+	languages, and so on
+
+Rate: $100/hour -- willing to consider flat-fee arrangements
+
+Updated: 1997-05-07
+
+Thomas Bushnell, n/BSG	<thomas@gnu.ai.mit.edu>
+Becket House
+66 Highland Ave. No. 8
+Somerville, MA  02143
+(617) 623-0654
+
+
+All GNU software: Installation, customization, answering simple or
+		  complex questions, bug fixing, extension.
+
+Experience:  I have done Unix and GNU programming for several years,
+	     I am the primary author of the Hurd (which provides most
+	     kernel related facilities for the GNU OS).
+
+I am easily available in the Cambridge/Boston area; work via email.
+I am willing to travel for sufficiently large jobs.
+
+Rates: $100/hr, negotiable, less for non-profit organizaions.
+
+Updated: 1997-05-07
+
+   C2V				Michel Delval <mfd@ccv.fr>
+   82 bd Haussmann		Jean-Alain Le Borgne <jalb@ccv.fr>
+   75008 Paris
+   France
+   Tel (33 1) 40.08.07.07
+   Fax (33 1) 43.87.35.99
+   Compuserve 100413,1012
+   http://c2v.com
+
+   We offer source or source+binary distribution, installation, training,
+   maintenance, technical support, consulting, specific development and
+   followup on the GNU software development environment: Emacs, gcc/g++,
+   binutils, gas, gdb.
+
+   Experience: adapted gcc, gas and binutils to work as cross-development
+   tools for the Thomson D950 DSP chip: GCC parser and typing system
+   have been augmented to allow the manipulation of variables located in
+   separated memory spaces. Porting on new platforms, and professionally
+   developing software with the GNU tools in the Unix/X11 environment
+   since they were first available.
+
+   Rates: from 2000 FF/day to 150 000 FF/year, 40% discount for
+   educational institutions, add taxes and expenses.  Ask for list.
+
+Updated: 1997-05-09
+
+Bruce Dawson    -    <jbd@codemeta.com>
+CodeMeta, Inc.
+Epping, NH  USA
+800-468-8750
+
+Specializing in GNU tools such as guile, CVS, gnats, bash, gawk, fileutils...
+
+Services:
+ 
+ o 800 phone support.
+
+ o Modification and development.
+
+ o Training.
+
+Rate: $75/hour or per quote.
+
+http://www.codemeta.com
+
+Updated: 1997-05-09
+
+Kevin Cosgrove  	<kevinc@dOink.COM>
+
+
+	I can help folks with porting & installation of many GNU
+	and X packages on a variety of Unix platforms.
+
+
+	My rates depend on the scope of each project but range
+	from $35 to $90 per hour.
+
+Updated:  1997-05-07
+
+Couvares Consulting
+211 W. Gilman St., Suite 3W
+Madison, WI 53703 USA
+Phone: (608) 256-6201
+EMail: <couvares@family.hampshire.edu>
+Contact: Peter F. Couvares
+
+Type of support: We offer phone/email support, installation, ongoing
+     administration, training, programming, and specialized consulting for
+     free software and other UNIX systems.
+
+Sample prices: USD75/hour commercial, 40/hour nonprofit, sliding scale
+for individuals.
+
+Updated:  1996-12-04
+
+Stuart Cracraft		<cracraft@ai.mit.edu>
+25682 Cresta Loma
+Laguna Niguel, CA, 92677, USA
+GNUline: 714-308-7900
+Website: http://www.earthlink.net/~cracraft/index.html
+Rate: $90/hour
+Consultation topics:
+Entire GNU suite - porting, compilation, installation,
+user-training, administrator-training
+Method: telephone line support, call-in via modem to your site,
+work over the Internet, or in-person visit.
+ 
+Experience: supporting GNU since the mid-1980's, coordinator
+of GNU Chess (original author), GNU Shogi, GNU Go. Ported GNU Emacs
+to Solaris (System V Release 4). Expertise in C, Emacs Lisp, Perl,
+Expect, Oracle, Informix, SunOS, Solaris, NIS, NFS.
+
+Customized programming also available.
+
+Updated: 1997-05-07
+
+Noel Cragg                      <noel@cyclic.com>
+6244 Aberdeen Av
+Goleta CA 93117
+805-899-4695
+
+I'll do installation, debugging, and extension of GNU tools on a
+contract basis.  CVS and configuration management are my current
+specialties.  Rate: $75/hour or per-project negotiated fee.
+
+Updated: 1997-05-07
+
+Cygnus Solutions
+<info@cygnus.com>
+1325 Chesapeake Terrace
+Sunnyvale, CA 94089 USA
++1 408 542 9600 voice
++1 408 542 9699 fax
+Web Site: http://www.cygnus.com
+
+
+Cygnus Solutions provides supported and maintained versions of gcc, g++, gdb
+with GUI, GNU linker and GNU macro assembler.  In addition, Cygnus provides
+these GNU software development tools for well over 100 host-target
+configurations.  Support includes bug fixes and semi-annual releases of the
+toolset.  Each release is regression tested and includes substantial
+improvements and additions to the current release.  Support is available for
+groups of 5 or 25 on a wide range of standard, special and vintage
+toolchains for native and embedded applications.  New target processors are
+being added regularly.  Rates for support for standard products start at $7495.
+
+Cygnus Solutions contacts:
+
+	Kathy Powers
+	ph: +1-206-888-6002
+	fx: +1-206-888-6145
+	email: <kpowers@cygnus.com>
+
+
+   	Erik Westcott
+   	ph: +1 408 542 9637
+   	fx: +1 408 542 9699
+   	email:  <westcott@cygnus.com>
+Updated: 1997-05-23
+
+Marcus G. Daniels              <marcusd@gnu.ai.mit.edu>
+31060 S. Kaufman Rd.           <marcus@tdb.com>
+Canby, OR  97013-9520          <marcus@sysc.pdx.edu>
+(503) 651-2694                 
+
+I can customize, extend, port, and repair many types of free software.
+I maintain the CLISP Common Lisp implementation and contribute to
+several GNU packages (e.g. Emacs).  Ten years of C and Unix
+experience.  Consulting rates start at $40 US/hr.
+
+Updated: 1997-05-07
+
+Edgar Der-Danieliantz (Danielyan) <edd@acm.org>
+P.O. Box 10             FAX +374 2 28 50 82
+Yerevan 375009
+ARMENIA
+
+ Support for GCC, X Window System, WWW, Tcl/Tk, logic programming,
+ Internet security, TCP/IP.
+
+ Experience:
+    OS's: 4.4BSD, SVR4.2, FreeBSD, SCO, Solaris, UnixWare.
+    Languages: C, C++, Objective C, Pascal, Tcl/Tk, Perl, Prolog
+    Platforms: Intel, SPARC, Mac, VAX, NeXT.
+
+ Rates: Depending on type of work, approx. $20/hour. Contact for more
+        information.
+    Negotiable for individuals and non-profit organizations.
+    FREE for individuals who can't pay. Your 'Thanks!' just enough! :-)
+    Payment by international wire transfer or check.
+
+Updated:  1997-05-07
+
+Echo Labs                  <echo@iinet.net.au>
+29 Weld St,                http://www.iinet.net.au/~echo/
+Nedlands, WA 6009
+Perth, Australia
++61 (0) 41 985 9603
+
+Echo Labs is a software consultancy that also provides support and
+development skills.  Specialising in GNU software, particularly Tcl/Tk
+and Linux. We can deliver systems at a fraction of the cost of those
+based on more traditional technologies.  Internet/intranet and data
+communications solutions, for all platforms are undertaken.  GUI
+front-ends done quickly.
+
+While typically involved in engineering and technical area, any
+GNU/freeware software will be supported.
+
+For further details see: http://www.iinet.net.au/~echo/
+
+Experience: 12+ years C/Unix, Sun, SCO, Linux, Win/NT.
+            Systems programming, device drivers, hardware interfacing.
+            GNU tools/utilities,
+            Embedded & realtime systems, software, firmware, hardware.
+            Communications protocols and implementation.
+
+Degrees:    BAppSc (CS), Curtin University, Perth
+
+Rates:      AUS $50-75/hr neg.
+
+Updated:    1997-05-09
+
+Free Software Association of Germany
+Michaela Merz
+Heimatring 19
+6000 Frankfurt/Main 70
+phone:	  (+49 69) 6312083)
+ert  :	  (+49-172-6987246)
+email:	  (info@elara.fsag.de)
+
+Supporting all kinds of freeware (i.e. GNU), freeware development, consulting,
+training, installation.	 Special LINUX support group.
+
+RATES:
+
+Companies and for profit
+organizations		   :  100 US$ / hour
+Private and not-for-profit
+organizations		   :   40 US$ / hour
+ert (24h Emergency
+response team)		   :  300 US$ / hour
+
+Entered: 1994-04-14
+
+Noah Friedman             	<friedman@prep.ai.mit.edu>
+1111 W. El Camino Real #109-331
+Sunnyvale, CA 94087
+(permanent)
+
+Author of several Emacs Lisp packages and parts of Emacs, as well as
+numerous network and unix system utilities.  Co-maintained GNU Texinfo and
+Autoconf for a couple of years.  Experienced unix systems administrator.
+FSF employee Feb 1991--Sep 1994.
+
+I can perform installation, porting, and enhancement of all GNU software
+and any other free software, including the Linux kernel; system design and
+administration for unix-type systems and IP networks; and I am willing to
+provide handholding for shell programming, Emacs Lisp development, and
+version control systems such as RCS and CVS.
+
+Fees negotiable, averaging $75-$100/hour.  I can work in the California bay
+area or anywhere accessible on the Internet.  For larger jobs I may be
+willing to travel.
+
+Updated: 1997-05-08
+
+Ronald F. Guilmette	<rfg@monkeys.com>
+RG Consulting
+1751 East Roseville Pkwy. #1828
+Roseville, CA 95661
+Tel: +1 916 786 7945
+FAX: +1 916 786 5311
+
+Services:	Development & porting of GNU software development tools.
+
+GNU Contributions:
+		Invented, designed, and implemented the protoize and
+		unprotoize tools supplied with GCC2.
+
+		Designed and developed all code to support the generation
+		of Dwarf symbolic debugging information for System V Release
+		4 in GCC2.
+
+		Performed original port of GNU compilers to SVr4 system.
+
+		Finished port of GNU compilers to Intel i860 RISC
+		processor.
+
+Experience:	13+ years UNIX systems experience, all working on compilers
+		and related tools.
+
+		7+ years working professionally on GCC, G++, and GDB under
+		contract to various firms including the Microelectronics
+		and Computer Technology Corporation (MCC), Data General (DG),
+		Network Computing Devices (NCD), and Intel Corp.
+
+Other qualifications:
+		Developer of the RoadTest (tm) C and C++ commercial
+		compiler test suites.
+
+		Former vice-chairman of UNIX International Programming
+		Languages Special Interest Group (UI/PLSIG).
+
+		Bachelor's and a Master's degrees, both in Computer Science.
+
+Rates:		Variable depending upon contract duration.  Call for quote.
+
+Updated: 1997-05-07
+
+Michael P. Deignan
+Ideamation, Inc.
+136 Nelson Street
+Providence, RI 02908
+(401) 331-3708
+(401) 272-6449 fax.
+
+Rate:	Varies depending on complexity of task.
+	Hourly and fixed-rate contracts are available.
+Programs Supported:	All
+
+Updated: 1997-05-07
+
+Interactive Information Limited
+
+Interactive Information Limited is an Edinburgh-based company that
+specialises in WWW services and support for using the Internet for
+marketing.
+
+Our staff have many years experience in using, and developing lisp packages
+within, Emacs, and in using other GNU/Unix tools, particularly under public
+domain UNIXes.
+
+We can provide services throughout the UK, at any level from general
+consultancy through fetching, installing and customising software to
+bespoke programming.  Fees would be in the range #300 - #600 per day,
+depending primarily on the size of the job.
+
+You can contact us
+	by email: <enquire@interactive.co.uk>
+	by phone: 0370 30 40 52 (UK)
+		  (+44) 370 30 40 52 (International)
+	by post: 3, Lauriston Gardens,
+		 Edinburgh EH3 9HH
+		 Scotland
+
+Entered: 1997-05-09
+
+Scott D. Kalter			<sdk@twinsun.com>
+2032 Corral Canyon
+Malibu, CA 90265-9503
+Home: (310) 456-0254
+
+Very familiar with all levels of Elisp programming.  Taught Emacs use
+and customization in universities and industry.  Extensive
+troubleshooting and user support experience.  Co-developed an
+object-oriented extension to Elisp (Eoops) that can be used for
+projects.  Extensive Elisp level modification for rapid prototyping of
+designs used in groupware research.  This includes the development of
+an infrastructure to support multiple, communicating Emacs processes.
+
+Prefer e-mail communication to telephone calls.
+
+Updated:  1997-05-07
+
+Kaman Sciences Corporation
+Griffiss Business & Technology Park
+775 Daedalian Drive
+Rome, NY 13441-4909
+(315) 334-4900
+ 
+CONTACTS: 
+       Dennis Fitzgerald	<dfitzgerald@rome.kaman.com> 
+       Tom Robbins		<trobbins@rome.kaman.com>
+ 
+Kaman Sciences has performed a GNU port for a custom RISC processor.
+We have experience in the definition and description of the machine
+register transfer language to the GNU tool-set.  This includes rewriting
+and modification of the necessary description and source files of gcc, gas,
+and gld and other binutils.  Kaman also has services for installation and
+setup of GNU tools, (GAWK, GCC, EMACS, etc.) on Sun workstations.
+  
+Work is on a "service contract" basis and development is charged either
+hourly or as a fixed price contract.
+ 
+Consulting rates: $70 to $175 per hour.
+ 
+Updated:  1997-05-07
+
+Ehud Karni      <kehud@simonwiesel.net.il>
+
+I am an UNIX system programmer. My skills include writing in C and scripts.
+
+In the GNU domain, I consider myself an expert on Emacs.  I have written several
+packages in emacs-lisp (.el) including: better Hebrew support, another marking
+system, emulation for CDC full screen editor (FSE), COBOL mode, mathematical
+expression computing, and enhancements to vc.el (customization) and to ange-ftp
+(added Novell and NT operating systems).
+     I have installed and tested Emacs and my el's on several machines: DG,
+HP, Alpha (OSF) and PC (DOS).
+     I installed and worked with several other GNU packages - RCS, Gmake, GCC
+and more, but I'm not an expert in these packages.
+
+I work in Israel and my normal rate is $40 per hour.
+
+Entered:  1996-07-15
+
+Joseph R. Kiniry		<kiniry@cs.caltech.edu>
+Caltech Mailstop 256-80		http://www.cs.caltech.edu/~kiniry/
+Pasadena, CA 91125              <jrk@metagenesis.com>
+Phone: 818-395-4840
+Fax: 818-792-4257
+
+Long-term high-level consultant in a variety of domains.  See
+http://www.cs.caltech.edu/~kiniry/resume.html for more information on
+professional and academic background.
+
+I provide installation, porting, debugging, customization, design, and
+development of GNU and other UNIX and non-UNIX software.  I am or have
+been a certified developer with Microsoft, SunSoft, NeXT, and Amiga.
+I have a great deal of development and management experience and an
+extremely broad background which contributes to my excellent system
+integration capabilities.  I have a special expertise and conduct
+research in distributed object technologies.
+
+Time and material rates for local work vary regionally, but are
+currently $250 per hour on the west coast.  Other rates apply for
+long-term jobs (day rates, travel, etc.) and remote work (usually 1/2
+fee).  I am interested in fixed-bid jobs and will work for lower rates
+for non-profit organizations and educational institutions.
+
+Updated: 1997-05-07
+
+Bradley M. Kuhn
+<bkuhn@acm.org>
+http://www.smart.net/~bkuhn
+
+I am available for primarily Unix system administration consulting, including
+but not limited to installation, configuration and integration of GNU tools
+and other copy-lefted software such as GNU/Linux.
+
+I am particularly skilled at end-user hand-holding and assisting in the
+integration of GNU and other copy-lefted software into new environments that
+have not used such tools in the past.
+
+Please visit my homepage for more information on my background and skills.
+
+I am available for both 1099 (preferred) and W2 on-site contracting in the
+Baltimore, MD metropolitan area, as well as remote consulting via dialup or
+Internet connection anywhere in the US.
+
+My rate is in the $40/hour range, depending on the circumstances.  Rates for
+non-profit organizations are substantially lower, and possibly free.
+
+Updated: 1996-12-31
+
+Fen Labalme                       <fen@comedia.com>
+CoMedia Consulting           http//www.comedia.com/comedia/
+40 Carl Street #4                 WE ARE EVERYWHERE
+San Francisco CA 94117             JUST SAY "KNOW"
+
+Consulting, installation, customization and training for GNU Emacs,
+and selected other GNU & network software.  Design & implementation
+of free software projects, as well as software engineering & system
+design.  I have been hacking Emacs since '76 when it was TECO and ^R
+macros (don't ask), and am inter/intra-network, UNIX & Web friendly.
+
+Rates:	$75 hour & up, depending;  flat rate jobs considered.
+	Lower rates, barter or free for selected non-profits.
+
+Updated: 1997-05-07
+
+Greg Lehey
+LEMIS
+PO Box 460
+Echunga SA 5153
+Australia
+
+Phone:	+61-8-8388-8250
+Fax:	+61-8-8388-8250
+Mobile:	+61-41-739-7062
+Mail	<grog@lemis.com>
+
+Services: Supply, porting, installation, consultation on all GNU
+products.
+
+Experience: 20 years OS and compiler experience, ports of most GNU
+products.  Author of ported software CD-ROM for UNIX System V.4.2,
+"Porting UNIX Software" (O'Reilly), "Installing and Running FreeBSD"
+and "The Complete FreeBSD" (both Walnut Creek).
+
+Rates: Choice of AUD 120 per hour or hotline rates AUD 2.50 DM per
+minute.  Outside Australia, $US 100 per hour or $US 2 per minute.
+Quick questions may be free.  Limited free support available for
+purchasers of LEMIS CD-ROMs.
+
+Updated: 1997-05-09
+
+Rohan Lenard                            <rjl@wr.com.au>
+32 Holtermann St.
+Crows Nest, NSW 2065
+AUSTRALIA
++61 411250024
+
+* The human face behind the bug-g++@prep.ai.mit.edu mailing list - known
+  in the past as <rjl@iassf.easams.com.au> and <rjl@ot.com.au> - now
+  known as <rjl@wr.com.au>.
+
+* Interested in providing first line support and development.
+
+Experience: 10+ years C/Unix, 6+ years C++
+            Extensive experience with GNU tools, cross-compilers,
+            embedded/hosted systems, realtime, simulations,
+            and military software.
+
+Degrees:    BSc (CS), BE (Comms), University of Melbourne
+
+Rates:      AUS $75+/hr neg.
+
+Updated:  1997-05-17
+
+Reuven M. Lerner		<reuven@netvision.net.il>
+17 Disraeli Street
+Haifa 34333
+Israel
+
+Phone:     04-824-2265 (within Israel)
+       +972-4-824-2265 (outside of Israel)
+
+Fax:       04-826-1219 (within Israel)
+       +972-4-826-1219 (outside of Israel)    
+
+WWW: http://www.netvision.net.il/php/reuven
+
+- System and network administration, especially Linux-based systems
+  and networks
+- Administration, training, and programming for Internet nodes and
+  World-Wide Web sites
+- Installation, support and training in the use of Linux, Emacs, Perl,
+  and other free software
+- Expertise in C, Emacs Lisp, and Perl
+
+Consulting rates: $75/hour, less for educational institutions.
+
+Updated: 1997-05-07
+
+Richard Levitte             (in TeX: Richard Levitte
+Levitte Programming                  Levitte Programming
+Spannvagen 38, I                     Spannv\"agen 28, I
+S-168 35  Bromma                     S-168 35  Bromma
+Sweden                               Sweden)
+Tel.nr.:  +46 (8) 26 52 47      (there is an answering machine)
+Cellular: +46 (10) 222 64 05
+e-mail:   <levitte@lp.se>
+
+What I do:
+	Primarly I work on GNU software for VMS, both VAX and AXP.  I've
+	been porting GNU Emacs to VMS since spring 1991.  I've 	ported a
+	bunch of other GNU programs as well.  I maintain GNU vmslib.
+	For further info, see http://www.lp.se/~levitte/prof/resume.html
+
+Programs supported:
+	To a varying degree (ranging from extention and porting to
+	installation and simple questions) at the time of updating this
+	entry:
+	- GNU vmslib, emacs, autoconf, zip, diffutils, m4, patch, texinfo,
+	  C/C++; on both VMS and Unix.
+	- Other GNU programs to a small degree; on Unix.
+	For further info, look at http://www.lp.se/products/gnu.html
+
+Experience:
+	Fluent in TeX/LaTeX and many programming languages.
+	Modified key elements in Emacs (e.g., memory and process management)
+	to work transparently on VMS.  I have very good knowledge in the VMS
+	operating system.  I'm also knowledged in the a few Unix flavors.
+	For further info, see http://www.lp.se/~levitte/prof/resume.html
+
+Your Rate:
+	$70-$100/hour (500-800 SEK in sweden), plus expenses.  My rates
+	are negotiable, depending on how interesting the project is to me.
+
+Updated: 1997-05-08
+
+Lexa Software                           info@lexa.com
+1590 The Alameda, Suite 102
+San Jose, CA  95126
+
++1 800 278-2040
++1 408 278-2043  voice
++1 408 278-2045  fax
+
+http://www.lexa.com
+
+Lexa Software provides support for GNU C/C++ including the GNU debugger
+and linker.  Lexa has extensive experience supporting GCC/G++ on SNI
+and Pyramid as well as all other MIPS ABI platforms.  We offer support
+to 2, 5, 25 and larger number of users via phone, email, ftp.
+
+Updated:  1997-05-01
+
+Gord Matzigkeit                      <gord@gnu.ai.mit.edu>
+2220 Capitol Hill Crescent           http://www.m-tech.ab.ca/~gord/
+Calgary, Alberta   T2M 4B9           Voice: (403) 282-1387
+CANADA                               FAX:   (403) 284-0137
+
+I will help install badly-behaved source code packages, and have experience
+fixing them to conform to GNU standards.  I will gladly help novices and
+intermediate computer users to understand, install, and use free software,
+whether or not I have prior experience with that software.  I know my
+limitations well, and will freely give other contacts if I do not want to
+solve your problem myself.
+
+I have installed and administered free and proprietary systems in home,
+academic, and business environments.  I have practical experience in most
+aspects of Unix and network security.  I know how to diagnose a complex
+existing computer system and incrementally replace it with a superior free
+system without disrupting service.
+
+I have over 2 years of experience with several of the major free OSes:
+Linux/GNU (Red Hat, Debian, Slackware), NetBSD, FreeBSD, and GNU/Hurd.  I am
+the maintainer of GNU Libtool and GNU DLD.  Some of my specialties are:
+Emacs, Automake, Autoconf, SANE, C, Perl, and shell script programming.
+
+My rates start at $10 (Canadian dollars) per hour.  When I am not starving, I
+do not charge worthy non-profit organizations.
+
+Updated:  1997-05-08
+
+Andrew McCallum
+6623 Dalzell Place
+Pittsburgh, PA  15217
+Home: (412) 422-0688
+<mccallum@cs.cmu.edu>
+http://www.cs.rochester.edu/u/mccallum
+
+Services:     Support, enhancements, new development in:
+		GNU Objective C
+		GNUstep, both graphical and non-graphical.
+		GNUstep Base Library: libgnustep-base
+		(especially Distributed Objects)
+		Interface between Objective-C and Guile or TCL: libguileobjc.
+
+Experience:	10+ years of UNIX experience.
+		Programming for NeXTSTEP since version 0.8, 1988.
+		MA and PhD in Computer Science.
+		Extensive work on GNU Objective C Runtime.
+		Author of GNUstep Base Library, including Distributed Objects
+		FSF Chief Maintainer of the GNUstep Project.
+		Contributor to GCC, Emacs, Guile.
+		C, Objective-C, Postscript, Scheme, Lisp, ELisp, Linux.
+		English and Francais.
+
+Rates:		$90-$150 / hour, negotiable, depending on many variables.
+
+Updated: 1997-05-07
+
+Erik Naggum		<erik@naggum.no>
+P.O. Box 1570 Vika	http://www.naggum.no
+0118 OSLO		phone: +47 8800 8879
+NORWAY			NIC handle: EN9
+
+Background: I have extensive experience with programming under Unix, in C
+in particular (since 1983), with standards and specifications for Internet
+protocols (since 1987), International Standards for character sets and
+encoding schemes (since 1988), ISO 8879 SGML (since 1990, national head of
+delegation to ISO/IEC JTC 1/SC 18/WG 8 since 1991), and ANSI X3.226 Common
+Lisp (since early 1994).  I have been an Emacs user and programmer from
+1984 to 1987 (TOPS-20) and from 1991 to present (Unix).  since early 1994,
+I have worked on GNU Emacs development, in both Lisp and C, and since mid
+1995, I have been tracking the development code.
+
+Services I offer the free software community include supporting Emacs users
+and programmers with expert advice (gratis on USENET or mailing lists where
+others may benefit), customizing and writing Emacs functions and packages,
+delivering courses and seminars from tutorials to writing Emacs Lisp and C
+extensions, and providing general aid with all GNU software.
+
+My standard rate is a flat USD 80 per hour or USD 2 per minute (you decide
+which time unit to apply), but to offset the cost of processing money, the
+minimum credit card charge is USD 100 and the minimum invoiced amount is
+USD 250.  Discounts are available to worthy causes -- present your case.
+Time away from home is billed at USD 40 per hour around the clock to
+encourage remote work.  (Courses and seminars are negotiated individually.)
+
+Please call only about actual work, I prefer mail for all other questions.
+
+Updated: 1997-07-18
+
+NET-Community                   <sales@net-community.com>
+522 SW 5th Avenue               http://www.net-community.com
+Suite 1105
+Portland, OR 97204 USA
+1-800-919-0060 voice  
+1-503-274-4423 voice  
+1-503-274-5406 fax    
+
+NET-Community provides support for the complete GNUstep toolset
+including the Objective-C runtime within GCC, the GNUstep Base Library,
+the Display Ghostscript system, the GNUstep GUI Library, the GNUstep
+X/DPS GUI Backend, and the GNUstep Database Library. NET-Community also
+provides support for its own MediaBook software including the MediaBook
+Random Library and the MediaBook Speech Synthesis Library. 
+NET-Community actively supports and develops free software on all
+GNUstep platforms; a portion of the proceeds, usually 20%, generated
+from CD-ROM sales go towards additional development and enhancement of
+GNUstep.
+
+Updated: 1997-05-12
+
+  Open Systems Consultants a.s
+  St. Olavsgt. 24
+  N-0166 OSLO
+  NORWAY
+
+Phone:               Fax:
+  +47 22 20 40 50    +47 22 20 02 85
+
+Web:                 E-mail:
+  http://www.osc.no  <gnu-support@osc.no>
+
+Open Systems Consultants a.s can provide programming support for all
+GNU software -- extending or adopting it to meet customer needs.
+Prices vary with software and project.  Hourly fees are in the $80-120
+range.  Fixed-priced projects are also available.  No phone support.
+
+Updated:  1997-05-08
+
+Francesco Potorti` <F.Potorti@cnuce.cnr.it>
+Via S.Stefano, 8
+56123 Pisa, Italy
+Tel. (050)560671
+
+Emacs:	installation and maintenance, training and tutorials,
+	customisation, extensions, troubleshooting.  Author of some of
+	the packages in the emacs distribution, has made the porting
+	of emacs to the Motorola Delta architecture.
+
+Other:	installation and maintenance of GNU software.  Experience with
+	hylafax, RCS, gperf, etags, smail, indent, diff, gawk, gcc,
+	screen.  Is the current maintainer of etags.
+
+Rates:	30-80 KL/hr, depending on experience on the particular task.
+	Average is 50 KL/hr $50/hr.
+	Prefer e-mail communication to telephone.
+
+Qualifications: Electronic Engineering degree, Pisa.  Full time
+	researcher in CNUCE-CNR.
+	Familiar with elisp programming and porting of C programs.
+
+Updated:  1997-05-08
+
+Dipl.-Inform. Klaus Kaempf		<kkaempf@progis.de>
+proGIS Software
+Jakobstr. 117
+D-52064 Aachen
+Germany
+http://www.progis.de
+Tel +49 241 470670
+Fax +49 241 4706729
+
+- 15 years C/Unix experience
+- 6 years VMS experience
+- Ported BFD library, Binutils, GNU Assembler, GNU C, GNU C++,
+  GNU C++ libraries, and GNU Make to openVMS/Alpha.
+
+We do a lot of cross-platform (Unix-VMS-WindowsNT) development
+mostly with the GNU compiler environment. We are actively
+supporting GNU software on openVMS/Alpha.
+
+Rates start at 160.- DM / hour for support and
+installation. Larger projects are negotiable.
+
+Updated: 1997-05-08
+
+Quiotix Corporation
+Menlo Park, CA
+
+Contact: Jeffrey Siegal
+         jbs@quiotix.com
+         415 324-0535
+
+Area of focus: Embedded systems--using GNU software to develop for
+embedded systems, porting GNU software to embedded systems, extending GNU
+software to better support embedded environments, developing new tools and
+utilities for embedded development using GNU software.
+
+Services: porting, development, support, project management, advisory
+consulting.
+
+Rates: $125-$250/hour or fixed fees depending on services provided.
+
+Updated:  1997-05-16
+
+Wolfgang S. Rupprecht		<wolfgang@wsrcc.com>
+47 Esparito Ave.
+Fremont, CA 94539-3827
+(510) 659-9757
+
+Anything, (lisp, C, customization, porting, installing) I have
+written thousands of lines of GNU Emacs C and Lisp code.  Original
+author of the floating point additions in Emacs 19.
+
+Rates:	$95/hr.
+
+Updated: 1997-05-08
+
+Stanislav Shalunov
+
+Email: shalunov@mccme.ru
+Phones: on request
+
+Installing, configuring, helping learn any free software.  
+Handholding, trouble shooting.  Making custom changes to free 
+software written in C.  Teaching, lecturing, consulting.
+
+Want to have a free OS with free software serving your needs but do 
+not want to spend time yourself or not very skilled with the 
+computers?  Cannot decide which free software suits your needs 
+better?  Drop me a line.
+
+Well, essentially, anything else on special request.  :-)
+
+Rate: $30/hour if you are in Moscow and I am there when you request 
+job done, $50 if the job may be done remotely (like configuring user 
+level program), $60/hour + travel expenses otherwise.  (Negotiable, 
+significant discounts may apply.)
+
+Entered 1997-07-17
+
+Vin Shelton
+EtherSoft, Inc
+617.924.6437
+<acs@acm.org>
+
+I have been a professional programmer for 20 years, with most of that time
+spent doing UNIX/C/C++ hacking.  My specialties are (in no particular
+order): system/kernel hacking, speech recognition, perl, object-oriented
+design and analysis, FSF software (I have built nearly every FSF package on
+several different platforms), small language design and implementation, and
+HTML/web programming.  Currently I'm a member of the XEmacs beta testing
+team - I'm responsible for maintaining the version 19.15 patches and have
+written a few small packages/lisp hacks.  My rates vary from $60 - $100 per
+hour, depending on the size of the project.
+
+Updated: 1997-05-09
+
+Signum Support AB		<info@signum.se>
+Teknikringen 8
+S-583 30 Linkoping, Sweden
++46 13 21 46 00 voice
++46 13 21 47 00 fax
+http://www.signum.se/
+
+Signum Support AB is a company dedicated to supporting, developing and
+distributing free software for mainly UNIX systems. The people behind
+Signum Support AB have many years of general UNIX and Internet
+experience, both as system administrators and as programmers, and also
+extensive experience in maintaining and administring the GNU programs
+and Linux.
+
+Signum Support develops and markets the free GUI equiped Readynet
+Internet server, the free PHTTPD http server and the easy to use Linux
+based Fuego firewall.
+
+Services offered:
+
+ - Support on Internet service software, especially the free
+   Readynet Internet server we have developed for Linux.
+ - Support on Linux.
+ - Customization of Linux.
+ - Installation and customizing GNU and other free software.  We are
+   making free software as easy to install and use as shrink wrapped
+   programs.
+ - Warranty protection.
+ - Finding, Recommending and Investigation of free software in any
+   area of the customers choise.
+ - Regular consulting.
+
+Rates: For software items, request our price list.
+       For consulting, 700-900 SEK/hour.
+
+Updated: 1997-05-12
+
+   Jon Solomon                     <jsol@gnu.ai.mit.edu>
+   235 Main St., Apt 3C-1
+   East Hartford, Conn. 06118
+   +1 860 895-8289
+
+   Maintains all GNU software... Available for General Consulting
+   (contact me if you are interested)...
+   Sendmail a specialty... Can answer questions pertaining to the
+   installation, maintainence, bug reporting and fixing for
+   most GNU products... Adhering to the FSF/GNU copyleft for all
+   work... (I only charge for the time it takes to do the above,
+   the software (and most GNU copyleft'd software) is free.
+   I can make tapes for you if you need that...
+
+Updated: 1997-05-09
+
+Name:           Julian Stacey <jhs@freebsd.org>
+Location:	Munich Germany, & on the Internet.
+Qualifications: University Degree, BSc Hons Computer & Cybernetics, 1980.
+Phone:          +49.89.268616   Fax: +49.89.260812   Data: +49.89.26023276
+Resume:		http://www.freebsd.org/~jhs/
+Time Zone:      +01:00
+Rate:           130-170 DM/Hour.  2.7846 DM = 1 Pound = US $1.6332
+Commercial Independent Freelance Consultancy:
+                Any Unix (inc FreeBSD, Linux etc), C, X-Windows, FSF Tools,
+                Internet, Systems engineering, hardware interfacing, 
+                real time, comms & scientific industrial, even Cyrillic &
+                Chinese interfaces etc.  No Emacs. No Cobol.
+Free Sources:   FSF, FreeBSD & NetBSD CVS & current (daily!) & releases,
+		X-Windows, XFree86, Free dial in soon (details on web).
+		Media Copy Charge ~DM 100 QIC 1/4" 525M, 150M, & 60M; & CAS-60M.
+Free GCC-1.40	For Symmetric Computer Systems Model 375 (native cc is broken).
+Languages:      Deutsch & Francais
+                Man kann mir in Deutsch schreiben, (oder mich anrufen).
+                Je comprend Francais, mais je n'ecris pas des responses en Fr.
+! NO FREE HELP !
+	- The Free Software Foundation do not pay me.
+	- I earn my living from professional consultancy fees.
+	- Though I write code for public domain ...
+	- I will Not solve stranger's complex problems for free !
+WHEN CONTACTING ME,  DO THIS :-
+	  1) Tell me Immediately,  Are You:
+		A)  Expecting to pay my bill for professional consultancy.
+		B)  Seeking a few minutes advice free of charge.
+	  2) Give me your email adddress, or that of a friend.
+	     or Volunteer to phone back ~ 5 days later to collect follow-up
+	     info.  from the net.  (No I will not incur bills phoning you back).
+	  3) Speak English if you want free advice !  I speak German, &
+	     listen in French, but if you're not paying, make some effort too !
+
+Updated: 1997-05-15
+
+Richard M. Stallman	<rms@gnu.ai.mit.edu>
+545 Tech Sq, Rm 430
+Cambridge, MA 02139
+
+Emacs: anything whatever
+Is anyone interested in courses in using or extending GNU Emacs?
+
+Original inventor of Emacs and main author of GNU Emacs and GCC.
+
+Rates: $6/min or $250/hr.
+
+Updated: 1997-05-09
+
+Kayvan Sylvan <kayvan@sylvan.com>
+Sylvan Associates
+879 Lewiston Drive
+San Jose, CA 95136-1517
+Phone: (408) 978-1407
+Fax:   (408) 978-1417
+
+I will help you port, install and customize GNU Emacs, GCC, G++,
+bison, and other GNU tools on almost any architechture and operating
+system. Questions answered. GNU C and lisp hacking available. I will
+also do ongoing support and periodic upgrades if you get on my GNU
+software subscription list.
+
+Rates: $70-$100/hour, depending on type of work. Substantial discounts
+for long-term contracts and also for educational or non-profit
+institutions.
+
+Experience: Many different Unix systems (2.9BSD to 4.4BSD, Xenix, SVR3 and
+SVR4, Linux, FreeBSD). Systems programming and system administration on all
+brands of Unix. Kernel hacking experience. Lots of porting experience.
+
+Updated: 1997-05-09
+
+TerraTel AB <info@netg.se>
+Tankeg=E5ngen 4
+S-417 56 G=F6teborg, Sweden
++46 31 50 79 40 voice
++46 31 50 79 39 fax
+http://www.netg.se
+
+TerraTel AB is a company that does consultant jobs and holds courses
+in the fields of Unix software, TCP/IP networking and Internet
+applications. The people behind TerraTel AB have many years
+of general UNIX experience, both as system administrators and as
+programmers, and also extensive experience in maintaining the GNU
+programs; in administration as well as finding and fixing bugs.
+
+Services offered:
+
+- Installation and customizing GNU and other free software.  We will
+  make free software as easy to install and use as shrink wrapped
+  programs.
+- Service and support subscriptions.
+- Warranty protection.
+- Customization and porting.
+- Subscriptions to new versions which we will send monthly or with
+  any other interval.
+- Finding, recommending and investigating free software in any
+  area of the customers choice.
+- Regular consulting.
+- Support on Internet service software, especially the free
+- Support on Linux.
+- Freeware based courses in Unix usage, C, C++, or any GNU tools
+
+Rates: For courses, contact us for a quote,
+For consulting, $60-120/hour, depending on contract length.
+
+Entered:  1997-05-12
+
+Jonathan Thornburg / BKIS Consulting
+E-mail: <bkis@island.net>       (preferred way to contact me)
+Postal: Box 8-7, Thetis Island  BC  V0R 2Y0, Canada
+Phone:  (250) 246-3640          (somewhat unreliable)
+
+* B.Sc (Honors 1st Class) in Math+Physics+CS, M.Sc and Ph.D in Astronomy
+* 20+ years computing experience using a wide range of software and
+  hardware environments
+
+* Very fluent in C (15+ years experience)
+* Fluent in C++, Perl, sh, csh, Awk, Fortran, PL/I, Pascal, APL, Lisp,
+            Basic, Maple, Reduce, various machine languages
+* Very fluent (10+ years experience) in general Unix toolset and programming
+* Good knowledge (4+ years experience) of Unix system administration
+  (SunOS, Linux, SGI)
+* Strong background (both theory and practical experience) in Unix/network
+  security, computer graphics, X and Motif GUI programming
+* Good general knowledge of Unix (kernel) internals and device drivers
+* Very fluent in LaTeX, TeX, also HTML, HTTP, and CGI programming
+* Member of Usenix (professional and technical Unix association) and
+  SAGE (system administrator's guild)
+
+* Very strong background (extensive experience) in numerical analysis
+* Strong backgrounds in hardware architecture, microprogramming,
+  programming language implementation, compiler theory, data structures,
+  OS design and internals, networking, symbolic manipulation, AI
+
+I'm available for Unix-based contract programming, software installation,
+and/or general system administration.  My recent projects include several
+20K-50K 50K line C/Maple/Awk scientific applications, several small (1K line)
+Perl/Awk text processors and "system glue" CGI programs, finding and fixing
+bugs in a (free) 50K line graphics package, and a partially completed project
+to port (really rewrite) the GUI of a 50K line C++ Netscape plugin from
+Win32 to Unix/X/Motif.
+
+Unless otherwise required by a client, all the software I write is covered
+by the GNU Public License.  My basic rate is Can$50/hour for work I can do
+remotely over the Internet, more for on-site work, less for selected
+non-profit organizations.
+
+Updated:  1997-05-19
+
+Leonard H. Tower Jr.	<tower@prep.ai.mit.edu>
+36 Porter Street
+Somerville, MA	02143
+USA
++1-617-623-7739
+
+Will work on most GNU software.
+Installation, handholding, trouble shooting, extensions, teaching.
+
+Rates: $ 150.00/hour + travel expenses.  Negotiable for non-profits.
+
+Experience: Have hacked on over a dozen architectures in many languages.  Have
+system mothered too many varieties of Unixes.  Assisted rms with the front end
+of gcc and its back-end support.  Resume available on request.
+
+Updated:  1997-05-24
+
+noris network GmbH
+Matthias Urlichs
+Schleiermacherstrasse 12
+90491 Nuernberg
+Germany
+Phone: +49 911 59818-0
+Fax: +49 911 59818-11
+<info@noris.de>
+http://info.noris.de/ (German)
+
+Expertise:
+  OS internals, esp. Linux and BSD, esp. device drivers
+  Network protocol / program design and coding
+  Utilities coding and maintainance
+  Program debugging, testing
+  User interface design and testing
+  Several programming and tool languages
+
+Services:
+  Installation, debugging, enhancement, distribution,
+    for all kinds of free software.
+  System administration for most Unix-like systems.
+  Email, Fax, phone, and in-person consulting (and/or "question answering").
+  Remote support and system monitoring (over the Internet),
+  Update service (new tools tested and installed automagically)
+  Internet access
+
+Rates:
+  DM 110 (~$70) per hour
+  Support contracts start at DM 170/month + DM 30/supported system.
+  Willing to travel for sufficiently large jobs.
+  Rates don't include taxes.
+
+Updated: 1996-07-05
+
+Paul C.A. van Gool
+      <P.vanGool@LR.TUDelft.NL>
+
+Address: Faculty of Aerospace Engineering
+         Delft University of Technology
+         Kluyverweg 1,  2629 HS Delft
+         The Netherlands
+
+Phone: +31-15-2785370
+Fax  : +31-15-2786480
+
+I would like to provide unpaid support for the following things:
+
+- C
+- C++
+- f2c
+- compilation and installation of most GNU packages
+
+Updated:  1997-05-12
+
+Arne Wichmann
+
+EMail: <aw@math.uni-sb.de>
+Telephone on request.
+
+I support GNU software on the following platforms:
+
+Linux
+SunOS 4.X 5.X
+HPUX 9.X
+other platforms on request.
+
+Usual rates: 20DM per hour. Free support for private people as time
+permits.
+
+Updated: 1997-05-16
+
+Jody Winston
+xprt Computer Consulting, Inc.
+731 Voyager
+Houston, TX, 77058
+(281) 480-UNIX, <jody@sccsi.com>
+
+We have supported, installed, and used the entire GNU software suite
+for over 8 years on many different Unix platforms.  We have written
+character device drivers and proc file systems for custom hardware
+running on Linux.  In addition, we have developed a custom X11 server
+and X input extensions. Our consulting rate is $150.00 US dollars per
+hour, negotiable, plus a per diem for out of town work.
+
+Updated:  1997-05-12
+
+Lige Zhou
+Consultant
+Open Technologies Corporation
+Sun Lotus Bldg. 2nd Floor
+2-9-1 Chuou, Nakano-ku, Tokyo 164 Japan
+Tel: +81-3-3365-2911 Fax: +81-3-3365-2920
+E-mail: <zhou@opentech.co.jp>
+
+My profile is listed at:  http://www.opentech.co.jp/~zhou/
+
+I have two years of experience porting and supporting GNU C Compiler and
+GNU Assember at the Wingnut project of SRA, Inc., Tokyo.
+
+I can provide free consultation on these products if the problem is not
+time-consuming.
+
+Updated:  1996-12-04
+
+
+For a current copy of this directory, or to have yourself listed, ask:
+	gnu@prep.ai.mit.edu
+
+** Please keep the entries in this file alphabetical **
diff --git a/gcc/TESTS.FLUNK b/gcc/TESTS.FLUNK
new file mode 100644
index 0000000..04641e3
--- /dev/null
+++ b/gcc/TESTS.FLUNK
@@ -0,0 +1,39 @@
+This is a collection of things that test suites have
+said were "wrong" with GCC--but that I don't agree with.
+
+First, test suites sometimes test for compatibility with
+traditional C.  GCC with -traditional is not completely
+compatible with traditional C, and in some ways I think it
+should not be.
+
+* K&R C allowed \x to appear in a string literal (or character
+literal?)  even in cases where it is *not* followed by a sequence of
+hex digits.  I'm not convinced this is desirable.
+
+* K&R compilers allow comments to cross over an inclusion boundary (i.e.
+started in an include file and ended in the including file).
+I think this would be quite ugly and can't imagine it could
+be needed.
+
+Sometimes tests disagree with GCC's interpretation of the ANSI standard.
+
+* One test claims that this function should return 1.
+
+    enum {A, B} foo;
+
+    func (enum {B, A} arg)
+    {
+      return B;
+    }
+
+I think it should return 0, because the definition of B that
+applies is the one in func.
+
+* Some tests report failure when the compiler does not produce
+an error message for a certain program.
+
+ANSI C requires a "diagnostic" message for certain kinds of invalid
+programs, but a warning counts as a diagnostic.  If GCC produces
+a warning but not an error, that is correct ANSI support.
+When test suites call this "failure", the tests are broken.
+
diff --git a/gcc/bi-parser.c b/gcc/bi-parser.c
new file mode 100644
index 0000000..9f6f2b0
--- /dev/null
+++ b/gcc/bi-parser.c
@@ -0,0 +1,980 @@
+
+/*  A Bison parser, made from bi-parser.y with Bison version GNU Bison version 1.24
+  */
+
+#define YYBISON 1  /* Identify Bison output.  */
+
+#define	DEFOP	258
+#define	STRING	259
+
+#line 22 "bi-parser.y"
+
+
+#include <stdio.h>
+#include "hconfig.h"
+#include "bi-defs.h"
+
+extern char yytext[];
+extern int yyleng;
+
+
+/* Chain of all defs built by the parser. */
+struct def *defs;
+int ndefs;
+
+static struct node *makenode ();
+static struct variation *makevar ();
+static struct def *makedef ();
+
+void yyerror ();
+
+
+#line 44 "bi-parser.y"
+typedef union
+{
+  char *string;
+  struct def *def;
+  struct variation *variation;
+  struct node *node;
+} YYSTYPE;
+
+#ifndef YYLTYPE
+typedef
+  struct yyltype
+    {
+      int timestamp;
+      int first_line;
+      int first_column;
+      int last_line;
+      int last_column;
+      char *text;
+   }
+  yyltype;
+
+#define YYLTYPE yyltype
+#endif
+
+#include <stdio.h>
+
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
+
+
+
+#define	YYFINAL		39
+#define	YYFLAG		-32768
+#define	YYNTBASE	8
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 259 ? yytranslate[x] : 17)
+
+static const char yytranslate[] = {     0,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     5,
+     7,     2,     2,     6,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     1,     2,     3,     4
+};
+
+#if YYDEBUG != 0
+static const short yyprhs[] = {     0,
+     0,     2,     4,     7,    18,    20,    24,    28,    34,    42,
+    52,    53,    55,    59,    60,    62,    66
+};
+
+static const short yyrhs[] = {     9,
+     0,    10,     0,     9,    10,     0,     3,     5,     4,     6,
+    13,     6,     5,    11,     7,     7,     0,    12,     0,    11,
+     6,    12,     0,     5,    13,     7,     0,     5,    13,     6,
+    14,     7,     0,     5,    13,     6,    14,     6,    14,     7,
+     0,     5,    13,     6,    14,     6,    14,     6,    14,     7,
+     0,     0,     4,     0,     5,    15,     7,     0,     0,    16,
+     0,    16,     6,    15,     0,     4,     0
+};
+
+#endif
+
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+    60,    65,    67,    71,    76,    78,    82,    85,    87,    89,
+    93,    95,    98,   101,   105,   108,   112
+};
+
+static const char * const yytname[] = {   "$","error","$undefined.","DEFOP",
+"STRING","'('","','","')'","top","defs","def","variations","variation","opt_string",
+"list","items","item",""
+};
+#endif
+
+static const short yyr1[] = {     0,
+     8,     9,     9,    10,    11,    11,    12,    12,    12,    12,
+    13,    13,    14,    14,    15,    15,    16
+};
+
+static const short yyr2[] = {     0,
+     1,     1,     2,    10,     1,     3,     3,     5,     7,     9,
+     0,     1,     3,     0,     1,     3,     1
+};
+
+static const short yydefact[] = {     0,
+     0,     1,     2,     0,     3,     0,    11,    12,     0,     0,
+     0,    11,     0,     5,     0,     0,     0,    14,     7,     6,
+     4,     0,     0,    17,     0,    15,    14,     8,    13,     0,
+     0,    16,    14,     9,     0,    10,     0,     0,     0
+};
+
+static const short yydefgoto[] = {    37,
+     2,     3,    13,    14,     9,    23,    25,    26
+};
+
+static const short yypact[] = {     2,
+     6,     2,-32768,     8,-32768,     7,    10,-32768,     9,    11,
+    12,    10,    -5,-32768,    -3,    12,    13,    14,-32768,-32768,
+-32768,    17,     1,-32768,    15,    18,    14,-32768,-32768,    17,
+     3,-32768,    14,-32768,    16,-32768,    25,    26,-32768
+};
+
+static const short yypgoto[] = {-32768,
+-32768,    27,-32768,    19,    20,   -27,   -12,-32768
+};
+
+
+#define	YYLAST		35
+
+
+static const short yytable[] = {    31,
+    16,    17,    18,    19,     1,    35,    27,    28,    33,    34,
+     4,     6,     7,     8,    10,    11,    12,    32,    22,    21,
+    24,    29,    36,    30,    38,    39,     0,     0,     5,     0,
+     0,    15,     0,     0,    20
+};
+
+static const short yycheck[] = {    27,
+     6,     7,     6,     7,     3,    33,     6,     7,     6,     7,
+     5,     4,     6,     4,     6,     5,     5,    30,     5,     7,
+     4,     7,     7,     6,     0,     0,    -1,    -1,     2,    -1,
+    -1,    12,    -1,    -1,    16
+};
+/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
+#line 3 "/usr/local/share/bison.simple"
+
+/* Skeleton output parser for bison,
+   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+#ifndef alloca
+#ifdef __GNUC__
+#define alloca __builtin_alloca
+#else /* not GNU C.  */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
+#include <alloca.h>
+#else /* not sparc */
+#if defined (MSDOS) && !defined (__TURBOC__)
+#include <malloc.h>
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+#include <malloc.h>
+ #pragma alloca
+#else /* not MSDOS, __TURBOC__, or _AIX */
+#ifdef __hpux
+#ifdef __cplusplus
+extern "C" {
+void *alloca (unsigned int);
+};
+#else /* not __cplusplus */
+void *alloca ();
+#endif /* not __cplusplus */
+#endif /* __hpux */
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc.  */
+#endif /* not GNU C.  */
+#endif /* alloca not defined.  */
+
+/* This is the parser code that is written into each bison parser
+  when the %semantic_parser declaration is not specified in the grammar.
+  It was written by Richard Stallman by simplifying the hairy parser
+  used when %semantic_parser is specified.  */
+
+/* Note: there must be only one dollar sign in this file.
+   It is replaced by the list of actions, each action
+   as one case of the switch.  */
+
+#define yyerrok		(yyerrstatus = 0)
+#define yyclearin	(yychar = YYEMPTY)
+#define YYEMPTY		-2
+#define YYEOF		0
+#define YYACCEPT	return(0)
+#define YYABORT 	return(1)
+#define YYERROR		goto yyerrlab1
+/* Like YYERROR except do call yyerror.
+   This remains here temporarily to ease the
+   transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  */
+#define YYFAIL		goto yyerrlab
+#define YYRECOVERING()  (!!yyerrstatus)
+#define YYBACKUP(token, value) \
+do								\
+  if (yychar == YYEMPTY && yylen == 1)				\
+    { yychar = (token), yylval = (value);			\
+      yychar1 = YYTRANSLATE (yychar);				\
+      YYPOPSTACK;						\
+      goto yybackup;						\
+    }								\
+  else								\
+    { yyerror ("syntax error: cannot back up"); YYERROR; }	\
+while (0)
+
+#define YYTERROR	1
+#define YYERRCODE	256
+
+#ifndef YYPURE
+#define YYLEX		yylex()
+#endif
+
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
+#ifdef YYLEX_PARAM
+#define YYLEX		yylex(&yylval, &yylloc, YYLEX_PARAM)
+#else
+#define YYLEX		yylex(&yylval, &yylloc)
+#endif
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX		yylex(&yylval, YYLEX_PARAM)
+#else
+#define YYLEX		yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
+#endif
+
+/* If nonreentrant, generate the variables here */
+
+#ifndef YYPURE
+
+int	yychar;			/*  the lookahead symbol		*/
+YYSTYPE	yylval;			/*  the semantic value of the		*/
+				/*  lookahead symbol			*/
+
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc;			/*  location data for the lookahead	*/
+				/*  symbol				*/
+#endif
+
+int yynerrs;			/*  number of parse errors so far       */
+#endif  /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug;			/*  nonzero means print parse trace	*/
+/* Since this is uninitialized, it does not stop multiple parsers
+   from coexisting.  */
+#endif
+
+/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/
+
+#ifndef	YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
+
+/*  YYMAXDEPTH is the maximum size the stacks can grow to
+    (effective only if the built-in stack extension method is used).  */
+
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+
+/* Prevent warning if -Wstrict-prototypes.  */
+#ifdef __GNUC__
+int yyparse (void);
+#endif
+
+#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
+#define __yy_memcpy(FROM,TO,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
+#else				/* not GNU C or C++ */
+#ifndef __cplusplus
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (from, to, count)
+     char *from;
+     char *to;
+     int count;
+{
+  register char *f = from;
+  register char *t = to;
+  register int i = count;
+
+  while (i-- > 0)
+    *t++ = *f++;
+}
+
+#else /* __cplusplus */
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (char *from, char *to, int count)
+{
+  register char *f = from;
+  register char *t = to;
+  register int i = count;
+
+  while (i-- > 0)
+    *t++ = *f++;
+}
+
+#endif
+#endif
+
+#line 192 "/usr/local/share/bison.simple"
+
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+   into yyparse.  The argument should have type void *.
+   It should actually point to an object.
+   Grammar actions can access the variable by casting it
+   to the proper pointer type.  */
+
+#ifdef YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#else
+#define YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#endif
+
+int
+yyparse(YYPARSE_PARAM)
+     YYPARSE_PARAM_DECL
+{
+  register int yystate;
+  register int yyn;
+  register short *yyssp;
+  register YYSTYPE *yyvsp;
+  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
+  int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */
+
+  short	yyssa[YYINITDEPTH];	/*  the state stack			*/
+  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/
+
+  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */
+  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */
+
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/
+  YYLTYPE *yyls = yylsa;
+  YYLTYPE *yylsp;
+
+#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
+#else
+#define YYPOPSTACK   (yyvsp--, yyssp--)
+#endif
+
+  int yystacksize = YYINITDEPTH;
+
+#ifdef YYPURE
+  int yychar;
+  YYSTYPE yylval;
+  int yynerrs;
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylloc;
+#endif
+#endif
+
+  YYSTYPE yyval;		/*  the variable used to return		*/
+				/*  semantic values from the action	*/
+				/*  routines				*/
+
+  int yylen;
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Starting parse\n");
+#endif
+
+  yystate = 0;
+  yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY;		/* Cause a token to be read.  */
+
+  /* Initialize stack pointers.
+     Waste one element of value and location stack
+     so that they stay on the same level as the state stack.
+     The wasted elements are never initialized.  */
+
+  yyssp = yyss - 1;
+  yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+  yylsp = yyls;
+#endif
+
+/* Push a new state, which is found in  yystate  .  */
+/* In all cases, when you get here, the value and location stacks
+   have just been pushed. so pushing a state here evens the stacks.  */
+yynewstate:
+
+  *++yyssp = yystate;
+
+  if (yyssp >= yyss + yystacksize - 1)
+    {
+      /* Give user a chance to reallocate the stack */
+      /* Use copies of these so that the &'s don't force the real ones into memory. */
+      YYSTYPE *yyvs1 = yyvs;
+      short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+      YYLTYPE *yyls1 = yyls;
+#endif
+
+      /* Get the current used size of the three stacks, in elements.  */
+      int size = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+      /* Each stack pointer address is followed by the size of
+	 the data in use in that stack, in bytes.  */
+#ifdef YYLSP_NEEDED
+      /* This used to be a conditional around just the two extra args,
+	 but that might be undefined if yyoverflow is a macro.  */
+      yyoverflow("parser stack overflow",
+		 &yyss1, size * sizeof (*yyssp),
+		 &yyvs1, size * sizeof (*yyvsp),
+		 &yyls1, size * sizeof (*yylsp),
+		 &yystacksize);
+#else
+      yyoverflow("parser stack overflow",
+		 &yyss1, size * sizeof (*yyssp),
+		 &yyvs1, size * sizeof (*yyvsp),
+		 &yystacksize);
+#endif
+
+      yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+      yyls = yyls1;
+#endif
+#else /* no yyoverflow */
+      /* Extend the stack our own way.  */
+      if (yystacksize >= YYMAXDEPTH)
+	{
+	  yyerror("parser stack overflow");
+	  return 2;
+	}
+      yystacksize *= 2;
+      if (yystacksize > YYMAXDEPTH)
+	yystacksize = YYMAXDEPTH;
+      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
+      __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
+      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
+      __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
+      __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
+#endif
+#endif /* no yyoverflow */
+
+      yyssp = yyss + size - 1;
+      yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+      yylsp = yyls + size - 1;
+#endif
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
+
+      if (yyssp >= yyss + yystacksize - 1)
+	YYABORT;
+    }
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Entering state %d\n", yystate);
+#endif
+
+  goto yybackup;
+ yybackup:
+
+/* Do appropriate processing given the current state.  */
+/* Read a lookahead token if we need one and don't already have one.  */
+/* yyresume: */
+
+  /* First try to decide what to do without reference to lookahead token.  */
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yydefault;
+
+  /* Not known => get a lookahead token if don't already have one.  */
+
+  /* yychar is either YYEMPTY or YYEOF
+     or a valid token in external form.  */
+
+  if (yychar == YYEMPTY)
+    {
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Reading a token: ");
+#endif
+      yychar = YYLEX;
+    }
+
+  /* Convert token to internal form (in yychar1) for indexing tables with */
+
+  if (yychar <= 0)		/* This means end of input. */
+    {
+      yychar1 = 0;
+      yychar = YYEOF;		/* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Now at end of input.\n");
+#endif
+    }
+  else
+    {
+      yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+      if (yydebug)
+	{
+	  fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+	  /* Give the individual parser a way to print the precise meaning
+	     of a token, for further debugging info.  */
+#ifdef YYPRINT
+	  YYPRINT (stderr, yychar, yylval);
+#endif
+	  fprintf (stderr, ")\n");
+	}
+#endif
+    }
+
+  yyn += yychar1;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+    goto yydefault;
+
+  yyn = yytable[yyn];
+
+  /* yyn is what to do for this token type in this state.
+     Negative => reduce, -yyn is rule number.
+     Positive => shift, yyn is new state.
+       New state is final state => don't bother to shift,
+       just return success.
+     0, or most negative number => error.  */
+
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+	goto yyerrlab;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+  else if (yyn == 0)
+    goto yyerrlab;
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  /* Shift the lookahead token.  */
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
+
+  /* Discard the token being shifted unless it is eof.  */
+  if (yychar != YYEOF)
+    yychar = YYEMPTY;
+
+  *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
+
+  /* count tokens shifted since error; after three, turn off error status.  */
+  if (yyerrstatus) yyerrstatus--;
+
+  yystate = yyn;
+  goto yynewstate;
+
+/* Do the default action for the current state.  */
+yydefault:
+
+  yyn = yydefact[yystate];
+  if (yyn == 0)
+    goto yyerrlab;
+
+/* Do a reduction.  yyn is the number of a rule to reduce with.  */
+yyreduce:
+  yylen = yyr2[yyn];
+  if (yylen > 0)
+    yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      int i;
+
+      fprintf (stderr, "Reducing via rule %d (line %d), ",
+	       yyn, yyrline[yyn]);
+
+      /* Print the symbols being reduced, and their result.  */
+      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+	fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+    }
+#endif
+
+
+  switch (yyn) {
+
+case 1:
+#line 62 "bi-parser.y"
+{ defs = yyvsp[0].def; ;
+    break;}
+case 3:
+#line 68 "bi-parser.y"
+{ yyvsp[0].def->next = yyvsp[-1].def; yyval.def = yyvsp[0].def; ;
+    break;}
+case 4:
+#line 73 "bi-parser.y"
+{ yyval.def = makedef (yyvsp[-7].string, yyvsp[-5].string, yyvsp[-2].variation); ;
+    break;}
+case 6:
+#line 79 "bi-parser.y"
+{ yyvsp[0].variation->next = yyvsp[-2].variation; yyval.variation = yyvsp[0].variation; ;
+    break;}
+case 7:
+#line 84 "bi-parser.y"
+{ yyval.variation = makevar (yyvsp[-1].string, (struct node *) NULL, (struct node *) NULL, (struct node *) NULL); ;
+    break;}
+case 8:
+#line 86 "bi-parser.y"
+{ yyval.variation = makevar (yyvsp[-3].string, yyvsp[-1].node, (struct node *) NULL, (struct node *) NULL); ;
+    break;}
+case 9:
+#line 88 "bi-parser.y"
+{ yyval.variation = makevar (yyvsp[-5].string, yyvsp[-3].node, yyvsp[-1].node, (struct node *) NULL); ;
+    break;}
+case 10:
+#line 90 "bi-parser.y"
+{ yyval.variation = makevar (yyvsp[-7].string, yyvsp[-5].node, yyvsp[-3].node, yyvsp[-1].node); ;
+    break;}
+case 11:
+#line 94 "bi-parser.y"
+{ yyval.string = ""; ;
+    break;}
+case 12:
+#line 95 "bi-parser.y"
+{ yyval.string = yyvsp[0].string; ;
+    break;}
+case 13:
+#line 100 "bi-parser.y"
+{ yyval.node = yyvsp[-1].node; ;
+    break;}
+case 14:
+#line 102 "bi-parser.y"
+{ yyval.node = NULL; ;
+    break;}
+case 16:
+#line 109 "bi-parser.y"
+{ yyvsp[-2].node->next = yyvsp[0].node; yyval.node = yyvsp[-2].node; ;
+    break;}
+case 17:
+#line 114 "bi-parser.y"
+{ yyval.node = makenode (yyvsp[0].string); ;
+    break;}
+}
+   /* the action file gets copied in in place of this dollarsign */
+#line 487 "/usr/local/share/bison.simple"
+
+  yyvsp -= yylen;
+  yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+  yylsp -= yylen;
+#endif
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "state stack now");
+      while (ssp1 != yyssp)
+	fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
+
+  *++yyvsp = yyval;
+
+#ifdef YYLSP_NEEDED
+  yylsp++;
+  if (yylen == 0)
+    {
+      yylsp->first_line = yylloc.first_line;
+      yylsp->first_column = yylloc.first_column;
+      yylsp->last_line = (yylsp-1)->last_line;
+      yylsp->last_column = (yylsp-1)->last_column;
+      yylsp->text = 0;
+    }
+  else
+    {
+      yylsp->last_line = (yylsp+yylen-1)->last_line;
+      yylsp->last_column = (yylsp+yylen-1)->last_column;
+    }
+#endif
+
+  /* Now "shift" the result of the reduction.
+     Determine what state that goes to,
+     based on the state we popped back to
+     and the rule number reduced by.  */
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTBASE];
+
+  goto yynewstate;
+
+yyerrlab:   /* here on detecting error */
+
+  if (! yyerrstatus)
+    /* If not already recovering from an error, report this error.  */
+    {
+      ++yynerrs;
+
+#ifdef YYERROR_VERBOSE
+      yyn = yypact[yystate];
+
+      if (yyn > YYFLAG && yyn < YYLAST)
+	{
+	  int size = 0;
+	  char *msg;
+	  int x, count;
+
+	  count = 0;
+	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
+	  for (x = (yyn < 0 ? -yyn : 0);
+	       x < (sizeof(yytname) / sizeof(char *)); x++)
+	    if (yycheck[x + yyn] == x)
+	      size += strlen(yytname[x]) + 15, count++;
+	  msg = (char *) malloc(size + 15);
+	  if (msg != 0)
+	    {
+	      strcpy(msg, "parse error");
+
+	      if (count < 5)
+		{
+		  count = 0;
+		  for (x = (yyn < 0 ? -yyn : 0);
+		       x < (sizeof(yytname) / sizeof(char *)); x++)
+		    if (yycheck[x + yyn] == x)
+		      {
+			strcat(msg, count == 0 ? ", expecting `" : " or `");
+			strcat(msg, yytname[x]);
+			strcat(msg, "'");
+			count++;
+		      }
+		}
+	      yyerror(msg);
+	      free(msg);
+	    }
+	  else
+	    yyerror ("parse error; also virtual memory exceeded");
+	}
+      else
+#endif /* YYERROR_VERBOSE */
+	yyerror("parse error");
+    }
+
+  goto yyerrlab1;
+yyerrlab1:   /* here on error raised explicitly by an action */
+
+  if (yyerrstatus == 3)
+    {
+      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
+
+      /* return failure if at end of input */
+      if (yychar == YYEOF)
+	YYABORT;
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
+
+      yychar = YYEMPTY;
+    }
+
+  /* Else will try to reuse lookahead token
+     after shifting the error token.  */
+
+  yyerrstatus = 3;		/* Each real token shifted decrements this */
+
+  goto yyerrhandle;
+
+yyerrdefault:  /* current state does not do anything special for the error token. */
+
+#if 0
+  /* This is wrong; only states that explicitly want error tokens
+     should shift them.  */
+  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
+  if (yyn) goto yydefault;
+#endif
+
+yyerrpop:   /* pop the current state because it cannot handle the error token */
+
+  if (yyssp == yyss) YYABORT;
+  yyvsp--;
+  yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+  yylsp--;
+#endif
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "Error: state stack now");
+      while (ssp1 != yyssp)
+	fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
+
+yyerrhandle:
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yyerrdefault;
+
+  yyn += YYTERROR;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+    goto yyerrdefault;
+
+  yyn = yytable[yyn];
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+	goto yyerrpop;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+  else if (yyn == 0)
+    goto yyerrpop;
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting error token, ");
+#endif
+
+  *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
+
+  yystate = yyn;
+  goto yynewstate;
+}
+#line 117 "bi-parser.y"
+
+
+static struct node *
+makenode (s)
+     char *s;
+{
+  struct node *n;
+
+  n = (struct node *) malloc (sizeof (struct node));
+  n->text = s;
+  n->next = NULL;
+  return n;
+}
+
+static struct variation *
+makevar (name, inputs, outputs, literals)
+     char *name;
+     struct node *inputs, *outputs, *literals;
+{
+  struct variation *v;
+
+  v = (struct variation *) malloc (sizeof (struct variation));
+  v->name = name;
+  v->code = ndefs++;
+  v->inputs = inputs;
+  v->outputs = outputs;
+  v->literals = literals;
+  v->next = NULL;
+  return v;
+}
+
+static struct def *
+makedef (name, template, vars)
+     char *name, *template;
+     struct variation *vars;
+{
+  struct def *d;
+
+  d = (struct def *) malloc (sizeof (struct def));
+  d->basename = name;
+  d->template = template;
+  d->variations = vars;
+  d->next = NULL;
+  return d;
+}
+
+void
+yyerror (s)
+     char *s;
+{
+  fprintf (stderr, "syntax error in input\n");
+  exit (FATAL_EXIT_CODE);
+}
diff --git a/gcc/bi-parser.h b/gcc/bi-parser.h
new file mode 100644
index 0000000..5beb862
--- /dev/null
+++ b/gcc/bi-parser.h
@@ -0,0 +1,12 @@
+typedef union
+{
+  char *string;
+  struct def *def;
+  struct variation *variation;
+  struct node *node;
+} YYSTYPE;
+#define	DEFOP	258
+#define	STRING	259
+
+
+extern YYSTYPE yylval;
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 125f0f4..b556d08 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -4339,7 +4339,7 @@
 
   /* Long double is a special combination.  */
 
-  if ((specbits & 1 << (int) RID_LONG)
+  if ((specbits & 1 << (int) RID_LONG) && ! longlong
       && TYPE_MAIN_VARIANT (type) == double_type_node)
     {
       specbits &= ~ (1 << (int) RID_LONG);
@@ -4353,11 +4353,9 @@
     {
       int ok = 0;
 
-      if (TREE_CODE (type) != INTEGER_TYPE)
-	error ("long, short, signed or unsigned invalid for `%s'", name);
-      else if ((specbits & 1 << (int) RID_LONG)
-	       && (specbits & 1 << (int) RID_SHORT))
-	error ("long and short specified together for `%s'", name);
+      if ((specbits & 1 << (int) RID_LONG)
+	  && (specbits & 1 << (int) RID_SHORT))
+	error ("both long and short specified for `%s'", name);
       else if (((specbits & 1 << (int) RID_LONG)
 		|| (specbits & 1 << (int) RID_SHORT))
 	       && explicit_char)
@@ -4365,10 +4363,21 @@
       else if (((specbits & 1 << (int) RID_LONG)
 		|| (specbits & 1 << (int) RID_SHORT))
 	       && TREE_CODE (type) == REAL_TYPE)
-	error ("long or short specified with floating type for `%s'", name);
+	{
+	  static int already = 0;
+
+	  error ("long or short specified with floating type for `%s'", name);
+	  if (! already && ! pedantic)
+	    {
+	      error ("the only valid combination is `long double'");
+	      already = 1;
+	    }
+	}
       else if ((specbits & 1 << (int) RID_SIGNED)
 	       && (specbits & 1 << (int) RID_UNSIGNED))
-	error ("signed and unsigned given together for `%s'", name);
+	error ("both signed and unsigned specified for `%s'", name);
+      else if (TREE_CODE (type) != INTEGER_TYPE)
+	error ("long, short, signed or unsigned invalid for `%s'", name);
       else
 	{
 	  ok = 1;
diff --git a/gcc/c-gperf.h b/gcc/c-gperf.h
new file mode 100644
index 0000000..361b9d9
--- /dev/null
+++ b/gcc/c-gperf.h
@@ -0,0 +1,186 @@
+/* C code produced by gperf version 2.5 (GNU C++ version) */
+/* Command-line: gperf -p -j1 -i 1 -g -o -t -G -N is_reserved_word -k1,3,$ ./c-parse.gperf  */
+/* Command-line: gperf -p -j1 -i 1 -g -o -t -N is_reserved_word -k1,3,$ c-parse.gperf  */ 
+struct resword { char *name; short token; enum rid rid; };
+
+#define TOTAL_KEYWORDS 79
+#define MIN_WORD_LENGTH 2
+#define MAX_WORD_LENGTH 20
+#define MIN_HASH_VALUE 10
+#define MAX_HASH_VALUE 144
+/* maximum key range = 135, duplicates = 0 */
+
+#ifdef __GNUC__
+inline
+#endif
+static unsigned int
+hash (str, len)
+     register char *str;
+     register int unsigned len;
+{
+  static unsigned char asso_values[] =
+    {
+     145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+     145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+     145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+     145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+     145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+     145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+     145, 145, 145, 145,  25, 145, 145, 145, 145, 145,
+     145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+     145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+     145, 145, 145, 145, 145,   1, 145,  46,   8,  15,
+      61,   6,  36,  48,   3,   5, 145,  18,  63,  25,
+      29,  76,   1, 145,  13,   2,   1,  51,  37,   9,
+       9,   1,   3, 145, 145, 145, 145, 145,
+    };
+  register int hval = len;
+
+  switch (hval)
+    {
+      default:
+      case 3:
+        hval += asso_values[str[2]];
+      case 2:
+      case 1:
+        hval += asso_values[str[0]];
+        break;
+    }
+  return hval + asso_values[str[len - 1]];
+}
+
+static struct resword wordlist[] =
+{
+      {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, 
+      {"",}, 
+      {"int",  TYPESPEC, RID_INT},
+      {"",}, {"",}, 
+      {"__typeof__",  TYPEOF, NORID},
+      {"__signed__",  TYPESPEC, RID_SIGNED},
+      {"__imag__",  IMAGPART, NORID},
+      {"switch",  SWITCH, NORID},
+      {"__inline__",  SCSPEC, RID_INLINE},
+      {"else",  ELSE, NORID},
+      {"__iterator__",  SCSPEC, RID_ITERATOR},
+      {"__inline",  SCSPEC, RID_INLINE},
+      {"__extension__",  EXTENSION, NORID},
+      {"struct",  STRUCT, NORID},
+      {"__real__",  REALPART, NORID},
+      {"__const",  TYPE_QUAL, RID_CONST},
+      {"while",  WHILE, NORID},
+      {"__const__",  TYPE_QUAL, RID_CONST},
+      {"case",  CASE, NORID},
+      {"__complex__",  TYPESPEC, RID_COMPLEX},
+      {"__iterator",  SCSPEC, RID_ITERATOR},
+      {"bycopy",  TYPE_QUAL, RID_BYCOPY},
+      {"",}, {"",}, {"",}, 
+      {"__complex",  TYPESPEC, RID_COMPLEX},
+      {"",}, 
+      {"in",  TYPE_QUAL, RID_IN},
+      {"break",  BREAK, NORID},
+      {"@defs",  DEFS, NORID},
+      {"",}, {"",}, {"",}, 
+      {"extern",  SCSPEC, RID_EXTERN},
+      {"if",  IF, NORID},
+      {"typeof",  TYPEOF, NORID},
+      {"typedef",  SCSPEC, RID_TYPEDEF},
+      {"__typeof",  TYPEOF, NORID},
+      {"sizeof",  SIZEOF, NORID},
+      {"",}, 
+      {"return",  RETURN, NORID},
+      {"const",  TYPE_QUAL, RID_CONST},
+      {"__volatile__",  TYPE_QUAL, RID_VOLATILE},
+      {"@private",  PRIVATE, NORID},
+      {"@selector",  SELECTOR, NORID},
+      {"__volatile",  TYPE_QUAL, RID_VOLATILE},
+      {"__asm__",  ASM_KEYWORD, NORID},
+      {"",}, {"",}, 
+      {"continue",  CONTINUE, NORID},
+      {"__alignof__",  ALIGNOF, NORID},
+      {"__imag",  IMAGPART, NORID},
+      {"__attribute__",  ATTRIBUTE, NORID},
+      {"",}, {"",}, 
+      {"__attribute",  ATTRIBUTE, NORID},
+      {"for",  FOR, NORID},
+      {"",}, 
+      {"@encode",  ENCODE, NORID},
+      {"id",  OBJECTNAME, RID_ID},
+      {"static",  SCSPEC, RID_STATIC},
+      {"@interface",  INTERFACE, NORID},
+      {"",}, 
+      {"__signed",  TYPESPEC, RID_SIGNED},
+      {"",}, 
+      {"__label__",  LABEL, NORID},
+      {"",}, {"",}, 
+      {"__asm",  ASM_KEYWORD, NORID},
+      {"char",  TYPESPEC, RID_CHAR},
+      {"",}, 
+      {"inline",  SCSPEC, RID_INLINE},
+      {"out",  TYPE_QUAL, RID_OUT},
+      {"register",  SCSPEC, RID_REGISTER},
+      {"__real",  REALPART, NORID},
+      {"short",  TYPESPEC, RID_SHORT},
+      {"",}, 
+      {"enum",  ENUM, NORID},
+      {"inout",  TYPE_QUAL, RID_INOUT},
+      {"",}, 
+      {"oneway",  TYPE_QUAL, RID_ONEWAY},
+      {"union",  UNION, NORID},
+      {"",}, 
+      {"__alignof",  ALIGNOF, NORID},
+      {"",}, 
+      {"@implementation",  IMPLEMENTATION, NORID},
+      {"",}, 
+      {"@class",  CLASS, NORID},
+      {"",}, 
+      {"@public",  PUBLIC, NORID},
+      {"asm",  ASM_KEYWORD, NORID},
+      {"",}, {"",}, {"",}, {"",}, {"",}, 
+      {"default",  DEFAULT, NORID},
+      {"",}, 
+      {"void",  TYPESPEC, RID_VOID},
+      {"",}, 
+      {"@protected",  PROTECTED, NORID},
+      {"@protocol",  PROTOCOL, NORID},
+      {"",}, {"",}, {"",}, 
+      {"volatile",  TYPE_QUAL, RID_VOLATILE},
+      {"",}, {"",}, 
+      {"signed",  TYPESPEC, RID_SIGNED},
+      {"float",  TYPESPEC, RID_FLOAT},
+      {"@end",  END, NORID},
+      {"",}, {"",}, 
+      {"unsigned",  TYPESPEC, RID_UNSIGNED},
+      {"@compatibility_alias",  ALIAS, NORID},
+      {"double",  TYPESPEC, RID_DOUBLE},
+      {"",}, {"",}, 
+      {"auto",  SCSPEC, RID_AUTO},
+      {"",}, 
+      {"goto",  GOTO, NORID},
+      {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, 
+      {"do",  DO, NORID},
+      {"",}, {"",}, {"",}, {"",}, 
+      {"long",  TYPESPEC, RID_LONG},
+};
+
+#ifdef __GNUC__
+inline
+#endif
+struct resword *
+is_reserved_word (str, len)
+     register char *str;
+     register unsigned int len;
+{
+  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+    {
+      register int key = hash (str, len);
+
+      if (key <= MAX_HASH_VALUE && key >= 0)
+        {
+          register char *s = wordlist[key].name;
+
+          if (*s == *str && !strcmp (str + 1, s + 1))
+            return &wordlist[key];
+        }
+    }
+  return 0;
+}
diff --git a/gcc/c-parse.c b/gcc/c-parse.c
new file mode 100644
index 0000000..0c6f3d2
--- /dev/null
+++ b/gcc/c-parse.c
@@ -0,0 +1,3859 @@
+
+/*  A Bison parser, made from c-parse.y with Bison version GNU Bison version 1.24
+  */
+
+#define YYBISON 1  /* Identify Bison output.  */
+
+#define	IDENTIFIER	258
+#define	TYPENAME	259
+#define	SCSPEC	260
+#define	TYPESPEC	261
+#define	TYPE_QUAL	262
+#define	CONSTANT	263
+#define	STRING	264
+#define	ELLIPSIS	265
+#define	SIZEOF	266
+#define	ENUM	267
+#define	STRUCT	268
+#define	UNION	269
+#define	IF	270
+#define	ELSE	271
+#define	WHILE	272
+#define	DO	273
+#define	FOR	274
+#define	SWITCH	275
+#define	CASE	276
+#define	DEFAULT	277
+#define	BREAK	278
+#define	CONTINUE	279
+#define	RETURN	280
+#define	GOTO	281
+#define	ASM_KEYWORD	282
+#define	TYPEOF	283
+#define	ALIGNOF	284
+#define	ATTRIBUTE	285
+#define	EXTENSION	286
+#define	LABEL	287
+#define	REALPART	288
+#define	IMAGPART	289
+#define	ASSIGN	290
+#define	OROR	291
+#define	ANDAND	292
+#define	EQCOMPARE	293
+#define	ARITHCOMPARE	294
+#define	LSHIFT	295
+#define	RSHIFT	296
+#define	UNARY	297
+#define	PLUSPLUS	298
+#define	MINUSMINUS	299
+#define	HYPERUNARY	300
+#define	POINTSAT	301
+#define	INTERFACE	302
+#define	IMPLEMENTATION	303
+#define	END	304
+#define	SELECTOR	305
+#define	DEFS	306
+#define	ENCODE	307
+#define	CLASSNAME	308
+#define	PUBLIC	309
+#define	PRIVATE	310
+#define	PROTECTED	311
+#define	PROTOCOL	312
+#define	OBJECTNAME	313
+#define	CLASS	314
+#define	ALIAS	315
+#define	OBJC_STRING	316
+
+#line 56 "c-parse.y"
+
+#include <stdio.h>
+#include <errno.h>
+#include <setjmp.h>
+
+#include "config.h"
+#include "tree.h"
+#include "input.h"
+#include "c-lex.h"
+#include "c-tree.h"
+#include "flags.h"
+
+#ifdef MULTIBYTE_CHARS
+#include <stdlib.h>
+#include <locale.h>
+#endif
+
+
+/* Since parsers are distinct for each language, put the language string
+   definition here.  */
+char *language_string = "GNU C";
+
+#ifndef errno
+extern int errno;
+#endif
+
+void yyerror ();
+
+/* Like YYERROR but do call yyerror.  */
+#define YYERROR1 { yyerror ("syntax error"); YYERROR; }
+
+/* Cause the `yydebug' variable to be defined.  */
+#define YYDEBUG 1
+
+#line 93 "c-parse.y"
+typedef union {long itype; tree ttype; enum tree_code code;
+	char *filename; int lineno; int ends_in_label; } YYSTYPE;
+#line 209 "c-parse.y"
+
+/* Number of statements (loosely speaking) seen so far.  */
+static int stmt_count;
+
+/* Input file and line number of the end of the body of last simple_if;
+   used by the stmt-rule immediately after simple_if returns.  */
+static char *if_stmt_file;
+static int if_stmt_line;
+
+/* List of types and structure classes of the current declaration.  */
+static tree current_declspecs = NULL_TREE;
+static tree prefix_attributes = NULL_TREE;
+
+/* Stack of saved values of current_declspecs and prefix_attributes.  */
+static tree declspec_stack;
+
+/* 1 if we explained undeclared var errors.  */
+static int undeclared_variable_notice;
+
+
+/* Tell yyparse how to print a token's value, if yydebug is set.  */
+
+#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
+extern void yyprint ();
+
+#ifndef YYLTYPE
+typedef
+  struct yyltype
+    {
+      int timestamp;
+      int first_line;
+      int first_column;
+      int last_line;
+      int last_column;
+      char *text;
+   }
+  yyltype;
+
+#define YYLTYPE yyltype
+#endif
+
+#include <stdio.h>
+
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
+
+
+
+#define	YYFINAL		681
+#define	YYFLAG		-32768
+#define	YYNTBASE	84
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 238)
+
+static const char yytranslate[] = {     0,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,    80,     2,     2,     2,    52,    43,     2,    59,
+    76,    50,    48,    81,    49,    58,    51,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,    38,    77,     2,
+    36,     2,    37,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+    60,     2,    83,    42,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,    82,    41,    78,    79,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
+     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
+    39,    40,    44,    45,    46,    47,    53,    54,    55,    56,
+    57,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+    70,    71,    72,    73,    74,    75
+};
+
+#if YYDEBUG != 0
+static const short yyprhs[] = {     0,
+     0,     1,     3,     4,     7,     8,    12,    14,    16,    22,
+    25,    29,    34,    39,    42,    45,    48,    51,    53,    54,
+    55,    63,    68,    69,    70,    78,    83,    84,    85,    92,
+    96,    98,   100,   102,   104,   106,   108,   110,   112,   114,
+   116,   117,   119,   121,   125,   127,   130,   133,   136,   139,
+   142,   147,   150,   155,   158,   161,   163,   165,   167,   172,
+   173,   181,   183,   187,   191,   195,   199,   203,   207,   211,
+   215,   219,   223,   227,   231,   232,   237,   238,   243,   244,
+   245,   253,   254,   260,   264,   268,   270,   272,   274,   278,
+   282,   283,   288,   293,   298,   302,   306,   309,   312,   314,
+   317,   318,   320,   323,   327,   329,   331,   334,   337,   342,
+   347,   350,   353,   357,   359,   361,   364,   367,   368,   369,
+   374,   379,   383,   387,   390,   393,   396,   399,   403,   404,
+   407,   410,   413,   416,   420,   421,   424,   427,   429,   431,
+   434,   437,   439,   441,   444,   447,   450,   454,   455,   458,
+   460,   462,   464,   469,   474,   476,   478,   480,   482,   486,
+   488,   492,   493,   498,   499,   506,   510,   511,   518,   522,
+   523,   525,   527,   530,   537,   539,   543,   544,   546,   551,
+   558,   563,   565,   567,   569,   571,   573,   574,   579,   581,
+   582,   585,   587,   591,   593,   594,   599,   601,   602,   611,
+   612,   619,   620,   626,   627,   632,   633,   639,   640,   641,
+   647,   648,   649,   655,   657,   659,   663,   667,   672,   676,
+   680,   684,   686,   690,   695,   699,   703,   707,   709,   713,
+   717,   721,   726,   730,   734,   736,   737,   745,   751,   754,
+   755,   763,   769,   772,   773,   782,   783,   791,   794,   795,
+   797,   798,   800,   802,   805,   806,   810,   813,   817,   819,
+   823,   825,   827,   830,   832,   836,   841,   848,   854,   856,
+   860,   862,   864,   868,   871,   874,   875,   877,   879,   882,
+   883,   886,   890,   894,   897,   901,   906,   910,   913,   917,
+   920,   922,   924,   927,   930,   931,   933,   936,   937,   938,
+   940,   942,   945,   949,   951,   954,   957,   964,   970,   976,
+   979,   982,   987,   988,   993,   994,   995,   999,  1004,  1008,
+  1010,  1012,  1014,  1016,  1019,  1020,  1025,  1027,  1031,  1032,
+  1033,  1041,  1047,  1050,  1051,  1052,  1053,  1066,  1067,  1074,
+  1077,  1080,  1083,  1087,  1094,  1103,  1114,  1127,  1131,  1136,
+  1138,  1140,  1141,  1148,  1152,  1158,  1161,  1164,  1165,  1167,
+  1168,  1170,  1171,  1173,  1175,  1179,  1184,  1186,  1190,  1191,
+  1194,  1197,  1198,  1203,  1206,  1207,  1209,  1211,  1215,  1217,
+  1221,  1226,  1231,  1236,  1241,  1246,  1247,  1250,  1252,  1255,
+  1257,  1261,  1263,  1267
+};
+
+static const short yyrhs[] = {    -1,
+    85,     0,     0,    86,    88,     0,     0,    85,    87,    88,
+     0,    90,     0,    89,     0,    27,    59,    99,    76,    77,
+     0,   237,    88,     0,   122,   136,    77,     0,   129,   122,
+   136,    77,     0,   125,   122,   135,    77,     0,   129,    77,
+     0,   125,    77,     0,     1,    77,     0,     1,    78,     0,
+    77,     0,     0,     0,   125,   122,   165,    91,   116,    92,
+   196,     0,   125,   122,   165,     1,     0,     0,     0,   129,
+   122,   168,    93,   116,    94,   196,     0,   129,   122,   168,
+     1,     0,     0,     0,   122,   168,    95,   116,    96,   196,
+     0,   122,   168,     1,     0,     3,     0,     4,     0,    43,
+     0,    49,     0,    48,     0,    54,     0,    55,     0,    79,
+     0,    80,     0,   101,     0,     0,   101,     0,   107,     0,
+   101,    81,   107,     0,   113,     0,    50,   105,     0,   237,
+   105,     0,    98,   105,     0,    40,    97,     0,   103,   102,
+     0,   103,    59,   183,    76,     0,   104,   102,     0,   104,
+    59,   183,    76,     0,    33,   105,     0,    34,   105,     0,
+    11,     0,    29,     0,   102,     0,    59,   183,    76,   105,
+     0,     0,    59,   183,    76,    82,   106,   150,    78,     0,
+   105,     0,   107,    48,   107,     0,   107,    49,   107,     0,
+   107,    50,   107,     0,   107,    51,   107,     0,   107,    52,
+   107,     0,   107,    46,   107,     0,   107,    47,   107,     0,
+   107,    45,   107,     0,   107,    44,   107,     0,   107,    43,
+   107,     0,   107,    41,   107,     0,   107,    42,   107,     0,
+     0,   107,    40,   108,   107,     0,     0,   107,    39,   109,
+   107,     0,     0,     0,   107,    37,   110,    99,    38,   111,
+   107,     0,     0,   107,    37,   112,    38,   107,     0,   107,
+    36,   107,     0,   107,    35,   107,     0,     3,     0,     8,
+     0,   115,     0,    59,    99,    76,     0,    59,     1,    76,
+     0,     0,    59,   114,   197,    76,     0,   113,    59,   100,
+    76,     0,   113,    60,    99,    83,     0,   113,    58,    97,
+     0,   113,    57,    97,     0,   113,    54,     0,   113,    55,
+     0,     9,     0,   115,     9,     0,     0,   118,     0,   118,
+    10,     0,   202,   203,   119,     0,   117,     0,   191,     0,
+   118,   117,     0,   117,   191,     0,   127,   122,   135,    77,
+     0,   130,   122,   136,    77,     0,   127,    77,     0,   130,
+    77,     0,   202,   203,   124,     0,   120,     0,   191,     0,
+   121,   120,     0,   120,   191,     0,     0,     0,   125,   122,
+   135,    77,     0,   129,   122,   136,    77,     0,   125,   122,
+   159,     0,   129,   122,   162,     0,   125,    77,     0,   129,
+    77,     0,   237,   124,     0,   133,   126,     0,   129,   133,
+   126,     0,     0,   126,   134,     0,   126,     5,     0,   126,
+   143,     0,   133,   128,     0,   130,   133,   128,     0,     0,
+   128,   134,     0,   128,     5,     0,   130,     0,   143,     0,
+   129,   130,     0,   129,   143,     0,     7,     0,     5,     0,
+   130,     7,     0,   130,     5,     0,   133,   132,     0,   185,
+   133,   132,     0,     0,   132,   134,     0,     6,     0,   169,
+     0,     4,     0,    28,    59,    99,    76,     0,    28,    59,
+   183,    76,     0,     6,     0,     7,     0,   169,     0,   138,
+     0,   135,    81,   138,     0,   140,     0,   136,    81,   138,
+     0,     0,    27,    59,   115,    76,     0,     0,   165,   137,
+   142,    36,   139,   148,     0,   165,   137,   142,     0,     0,
+   168,   137,   142,    36,   141,   148,     0,   168,   137,   142,
+     0,     0,   143,     0,   144,     0,   143,   144,     0,    30,
+    59,    59,   145,    76,    76,     0,   146,     0,   145,    81,
+   146,     0,     0,   147,     0,   147,    59,     3,    76,     0,
+   147,    59,     3,    81,   101,    76,     0,   147,    59,   100,
+    76,     0,    97,     0,     5,     0,     6,     0,     7,     0,
+   107,     0,     0,    82,   149,   150,    78,     0,     1,     0,
+     0,   151,   174,     0,   152,     0,   151,    81,   152,     0,
+   107,     0,     0,    82,   153,   150,    78,     0,     1,     0,
+     0,    60,   107,    10,   107,    83,    36,   154,   152,     0,
+     0,    60,   107,    83,    36,   155,   152,     0,     0,    60,
+   107,    83,   156,   152,     0,     0,    97,    38,   157,   152,
+     0,     0,    58,    97,    36,   158,   152,     0,     0,     0,
+   165,   160,   116,   161,   197,     0,     0,     0,   168,   163,
+   116,   164,   197,     0,   166,     0,   168,     0,    59,   166,
+    76,     0,   166,    59,   232,     0,   166,    60,    99,    83,
+     0,   166,    60,    83,     0,    50,   186,   166,     0,   143,
+   123,   166,     0,     4,     0,   167,    59,   232,     0,   167,
+    60,    99,    83,     0,   167,    60,    83,     0,    50,   186,
+   167,     0,   143,   123,   167,     0,     4,     0,   168,    59,
+   232,     0,    59,   168,    76,     0,    50,   186,   168,     0,
+   168,    60,    99,    83,     0,   168,    60,    83,     0,   143,
+   123,   168,     0,     3,     0,     0,    13,    97,    82,   170,
+   176,    78,   142,     0,    13,    82,   176,    78,   142,     0,
+    13,    97,     0,     0,    14,    97,    82,   171,   176,    78,
+   142,     0,    14,    82,   176,    78,   142,     0,    14,    97,
+     0,     0,    12,    97,    82,   172,   181,   175,    78,   142,
+     0,     0,    12,    82,   173,   181,   175,    78,   142,     0,
+    12,    97,     0,     0,    81,     0,     0,    81,     0,   177,
+     0,   177,   178,     0,     0,   177,   178,    77,     0,   177,
+    77,     0,   131,   122,   179,     0,   131,     0,   185,   122,
+   179,     0,   185,     0,     1,     0,   237,   178,     0,   180,
+     0,   179,    81,   180,     0,   202,   203,   165,   142,     0,
+   202,   203,   165,    38,   107,   142,     0,   202,   203,    38,
+   107,   142,     0,   182,     0,   181,    81,   182,     0,     1,
+     0,    97,     0,    97,    36,   107,     0,   131,   184,     0,
+   185,   184,     0,     0,   187,     0,     7,     0,   185,     7,
+     0,     0,   186,     7,     0,    59,   187,    76,     0,    50,
+   186,   187,     0,    50,   186,     0,   187,    59,   225,     0,
+   187,    60,    99,    83,     0,   187,    60,    83,     0,    59,
+   225,     0,    60,    99,    83,     0,    60,    83,     0,   189,
+     0,   205,     0,   189,   205,     0,   189,   191,     0,     0,
+   188,     0,     1,    77,     0,     0,     0,   194,     0,   195,
+     0,   194,   195,     0,    32,   236,    77,     0,   197,     0,
+     1,   197,     0,    82,    78,     0,    82,   192,   193,   121,
+   190,    78,     0,    82,   192,   193,     1,    78,     0,    82,
+   192,   193,   188,    78,     0,   199,   204,     0,   199,     1,
+     0,    15,    59,    99,    76,     0,     0,    18,   201,   204,
+    17,     0,     0,     0,   202,   203,   207,     0,   202,   203,
+   218,   204,     0,   202,   203,   206,     0,   207,     0,   218,
+     0,   197,     0,   215,     0,    99,    77,     0,     0,   198,
+    16,   208,   204,     0,   198,     0,   198,    16,     1,     0,
+     0,     0,    17,   209,    59,    99,    76,   210,   204,     0,
+   200,    59,    99,    76,    77,     0,   200,     1,     0,     0,
+     0,     0,    19,    59,   220,    77,   211,   220,    77,   212,
+   220,    76,   213,   204,     0,     0,    20,    59,    99,    76,
+   214,   204,     0,    23,    77,     0,    24,    77,     0,    25,
+    77,     0,    25,    99,    77,     0,    27,   219,    59,    99,
+    76,    77,     0,    27,   219,    59,    99,    38,   221,    76,
+    77,     0,    27,   219,    59,    99,    38,   221,    38,   221,
+    76,    77,     0,    27,   219,    59,    99,    38,   221,    38,
+   221,    38,   224,    76,    77,     0,    26,    97,    77,     0,
+    26,    50,    99,    77,     0,    77,     0,   216,     0,     0,
+    19,    59,   113,    76,   217,   204,     0,    21,   107,    38,
+     0,    21,   107,    10,   107,    38,     0,    22,    38,     0,
+    97,    38,     0,     0,     7,     0,     0,    99,     0,     0,
+   222,     0,   223,     0,   222,    81,   223,     0,     9,    59,
+    99,    76,     0,   115,     0,   224,    81,   115,     0,     0,
+   226,   227,     0,   229,    76,     0,     0,   230,    77,   228,
+   227,     0,     1,    76,     0,     0,    10,     0,   230,     0,
+   230,    81,    10,     0,   231,     0,   230,    81,   231,     0,
+   125,   122,   167,   142,     0,   125,   122,   168,   142,     0,
+   125,   122,   184,   142,     0,   129,   122,   168,   142,     0,
+   129,   122,   184,   142,     0,     0,   233,   234,     0,   227,
+     0,   235,    76,     0,     3,     0,   235,    81,     3,     0,
+    97,     0,   236,    81,    97,     0,    31,     0
+};
+
+#endif
+
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+   236,   241,   255,   257,   257,   258,   260,   262,   263,   271,
+   275,   286,   291,   296,   298,   300,   301,   302,   307,   314,
+   316,   321,   326,   332,   334,   339,   344,   350,   352,   357,
+   364,   366,   369,   371,   373,   375,   377,   379,   381,   385,
+   389,   392,   395,   398,   402,   404,   407,   410,   414,   442,
+   448,   451,   454,   457,   459,   463,   467,   471,   473,   476,
+   480,   507,   509,   511,   513,   515,   517,   519,   521,   523,
+   525,   527,   529,   531,   533,   537,   539,   543,   545,   548,
+   552,   554,   561,   564,   567,   573,   672,   673,   675,   681,
+   683,   697,   720,   722,   724,   728,   734,   736,   741,   743,
+   748,   750,   751,   761,   766,   768,   769,   770,   777,   783,
+   788,   791,   799,   804,   806,   807,   808,   815,   826,   830,
+   836,   841,   846,   851,   853,   855,   864,   867,   871,   873,
+   875,   880,   884,   887,   891,   894,   896,   908,   911,   913,
+   915,   919,   923,   925,   928,   941,   944,   948,   950,   958,
+   959,   960,   964,   966,   972,   973,   974,   977,   979,   982,
+   984,   987,   990,   996,  1003,  1005,  1012,  1019,  1022,  1029,
+  1032,  1036,  1039,  1043,  1048,  1051,  1055,  1058,  1060,  1062,
+  1064,  1071,  1073,  1074,  1075,  1080,  1082,  1087,  1095,  1100,
+  1104,  1107,  1109,  1114,  1117,  1119,  1121,  1125,  1128,  1128,
+  1131,  1131,  1134,  1134,  1137,  1137,  1140,  1142,  1153,  1161,
+  1165,  1176,  1184,  1191,  1193,  1198,  1201,  1206,  1208,  1210,
+  1217,  1219,  1227,  1233,  1235,  1237,  1244,  1246,  1252,  1258,
+  1260,  1262,  1264,  1271,  1273,  1276,  1281,  1283,  1287,  1289,
+  1291,  1293,  1297,  1299,  1302,  1305,  1308,  1311,  1315,  1317,
+  1320,  1322,  1326,  1329,  1334,  1336,  1338,  1352,  1359,  1364,
+  1370,  1375,  1377,  1382,  1384,  1388,  1392,  1396,  1406,  1408,
+  1413,  1418,  1421,  1425,  1428,  1432,  1435,  1438,  1441,  1445,
+  1448,  1452,  1456,  1458,  1460,  1462,  1464,  1466,  1468,  1470,
+  1480,  1488,  1490,  1492,  1496,  1498,  1501,  1504,  1515,  1517,
+  1522,  1524,  1527,  1541,  1544,  1547,  1549,  1557,  1565,  1576,
+  1581,  1584,  1597,  1605,  1609,  1613,  1617,  1623,  1627,  1632,
+  1635,  1640,  1643,  1644,  1661,  1666,  1669,  1681,  1683,  1693,
+  1703,  1704,  1712,  1715,  1727,  1731,  1748,  1758,  1767,  1772,
+  1777,  1782,  1786,  1790,  1801,  1808,  1815,  1822,  1833,  1839,
+  1842,  1847,  1870,  1904,  1929,  1960,  1975,  1986,  1990,  1994,
+  1997,  2002,  2004,  2007,  2009,  2013,  2018,  2021,  2027,  2032,
+  2037,  2039,  2048,  2049,  2055,  2057,  2067,  2069,  2073,  2076,
+  2082,  2092,  2101,  2110,  2120,  2134,  2139,  2144,  2146,  2155,
+  2158,  2163,  2166,  2170
+};
+
+static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER",
+"TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
+"ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
+"BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
+"EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
+"ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
+"'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
+"'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
+"CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
+"OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
+"@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
+"unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
+"cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
+"string","old_style_parm_decls","lineno_datadecl","datadecls","datadecl","lineno_decl",
+"decls","setspecs","setattrs","decl","typed_declspecs","reserved_declspecs",
+"typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr","declmods",
+"declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals","typespec",
+"typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl",
+"@16","notype_initdcl","@17","maybe_attribute","attributes","attribute","attribute_list",
+"attrib","any_word","init","@18","initlist_maybe_comma","initlist1","initelt",
+"@19","@20","@21","@22","@23","@24","nested_function","@25","@26","notype_nested_function",
+"@27","@28","declarator","after_type_declarator","parm_declarator","notype_declarator",
+"structsp","@29","@30","@31","@32","maybecomma","maybecomma_warn","component_decl_list",
+"component_decl_list2","component_decl","components","component_declarator",
+"enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
+"absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
+"label_decls","label_decl","compstmt_or_error","compstmt","simple_if","if_prefix",
+"do_stmt_start","@33","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
+"stmt_or_label","stmt","@34","@35","@36","@37","@38","@39","@40","all_iter_stmt",
+"all_iter_stmt_simple","@41","label","maybe_type_qual","xexpr","asm_operands",
+"nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@42","parmlist_1",
+"@43","parmlist_2","parms","parm","parmlist_or_identifiers","@44","parmlist_or_identifiers_1",
+"identifiers","identifiers_or_typenames","extension",""
+};
+#endif
+
+static const short yyr1[] = {     0,
+    84,    84,    86,    85,    87,    85,    88,    88,    88,    88,
+    89,    89,    89,    89,    89,    89,    89,    89,    91,    92,
+    90,    90,    93,    94,    90,    90,    95,    96,    90,    90,
+    97,    97,    98,    98,    98,    98,    98,    98,    98,    99,
+   100,   100,   101,   101,   102,   102,   102,   102,   102,   102,
+   102,   102,   102,   102,   102,   103,   104,   105,   105,   106,
+   105,   107,   107,   107,   107,   107,   107,   107,   107,   107,
+   107,   107,   107,   107,   108,   107,   109,   107,   110,   111,
+   107,   112,   107,   107,   107,   113,   113,   113,   113,   113,
+   114,   113,   113,   113,   113,   113,   113,   113,   115,   115,
+   116,   116,   116,   117,   118,   118,   118,   118,   119,   119,
+   119,   119,   120,   121,   121,   121,   121,   122,   123,   124,
+   124,   124,   124,   124,   124,   124,   125,   125,   126,   126,
+   126,   126,   127,   127,   128,   128,   128,   129,   129,   129,
+   129,   130,   130,   130,   130,   131,   131,   132,   132,   133,
+   133,   133,   133,   133,   134,   134,   134,   135,   135,   136,
+   136,   137,   137,   139,   138,   138,   141,   140,   140,   142,
+   142,   143,   143,   144,   145,   145,   146,   146,   146,   146,
+   146,   147,   147,   147,   147,   148,   149,   148,   148,   150,
+   150,   151,   151,   152,   153,   152,   152,   154,   152,   155,
+   152,   156,   152,   157,   152,   158,   152,   160,   161,   159,
+   163,   164,   162,   165,   165,   166,   166,   166,   166,   166,
+   166,   166,   167,   167,   167,   167,   167,   167,   168,   168,
+   168,   168,   168,   168,   168,   170,   169,   169,   169,   171,
+   169,   169,   169,   172,   169,   173,   169,   169,   174,   174,
+   175,   175,   176,   176,   177,   177,   177,   178,   178,   178,
+   178,   178,   178,   179,   179,   180,   180,   180,   181,   181,
+   181,   182,   182,   183,   183,   184,   184,   185,   185,   186,
+   186,   187,   187,   187,   187,   187,   187,   187,   187,   187,
+   188,   189,   189,   189,   190,   190,   191,   192,   193,   193,
+   194,   194,   195,   196,   196,   197,   197,   197,   197,   198,
+   198,   199,   201,   200,   202,   203,   204,   204,   205,   206,
+   206,   207,   207,   207,   208,   207,   207,   207,   209,   210,
+   207,   207,   207,   211,   212,   213,   207,   214,   207,   207,
+   207,   207,   207,   207,   207,   207,   207,   207,   207,   207,
+   215,   217,   216,   218,   218,   218,   218,   219,   219,   220,
+   220,   221,   221,   222,   222,   223,   224,   224,   226,   225,
+   227,   228,   227,   227,   229,   229,   229,   229,   230,   230,
+   231,   231,   231,   231,   231,   233,   232,   234,   234,   235,
+   235,   236,   236,   237
+};
+
+static const short yyr2[] = {     0,
+     0,     1,     0,     2,     0,     3,     1,     1,     5,     2,
+     3,     4,     4,     2,     2,     2,     2,     1,     0,     0,
+     7,     4,     0,     0,     7,     4,     0,     0,     6,     3,
+     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+     0,     1,     1,     3,     1,     2,     2,     2,     2,     2,
+     4,     2,     4,     2,     2,     1,     1,     1,     4,     0,
+     7,     1,     3,     3,     3,     3,     3,     3,     3,     3,
+     3,     3,     3,     3,     0,     4,     0,     4,     0,     0,
+     7,     0,     5,     3,     3,     1,     1,     1,     3,     3,
+     0,     4,     4,     4,     3,     3,     2,     2,     1,     2,
+     0,     1,     2,     3,     1,     1,     2,     2,     4,     4,
+     2,     2,     3,     1,     1,     2,     2,     0,     0,     4,
+     4,     3,     3,     2,     2,     2,     2,     3,     0,     2,
+     2,     2,     2,     3,     0,     2,     2,     1,     1,     2,
+     2,     1,     1,     2,     2,     2,     3,     0,     2,     1,
+     1,     1,     4,     4,     1,     1,     1,     1,     3,     1,
+     3,     0,     4,     0,     6,     3,     0,     6,     3,     0,
+     1,     1,     2,     6,     1,     3,     0,     1,     4,     6,
+     4,     1,     1,     1,     1,     1,     0,     4,     1,     0,
+     2,     1,     3,     1,     0,     4,     1,     0,     8,     0,
+     6,     0,     5,     0,     4,     0,     5,     0,     0,     5,
+     0,     0,     5,     1,     1,     3,     3,     4,     3,     3,
+     3,     1,     3,     4,     3,     3,     3,     1,     3,     3,
+     3,     4,     3,     3,     1,     0,     7,     5,     2,     0,
+     7,     5,     2,     0,     8,     0,     7,     2,     0,     1,
+     0,     1,     1,     2,     0,     3,     2,     3,     1,     3,
+     1,     1,     2,     1,     3,     4,     6,     5,     1,     3,
+     1,     1,     3,     2,     2,     0,     1,     1,     2,     0,
+     2,     3,     3,     2,     3,     4,     3,     2,     3,     2,
+     1,     1,     2,     2,     0,     1,     2,     0,     0,     1,
+     1,     2,     3,     1,     2,     2,     6,     5,     5,     2,
+     2,     4,     0,     4,     0,     0,     3,     4,     3,     1,
+     1,     1,     1,     2,     0,     4,     1,     3,     0,     0,
+     7,     5,     2,     0,     0,     0,    12,     0,     6,     2,
+     2,     2,     3,     6,     8,    10,    12,     3,     4,     1,
+     1,     0,     6,     3,     5,     2,     2,     0,     1,     0,
+     1,     0,     1,     1,     3,     4,     1,     3,     0,     2,
+     2,     0,     4,     2,     0,     1,     1,     3,     1,     3,
+     4,     4,     4,     4,     4,     0,     2,     1,     2,     1,
+     3,     1,     3,     1
+};
+
+static const short yydefact[] = {     3,
+     5,     0,     0,     0,   152,   143,   150,   142,     0,     0,
+     0,     0,     0,     0,   394,    18,     4,     8,     7,     0,
+   118,   118,   138,   129,   139,   172,   151,     0,     6,    16,
+    17,    31,    32,   246,   248,   255,   239,   255,   243,     0,
+     0,     0,   235,   280,     0,     0,   160,   119,     0,    15,
+     0,    14,     0,   140,   129,   141,   145,   144,   127,   173,
+    10,     0,   244,     0,     0,   236,     0,   240,    86,    87,
+    99,    56,    57,     0,     0,     0,    33,    35,    34,     0,
+    36,    37,     0,    38,    39,     0,     0,    40,    58,     0,
+     0,    62,    43,    45,    88,     0,   278,     0,   276,   148,
+     0,   276,   177,     0,     0,    11,     0,     0,    30,     0,
+   386,     0,     0,   170,   222,   280,     0,     0,   158,   119,
+     0,   214,   215,     0,     0,   128,   131,   155,   156,   130,
+   132,   157,   271,   272,   251,   269,     0,   170,   262,   257,
+   118,   254,   118,     0,   255,   170,   255,    54,    55,    49,
+    46,     0,     0,     0,     0,    48,     0,     0,     0,    50,
+     0,    52,     0,     0,    79,    77,    75,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    97,
+    98,     0,     0,    41,     0,   100,    47,   153,   280,   369,
+     0,   274,   277,   146,   154,   279,   148,   275,   183,   184,
+   185,   182,     0,   175,   178,   281,   231,   230,   161,   162,
+   234,     0,   229,     0,   233,     0,     0,    28,     0,   315,
+   106,   316,   169,   171,     0,     0,    13,     0,     0,    22,
+     0,   170,   386,     0,    12,    26,     0,     0,   252,     0,
+   251,   238,   315,   256,   315,   263,     0,   242,     0,    90,
+    89,   298,     0,     0,     9,    44,     0,     0,    85,    84,
+     0,     0,     0,     0,    73,    74,    72,    71,    70,    68,
+    69,    63,    64,    65,    66,    67,    96,    95,     0,    42,
+     0,   284,     0,   288,     0,   290,     0,   369,     0,   149,
+   147,     0,   177,    41,     0,     0,   390,   376,   118,   118,
+   388,     0,   377,   379,   387,     0,   232,   297,     0,   108,
+   103,   107,     0,   167,   220,   216,   159,   221,    20,   166,
+   217,   219,     0,    24,   273,   270,   170,     0,   258,   264,
+   316,   260,   170,   170,   306,   299,    92,    60,    59,    51,
+    53,     0,     0,    78,    76,    93,    94,   283,   282,   370,
+   289,   285,   287,     0,   174,   176,    86,     0,   163,   374,
+   276,   276,   371,   372,     0,   389,     0,     0,    29,   304,
+   104,   118,   118,   135,     0,     0,   164,   218,     0,   247,
+   170,   315,     0,   237,   241,     0,     0,   300,   301,     0,
+    80,    83,   286,   179,     0,   181,   228,   280,   369,   119,
+   170,   170,   170,   280,   170,   170,     0,   378,   380,   391,
+   305,   111,     0,   112,     0,   135,   133,   189,   187,   186,
+   168,    21,     0,    25,   245,   265,     0,   170,   392,     0,
+     0,     0,   315,     0,     0,   115,   316,   292,   302,   197,
+    86,     0,     0,   195,     0,   194,     0,   249,   192,     0,
+     0,   284,     0,   386,     0,   381,   382,   383,   284,   384,
+   385,   373,     0,     0,   162,   134,   137,   136,     0,   165,
+   170,     0,   266,   303,     0,   308,   117,   116,   296,     0,
+   309,   294,   316,   293,     0,     0,     0,     0,   204,    61,
+     0,   191,    81,   180,   226,   280,   227,   223,   225,     0,
+   109,   110,     0,   268,   170,   393,   307,     0,   152,     0,
+   329,   313,     0,     0,     0,     0,     0,     0,     0,     0,
+   358,   350,     0,     0,   113,   118,   118,   322,   327,     0,
+     0,   319,   320,   323,   351,   321,     0,   206,     0,   202,
+     0,     0,   193,     0,   224,   188,   267,     0,     0,   315,
+   360,     0,     0,   356,   340,   341,   342,     0,     0,     0,
+   359,     0,   357,   324,   124,     0,   125,     0,     0,   311,
+   316,   310,   333,     0,   126,     0,     0,   200,     0,   196,
+   205,     0,     0,     0,   361,    45,     0,     0,     0,   354,
+   343,     0,   348,     0,     0,   122,   208,     0,   123,   211,
+   328,   315,     0,     0,   207,     0,     0,   203,   312,     0,
+   314,   352,   334,   338,     0,   349,     0,   120,     0,   121,
+     0,   326,   317,   315,     0,   198,   201,   330,   315,   360,
+   315,   355,   362,     0,   209,   212,   318,   332,     0,   315,
+   353,     0,   339,     0,     0,   363,   364,   344,     0,     0,
+   199,   331,   335,     0,   362,     0,     0,   210,   213,   360,
+     0,     0,   345,   365,     0,   366,     0,     0,   336,   367,
+     0,   346,   315,     0,     0,   337,   347,   368,     0,     0,
+     0
+};
+
+static const short yydefgoto[] = {   679,
+     1,     2,     3,    17,    18,    19,   231,   376,   237,   379,
+   113,   309,   445,    86,   153,   279,    88,    89,    90,    91,
+    92,   390,    93,   264,   263,   261,   450,   262,    94,   154,
+    95,   218,   219,   220,   371,   432,   433,    20,   108,   525,
+   299,    59,   372,   417,   300,    23,    99,   194,    24,   130,
+   118,    46,   114,   119,   423,    47,   375,   223,   224,    26,
+   203,   204,   205,   421,   469,   447,   448,   449,   488,   639,
+   607,   579,   542,   576,   596,   619,   649,   599,   621,   650,
+   210,   122,   495,   123,    27,   145,   147,   137,    62,   492,
+   240,    64,    65,   142,   329,   330,   135,   136,   101,   192,
+   102,   104,   193,   434,   435,   480,   221,   336,   387,   388,
+   389,   369,   370,   529,   530,   531,   550,   571,   313,   572,
+   438,   532,   533,   602,   549,   640,   630,   660,   673,   631,
+   534,   535,   629,   536,   562,   587,   645,   646,   647,   671,
+   284,   285,   301,   407,   302,   303,   304,   213,   214,   305,
+   306,   430,    96
+};
+
+static const short yypact[] = {    90,
+    99,   588,   588,   321,-32768,-32768,-32768,-32768,    77,    79,
+    85,    49,    75,    87,-32768,-32768,-32768,-32768,-32768,   194,
+    37,  2116,   245,-32768,   119,-32768,-32768,   588,-32768,-32768,
+-32768,-32768,-32768,-32768,   111,-32768,   133,-32768,   143,  1958,
+  1892,   179,-32768,-32768,   194,   164,-32768,   119,  1352,-32768,
+   457,-32768,   194,   245,-32768,   119,-32768,-32768,   404,-32768,
+-32768,   267,-32768,   181,   419,-32768,   201,-32768,-32768,-32768,
+-32768,-32768,-32768,  1958,  1958,   397,-32768,-32768,-32768,  1958,
+-32768,-32768,   848,-32768,-32768,  1958,   227,   229,-32768,  1985,
+  2012,-32768,  2202,  1091,   299,  1958,-32768,   240,   204,-32768,
+   242,  1002,   699,   441,   172,-32768,   457,   194,-32768,   264,
+-32768,  1427,   360,   119,-32768,-32768,   457,   217,-32768,   119,
+   724,   344,   392,   220,  1412,   404,-32768,-32768,-32768,-32768,
+   119,-32768,-32768,   292,   250,-32768,   267,   119,-32768,-32768,
+   381,   300,   313,   822,-32768,   119,-32768,-32768,-32768,-32768,
+-32768,   317,   320,   326,   343,-32768,   347,  1958,   848,-32768,
+   848,-32768,  1958,  1958,   390,-32768,-32768,  1958,  1958,  1958,
+  1958,  1958,  1958,  1958,  1958,  1958,  1958,  1958,  1958,-32768,
+-32768,   397,   397,  1958,  1958,-32768,-32768,-32768,-32768,   204,
+  1487,-32768,   442,   277,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   106,-32768,   371,-32768,   392,-32768,-32768,   408,
+   392,   434,-32768,   636,-32768,   358,   372,-32768,   268,    59,
+-32768,-32768,   433,   119,   226,   346,-32768,   457,   457,-32768,
+   360,   119,-32768,  1500,-32768,-32768,   360,  1958,   397,   387,
+   250,-32768,-32768,-32768,-32768,-32768,   394,-32768,   396,-32768,
+-32768,   399,   405,  1781,-32768,  2202,   407,   410,  2202,  2202,
+  1958,   455,  1958,  1958,  1751,   578,  1357,   607,   873,   707,
+   707,   303,   303,-32768,-32768,-32768,-32768,-32768,   422,   229,
+   412,    56,   429,-32768,   904,-32768,   421,-32768,  1553,-32768,
+   277,   430,   699,  2039,    57,   449,-32768,-32768,-32768,  1709,
+-32768,   453,   265,-32768,-32768,   115,-32768,-32768,    55,-32768,
+-32768,-32768,  1083,-32768,   344,-32768,-32768,   344,-32768,   494,
+-32768,-32768,   452,-32768,  2202,-32768,   119,   458,   451,-32768,
+-32768,   451,   119,   119,-32768,   510,-32768,-32768,-32768,-32768,
+-32768,   507,  1958,  2231,  2243,-32768,-32768,   442,-32768,-32768,
+-32768,-32768,-32768,   464,-32768,-32768,   124,   474,-32768,-32768,
+   309,    67,-32768,-32768,  1679,-32768,   549,   326,-32768,-32768,
+-32768,   476,   450,-32768,  1341,    55,-32768,-32768,    55,-32768,
+   119,-32768,   333,-32768,-32768,   397,   942,   510,-32768,  1161,
+-32768,  2218,-32768,-32768,  1958,-32768,-32768,-32768,    67,   119,
+   144,   160,   119,-32768,   160,   119,   904,-32768,-32768,-32768,
+-32768,-32768,   457,-32768,   194,-32768,   887,-32768,-32768,  2202,
+-32768,-32768,  1341,-32768,-32768,-32768,  1958,   130,-32768,   266,
+   432,   667,   479,   481,   760,-32768,-32768,-32768,-32768,-32768,
+   522,   397,  1958,-32768,   526,  2202,   487,   497,-32768,  1958,
+   132,   207,   601,-32768,  1566,-32768,-32768,-32768,   176,-32768,
+-32768,-32768,   279,   281,    52,   887,-32768,-32768,  1161,-32768,
+  2166,  1958,-32768,-32768,   397,-32768,-32768,-32768,-32768,   501,
+-32768,-32768,-32768,-32768,  1647,   545,  2064,  1161,-32768,-32768,
+  1221,-32768,  2218,-32768,   454,-32768,   454,-32768,-32768,   500,
+-32768,-32768,   506,-32768,  2166,-32768,-32768,  1727,   547,   527,
+-32768,-32768,   529,   537,  1958,   559,   533,   536,  1905,    89,
+   592,-32768,   565,   540,-32768,   555,  2120,-32768,   590,  1024,
+    60,-32768,-32768,-32768,-32768,-32768,  1838,-32768,  1958,   597,
+   557,  1281,-32768,   813,-32768,-32768,-32768,  1958,   585,-32768,
+  1958,  1958,  2135,-32768,-32768,-32768,-32768,   568,  1958,   586,
+-32768,   608,-32768,-32768,-32768,   457,-32768,   194,  1104,-32768,
+-32768,-32768,-32768,  1958,-32768,  1281,  2117,-32768,  1281,-32768,
+-32768,   593,  1958,   666,-32768,   275,   622,   632,  1958,-32768,
+-32768,   637,-32768,  1958,   301,-32768,   108,   308,-32768,  1033,
+-32768,-32768,  1727,   633,-32768,   677,  1281,-32768,-32768,   642,
+-32768,-32768,-32768,-32768,  2184,-32768,    26,-32768,   360,-32768,
+   360,-32768,-32768,-32768,   643,-32768,-32768,-32768,-32768,  1958,
+-32768,-32768,   710,   646,-32768,-32768,-32768,-32768,  1281,-32768,
+-32768,   647,-32768,   668,    47,   651,-32768,-32768,   326,   326,
+-32768,-32768,-32768,  1958,   710,   656,   710,-32768,-32768,  1958,
+   658,    48,-32768,-32768,   659,-32768,   434,   662,-32768,   299,
+   146,-32768,-32768,   663,   434,-32768,-32768,   299,   742,   743,
+-32768
+};
+
+static const short yypgoto[] = {-32768,
+-32768,-32768,-32768,   153,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,    -5,-32768,   -40,   456,  -137,   427,-32768,-32768,
+   -55,-32768,   398,-32768,-32768,-32768,-32768,-32768,   197,-32768,
+  -191,  -207,   542,-32768,-32768,   332,-32768,    22,   -98,   216,
+     0,   711,-32768,   351,     7,    -7,   -15,   573,    11,  -171,
+  -365,   -45,  -107,   -52,-32768,-32768,-32768,   206,    14,    53,
+-32768,   483,-32768,   349,-32768,  -411,-32768,  -384,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+   -38,   -63,  -310,   -13,   -30,-32768,-32768,-32768,-32768,-32768,
+   551,    24,-32768,   630,   550,   414,   653,   558,    27,   -57,
+     3,   -89,  -152,   365,-32768,-32768,  -170,-32768,-32768,-32768,
+   411,  -292,  -128,-32768,-32768,-32768,-32768,   -95,  -285,  -422,
+   367,-32768,   208,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,   209,-32768,  -555,   149,-32768,   150,-32768,
+   525,-32768,  -232,-32768,-32768,-32768,   459,  -194,-32768,-32768,
+-32768,-32768,     9
+};
+
+
+#define	YYLAST		2295
+
+
+static const short yytable[] = {    87,
+    98,    21,    21,    35,    37,    39,    49,   124,    22,    22,
+    28,    28,   121,   232,    54,    25,    25,   222,   148,   149,
+   295,   229,   290,   319,   151,   253,   225,    21,   132,   324,
+   156,   105,    55,    48,    22,    56,    28,   283,   321,   125,
+   187,    25,    51,    53,   198,   383,   280,   463,   310,   141,
+   401,   100,   350,   226,   209,   368,   134,   503,    48,  -102,
+   573,    67,   206,   633,   120,   186,    48,   143,   311,    43,
+   150,   216,   131,   144,   642,   100,   541,    60,   110,    32,
+    33,    32,    33,   422,   655,   667,   424,    32,    33,    -1,
+   207,    32,    33,   100,   211,   132,    14,   202,    -2,   282,
+    60,   634,   232,   105,   665,   189,   543,    40,    60,   155,
+   111,   112,   197,    50,   190,   191,   404,    48,   574,   290,
+   120,    48,   656,   668,   222,   399,   191,   584,   141,   348,
+   120,   134,   359,    41,   110,   222,   252,  -162,   559,   131,
+  -102,   222,   497,  -162,   281,    42,   143,   331,    14,   331,
+   287,   485,   144,   197,   100,    29,   280,   581,    34,    14,
+    36,   315,   243,   132,   245,   318,    38,   472,   247,   100,
+   249,   100,    60,    14,   462,   317,   277,   278,    43,   622,
+    61,   292,   206,    60,  -162,   257,   293,   258,  -162,    14,
+   366,   605,    63,   323,   608,   367,    43,   508,   339,   394,
+   595,   637,   454,   455,   395,    14,   641,   494,   643,    43,
+   397,   207,   158,   206,    66,   211,   436,   652,   111,   112,
+   342,   674,   627,    14,    68,   404,   675,    25,    43,   115,
+   111,   112,   206,   134,   399,   191,    14,   103,   120,   411,
+   106,   120,   120,    44,   107,   468,   283,   208,   354,    57,
+   676,    58,    45,   189,   651,    14,   398,   451,   138,   498,
+   132,   477,   190,   191,   482,   399,   191,   133,   217,    32,
+    33,  -105,  -105,  -105,  -105,   116,    60,  -105,   146,  -105,
+  -105,  -105,   128,   129,   117,   603,   331,   202,     9,    10,
+    11,   437,    54,   227,   468,  -105,   235,   228,    25,   348,
+   107,   453,   157,   403,   406,   373,   348,   186,   452,   158,
+    55,    43,   397,    56,   459,   188,     5,   195,     7,   196,
+   361,   362,   212,   374,     9,    10,    11,   238,   180,   181,
+   239,   182,   183,   184,   185,    43,   115,   437,    14,   483,
+    13,   364,   474,   242,   428,   365,   475,   402,   405,  -105,
+   612,   248,   177,   178,   179,   501,   528,   502,   398,   228,
+   217,   107,    14,  -315,  -315,  -315,  -315,   399,   191,   464,
+   427,  -315,  -315,  -315,   400,    48,   244,   618,    25,   528,
+   429,   228,   116,   416,   620,   105,   132,  -315,   107,  -261,
+  -261,   117,   250,   413,   415,   251,   120,    30,    31,    32,
+    33,   465,   233,   234,   233,   234,   544,   252,   127,   128,
+   129,   635,    48,   636,   500,     9,    10,    11,   254,   139,
+    25,   316,     5,   255,     7,    97,   120,   -82,    48,   294,
+     9,    10,    11,    14,   110,   132,   486,   320,   207,   211,
+   307,  -101,    71,    43,   524,   207,    13,   206,   308,    15,
+   111,   112,    60,     5,    57,     7,    58,  -259,  -259,    43,
+   115,     9,    10,    11,   327,   400,   400,   524,   314,   506,
+    14,   333,    48,   334,   528,   670,   335,    13,   558,   523,
+   337,   187,   340,   678,   526,   341,    14,   288,   289,   232,
+    44,   527,   343,   537,   347,   140,  -253,   346,    25,    45,
+   288,   289,   523,   351,   349,   355,   116,   582,   308,   476,
+   585,   588,   454,   455,   560,   117,   160,   162,   592,    54,
+   658,   659,   598,   222,   360,   222,   414,   597,   363,   377,
+   207,   382,   380,   604,   378,   381,   526,    55,   384,   385,
+    56,   386,   610,   527,   391,   537,   393,   566,   568,   396,
+    25,   410,   412,   617,   600,   256,  -295,   400,   481,   -31,
+   259,   260,   524,   489,   490,   265,   266,   267,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,   491,   507,   120,
+   538,    48,   545,   546,   -32,   548,   425,   551,     4,   585,
+  -118,     5,     6,     7,     8,   552,   554,   523,   561,     9,
+    10,    11,   563,    43,   397,   569,   456,   457,   458,   555,
+   460,   461,   556,   661,    12,    13,   564,    14,    15,   585,
+   170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+    14,   565,   578,   473,   580,   325,   296,  -118,   297,     5,
+     6,     7,     8,   583,   591,   298,  -118,     9,    10,    11,
+   496,   172,   173,   174,   175,   176,   177,   178,   179,    45,
+   344,   345,   593,    13,    16,    14,   594,   217,   609,  -114,
+  -114,  -114,  -114,  -114,  -114,  -114,   504,  -114,  -114,  -114,
+  -114,  -114,   611,  -114,  -114,  -114,  -114,  -114,  -114,  -114,
+  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,   613,  -114,
+  -114,    32,    33,   199,   200,   201,  -114,   614,   625,  -114,
+   547,  -375,   626,   616,  -114,  -114,  -114,   628,   644,   638,
+  -114,  -114,   648,   653,   230,  -114,   654,   -19,   -19,   -19,
+   -19,   657,   663,   666,   669,   -19,   -19,   -19,   672,   677,
+   392,   680,   681,  -114,  -114,  -114,  -114,   586,  -114,   358,
+   110,   -19,   575,  -162,   175,   176,   177,   178,   179,  -162,
+   217,   312,  -315,  -315,   478,   126,   466,  -315,  -315,   291,
+  -315,   470,   420,   246,  -315,   356,  -315,  -315,  -315,  -315,
+  -315,  -315,  -315,  -315,  -315,  -315,  -315,   446,  -315,   241,
+  -315,   328,  -315,  -315,   332,   426,   326,   479,   439,  -315,
+  -162,   484,  -315,   662,  -162,   -19,   664,  -315,  -315,  -315,
+   623,   624,   352,  -315,  -315,    43,   397,     0,  -315,   206,
+   420,     0,   139,   409,   471,     5,     0,     7,    97,     0,
+     0,     0,     0,     9,    10,    11,  -315,  -291,  -315,  -315,
+   487,  -315,    14,     0,     0,     0,     0,   493,   152,    13,
+    69,     5,    15,     7,    97,    70,    71,     0,    72,     9,
+    10,    11,   496,     0,     0,     0,   446,     0,     0,   505,
+     0,    45,     0,     0,     0,    13,    73,     0,    15,     0,
+    74,    75,     0,     0,     0,   446,     0,    76,   446,     0,
+    77,   467,   128,   129,     0,    78,    79,    80,     9,    10,
+    11,    81,    82,     0,   296,     0,    83,     5,     6,     7,
+     8,     0,   553,   298,     0,     9,    10,    11,   173,   174,
+   175,   176,   177,   178,   179,     0,    84,    85,     0,   -91,
+     0,    13,     0,    14,     0,     0,   577,     0,     0,   446,
+     0,     0,   431,     0,  -315,  -315,  -315,  -315,  -315,  -315,
+  -315,     0,  -315,  -315,  -315,  -315,  -315,     0,  -315,  -315,
+  -315,  -315,  -315,  -315,  -315,  -315,  -315,  -315,  -315,  -315,
+  -315,  -315,  -315,   446,  -315,  -315,   446,     0,     0,  -375,
+     0,  -315,     0,     0,  -315,     0,   615,     0,     0,  -315,
+  -315,  -315,     0,     0,     0,  -315,  -315,     0,     0,     0,
+  -315,     0,     0,     0,   446,     5,     0,     7,   196,     0,
+     0,     0,     0,     9,    10,    11,     0,     0,  -315,     0,
+  -315,  -315,     0,  -315,   570,     0,  -315,  -315,     0,    13,
+     0,  -315,  -315,     0,  -315,     0,   446,     0,  -315,     0,
+  -315,  -315,  -315,  -315,  -315,  -315,  -315,  -315,  -315,  -315,
+  -315,   189,  -315,     0,  -315,     0,  -315,  -315,     0,   110,
+   190,   191,  -162,  -315,     0,     0,  -315,     0,  -162,     0,
+     0,  -315,  -315,  -315,     0,     0,     0,  -315,  -315,     0,
+     0,     0,  -315,     0,     0,     0,     5,     6,     7,     8,
+     0,   111,   112,     0,     9,    10,    11,     0,     0,     0,
+  -315,     0,  -315,  -315,   601,  -315,  -325,  -325,     0,  -162,
+    13,  -325,  -325,  -162,  -325,     0,     0,     0,  -325,     0,
+  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
+  -325,     0,  -325,     0,  -325,     0,  -325,  -325,     0,     0,
+     0,     0,     0,  -325,   180,   181,  -325,   182,   183,   184,
+   185,  -325,  -325,  -325,     0,     0,     0,  -325,  -325,     0,
+     0,   440,  -325,   441,    33,     0,     0,     0,    70,    71,
+     0,    72,     0,     0,     0,     0,     0,     0,     0,     0,
+  -325,     0,  -325,  -325,     0,  -325,     0,     0,     0,    73,
+     0,    15,     0,    74,    75,     0,     0,     0,     0,     0,
+    76,     0,     0,    77,     0,     0,     0,     0,    78,    79,
+    80,     0,     0,     0,    81,    82,     0,     0,   442,    83,
+   443,   440,     0,   441,    33,     0,     0,     0,    70,    71,
+     0,    72,     0,     0,     0,     0,     0,     0,  -190,    84,
+    85,     0,   444,     0,     0,     0,     0,     0,     0,    73,
+     0,    15,     0,    74,    75,     0,     0,     0,     0,     0,
+    76,     0,     0,    77,     0,     0,     0,     0,    78,    79,
+    80,     0,     0,     0,    81,    82,     0,     0,   442,    83,
+   443,   440,     0,   441,    33,     0,     0,     0,    70,    71,
+     0,    72,     0,     0,     0,     0,     0,     0,  -250,    84,
+    85,     0,   444,     0,     0,     0,     0,     0,     0,    73,
+     0,    15,     0,    74,    75,     0,     0,     0,     0,     0,
+    76,     0,     0,    77,     0,     0,     0,     0,    78,    79,
+    80,     0,     0,     0,    81,    82,     0,     0,   442,    83,
+   443,   418,     0,    69,     0,     0,     0,     0,    70,    71,
+     0,    72,   109,     0,     0,   -27,   -27,   -27,   -27,    84,
+    85,     0,   444,   -27,   -27,   -27,     0,     0,     0,    73,
+     0,    15,     0,    74,    75,     0,     0,     0,   110,   -27,
+    76,  -162,     0,    77,     0,     0,     0,  -162,    78,    79,
+    80,     0,     0,     0,    81,    82,     0,     0,     0,    83,
+   171,   172,   173,   174,   175,   176,   177,   178,   179,     0,
+   111,   112,   236,     0,     0,   -23,   -23,   -23,   -23,    84,
+    85,     0,   419,   -23,   -23,   -23,     0,     0,  -162,    69,
+     0,     0,  -162,   -27,    70,    71,     0,    72,   110,   -23,
+     0,  -162,     0,     0,     0,     0,     0,  -162,     0,     0,
+     0,     0,     0,     0,     0,    73,     0,    15,     0,    74,
+    75,     0,     0,     0,     0,     0,    76,     0,     0,    77,
+   111,   112,     0,     0,    78,    79,    80,     0,     0,     0,
+    81,    82,     0,     0,     0,    83,     0,     0,  -162,    69,
+     0,     0,  -162,   -23,    70,    71,     0,    72,     0,     0,
+     0,     0,    69,     0,     0,    84,    85,    70,    71,   215,
+    72,     0,     0,     0,     0,    73,     0,    15,     0,    74,
+    75,     0,     0,     0,     0,     0,    76,     0,    73,    77,
+    15,     0,    74,    75,    78,    79,    80,     0,     0,    76,
+    81,    82,    77,     0,     0,    83,     0,    78,    79,    80,
+     0,     0,     0,    81,    82,    69,     0,     0,    83,     0,
+    70,    71,     0,    72,     0,    84,    85,     0,    69,   286,
+     0,     0,     0,    70,    71,     0,    72,     0,    84,    85,
+     0,    73,   322,    15,     0,    74,    75,     0,     0,     0,
+     0,     0,    76,     0,    73,    77,    15,     0,    74,    75,
+    78,    79,    80,     0,     0,    76,    81,    82,    77,     0,
+     0,    83,     0,    78,    79,    80,     0,     0,     0,    81,
+    82,     0,     0,     0,    83,     0,     0,     0,     0,     0,
+     0,    84,    85,     0,     0,   353,     0,     0,     0,     0,
+     0,     0,     0,     0,    84,    85,     0,     0,   499,   441,
+   509,     6,     7,     8,    70,    71,     0,    72,     9,    10,
+    11,   510,     0,   511,   512,   513,   514,   515,   516,   517,
+   518,   519,   520,   521,    13,    73,    14,    15,     0,    74,
+    75,     0,     5,     6,     7,     8,    76,     0,   408,    77,
+     9,    10,    11,     0,    78,    79,    80,     0,     0,     0,
+    81,    82,     0,     0,     0,    83,    13,     0,    14,     0,
+     0,     0,     5,     6,     7,     8,     0,     0,     0,     0,
+     9,    10,    11,   522,     0,    84,    85,     0,   252,   441,
+    33,     0,     0,     0,    70,    71,    13,    72,    14,     0,
+     0,   510,     0,   511,   512,   513,   514,   515,   516,   517,
+   518,   519,   520,   521,     0,    73,     0,    15,     0,    74,
+    75,     0,     0,     0,     0,     0,    76,     0,     0,    77,
+     0,     0,     0,     0,    78,    79,    80,     0,     0,     0,
+    81,    82,     0,    69,     0,    83,     0,     0,    70,    71,
+     0,    72,   169,   170,   171,   172,   173,   174,   175,   176,
+   177,   178,   179,   522,     0,    84,    85,     0,   252,    73,
+     0,    15,     0,    74,    75,     0,     0,     0,     0,     0,
+    76,     0,     0,    77,     0,     0,     0,     0,    78,    79,
+    80,     0,     0,     0,    81,    82,     0,     0,     0,    83,
+    69,     5,     6,     7,     8,    70,    71,     0,    72,     9,
+    10,    11,     0,     0,     0,     0,     0,     0,     0,    84,
+    85,     0,   338,     0,     0,    13,    73,    14,    15,     0,
+    74,    75,     0,     0,     0,     0,     0,    76,     0,     0,
+    77,     0,     0,     0,     0,    78,    79,    80,     0,     0,
+     0,    81,    82,     0,    69,     5,    83,     7,    97,    70,
+    71,     0,    72,     9,    10,    11,     0,    69,     0,     0,
+     0,     0,    70,    71,     0,    72,    84,    85,     0,    13,
+    73,     0,    15,     0,    74,    75,     0,     0,     0,     0,
+     0,    76,     0,    73,    77,    15,     0,    74,    75,    78,
+    79,    80,     0,     0,    76,    81,    82,    77,     0,     0,
+    83,     0,    78,    79,    80,     0,     0,     0,    81,    82,
+    69,     0,     0,    83,     0,    70,    71,     0,    72,     0,
+    84,    85,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   557,     0,    84,    85,     0,    73,    69,    15,     0,
+    74,    75,    70,    71,     0,    72,     0,    76,     0,     0,
+    77,     0,     0,     0,     0,    78,    79,    80,     0,     0,
+     0,    81,    82,    73,    69,    15,    83,    74,    75,    70,
+    71,     0,    72,     0,    76,     0,     0,    77,     0,     0,
+     0,     0,    78,    79,    80,     0,    84,    85,    81,    82,
+    73,   357,    15,   159,    74,    75,    70,    71,     0,    72,
+     0,    76,     0,     0,    77,     0,     0,     0,     0,    78,
+    79,    80,     0,    84,    85,    81,    82,    73,     0,    15,
+   161,    74,    75,   539,     0,     0,     0,     0,    76,     0,
+     0,    77,     0,     0,     0,     0,    78,    79,    80,     0,
+    84,    85,    81,    82,     0,     0,     0,    83,   163,   164,
+   165,     0,   166,   167,   168,   169,   170,   171,   172,   173,
+   174,   175,   176,   177,   178,   179,     0,    84,    85,     5,
+     6,     7,     8,     5,     6,     7,     8,     9,    10,    11,
+     0,     9,    10,    11,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    13,   589,    14,   540,    13,     0,    14,
+     0,   163,   164,   165,     0,   166,   167,   168,   169,   170,
+   171,   172,   173,   174,   175,   176,   177,   178,   179,   163,
+   164,   165,   590,   166,   167,   168,   169,   170,   171,   172,
+   173,   174,   175,   176,   177,   178,   179,     0,     0,     0,
+     0,     0,    52,     0,     0,    14,   567,     0,     0,   606,
+   163,   164,   165,     0,   166,   167,   168,   169,   170,   171,
+   172,   173,   174,   175,   176,   177,   178,   179,   163,   164,
+   165,   632,   166,   167,   168,   169,   170,   171,   172,   173,
+   174,   175,   176,   177,   178,   179,   163,   164,   165,     0,
+   166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
+   176,   177,   178,   179,   165,     0,   166,   167,   168,   169,
+   170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+   167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
+   177,   178,   179,   168,   169,   170,   171,   172,   173,   174,
+   175,   176,   177,   178,   179
+};
+
+static const short yycheck[] = {    40,
+    41,     2,     3,     9,    10,    11,    20,    53,     2,     3,
+     2,     3,    51,   121,    22,     2,     3,   113,    74,    75,
+   212,   120,   194,   231,    80,   154,   116,    28,    59,   237,
+    86,    45,    22,    20,    28,    22,    28,   190,   233,    53,
+    96,    28,    21,    22,   102,   331,   184,   413,   219,    65,
+   361,    41,   285,   117,   107,     1,    62,   469,    45,     1,
+     1,    38,     7,    38,    51,     9,    53,    65,    10,     3,
+    76,   112,    59,    65,   630,    65,   488,    25,    27,     3,
+     4,     3,     4,   376,    38,    38,   379,     3,     4,     0,
+   104,     3,     4,    83,   108,   126,    30,   103,     0,   189,
+    48,    76,   210,   117,   660,    50,   491,    59,    56,    83,
+    59,    60,   102,    77,    59,    60,    50,   104,    59,   291,
+   107,   108,    76,    76,   220,    59,    60,   550,   144,   282,
+   117,   137,    76,    59,    27,   231,    82,    30,    50,   126,
+    82,   237,   453,    36,   185,    59,   144,   243,    30,   245,
+   191,   437,   144,   143,   144,     3,   294,   542,    82,    30,
+    82,   225,   141,   194,   143,   229,    82,    38,   145,   159,
+   147,   161,   120,    30,   407,   228,   182,   183,     3,   602,
+    28,    76,     7,   131,    77,   159,    81,   161,    81,    30,
+    76,   576,    82,   234,   579,    81,     3,   483,   254,    76,
+   566,   624,    59,    60,    81,    30,   629,    76,   631,     3,
+     4,   225,    81,     7,    82,   229,   387,   640,    59,    60,
+   261,    76,   607,    30,    82,    50,    81,   214,     3,     4,
+    59,    60,     7,   239,    59,    60,    30,    59,   225,   368,
+    77,   228,   229,    50,    81,   417,   399,    76,   289,     5,
+   673,     7,    59,    50,   639,    30,    50,   395,    78,   454,
+   291,   432,    59,    60,   435,    59,    60,     1,     1,     3,
+     4,     4,     5,     6,     7,    50,   224,    10,    78,    12,
+    13,    14,     6,     7,    59,   571,   382,   293,    12,    13,
+    14,   387,   300,    77,   466,    28,    77,    81,   285,   452,
+    81,   400,    76,   361,   362,   313,   459,     9,   398,    81,
+   300,     3,     4,   300,   404,    76,     4,    76,     6,     7,
+   299,   300,    59,   313,    12,    13,    14,    36,    54,    55,
+    81,    57,    58,    59,    60,     3,     4,   433,    30,   435,
+    28,    77,    77,   138,   383,    81,    81,   361,   362,    82,
+    76,   146,    50,    51,    52,    77,   485,    77,    50,    81,
+     1,    81,    30,     4,     5,     6,     7,    59,    60,   415,
+    38,    12,    13,    14,   361,   362,    77,    77,   365,   508,
+   386,    81,    50,   373,    77,   399,   417,    28,    81,    77,
+    78,    59,    76,   372,   373,    76,   383,    77,    78,     3,
+     4,   415,    59,    60,    59,    60,   496,    82,     5,     6,
+     7,   619,   399,   621,   455,    12,    13,    14,    76,     1,
+   407,    76,     4,    77,     6,     7,   413,    38,   415,    59,
+    12,    13,    14,    30,    27,   466,   442,   232,   452,   453,
+    83,    82,     9,     3,   485,   459,    28,     7,    77,    31,
+    59,    60,   400,     4,     5,     6,     7,    77,    78,     3,
+     4,    12,    13,    14,    78,   452,   453,   508,    36,   475,
+    30,    78,   459,    78,   603,   667,    78,    28,   519,   485,
+    76,   537,    76,   675,   485,    76,    30,    59,    60,   597,
+    50,   485,    38,   485,    83,    77,    78,    76,   485,    59,
+    59,    60,   508,    83,    76,    76,    50,   548,    77,    78,
+   551,   552,    59,    60,   520,    59,    90,    91,   559,   527,
+   649,   650,   568,   619,    76,   621,    77,   566,    76,    36,
+   544,    81,   327,   574,    83,    78,   537,   527,   333,   334,
+   527,    32,   583,   537,    38,   537,    83,   526,   527,    76,
+   537,     3,    77,   594,   568,   158,    78,   544,    78,    38,
+   163,   164,   603,    38,    78,   168,   169,   170,   171,   172,
+   173,   174,   175,   176,   177,   178,   179,    81,    78,   566,
+    36,   568,    83,    78,    38,    59,   381,    59,     1,   630,
+     3,     4,     5,     6,     7,    59,    38,   603,     7,    12,
+    13,    14,    38,     3,     4,    16,   401,   402,   403,    77,
+   405,   406,    77,   654,    27,    28,    77,    30,    31,   660,
+    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+    30,    77,    36,   428,    78,   238,     1,    50,     3,     4,
+     5,     6,     7,    59,    77,    10,    59,    12,    13,    14,
+    50,    45,    46,    47,    48,    49,    50,    51,    52,    59,
+   263,   264,    77,    28,    77,    30,    59,     1,    76,     3,
+     4,     5,     6,     7,     8,     9,   471,    11,    12,    13,
+    14,    15,    17,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,    28,    29,    30,    31,    77,    33,
+    34,     3,     4,     5,     6,     7,    40,    76,    76,    43,
+   505,    76,    36,    77,    48,    49,    50,    76,     9,    77,
+    54,    55,    77,    77,     1,    59,    59,     4,     5,     6,
+     7,    81,    77,    76,    76,    12,    13,    14,    77,    77,
+   343,     0,     0,    77,    78,    79,    80,   551,    82,   294,
+    27,    28,   537,    30,    48,    49,    50,    51,    52,    36,
+     1,   220,     3,     4,   433,    55,   416,     8,     9,   197,
+    11,   423,   375,   144,    15,   293,    17,    18,    19,    20,
+    21,    22,    23,    24,    25,    26,    27,   390,    29,   137,
+    31,   241,    33,    34,   245,   382,   239,   433,   388,    40,
+    77,   435,    43,   655,    81,    82,   657,    48,    49,    50,
+   603,   603,   288,    54,    55,     3,     4,    -1,    59,     7,
+   423,    -1,     1,   365,   427,     4,    -1,     6,     7,    -1,
+    -1,    -1,    -1,    12,    13,    14,    77,    78,    79,    80,
+   443,    82,    30,    -1,    -1,    -1,    -1,   450,     1,    28,
+     3,     4,    31,     6,     7,     8,     9,    -1,    11,    12,
+    13,    14,    50,    -1,    -1,    -1,   469,    -1,    -1,   472,
+    -1,    59,    -1,    -1,    -1,    28,    29,    -1,    31,    -1,
+    33,    34,    -1,    -1,    -1,   488,    -1,    40,   491,    -1,
+    43,     5,     6,     7,    -1,    48,    49,    50,    12,    13,
+    14,    54,    55,    -1,     1,    -1,    59,     4,     5,     6,
+     7,    -1,   515,    10,    -1,    12,    13,    14,    46,    47,
+    48,    49,    50,    51,    52,    -1,    79,    80,    -1,    82,
+    -1,    28,    -1,    30,    -1,    -1,   539,    -1,    -1,   542,
+    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,     8,
+     9,    -1,    11,    12,    13,    14,    15,    -1,    17,    18,
+    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+    29,    30,    31,   576,    33,    34,   579,    -1,    -1,    76,
+    -1,    40,    -1,    -1,    43,    -1,   589,    -1,    -1,    48,
+    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
+    59,    -1,    -1,    -1,   607,     4,    -1,     6,     7,    -1,
+    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    77,    -1,
+    79,    80,    -1,    82,     1,    -1,     3,     4,    -1,    28,
+    -1,     8,     9,    -1,    11,    -1,   639,    -1,    15,    -1,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    50,    29,    -1,    31,    -1,    33,    34,    -1,    27,
+    59,    60,    30,    40,    -1,    -1,    43,    -1,    36,    -1,
+    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
+    -1,    -1,    59,    -1,    -1,    -1,     4,     5,     6,     7,
+    -1,    59,    60,    -1,    12,    13,    14,    -1,    -1,    -1,
+    77,    -1,    79,    80,     1,    82,     3,     4,    -1,    77,
+    28,     8,     9,    81,    11,    -1,    -1,    -1,    15,    -1,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    54,    55,    43,    57,    58,    59,
+    60,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
+    -1,     1,    59,     3,     4,    -1,    -1,    -1,     8,     9,
+    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    77,    -1,    79,    80,    -1,    82,    -1,    -1,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,
+    60,     1,    -1,     3,     4,    -1,    -1,    -1,     8,     9,
+    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
+    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,
+    60,     1,    -1,     3,     4,    -1,    -1,    -1,     8,     9,
+    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
+    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,
+    60,     1,    -1,     3,    -1,    -1,    -1,    -1,     8,     9,
+    -1,    11,     1,    -1,    -1,     4,     5,     6,     7,    79,
+    80,    -1,    82,    12,    13,    14,    -1,    -1,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    27,    28,
+    40,    30,    -1,    43,    -1,    -1,    -1,    36,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    -1,
+    59,    60,     1,    -1,    -1,     4,     5,     6,     7,    79,
+    80,    -1,    82,    12,    13,    14,    -1,    -1,    77,     3,
+    -1,    -1,    81,    82,     8,     9,    -1,    11,    27,    28,
+    -1,    30,    -1,    -1,    -1,    -1,    -1,    36,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,
+    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
+    59,    60,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,    -1,    -1,    -1,    59,    -1,    -1,    77,     3,
+    -1,    -1,    81,    82,     8,     9,    -1,    11,    -1,    -1,
+    -1,    -1,     3,    -1,    -1,    79,    80,     8,     9,    83,
+    11,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,
+    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    29,    43,
+    31,    -1,    33,    34,    48,    49,    50,    -1,    -1,    40,
+    54,    55,    43,    -1,    -1,    59,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,     3,    -1,    -1,    59,    -1,
+     8,     9,    -1,    11,    -1,    79,    80,    -1,     3,    83,
+    -1,    -1,    -1,     8,     9,    -1,    11,    -1,    79,    80,
+    -1,    29,    83,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    -1,    40,    -1,    29,    43,    31,    -1,    33,    34,
+    48,    49,    50,    -1,    -1,    40,    54,    55,    43,    -1,
+    -1,    59,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
+    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,
+    -1,    79,    80,    -1,    -1,    83,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    79,    80,    -1,    -1,    83,     3,
+     4,     5,     6,     7,     8,     9,    -1,    11,    12,    13,
+    14,    15,    -1,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,    28,    29,    30,    31,    -1,    33,
+    34,    -1,     4,     5,     6,     7,    40,    -1,    10,    43,
+    12,    13,    14,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,    -1,    -1,    -1,    59,    28,    -1,    30,    -1,
+    -1,    -1,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
+    12,    13,    14,    77,    -1,    79,    80,    -1,    82,     3,
+     4,    -1,    -1,    -1,     8,     9,    28,    11,    30,    -1,
+    -1,    15,    -1,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,    33,
+    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
+    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,    -1,     3,    -1,    59,    -1,    -1,     8,     9,
+    -1,    11,    42,    43,    44,    45,    46,    47,    48,    49,
+    50,    51,    52,    77,    -1,    79,    80,    -1,    82,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
+     3,     4,     5,     6,     7,     8,     9,    -1,    11,    12,
+    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
+    80,    -1,    82,    -1,    -1,    28,    29,    30,    31,    -1,
+    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
+    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
+    -1,    54,    55,    -1,     3,     4,    59,     6,     7,     8,
+     9,    -1,    11,    12,    13,    14,    -1,     3,    -1,    -1,
+    -1,    -1,     8,     9,    -1,    11,    79,    80,    -1,    28,
+    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
+    -1,    40,    -1,    29,    43,    31,    -1,    33,    34,    48,
+    49,    50,    -1,    -1,    40,    54,    55,    43,    -1,    -1,
+    59,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
+     3,    -1,    -1,    59,    -1,     8,     9,    -1,    11,    -1,
+    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    77,    -1,    79,    80,    -1,    29,     3,    31,    -1,
+    33,    34,     8,     9,    -1,    11,    -1,    40,    -1,    -1,
+    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
+    -1,    54,    55,    29,     3,    31,    59,    33,    34,     8,
+     9,    -1,    11,    -1,    40,    -1,    -1,    43,    -1,    -1,
+    -1,    -1,    48,    49,    50,    -1,    79,    80,    54,    55,
+    29,     3,    31,    59,    33,    34,     8,     9,    -1,    11,
+    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
+    49,    50,    -1,    79,    80,    54,    55,    29,    -1,    31,
+    59,    33,    34,    10,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
+    79,    80,    54,    55,    -1,    -1,    -1,    59,    35,    36,
+    37,    -1,    39,    40,    41,    42,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    -1,    79,    80,     4,
+     5,     6,     7,     4,     5,     6,     7,    12,    13,    14,
+    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    28,    10,    30,    83,    28,    -1,    30,
+    -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    35,
+    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+    46,    47,    48,    49,    50,    51,    52,    -1,    -1,    -1,
+    -1,    -1,    77,    -1,    -1,    30,    77,    -1,    -1,    83,
+    35,    36,    37,    -1,    39,    40,    41,    42,    43,    44,
+    45,    46,    47,    48,    49,    50,    51,    52,    35,    36,
+    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    35,    36,    37,    -1,
+    39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+    49,    50,    51,    52,    37,    -1,    39,    40,    41,    42,
+    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+    50,    51,    52,    41,    42,    43,    44,    45,    46,    47,
+    48,    49,    50,    51,    52
+};
+/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
+#line 3 "/usr/local/share/bison.simple"
+
+/* Skeleton output parser for bison,
+   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+#ifndef alloca
+#ifdef __GNUC__
+#define alloca __builtin_alloca
+#else /* not GNU C.  */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
+#include <alloca.h>
+#else /* not sparc */
+#if defined (MSDOS) && !defined (__TURBOC__)
+#include <malloc.h>
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+#include <malloc.h>
+ #pragma alloca
+#else /* not MSDOS, __TURBOC__, or _AIX */
+#ifdef __hpux
+#ifdef __cplusplus
+extern "C" {
+void *alloca (unsigned int);
+};
+#else /* not __cplusplus */
+void *alloca ();
+#endif /* not __cplusplus */
+#endif /* __hpux */
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc.  */
+#endif /* not GNU C.  */
+#endif /* alloca not defined.  */
+
+/* This is the parser code that is written into each bison parser
+  when the %semantic_parser declaration is not specified in the grammar.
+  It was written by Richard Stallman by simplifying the hairy parser
+  used when %semantic_parser is specified.  */
+
+/* Note: there must be only one dollar sign in this file.
+   It is replaced by the list of actions, each action
+   as one case of the switch.  */
+
+#define yyerrok		(yyerrstatus = 0)
+#define yyclearin	(yychar = YYEMPTY)
+#define YYEMPTY		-2
+#define YYEOF		0
+#define YYACCEPT	return(0)
+#define YYABORT 	return(1)
+#define YYERROR		goto yyerrlab1
+/* Like YYERROR except do call yyerror.
+   This remains here temporarily to ease the
+   transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  */
+#define YYFAIL		goto yyerrlab
+#define YYRECOVERING()  (!!yyerrstatus)
+#define YYBACKUP(token, value) \
+do								\
+  if (yychar == YYEMPTY && yylen == 1)				\
+    { yychar = (token), yylval = (value);			\
+      yychar1 = YYTRANSLATE (yychar);				\
+      YYPOPSTACK;						\
+      goto yybackup;						\
+    }								\
+  else								\
+    { yyerror ("syntax error: cannot back up"); YYERROR; }	\
+while (0)
+
+#define YYTERROR	1
+#define YYERRCODE	256
+
+#ifndef YYPURE
+#define YYLEX		yylex()
+#endif
+
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
+#ifdef YYLEX_PARAM
+#define YYLEX		yylex(&yylval, &yylloc, YYLEX_PARAM)
+#else
+#define YYLEX		yylex(&yylval, &yylloc)
+#endif
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX		yylex(&yylval, YYLEX_PARAM)
+#else
+#define YYLEX		yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
+#endif
+
+/* If nonreentrant, generate the variables here */
+
+#ifndef YYPURE
+
+int	yychar;			/*  the lookahead symbol		*/
+YYSTYPE	yylval;			/*  the semantic value of the		*/
+				/*  lookahead symbol			*/
+
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc;			/*  location data for the lookahead	*/
+				/*  symbol				*/
+#endif
+
+int yynerrs;			/*  number of parse errors so far       */
+#endif  /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug;			/*  nonzero means print parse trace	*/
+/* Since this is uninitialized, it does not stop multiple parsers
+   from coexisting.  */
+#endif
+
+/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/
+
+#ifndef	YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
+
+/*  YYMAXDEPTH is the maximum size the stacks can grow to
+    (effective only if the built-in stack extension method is used).  */
+
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+
+/* Prevent warning if -Wstrict-prototypes.  */
+#ifdef __GNUC__
+int yyparse (void);
+#endif
+
+#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
+#define __yy_memcpy(FROM,TO,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
+#else				/* not GNU C or C++ */
+#ifndef __cplusplus
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (from, to, count)
+     char *from;
+     char *to;
+     int count;
+{
+  register char *f = from;
+  register char *t = to;
+  register int i = count;
+
+  while (i-- > 0)
+    *t++ = *f++;
+}
+
+#else /* __cplusplus */
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (char *from, char *to, int count)
+{
+  register char *f = from;
+  register char *t = to;
+  register int i = count;
+
+  while (i-- > 0)
+    *t++ = *f++;
+}
+
+#endif
+#endif
+
+#line 192 "/usr/local/share/bison.simple"
+
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+   into yyparse.  The argument should have type void *.
+   It should actually point to an object.
+   Grammar actions can access the variable by casting it
+   to the proper pointer type.  */
+
+#ifdef YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#else
+#define YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#endif
+
+int
+yyparse(YYPARSE_PARAM)
+     YYPARSE_PARAM_DECL
+{
+  register int yystate;
+  register int yyn;
+  register short *yyssp;
+  register YYSTYPE *yyvsp;
+  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
+  int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */
+
+  short	yyssa[YYINITDEPTH];	/*  the state stack			*/
+  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/
+
+  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */
+  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */
+
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/
+  YYLTYPE *yyls = yylsa;
+  YYLTYPE *yylsp;
+
+#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
+#else
+#define YYPOPSTACK   (yyvsp--, yyssp--)
+#endif
+
+  int yystacksize = YYINITDEPTH;
+
+#ifdef YYPURE
+  int yychar;
+  YYSTYPE yylval;
+  int yynerrs;
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylloc;
+#endif
+#endif
+
+  YYSTYPE yyval;		/*  the variable used to return		*/
+				/*  semantic values from the action	*/
+				/*  routines				*/
+
+  int yylen;
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Starting parse\n");
+#endif
+
+  yystate = 0;
+  yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY;		/* Cause a token to be read.  */
+
+  /* Initialize stack pointers.
+     Waste one element of value and location stack
+     so that they stay on the same level as the state stack.
+     The wasted elements are never initialized.  */
+
+  yyssp = yyss - 1;
+  yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+  yylsp = yyls;
+#endif
+
+/* Push a new state, which is found in  yystate  .  */
+/* In all cases, when you get here, the value and location stacks
+   have just been pushed. so pushing a state here evens the stacks.  */
+yynewstate:
+
+  *++yyssp = yystate;
+
+  if (yyssp >= yyss + yystacksize - 1)
+    {
+      /* Give user a chance to reallocate the stack */
+      /* Use copies of these so that the &'s don't force the real ones into memory. */
+      YYSTYPE *yyvs1 = yyvs;
+      short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+      YYLTYPE *yyls1 = yyls;
+#endif
+
+      /* Get the current used size of the three stacks, in elements.  */
+      int size = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+      /* Each stack pointer address is followed by the size of
+	 the data in use in that stack, in bytes.  */
+#ifdef YYLSP_NEEDED
+      /* This used to be a conditional around just the two extra args,
+	 but that might be undefined if yyoverflow is a macro.  */
+      yyoverflow("parser stack overflow",
+		 &yyss1, size * sizeof (*yyssp),
+		 &yyvs1, size * sizeof (*yyvsp),
+		 &yyls1, size * sizeof (*yylsp),
+		 &yystacksize);
+#else
+      yyoverflow("parser stack overflow",
+		 &yyss1, size * sizeof (*yyssp),
+		 &yyvs1, size * sizeof (*yyvsp),
+		 &yystacksize);
+#endif
+
+      yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+      yyls = yyls1;
+#endif
+#else /* no yyoverflow */
+      /* Extend the stack our own way.  */
+      if (yystacksize >= YYMAXDEPTH)
+	{
+	  yyerror("parser stack overflow");
+	  return 2;
+	}
+      yystacksize *= 2;
+      if (yystacksize > YYMAXDEPTH)
+	yystacksize = YYMAXDEPTH;
+      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
+      __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
+      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
+      __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
+      __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
+#endif
+#endif /* no yyoverflow */
+
+      yyssp = yyss + size - 1;
+      yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+      yylsp = yyls + size - 1;
+#endif
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
+
+      if (yyssp >= yyss + yystacksize - 1)
+	YYABORT;
+    }
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Entering state %d\n", yystate);
+#endif
+
+  goto yybackup;
+ yybackup:
+
+/* Do appropriate processing given the current state.  */
+/* Read a lookahead token if we need one and don't already have one.  */
+/* yyresume: */
+
+  /* First try to decide what to do without reference to lookahead token.  */
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yydefault;
+
+  /* Not known => get a lookahead token if don't already have one.  */
+
+  /* yychar is either YYEMPTY or YYEOF
+     or a valid token in external form.  */
+
+  if (yychar == YYEMPTY)
+    {
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Reading a token: ");
+#endif
+      yychar = YYLEX;
+    }
+
+  /* Convert token to internal form (in yychar1) for indexing tables with */
+
+  if (yychar <= 0)		/* This means end of input. */
+    {
+      yychar1 = 0;
+      yychar = YYEOF;		/* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Now at end of input.\n");
+#endif
+    }
+  else
+    {
+      yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+      if (yydebug)
+	{
+	  fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+	  /* Give the individual parser a way to print the precise meaning
+	     of a token, for further debugging info.  */
+#ifdef YYPRINT
+	  YYPRINT (stderr, yychar, yylval);
+#endif
+	  fprintf (stderr, ")\n");
+	}
+#endif
+    }
+
+  yyn += yychar1;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+    goto yydefault;
+
+  yyn = yytable[yyn];
+
+  /* yyn is what to do for this token type in this state.
+     Negative => reduce, -yyn is rule number.
+     Positive => shift, yyn is new state.
+       New state is final state => don't bother to shift,
+       just return success.
+     0, or most negative number => error.  */
+
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+	goto yyerrlab;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+  else if (yyn == 0)
+    goto yyerrlab;
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  /* Shift the lookahead token.  */
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
+
+  /* Discard the token being shifted unless it is eof.  */
+  if (yychar != YYEOF)
+    yychar = YYEMPTY;
+
+  *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
+
+  /* count tokens shifted since error; after three, turn off error status.  */
+  if (yyerrstatus) yyerrstatus--;
+
+  yystate = yyn;
+  goto yynewstate;
+
+/* Do the default action for the current state.  */
+yydefault:
+
+  yyn = yydefact[yystate];
+  if (yyn == 0)
+    goto yyerrlab;
+
+/* Do a reduction.  yyn is the number of a rule to reduce with.  */
+yyreduce:
+  yylen = yyr2[yyn];
+  if (yylen > 0)
+    yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      int i;
+
+      fprintf (stderr, "Reducing via rule %d (line %d), ",
+	       yyn, yyrline[yyn]);
+
+      /* Print the symbols being reduced, and their result.  */
+      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+	fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+    }
+#endif
+
+
+  switch (yyn) {
+
+case 1:
+#line 237 "c-parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C forbids an empty source file");
+		  finish_file ();
+		;
+    break;}
+case 2:
+#line 242 "c-parse.y"
+{
+		  /* In case there were missing closebraces,
+		     get us back to the global binding level.  */
+		  while (! global_bindings_p ())
+		    poplevel (0, 0, 0);
+		  finish_file ();
+		;
+    break;}
+case 3:
+#line 256 "c-parse.y"
+{yyval.ttype = NULL_TREE; ;
+    break;}
+case 5:
+#line 257 "c-parse.y"
+{yyval.ttype = NULL_TREE; ;
+    break;}
+case 9:
+#line 264 "c-parse.y"
+{ STRIP_NOPS (yyvsp[-2].ttype);
+		  if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
+		       && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
+		      || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
+		    assemble_asm (yyvsp[-2].ttype);
+		  else
+		    error ("argument of `asm' is not a constant string"); ;
+    break;}
+case 10:
+#line 272 "c-parse.y"
+{ pedantic = yyvsp[-1].itype; ;
+    break;}
+case 11:
+#line 277 "c-parse.y"
+{ if (pedantic)
+		    error ("ANSI C forbids data definition with no type or storage class");
+		  else if (!flag_traditional)
+		    warning ("data definition has no type or storage class"); 
+
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 12:
+#line 287 "c-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 13:
+#line 292 "c-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype);  ;
+    break;}
+case 14:
+#line 297 "c-parse.y"
+{ pedwarn ("empty declaration"); ;
+    break;}
+case 15:
+#line 299 "c-parse.y"
+{ shadow_tag (yyvsp[-1].ttype); ;
+    break;}
+case 18:
+#line 303 "c-parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
+    break;}
+case 19:
+#line 309 "c-parse.y"
+{ if (! start_function (current_declspecs, yyvsp[0].ttype,
+					prefix_attributes, NULL_TREE, 0))
+		    YYERROR1;
+		  reinit_parse_for_function (); ;
+    break;}
+case 20:
+#line 314 "c-parse.y"
+{ store_parm_decls (); ;
+    break;}
+case 21:
+#line 316 "c-parse.y"
+{ finish_function (0); 
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-5].itype); ;
+    break;}
+case 22:
+#line 322 "c-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 23:
+#line 327 "c-parse.y"
+{ if (! start_function (current_declspecs, yyvsp[0].ttype,
+					prefix_attributes, NULL_TREE, 0))
+		    YYERROR1;
+		  reinit_parse_for_function (); ;
+    break;}
+case 24:
+#line 332 "c-parse.y"
+{ store_parm_decls (); ;
+    break;}
+case 25:
+#line 334 "c-parse.y"
+{ finish_function (0); 
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-5].itype); ;
+    break;}
+case 26:
+#line 340 "c-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 27:
+#line 345 "c-parse.y"
+{ if (! start_function (NULL_TREE, yyvsp[0].ttype,
+					prefix_attributes, NULL_TREE, 0))
+		    YYERROR1;
+		  reinit_parse_for_function (); ;
+    break;}
+case 28:
+#line 350 "c-parse.y"
+{ store_parm_decls (); ;
+    break;}
+case 29:
+#line 352 "c-parse.y"
+{ finish_function (0); 
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-5].itype); ;
+    break;}
+case 30:
+#line 358 "c-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 33:
+#line 370 "c-parse.y"
+{ yyval.code = ADDR_EXPR; ;
+    break;}
+case 34:
+#line 372 "c-parse.y"
+{ yyval.code = NEGATE_EXPR; ;
+    break;}
+case 35:
+#line 374 "c-parse.y"
+{ yyval.code = CONVERT_EXPR; ;
+    break;}
+case 36:
+#line 376 "c-parse.y"
+{ yyval.code = PREINCREMENT_EXPR; ;
+    break;}
+case 37:
+#line 378 "c-parse.y"
+{ yyval.code = PREDECREMENT_EXPR; ;
+    break;}
+case 38:
+#line 380 "c-parse.y"
+{ yyval.code = BIT_NOT_EXPR; ;
+    break;}
+case 39:
+#line 382 "c-parse.y"
+{ yyval.code = TRUTH_NOT_EXPR; ;
+    break;}
+case 40:
+#line 386 "c-parse.y"
+{ yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
+    break;}
+case 41:
+#line 391 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 43:
+#line 397 "c-parse.y"
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 44:
+#line 399 "c-parse.y"
+{ chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 46:
+#line 405 "c-parse.y"
+{ yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
+    break;}
+case 47:
+#line 408 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+		  pedantic = yyvsp[-1].itype; ;
+    break;}
+case 48:
+#line 411 "c-parse.y"
+{ yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
+		  overflow_warning (yyval.ttype); ;
+    break;}
+case 49:
+#line 415 "c-parse.y"
+{ tree label = lookup_label (yyvsp[0].ttype);
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids `&&'");
+		  if (label == 0)
+		    yyval.ttype = null_pointer_node;
+		  else
+		    {
+		      TREE_USED (label) = 1;
+		      yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
+		      TREE_CONSTANT (yyval.ttype) = 1;
+		    }
+		;
+    break;}
+case 50:
+#line 443 "c-parse.y"
+{ skip_evaluation--;
+		  if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
+		      && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
+		    error ("`sizeof' applied to a bit-field");
+		  yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
+    break;}
+case 51:
+#line 449 "c-parse.y"
+{ skip_evaluation--;
+		  yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
+    break;}
+case 52:
+#line 452 "c-parse.y"
+{ skip_evaluation--;
+		  yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
+    break;}
+case 53:
+#line 455 "c-parse.y"
+{ skip_evaluation--;
+		  yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
+    break;}
+case 54:
+#line 458 "c-parse.y"
+{ yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
+    break;}
+case 55:
+#line 460 "c-parse.y"
+{ yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
+    break;}
+case 56:
+#line 464 "c-parse.y"
+{ skip_evaluation++; ;
+    break;}
+case 57:
+#line 468 "c-parse.y"
+{ skip_evaluation++; ;
+    break;}
+case 59:
+#line 474 "c-parse.y"
+{ tree type = groktypename (yyvsp[-2].ttype);
+		  yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
+    break;}
+case 60:
+#line 477 "c-parse.y"
+{ start_init (NULL_TREE, NULL, 0);
+		  yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
+		  really_start_incremental_init (yyvsp[-2].ttype); ;
+    break;}
+case 61:
+#line 481 "c-parse.y"
+{ char *name;
+		  tree result = pop_init_level (0);
+		  tree type = yyvsp[-5].ttype;
+		  finish_init ();
+
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids constructor expressions");
+		  if (TYPE_NAME (type) != 0)
+		    {
+		      if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
+			name = IDENTIFIER_POINTER (TYPE_NAME (type));
+		      else
+			name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
+		    }
+		  else
+		    name = "";
+		  yyval.ttype = result;
+		  if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
+		    {
+		      int failure = complete_array_type (type, yyval.ttype, 1);
+		      if (failure)
+			abort ();
+		    }
+		;
+    break;}
+case 63:
+#line 510 "c-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 64:
+#line 512 "c-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 65:
+#line 514 "c-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 66:
+#line 516 "c-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 67:
+#line 518 "c-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 68:
+#line 520 "c-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 69:
+#line 522 "c-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 70:
+#line 524 "c-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 71:
+#line 526 "c-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 72:
+#line 528 "c-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 73:
+#line 530 "c-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 74:
+#line 532 "c-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 75:
+#line 534 "c-parse.y"
+{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
+		  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
+    break;}
+case 76:
+#line 537 "c-parse.y"
+{ skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
+		  yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
+    break;}
+case 77:
+#line 540 "c-parse.y"
+{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
+		  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
+    break;}
+case 78:
+#line 543 "c-parse.y"
+{ skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
+		  yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
+    break;}
+case 79:
+#line 546 "c-parse.y"
+{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
+		  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
+    break;}
+case 80:
+#line 549 "c-parse.y"
+{ skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
+				      - (yyvsp[-4].ttype == boolean_false_node)); ;
+    break;}
+case 81:
+#line 552 "c-parse.y"
+{ skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
+		  yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
+    break;}
+case 82:
+#line 555 "c-parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
+		  /* Make sure first operand is calculated only once.  */
+		  yyvsp[0].ttype = save_expr (yyvsp[-1].ttype);
+		  yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype));
+		  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
+    break;}
+case 83:
+#line 562 "c-parse.y"
+{ skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
+		  yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
+    break;}
+case 84:
+#line 565 "c-parse.y"
+{ yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
+		  C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
+    break;}
+case 85:
+#line 568 "c-parse.y"
+{ yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
+		  /* This inhibits warnings in truthvalue_conversion.  */
+		  C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
+    break;}
+case 86:
+#line 575 "c-parse.y"
+{
+		  yyval.ttype = lastiddecl;
+		  if (!yyval.ttype || yyval.ttype == error_mark_node)
+		    {
+		      if (yychar == YYEMPTY)
+			yychar = YYLEX;
+		      if (yychar == '(')
+			{
+			    {
+			      /* Ordinary implicit function declaration.  */
+			      yyval.ttype = implicitly_declare (yyvsp[0].ttype);
+			      assemble_external (yyval.ttype);
+			      TREE_USED (yyval.ttype) = 1;
+			    }
+			}
+		      else if (current_function_decl == 0)
+			{
+			  error ("`%s' undeclared here (not in a function)",
+				 IDENTIFIER_POINTER (yyvsp[0].ttype));
+			  yyval.ttype = error_mark_node;
+			}
+		      else
+			{
+			    {
+			      if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
+				  || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
+				{
+				  error ("`%s' undeclared (first use this function)",
+					 IDENTIFIER_POINTER (yyvsp[0].ttype));
+
+				  if (! undeclared_variable_notice)
+				    {
+				      error ("(Each undeclared identifier is reported only once");
+				      error ("for each function it appears in.)");
+				      undeclared_variable_notice = 1;
+				    }
+				}
+			      yyval.ttype = error_mark_node;
+			      /* Prevent repeated error messages.  */
+			      IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
+			      IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
+			    }
+			}
+		    }
+		  else if (TREE_TYPE (yyval.ttype) == error_mark_node)
+		    yyval.ttype = error_mark_node;
+		  else if (C_DECL_ANTICIPATED (yyval.ttype))
+		    {
+		      /* The first time we see a build-in function used,
+			 if it has not been declared.  */
+		      C_DECL_ANTICIPATED (yyval.ttype) = 0;
+		      if (yychar == YYEMPTY)
+			yychar = YYLEX;
+		      if (yychar == '(')
+			{
+			  /* Omit the implicit declaration we
+			     would ordinarily do, so we don't lose
+			     the actual built in type.
+			     But print a diagnostic for the mismatch.  */
+			    if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
+			      error ("`%s' implicitly declared as function",
+				     IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
+			  else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
+				    != TYPE_MODE (integer_type_node))
+				   && (TREE_TYPE (TREE_TYPE (yyval.ttype))
+				       != void_type_node))
+			    pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
+				     IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
+			  /* If it really returns void, change that to int.  */
+			  if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
+			    TREE_TYPE (yyval.ttype)
+			      = build_function_type (integer_type_node,
+						     TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
+			}
+		      else
+			pedwarn ("built-in function `%s' used without declaration",
+				 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
+
+		      /* Do what we would ordinarily do when a fn is used.  */
+		      assemble_external (yyval.ttype);
+		      TREE_USED (yyval.ttype) = 1;
+		    }
+		  else
+		    {
+		      assemble_external (yyval.ttype);
+		      TREE_USED (yyval.ttype) = 1;
+		    }
+
+		  if (TREE_CODE (yyval.ttype) == CONST_DECL)
+		    {
+		      yyval.ttype = DECL_INITIAL (yyval.ttype);
+		      /* This is to prevent an enum whose value is 0
+			 from being considered a null pointer constant.  */
+		      yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
+		      TREE_CONSTANT (yyval.ttype) = 1;
+		    }
+		;
+    break;}
+case 88:
+#line 674 "c-parse.y"
+{ yyval.ttype = combine_strings (yyvsp[0].ttype); ;
+    break;}
+case 89:
+#line 676 "c-parse.y"
+{ char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
+		  if (class == 'e' || class == '1'
+		      || class == '2' || class == '<')
+		    C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
+		  yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 90:
+#line 682 "c-parse.y"
+{ yyval.ttype = error_mark_node; ;
+    break;}
+case 91:
+#line 684 "c-parse.y"
+{ if (current_function_decl == 0)
+		    {
+		      error ("braced-group within expression allowed only inside a function");
+		      YYERROR;
+		    }
+		  /* We must force a BLOCK for this level
+		     so that, if it is not expanded later,
+		     there is a way to turn off the entire subtree of blocks
+		     that are contained in it.  */
+		  keep_next_level ();
+		  push_iterator_stack ();
+		  push_label_level ();
+		  yyval.ttype = expand_start_stmt_expr (); ;
+    break;}
+case 92:
+#line 698 "c-parse.y"
+{ tree rtl_exp;
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids braced-groups within expressions");
+		  pop_iterator_stack ();
+		  pop_label_level ();
+		  rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
+		  /* The statements have side effects, so the group does.  */
+		  TREE_SIDE_EFFECTS (rtl_exp) = 1;
+
+		  if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
+		    {
+		      /* Make a BIND_EXPR for the BLOCK already made.  */
+		      yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
+				  NULL_TREE, rtl_exp, yyvsp[-1].ttype);
+		      /* Remove the block from the tree at this point.
+			 It gets put back at the proper place
+			 when the BIND_EXPR is expanded.  */
+		      delete_block (yyvsp[-1].ttype);
+		    }
+		  else
+		    yyval.ttype = yyvsp[-1].ttype;
+		;
+    break;}
+case 93:
+#line 721 "c-parse.y"
+{ yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 94:
+#line 723 "c-parse.y"
+{ yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 95:
+#line 725 "c-parse.y"
+{
+		    yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 96:
+#line 729 "c-parse.y"
+{
+                  tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
+
+                    yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
+		;
+    break;}
+case 97:
+#line 735 "c-parse.y"
+{ yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
+    break;}
+case 98:
+#line 737 "c-parse.y"
+{ yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
+    break;}
+case 100:
+#line 744 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 103:
+#line 753 "c-parse.y"
+{ c_mark_varargs ();
+		  if (pedantic)
+		    pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
+    break;}
+case 104:
+#line 763 "c-parse.y"
+{ ;
+    break;}
+case 109:
+#line 779 "c-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 110:
+#line 784 "c-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);	
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 111:
+#line 789 "c-parse.y"
+{ shadow_tag_warned (yyvsp[-1].ttype, 1);
+		  pedwarn ("empty declaration"); ;
+    break;}
+case 112:
+#line 792 "c-parse.y"
+{ pedwarn ("empty declaration"); ;
+    break;}
+case 113:
+#line 801 "c-parse.y"
+{ ;
+    break;}
+case 118:
+#line 816 "c-parse.y"
+{ yyval.itype = suspend_momentary ();
+		  pending_xref_error ();
+		  declspec_stack = tree_cons (prefix_attributes,
+					      current_declspecs,
+					      declspec_stack);
+		  split_specs_attrs (yyvsp[0].ttype,
+				     &current_declspecs, &prefix_attributes); ;
+    break;}
+case 119:
+#line 827 "c-parse.y"
+{ prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
+    break;}
+case 120:
+#line 832 "c-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 121:
+#line 837 "c-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 122:
+#line 842 "c-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-1].itype); ;
+    break;}
+case 123:
+#line 847 "c-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-1].itype); ;
+    break;}
+case 124:
+#line 852 "c-parse.y"
+{ shadow_tag (yyvsp[-1].ttype); ;
+    break;}
+case 125:
+#line 854 "c-parse.y"
+{ pedwarn ("empty declaration"); ;
+    break;}
+case 126:
+#line 856 "c-parse.y"
+{ pedantic = yyvsp[-1].itype; ;
+    break;}
+case 127:
+#line 866 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 128:
+#line 868 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
+    break;}
+case 129:
+#line 872 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 130:
+#line 874 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 131:
+#line 876 "c-parse.y"
+{ if (extra_warnings)
+		    warning ("`%s' is not at beginning of declaration",
+			     IDENTIFIER_POINTER (yyvsp[0].ttype));
+		  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 132:
+#line 881 "c-parse.y"
+{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
+    break;}
+case 133:
+#line 886 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 134:
+#line 888 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
+    break;}
+case 135:
+#line 893 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 136:
+#line 895 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 137:
+#line 897 "c-parse.y"
+{ if (extra_warnings)
+		    warning ("`%s' is not at beginning of declaration",
+			     IDENTIFIER_POINTER (yyvsp[0].ttype));
+		  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 138:
+#line 910 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 139:
+#line 912 "c-parse.y"
+{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
+    break;}
+case 140:
+#line 914 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 141:
+#line 916 "c-parse.y"
+{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
+    break;}
+case 142:
+#line 921 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
+		  TREE_STATIC (yyval.ttype) = 1; ;
+    break;}
+case 143:
+#line 924 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 144:
+#line 926 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
+		  TREE_STATIC (yyval.ttype) = 1; ;
+    break;}
+case 145:
+#line 929 "c-parse.y"
+{ if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
+		    warning ("`%s' is not at beginning of declaration",
+			     IDENTIFIER_POINTER (yyvsp[0].ttype));
+		  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
+		  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
+    break;}
+case 146:
+#line 943 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 147:
+#line 945 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
+    break;}
+case 148:
+#line 949 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 149:
+#line 951 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 152:
+#line 961 "c-parse.y"
+{ /* For a typedef name, record the meaning, not the name.
+		     In case of `foo foo, bar;'.  */
+		  yyval.ttype = lookup_name (yyvsp[0].ttype); ;
+    break;}
+case 153:
+#line 965 "c-parse.y"
+{ yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
+    break;}
+case 154:
+#line 967 "c-parse.y"
+{ yyval.ttype = groktypename (yyvsp[-1].ttype); ;
+    break;}
+case 162:
+#line 989 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 163:
+#line 991 "c-parse.y"
+{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
+		  yyval.ttype = yyvsp[-1].ttype;
+		;
+    break;}
+case 164:
+#line 998 "c-parse.y"
+{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
+					  yyvsp[-1].ttype, prefix_attributes);
+		  start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
+    break;}
+case 165:
+#line 1003 "c-parse.y"
+{ finish_init ();
+		  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
+    break;}
+case 166:
+#line 1006 "c-parse.y"
+{ tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
+				       yyvsp[0].ttype, prefix_attributes);
+		  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); 
+                ;
+    break;}
+case 167:
+#line 1014 "c-parse.y"
+{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
+					  yyvsp[-1].ttype, prefix_attributes);
+		  start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
+    break;}
+case 168:
+#line 1019 "c-parse.y"
+{ finish_init ();
+		  decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
+		  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
+    break;}
+case 169:
+#line 1023 "c-parse.y"
+{ tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
+				       yyvsp[0].ttype, prefix_attributes);
+		  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
+    break;}
+case 170:
+#line 1031 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 171:
+#line 1033 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 172:
+#line 1038 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 173:
+#line 1040 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 174:
+#line 1045 "c-parse.y"
+{ yyval.ttype = yyvsp[-2].ttype; ;
+    break;}
+case 175:
+#line 1050 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 176:
+#line 1052 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 177:
+#line 1057 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 178:
+#line 1059 "c-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 179:
+#line 1061 "c-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
+    break;}
+case 180:
+#line 1063 "c-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
+    break;}
+case 181:
+#line 1065 "c-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 187:
+#line 1083 "c-parse.y"
+{ really_start_incremental_init (NULL_TREE);
+		  /* Note that the call to clear_momentary
+		     is in process_init_element.  */
+		  push_momentary (); ;
+    break;}
+case 188:
+#line 1088 "c-parse.y"
+{ yyval.ttype = pop_init_level (0);
+		  if (yyval.ttype == error_mark_node
+		      && ! (yychar == STRING || yychar == CONSTANT))
+		    pop_momentary ();
+		  else
+		    pop_momentary_nofree (); ;
+    break;}
+case 189:
+#line 1096 "c-parse.y"
+{ yyval.ttype = error_mark_node; ;
+    break;}
+case 190:
+#line 1102 "c-parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C forbids empty initializer braces"); ;
+    break;}
+case 194:
+#line 1116 "c-parse.y"
+{ process_init_element (yyvsp[0].ttype); ;
+    break;}
+case 195:
+#line 1118 "c-parse.y"
+{ push_init_level (0); ;
+    break;}
+case 196:
+#line 1120 "c-parse.y"
+{ process_init_element (pop_init_level (0)); ;
+    break;}
+case 198:
+#line 1126 "c-parse.y"
+{ set_init_index (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
+    break;}
+case 200:
+#line 1129 "c-parse.y"
+{ set_init_index (yyvsp[-2].ttype, NULL_TREE); ;
+    break;}
+case 202:
+#line 1132 "c-parse.y"
+{ set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
+    break;}
+case 204:
+#line 1135 "c-parse.y"
+{ set_init_label (yyvsp[-1].ttype); ;
+    break;}
+case 206:
+#line 1138 "c-parse.y"
+{ set_init_label (yyvsp[-1].ttype); ;
+    break;}
+case 208:
+#line 1144 "c-parse.y"
+{ push_c_function_context ();
+		  if (! start_function (current_declspecs, yyvsp[0].ttype,
+					prefix_attributes, NULL_TREE, 1))
+		    {
+		      pop_c_function_context ();
+		      YYERROR1;
+		    }
+		  reinit_parse_for_function (); ;
+    break;}
+case 209:
+#line 1153 "c-parse.y"
+{ store_parm_decls (); ;
+    break;}
+case 210:
+#line 1161 "c-parse.y"
+{ finish_function (1);
+		  pop_c_function_context (); ;
+    break;}
+case 211:
+#line 1167 "c-parse.y"
+{ push_c_function_context ();
+		  if (! start_function (current_declspecs, yyvsp[0].ttype,
+					prefix_attributes, NULL_TREE, 1))
+		    {
+		      pop_c_function_context ();
+		      YYERROR1;
+		    }
+		  reinit_parse_for_function (); ;
+    break;}
+case 212:
+#line 1176 "c-parse.y"
+{ store_parm_decls (); ;
+    break;}
+case 213:
+#line 1184 "c-parse.y"
+{ finish_function (1);
+		  pop_c_function_context (); ;
+    break;}
+case 216:
+#line 1200 "c-parse.y"
+{ yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 217:
+#line 1202 "c-parse.y"
+{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 218:
+#line 1207 "c-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 219:
+#line 1209 "c-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
+    break;}
+case 220:
+#line 1211 "c-parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 221:
+#line 1218 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 223:
+#line 1229 "c-parse.y"
+{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 224:
+#line 1234 "c-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 225:
+#line 1236 "c-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
+    break;}
+case 226:
+#line 1238 "c-parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 227:
+#line 1245 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 229:
+#line 1254 "c-parse.y"
+{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 230:
+#line 1259 "c-parse.y"
+{ yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 231:
+#line 1261 "c-parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 232:
+#line 1263 "c-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 233:
+#line 1265 "c-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
+    break;}
+case 234:
+#line 1272 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 236:
+#line 1278 "c-parse.y"
+{ yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
+		  /* Start scope of tag before parsing components.  */
+		;
+    break;}
+case 237:
+#line 1282 "c-parse.y"
+{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 238:
+#line 1284 "c-parse.y"
+{ yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
+				      yyvsp[-2].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 239:
+#line 1288 "c-parse.y"
+{ yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
+    break;}
+case 240:
+#line 1290 "c-parse.y"
+{ yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
+    break;}
+case 241:
+#line 1292 "c-parse.y"
+{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 242:
+#line 1294 "c-parse.y"
+{ yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
+				      yyvsp[-2].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 243:
+#line 1298 "c-parse.y"
+{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
+    break;}
+case 244:
+#line 1300 "c-parse.y"
+{ yyvsp[0].itype = suspend_momentary ();
+		  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
+    break;}
+case 245:
+#line 1303 "c-parse.y"
+{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
+		  resume_momentary (yyvsp[-5].itype); ;
+    break;}
+case 246:
+#line 1306 "c-parse.y"
+{ yyvsp[0].itype = suspend_momentary ();
+		  yyval.ttype = start_enum (NULL_TREE); ;
+    break;}
+case 247:
+#line 1309 "c-parse.y"
+{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
+		  resume_momentary (yyvsp[-5].itype); ;
+    break;}
+case 248:
+#line 1312 "c-parse.y"
+{ yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
+    break;}
+case 252:
+#line 1323 "c-parse.y"
+{ if (pedantic) pedwarn ("comma at end of enumerator list"); ;
+    break;}
+case 253:
+#line 1328 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 254:
+#line 1330 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
+		  pedwarn ("no semicolon at end of struct or union"); ;
+    break;}
+case 255:
+#line 1335 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 256:
+#line 1337 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 257:
+#line 1339 "c-parse.y"
+{ if (pedantic)
+		    pedwarn ("extra semicolon in struct or union specified"); ;
+    break;}
+case 258:
+#line 1354 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-1].itype); ;
+    break;}
+case 259:
+#line 1360 "c-parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C forbids member declarations with no members");
+		  shadow_tag(yyvsp[0].ttype);
+		  yyval.ttype = NULL_TREE; ;
+    break;}
+case 260:
+#line 1365 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-1].itype); ;
+    break;}
+case 261:
+#line 1371 "c-parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C forbids member declarations with no members");
+		  shadow_tag(yyvsp[0].ttype);
+		  yyval.ttype = NULL_TREE; ;
+    break;}
+case 262:
+#line 1376 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 263:
+#line 1378 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+		  pedantic = yyvsp[-1].itype; ;
+    break;}
+case 265:
+#line 1385 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 266:
+#line 1390 "c-parse.y"
+{ yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
+		  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
+    break;}
+case 267:
+#line 1394 "c-parse.y"
+{ yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
+		  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
+    break;}
+case 268:
+#line 1397 "c-parse.y"
+{ yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
+		  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
+    break;}
+case 270:
+#line 1409 "c-parse.y"
+{ if (yyvsp[-2].ttype == error_mark_node)
+		    yyval.ttype = yyvsp[-2].ttype;
+		  else
+		    yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
+    break;}
+case 271:
+#line 1414 "c-parse.y"
+{ yyval.ttype = error_mark_node; ;
+    break;}
+case 272:
+#line 1420 "c-parse.y"
+{ yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 273:
+#line 1422 "c-parse.y"
+{ yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 274:
+#line 1427 "c-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 275:
+#line 1429 "c-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 276:
+#line 1434 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 278:
+#line 1440 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 279:
+#line 1442 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 280:
+#line 1447 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 281:
+#line 1449 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 282:
+#line 1454 "c-parse.y"
+{ yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 283:
+#line 1457 "c-parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 284:
+#line 1459 "c-parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 285:
+#line 1461 "c-parse.y"
+{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 286:
+#line 1463 "c-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 287:
+#line 1465 "c-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
+    break;}
+case 288:
+#line 1467 "c-parse.y"
+{ yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 289:
+#line 1469 "c-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
+    break;}
+case 290:
+#line 1471 "c-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
+    break;}
+case 291:
+#line 1482 "c-parse.y"
+{
+		  if (pedantic && yyvsp[0].ends_in_label)
+		    pedwarn ("ANSI C forbids label at end of compound statement");
+		;
+    break;}
+case 293:
+#line 1491 "c-parse.y"
+{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
+    break;}
+case 294:
+#line 1493 "c-parse.y"
+{ yyval.ends_in_label = 0; ;
+    break;}
+case 298:
+#line 1505 "c-parse.y"
+{ emit_line_note (input_filename, lineno);
+		  pushlevel (0);
+		  clear_last_expr ();
+		  push_momentary ();
+		  expand_start_bindings (0);
+		;
+    break;}
+case 300:
+#line 1518 "c-parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C forbids label declarations"); ;
+    break;}
+case 303:
+#line 1529 "c-parse.y"
+{ tree link;
+		  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
+		    {
+		      tree label = shadow_label (TREE_VALUE (link));
+		      C_DECLARED_LABEL_FLAG (label) = 1;
+		      declare_nonlocal_label (label);
+		    }
+		;
+    break;}
+case 304:
+#line 1543 "c-parse.y"
+{;
+    break;}
+case 306:
+#line 1548 "c-parse.y"
+{ yyval.ttype = convert (void_type_node, integer_zero_node); ;
+    break;}
+case 307:
+#line 1550 "c-parse.y"
+{ emit_line_note (input_filename, lineno);
+		  expand_end_bindings (getdecls (), 1, 0);
+		  yyval.ttype = poplevel (1, 1, 0);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary (); ;
+    break;}
+case 308:
+#line 1558 "c-parse.y"
+{ emit_line_note (input_filename, lineno);
+		  expand_end_bindings (getdecls (), kept_level_p (), 0);
+		  yyval.ttype = poplevel (kept_level_p (), 0, 0);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary (); ;
+    break;}
+case 309:
+#line 1566 "c-parse.y"
+{ emit_line_note (input_filename, lineno);
+		  expand_end_bindings (getdecls (), kept_level_p (), 0);
+		  yyval.ttype = poplevel (kept_level_p (), 0, 0);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary (); ;
+    break;}
+case 312:
+#line 1586 "c-parse.y"
+{ emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
+		  expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
+		  yyval.itype = stmt_count;
+		  if_stmt_file = yyvsp[-5].filename;
+		  if_stmt_line = yyvsp[-4].lineno;
+		  position_after_white_space (); ;
+    break;}
+case 313:
+#line 1599 "c-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
+		  /* See comment in `while' alternative, above.  */
+		  emit_nop ();
+		  expand_start_loop_continue_elsewhere (1);
+		  position_after_white_space (); ;
+    break;}
+case 314:
+#line 1606 "c-parse.y"
+{ expand_loop_continue_here (); ;
+    break;}
+case 315:
+#line 1610 "c-parse.y"
+{ yyval.filename = input_filename; ;
+    break;}
+case 316:
+#line 1614 "c-parse.y"
+{ yyval.lineno = lineno; ;
+    break;}
+case 317:
+#line 1619 "c-parse.y"
+{ ;
+    break;}
+case 318:
+#line 1624 "c-parse.y"
+{ ;
+    break;}
+case 319:
+#line 1629 "c-parse.y"
+{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
+    break;}
+case 320:
+#line 1634 "c-parse.y"
+{ yyval.ends_in_label = 0; ;
+    break;}
+case 321:
+#line 1636 "c-parse.y"
+{ yyval.ends_in_label = 1; ;
+    break;}
+case 322:
+#line 1642 "c-parse.y"
+{ stmt_count++; ;
+    break;}
+case 324:
+#line 1645 "c-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
+/* It appears that this should not be done--that a non-lvalue array
+   shouldn't get an error if the value isn't used.
+   Section 3.2.2.1 says that an array lvalue gets converted to a pointer
+   if it appears as a top-level expression,
+   but says nothing about non-lvalue arrays.  */
+#if 0
+		  /* Call default_conversion to get an error
+		     on referring to a register array if pedantic.  */
+		  if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
+		      || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
+		    yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
+#endif
+		  iterator_expand (yyvsp[-1].ttype);
+		  clear_momentary (); ;
+    break;}
+case 325:
+#line 1662 "c-parse.y"
+{ expand_start_else ();
+		  yyvsp[-1].itype = stmt_count;
+		  position_after_white_space (); ;
+    break;}
+case 326:
+#line 1666 "c-parse.y"
+{ expand_end_cond ();
+		  if (extra_warnings && stmt_count == yyvsp[-3].itype)
+		    warning ("empty body in an else-statement"); ;
+    break;}
+case 327:
+#line 1670 "c-parse.y"
+{ expand_end_cond ();
+		  /* This warning is here instead of in simple_if, because we
+		     do not want a warning if an empty if is followed by an
+		     else statement.  Increment stmt_count so we don't
+		     give a second error if this is a nested `if'.  */
+		  if (extra_warnings && stmt_count++ == yyvsp[0].itype)
+		    warning_with_file_and_line (if_stmt_file, if_stmt_line,
+						"empty body in an if-statement"); ;
+    break;}
+case 328:
+#line 1682 "c-parse.y"
+{ expand_end_cond (); ;
+    break;}
+case 329:
+#line 1684 "c-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
+		  /* The emit_nop used to come before emit_line_note,
+		     but that made the nop seem like part of the preceding line.
+		     And that was confusing when the preceding line was
+		     inside of an if statement and was not really executed.
+		     I think it ought to work to put the nop after the line number.
+		     We will see.  --rms, July 15, 1991.  */
+		  emit_nop (); ;
+    break;}
+case 330:
+#line 1694 "c-parse.y"
+{ /* Don't start the loop till we have succeeded
+		     in parsing the end test.  This is to make sure
+		     that we end every loop we start.  */
+		  expand_start_loop (1);
+		  emit_line_note (input_filename, lineno);
+		  expand_exit_loop_if_false (NULL_PTR,
+					     truthvalue_conversion (yyvsp[-1].ttype));
+		  position_after_white_space (); ;
+    break;}
+case 331:
+#line 1703 "c-parse.y"
+{ expand_end_loop (); ;
+    break;}
+case 332:
+#line 1706 "c-parse.y"
+{ emit_line_note (input_filename, lineno);
+		  expand_exit_loop_if_false (NULL_PTR,
+					     truthvalue_conversion (yyvsp[-2].ttype));
+		  expand_end_loop ();
+		  clear_momentary (); ;
+    break;}
+case 333:
+#line 1713 "c-parse.y"
+{ expand_end_loop ();
+		  clear_momentary (); ;
+    break;}
+case 334:
+#line 1717 "c-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
+		  /* See comment in `while' alternative, above.  */
+		  emit_nop ();
+		  if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
+		  /* Next step is to call expand_start_loop_continue_elsewhere,
+		     but wait till after we parse the entire for (...).
+		     Otherwise, invalid input might cause us to call that
+		     fn without calling expand_end_loop.  */
+		;
+    break;}
+case 335:
+#line 1729 "c-parse.y"
+{ yyvsp[0].lineno = lineno;
+		  yyval.filename = input_filename; ;
+    break;}
+case 336:
+#line 1732 "c-parse.y"
+{ 
+		  /* Start the loop.  Doing this after parsing
+		     all the expressions ensures we will end the loop.  */
+		  expand_start_loop_continue_elsewhere (1);
+		  /* Emit the end-test, with a line number.  */
+		  emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
+		  if (yyvsp[-4].ttype)
+		    expand_exit_loop_if_false (NULL_PTR,
+					       truthvalue_conversion (yyvsp[-4].ttype));
+		  /* Don't let the tree nodes for $9 be discarded by
+		     clear_momentary during the parsing of the next stmt.  */
+		  push_momentary ();
+		  yyvsp[-3].lineno = lineno;
+		  yyvsp[-2].filename = input_filename;
+		  position_after_white_space (); ;
+    break;}
+case 337:
+#line 1748 "c-parse.y"
+{ /* Emit the increment expression, with a line number.  */
+		  emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
+		  expand_loop_continue_here ();
+		  if (yyvsp[-3].ttype)
+		    c_expand_expr_stmt (yyvsp[-3].ttype);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary ();
+		  expand_end_loop (); ;
+    break;}
+case 338:
+#line 1759 "c-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
+		  c_expand_start_case (yyvsp[-1].ttype);
+		  /* Don't let the tree nodes for $3 be discarded by
+		     clear_momentary during the parsing of the next stmt.  */
+		  push_momentary ();
+		  position_after_white_space (); ;
+    break;}
+case 339:
+#line 1767 "c-parse.y"
+{ expand_end_case (yyvsp[-3].ttype);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary (); ;
+    break;}
+case 340:
+#line 1773 "c-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
+		  if ( ! expand_exit_something ())
+		    error ("break statement not within loop or switch"); ;
+    break;}
+case 341:
+#line 1778 "c-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
+		  if (! expand_continue_loop (NULL_PTR))
+		    error ("continue statement not within a loop"); ;
+    break;}
+case 342:
+#line 1783 "c-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
+		  c_expand_return (NULL_TREE); ;
+    break;}
+case 343:
+#line 1787 "c-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
+		  c_expand_return (yyvsp[-1].ttype); ;
+    break;}
+case 344:
+#line 1791 "c-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
+		  STRIP_NOPS (yyvsp[-2].ttype);
+		  if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
+		       && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
+		      || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
+		    expand_asm (yyvsp[-2].ttype);
+		  else
+		    error ("argument of `asm' is not a constant string"); ;
+    break;}
+case 345:
+#line 1802 "c-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
+		  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
+					 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
+					 input_filename, lineno); ;
+    break;}
+case 346:
+#line 1809 "c-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
+		  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
+					 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
+					 input_filename, lineno); ;
+    break;}
+case 347:
+#line 1817 "c-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
+		  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
+					 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
+					 input_filename, lineno); ;
+    break;}
+case 348:
+#line 1823 "c-parse.y"
+{ tree decl;
+		  stmt_count++;
+		  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
+		  decl = lookup_label (yyvsp[-1].ttype);
+		  if (decl != 0)
+		    {
+		      TREE_USED (decl) = 1;
+		      expand_goto (decl);
+		    }
+		;
+    break;}
+case 349:
+#line 1834 "c-parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C forbids `goto *expr;'");
+		  stmt_count++;
+		  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
+		  expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
+    break;}
+case 352:
+#line 1849 "c-parse.y"
+{
+	    /* The value returned by this action is  */
+	    /*      1 if everything is OK */ 
+	    /*      0 in case of error or already bound iterator */
+
+	    yyval.itype = 0;
+	    if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL)
+	      error ("invalid `for (ITERATOR)' syntax");
+	    else if (! ITERATOR_P (yyvsp[-1].ttype))
+	      error ("`%s' is not an iterator",
+		     IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
+	    else if (ITERATOR_BOUND_P (yyvsp[-1].ttype))
+	      error ("`for (%s)' inside expansion of same iterator",
+		     IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
+	    else
+	      {
+		yyval.itype = 1;
+		iterator_for_loop_start (yyvsp[-1].ttype);
+	      }
+	  ;
+    break;}
+case 353:
+#line 1870 "c-parse.y"
+{
+	    if (yyvsp[-1].itype)
+	      iterator_for_loop_end (yyvsp[-3].ttype);
+	  ;
+    break;}
+case 354:
+#line 1905 "c-parse.y"
+{ register tree value = check_case_value (yyvsp[-1].ttype);
+		  register tree label
+		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
+
+		  stmt_count++;
+
+		  if (value != error_mark_node)
+		    {
+		      tree duplicate;
+		      int success = pushcase (value, convert_and_check,
+					      label, &duplicate);
+		      if (success == 1)
+			error ("case label not within a switch statement");
+		      else if (success == 2)
+			{
+			  error ("duplicate case value");
+			  error_with_decl (duplicate, "this is the first entry for that value");
+			}
+		      else if (success == 3)
+			warning ("case value out of range");
+		      else if (success == 5)
+			error ("case label within scope of cleanup or variable array");
+		    }
+		  position_after_white_space (); ;
+    break;}
+case 355:
+#line 1930 "c-parse.y"
+{ register tree value1 = check_case_value (yyvsp[-3].ttype);
+		  register tree value2 = check_case_value (yyvsp[-1].ttype);
+		  register tree label
+		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
+
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids case ranges");
+		  stmt_count++;
+
+		  if (value1 != error_mark_node && value2 != error_mark_node)
+		    {
+		      tree duplicate;
+		      int success = pushcase_range (value1, value2,
+						    convert_and_check, label,
+						    &duplicate);
+		      if (success == 1)
+			error ("case label not within a switch statement");
+		      else if (success == 2)
+			{
+			  error ("duplicate case value");
+			  error_with_decl (duplicate, "this is the first entry for that value");
+			}
+		      else if (success == 3)
+			warning ("case value out of range");
+		      else if (success == 4)
+			warning ("empty case range");
+		      else if (success == 5)
+			error ("case label within scope of cleanup or variable array");
+		    }
+		  position_after_white_space (); ;
+    break;}
+case 356:
+#line 1961 "c-parse.y"
+{
+		  tree duplicate;
+		  register tree label
+		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
+		  int success = pushcase (NULL_TREE, 0, label, &duplicate);
+		  stmt_count++;
+		  if (success == 1)
+		    error ("default label not within a switch statement");
+		  else if (success == 2)
+		    {
+		      error ("multiple default labels in one switch");
+		      error_with_decl (duplicate, "this is the first default label");
+		    }
+		  position_after_white_space (); ;
+    break;}
+case 357:
+#line 1976 "c-parse.y"
+{ tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
+		  stmt_count++;
+		  emit_nop ();
+		  if (label)
+		    expand_label (label);
+		  position_after_white_space (); ;
+    break;}
+case 358:
+#line 1988 "c-parse.y"
+{ emit_line_note (input_filename, lineno);
+		  yyval.ttype = NULL_TREE; ;
+    break;}
+case 359:
+#line 1991 "c-parse.y"
+{ emit_line_note (input_filename, lineno); ;
+    break;}
+case 360:
+#line 1996 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 362:
+#line 2003 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 365:
+#line 2010 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 366:
+#line 2015 "c-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 367:
+#line 2020 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
+    break;}
+case 368:
+#line 2022 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
+    break;}
+case 369:
+#line 2028 "c-parse.y"
+{ pushlevel (0);
+		  clear_parm_order ();
+		  declare_parm_level (0); ;
+    break;}
+case 370:
+#line 2032 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+		  parmlist_tags_warning ();
+		  poplevel (0, 0, 0); ;
+    break;}
+case 372:
+#line 2040 "c-parse.y"
+{ tree parm;
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids forward parameter declarations");
+		  /* Mark the forward decls as such.  */
+		  for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
+		    TREE_ASM_WRITTEN (parm) = 1;
+		  clear_parm_order (); ;
+    break;}
+case 373:
+#line 2048 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 374:
+#line 2050 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
+    break;}
+case 375:
+#line 2056 "c-parse.y"
+{ yyval.ttype = get_parm_info (0); ;
+    break;}
+case 376:
+#line 2058 "c-parse.y"
+{ yyval.ttype = get_parm_info (0);
+		  /* Gcc used to allow this as an extension.  However, it does
+		     not work for all targets, and thus has been disabled.
+		     Also, since func (...) and func () are indistinguishable,
+		     it caused problems with the code in expand_builtin which
+		     tries to verify that BUILT_IN_NEXT_ARG is being used
+		     correctly.  */
+		  error ("ANSI C requires a named argument before `...'");
+		;
+    break;}
+case 377:
+#line 2068 "c-parse.y"
+{ yyval.ttype = get_parm_info (1); ;
+    break;}
+case 378:
+#line 2070 "c-parse.y"
+{ yyval.ttype = get_parm_info (0); ;
+    break;}
+case 379:
+#line 2075 "c-parse.y"
+{ push_parm_decl (yyvsp[0].ttype); ;
+    break;}
+case 380:
+#line 2077 "c-parse.y"
+{ push_parm_decl (yyvsp[0].ttype); ;
+    break;}
+case 381:
+#line 2084 "c-parse.y"
+{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
+							 yyvsp[-1].ttype),
+					build_tree_list (prefix_attributes,
+							 yyvsp[0].ttype));
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 382:
+#line 2093 "c-parse.y"
+{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
+							 yyvsp[-1].ttype),
+					build_tree_list (prefix_attributes,
+							 yyvsp[0].ttype)); 
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 383:
+#line 2102 "c-parse.y"
+{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
+							 yyvsp[-1].ttype),
+					build_tree_list (prefix_attributes,
+							 yyvsp[0].ttype));
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 384:
+#line 2111 "c-parse.y"
+{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
+							 yyvsp[-1].ttype),
+					build_tree_list (prefix_attributes,
+							 yyvsp[0].ttype));
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype);  ;
+    break;}
+case 385:
+#line 2121 "c-parse.y"
+{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
+							 yyvsp[-1].ttype),
+					build_tree_list (prefix_attributes,
+							 yyvsp[0].ttype));
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype);  ;
+    break;}
+case 386:
+#line 2135 "c-parse.y"
+{ pushlevel (0);
+		  clear_parm_order ();
+		  declare_parm_level (1); ;
+    break;}
+case 387:
+#line 2139 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+		  parmlist_tags_warning ();
+		  poplevel (0, 0, 0); ;
+    break;}
+case 389:
+#line 2147 "c-parse.y"
+{ tree t;
+		  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
+		    if (TREE_VALUE (t) == NULL_TREE)
+		      error ("`...' in old-style identifier list");
+		  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
+    break;}
+case 390:
+#line 2157 "c-parse.y"
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 391:
+#line 2159 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 392:
+#line 2165 "c-parse.y"
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 393:
+#line 2167 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 394:
+#line 2172 "c-parse.y"
+{ yyval.itype = pedantic;
+		  pedantic = 0; ;
+    break;}
+}
+   /* the action file gets copied in in place of this dollarsign */
+#line 487 "/usr/local/share/bison.simple"
+
+  yyvsp -= yylen;
+  yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+  yylsp -= yylen;
+#endif
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "state stack now");
+      while (ssp1 != yyssp)
+	fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
+
+  *++yyvsp = yyval;
+
+#ifdef YYLSP_NEEDED
+  yylsp++;
+  if (yylen == 0)
+    {
+      yylsp->first_line = yylloc.first_line;
+      yylsp->first_column = yylloc.first_column;
+      yylsp->last_line = (yylsp-1)->last_line;
+      yylsp->last_column = (yylsp-1)->last_column;
+      yylsp->text = 0;
+    }
+  else
+    {
+      yylsp->last_line = (yylsp+yylen-1)->last_line;
+      yylsp->last_column = (yylsp+yylen-1)->last_column;
+    }
+#endif
+
+  /* Now "shift" the result of the reduction.
+     Determine what state that goes to,
+     based on the state we popped back to
+     and the rule number reduced by.  */
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTBASE];
+
+  goto yynewstate;
+
+yyerrlab:   /* here on detecting error */
+
+  if (! yyerrstatus)
+    /* If not already recovering from an error, report this error.  */
+    {
+      ++yynerrs;
+
+#ifdef YYERROR_VERBOSE
+      yyn = yypact[yystate];
+
+      if (yyn > YYFLAG && yyn < YYLAST)
+	{
+	  int size = 0;
+	  char *msg;
+	  int x, count;
+
+	  count = 0;
+	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
+	  for (x = (yyn < 0 ? -yyn : 0);
+	       x < (sizeof(yytname) / sizeof(char *)); x++)
+	    if (yycheck[x + yyn] == x)
+	      size += strlen(yytname[x]) + 15, count++;
+	  msg = (char *) malloc(size + 15);
+	  if (msg != 0)
+	    {
+	      strcpy(msg, "parse error");
+
+	      if (count < 5)
+		{
+		  count = 0;
+		  for (x = (yyn < 0 ? -yyn : 0);
+		       x < (sizeof(yytname) / sizeof(char *)); x++)
+		    if (yycheck[x + yyn] == x)
+		      {
+			strcat(msg, count == 0 ? ", expecting `" : " or `");
+			strcat(msg, yytname[x]);
+			strcat(msg, "'");
+			count++;
+		      }
+		}
+	      yyerror(msg);
+	      free(msg);
+	    }
+	  else
+	    yyerror ("parse error; also virtual memory exceeded");
+	}
+      else
+#endif /* YYERROR_VERBOSE */
+	yyerror("parse error");
+    }
+
+  goto yyerrlab1;
+yyerrlab1:   /* here on error raised explicitly by an action */
+
+  if (yyerrstatus == 3)
+    {
+      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
+
+      /* return failure if at end of input */
+      if (yychar == YYEOF)
+	YYABORT;
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
+
+      yychar = YYEMPTY;
+    }
+
+  /* Else will try to reuse lookahead token
+     after shifting the error token.  */
+
+  yyerrstatus = 3;		/* Each real token shifted decrements this */
+
+  goto yyerrhandle;
+
+yyerrdefault:  /* current state does not do anything special for the error token. */
+
+#if 0
+  /* This is wrong; only states that explicitly want error tokens
+     should shift them.  */
+  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
+  if (yyn) goto yydefault;
+#endif
+
+yyerrpop:   /* pop the current state because it cannot handle the error token */
+
+  if (yyssp == yyss) YYABORT;
+  yyvsp--;
+  yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+  yylsp--;
+#endif
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "Error: state stack now");
+      while (ssp1 != yyssp)
+	fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
+
+yyerrhandle:
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yyerrdefault;
+
+  yyn += YYTERROR;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+    goto yyerrdefault;
+
+  yyn = yytable[yyn];
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+	goto yyerrpop;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+  else if (yyn == 0)
+    goto yyerrpop;
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting error token, ");
+#endif
+
+  *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
+
+  yystate = yyn;
+  goto yynewstate;
+}
+#line 2176 "c-parse.y"
+
diff --git a/gcc/c-parse.h b/gcc/c-parse.h
new file mode 100644
index 0000000..21b3d0c
--- /dev/null
+++ b/gcc/c-parse.h
@@ -0,0 +1,64 @@
+typedef union {long itype; tree ttype; enum tree_code code;
+	char *filename; int lineno; int ends_in_label; } YYSTYPE;
+#define	IDENTIFIER	258
+#define	TYPENAME	259
+#define	SCSPEC	260
+#define	TYPESPEC	261
+#define	TYPE_QUAL	262
+#define	CONSTANT	263
+#define	STRING	264
+#define	ELLIPSIS	265
+#define	SIZEOF	266
+#define	ENUM	267
+#define	STRUCT	268
+#define	UNION	269
+#define	IF	270
+#define	ELSE	271
+#define	WHILE	272
+#define	DO	273
+#define	FOR	274
+#define	SWITCH	275
+#define	CASE	276
+#define	DEFAULT	277
+#define	BREAK	278
+#define	CONTINUE	279
+#define	RETURN	280
+#define	GOTO	281
+#define	ASM_KEYWORD	282
+#define	TYPEOF	283
+#define	ALIGNOF	284
+#define	ATTRIBUTE	285
+#define	EXTENSION	286
+#define	LABEL	287
+#define	REALPART	288
+#define	IMAGPART	289
+#define	ASSIGN	290
+#define	OROR	291
+#define	ANDAND	292
+#define	EQCOMPARE	293
+#define	ARITHCOMPARE	294
+#define	LSHIFT	295
+#define	RSHIFT	296
+#define	UNARY	297
+#define	PLUSPLUS	298
+#define	MINUSMINUS	299
+#define	HYPERUNARY	300
+#define	POINTSAT	301
+#define	INTERFACE	302
+#define	IMPLEMENTATION	303
+#define	END	304
+#define	SELECTOR	305
+#define	DEFS	306
+#define	ENCODE	307
+#define	CLASSNAME	308
+#define	PUBLIC	309
+#define	PRIVATE	310
+#define	PROTECTED	311
+#define	PROTOCOL	312
+#define	OBJECTNAME	313
+#define	CLASS	314
+#define	ALIAS	315
+#define	OBJC_STRING	316
+
+
+extern YYSTYPE yylval;
diff --git a/gcc/c-parse.y b/gcc/c-parse.y
new file mode 100644
index 0000000..fd2b0f9
--- /dev/null
+++ b/gcc/c-parse.y
@@ -0,0 +1,2176 @@
+/*WARNING: This file is automatically generated!*/
+/* YACC parser for C syntax and for Objective C.  -*-c-*-
+   Copyright (C) 1987, 88, 89, 92-6, 1997 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* This file defines the grammar of C and that of Objective C.
+   ifobjc ... end ifobjc  conditionals contain code for Objective C only.
+   ifc ... end ifc  conditionals contain code for C only.
+   Sed commands in Makefile.in are used to convert this file into
+   c-parse.y and into objc-parse.y.  */
+
+/* To whomever it may concern: I have heard that such a thing was once
+   written by AT&T, but I have never seen it.  */
+
+%expect 46
+
+/* These are the 23 conflicts you should get in parse.output;
+   the state numbers may vary if minor changes in the grammar are made.
+
+State 42 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTE.)
+State 44 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
+State 103 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
+State 110 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTE.)
+State 111 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
+State 115 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
+State 132 contains 1 shift/reduce conflict.  (See comment at component_decl.)
+State 180 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTE.)
+State 194 contains 2 shift/reduce conflict.  (Four ways to parse this.)
+State 202 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
+State 214 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
+State 220 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
+State 304 contains 2 shift/reduce conflicts.  (Four ways to parse this.)
+State 335 contains 2 shift/reduce conflicts.  (Four ways to parse this.)
+State 347 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTES.)
+State 352 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTES.)
+State 383 contains 2 shift/reduce conflicts.  (Four ways to parse this.)
+State 434 contains 2 shift/reduce conflicts.  (Four ways to parse this.)  */
+
+
+%{
+#include <stdio.h>
+#include <errno.h>
+#include <setjmp.h>
+
+#include "config.h"
+#include "tree.h"
+#include "input.h"
+#include "c-lex.h"
+#include "c-tree.h"
+#include "flags.h"
+
+#ifdef MULTIBYTE_CHARS
+#include <stdlib.h>
+#include <locale.h>
+#endif
+
+
+/* Since parsers are distinct for each language, put the language string
+   definition here.  */
+char *language_string = "GNU C";
+
+#ifndef errno
+extern int errno;
+#endif
+
+void yyerror ();
+
+/* Like YYERROR but do call yyerror.  */
+#define YYERROR1 { yyerror ("syntax error"); YYERROR; }
+
+/* Cause the `yydebug' variable to be defined.  */
+#define YYDEBUG 1
+%}
+
+%start program
+
+%union {long itype; tree ttype; enum tree_code code;
+	char *filename; int lineno; int ends_in_label; }
+
+/* All identifiers that are not reserved words
+   and are not declared typedefs in the current block */
+%token IDENTIFIER
+
+/* All identifiers that are declared typedefs in the current block.
+   In some contexts, they are treated just like IDENTIFIER,
+   but they can also serve as typespecs in declarations.  */
+%token TYPENAME
+
+/* Reserved words that specify storage class.
+   yylval contains an IDENTIFIER_NODE which indicates which one.  */
+%token SCSPEC
+
+/* Reserved words that specify type.
+   yylval contains an IDENTIFIER_NODE which indicates which one.  */
+%token TYPESPEC
+
+/* Reserved words that qualify type: "const" or "volatile".
+   yylval contains an IDENTIFIER_NODE which indicates which one.  */
+%token TYPE_QUAL
+
+/* Character or numeric constants.
+   yylval is the node for the constant.  */
+%token CONSTANT
+
+/* String constants in raw form.
+   yylval is a STRING_CST node.  */
+%token STRING
+
+/* "...", used for functions with variable arglists.  */
+%token ELLIPSIS
+
+/* the reserved words */
+/* SCO include files test "ASM", so use something else. */
+%token SIZEOF ENUM STRUCT UNION IF ELSE WHILE DO FOR SWITCH CASE DEFAULT
+%token BREAK CONTINUE RETURN GOTO ASM_KEYWORD TYPEOF ALIGNOF
+%token ATTRIBUTE EXTENSION LABEL
+%token REALPART IMAGPART
+
+/* Add precedence rules to solve dangling else s/r conflict */
+%nonassoc IF
+%nonassoc ELSE
+
+/* Define the operator tokens and their precedences.
+   The value is an integer because, if used, it is the tree code
+   to use in the expression made from the operator.  */
+
+%right <code> ASSIGN '='
+%right <code> '?' ':'
+%left <code> OROR
+%left <code> ANDAND
+%left <code> '|'
+%left <code> '^'
+%left <code> '&'
+%left <code> EQCOMPARE
+%left <code> ARITHCOMPARE
+%left <code> LSHIFT RSHIFT
+%left <code> '+' '-'
+%left <code> '*' '/' '%'
+%right <code> UNARY PLUSPLUS MINUSMINUS
+%left HYPERUNARY
+%left <code> POINTSAT '.' '(' '['
+
+/* The Objective-C keywords.  These are included in C and in
+   Objective C, so that the token codes are the same in both.  */
+%token INTERFACE IMPLEMENTATION END SELECTOR DEFS ENCODE
+%token CLASSNAME PUBLIC PRIVATE PROTECTED PROTOCOL OBJECTNAME CLASS ALIAS
+
+/* Objective-C string constants in raw form.
+   yylval is an OBJC_STRING_CST node.  */
+%token OBJC_STRING
+
+
+%type <code> unop
+
+%type <ttype> identifier IDENTIFIER TYPENAME CONSTANT expr nonnull_exprlist exprlist
+%type <ttype> expr_no_commas cast_expr unary_expr primary string STRING
+%type <ttype> typed_declspecs reserved_declspecs
+%type <ttype> typed_typespecs reserved_typespecquals
+%type <ttype> declmods typespec typespecqual_reserved
+%type <ttype> typed_declspecs_no_prefix_attr reserved_declspecs_no_prefix_attr
+%type <ttype> declmods_no_prefix_attr
+%type <ttype> SCSPEC TYPESPEC TYPE_QUAL nonempty_type_quals maybe_type_qual
+%type <ttype> initdecls notype_initdecls initdcl notype_initdcl
+%type <ttype> init maybeasm
+%type <ttype> asm_operands nonnull_asm_operands asm_operand asm_clobbers
+%type <ttype> maybe_attribute attributes attribute attribute_list attrib
+%type <ttype> any_word
+
+%type <ttype> compstmt
+
+%type <ttype> declarator
+%type <ttype> notype_declarator after_type_declarator
+%type <ttype> parm_declarator
+
+%type <ttype> structsp component_decl_list component_decl_list2
+%type <ttype> component_decl components component_declarator
+%type <ttype> enumlist enumerator
+%type <ttype> typename absdcl absdcl1 type_quals
+%type <ttype> xexpr parms parm identifiers
+
+%type <ttype> parmlist parmlist_1 parmlist_2
+%type <ttype> parmlist_or_identifiers parmlist_or_identifiers_1
+%type <ttype> identifiers_or_typenames
+
+%type <itype> setspecs
+
+%type <ends_in_label> lineno_stmt_or_label lineno_stmt_or_labels stmt_or_label
+
+%type <filename> save_filename
+%type <lineno> save_lineno
+
+
+%{
+/* Number of statements (loosely speaking) seen so far.  */
+static int stmt_count;
+
+/* Input file and line number of the end of the body of last simple_if;
+   used by the stmt-rule immediately after simple_if returns.  */
+static char *if_stmt_file;
+static int if_stmt_line;
+
+/* List of types and structure classes of the current declaration.  */
+static tree current_declspecs = NULL_TREE;
+static tree prefix_attributes = NULL_TREE;
+
+/* Stack of saved values of current_declspecs and prefix_attributes.  */
+static tree declspec_stack;
+
+/* 1 if we explained undeclared var errors.  */
+static int undeclared_variable_notice;
+
+
+/* Tell yyparse how to print a token's value, if yydebug is set.  */
+
+#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
+extern void yyprint ();
+%}
+
+%%
+program: /* empty */
+		{ if (pedantic)
+		    pedwarn ("ANSI C forbids an empty source file");
+		  finish_file ();
+		}
+	| extdefs
+		{
+		  /* In case there were missing closebraces,
+		     get us back to the global binding level.  */
+		  while (! global_bindings_p ())
+		    poplevel (0, 0, 0);
+		  finish_file ();
+		}
+	;
+
+/* the reason for the strange actions in this rule
+ is so that notype_initdecls when reached via datadef
+ can find a valid list of type and sc specs in $0. */
+
+extdefs:
+	{$<ttype>$ = NULL_TREE; } extdef
+	| extdefs {$<ttype>$ = NULL_TREE; } extdef
+	;
+
+extdef:
+	fndef
+	| datadef
+	| ASM_KEYWORD '(' expr ')' ';'
+		{ STRIP_NOPS ($3);
+		  if ((TREE_CODE ($3) == ADDR_EXPR
+		       && TREE_CODE (TREE_OPERAND ($3, 0)) == STRING_CST)
+		      || TREE_CODE ($3) == STRING_CST)
+		    assemble_asm ($3);
+		  else
+		    error ("argument of `asm' is not a constant string"); }
+	| extension extdef
+		{ pedantic = $<itype>1; }
+	;
+
+datadef:
+	  setspecs notype_initdecls ';'
+		{ if (pedantic)
+		    error ("ANSI C forbids data definition with no type or storage class");
+		  else if (!flag_traditional)
+		    warning ("data definition has no type or storage class"); 
+
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($1); }
+        | declmods setspecs notype_initdecls ';'
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_declspecs setspecs initdecls ';'
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2);  }
+        | declmods ';'
+	  { pedwarn ("empty declaration"); }
+	| typed_declspecs ';'
+	  { shadow_tag ($1); }
+	| error ';'
+	| error '}'
+	| ';'
+		{ if (pedantic)
+		    pedwarn ("ANSI C does not allow extra `;' outside of a function"); }
+	;
+
+fndef:
+	  typed_declspecs setspecs declarator
+		{ if (! start_function (current_declspecs, $3,
+					prefix_attributes, NULL_TREE, 0))
+		    YYERROR1;
+		  reinit_parse_for_function (); }
+	  old_style_parm_decls
+		{ store_parm_decls (); }
+	  compstmt_or_error
+		{ finish_function (0); 
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_declspecs setspecs declarator error
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| declmods setspecs notype_declarator
+		{ if (! start_function (current_declspecs, $3,
+					prefix_attributes, NULL_TREE, 0))
+		    YYERROR1;
+		  reinit_parse_for_function (); }
+	  old_style_parm_decls
+		{ store_parm_decls (); }
+	  compstmt_or_error
+		{ finish_function (0); 
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| declmods setspecs notype_declarator error
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| setspecs notype_declarator
+		{ if (! start_function (NULL_TREE, $2,
+					prefix_attributes, NULL_TREE, 0))
+		    YYERROR1;
+		  reinit_parse_for_function (); }
+	  old_style_parm_decls
+		{ store_parm_decls (); }
+	  compstmt_or_error
+		{ finish_function (0); 
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($1); }
+	| setspecs notype_declarator error
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($1); }
+	;
+
+identifier:
+	IDENTIFIER
+	| TYPENAME
+	;
+
+unop:     '&'
+		{ $$ = ADDR_EXPR; }
+	| '-'
+		{ $$ = NEGATE_EXPR; }
+	| '+'
+		{ $$ = CONVERT_EXPR; }
+	| PLUSPLUS
+		{ $$ = PREINCREMENT_EXPR; }
+	| MINUSMINUS
+		{ $$ = PREDECREMENT_EXPR; }
+	| '~'
+		{ $$ = BIT_NOT_EXPR; }
+	| '!'
+		{ $$ = TRUTH_NOT_EXPR; }
+	;
+
+expr:	nonnull_exprlist
+		{ $$ = build_compound_expr ($1); }
+	;
+
+exprlist:
+	  /* empty */
+		{ $$ = NULL_TREE; }
+	| nonnull_exprlist
+	;
+
+nonnull_exprlist:
+	expr_no_commas
+		{ $$ = build_tree_list (NULL_TREE, $1); }
+	| nonnull_exprlist ',' expr_no_commas
+		{ chainon ($1, build_tree_list (NULL_TREE, $3)); }
+	;
+
+unary_expr:
+	primary
+	| '*' cast_expr   %prec UNARY
+		{ $$ = build_indirect_ref ($2, "unary *"); }
+	/* __extension__ turns off -pedantic for following primary.  */
+	| extension cast_expr	  %prec UNARY
+		{ $$ = $2;
+		  pedantic = $<itype>1; }
+	| unop cast_expr  %prec UNARY
+		{ $$ = build_unary_op ($1, $2, 0);
+		  overflow_warning ($$); }
+	/* Refer to the address of a label as a pointer.  */
+	| ANDAND identifier
+		{ tree label = lookup_label ($2);
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids `&&'");
+		  if (label == 0)
+		    $$ = null_pointer_node;
+		  else
+		    {
+		      TREE_USED (label) = 1;
+		      $$ = build1 (ADDR_EXPR, ptr_type_node, label);
+		      TREE_CONSTANT ($$) = 1;
+		    }
+		}
+/* This seems to be impossible on some machines, so let's turn it off.
+   You can use __builtin_next_arg to find the anonymous stack args.
+	| '&' ELLIPSIS
+		{ tree types = TYPE_ARG_TYPES (TREE_TYPE (current_function_decl));
+		  $$ = error_mark_node;
+		  if (TREE_VALUE (tree_last (types)) == void_type_node)
+		    error ("`&...' used in function with fixed number of arguments");
+		  else
+		    {
+		      if (pedantic)
+			pedwarn ("ANSI C forbids `&...'");
+		      $$ = tree_last (DECL_ARGUMENTS (current_function_decl));
+		      $$ = build_unary_op (ADDR_EXPR, $$, 0);
+		    } }
+*/
+	| sizeof unary_expr  %prec UNARY
+		{ skip_evaluation--;
+		  if (TREE_CODE ($2) == COMPONENT_REF
+		      && DECL_BIT_FIELD (TREE_OPERAND ($2, 1)))
+		    error ("`sizeof' applied to a bit-field");
+		  $$ = c_sizeof (TREE_TYPE ($2)); }
+	| sizeof '(' typename ')'  %prec HYPERUNARY
+		{ skip_evaluation--;
+		  $$ = c_sizeof (groktypename ($3)); }
+	| alignof unary_expr  %prec UNARY
+		{ skip_evaluation--;
+		  $$ = c_alignof_expr ($2); }
+	| alignof '(' typename ')'  %prec HYPERUNARY
+		{ skip_evaluation--;
+		  $$ = c_alignof (groktypename ($3)); }
+	| REALPART cast_expr %prec UNARY
+		{ $$ = build_unary_op (REALPART_EXPR, $2, 0); }
+	| IMAGPART cast_expr %prec UNARY
+		{ $$ = build_unary_op (IMAGPART_EXPR, $2, 0); }
+	;
+
+sizeof:
+	SIZEOF { skip_evaluation++; }
+	;
+
+alignof:
+	ALIGNOF { skip_evaluation++; }
+	;
+
+cast_expr:
+	unary_expr
+	| '(' typename ')' cast_expr  %prec UNARY
+		{ tree type = groktypename ($2);
+		  $$ = build_c_cast (type, $4); }
+	| '(' typename ')' '{' 
+		{ start_init (NULL_TREE, NULL, 0);
+		  $2 = groktypename ($2);
+		  really_start_incremental_init ($2); }
+	  initlist_maybe_comma '}'  %prec UNARY
+		{ char *name;
+		  tree result = pop_init_level (0);
+		  tree type = $2;
+		  finish_init ();
+
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids constructor expressions");
+		  if (TYPE_NAME (type) != 0)
+		    {
+		      if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
+			name = IDENTIFIER_POINTER (TYPE_NAME (type));
+		      else
+			name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
+		    }
+		  else
+		    name = "";
+		  $$ = result;
+		  if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
+		    {
+		      int failure = complete_array_type (type, $$, 1);
+		      if (failure)
+			abort ();
+		    }
+		}
+	;
+
+expr_no_commas:
+	  cast_expr
+	| expr_no_commas '+' expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas '-' expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas '*' expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas '/' expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas '%' expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas LSHIFT expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas RSHIFT expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas ARITHCOMPARE expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas EQCOMPARE expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas '&' expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas '|' expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas '^' expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas ANDAND
+		{ $1 = truthvalue_conversion (default_conversion ($1));
+		  skip_evaluation += $1 == boolean_false_node; }
+	  expr_no_commas
+		{ skip_evaluation -= $1 == boolean_false_node;
+		  $$ = parser_build_binary_op (TRUTH_ANDIF_EXPR, $1, $4); }
+	| expr_no_commas OROR
+		{ $1 = truthvalue_conversion (default_conversion ($1));
+		  skip_evaluation += $1 == boolean_true_node; }
+	  expr_no_commas
+		{ skip_evaluation -= $1 == boolean_true_node;
+		  $$ = parser_build_binary_op (TRUTH_ORIF_EXPR, $1, $4); }
+	| expr_no_commas '?'
+		{ $1 = truthvalue_conversion (default_conversion ($1));
+		  skip_evaluation += $1 == boolean_false_node; }
+          expr ':'
+		{ skip_evaluation += (($1 == boolean_true_node)
+				      - ($1 == boolean_false_node)); }
+	  expr_no_commas
+		{ skip_evaluation -= $1 == boolean_true_node;
+		  $$ = build_conditional_expr ($1, $4, $7); }
+	| expr_no_commas '?'
+		{ if (pedantic)
+		    pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
+		  /* Make sure first operand is calculated only once.  */
+		  $<ttype>2 = save_expr ($1);
+		  $1 = truthvalue_conversion (default_conversion ($<ttype>2));
+		  skip_evaluation += $1 == boolean_true_node; }
+	  ':' expr_no_commas
+		{ skip_evaluation -= $1 == boolean_true_node;
+		  $$ = build_conditional_expr ($1, $<ttype>2, $5); }
+	| expr_no_commas '=' expr_no_commas
+		{ $$ = build_modify_expr ($1, NOP_EXPR, $3);
+		  C_SET_EXP_ORIGINAL_CODE ($$, MODIFY_EXPR); }
+	| expr_no_commas ASSIGN expr_no_commas
+		{ $$ = build_modify_expr ($1, $2, $3);
+		  /* This inhibits warnings in truthvalue_conversion.  */
+		  C_SET_EXP_ORIGINAL_CODE ($$, ERROR_MARK); }
+	;
+
+primary:
+	IDENTIFIER
+		{
+		  $$ = lastiddecl;
+		  if (!$$ || $$ == error_mark_node)
+		    {
+		      if (yychar == YYEMPTY)
+			yychar = YYLEX;
+		      if (yychar == '(')
+			{
+			    {
+			      /* Ordinary implicit function declaration.  */
+			      $$ = implicitly_declare ($1);
+			      assemble_external ($$);
+			      TREE_USED ($$) = 1;
+			    }
+			}
+		      else if (current_function_decl == 0)
+			{
+			  error ("`%s' undeclared here (not in a function)",
+				 IDENTIFIER_POINTER ($1));
+			  $$ = error_mark_node;
+			}
+		      else
+			{
+			    {
+			      if (IDENTIFIER_GLOBAL_VALUE ($1) != error_mark_node
+				  || IDENTIFIER_ERROR_LOCUS ($1) != current_function_decl)
+				{
+				  error ("`%s' undeclared (first use this function)",
+					 IDENTIFIER_POINTER ($1));
+
+				  if (! undeclared_variable_notice)
+				    {
+				      error ("(Each undeclared identifier is reported only once");
+				      error ("for each function it appears in.)");
+				      undeclared_variable_notice = 1;
+				    }
+				}
+			      $$ = error_mark_node;
+			      /* Prevent repeated error messages.  */
+			      IDENTIFIER_GLOBAL_VALUE ($1) = error_mark_node;
+			      IDENTIFIER_ERROR_LOCUS ($1) = current_function_decl;
+			    }
+			}
+		    }
+		  else if (TREE_TYPE ($$) == error_mark_node)
+		    $$ = error_mark_node;
+		  else if (C_DECL_ANTICIPATED ($$))
+		    {
+		      /* The first time we see a build-in function used,
+			 if it has not been declared.  */
+		      C_DECL_ANTICIPATED ($$) = 0;
+		      if (yychar == YYEMPTY)
+			yychar = YYLEX;
+		      if (yychar == '(')
+			{
+			  /* Omit the implicit declaration we
+			     would ordinarily do, so we don't lose
+			     the actual built in type.
+			     But print a diagnostic for the mismatch.  */
+			    if (TREE_CODE ($$) != FUNCTION_DECL)
+			      error ("`%s' implicitly declared as function",
+				     IDENTIFIER_POINTER (DECL_NAME ($$)));
+			  else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE ($$)))
+				    != TYPE_MODE (integer_type_node))
+				   && (TREE_TYPE (TREE_TYPE ($$))
+				       != void_type_node))
+			    pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
+				     IDENTIFIER_POINTER (DECL_NAME ($$)));
+			  /* If it really returns void, change that to int.  */
+			  if (TREE_TYPE (TREE_TYPE ($$)) == void_type_node)
+			    TREE_TYPE ($$)
+			      = build_function_type (integer_type_node,
+						     TYPE_ARG_TYPES (TREE_TYPE ($$)));
+			}
+		      else
+			pedwarn ("built-in function `%s' used without declaration",
+				 IDENTIFIER_POINTER (DECL_NAME ($$)));
+
+		      /* Do what we would ordinarily do when a fn is used.  */
+		      assemble_external ($$);
+		      TREE_USED ($$) = 1;
+		    }
+		  else
+		    {
+		      assemble_external ($$);
+		      TREE_USED ($$) = 1;
+		    }
+
+		  if (TREE_CODE ($$) == CONST_DECL)
+		    {
+		      $$ = DECL_INITIAL ($$);
+		      /* This is to prevent an enum whose value is 0
+			 from being considered a null pointer constant.  */
+		      $$ = build1 (NOP_EXPR, TREE_TYPE ($$), $$);
+		      TREE_CONSTANT ($$) = 1;
+		    }
+		}
+	| CONSTANT
+	| string
+		{ $$ = combine_strings ($1); }
+	| '(' expr ')'
+		{ char class = TREE_CODE_CLASS (TREE_CODE ($2));
+		  if (class == 'e' || class == '1'
+		      || class == '2' || class == '<')
+		    C_SET_EXP_ORIGINAL_CODE ($2, ERROR_MARK);
+		  $$ = $2; }
+	| '(' error ')'
+		{ $$ = error_mark_node; }
+	| '('
+		{ if (current_function_decl == 0)
+		    {
+		      error ("braced-group within expression allowed only inside a function");
+		      YYERROR;
+		    }
+		  /* We must force a BLOCK for this level
+		     so that, if it is not expanded later,
+		     there is a way to turn off the entire subtree of blocks
+		     that are contained in it.  */
+		  keep_next_level ();
+		  push_iterator_stack ();
+		  push_label_level ();
+		  $<ttype>$ = expand_start_stmt_expr (); }
+	  compstmt ')'
+		{ tree rtl_exp;
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids braced-groups within expressions");
+		  pop_iterator_stack ();
+		  pop_label_level ();
+		  rtl_exp = expand_end_stmt_expr ($<ttype>2);
+		  /* The statements have side effects, so the group does.  */
+		  TREE_SIDE_EFFECTS (rtl_exp) = 1;
+
+		  if (TREE_CODE ($3) == BLOCK)
+		    {
+		      /* Make a BIND_EXPR for the BLOCK already made.  */
+		      $$ = build (BIND_EXPR, TREE_TYPE (rtl_exp),
+				  NULL_TREE, rtl_exp, $3);
+		      /* Remove the block from the tree at this point.
+			 It gets put back at the proper place
+			 when the BIND_EXPR is expanded.  */
+		      delete_block ($3);
+		    }
+		  else
+		    $$ = $3;
+		}
+	| primary '(' exprlist ')'   %prec '.'
+		{ $$ = build_function_call ($1, $3); }
+	| primary '[' expr ']'   %prec '.'
+		{ $$ = build_array_ref ($1, $3); }
+	| primary '.' identifier
+		{
+		    $$ = build_component_ref ($1, $3);
+		}
+	| primary POINTSAT identifier
+		{
+                  tree expr = build_indirect_ref ($1, "->");
+
+                    $$ = build_component_ref (expr, $3);
+		}
+	| primary PLUSPLUS
+		{ $$ = build_unary_op (POSTINCREMENT_EXPR, $1, 0); }
+	| primary MINUSMINUS
+		{ $$ = build_unary_op (POSTDECREMENT_EXPR, $1, 0); }
+	;
+
+/* Produces a STRING_CST with perhaps more STRING_CSTs chained onto it.  */
+string:
+	  STRING
+	| string STRING
+		{ $$ = chainon ($1, $2); }
+	;
+
+
+old_style_parm_decls:
+	/* empty */
+	| datadecls
+	| datadecls ELLIPSIS
+		/* ... is used here to indicate a varargs function.  */
+		{ c_mark_varargs ();
+		  if (pedantic)
+		    pedwarn ("ANSI C does not permit use of `varargs.h'"); }
+	;
+
+/* The following are analogous to lineno_decl, decls and decl
+   except that they do not allow nested functions.
+   They are used for old-style parm decls.  */
+lineno_datadecl:
+	  save_filename save_lineno datadecl
+		{ }
+	;
+
+datadecls:
+	lineno_datadecl
+	| errstmt
+	| datadecls lineno_datadecl
+	| lineno_datadecl errstmt
+	;
+
+/* We don't allow prefix attributes here because they cause reduce/reduce
+   conflicts: we can't know whether we're parsing a function decl with
+   attribute suffix, or function defn with attribute prefix on first old
+   style parm.  */
+datadecl:
+	typed_declspecs_no_prefix_attr setspecs initdecls ';'
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| declmods_no_prefix_attr setspecs notype_initdecls ';'
+		{ current_declspecs = TREE_VALUE (declspec_stack);	
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_declspecs_no_prefix_attr ';'
+		{ shadow_tag_warned ($1, 1);
+		  pedwarn ("empty declaration"); }
+	| declmods_no_prefix_attr ';'
+		{ pedwarn ("empty declaration"); }
+	;
+
+/* This combination which saves a lineno before a decl
+   is the normal thing to use, rather than decl itself.
+   This is to avoid shift/reduce conflicts in contexts
+   where statement labels are allowed.  */
+lineno_decl:
+	  save_filename save_lineno decl
+		{ }
+	;
+
+decls:
+	lineno_decl
+	| errstmt
+	| decls lineno_decl
+	| lineno_decl errstmt
+	;
+
+/* records the type and storage class specs to use for processing
+   the declarators that follow.
+   Maintains a stack of outer-level values of current_declspecs,
+   for the sake of parm declarations nested in function declarators.  */
+setspecs: /* empty */
+		{ $$ = suspend_momentary ();
+		  pending_xref_error ();
+		  declspec_stack = tree_cons (prefix_attributes,
+					      current_declspecs,
+					      declspec_stack);
+		  split_specs_attrs ($<ttype>0,
+				     &current_declspecs, &prefix_attributes); }
+	;
+
+/* ??? Yuck.  See after_type_declarator.  */
+setattrs: /* empty */
+		{ prefix_attributes = chainon (prefix_attributes, $<ttype>0); }
+	;
+
+decl:
+	typed_declspecs setspecs initdecls ';'
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| declmods setspecs notype_initdecls ';'
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_declspecs setspecs nested_function
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| declmods setspecs notype_nested_function
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_declspecs ';'
+		{ shadow_tag ($1); }
+	| declmods ';'
+		{ pedwarn ("empty declaration"); }
+	| extension decl
+		{ pedantic = $<itype>1; }
+	;
+
+/* Declspecs which contain at least one type specifier or typedef name.
+   (Just `const' or `volatile' is not enough.)
+   A typedef'd name following these is taken as a name to be declared.
+   Declspecs have a non-NULL TREE_VALUE, attributes do not.  */
+
+typed_declspecs:
+	  typespec reserved_declspecs
+		{ $$ = tree_cons (NULL_TREE, $1, $2); }
+	| declmods typespec reserved_declspecs
+		{ $$ = chainon ($3, tree_cons (NULL_TREE, $2, $1)); }
+	;
+
+reserved_declspecs:  /* empty */
+		{ $$ = NULL_TREE; }
+	| reserved_declspecs typespecqual_reserved
+		{ $$ = tree_cons (NULL_TREE, $2, $1); }
+	| reserved_declspecs SCSPEC
+		{ if (extra_warnings)
+		    warning ("`%s' is not at beginning of declaration",
+			     IDENTIFIER_POINTER ($2));
+		  $$ = tree_cons (NULL_TREE, $2, $1); }
+	| reserved_declspecs attributes
+		{ $$ = tree_cons ($2, NULL_TREE, $1); }
+	;
+
+typed_declspecs_no_prefix_attr:
+	  typespec reserved_declspecs_no_prefix_attr
+		{ $$ = tree_cons (NULL_TREE, $1, $2); }
+	| declmods_no_prefix_attr typespec reserved_declspecs_no_prefix_attr
+		{ $$ = chainon ($3, tree_cons (NULL_TREE, $2, $1)); }
+	;
+
+reserved_declspecs_no_prefix_attr:
+	  /* empty */
+		{ $$ = NULL_TREE; }
+	| reserved_declspecs_no_prefix_attr typespecqual_reserved
+		{ $$ = tree_cons (NULL_TREE, $2, $1); }
+	| reserved_declspecs_no_prefix_attr SCSPEC
+		{ if (extra_warnings)
+		    warning ("`%s' is not at beginning of declaration",
+			     IDENTIFIER_POINTER ($2));
+		  $$ = tree_cons (NULL_TREE, $2, $1); }
+	;
+
+/* List of just storage classes, type modifiers, and prefix attributes.
+   A declaration can start with just this, but then it cannot be used
+   to redeclare a typedef-name.
+   Declspecs have a non-NULL TREE_VALUE, attributes do not.  */
+
+declmods:
+	  declmods_no_prefix_attr
+		{ $$ = $1; }
+	| attributes
+		{ $$ = tree_cons ($1, NULL_TREE, NULL_TREE); }
+	| declmods declmods_no_prefix_attr
+		{ $$ = chainon ($2, $1); }
+	| declmods attributes
+		{ $$ = tree_cons ($2, NULL_TREE, $1); }
+	;
+
+declmods_no_prefix_attr:
+	  TYPE_QUAL
+		{ $$ = tree_cons (NULL_TREE, $1, NULL_TREE);
+		  TREE_STATIC ($$) = 1; }
+	| SCSPEC
+		{ $$ = tree_cons (NULL_TREE, $1, NULL_TREE); }
+	| declmods_no_prefix_attr TYPE_QUAL
+		{ $$ = tree_cons (NULL_TREE, $2, $1);
+		  TREE_STATIC ($$) = 1; }
+	| declmods_no_prefix_attr SCSPEC
+		{ if (extra_warnings && TREE_STATIC ($1))
+		    warning ("`%s' is not at beginning of declaration",
+			     IDENTIFIER_POINTER ($2));
+		  $$ = tree_cons (NULL_TREE, $2, $1);
+		  TREE_STATIC ($$) = TREE_STATIC ($1); }
+	;
+
+
+/* Used instead of declspecs where storage classes are not allowed
+   (that is, for typenames and structure components).
+   Don't accept a typedef-name if anything but a modifier precedes it.  */
+
+typed_typespecs:
+	  typespec reserved_typespecquals
+		{ $$ = tree_cons (NULL_TREE, $1, $2); }
+	| nonempty_type_quals typespec reserved_typespecquals
+		{ $$ = chainon ($3, tree_cons (NULL_TREE, $2, $1)); }
+	;
+
+reserved_typespecquals:  /* empty */
+		{ $$ = NULL_TREE; }
+	| reserved_typespecquals typespecqual_reserved
+		{ $$ = tree_cons (NULL_TREE, $2, $1); }
+	;
+
+/* A typespec (but not a type qualifier).
+   Once we have seen one of these in a declaration,
+   if a typedef name appears then it is being redeclared.  */
+
+typespec: TYPESPEC
+	| structsp
+	| TYPENAME
+		{ /* For a typedef name, record the meaning, not the name.
+		     In case of `foo foo, bar;'.  */
+		  $$ = lookup_name ($1); }
+	| TYPEOF '(' expr ')'
+		{ $$ = TREE_TYPE ($3); }
+	| TYPEOF '(' typename ')'
+		{ $$ = groktypename ($3); }
+	;
+
+/* A typespec that is a reserved word, or a type qualifier.  */
+
+typespecqual_reserved: TYPESPEC
+	| TYPE_QUAL
+	| structsp
+	;
+
+initdecls:
+	initdcl
+	| initdecls ',' initdcl
+	;
+
+notype_initdecls:
+	notype_initdcl
+	| notype_initdecls ',' initdcl
+	;
+
+maybeasm:
+	  /* empty */
+		{ $$ = NULL_TREE; }
+	| ASM_KEYWORD '(' string ')'
+		{ if (TREE_CHAIN ($3)) $3 = combine_strings ($3);
+		  $$ = $3;
+		}
+	;
+
+initdcl:
+	  declarator maybeasm maybe_attribute '='
+		{ $<ttype>$ = start_decl ($1, current_declspecs, 1,
+					  $3, prefix_attributes);
+		  start_init ($<ttype>$, $2, global_bindings_p ()); }
+	  init
+/* Note how the declaration of the variable is in effect while its init is parsed! */
+		{ finish_init ();
+		  finish_decl ($<ttype>5, $6, $2); }
+	| declarator maybeasm maybe_attribute
+		{ tree d = start_decl ($1, current_declspecs, 0,
+				       $3, prefix_attributes);
+		  finish_decl (d, NULL_TREE, $2); 
+                }
+	;
+
+notype_initdcl:
+	  notype_declarator maybeasm maybe_attribute '='
+		{ $<ttype>$ = start_decl ($1, current_declspecs, 1,
+					  $3, prefix_attributes);
+		  start_init ($<ttype>$, $2, global_bindings_p ()); }
+	  init
+/* Note how the declaration of the variable is in effect while its init is parsed! */
+		{ finish_init ();
+		  decl_attributes ($<ttype>5, $3, prefix_attributes);
+		  finish_decl ($<ttype>5, $6, $2); }
+	| notype_declarator maybeasm maybe_attribute
+		{ tree d = start_decl ($1, current_declspecs, 0,
+				       $3, prefix_attributes);
+		  finish_decl (d, NULL_TREE, $2); }
+	;
+/* the * rules are dummies to accept the Apollo extended syntax
+   so that the header files compile. */
+maybe_attribute:
+      /* empty */
+  		{ $$ = NULL_TREE; }
+	| attributes
+		{ $$ = $1; }
+	;
+ 
+attributes:
+      attribute
+		{ $$ = $1; }
+	| attributes attribute
+		{ $$ = chainon ($1, $2); }
+	;
+
+attribute:
+      ATTRIBUTE '(' '(' attribute_list ')' ')'
+		{ $$ = $4; }
+	;
+
+attribute_list:
+      attrib
+		{ $$ = $1; }
+	| attribute_list ',' attrib
+		{ $$ = chainon ($1, $3); }
+	;
+ 
+attrib:
+    /* empty */
+		{ $$ = NULL_TREE; }
+	| any_word
+		{ $$ = build_tree_list ($1, NULL_TREE); }
+	| any_word '(' IDENTIFIER ')'
+		{ $$ = build_tree_list ($1, build_tree_list (NULL_TREE, $3)); }
+	| any_word '(' IDENTIFIER ',' nonnull_exprlist ')'
+		{ $$ = build_tree_list ($1, tree_cons (NULL_TREE, $3, $5)); }
+	| any_word '(' exprlist ')'
+		{ $$ = build_tree_list ($1, $3); }
+	;
+
+/* This still leaves out most reserved keywords,
+   shouldn't we include them?  */
+
+any_word:
+	  identifier
+	| SCSPEC
+	| TYPESPEC
+	| TYPE_QUAL
+	;
+
+/* Initializers.  `init' is the entry point.  */
+
+init:
+	expr_no_commas
+	| '{'
+		{ really_start_incremental_init (NULL_TREE);
+		  /* Note that the call to clear_momentary
+		     is in process_init_element.  */
+		  push_momentary (); }
+	  initlist_maybe_comma '}'
+		{ $$ = pop_init_level (0);
+		  if ($$ == error_mark_node
+		      && ! (yychar == STRING || yychar == CONSTANT))
+		    pop_momentary ();
+		  else
+		    pop_momentary_nofree (); }
+
+	| error
+		{ $$ = error_mark_node; }
+	;
+
+/* `initlist_maybe_comma' is the guts of an initializer in braces.  */
+initlist_maybe_comma:
+	  /* empty */
+		{ if (pedantic)
+		    pedwarn ("ANSI C forbids empty initializer braces"); }
+	| initlist1 maybecomma
+	;
+
+initlist1:
+	  initelt
+	| initlist1 ',' initelt
+	;
+
+/* `initelt' is a single element of an initializer.
+   It may use braces.  */
+initelt:
+	expr_no_commas
+		{ process_init_element ($1); }
+	| '{' 
+		{ push_init_level (0); }
+	  initlist_maybe_comma '}'
+		{ process_init_element (pop_init_level (0)); }
+	| error
+	/* These are for labeled elements.  The syntax for an array element
+	   initializer conflicts with the syntax for an Objective-C message,
+	   so don't include these productions in the Objective-C grammar.  */
+	| '[' expr_no_commas ELLIPSIS expr_no_commas ']' '='
+		{ set_init_index ($2, $4); }
+	  initelt
+	| '[' expr_no_commas ']' '='
+		{ set_init_index ($2, NULL_TREE); }
+	  initelt
+	| '[' expr_no_commas ']'
+		{ set_init_index ($2, NULL_TREE); }
+	  initelt
+	| identifier ':'
+		{ set_init_label ($1); }
+	  initelt
+	| '.' identifier '='
+		{ set_init_label ($2); }
+	  initelt
+	;
+
+nested_function:
+	  declarator
+		{ push_c_function_context ();
+		  if (! start_function (current_declspecs, $1,
+					prefix_attributes, NULL_TREE, 1))
+		    {
+		      pop_c_function_context ();
+		      YYERROR1;
+		    }
+		  reinit_parse_for_function (); }
+	   old_style_parm_decls
+		{ store_parm_decls (); }
+/* This used to use compstmt_or_error.
+   That caused a bug with input `f(g) int g {}',
+   where the use of YYERROR1 above caused an error
+   which then was handled by compstmt_or_error.
+   There followed a repeated execution of that same rule,
+   which called YYERROR1 again, and so on.  */
+	  compstmt
+		{ finish_function (1);
+		  pop_c_function_context (); }
+	;
+
+notype_nested_function:
+	  notype_declarator
+		{ push_c_function_context ();
+		  if (! start_function (current_declspecs, $1,
+					prefix_attributes, NULL_TREE, 1))
+		    {
+		      pop_c_function_context ();
+		      YYERROR1;
+		    }
+		  reinit_parse_for_function (); }
+	  old_style_parm_decls
+		{ store_parm_decls (); }
+/* This used to use compstmt_or_error.
+   That caused a bug with input `f(g) int g {}',
+   where the use of YYERROR1 above caused an error
+   which then was handled by compstmt_or_error.
+   There followed a repeated execution of that same rule,
+   which called YYERROR1 again, and so on.  */
+	  compstmt
+		{ finish_function (1);
+		  pop_c_function_context (); }
+	;
+
+/* Any kind of declarator (thus, all declarators allowed
+   after an explicit typespec).  */
+
+declarator:
+	  after_type_declarator
+	| notype_declarator
+	;
+
+/* A declarator that is allowed only after an explicit typespec.  */
+
+after_type_declarator:
+	  '(' after_type_declarator ')'
+		{ $$ = $2; }
+	| after_type_declarator '(' parmlist_or_identifiers  %prec '.'
+		{ $$ = build_nt (CALL_EXPR, $1, $3, NULL_TREE); }
+/*	| after_type_declarator '(' error ')'  %prec '.'
+		{ $$ = build_nt (CALL_EXPR, $1, NULL_TREE, NULL_TREE);
+		  poplevel (0, 0, 0); }  */
+	| after_type_declarator '[' expr ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, $1, $3); }
+	| after_type_declarator '[' ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, $1, NULL_TREE); }
+	| '*' type_quals after_type_declarator  %prec UNARY
+		{ $$ = make_pointer_declarator ($2, $3); }
+	/* ??? Yuck.  setattrs is a quick hack.  We can't use
+	   prefix_attributes because $1 only applies to this
+	   declarator.  We assume setspecs has already been done.
+	   setattrs also avoids 5 reduce/reduce conflicts (otherwise multiple
+	   attributes could be recognized here or in `attributes').  */
+	| attributes setattrs after_type_declarator
+		{ $$ = $3; }
+	| TYPENAME
+	;
+
+/* Kinds of declarator that can appear in a parameter list
+   in addition to notype_declarator.  This is like after_type_declarator
+   but does not allow a typedef name in parentheses as an identifier
+   (because it would conflict with a function with that typedef as arg).  */
+
+parm_declarator:
+	  parm_declarator '(' parmlist_or_identifiers  %prec '.'
+		{ $$ = build_nt (CALL_EXPR, $1, $3, NULL_TREE); }
+/*	| parm_declarator '(' error ')'  %prec '.'
+		{ $$ = build_nt (CALL_EXPR, $1, NULL_TREE, NULL_TREE);
+		  poplevel (0, 0, 0); }  */
+	| parm_declarator '[' expr ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, $1, $3); }
+	| parm_declarator '[' ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, $1, NULL_TREE); }
+	| '*' type_quals parm_declarator  %prec UNARY
+		{ $$ = make_pointer_declarator ($2, $3); }
+	/* ??? Yuck.  setattrs is a quick hack.  We can't use
+	   prefix_attributes because $1 only applies to this
+	   declarator.  We assume setspecs has already been done.
+	   setattrs also avoids 5 reduce/reduce conflicts (otherwise multiple
+	   attributes could be recognized here or in `attributes').  */
+	| attributes setattrs parm_declarator
+		{ $$ = $3; }
+	| TYPENAME
+	;
+
+/* A declarator allowed whether or not there has been
+   an explicit typespec.  These cannot redeclare a typedef-name.  */
+
+notype_declarator:
+	  notype_declarator '(' parmlist_or_identifiers  %prec '.'
+		{ $$ = build_nt (CALL_EXPR, $1, $3, NULL_TREE); }
+/*	| notype_declarator '(' error ')'  %prec '.'
+		{ $$ = build_nt (CALL_EXPR, $1, NULL_TREE, NULL_TREE);
+		  poplevel (0, 0, 0); }  */
+	| '(' notype_declarator ')'
+		{ $$ = $2; }
+	| '*' type_quals notype_declarator  %prec UNARY
+		{ $$ = make_pointer_declarator ($2, $3); }
+	| notype_declarator '[' expr ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, $1, $3); }
+	| notype_declarator '[' ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, $1, NULL_TREE); }
+	/* ??? Yuck.  setattrs is a quick hack.  We can't use
+	   prefix_attributes because $1 only applies to this
+	   declarator.  We assume setspecs has already been done.
+	   setattrs also avoids 5 reduce/reduce conflicts (otherwise multiple
+	   attributes could be recognized here or in `attributes').  */
+	| attributes setattrs notype_declarator
+		{ $$ = $3; }
+	| IDENTIFIER
+	;
+
+structsp:
+	  STRUCT identifier '{'
+		{ $$ = start_struct (RECORD_TYPE, $2);
+		  /* Start scope of tag before parsing components.  */
+		}
+	  component_decl_list '}' maybe_attribute 
+		{ $$ = finish_struct ($<ttype>4, $5, $7); }
+	| STRUCT '{' component_decl_list '}' maybe_attribute
+		{ $$ = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
+				      $3, $5);
+		}
+	| STRUCT identifier
+		{ $$ = xref_tag (RECORD_TYPE, $2); }
+	| UNION identifier '{'
+		{ $$ = start_struct (UNION_TYPE, $2); }
+	  component_decl_list '}' maybe_attribute
+		{ $$ = finish_struct ($<ttype>4, $5, $7); }
+	| UNION '{' component_decl_list '}' maybe_attribute
+		{ $$ = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
+				      $3, $5);
+		}
+	| UNION identifier
+		{ $$ = xref_tag (UNION_TYPE, $2); }
+	| ENUM identifier '{'
+		{ $<itype>3 = suspend_momentary ();
+		  $$ = start_enum ($2); }
+	  enumlist maybecomma_warn '}' maybe_attribute
+		{ $$ = finish_enum ($<ttype>4, nreverse ($5), $8);
+		  resume_momentary ($<itype>3); }
+	| ENUM '{'
+		{ $<itype>2 = suspend_momentary ();
+		  $$ = start_enum (NULL_TREE); }
+	  enumlist maybecomma_warn '}' maybe_attribute
+		{ $$ = finish_enum ($<ttype>3, nreverse ($4), $7);
+		  resume_momentary ($<itype>2); }
+	| ENUM identifier
+		{ $$ = xref_tag (ENUMERAL_TYPE, $2); }
+	;
+
+maybecomma:
+	  /* empty */
+	| ','
+	;
+
+maybecomma_warn:
+	  /* empty */
+	| ','
+		{ if (pedantic) pedwarn ("comma at end of enumerator list"); }
+	;
+
+component_decl_list:
+	  component_decl_list2
+		{ $$ = $1; }
+	| component_decl_list2 component_decl
+		{ $$ = chainon ($1, $2);
+		  pedwarn ("no semicolon at end of struct or union"); }
+	;
+
+component_decl_list2:	/* empty */
+		{ $$ = NULL_TREE; }
+	| component_decl_list2 component_decl ';'
+		{ $$ = chainon ($1, $2); }
+	| component_decl_list2 ';'
+		{ if (pedantic)
+		    pedwarn ("extra semicolon in struct or union specified"); }
+	;
+
+/* There is a shift-reduce conflict here, because `components' may
+   start with a `typename'.  It happens that shifting (the default resolution)
+   does the right thing, because it treats the `typename' as part of
+   a `typed_typespecs'.
+
+   It is possible that this same technique would allow the distinction
+   between `notype_initdecls' and `initdecls' to be eliminated.
+   But I am being cautious and not trying it.  */
+
+component_decl:
+	  typed_typespecs setspecs components
+		{ $$ = $3;
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_typespecs
+		{ if (pedantic)
+		    pedwarn ("ANSI C forbids member declarations with no members");
+		  shadow_tag($1);
+		  $$ = NULL_TREE; }
+	| nonempty_type_quals setspecs components
+		{ $$ = $3;
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| nonempty_type_quals
+		{ if (pedantic)
+		    pedwarn ("ANSI C forbids member declarations with no members");
+		  shadow_tag($1);
+		  $$ = NULL_TREE; }
+	| error
+		{ $$ = NULL_TREE; }
+	| extension component_decl
+		{ $$ = $2;
+		  pedantic = $<itype>1; }
+	;
+
+components:
+	  component_declarator
+	| components ',' component_declarator
+		{ $$ = chainon ($1, $3); }
+	;
+
+component_declarator:
+	  save_filename save_lineno declarator maybe_attribute
+		{ $$ = grokfield ($1, $2, $3, current_declspecs, NULL_TREE);
+		  decl_attributes ($$, $4, prefix_attributes); }
+	| save_filename save_lineno
+	  declarator ':' expr_no_commas maybe_attribute
+		{ $$ = grokfield ($1, $2, $3, current_declspecs, $5);
+		  decl_attributes ($$, $6, prefix_attributes); }
+	| save_filename save_lineno ':' expr_no_commas maybe_attribute
+		{ $$ = grokfield ($1, $2, NULL_TREE, current_declspecs, $4);
+		  decl_attributes ($$, $5, prefix_attributes); }
+	;
+
+/* We chain the enumerators in reverse order.
+   They are put in forward order where enumlist is used.
+   (The order used to be significant, but no longer is so.
+   However, we still maintain the order, just to be clean.)  */
+
+enumlist:
+	  enumerator
+	| enumlist ',' enumerator
+		{ if ($1 == error_mark_node)
+		    $$ = $1;
+		  else
+		    $$ = chainon ($3, $1); }
+	| error
+		{ $$ = error_mark_node; }
+	;
+
+
+enumerator:
+	  identifier
+		{ $$ = build_enumerator ($1, NULL_TREE); }
+	| identifier '=' expr_no_commas
+		{ $$ = build_enumerator ($1, $3); }
+	;
+
+typename:
+	typed_typespecs absdcl
+		{ $$ = build_tree_list ($1, $2); }
+	| nonempty_type_quals absdcl
+		{ $$ = build_tree_list ($1, $2); }
+	;
+
+absdcl:   /* an absolute declarator */
+	/* empty */
+		{ $$ = NULL_TREE; }
+	| absdcl1
+	;
+
+nonempty_type_quals:
+	  TYPE_QUAL
+		{ $$ = tree_cons (NULL_TREE, $1, NULL_TREE); }
+	| nonempty_type_quals TYPE_QUAL
+		{ $$ = tree_cons (NULL_TREE, $2, $1); }
+	;
+
+type_quals:
+	  /* empty */
+		{ $$ = NULL_TREE; }
+	| type_quals TYPE_QUAL
+		{ $$ = tree_cons (NULL_TREE, $2, $1); }
+	;
+
+absdcl1:  /* a nonempty absolute declarator */
+	  '(' absdcl1 ')'
+		{ $$ = $2; }
+	  /* `(typedef)1' is `int'.  */
+	| '*' type_quals absdcl1  %prec UNARY
+		{ $$ = make_pointer_declarator ($2, $3); }
+	| '*' type_quals  %prec UNARY
+		{ $$ = make_pointer_declarator ($2, NULL_TREE); }
+	| absdcl1 '(' parmlist  %prec '.'
+		{ $$ = build_nt (CALL_EXPR, $1, $3, NULL_TREE); }
+	| absdcl1 '[' expr ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, $1, $3); }
+	| absdcl1 '[' ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, $1, NULL_TREE); }
+	| '(' parmlist  %prec '.'
+		{ $$ = build_nt (CALL_EXPR, NULL_TREE, $2, NULL_TREE); }
+	| '[' expr ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, NULL_TREE, $2); }
+	| '[' ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); }
+	/* ??? It appears we have to support attributes here, however
+	   using prefix_attributes is wrong.  */
+	;
+
+/* at least one statement, the first of which parses without error.  */
+/* stmts is used only after decls, so an invalid first statement
+   is actually regarded as an invalid decl and part of the decls.  */
+
+stmts:
+	lineno_stmt_or_labels
+		{
+		  if (pedantic && $1)
+		    pedwarn ("ANSI C forbids label at end of compound statement");
+		}
+	;
+
+lineno_stmt_or_labels:
+	  lineno_stmt_or_label
+	| lineno_stmt_or_labels lineno_stmt_or_label
+		{ $$ = $2; }
+	| lineno_stmt_or_labels errstmt
+		{ $$ = 0; }
+	;
+
+xstmts:
+	/* empty */
+	| stmts
+	;
+
+errstmt:  error ';'
+	;
+
+pushlevel:  /* empty */
+		{ emit_line_note (input_filename, lineno);
+		  pushlevel (0);
+		  clear_last_expr ();
+		  push_momentary ();
+		  expand_start_bindings (0);
+		}
+	;
+
+/* Read zero or more forward-declarations for labels
+   that nested functions can jump to.  */
+maybe_label_decls:
+	  /* empty */
+	| label_decls
+		{ if (pedantic)
+		    pedwarn ("ANSI C forbids label declarations"); }
+	;
+
+label_decls:
+	  label_decl
+	| label_decls label_decl
+	;
+
+label_decl:
+	  LABEL identifiers_or_typenames ';'
+		{ tree link;
+		  for (link = $2; link; link = TREE_CHAIN (link))
+		    {
+		      tree label = shadow_label (TREE_VALUE (link));
+		      C_DECLARED_LABEL_FLAG (label) = 1;
+		      declare_nonlocal_label (label);
+		    }
+		}
+	;
+
+/* This is the body of a function definition.
+   It causes syntax errors to ignore to the next openbrace.  */
+compstmt_or_error:
+	  compstmt
+		{}
+	| error compstmt
+	;
+
+compstmt: '{' '}'
+		{ $$ = convert (void_type_node, integer_zero_node); }
+	| '{' pushlevel maybe_label_decls decls xstmts '}'
+		{ emit_line_note (input_filename, lineno);
+		  expand_end_bindings (getdecls (), 1, 0);
+		  $$ = poplevel (1, 1, 0);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary (); }
+	| '{' pushlevel maybe_label_decls error '}'
+		{ emit_line_note (input_filename, lineno);
+		  expand_end_bindings (getdecls (), kept_level_p (), 0);
+		  $$ = poplevel (kept_level_p (), 0, 0);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary (); }
+	| '{' pushlevel maybe_label_decls stmts '}'
+		{ emit_line_note (input_filename, lineno);
+		  expand_end_bindings (getdecls (), kept_level_p (), 0);
+		  $$ = poplevel (kept_level_p (), 0, 0);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary (); }
+	;
+
+/* Value is number of statements counted as of the closeparen.  */
+simple_if:
+	  if_prefix lineno_labeled_stmt
+/* Make sure expand_end_cond is run once
+   for each call to expand_start_cond.
+   Otherwise a crash is likely.  */
+	| if_prefix error
+	;
+
+if_prefix:
+	  IF '(' expr ')'
+		{ emit_line_note ($<filename>-1, $<lineno>0);
+		  expand_start_cond (truthvalue_conversion ($3), 0);
+		  $<itype>$ = stmt_count;
+		  if_stmt_file = $<filename>-1;
+		  if_stmt_line = $<lineno>0;
+		  position_after_white_space (); }
+	;
+
+/* This is a subroutine of stmt.
+   It is used twice, once for valid DO statements
+   and once for catching errors in parsing the end test.  */
+do_stmt_start:
+	  DO
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  /* See comment in `while' alternative, above.  */
+		  emit_nop ();
+		  expand_start_loop_continue_elsewhere (1);
+		  position_after_white_space (); }
+	  lineno_labeled_stmt WHILE
+		{ expand_loop_continue_here (); }
+	;
+
+save_filename:
+		{ $$ = input_filename; }
+	;
+
+save_lineno:
+		{ $$ = lineno; }
+	;
+
+lineno_labeled_stmt:
+	  save_filename save_lineno stmt
+		{ }
+/*	| save_filename save_lineno error
+		{ }
+*/
+	| save_filename save_lineno label lineno_labeled_stmt
+		{ }
+	;
+
+lineno_stmt_or_label:
+	  save_filename save_lineno stmt_or_label
+		{ $$ = $3; }
+	;
+
+stmt_or_label:
+	  stmt
+		{ $$ = 0; }
+	| label
+		{ $$ = 1; }
+	;
+
+/* Parse a single real statement, not including any labels.  */
+stmt:
+	  compstmt
+		{ stmt_count++; }
+        | all_iter_stmt 
+	| expr ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+/* It appears that this should not be done--that a non-lvalue array
+   shouldn't get an error if the value isn't used.
+   Section 3.2.2.1 says that an array lvalue gets converted to a pointer
+   if it appears as a top-level expression,
+   but says nothing about non-lvalue arrays.  */
+#if 0
+		  /* Call default_conversion to get an error
+		     on referring to a register array if pedantic.  */
+		  if (TREE_CODE (TREE_TYPE ($1)) == ARRAY_TYPE
+		      || TREE_CODE (TREE_TYPE ($1)) == FUNCTION_TYPE)
+		    $1 = default_conversion ($1);
+#endif
+		  iterator_expand ($1);
+		  clear_momentary (); }
+	| simple_if ELSE
+		{ expand_start_else ();
+		  $<itype>1 = stmt_count;
+		  position_after_white_space (); }
+	  lineno_labeled_stmt
+		{ expand_end_cond ();
+		  if (extra_warnings && stmt_count == $<itype>1)
+		    warning ("empty body in an else-statement"); }
+	| simple_if %prec IF
+		{ expand_end_cond ();
+		  /* This warning is here instead of in simple_if, because we
+		     do not want a warning if an empty if is followed by an
+		     else statement.  Increment stmt_count so we don't
+		     give a second error if this is a nested `if'.  */
+		  if (extra_warnings && stmt_count++ == $<itype>1)
+		    warning_with_file_and_line (if_stmt_file, if_stmt_line,
+						"empty body in an if-statement"); }
+/* Make sure expand_end_cond is run once
+   for each call to expand_start_cond.
+   Otherwise a crash is likely.  */
+	| simple_if ELSE error
+		{ expand_end_cond (); }
+	| WHILE
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  /* The emit_nop used to come before emit_line_note,
+		     but that made the nop seem like part of the preceding line.
+		     And that was confusing when the preceding line was
+		     inside of an if statement and was not really executed.
+		     I think it ought to work to put the nop after the line number.
+		     We will see.  --rms, July 15, 1991.  */
+		  emit_nop (); }
+	  '(' expr ')'
+		{ /* Don't start the loop till we have succeeded
+		     in parsing the end test.  This is to make sure
+		     that we end every loop we start.  */
+		  expand_start_loop (1);
+		  emit_line_note (input_filename, lineno);
+		  expand_exit_loop_if_false (NULL_PTR,
+					     truthvalue_conversion ($4));
+		  position_after_white_space (); }
+	  lineno_labeled_stmt
+		{ expand_end_loop (); }
+	| do_stmt_start
+	  '(' expr ')' ';'
+		{ emit_line_note (input_filename, lineno);
+		  expand_exit_loop_if_false (NULL_PTR,
+					     truthvalue_conversion ($3));
+		  expand_end_loop ();
+		  clear_momentary (); }
+/* This rule is needed to make sure we end every loop we start.  */
+	| do_stmt_start error
+		{ expand_end_loop ();
+		  clear_momentary (); }
+	| FOR
+	  '(' xexpr ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  /* See comment in `while' alternative, above.  */
+		  emit_nop ();
+		  if ($3) c_expand_expr_stmt ($3);
+		  /* Next step is to call expand_start_loop_continue_elsewhere,
+		     but wait till after we parse the entire for (...).
+		     Otherwise, invalid input might cause us to call that
+		     fn without calling expand_end_loop.  */
+		}
+	  xexpr ';'
+		/* Can't emit now; wait till after expand_start_loop...  */
+		{ $<lineno>7 = lineno;
+		  $<filename>$ = input_filename; }
+	  xexpr ')'
+		{ 
+		  /* Start the loop.  Doing this after parsing
+		     all the expressions ensures we will end the loop.  */
+		  expand_start_loop_continue_elsewhere (1);
+		  /* Emit the end-test, with a line number.  */
+		  emit_line_note ($<filename>8, $<lineno>7);
+		  if ($6)
+		    expand_exit_loop_if_false (NULL_PTR,
+					       truthvalue_conversion ($6));
+		  /* Don't let the tree nodes for $9 be discarded by
+		     clear_momentary during the parsing of the next stmt.  */
+		  push_momentary ();
+		  $<lineno>7 = lineno;
+		  $<filename>8 = input_filename;
+		  position_after_white_space (); }
+	  lineno_labeled_stmt
+		{ /* Emit the increment expression, with a line number.  */
+		  emit_line_note ($<filename>8, $<lineno>7);
+		  expand_loop_continue_here ();
+		  if ($9)
+		    c_expand_expr_stmt ($9);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary ();
+		  expand_end_loop (); }
+	| SWITCH '(' expr ')'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  c_expand_start_case ($3);
+		  /* Don't let the tree nodes for $3 be discarded by
+		     clear_momentary during the parsing of the next stmt.  */
+		  push_momentary ();
+		  position_after_white_space (); }
+	  lineno_labeled_stmt
+		{ expand_end_case ($3);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary (); }
+	| BREAK ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  if ( ! expand_exit_something ())
+		    error ("break statement not within loop or switch"); }
+	| CONTINUE ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  if (! expand_continue_loop (NULL_PTR))
+		    error ("continue statement not within a loop"); }
+	| RETURN ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  c_expand_return (NULL_TREE); }
+	| RETURN expr ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  c_expand_return ($2); }
+	| ASM_KEYWORD maybe_type_qual '(' expr ')' ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  STRIP_NOPS ($4);
+		  if ((TREE_CODE ($4) == ADDR_EXPR
+		       && TREE_CODE (TREE_OPERAND ($4, 0)) == STRING_CST)
+		      || TREE_CODE ($4) == STRING_CST)
+		    expand_asm ($4);
+		  else
+		    error ("argument of `asm' is not a constant string"); }
+	/* This is the case with just output operands.  */
+	| ASM_KEYWORD maybe_type_qual '(' expr ':' asm_operands ')' ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  c_expand_asm_operands ($4, $6, NULL_TREE, NULL_TREE,
+					 $2 == ridpointers[(int)RID_VOLATILE],
+					 input_filename, lineno); }
+	/* This is the case with input operands as well.  */
+	| ASM_KEYWORD maybe_type_qual '(' expr ':' asm_operands ':' asm_operands ')' ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  c_expand_asm_operands ($4, $6, $8, NULL_TREE,
+					 $2 == ridpointers[(int)RID_VOLATILE],
+					 input_filename, lineno); }
+	/* This is the case with clobbered registers as well.  */
+	| ASM_KEYWORD maybe_type_qual '(' expr ':' asm_operands ':'
+  	  asm_operands ':' asm_clobbers ')' ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  c_expand_asm_operands ($4, $6, $8, $10,
+					 $2 == ridpointers[(int)RID_VOLATILE],
+					 input_filename, lineno); }
+	| GOTO identifier ';'
+		{ tree decl;
+		  stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  decl = lookup_label ($2);
+		  if (decl != 0)
+		    {
+		      TREE_USED (decl) = 1;
+		      expand_goto (decl);
+		    }
+		}
+	| GOTO '*' expr ';'
+		{ if (pedantic)
+		    pedwarn ("ANSI C forbids `goto *expr;'");
+		  stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  expand_computed_goto (convert (ptr_type_node, $3)); }
+	| ';'
+	;
+
+all_iter_stmt:
+	  all_iter_stmt_simple
+/*	| all_iter_stmt_with_decl */
+	;
+
+all_iter_stmt_simple:
+	  FOR '(' primary ')' 
+	  {
+	    /* The value returned by this action is  */
+	    /*      1 if everything is OK */ 
+	    /*      0 in case of error or already bound iterator */
+
+	    $<itype>$ = 0;
+	    if (TREE_CODE ($3) != VAR_DECL)
+	      error ("invalid `for (ITERATOR)' syntax");
+	    else if (! ITERATOR_P ($3))
+	      error ("`%s' is not an iterator",
+		     IDENTIFIER_POINTER (DECL_NAME ($3)));
+	    else if (ITERATOR_BOUND_P ($3))
+	      error ("`for (%s)' inside expansion of same iterator",
+		     IDENTIFIER_POINTER (DECL_NAME ($3)));
+	    else
+	      {
+		$<itype>$ = 1;
+		iterator_for_loop_start ($3);
+	      }
+	  }
+	  lineno_labeled_stmt
+	  {
+	    if ($<itype>5)
+	      iterator_for_loop_end ($3);
+	  }
+
+/*  This really should allow any kind of declaration,
+    for generality.  Fix it before turning it back on.
+
+all_iter_stmt_with_decl:
+	  FOR '(' ITERATOR pushlevel setspecs iterator_spec ')' 
+	  {
+*/	    /* The value returned by this action is  */
+	    /*      1 if everything is OK */ 
+	    /*      0 in case of error or already bound iterator */
+/*
+	    iterator_for_loop_start ($6);
+	  }
+	  lineno_labeled_stmt
+	  {
+	    iterator_for_loop_end ($6);
+	    emit_line_note (input_filename, lineno);
+	    expand_end_bindings (getdecls (), 1, 0);
+	    $<ttype>$ = poplevel (1, 1, 0);
+	    if (yychar == CONSTANT || yychar == STRING)
+	      pop_momentary_nofree ();
+	    else
+	      pop_momentary ();	    
+	  }
+*/
+
+/* Any kind of label, including jump labels and case labels.
+   ANSI C accepts labels only before statements, but we allow them
+   also at the end of a compound statement.  */
+
+label:	  CASE expr_no_commas ':'
+		{ register tree value = check_case_value ($2);
+		  register tree label
+		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
+
+		  stmt_count++;
+
+		  if (value != error_mark_node)
+		    {
+		      tree duplicate;
+		      int success = pushcase (value, convert_and_check,
+					      label, &duplicate);
+		      if (success == 1)
+			error ("case label not within a switch statement");
+		      else if (success == 2)
+			{
+			  error ("duplicate case value");
+			  error_with_decl (duplicate, "this is the first entry for that value");
+			}
+		      else if (success == 3)
+			warning ("case value out of range");
+		      else if (success == 5)
+			error ("case label within scope of cleanup or variable array");
+		    }
+		  position_after_white_space (); }
+	| CASE expr_no_commas ELLIPSIS expr_no_commas ':'
+		{ register tree value1 = check_case_value ($2);
+		  register tree value2 = check_case_value ($4);
+		  register tree label
+		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
+
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids case ranges");
+		  stmt_count++;
+
+		  if (value1 != error_mark_node && value2 != error_mark_node)
+		    {
+		      tree duplicate;
+		      int success = pushcase_range (value1, value2,
+						    convert_and_check, label,
+						    &duplicate);
+		      if (success == 1)
+			error ("case label not within a switch statement");
+		      else if (success == 2)
+			{
+			  error ("duplicate case value");
+			  error_with_decl (duplicate, "this is the first entry for that value");
+			}
+		      else if (success == 3)
+			warning ("case value out of range");
+		      else if (success == 4)
+			warning ("empty case range");
+		      else if (success == 5)
+			error ("case label within scope of cleanup or variable array");
+		    }
+		  position_after_white_space (); }
+	| DEFAULT ':'
+		{
+		  tree duplicate;
+		  register tree label
+		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
+		  int success = pushcase (NULL_TREE, 0, label, &duplicate);
+		  stmt_count++;
+		  if (success == 1)
+		    error ("default label not within a switch statement");
+		  else if (success == 2)
+		    {
+		      error ("multiple default labels in one switch");
+		      error_with_decl (duplicate, "this is the first default label");
+		    }
+		  position_after_white_space (); }
+	| identifier ':'
+		{ tree label = define_label (input_filename, lineno, $1);
+		  stmt_count++;
+		  emit_nop ();
+		  if (label)
+		    expand_label (label);
+		  position_after_white_space (); }
+	;
+
+/* Either a type-qualifier or nothing.  First thing in an `asm' statement.  */
+
+maybe_type_qual:
+	/* empty */
+		{ emit_line_note (input_filename, lineno);
+		  $$ = NULL_TREE; }
+	| TYPE_QUAL
+		{ emit_line_note (input_filename, lineno); }
+	;
+
+xexpr:
+	/* empty */
+		{ $$ = NULL_TREE; }
+	| expr
+	;
+
+/* These are the operands other than the first string and colon
+   in  asm ("addextend %2,%1": "=dm" (x), "0" (y), "g" (*x))  */
+asm_operands: /* empty */
+		{ $$ = NULL_TREE; }
+	| nonnull_asm_operands
+	;
+
+nonnull_asm_operands:
+	  asm_operand
+	| nonnull_asm_operands ',' asm_operand
+		{ $$ = chainon ($1, $3); }
+	;
+
+asm_operand:
+	  STRING '(' expr ')'
+		{ $$ = build_tree_list ($1, $3); }
+	;
+
+asm_clobbers:
+	  string
+		{ $$ = tree_cons (NULL_TREE, combine_strings ($1), NULL_TREE); }
+	| asm_clobbers ',' string
+		{ $$ = tree_cons (NULL_TREE, combine_strings ($3), $1); }
+	;
+
+/* This is what appears inside the parens in a function declarator.
+   Its value is a list of ..._TYPE nodes.  */
+parmlist:
+		{ pushlevel (0);
+		  clear_parm_order ();
+		  declare_parm_level (0); }
+	  parmlist_1
+		{ $$ = $2;
+		  parmlist_tags_warning ();
+		  poplevel (0, 0, 0); }
+	;
+
+parmlist_1:
+	  parmlist_2 ')'
+	| parms ';'
+		{ tree parm;
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids forward parameter declarations");
+		  /* Mark the forward decls as such.  */
+		  for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
+		    TREE_ASM_WRITTEN (parm) = 1;
+		  clear_parm_order (); }
+	  parmlist_1
+		{ $$ = $4; }
+	| error ')'
+		{ $$ = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); }
+	;
+
+/* This is what appears inside the parens in a function declarator.
+   Is value is represented in the format that grokdeclarator expects.  */
+parmlist_2:  /* empty */
+		{ $$ = get_parm_info (0); }
+	| ELLIPSIS
+		{ $$ = get_parm_info (0);
+		  /* Gcc used to allow this as an extension.  However, it does
+		     not work for all targets, and thus has been disabled.
+		     Also, since func (...) and func () are indistinguishable,
+		     it caused problems with the code in expand_builtin which
+		     tries to verify that BUILT_IN_NEXT_ARG is being used
+		     correctly.  */
+		  error ("ANSI C requires a named argument before `...'");
+		}
+	| parms
+		{ $$ = get_parm_info (1); }
+	| parms ',' ELLIPSIS
+		{ $$ = get_parm_info (0); }
+	;
+
+parms:
+	parm
+		{ push_parm_decl ($1); }
+	| parms ',' parm
+		{ push_parm_decl ($3); }
+	;
+
+/* A single parameter declaration or parameter type name,
+   as found in a parmlist.  */
+parm:
+	  typed_declspecs setspecs parm_declarator maybe_attribute
+		{ $$ = build_tree_list (build_tree_list (current_declspecs,
+							 $3),
+					build_tree_list (prefix_attributes,
+							 $4));
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_declspecs setspecs notype_declarator maybe_attribute
+		{ $$ = build_tree_list (build_tree_list (current_declspecs,
+							 $3),
+					build_tree_list (prefix_attributes,
+							 $4)); 
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_declspecs setspecs absdcl maybe_attribute
+		{ $$ = build_tree_list (build_tree_list (current_declspecs,
+							 $3),
+					build_tree_list (prefix_attributes,
+							 $4));
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| declmods setspecs notype_declarator maybe_attribute
+		{ $$ = build_tree_list (build_tree_list (current_declspecs,
+							 $3),
+					build_tree_list (prefix_attributes,
+							 $4));
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2);  }
+
+	| declmods setspecs absdcl maybe_attribute
+		{ $$ = build_tree_list (build_tree_list (current_declspecs,
+							 $3),
+					build_tree_list (prefix_attributes,
+							 $4));
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2);  }
+	;
+
+/* This is used in a function definition
+   where either a parmlist or an identifier list is ok.
+   Its value is a list of ..._TYPE nodes or a list of identifiers.  */
+parmlist_or_identifiers:
+		{ pushlevel (0);
+		  clear_parm_order ();
+		  declare_parm_level (1); }
+	  parmlist_or_identifiers_1
+		{ $$ = $2;
+		  parmlist_tags_warning ();
+		  poplevel (0, 0, 0); }
+	;
+
+parmlist_or_identifiers_1:
+	  parmlist_1
+	| identifiers ')'
+		{ tree t;
+		  for (t = $1; t; t = TREE_CHAIN (t))
+		    if (TREE_VALUE (t) == NULL_TREE)
+		      error ("`...' in old-style identifier list");
+		  $$ = tree_cons (NULL_TREE, NULL_TREE, $1); }
+	;
+
+/* A nonempty list of identifiers.  */
+identifiers:
+	IDENTIFIER
+		{ $$ = build_tree_list (NULL_TREE, $1); }
+	| identifiers ',' IDENTIFIER
+		{ $$ = chainon ($1, build_tree_list (NULL_TREE, $3)); }
+	;
+
+/* A nonempty list of identifiers, including typenames.  */
+identifiers_or_typenames:
+	identifier
+		{ $$ = build_tree_list (NULL_TREE, $1); }
+	| identifiers_or_typenames ',' identifier
+		{ $$ = chainon ($1, build_tree_list (NULL_TREE, $3)); }
+	;
+
+extension:
+	EXTENSION
+		{ $<itype>$ = pedantic;
+		  pedantic = 0; }
+	;
+
+%%
diff --git a/gcc/cccp.1 b/gcc/cccp.1
new file mode 100644
index 0000000..84eb19e
--- /dev/null
+++ b/gcc/cccp.1
@@ -0,0 +1,674 @@
+.\" Copyright (c) 1991, 1992, 1993 Free Software Foundation       \-*-Text-*-
+.\" See section COPYING for conditions for redistribution
+.TH cpp 1 "30apr1993" "GNU Tools" "GNU Tools"
+.SH NAME
+cccp, cpp \- The GNU C-Compatible Compiler Preprocessor.
+.SH SYNOPSIS
+.hy 0
+.na
+.TP
+.B cccp
+.RB "[\|" \-$ "\|]"
+.RB "[\|" \-A \c
+.I predicate\c
+.RB [ (\c
+.I value\c
+.BR ) ]\|]
+.RB "[\|" \-C "\|]" 
+.RB "[\|" \-D \c
+.I name\c
+.RB [ =\c
+.I definition\c
+\&]\|]
+.RB "[\|" \-dD "\|]"
+.RB "[\|" \-dM "\|]"
+.RB "[\|" "\-I\ "\c
+.I directory\c
+\&\|]
+.RB "[\|" \-H "\|]"
+.RB "[\|" \-I\- "\|]" 
+.RB "[\|" "\-imacros\ "\c
+.I file\c
+\&\|]
+.RB "[\|" "\-include\ "\c
+.I file\c
+\&\|]
+.RB "[\|" "\-idirafter\ "\c
+.I dir\c
+\&\|]
+.RB "[\|" "\-iprefix\ "\c
+.I prefix\c
+\&\|]
+.RB "[\|" "\-iwithprefix\ "\c
+.I dir\c
+\&\|]
+.RB "[\|" \-lang\-c "\|]"
+.RB "[\|" \-lang\-c++ "\|]"
+.RB "[\|" \-lang\-objc "\|]"
+.RB "[\|" \-lang\-objc++ "\|]"
+.RB "[\|" \-lint "\|]"
+.RB "[\|" \-M\  [ \-MG "\|]]"
+.RB "[\|" \-MM\  [ \-MG "\|]]"
+.RB "[\|" \-MD\  \c
+.I file\ \c
+\&\|]
+.RB "[\|" \-MMD\  \c
+.I file\ \c
+\&\|]
+.RB "[\|" \-nostdinc "\|]" 
+.RB "[\|" \-nostdinc++ "\|]" 
+.RB "[\|" \-P "\|]" 
+.RB "[\|" \-pedantic "\|]"
+.RB "[\|" \-pedantic\-errors "\|]"
+.RB "[\|" \-traditional "\|]" 
+.RB "[\|" \-trigraphs "\|]" 
+.RB "[\|" \-U \c
+.I name\c
+\&\|]
+.RB "[\|" \-undef "\|]"
+.RB "[\|" \-Wtrigraphs "\|]"
+.RB "[\|" \-Wcomment "\|]"
+.RB "[\|" \-Wall "\|]"
+.RB "[\|" \-Wtraditional "\|]"
+.br
+.RB "[\|" \c
+.I infile\c
+.RB | \- "\|]" 
+.RB "[\|" \c
+.I outfile\c
+.RB | \- "\|]"  
+.ad b
+.hy 1
+.SH DESCRIPTION
+The C preprocessor is a \c
+.I macro processor\c
+\& that is used automatically by
+the C compiler to transform your program before actual compilation.  It is
+called a macro processor because it allows you to define \c
+.I macros\c
+\&,
+which are brief abbreviations for longer constructs.
+
+The C preprocessor provides four separate facilities that you can use as
+you see fit:
+.TP
+\(bu
+Inclusion of header files.  These are files of declarations that can be
+substituted into your program.
+.TP
+\(bu
+Macro expansion.  You can define \c
+.I macros\c
+\&, which are abbreviations
+for arbitrary fragments of C code, and then the C preprocessor will
+replace the macros with their definitions throughout the program.
+.TP
+\(bu
+Conditional compilation.  Using special preprocessing directives, you
+can include or exclude parts of the program according to various
+conditions.
+.TP
+\(bu
+Line control.  If you use a program to combine or rearrange source files into
+an intermediate file which is then compiled, you can use line control
+to inform the compiler of where each source line originally came from.
+.PP
+C preprocessors vary in some details.  For a full explanation of the
+GNU C preprocessor, see the
+.B info
+file `\|\c
+.B cpp.info\c
+\&\|', or the manual
+.I The C Preprocessor\c
+\&.  Both of these are built from the same documentation source file, `\|\c
+.B cpp.texinfo\c
+\&\|'.  The GNU C
+preprocessor provides a superset of the features of ANSI Standard C.
+
+ANSI Standard C requires the rejection of many harmless constructs commonly
+used by today's C programs.  Such incompatibility would be inconvenient for
+users, so the GNU C preprocessor is configured to accept these constructs
+by default.  Strictly speaking, to get ANSI Standard C, you must use the
+options `\|\c
+.B \-trigraphs\c
+\&\|', `\|\c
+.B \-undef\c
+\&\|' and `\|\c
+.B \-pedantic\c
+\&\|', but in
+practice the consequences of having strict ANSI Standard C make it
+undesirable to do this.  
+
+Most often when you use the C preprocessor you will not have to invoke it
+explicitly: the C compiler will do so automatically.  However, the
+preprocessor is sometimes useful individually.
+
+When you call the preprocessor individually, either name
+(\c
+.B cpp\c
+\& or \c
+.B cccp\c
+\&) will do\(em\&they are completely synonymous.
+
+The C preprocessor expects two file names as arguments, \c
+.I infile\c
+\& and
+\c
+.I outfile\c
+\&.  The preprocessor reads \c
+.I infile\c
+\& together with any other
+files it specifies with `\|\c
+.B #include\c
+\&\|'.  All the output generated by the
+combined input files is written in \c
+.I outfile\c
+\&.
+
+Either \c
+.I infile\c
+\& or \c
+.I outfile\c
+\& may be `\|\c
+.B \-\c
+\&\|', which as \c
+.I infile\c
+\&
+means to read from standard input and as \c
+.I outfile\c
+\& means to write to
+standard output.  Also, if \c
+.I outfile\c
+\& or both file names are omitted,
+the standard output and standard input are used for the omitted file names.
+.SH OPTIONS
+Here is a table of command options accepted by the C preprocessor.  
+These options can also be given when compiling a C program; they are
+passed along automatically to the preprocessor when it is invoked by
+the compiler. 
+.TP
+.B \-P
+Inhibit generation of `\|\c
+.B #\c
+\&\|'-lines with line-number information in
+the output from the preprocessor.  This might be
+useful when running the preprocessor on something that is not C code
+and will be sent to a program which might be confused by the
+`\|\c
+.B #\c
+\&\|'-lines.
+.TP
+.B \-C
+Do not discard comments: pass them through to the output file.
+Comments appearing in arguments of a macro call will be copied to the
+output before the expansion of the macro call.
+.TP
+.B \-traditional
+Try to imitate the behavior of old-fashioned C, as opposed to ANSI C.
+.TP
+.B \-trigraphs
+Process ANSI standard trigraph sequences.  These are three-character
+sequences, all starting with `\|\c
+.B ??\c
+\&\|', that are defined by ANSI C to
+stand for single characters.  For example, `\|\c
+.B ??/\c
+\&\|' stands for
+`\|\c
+.BR "\e" "\|',"
+so `\|\c
+.B '??/n'\c
+\&\|' is a character constant for a newline.
+Strictly speaking, the GNU C preprocessor does not support all
+programs in ANSI Standard C unless `\|\c
+.B \-trigraphs\c
+\&\|' is used, but if
+you ever notice the difference it will be with relief.
+
+You don't want to know any more about trigraphs.
+.TP
+.B \-pedantic
+Issue warnings required by the ANSI C standard in certain cases such
+as when text other than a comment follows `\|\c
+.B #else\c
+\&\|' or `\|\c
+.B #endif\c
+\&\|'.
+.TP
+.B \-pedantic\-errors
+Like `\|\c
+.B \-pedantic\c
+\&\|', except that errors are produced rather than
+warnings.
+.TP
+.B \-Wtrigraphs
+Warn if any trigraphs are encountered (assuming they are enabled).
+.TP
+.B \-Wcomment
+.TP
+.B \-Wcomments
+Warn whenever a comment-start sequence `\|\c
+.B /*\c
+\&\|' appears in a comment.
+(Both forms have the same effect).
+.TP
+.B \-Wall
+Requests both `\|\c
+.B \-Wtrigraphs\c
+\&\|' and `\|\c
+.B \-Wcomment\c
+\&\|' (but not
+`\|\c
+.B \-Wtraditional\c
+\&\|'). 
+.TP
+.B \-Wtraditional
+Warn about certain constructs that behave differently in traditional and
+ANSI C.
+.TP
+.BI "\-I " directory\c
+\&
+Add the directory \c
+.I directory\c
+\& to the end of the list of
+directories to be searched for header files.
+This can be used to override a system header file, substituting your
+own version, since these directories are searched before the system
+header file directories.  If you use more than one `\|\c
+.B \-I\c
+\&\|' option,
+the directories are scanned in left-to-right order; the standard
+system directories come after.
+.TP
+.B \-I\-
+Any directories specified with `\|\c
+.B \-I\c
+\&\|' options before the `\|\c
+.B \-I\-\c
+\&\|'
+option are searched only for the case of `\|\c
+.B #include "\c
+.I file\c
+\&"\c
+\&\|';
+they are not searched for `\|\c
+.B #include <\c
+.I file\c
+\&>\c
+\&\|'.
+
+If additional directories are specified with `\|\c
+.B \-I\c
+\&\|' options after
+the `\|\c
+.B \-I\-\c
+\&\|', these directories are searched for all `\|\c
+.B #include\c
+\&\|'
+directives.
+
+In addition, the `\|\c
+.B \-I\-\c
+\&\|' option inhibits the use of the current
+directory as the first search directory for `\|\c
+.B #include "\c
+.I file\c
+\&"\c
+\&\|'.
+Therefore, the current directory is searched only if it is requested
+explicitly with `\|\c
+.B \-I.\c
+\&\|'.  Specifying both `\|\c
+.B \-I\-\c
+\&\|' and `\|\c
+.B \-I.\c
+\&\|'
+allows you to control precisely which directories are searched before
+the current one and which are searched after.
+.TP
+.B \-nostdinc
+Do not search the standard system directories for header files.
+Only the directories you have specified with `\|\c
+.B \-I\c
+\&\|' options
+(and the current directory, if appropriate) are searched.
+.TP
+.B \-nostdinc++
+Do not search for header files in the C++ specific standard
+directories, but do still search the other standard directories.
+(This option is used when building libg++.)
+.TP
+.BI "\-D " "name"\c
+\&
+Predefine \c
+.I name\c
+\& as a macro, with definition `\|\c
+.B 1\c
+\&\|'.
+.TP
+.BI "\-D " "name" = definition
+\&
+Predefine \c
+.I name\c
+\& as a macro, with definition \c
+.I definition\c
+\&.
+There are no restrictions on the contents of \c
+.I definition\c
+\&, but if
+you are invoking the preprocessor from a shell or shell-like program
+you may need to use the shell's quoting syntax to protect characters
+such as spaces that have a meaning in the shell syntax.  If you use more than
+one `\|\c
+.B \-D\c
+\&\|' for the same
+.I name\c
+\&, the rightmost definition takes effect.
+.TP
+.BI "\-U " "name"\c
+\&
+Do not predefine \c
+.I name\c
+\&.  If both `\|\c
+.B \-U\c
+\&\|' and `\|\c
+.B \-D\c
+\&\|' are
+specified for one name, the `\|\c
+.B \-U\c
+\&\|' beats the `\|\c
+.B \-D\c
+\&\|' and the name
+is not predefined.
+.TP
+.B \-undef
+Do not predefine any nonstandard macros.
+.TP
+.BI "\-A " "name(" value )
+Assert (in the same way as the \c
+.B #assert\c
+\& directive)
+the predicate \c
+.I name\c
+\& with tokenlist \c
+.I value\c
+\&.  Remember to escape or quote the parentheses on
+shell command lines.
+
+You can use `\|\c
+.B \-A-\c
+\&\|' to disable all predefined assertions; it also
+undefines all predefined macros.
+.TP
+.B \-dM
+Instead of outputting the result of preprocessing, output a list of
+`\|\c
+.B #define\c
+\&\|' directives for all the macros defined during the
+execution of the preprocessor, including predefined macros.  This gives
+you a way of finding out what is predefined in your version of the
+preprocessor; assuming you have no file `\|\c
+.B foo.h\c
+\&\|', the command
+.sp
+.br
+touch\ foo.h;\ cpp\ \-dM\ foo.h
+.br
+.sp
+will show the values of any predefined macros.
+.TP
+.B \-dD
+Like `\|\c
+.B \-dM\c
+\&\|' except in two respects: it does \c
+.I not\c
+\& include the
+predefined macros, and it outputs \c
+.I both\c
+\& the `\|\c
+.B #define\c
+\&\|'
+directives and the result of preprocessing.  Both kinds of output go to
+the standard output file.
+.PP
+.TP
+.BR \-M\  [ \-MG ]
+Instead of outputting the result of preprocessing, output a rule
+suitable for \c
+.B make\c
+\& describing the dependencies of the main
+source file.  The preprocessor outputs one \c
+.B make\c
+\& rule containing
+the object file name for that source file, a colon, and the names of
+all the included files.  If there are many included files then the
+rule is split into several lines using `\|\c
+.B \\\\\c
+\&\|'-newline.
+
+`\|\c
+.B \-MG\c
+\&\|' says to treat missing header files as generated files and assume \c
+they live in the same directory as the source file.  It must be specified \c
+in addition to `\|\c
+.B \-M\c
+\&\|'.
+
+This feature is used in automatic updating of makefiles.
+.TP
+.BR \-MM\  [ \-MG ]
+Like `\|\c
+.B \-M\c
+\&\|' but mention only the files included with `\|\c
+.B #include
+"\c
+.I file\c
+\&"\c
+\&\|'.  System header files included with `\|\c
+.B #include
+<\c
+.I file\c
+\&>\c
+\&\|' are omitted.
+.TP
+.BI \-MD\  file
+Like `\|\c
+.B \-M\c
+\&\|' but the dependency information is written to `\|\c
+.I file\c
+\&\|'.  This is in addition to compiling the file as
+specified\(em\&`\|\c
+.B \-MD\c
+\&\|' does not inhibit ordinary compilation the way
+`\|\c
+.B \-M\c
+\&\|' does.
+
+When invoking gcc, do not specify the `\|\c
+.I file\c
+\&\|' argument.  Gcc will create file names made by replacing `\|\c
+.B .c\c
+\&\|' with `\|\c
+.B .d\c
+\&\|' at the end of the input file names.
+
+In Mach, you can use the utility \c
+.B md\c
+\& to merge multiple files
+into a single dependency file suitable for using with the `\|\c
+.B make\c
+\&\|'
+command.
+.TP
+.BI \-MMD\  file
+Like `\|\c
+.B \-MD\c
+\&\|' except mention only user header files, not system
+header files.
+.TP
+.B \-H
+Print the name of each header file used, in addition to other normal
+activities.
+.TP
+.BI "\-imacros " "file"\c
+\&
+Process \c
+.I file\c
+\& as input, discarding the resulting output, before
+processing the regular input file.  Because the output generated from
+\c
+.I file\c
+\& is discarded, the only effect of `\|\c
+.B \-imacros \c
+.I file\c
+\&\c
+\&\|' is to
+make the macros defined in \c
+.I file\c
+\& available for use in the main
+input.  The preprocessor evaluates any `\|\c
+.B \-D\c
+\&\|' and `\|\c
+.B \-U\c
+\&\|' options
+on the command line before processing `\|\c
+.B \-imacros \c
+.I file\c
+\&\|' \c
+\&.
+.TP
+.BI "\-include " "file"
+Process 
+.I file
+as input, and include all the resulting output,
+before processing the regular input file.  
+.TP
+.BI "-idirafter " "dir"\c
+\&
+Add the directory \c
+.I dir\c
+\& to the second include path.  The directories
+on the second include path are searched when a header file is not found
+in any of the directories in the main include path (the one that
+`\|\c
+.B \-I\c
+\&\|' adds to).
+.TP
+.BI "-iprefix " "prefix"\c
+\&
+Specify \c
+.I prefix\c
+\& as the prefix for subsequent `\|\c
+.B \-iwithprefix\c
+\&\|'
+options.
+.TP
+.BI "-iwithprefix " "dir"\c
+\&
+Add a directory to the second include path.  The directory's name is
+made by concatenating \c
+.I prefix\c
+\& and \c
+.I dir\c
+\&, where \c
+.I prefix\c
+\&
+was specified previously with `\|\c
+.B \-iprefix\c
+\&\|'.
+.TP
+.B \-lang-c
+.TP
+.B \-lang-c++
+.TP
+.B \-lang-objc
+.TP
+.B \-lang-objc++
+Specify the source language.  `\|\c
+.B \-lang-c++\c
+\&\|' makes the preprocessor
+handle C++ comment syntax, and includes extra default include
+directories for C++, and `\|\c
+.B \-lang-objc\c
+\&\|' enables the Objective C
+`\|\c
+.B #import\c
+\&\|' directive.  `\|\c
+.B \-lang-c\c
+\&\|' explicitly turns off both of
+these extensions, and `\|\c
+.B \-lang-objc++\c
+\&\|' enables both.
+
+These options are generated by the compiler driver \c
+.B gcc\c
+\&, but not
+passed from the `\|\c
+.B gcc\c
+\&\|' command line.
+.TP
+.B \-lint
+Look for commands to the program checker \c
+.B lint\c
+\& embedded in
+comments, and emit them preceded by `\|\c
+.B #pragma lint\c
+\&\|'.  For example,
+the comment `\|\c
+.B /* NOTREACHED */\c
+\&\|' becomes `\|\c
+.B #pragma lint
+NOTREACHED\c
+\&\|'.
+
+This option is available only when you call \c
+.B cpp\c
+\& directly;
+\c
+.B gcc\c
+\& will not pass it from its command line.
+.TP
+.B \-$
+Forbid the use of `\|\c
+.B $\c
+\&\|' in identifiers.  This was formerly required for strict conformance
+to the C Standard before the standard was corrected.  \c
+
+This option is available only when you call \c
+.B cpp\c
+\& directly;
+.B gcc\c
+\& will not pass it from its command line.
+.SH "SEE ALSO"
+.RB "`\|" Cpp "\|'"
+entry in
+.B info\c
+\&;
+.I The C Preprocessor\c
+, Richard M. Stallman.
+.br
+.BR gcc "(" 1 ");"
+.RB "`\|" Gcc "\|'"
+entry in 
+.B info\c
+\&;
+.I 
+Using and Porting GNU CC (for version 2.0)\c
+, Richard M. Stallman.
+.SH COPYING
+Copyright (c) 1991, 1992, 1993 Free Software Foundation, Inc.
+.PP
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+.PP
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+.PP
+Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be included in
+translations approved by the Free Software Foundation instead of in
+the original English.
diff --git a/gcc/cexp.c b/gcc/cexp.c
new file mode 100644
index 0000000..a4f2cc5
--- /dev/null
+++ b/gcc/cexp.c
@@ -0,0 +1,2142 @@
+
+/*  A Bison parser, made from cexp.y with Bison version GNU Bison version 1.24
+  */
+
+#define YYBISON 1  /* Identify Bison output.  */
+
+#define	INT	258
+#define	CHAR	259
+#define	NAME	260
+#define	ERROR	261
+#define	OR	262
+#define	AND	263
+#define	EQUAL	264
+#define	NOTEQUAL	265
+#define	LEQ	266
+#define	GEQ	267
+#define	LSH	268
+#define	RSH	269
+#define	UNARY	270
+
+#line 27 "cexp.y"
+
+#include "config.h"
+#include <setjmp.h>
+/* #define YYDEBUG 1 */
+
+/* The following symbols should be autoconfigured:
+	HAVE_STDLIB_H
+	STDC_HEADERS
+   In the mean time, we'll get by with approximations based
+   on existing GCC configuration symbols.  */
+
+#ifdef POSIX
+# ifndef HAVE_STDLIB_H
+# define HAVE_STDLIB_H 1
+# endif
+# ifndef STDC_HEADERS
+# define STDC_HEADERS 1
+# endif
+#endif /* defined (POSIX) */
+
+#if STDC_HEADERS
+# include <string.h>
+#endif
+
+#if HAVE_STDLIB_H || defined (MULTIBYTE_CHARS)
+# include <stdlib.h>
+#endif
+
+#ifdef MULTIBYTE_CHARS
+#include <locale.h>
+#endif
+
+#include <stdio.h>
+
+typedef unsigned char U_CHAR;
+
+/* This is used for communicating lists of keywords with cccp.c.  */
+struct arglist {
+  struct arglist *next;
+  U_CHAR *name;
+  int length;
+  int argno;
+};
+
+/* Define a generic NULL if one hasn't already been defined.  */
+
+#ifndef NULL
+#define NULL 0
+#endif
+
+#ifndef GENERIC_PTR
+#if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
+#define GENERIC_PTR void *
+#else
+#define GENERIC_PTR char *
+#endif
+#endif
+
+#ifndef NULL_PTR
+#define NULL_PTR ((GENERIC_PTR) 0)
+#endif
+
+/* Find the largest host integer type and set its size and type.
+   Don't blindly use `long'; on some crazy hosts it is shorter than `int'.  */
+
+#ifndef HOST_BITS_PER_WIDE_INT
+
+#if HOST_BITS_PER_LONG > HOST_BITS_PER_INT
+#define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_LONG
+#define HOST_WIDE_INT long
+#else
+#define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_INT
+#define HOST_WIDE_INT int
+#endif
+
+#endif
+
+#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
+# define __attribute__(x)
+#endif
+
+#ifndef PROTO
+# if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
+#  define PROTO(ARGS) ARGS
+# else
+#  define PROTO(ARGS) ()
+# endif
+#endif
+
+#if defined (__STDC__) && defined (HAVE_VPRINTF)
+# include <stdarg.h>
+# define VA_START(va_list, var) va_start (va_list, var)
+# define PRINTF_ALIST(msg) char *msg, ...
+# define PRINTF_DCL(msg)
+# define PRINTF_PROTO(ARGS, m, n) PROTO (ARGS) __attribute__ ((format (__printf__, m, n)))
+#else
+# include <varargs.h>
+# define VA_START(va_list, var) va_start (va_list)
+# define PRINTF_ALIST(msg) msg, va_alist
+# define PRINTF_DCL(msg) char *msg; va_dcl
+# define PRINTF_PROTO(ARGS, m, n) () __attribute__ ((format (__printf__, m, n)))
+# define vfprintf(file, msg, args) \
+    { \
+      char *a0 = va_arg(args, char *); \
+      char *a1 = va_arg(args, char *); \
+      char *a2 = va_arg(args, char *); \
+      char *a3 = va_arg(args, char *); \
+      fprintf (file, msg, a0, a1, a2, a3); \
+    }
+#endif
+
+#define PRINTF_PROTO_1(ARGS) PRINTF_PROTO(ARGS, 1, 2)
+
+HOST_WIDE_INT parse_c_expression PROTO((char *));
+
+static int yylex PROTO((void));
+static void yyerror PROTO((char *)) __attribute__ ((noreturn));
+static HOST_WIDE_INT expression_value;
+
+static jmp_buf parse_return_error;
+
+/* Nonzero means count most punctuation as part of a name.  */
+static int keyword_parsing = 0;
+
+/* Nonzero means do not evaluate this expression.
+   This is a count, since unevaluated expressions can nest.  */
+static int skip_evaluation;
+
+/* some external tables of character types */
+extern unsigned char is_idstart[], is_idchar[], is_space[];
+
+/* Flag for -pedantic.  */
+extern int pedantic;
+
+/* Flag for -traditional.  */
+extern int traditional;
+
+/* Flag for -lang-c89.  */
+extern int c89;
+
+/* Flag for -Wundef.  */
+extern int warn_undef;
+
+#ifndef CHAR_TYPE_SIZE
+#define CHAR_TYPE_SIZE BITS_PER_UNIT
+#endif
+
+#ifndef INT_TYPE_SIZE
+#define INT_TYPE_SIZE BITS_PER_WORD
+#endif
+
+#ifndef LONG_TYPE_SIZE
+#define LONG_TYPE_SIZE BITS_PER_WORD
+#endif
+
+#ifndef WCHAR_TYPE_SIZE
+#define WCHAR_TYPE_SIZE INT_TYPE_SIZE
+#endif
+
+#ifndef MAX_CHAR_TYPE_SIZE
+#define MAX_CHAR_TYPE_SIZE CHAR_TYPE_SIZE
+#endif
+
+#ifndef MAX_INT_TYPE_SIZE
+#define MAX_INT_TYPE_SIZE INT_TYPE_SIZE
+#endif
+
+#ifndef MAX_LONG_TYPE_SIZE
+#define MAX_LONG_TYPE_SIZE LONG_TYPE_SIZE
+#endif
+
+#ifndef MAX_WCHAR_TYPE_SIZE
+#define MAX_WCHAR_TYPE_SIZE WCHAR_TYPE_SIZE
+#endif
+
+#if MAX_CHAR_TYPE_SIZE < HOST_BITS_PER_WIDE_INT
+#define MAX_CHAR_TYPE_MASK (~ (~ (HOST_WIDE_INT) 0 << MAX_CHAR_TYPE_SIZE))
+#else
+#define MAX_CHAR_TYPE_MASK (~ (HOST_WIDE_INT) 0)
+#endif
+
+#if MAX_WCHAR_TYPE_SIZE < HOST_BITS_PER_WIDE_INT
+#define MAX_WCHAR_TYPE_MASK (~ (~ (HOST_WIDE_INT) 0 << MAX_WCHAR_TYPE_SIZE))
+#else
+#define MAX_WCHAR_TYPE_MASK (~ (HOST_WIDE_INT) 0)
+#endif
+
+/* Suppose A1 + B1 = SUM1, using 2's complement arithmetic ignoring overflow.
+   Suppose A, B and SUM have the same respective signs as A1, B1, and SUM1.
+   Suppose SIGNEDP is negative if the result is signed, zero if unsigned.
+   Then this yields nonzero if overflow occurred during the addition.
+   Overflow occurs if A and B have the same sign, but A and SUM differ in sign,
+   and SIGNEDP is negative.
+   Use `^' to test whether signs differ, and `< 0' to isolate the sign.  */
+#define overflow_sum_sign(a, b, sum, signedp) \
+	((~((a) ^ (b)) & ((a) ^ (sum)) & (signedp)) < 0)
+
+struct constant;
+
+GENERIC_PTR xmalloc PROTO((size_t));
+HOST_WIDE_INT parse_escape PROTO((char **, HOST_WIDE_INT));
+int check_assertion PROTO((U_CHAR *, int, int, struct arglist *));
+struct hashnode *lookup PROTO((U_CHAR *, int, int));
+void error PRINTF_PROTO_1((char *, ...));
+void pedwarn PRINTF_PROTO_1((char *, ...));
+void warning PRINTF_PROTO_1((char *, ...));
+
+static int parse_number PROTO((int));
+static HOST_WIDE_INT left_shift PROTO((struct constant *, unsigned HOST_WIDE_INT));
+static HOST_WIDE_INT right_shift PROTO((struct constant *, unsigned HOST_WIDE_INT));
+static void integer_overflow PROTO((void));
+
+/* `signedp' values */
+#define SIGNED (~0)
+#define UNSIGNED 0
+
+#line 244 "cexp.y"
+typedef union {
+  struct constant {HOST_WIDE_INT value; int signedp;} integer;
+  struct name {U_CHAR *address; int length;} name;
+  struct arglist *keywords;
+} YYSTYPE;
+
+#ifndef YYLTYPE
+typedef
+  struct yyltype
+    {
+      int timestamp;
+      int first_line;
+      int first_column;
+      int last_line;
+      int last_column;
+      char *text;
+   }
+  yyltype;
+
+#define YYLTYPE yyltype
+#endif
+
+#include <stdio.h>
+
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
+
+
+
+#define	YYFINAL		77
+#define	YYFLAG		-32768
+#define	YYNTBASE	34
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 270 ? yytranslate[x] : 43)
+
+static const char yytranslate[] = {     0,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,    29,     2,    31,     2,    27,    14,     2,    32,
+    33,    25,    23,     9,    24,     2,    26,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     8,     2,    17,
+     2,    18,     7,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,    13,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,    12,     2,    30,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
+     6,    10,    11,    15,    16,    19,    20,    21,    22,    28
+};
+
+#if YYDEBUG != 0
+static const short yyprhs[] = {     0,
+     0,     2,     4,     8,    11,    14,    17,    20,    23,    24,
+    31,    35,    39,    43,    47,    51,    55,    59,    63,    67,
+    71,    75,    79,    83,    87,    91,    95,    99,   100,   105,
+   106,   111,   112,   113,   121,   123,   125,   127,   128,   133
+};
+
+static const short yyrhs[] = {    35,
+     0,    36,     0,    35,     9,    36,     0,    24,    36,     0,
+    29,    36,     0,    23,    36,     0,    30,    36,     0,    31,
+     5,     0,     0,    31,     5,    37,    32,    42,    33,     0,
+    32,    35,    33,     0,    36,    25,    36,     0,    36,    26,
+    36,     0,    36,    27,    36,     0,    36,    23,    36,     0,
+    36,    24,    36,     0,    36,    21,    36,     0,    36,    22,
+    36,     0,    36,    15,    36,     0,    36,    16,    36,     0,
+    36,    19,    36,     0,    36,    20,    36,     0,    36,    17,
+    36,     0,    36,    18,    36,     0,    36,    14,    36,     0,
+    36,    13,    36,     0,    36,    12,    36,     0,     0,    36,
+    11,    38,    36,     0,     0,    36,    10,    39,    36,     0,
+     0,     0,    36,     7,    40,    36,     8,    41,    36,     0,
+     3,     0,     4,     0,     5,     0,     0,    32,    42,    33,
+    42,     0,     5,    42,     0
+};
+
+#endif
+
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+   274,   279,   280,   287,   292,   295,   297,   300,   304,   306,
+   311,   316,   329,   346,   359,   365,   371,   377,   383,   386,
+   389,   396,   403,   410,   417,   420,   423,   426,   429,   432,
+   435,   438,   440,   443,   446,   448,   450,   458,   460,   473
+};
+
+static const char * const yytname[] = {   "$","error","$undefined.","INT","CHAR",
+"NAME","ERROR","'?'","':'","','","OR","AND","'|'","'^'","'&'","EQUAL","NOTEQUAL",
+"'<'","'>'","LEQ","GEQ","LSH","RSH","'+'","'-'","'*'","'/'","'%'","UNARY","'!'",
+"'~'","'#'","'('","')'","start","exp1","exp","@1","@2","@3","@4","@5","keywords",
+""
+};
+#endif
+
+static const short yyr1[] = {     0,
+    34,    35,    35,    36,    36,    36,    36,    36,    37,    36,
+    36,    36,    36,    36,    36,    36,    36,    36,    36,    36,
+    36,    36,    36,    36,    36,    36,    36,    38,    36,    39,
+    36,    40,    41,    36,    36,    36,    36,    42,    42,    42
+};
+
+static const short yyr2[] = {     0,
+     1,     1,     3,     2,     2,     2,     2,     2,     0,     6,
+     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
+     3,     3,     3,     3,     3,     3,     3,     0,     4,     0,
+     4,     0,     0,     7,     1,     1,     1,     0,     4,     2
+};
+
+static const short yydefact[] = {     0,
+    35,    36,    37,     0,     0,     0,     0,     0,     0,     1,
+     2,     6,     4,     5,     7,     8,     0,     0,    32,    30,
+    28,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    11,     3,
+     0,     0,     0,    27,    26,    25,    19,    20,    23,    24,
+    21,    22,    17,    18,    15,    16,    12,    13,    14,    38,
+     0,    31,    29,    38,    38,     0,    33,    40,     0,    10,
+     0,    38,    34,    39,     0,     0,     0
+};
+
+static const short yydefgoto[] = {    75,
+    10,    11,    38,    43,    42,    41,    71,    66
+};
+
+static const short yypact[] = {    12,
+-32768,-32768,-32768,    12,    12,    12,    12,     1,    12,     4,
+    79,-32768,-32768,-32768,-32768,   -21,    31,    12,-32768,-32768,
+-32768,    12,    12,    12,    12,    12,    12,    12,    12,    12,
+    12,    12,    12,    12,    12,    12,    12,    30,-32768,    79,
+    12,    12,    12,   110,   124,   137,   148,   148,   155,   155,
+   155,   155,   160,   160,   -17,   -17,-32768,-32768,-32768,     2,
+    58,    34,    95,     2,     2,    54,-32768,-32768,    55,-32768,
+    12,     2,    79,-32768,    63,   188,-32768
+};
+
+static const short yypgoto[] = {-32768,
+   180,    -4,-32768,-32768,-32768,-32768,-32768,   -60
+};
+
+
+#define	YYLAST		189
+
+
+static const short yytable[] = {    12,
+    13,    14,    15,    68,    69,    16,    64,    35,    36,    37,
+    -9,    74,    18,    40,     1,     2,     3,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
+    57,    58,    59,    65,     4,     5,    61,    62,    63,    18,
+     6,     7,     8,     9,    21,    22,    23,    24,    25,    26,
+    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+    37,    60,    76,    39,    19,    67,    73,    20,    21,    22,
+    23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+    33,    34,    35,    36,    37,    19,    70,    72,    20,    21,
+    22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+    32,    33,    34,    35,    36,    37,    22,    23,    24,    25,
+    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
+    36,    37,    23,    24,    25,    26,    27,    28,    29,    30,
+    31,    32,    33,    34,    35,    36,    37,    24,    25,    26,
+    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+    37,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+    34,    35,    36,    37,    27,    28,    29,    30,    31,    32,
+    33,    34,    35,    36,    37,    31,    32,    33,    34,    35,
+    36,    37,    33,    34,    35,    36,    37,    77,    17
+};
+
+static const short yycheck[] = {     4,
+     5,     6,     7,    64,    65,     5,     5,    25,    26,    27,
+    32,    72,     9,    18,     3,     4,     5,    22,    23,    24,
+    25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+    35,    36,    37,    32,    23,    24,    41,    42,    43,     9,
+    29,    30,    31,    32,    11,    12,    13,    14,    15,    16,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    32,     0,    33,     7,     8,    71,    10,    11,    12,
+    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+    23,    24,    25,    26,    27,     7,    33,    33,    10,    11,
+    12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+    22,    23,    24,    25,    26,    27,    12,    13,    14,    15,
+    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    13,    14,    15,    16,    17,    18,    19,    20,
+    21,    22,    23,    24,    25,    26,    27,    14,    15,    16,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,    17,    18,    19,    20,    21,    22,
+    23,    24,    25,    26,    27,    21,    22,    23,    24,    25,
+    26,    27,    23,    24,    25,    26,    27,     0,     9
+};
+/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
+#line 3 "/usr/local/share/bison.simple"
+
+/* Skeleton output parser for bison,
+   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+#ifndef alloca
+#ifdef __GNUC__
+#define alloca __builtin_alloca
+#else /* not GNU C.  */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
+#include <alloca.h>
+#else /* not sparc */
+#if defined (MSDOS) && !defined (__TURBOC__)
+#include <malloc.h>
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+#include <malloc.h>
+ #pragma alloca
+#else /* not MSDOS, __TURBOC__, or _AIX */
+#ifdef __hpux
+#ifdef __cplusplus
+extern "C" {
+void *alloca (unsigned int);
+};
+#else /* not __cplusplus */
+void *alloca ();
+#endif /* not __cplusplus */
+#endif /* __hpux */
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc.  */
+#endif /* not GNU C.  */
+#endif /* alloca not defined.  */
+
+/* This is the parser code that is written into each bison parser
+  when the %semantic_parser declaration is not specified in the grammar.
+  It was written by Richard Stallman by simplifying the hairy parser
+  used when %semantic_parser is specified.  */
+
+/* Note: there must be only one dollar sign in this file.
+   It is replaced by the list of actions, each action
+   as one case of the switch.  */
+
+#define yyerrok		(yyerrstatus = 0)
+#define yyclearin	(yychar = YYEMPTY)
+#define YYEMPTY		-2
+#define YYEOF		0
+#define YYACCEPT	return(0)
+#define YYABORT 	return(1)
+#define YYERROR		goto yyerrlab1
+/* Like YYERROR except do call yyerror.
+   This remains here temporarily to ease the
+   transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  */
+#define YYFAIL		goto yyerrlab
+#define YYRECOVERING()  (!!yyerrstatus)
+#define YYBACKUP(token, value) \
+do								\
+  if (yychar == YYEMPTY && yylen == 1)				\
+    { yychar = (token), yylval = (value);			\
+      yychar1 = YYTRANSLATE (yychar);				\
+      YYPOPSTACK;						\
+      goto yybackup;						\
+    }								\
+  else								\
+    { yyerror ("syntax error: cannot back up"); YYERROR; }	\
+while (0)
+
+#define YYTERROR	1
+#define YYERRCODE	256
+
+#ifndef YYPURE
+#define YYLEX		yylex()
+#endif
+
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
+#ifdef YYLEX_PARAM
+#define YYLEX		yylex(&yylval, &yylloc, YYLEX_PARAM)
+#else
+#define YYLEX		yylex(&yylval, &yylloc)
+#endif
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX		yylex(&yylval, YYLEX_PARAM)
+#else
+#define YYLEX		yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
+#endif
+
+/* If nonreentrant, generate the variables here */
+
+#ifndef YYPURE
+
+int	yychar;			/*  the lookahead symbol		*/
+YYSTYPE	yylval;			/*  the semantic value of the		*/
+				/*  lookahead symbol			*/
+
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc;			/*  location data for the lookahead	*/
+				/*  symbol				*/
+#endif
+
+int yynerrs;			/*  number of parse errors so far       */
+#endif  /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug;			/*  nonzero means print parse trace	*/
+/* Since this is uninitialized, it does not stop multiple parsers
+   from coexisting.  */
+#endif
+
+/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/
+
+#ifndef	YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
+
+/*  YYMAXDEPTH is the maximum size the stacks can grow to
+    (effective only if the built-in stack extension method is used).  */
+
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+
+/* Prevent warning if -Wstrict-prototypes.  */
+#ifdef __GNUC__
+int yyparse (void);
+#endif
+
+#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
+#define __yy_memcpy(FROM,TO,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
+#else				/* not GNU C or C++ */
+#ifndef __cplusplus
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (from, to, count)
+     char *from;
+     char *to;
+     int count;
+{
+  register char *f = from;
+  register char *t = to;
+  register int i = count;
+
+  while (i-- > 0)
+    *t++ = *f++;
+}
+
+#else /* __cplusplus */
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (char *from, char *to, int count)
+{
+  register char *f = from;
+  register char *t = to;
+  register int i = count;
+
+  while (i-- > 0)
+    *t++ = *f++;
+}
+
+#endif
+#endif
+
+#line 192 "/usr/local/share/bison.simple"
+
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+   into yyparse.  The argument should have type void *.
+   It should actually point to an object.
+   Grammar actions can access the variable by casting it
+   to the proper pointer type.  */
+
+#ifdef YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#else
+#define YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#endif
+
+int
+yyparse(YYPARSE_PARAM)
+     YYPARSE_PARAM_DECL
+{
+  register int yystate;
+  register int yyn;
+  register short *yyssp;
+  register YYSTYPE *yyvsp;
+  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
+  int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */
+
+  short	yyssa[YYINITDEPTH];	/*  the state stack			*/
+  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/
+
+  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */
+  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */
+
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/
+  YYLTYPE *yyls = yylsa;
+  YYLTYPE *yylsp;
+
+#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
+#else
+#define YYPOPSTACK   (yyvsp--, yyssp--)
+#endif
+
+  int yystacksize = YYINITDEPTH;
+
+#ifdef YYPURE
+  int yychar;
+  YYSTYPE yylval;
+  int yynerrs;
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylloc;
+#endif
+#endif
+
+  YYSTYPE yyval;		/*  the variable used to return		*/
+				/*  semantic values from the action	*/
+				/*  routines				*/
+
+  int yylen;
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Starting parse\n");
+#endif
+
+  yystate = 0;
+  yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY;		/* Cause a token to be read.  */
+
+  /* Initialize stack pointers.
+     Waste one element of value and location stack
+     so that they stay on the same level as the state stack.
+     The wasted elements are never initialized.  */
+
+  yyssp = yyss - 1;
+  yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+  yylsp = yyls;
+#endif
+
+/* Push a new state, which is found in  yystate  .  */
+/* In all cases, when you get here, the value and location stacks
+   have just been pushed. so pushing a state here evens the stacks.  */
+yynewstate:
+
+  *++yyssp = yystate;
+
+  if (yyssp >= yyss + yystacksize - 1)
+    {
+      /* Give user a chance to reallocate the stack */
+      /* Use copies of these so that the &'s don't force the real ones into memory. */
+      YYSTYPE *yyvs1 = yyvs;
+      short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+      YYLTYPE *yyls1 = yyls;
+#endif
+
+      /* Get the current used size of the three stacks, in elements.  */
+      int size = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+      /* Each stack pointer address is followed by the size of
+	 the data in use in that stack, in bytes.  */
+#ifdef YYLSP_NEEDED
+      /* This used to be a conditional around just the two extra args,
+	 but that might be undefined if yyoverflow is a macro.  */
+      yyoverflow("parser stack overflow",
+		 &yyss1, size * sizeof (*yyssp),
+		 &yyvs1, size * sizeof (*yyvsp),
+		 &yyls1, size * sizeof (*yylsp),
+		 &yystacksize);
+#else
+      yyoverflow("parser stack overflow",
+		 &yyss1, size * sizeof (*yyssp),
+		 &yyvs1, size * sizeof (*yyvsp),
+		 &yystacksize);
+#endif
+
+      yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+      yyls = yyls1;
+#endif
+#else /* no yyoverflow */
+      /* Extend the stack our own way.  */
+      if (yystacksize >= YYMAXDEPTH)
+	{
+	  yyerror("parser stack overflow");
+	  return 2;
+	}
+      yystacksize *= 2;
+      if (yystacksize > YYMAXDEPTH)
+	yystacksize = YYMAXDEPTH;
+      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
+      __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
+      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
+      __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
+      __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
+#endif
+#endif /* no yyoverflow */
+
+      yyssp = yyss + size - 1;
+      yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+      yylsp = yyls + size - 1;
+#endif
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
+
+      if (yyssp >= yyss + yystacksize - 1)
+	YYABORT;
+    }
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Entering state %d\n", yystate);
+#endif
+
+  goto yybackup;
+ yybackup:
+
+/* Do appropriate processing given the current state.  */
+/* Read a lookahead token if we need one and don't already have one.  */
+/* yyresume: */
+
+  /* First try to decide what to do without reference to lookahead token.  */
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yydefault;
+
+  /* Not known => get a lookahead token if don't already have one.  */
+
+  /* yychar is either YYEMPTY or YYEOF
+     or a valid token in external form.  */
+
+  if (yychar == YYEMPTY)
+    {
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Reading a token: ");
+#endif
+      yychar = YYLEX;
+    }
+
+  /* Convert token to internal form (in yychar1) for indexing tables with */
+
+  if (yychar <= 0)		/* This means end of input. */
+    {
+      yychar1 = 0;
+      yychar = YYEOF;		/* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Now at end of input.\n");
+#endif
+    }
+  else
+    {
+      yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+      if (yydebug)
+	{
+	  fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+	  /* Give the individual parser a way to print the precise meaning
+	     of a token, for further debugging info.  */
+#ifdef YYPRINT
+	  YYPRINT (stderr, yychar, yylval);
+#endif
+	  fprintf (stderr, ")\n");
+	}
+#endif
+    }
+
+  yyn += yychar1;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+    goto yydefault;
+
+  yyn = yytable[yyn];
+
+  /* yyn is what to do for this token type in this state.
+     Negative => reduce, -yyn is rule number.
+     Positive => shift, yyn is new state.
+       New state is final state => don't bother to shift,
+       just return success.
+     0, or most negative number => error.  */
+
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+	goto yyerrlab;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+  else if (yyn == 0)
+    goto yyerrlab;
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  /* Shift the lookahead token.  */
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
+
+  /* Discard the token being shifted unless it is eof.  */
+  if (yychar != YYEOF)
+    yychar = YYEMPTY;
+
+  *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
+
+  /* count tokens shifted since error; after three, turn off error status.  */
+  if (yyerrstatus) yyerrstatus--;
+
+  yystate = yyn;
+  goto yynewstate;
+
+/* Do the default action for the current state.  */
+yydefault:
+
+  yyn = yydefact[yystate];
+  if (yyn == 0)
+    goto yyerrlab;
+
+/* Do a reduction.  yyn is the number of a rule to reduce with.  */
+yyreduce:
+  yylen = yyr2[yyn];
+  if (yylen > 0)
+    yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      int i;
+
+      fprintf (stderr, "Reducing via rule %d (line %d), ",
+	       yyn, yyrline[yyn]);
+
+      /* Print the symbols being reduced, and their result.  */
+      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+	fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+    }
+#endif
+
+
+  switch (yyn) {
+
+case 1:
+#line 275 "cexp.y"
+{ expression_value = yyvsp[0].integer.value; ;
+    break;}
+case 3:
+#line 281 "cexp.y"
+{ if (pedantic)
+			    pedwarn ("comma operator in operand of `#if'");
+			  yyval.integer = yyvsp[0].integer; ;
+    break;}
+case 4:
+#line 288 "cexp.y"
+{ yyval.integer.value = - yyvsp[0].integer.value;
+			  yyval.integer.signedp = yyvsp[0].integer.signedp;
+			  if ((yyval.integer.value & yyvsp[0].integer.value & yyval.integer.signedp) < 0)
+			    integer_overflow (); ;
+    break;}
+case 5:
+#line 293 "cexp.y"
+{ yyval.integer.value = ! yyvsp[0].integer.value;
+			  yyval.integer.signedp = SIGNED; ;
+    break;}
+case 6:
+#line 296 "cexp.y"
+{ yyval.integer = yyvsp[0].integer; ;
+    break;}
+case 7:
+#line 298 "cexp.y"
+{ yyval.integer.value = ~ yyvsp[0].integer.value;
+			  yyval.integer.signedp = yyvsp[0].integer.signedp; ;
+    break;}
+case 8:
+#line 301 "cexp.y"
+{ yyval.integer.value = check_assertion (yyvsp[0].name.address, yyvsp[0].name.length,
+						      0, NULL_PTR);
+			  yyval.integer.signedp = SIGNED; ;
+    break;}
+case 9:
+#line 305 "cexp.y"
+{ keyword_parsing = 1; ;
+    break;}
+case 10:
+#line 307 "cexp.y"
+{ yyval.integer.value = check_assertion (yyvsp[-4].name.address, yyvsp[-4].name.length,
+						      1, yyvsp[-1].keywords);
+			  keyword_parsing = 0;
+			  yyval.integer.signedp = SIGNED; ;
+    break;}
+case 11:
+#line 312 "cexp.y"
+{ yyval.integer = yyvsp[-1].integer; ;
+    break;}
+case 12:
+#line 317 "cexp.y"
+{ yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp;
+			  if (yyval.integer.signedp)
+			    {
+			      yyval.integer.value = yyvsp[-2].integer.value * yyvsp[0].integer.value;
+			      if (yyvsp[-2].integer.value
+				  && (yyval.integer.value / yyvsp[-2].integer.value != yyvsp[0].integer.value
+				      || (yyval.integer.value & yyvsp[-2].integer.value & yyvsp[0].integer.value) < 0))
+				integer_overflow ();
+			    }
+			  else
+			    yyval.integer.value = ((unsigned HOST_WIDE_INT) yyvsp[-2].integer.value
+					* yyvsp[0].integer.value); ;
+    break;}
+case 13:
+#line 330 "cexp.y"
+{ if (yyvsp[0].integer.value == 0)
+			    {
+			      if (!skip_evaluation)
+				error ("division by zero in #if");
+			      yyvsp[0].integer.value = 1;
+			    }
+			  yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp;
+			  if (yyval.integer.signedp)
+			    {
+			      yyval.integer.value = yyvsp[-2].integer.value / yyvsp[0].integer.value;
+			      if ((yyval.integer.value & yyvsp[-2].integer.value & yyvsp[0].integer.value) < 0)
+				integer_overflow ();
+			    }
+			  else
+			    yyval.integer.value = ((unsigned HOST_WIDE_INT) yyvsp[-2].integer.value
+					/ yyvsp[0].integer.value); ;
+    break;}
+case 14:
+#line 347 "cexp.y"
+{ if (yyvsp[0].integer.value == 0)
+			    {
+			      if (!skip_evaluation)
+				error ("division by zero in #if");
+			      yyvsp[0].integer.value = 1;
+			    }
+			  yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp;
+			  if (yyval.integer.signedp)
+			    yyval.integer.value = yyvsp[-2].integer.value % yyvsp[0].integer.value;
+			  else
+			    yyval.integer.value = ((unsigned HOST_WIDE_INT) yyvsp[-2].integer.value
+					% yyvsp[0].integer.value); ;
+    break;}
+case 15:
+#line 360 "cexp.y"
+{ yyval.integer.value = yyvsp[-2].integer.value + yyvsp[0].integer.value;
+			  yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp;
+			  if (overflow_sum_sign (yyvsp[-2].integer.value, yyvsp[0].integer.value,
+						 yyval.integer.value, yyval.integer.signedp))
+			    integer_overflow (); ;
+    break;}
+case 16:
+#line 366 "cexp.y"
+{ yyval.integer.value = yyvsp[-2].integer.value - yyvsp[0].integer.value;
+			  yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp;
+			  if (overflow_sum_sign (yyval.integer.value, yyvsp[0].integer.value,
+						 yyvsp[-2].integer.value, yyval.integer.signedp))
+			    integer_overflow (); ;
+    break;}
+case 17:
+#line 372 "cexp.y"
+{ yyval.integer.signedp = yyvsp[-2].integer.signedp;
+			  if ((yyvsp[0].integer.value & yyvsp[0].integer.signedp) < 0)
+			    yyval.integer.value = right_shift (&yyvsp[-2].integer, -yyvsp[0].integer.value);
+			  else
+			    yyval.integer.value = left_shift (&yyvsp[-2].integer, yyvsp[0].integer.value); ;
+    break;}
+case 18:
+#line 378 "cexp.y"
+{ yyval.integer.signedp = yyvsp[-2].integer.signedp;
+			  if ((yyvsp[0].integer.value & yyvsp[0].integer.signedp) < 0)
+			    yyval.integer.value = left_shift (&yyvsp[-2].integer, -yyvsp[0].integer.value);
+			  else
+			    yyval.integer.value = right_shift (&yyvsp[-2].integer, yyvsp[0].integer.value); ;
+    break;}
+case 19:
+#line 384 "cexp.y"
+{ yyval.integer.value = (yyvsp[-2].integer.value == yyvsp[0].integer.value);
+			  yyval.integer.signedp = SIGNED; ;
+    break;}
+case 20:
+#line 387 "cexp.y"
+{ yyval.integer.value = (yyvsp[-2].integer.value != yyvsp[0].integer.value);
+			  yyval.integer.signedp = SIGNED; ;
+    break;}
+case 21:
+#line 390 "cexp.y"
+{ yyval.integer.signedp = SIGNED;
+			  if (yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp)
+			    yyval.integer.value = yyvsp[-2].integer.value <= yyvsp[0].integer.value;
+			  else
+			    yyval.integer.value = ((unsigned HOST_WIDE_INT) yyvsp[-2].integer.value
+					<= yyvsp[0].integer.value); ;
+    break;}
+case 22:
+#line 397 "cexp.y"
+{ yyval.integer.signedp = SIGNED;
+			  if (yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp)
+			    yyval.integer.value = yyvsp[-2].integer.value >= yyvsp[0].integer.value;
+			  else
+			    yyval.integer.value = ((unsigned HOST_WIDE_INT) yyvsp[-2].integer.value
+					>= yyvsp[0].integer.value); ;
+    break;}
+case 23:
+#line 404 "cexp.y"
+{ yyval.integer.signedp = SIGNED;
+			  if (yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp)
+			    yyval.integer.value = yyvsp[-2].integer.value < yyvsp[0].integer.value;
+			  else
+			    yyval.integer.value = ((unsigned HOST_WIDE_INT) yyvsp[-2].integer.value
+					< yyvsp[0].integer.value); ;
+    break;}
+case 24:
+#line 411 "cexp.y"
+{ yyval.integer.signedp = SIGNED;
+			  if (yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp)
+			    yyval.integer.value = yyvsp[-2].integer.value > yyvsp[0].integer.value;
+			  else
+			    yyval.integer.value = ((unsigned HOST_WIDE_INT) yyvsp[-2].integer.value
+					> yyvsp[0].integer.value); ;
+    break;}
+case 25:
+#line 418 "cexp.y"
+{ yyval.integer.value = yyvsp[-2].integer.value & yyvsp[0].integer.value;
+			  yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp; ;
+    break;}
+case 26:
+#line 421 "cexp.y"
+{ yyval.integer.value = yyvsp[-2].integer.value ^ yyvsp[0].integer.value;
+			  yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp; ;
+    break;}
+case 27:
+#line 424 "cexp.y"
+{ yyval.integer.value = yyvsp[-2].integer.value | yyvsp[0].integer.value;
+			  yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp; ;
+    break;}
+case 28:
+#line 427 "cexp.y"
+{ skip_evaluation += !yyvsp[-1].integer.value; ;
+    break;}
+case 29:
+#line 429 "cexp.y"
+{ skip_evaluation -= !yyvsp[-3].integer.value;
+			  yyval.integer.value = (yyvsp[-3].integer.value && yyvsp[0].integer.value);
+			  yyval.integer.signedp = SIGNED; ;
+    break;}
+case 30:
+#line 433 "cexp.y"
+{ skip_evaluation += !!yyvsp[-1].integer.value; ;
+    break;}
+case 31:
+#line 435 "cexp.y"
+{ skip_evaluation -= !!yyvsp[-3].integer.value;
+			  yyval.integer.value = (yyvsp[-3].integer.value || yyvsp[0].integer.value);
+			  yyval.integer.signedp = SIGNED; ;
+    break;}
+case 32:
+#line 439 "cexp.y"
+{ skip_evaluation += !yyvsp[-1].integer.value; ;
+    break;}
+case 33:
+#line 441 "cexp.y"
+{ skip_evaluation += !!yyvsp[-4].integer.value - !yyvsp[-4].integer.value; ;
+    break;}
+case 34:
+#line 443 "cexp.y"
+{ skip_evaluation -= !!yyvsp[-6].integer.value;
+			  yyval.integer.value = yyvsp[-6].integer.value ? yyvsp[-3].integer.value : yyvsp[0].integer.value;
+			  yyval.integer.signedp = yyvsp[-3].integer.signedp & yyvsp[0].integer.signedp; ;
+    break;}
+case 35:
+#line 447 "cexp.y"
+{ yyval.integer = yylval.integer; ;
+    break;}
+case 36:
+#line 449 "cexp.y"
+{ yyval.integer = yylval.integer; ;
+    break;}
+case 37:
+#line 451 "cexp.y"
+{ if (warn_undef && !skip_evaluation)
+			    warning ("`%.*s' is not defined",
+				     yyvsp[0].name.length, yyvsp[0].name.address);
+			  yyval.integer.value = 0;
+			  yyval.integer.signedp = SIGNED; ;
+    break;}
+case 38:
+#line 459 "cexp.y"
+{ yyval.keywords = 0; ;
+    break;}
+case 39:
+#line 461 "cexp.y"
+{ struct arglist *temp;
+			  yyval.keywords = (struct arglist *) xmalloc (sizeof (struct arglist));
+			  yyval.keywords->next = yyvsp[-2].keywords;
+			  yyval.keywords->name = (U_CHAR *) "(";
+			  yyval.keywords->length = 1;
+			  temp = yyval.keywords;
+			  while (temp != 0 && temp->next != 0)
+			    temp = temp->next;
+			  temp->next = (struct arglist *) xmalloc (sizeof (struct arglist));
+			  temp->next->next = yyvsp[0].keywords;
+			  temp->next->name = (U_CHAR *) ")";
+			  temp->next->length = 1; ;
+    break;}
+case 40:
+#line 474 "cexp.y"
+{ yyval.keywords = (struct arglist *) xmalloc (sizeof (struct arglist));
+			  yyval.keywords->name = yyvsp[-1].name.address;
+			  yyval.keywords->length = yyvsp[-1].name.length;
+			  yyval.keywords->next = yyvsp[0].keywords; ;
+    break;}
+}
+   /* the action file gets copied in in place of this dollarsign */
+#line 487 "/usr/local/share/bison.simple"
+
+  yyvsp -= yylen;
+  yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+  yylsp -= yylen;
+#endif
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "state stack now");
+      while (ssp1 != yyssp)
+	fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
+
+  *++yyvsp = yyval;
+
+#ifdef YYLSP_NEEDED
+  yylsp++;
+  if (yylen == 0)
+    {
+      yylsp->first_line = yylloc.first_line;
+      yylsp->first_column = yylloc.first_column;
+      yylsp->last_line = (yylsp-1)->last_line;
+      yylsp->last_column = (yylsp-1)->last_column;
+      yylsp->text = 0;
+    }
+  else
+    {
+      yylsp->last_line = (yylsp+yylen-1)->last_line;
+      yylsp->last_column = (yylsp+yylen-1)->last_column;
+    }
+#endif
+
+  /* Now "shift" the result of the reduction.
+     Determine what state that goes to,
+     based on the state we popped back to
+     and the rule number reduced by.  */
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTBASE];
+
+  goto yynewstate;
+
+yyerrlab:   /* here on detecting error */
+
+  if (! yyerrstatus)
+    /* If not already recovering from an error, report this error.  */
+    {
+      ++yynerrs;
+
+#ifdef YYERROR_VERBOSE
+      yyn = yypact[yystate];
+
+      if (yyn > YYFLAG && yyn < YYLAST)
+	{
+	  int size = 0;
+	  char *msg;
+	  int x, count;
+
+	  count = 0;
+	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
+	  for (x = (yyn < 0 ? -yyn : 0);
+	       x < (sizeof(yytname) / sizeof(char *)); x++)
+	    if (yycheck[x + yyn] == x)
+	      size += strlen(yytname[x]) + 15, count++;
+	  msg = (char *) malloc(size + 15);
+	  if (msg != 0)
+	    {
+	      strcpy(msg, "parse error");
+
+	      if (count < 5)
+		{
+		  count = 0;
+		  for (x = (yyn < 0 ? -yyn : 0);
+		       x < (sizeof(yytname) / sizeof(char *)); x++)
+		    if (yycheck[x + yyn] == x)
+		      {
+			strcat(msg, count == 0 ? ", expecting `" : " or `");
+			strcat(msg, yytname[x]);
+			strcat(msg, "'");
+			count++;
+		      }
+		}
+	      yyerror(msg);
+	      free(msg);
+	    }
+	  else
+	    yyerror ("parse error; also virtual memory exceeded");
+	}
+      else
+#endif /* YYERROR_VERBOSE */
+	yyerror("parse error");
+    }
+
+  goto yyerrlab1;
+yyerrlab1:   /* here on error raised explicitly by an action */
+
+  if (yyerrstatus == 3)
+    {
+      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
+
+      /* return failure if at end of input */
+      if (yychar == YYEOF)
+	YYABORT;
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
+
+      yychar = YYEMPTY;
+    }
+
+  /* Else will try to reuse lookahead token
+     after shifting the error token.  */
+
+  yyerrstatus = 3;		/* Each real token shifted decrements this */
+
+  goto yyerrhandle;
+
+yyerrdefault:  /* current state does not do anything special for the error token. */
+
+#if 0
+  /* This is wrong; only states that explicitly want error tokens
+     should shift them.  */
+  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
+  if (yyn) goto yydefault;
+#endif
+
+yyerrpop:   /* pop the current state because it cannot handle the error token */
+
+  if (yyssp == yyss) YYABORT;
+  yyvsp--;
+  yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+  yylsp--;
+#endif
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "Error: state stack now");
+      while (ssp1 != yyssp)
+	fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
+
+yyerrhandle:
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yyerrdefault;
+
+  yyn += YYTERROR;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+    goto yyerrdefault;
+
+  yyn = yytable[yyn];
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+	goto yyerrpop;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+  else if (yyn == 0)
+    goto yyerrpop;
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting error token, ");
+#endif
+
+  *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
+
+  yystate = yyn;
+  goto yynewstate;
+}
+#line 479 "cexp.y"
+
+
+/* During parsing of a C expression, the pointer to the next character
+   is in this variable.  */
+
+static char *lexptr;
+
+/* Take care of parsing a number (anything that starts with a digit).
+   Set yylval and return the token type; update lexptr.
+   LEN is the number of characters in it.  */
+
+/* maybe needs to actually deal with floating point numbers */
+
+static int
+parse_number (olen)
+     int olen;
+{
+  register char *p = lexptr;
+  register int c;
+  register unsigned HOST_WIDE_INT n = 0, nd, max_over_base;
+  register int base = 10;
+  register int len = olen;
+  register int overflow = 0;
+  register int digit, largest_digit = 0;
+  int spec_long = 0;
+
+  yylval.integer.signedp = SIGNED;
+
+  if (*p == '0') {
+    base = 8;
+    if (len >= 3 && (p[1] == 'x' || p[1] == 'X')) {
+      p += 2;
+      base = 16;
+      len -= 2;
+    }
+  }
+
+  max_over_base = (unsigned HOST_WIDE_INT) -1 / base;
+
+  for (; len > 0; len--) {
+    c = *p++;
+
+    if (c >= '0' && c <= '9')
+      digit = c - '0';
+    else if (base == 16 && c >= 'a' && c <= 'f')
+      digit = c - 'a' + 10;
+    else if (base == 16 && c >= 'A' && c <= 'F')
+      digit = c - 'A' + 10;
+    else {
+      /* `l' means long, and `u' means unsigned.  */
+      while (1) {
+	if (c == 'l' || c == 'L')
+	  {
+	    if (!pedantic < spec_long)
+	      yyerror ("too many `l's in integer constant");
+	    spec_long++;
+	  }
+	else if (c == 'u' || c == 'U')
+	  {
+	    if (! yylval.integer.signedp)
+	      yyerror ("two `u's in integer constant");
+	    yylval.integer.signedp = UNSIGNED;
+	  }
+	else {
+	  if (c == '.' || c == 'e' || c == 'E' || c == 'p' || c == 'P')
+	    yyerror ("Floating point numbers not allowed in #if expressions");
+	  else {
+	    char *buf = (char *) alloca (p - lexptr + 40);
+	    sprintf (buf, "missing white space after number `%.*s'",
+		     (int) (p - lexptr - 1), lexptr);
+	    yyerror (buf);
+	  }
+	}
+
+	if (--len == 0)
+	  break;
+	c = *p++;
+      }
+      /* Don't look for any more digits after the suffixes.  */
+      break;
+    }
+    if (largest_digit < digit)
+      largest_digit = digit;
+    nd = n * base + digit;
+    overflow |= (max_over_base < n) | (nd < n);
+    n = nd;
+  }
+
+  if (base <= largest_digit)
+    pedwarn ("integer constant contains digits beyond the radix");
+
+  if (overflow)
+    pedwarn ("integer constant out of range");
+
+  /* If too big to be signed, consider it unsigned.  */
+  if (((HOST_WIDE_INT) n & yylval.integer.signedp) < 0)
+    {
+      if (base == 10)
+	warning ("integer constant is so large that it is unsigned");
+      yylval.integer.signedp = UNSIGNED;
+    }
+
+  lexptr = p;
+  yylval.integer.value = n;
+  return INT;
+}
+
+struct token {
+  char *operator;
+  int token;
+};
+
+static struct token tokentab2[] = {
+  {"&&", AND},
+  {"||", OR},
+  {"<<", LSH},
+  {">>", RSH},
+  {"==", EQUAL},
+  {"!=", NOTEQUAL},
+  {"<=", LEQ},
+  {">=", GEQ},
+  {"++", ERROR},
+  {"--", ERROR},
+  {NULL, ERROR}
+};
+
+/* Read one token, getting characters through lexptr.  */
+
+static int
+yylex ()
+{
+  register int c;
+  register int namelen;
+  register unsigned char *tokstart;
+  register struct token *toktab;
+  int wide_flag;
+  HOST_WIDE_INT mask;
+
+ retry:
+
+  tokstart = (unsigned char *) lexptr;
+  c = *tokstart;
+  /* See if it is a special token of length 2.  */
+  if (! keyword_parsing)
+    for (toktab = tokentab2; toktab->operator != NULL; toktab++)
+      if (c == *toktab->operator && tokstart[1] == toktab->operator[1]) {
+	lexptr += 2;
+	if (toktab->token == ERROR)
+	  {
+	    char *buf = (char *) alloca (40);
+	    sprintf (buf, "`%s' not allowed in operand of `#if'", toktab->operator);
+	    yyerror (buf);
+	  }
+	return toktab->token;
+      }
+
+  switch (c) {
+  case '\n':
+    return 0;
+    
+  case ' ':
+  case '\t':
+  case '\r':
+    lexptr++;
+    goto retry;
+    
+  case 'L':
+    /* Capital L may start a wide-string or wide-character constant.  */
+    if (lexptr[1] == '\'')
+      {
+	lexptr++;
+	wide_flag = 1;
+	mask = MAX_WCHAR_TYPE_MASK;
+	goto char_constant;
+      }
+    if (lexptr[1] == '"')
+      {
+	lexptr++;
+	wide_flag = 1;
+	mask = MAX_WCHAR_TYPE_MASK;
+	goto string_constant;
+      }
+    break;
+
+  case '\'':
+    wide_flag = 0;
+    mask = MAX_CHAR_TYPE_MASK;
+  char_constant:
+    lexptr++;
+    if (keyword_parsing) {
+      char *start_ptr = lexptr - 1;
+      while (1) {
+	c = *lexptr++;
+	if (c == '\\')
+	  c = parse_escape (&lexptr, mask);
+	else if (c == '\'')
+	  break;
+      }
+      yylval.name.address = tokstart;
+      yylval.name.length = lexptr - start_ptr;
+      return NAME;
+    }
+
+    /* This code for reading a character constant
+       handles multicharacter constants and wide characters.
+       It is mostly copied from c-lex.c.  */
+    {
+      register HOST_WIDE_INT result = 0;
+      register num_chars = 0;
+      unsigned width = MAX_CHAR_TYPE_SIZE;
+      int max_chars;
+      char *token_buffer;
+
+      if (wide_flag)
+	{
+	  width = MAX_WCHAR_TYPE_SIZE;
+#ifdef MULTIBYTE_CHARS
+	  max_chars = MB_CUR_MAX;
+#else
+	  max_chars = 1;
+#endif
+	}
+      else
+	max_chars = MAX_LONG_TYPE_SIZE / width;
+
+      token_buffer = (char *) alloca (max_chars + 1);
+
+      while (1)
+	{
+	  c = *lexptr++;
+
+	  if (c == '\'' || c == EOF)
+	    break;
+
+	  if (c == '\\')
+	    {
+	      c = parse_escape (&lexptr, mask);
+	    }
+
+	  num_chars++;
+
+	  /* Merge character into result; ignore excess chars.  */
+	  if (num_chars <= max_chars)
+	    {
+	      if (width < HOST_BITS_PER_WIDE_INT)
+		result = (result << width) | c;
+	      else
+		result = c;
+	      token_buffer[num_chars - 1] = c;
+	    }
+	}
+
+      token_buffer[num_chars] = 0;
+
+      if (c != '\'')
+	error ("malformatted character constant");
+      else if (num_chars == 0)
+	error ("empty character constant");
+      else if (num_chars > max_chars)
+	{
+	  num_chars = max_chars;
+	  error ("character constant too long");
+	}
+      else if (num_chars != 1 && ! traditional)
+	warning ("multi-character character constant");
+
+      /* If char type is signed, sign-extend the constant.  */
+      if (! wide_flag)
+	{
+	  int num_bits = num_chars * width;
+
+	  if (lookup ((U_CHAR *) "__CHAR_UNSIGNED__",
+		      sizeof ("__CHAR_UNSIGNED__") - 1, -1)
+	      || ((result >> (num_bits - 1)) & 1) == 0)
+	    yylval.integer.value
+	      = result & (~ (unsigned HOST_WIDE_INT) 0
+			  >> (HOST_BITS_PER_WIDE_INT - num_bits));
+	  else
+	    yylval.integer.value
+	      = result | ~(~ (unsigned HOST_WIDE_INT) 0
+			   >> (HOST_BITS_PER_WIDE_INT - num_bits));
+	}
+      else
+	{
+#ifdef MULTIBYTE_CHARS
+	  /* Set the initial shift state and convert the next sequence.  */
+	  result = 0;
+	  /* In all locales L'\0' is zero and mbtowc will return zero,
+	     so don't use it.  */
+	  if (num_chars > 1
+	      || (num_chars == 1 && token_buffer[0] != '\0'))
+	    {
+	      wchar_t wc;
+	      (void) mbtowc (NULL_PTR, NULL_PTR, 0);
+	      if (mbtowc (& wc, token_buffer, num_chars) == num_chars)
+		result = wc;
+	      else
+		pedwarn ("Ignoring invalid multibyte character");
+	    }
+#endif
+	  yylval.integer.value = result;
+	}
+    }
+
+    /* This is always a signed type.  */
+    yylval.integer.signedp = SIGNED;
+    
+    return CHAR;
+
+    /* some of these chars are invalid in constant expressions;
+       maybe do something about them later */
+  case '/':
+  case '+':
+  case '-':
+  case '*':
+  case '%':
+  case '|':
+  case '&':
+  case '^':
+  case '~':
+  case '!':
+  case '@':
+  case '<':
+  case '>':
+  case '[':
+  case ']':
+  case '.':
+  case '?':
+  case ':':
+  case '=':
+  case '{':
+  case '}':
+  case ',':
+  case '#':
+    if (keyword_parsing)
+      break;
+  case '(':
+  case ')':
+    lexptr++;
+    return c;
+
+  case '"':
+    mask = MAX_CHAR_TYPE_MASK;
+  string_constant:
+    if (keyword_parsing) {
+      char *start_ptr = lexptr;
+      lexptr++;
+      while (1) {
+	c = *lexptr++;
+	if (c == '\\')
+	  c = parse_escape (&lexptr, mask);
+	else if (c == '"')
+	  break;
+      }
+      yylval.name.address = tokstart;
+      yylval.name.length = lexptr - start_ptr;
+      return NAME;
+    }
+    yyerror ("string constants not allowed in #if expressions");
+    return ERROR;
+  }
+
+  if (c >= '0' && c <= '9' && !keyword_parsing) {
+    /* It's a number */
+    for (namelen = 1; ; namelen++) {
+      int d = tokstart[namelen];
+      if (! ((is_idchar[d] || d == '.')
+	     || ((d == '-' || d == '+')
+		 && (c == 'e' || c == 'E'
+		     || ((c == 'p' || c == 'P') && ! c89))
+		 && ! traditional)))
+	break;
+      c = d;
+    }
+    return parse_number (namelen);
+  }
+
+  /* It is a name.  See how long it is.  */
+
+  if (keyword_parsing) {
+    for (namelen = 0;; namelen++) {
+      if (is_space[tokstart[namelen]])
+	break;
+      if (tokstart[namelen] == '(' || tokstart[namelen] == ')')
+	break;
+      if (tokstart[namelen] == '"' || tokstart[namelen] == '\'')
+	break;
+    }
+  } else {
+    if (!is_idstart[c]) {
+      yyerror ("Invalid token in expression");
+      return ERROR;
+    }
+
+    for (namelen = 0; is_idchar[tokstart[namelen]]; namelen++)
+      ;
+  }
+  
+  lexptr += namelen;
+  yylval.name.address = tokstart;
+  yylval.name.length = namelen;
+  return NAME;
+}
+
+
+/* Parse a C escape sequence.  STRING_PTR points to a variable
+   containing a pointer to the string to parse.  That pointer
+   is updated past the characters we use.  The value of the
+   escape sequence is returned.
+
+   RESULT_MASK is used to mask out the result;
+   an error is reported if bits are lost thereby.
+
+   A negative value means the sequence \ newline was seen,
+   which is supposed to be equivalent to nothing at all.
+
+   If \ is followed by a null character, we return a negative
+   value and leave the string pointer pointing at the null character.
+
+   If \ is followed by 000, we return 0 and leave the string pointer
+   after the zeros.  A value of 0 does not mean end of string.  */
+
+HOST_WIDE_INT
+parse_escape (string_ptr, result_mask)
+     char **string_ptr;
+     HOST_WIDE_INT result_mask;
+{
+  register int c = *(*string_ptr)++;
+  switch (c)
+    {
+    case 'a':
+      return TARGET_BELL;
+    case 'b':
+      return TARGET_BS;
+    case 'e':
+    case 'E':
+      if (pedantic)
+	pedwarn ("non-ANSI-standard escape sequence, `\\%c'", c);
+      return 033;
+    case 'f':
+      return TARGET_FF;
+    case 'n':
+      return TARGET_NEWLINE;
+    case 'r':
+      return TARGET_CR;
+    case 't':
+      return TARGET_TAB;
+    case 'v':
+      return TARGET_VT;
+    case '\n':
+      return -2;
+    case 0:
+      (*string_ptr)--;
+      return 0;
+      
+    case '0':
+    case '1':
+    case '2':
+    case '3':
+    case '4':
+    case '5':
+    case '6':
+    case '7':
+      {
+	register HOST_WIDE_INT i = c - '0';
+	register int count = 0;
+	while (++count < 3)
+	  {
+	    c = *(*string_ptr)++;
+	    if (c >= '0' && c <= '7')
+	      i = (i << 3) + c - '0';
+	    else
+	      {
+		(*string_ptr)--;
+		break;
+	      }
+	  }
+	if (i != (i & result_mask))
+	  {
+	    i &= result_mask;
+	    pedwarn ("octal escape sequence out of range");
+	  }
+	return i;
+      }
+    case 'x':
+      {
+	register unsigned HOST_WIDE_INT i = 0, overflow = 0;
+	register int digits_found = 0, digit;
+	for (;;)
+	  {
+	    c = *(*string_ptr)++;
+	    if (c >= '0' && c <= '9')
+	      digit = c - '0';
+	    else if (c >= 'a' && c <= 'f')
+	      digit = c - 'a' + 10;
+	    else if (c >= 'A' && c <= 'F')
+	      digit = c - 'A' + 10;
+	    else
+	      {
+		(*string_ptr)--;
+		break;
+	      }
+	    overflow |= i ^ (i << 4 >> 4);
+	    i = (i << 4) + digit;
+	    digits_found = 1;
+	  }
+	if (!digits_found)
+	  yyerror ("\\x used with no following hex digits");
+	if (overflow | (i != (i & result_mask)))
+	  {
+	    i &= result_mask;
+	    pedwarn ("hex escape sequence out of range");
+	  }
+	return i;
+      }
+    default:
+      return c;
+    }
+}
+
+static void
+yyerror (s)
+     char *s;
+{
+  error ("%s", s);
+  skip_evaluation = 0;
+  longjmp (parse_return_error, 1);
+}
+
+static void
+integer_overflow ()
+{
+  if (!skip_evaluation && pedantic)
+    pedwarn ("integer overflow in preprocessor expression");
+}
+
+static HOST_WIDE_INT
+left_shift (a, b)
+     struct constant *a;
+     unsigned HOST_WIDE_INT b;
+{
+   /* It's unclear from the C standard whether shifts can overflow.
+      The following code ignores overflow; perhaps a C standard
+      interpretation ruling is needed.  */
+  if (b >= HOST_BITS_PER_WIDE_INT)
+    return 0;
+  else
+    return (unsigned HOST_WIDE_INT) a->value << b;
+}
+
+static HOST_WIDE_INT
+right_shift (a, b)
+     struct constant *a;
+     unsigned HOST_WIDE_INT b;
+{
+  if (b >= HOST_BITS_PER_WIDE_INT)
+    return a->signedp ? a->value >> (HOST_BITS_PER_WIDE_INT - 1) : 0;
+  else if (a->signedp)
+    return a->value >> b;
+  else
+    return (unsigned HOST_WIDE_INT) a->value >> b;
+}
+
+/* This page contains the entry point to this file.  */
+
+/* Parse STRING as an expression, and complain if this fails
+   to use up all of the contents of STRING.  */
+/* STRING may contain '\0' bytes; it is terminated by the first '\n'
+   outside a string constant, so that we can diagnose '\0' properly.  */
+/* We do not support C comments.  They should be removed before
+   this function is called.  */
+
+HOST_WIDE_INT
+parse_c_expression (string)
+     char *string;
+{
+  lexptr = string;
+
+  /* if there is some sort of scanning error, just return 0 and assume
+     the parsing routine has printed an error message somewhere.
+     there is surely a better thing to do than this.     */
+  if (setjmp (parse_return_error))
+    return 0;
+
+  if (yyparse () != 0)
+    abort ();
+
+  if (*lexptr != '\n')
+    error ("Junk after end of expression.");
+
+  return expression_value;	/* set by yyparse () */
+}
+
+#ifdef TEST_EXP_READER
+
+#if YYDEBUG
+extern int yydebug;
+#endif
+
+int pedantic;
+int traditional;
+
+int main PROTO((int, char **));
+static void initialize_random_junk PROTO((void));
+
+/* Main program for testing purposes.  */
+int
+main (argc, argv)
+     int argc;
+     char **argv;
+{
+  int n, c;
+  char buf[1024];
+
+  pedantic = 1 < argc;
+  traditional = 2 < argc;
+#if YYDEBUG
+  yydebug = 3 < argc;
+#endif
+  initialize_random_junk ();
+
+  for (;;) {
+    printf ("enter expression: ");
+    n = 0;
+    while ((buf[n] = c = getchar ()) != '\n' && c != EOF)
+      n++;
+    if (c == EOF)
+      break;
+    printf ("parser returned %ld\n", (long) parse_c_expression (buf));
+  }
+
+  return 0;
+}
+
+/* table to tell if char can be part of a C identifier. */
+unsigned char is_idchar[256];
+/* table to tell if char can be first char of a c identifier. */
+unsigned char is_idstart[256];
+/* table to tell if c is horizontal or vertical space.  */
+unsigned char is_space[256];
+
+/*
+ * initialize random junk in the hash table and maybe other places
+ */
+static void
+initialize_random_junk ()
+{
+  register int i;
+
+  /*
+   * Set up is_idchar and is_idstart tables.  These should be
+   * faster than saying (is_alpha (c) || c == '_'), etc.
+   * Must do set up these things before calling any routines tthat
+   * refer to them.
+   */
+  for (i = 'a'; i <= 'z'; i++) {
+    ++is_idchar[i - 'a' + 'A'];
+    ++is_idchar[i];
+    ++is_idstart[i - 'a' + 'A'];
+    ++is_idstart[i];
+  }
+  for (i = '0'; i <= '9'; i++)
+    ++is_idchar[i];
+  ++is_idchar['_'];
+  ++is_idstart['_'];
+  ++is_idchar['$'];
+  ++is_idstart['$'];
+
+  ++is_space[' '];
+  ++is_space['\t'];
+  ++is_space['\v'];
+  ++is_space['\f'];
+  ++is_space['\n'];
+  ++is_space['\r'];
+}
+
+void
+error (PRINTF_ALIST (msg))
+     PRINTF_DCL (msg)
+{
+  va_list args;
+
+  VA_START (args, msg);
+  fprintf (stderr, "error: ");
+  vfprintf (stderr, msg, args);
+  fprintf (stderr, "\n");
+  va_end (args);
+}
+
+void
+pedwarn (PRINTF_ALIST (msg))
+     PRINTF_DCL (msg)
+{
+  va_list args;
+
+  VA_START (args, msg);
+  fprintf (stderr, "pedwarn: ");
+  vfprintf (stderr, msg, args);
+  fprintf (stderr, "\n");
+  va_end (args);
+}
+
+void
+warning (PRINTF_ALIST (msg))
+     PRINTF_DCL (msg)
+{
+  va_list args;
+
+  VA_START (args, msg);
+  fprintf (stderr, "warning: ");
+  vfprintf (stderr, msg, args);
+  fprintf (stderr, "\n");
+  va_end (args);
+}
+
+int
+check_assertion (name, sym_length, tokens_specified, tokens)
+     U_CHAR *name;
+     int sym_length;
+     int tokens_specified;
+     struct arglist *tokens;
+{
+  return 0;
+}
+
+struct hashnode *
+lookup (name, len, hash)
+     U_CHAR *name;
+     int len;
+     int hash;
+{
+  return (DEFAULT_SIGNED_CHAR) ? 0 : ((struct hashnode *) -1);
+}
+
+GENERIC_PTR
+xmalloc (size)
+     size_t size;
+{
+  return (GENERIC_PTR) malloc (size);
+}
+#endif
diff --git a/gcc/config.in b/gcc/config.in
new file mode 100644
index 0000000..8a04e60
--- /dev/null
+++ b/gcc/config.in
@@ -0,0 +1,32 @@
+/* config.in.  Generated automatically from configure.in by autoheader.  */
+
+/* Include the old config.h as config2.h to simplify the transition
+   to autoconf.  */
+#include "config2.h"
+
+/* Whether malloc must be declared even if <stdlib.h> is included.  */
+#undef NEED_DECLARATION_MALLOC
+
+/* Whether realloc must be declared even if <stdlib.h> is included.  */
+#undef NEED_DECLARATION_REALLOC
+
+/* Whether free must be declared even if <stdlib.h> is included.  */
+#undef NEED_DECLARATION_FREE
+
+/* Define if you have the <stddef.h> header file.  */
+#undef HAVE_STDDEF_H
+
+/* Define if you have the <stdlib.h> header file.  */
+#undef HAVE_STDLIB_H
+
+/* Define if you have the <string.h> header file.  */
+#undef HAVE_STRING_H
+
+/* Define if you have the <strings.h> header file.  */
+#undef HAVE_STRINGS_H
+
+/* Define if you have the <time.h> header file.  */
+#undef HAVE_TIME_H
+
+/* Define if you have the <unistd.h> header file.  */
+#undef HAVE_UNISTD_H
diff --git a/gcc/config/a29k/xm-unix.h b/gcc/config/a29k/xm-unix.h
new file mode 100644
index 0000000..206d8fd
--- /dev/null
+++ b/gcc/config/a29k/xm-unix.h
@@ -0,0 +1,43 @@
+/* Configuration for GNU C-compiler for AMD Am29000 processor. 
+   Copyright (C) 1987, 1988, 1993 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* #defines that need visibility everywhere.  */
+#define FALSE 0
+#define TRUE 1
+
+/* This describes the machine the compiler is hosted on.  */
+#define HOST_BITS_PER_CHAR 8
+#define HOST_BITS_PER_SHORT 16
+#define HOST_BITS_PER_INT 32
+#define HOST_BITS_PER_LONG 32
+#define HOST_BITS_PER_LONGLONG 64
+
+#define HOST_WORDS_BIG_ENDIAN
+
+/* target machine dependencies.
+   tm.h is a symbolic link to the actual target specific file.   */
+#include "tm.h"
+
+/* Arguments to use with `exit'.  */
+#define SUCCESS_EXIT_CODE 0
+#define FATAL_EXIT_CODE 33
+
+/* Ultra is V7, which is closest to USG.  */
+#define USG
diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h
index 831101e..3109b5c 100644
--- a/gcc/config/alpha/alpha.h
+++ b/gcc/config/alpha/alpha.h
@@ -267,6 +267,23 @@
 /* Define to enable software floating point emulation. */
 #define REAL_ARITHMETIC
 
+/* The following #defines are used when compiling the routines in
+   libgcc1.c.  Since the Alpha calling conventions require single
+   precision floats to be passed in the floating-point registers
+   (rather than in the general registers) we have to build the
+   libgcc1.c routines in such a way that they know the actual types
+   of their formal arguments and the actual types of their return
+   values.  Otherwise, gcc will generate calls to the libgcc1.c
+   routines, passing arguments in the floating-point registers,
+   but the libgcc1.c routines will expect their arguments on the
+   stack (where the Alpha calling conventions require structs &
+   unions to be passed).  */
+
+#define FLOAT_VALUE_TYPE	double
+#define INTIFY(FLOATVAL)	(FLOATVAL)
+#define FLOATIFY(INTVAL)	(INTVAL)
+#define FLOAT_ARG_TYPE		double
+
 /* Define the size of `int'.  The default is the same as the word size.  */
 #define INT_TYPE_SIZE 32
 
diff --git a/gcc/config/alpha/xm-linux.h b/gcc/config/alpha/xm-linux.h
new file mode 100644
index 0000000..9426c4e
--- /dev/null
+++ b/gcc/config/alpha/xm-linux.h
@@ -0,0 +1,3 @@
+#define HAVE_STRERROR
+#define DONT_DECLARE_SYS_SIGLIST
+#define USE_BFD
diff --git a/gcc/config/arm/xm-linux.h b/gcc/config/arm/xm-linux.h
new file mode 100644
index 0000000..955379d
--- /dev/null
+++ b/gcc/config/arm/xm-linux.h
@@ -0,0 +1,24 @@
+/* Configuration for GCC for Intel i386 running Linux.
+   Copyright (C) 1993, 1994, 1995, 1997 Free Software Foundation, Inc.
+   Contributed by H.J. Lu (hjl@nynexst.com)
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include <arm/xm-arm.h>
+#include <xm-linux.h>
+
diff --git a/gcc/config/arm/xm-netbsd.h b/gcc/config/arm/xm-netbsd.h
new file mode 100644
index 0000000..1c7a656
--- /dev/null
+++ b/gcc/config/arm/xm-netbsd.h
@@ -0,0 +1,10 @@
+/* Configuration for GCC for ARM running NetBSD as host.  */
+
+#include <arm/xm-arm.h>
+
+/* xm-netbsd.h defines this */
+#ifdef HAVE_VPRINTF
+#undef HAVE_VPRINTF
+#endif
+
+#include <xm-netbsd.h>
diff --git a/gcc/config/i386/dgux.h b/gcc/config/i386/dgux.h
index 469ce14..4a923fc 100644
--- a/gcc/config/i386/dgux.h
+++ b/gcc/config/i386/dgux.h
@@ -25,7 +25,7 @@
 #include "i386/sysv4.h"
 
 #ifndef VERSION_INFO2
-#define VERSION_INFO2   "$Revision: 1.5 $"
+#define VERSION_INFO2   "$Revision: 1.1 $"
 #endif
 
 #ifndef VERSION_STRING
diff --git a/gcc/config/i386/xm-bsd386.h b/gcc/config/i386/xm-bsd386.h
new file mode 100644
index 0000000..7a823b9
--- /dev/null
+++ b/gcc/config/i386/xm-bsd386.h
@@ -0,0 +1,11 @@
+/* Configuration for GCC for Intel i386 running BSDI's BSD/386 as host.  */
+
+#include "i386/xm-i386.h"
+
+#define HAVE_STRERROR
+
+/* We have _sys_siglist, but the declaration in <signal.h> conflicts with
+   the declarations in collect2.c so disable the declarations
+   in those files.  */
+
+#define DONT_DECLARE_SYS_SIGLIST
diff --git a/gcc/config/i386/xm-dgux.h b/gcc/config/i386/xm-dgux.h
new file mode 100644
index 0000000..5bdb9be
--- /dev/null
+++ b/gcc/config/i386/xm-dgux.h
@@ -0,0 +1,12 @@
+
+/* Configuration for GCC for Intel i386 running DG/ux */
+
+/* looks just like sysv4 for now */
+
+#include "i386/xm-i386.h"
+#include "xm-svr4.h"
+
+/* If not compiled with GNU C, use the portable alloca.  */
+#ifndef __GNUC__
+#define USE_C_ALLOCA
+#endif
diff --git a/gcc/config/i386/xm-freebsd.h b/gcc/config/i386/xm-freebsd.h
new file mode 100644
index 0000000..007a609
--- /dev/null
+++ b/gcc/config/i386/xm-freebsd.h
@@ -0,0 +1,4 @@
+/* Configuration for GCC for Intel i386 running FreeBSD as host.  */
+
+#include <i386/xm-i386.h>
+#include <xm-freebsd.h>
diff --git a/gcc/config/i386/xm-gnu.h b/gcc/config/i386/xm-gnu.h
new file mode 100644
index 0000000..0b5985f
--- /dev/null
+++ b/gcc/config/i386/xm-gnu.h
@@ -0,0 +1,5 @@
+/* Configuration for GCC for Intel i386 running GNU as host.  */
+
+#include <i386/xm-i386.h>
+#include <xm-gnu.h>
+
diff --git a/gcc/config/i386/xm-linux.h b/gcc/config/i386/xm-linux.h
new file mode 100644
index 0000000..42f097d
--- /dev/null
+++ b/gcc/config/i386/xm-linux.h
@@ -0,0 +1,24 @@
+/* Configuration for GCC for Intel i386 running Linux.
+   Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
+   Contributed by H.J. Lu (hjl@nynexst.com)
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include <i386/xm-i386.h>
+#include <xm-linux.h>
+
diff --git a/gcc/config/i386/xm-netbsd.h b/gcc/config/i386/xm-netbsd.h
new file mode 100644
index 0000000..3a9f324
--- /dev/null
+++ b/gcc/config/i386/xm-netbsd.h
@@ -0,0 +1,4 @@
+/* Configuration for GCC for Intel i386 running NetBSD as host.  */
+
+#include <i386/xm-i386.h>
+#include <xm-netbsd.h>
diff --git a/gcc/config/i386/xm-sun.h b/gcc/config/i386/xm-sun.h
new file mode 100644
index 0000000..d2e714e
--- /dev/null
+++ b/gcc/config/i386/xm-sun.h
@@ -0,0 +1,27 @@
+/* Configuration for GNU C-compiler for Intel 80386 running SunOS 4.0.
+   Copyright (C) 1988 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#define USG
+
+#include "i386/xm-i386.h"
+
+#define bcopy(a,b,c) memcpy (b,a,c)
+#define bzero(a,b) memset (a,0,b)
+#define bcmp(a,b,c) memcmp (a,b,c)
diff --git a/gcc/config/i386/xm-sysv3.h b/gcc/config/i386/xm-sysv3.h
new file mode 100644
index 0000000..72078bb
--- /dev/null
+++ b/gcc/config/i386/xm-sysv3.h
@@ -0,0 +1,4 @@
+/* Configuration for GCC for Intel i386 running System V Release 3.  */
+
+#include "i386/xm-i386.h"
+#include "xm-svr3.h"
diff --git a/gcc/config/i386/xm-winnt.h b/gcc/config/i386/xm-winnt.h
new file mode 100644
index 0000000..d36d2cd
--- /dev/null
+++ b/gcc/config/i386/xm-winnt.h
@@ -0,0 +1,24 @@
+/* Configuration for GNU compiler
+   for an Intel i386 or later processor running Windows NT 3.x.
+   Copyright (C) 1994 Free Software Foundation, Inc.
+   Contributed by Douglas B. Rupp (drupp@cs.washington.edu)
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include "winnt/xm-winnt.h"
+#include "i386/xm-i386.h"
diff --git a/gcc/config/i860/i860.h b/gcc/config/i860/i860.h
index 29a42cc..47eb7dc 100644
--- a/gcc/config/i860/i860.h
+++ b/gcc/config/i860/i860.h
@@ -1,6 +1,6 @@
 /* Definitions of target machine for GNU compiler, for Intel 860.
-   Copyright (C) 1989, 1991, 1993, 1995, 1996 Free Software Foundation, Inc.
-   Hacked substantially by Ron Guilmette (rfg@segfault.us.com) to cater to
+   Copyright (C) 1989, 91, 93, 95, 96, 1997 Free Software Foundation, Inc.
+   Hacked substantially by Ron Guilmette (rfg@monkeys.com) to cater to
    the whims of the System V Release 4 assembler.
 
 This file is part of GNU CC.
@@ -1369,7 +1369,7 @@
    stack (where the i860 calling conventions require structs &
    unions to be passed).  */
 
-#define FLOAT_TYPE_VALUE	float
+#define FLOAT_VALUE_TYPE	float
 #define INTIFY(FLOATVAL)	(FLOATVAL)
 #define FLOATIFY(INTVAL)	(INTVAL)
 #define FLOAT_ARG_TYPE		float
diff --git a/gcc/config/i860/xm-fx2800.h b/gcc/config/i860/xm-fx2800.h
new file mode 100644
index 0000000..f1ab6d8
--- /dev/null
+++ b/gcc/config/i860/xm-fx2800.h
@@ -0,0 +1,7 @@
+/* Alliant FX/2800 running Concentrix 2.x. */
+
+/* vfprintf is not present prior to Concentrix 2.2. Unfortunately, there
+   does not seem to be a cpp symbol that identifies OS revision. Undefine
+   the following if running 2.1 or older.  */
+
+#define HAVE_VPRINTF
diff --git a/gcc/config/m68k/mot3300-crt0.S b/gcc/config/m68k/mot3300-crt0.S
index c86e56b..e9fc1d4 100644
--- a/gcc/config/m68k/mot3300-crt0.S
+++ b/gcc/config/m68k/mot3300-crt0.S
@@ -97,7 +97,7 @@
 
 #ifdef STRING
 	SECTION (.comment)
-	STRING ("$Id: crt0.S,v 1.6 1995/12/07 17:17:47 manfred Exp $\n")
+	STRING ("$Id: mot3300-crt0.S,v 1.1 1997/08/11 15:57:32 law Exp $\n")
 	STRING ("Contributed by manfred@lts.sel.alcatel.de (Manfred Hollstein, Germany)\n")
 #else
 	byte	'C,'o,'n,'t,'r,'i,'b,'u,'t,'e,'d,' ,'b,'y
diff --git a/gcc/config/m68k/mot3300Mcrt0.S b/gcc/config/m68k/mot3300Mcrt0.S
index 52561e6..acb317c 100644
--- a/gcc/config/m68k/mot3300Mcrt0.S
+++ b/gcc/config/m68k/mot3300Mcrt0.S
@@ -143,7 +143,7 @@
 
 #ifdef STRING
 	SECTION (.comment)
-	STRING ("$Id: mcrt0.S,v 1.5 1995/12/07 17:23:39 manfred Exp $\n")
+	STRING ("$Id: mot3300Mcrt0.S,v 1.1 1997/08/11 15:57:32 law Exp $\n")
 	STRING ("Contributed by manfred@lts.sel.alcatel.de (Manfred Hollstein, Germany)\n")
 #else
 	byte	'C,'o,'n,'t,'r,'i,'b,'u,'t,'e,'d,' ,'b,'y
diff --git a/gcc/config/m68k/xm-altos3068.h b/gcc/config/m68k/xm-altos3068.h
new file mode 100644
index 0000000..294f564
--- /dev/null
+++ b/gcc/config/m68k/xm-altos3068.h
@@ -0,0 +1,7 @@
+#define USG
+
+#include "m68k/xm-m68k.h"
+
+#define bcopy(a,b,c) memcpy (b,a,c)
+#define bzero(a,b) memset (a,0,b)
+#define bcmp(a,b,c) memcmp (a,b,c)
diff --git a/gcc/config/m68k/xm-amix.h b/gcc/config/m68k/xm-amix.h
new file mode 100644
index 0000000..69b4bd1
--- /dev/null
+++ b/gcc/config/m68k/xm-amix.h
@@ -0,0 +1,47 @@
+/* Definitions of host machine for GNU compiler.
+   Commodore Amiga A3000UX version.
+
+   Copyright (C) 1991 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 1, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include "m68k/xm-m68kv.h"	/* Use the System V flavor of m68k host */
+
+#define HAVE_VPRINTF		/* Host has vprintf() in library */
+#define rindex strrchr
+#define index strchr
+
+/* Define FULL_PROTOTYPES for protoize.c, to get <unistd.h> included.
+   We need this file for things like R_OK, not necessarily prototypes. */
+
+#define FULL_PROTOTYPES
+
+#if defined (__GNUC__) && __GNUC__ == 1
+#define alloca __builtin_alloca
+#endif
+
+#if 0 /* I don't want individual ports to be inconsistent about this.
+	 I regard fancy_abort as a half-solution and not the right way
+	 to do things. --rms.  */
+/* The m88k and mips ports make use of fancy_abort to give possibly helpful
+   abort information rather than just dumping core.  They do it in their
+   tm-* files.  It seems more logical that this is a characteristic of
+   the host machine and not the target machine, so we do it here. */
+
+#define abort fancy_abort	/* give possibly helpful abort info */
+#endif
diff --git a/gcc/config/m68k/xm-aux.h b/gcc/config/m68k/xm-aux.h
new file mode 100644
index 0000000..5ac1f46
--- /dev/null
+++ b/gcc/config/m68k/xm-aux.h
@@ -0,0 +1,9 @@
+#ifndef USG
+#define USG
+#endif
+
+#ifndef AUX
+#define AUX
+#endif
+
+#include "m68k/xm-m68k.h"
diff --git a/gcc/config/m68k/xm-hp320.h b/gcc/config/m68k/xm-hp320.h
new file mode 100644
index 0000000..d724c3a
--- /dev/null
+++ b/gcc/config/m68k/xm-hp320.h
@@ -0,0 +1,19 @@
+/* USG is needed to prevent trying to use getrusage and getwd.  */
+#define USG
+
+#include "m68k/xm-m68k.h"
+
+#define bcopy(a,b,c) memcpy (b,a,c)
+#define bzero(a,b) memset (a,0,b)
+#define bcmp(a,b,c) memcmp (a,b,c)
+#define rindex strrchr
+#define index strchr
+
+/* If compiling with HPUX compiler, we are probably using alloca.c,
+   so help it work right.  */
+#ifndef __GNUC__
+#define USE_C_ALLOCA
+#endif
+
+/* Don't try to use sys_siglist.  */
+#define NO_SYS_SIGLIST
diff --git a/gcc/config/m68k/xm-linux.h b/gcc/config/m68k/xm-linux.h
new file mode 100644
index 0000000..3b10506
--- /dev/null
+++ b/gcc/config/m68k/xm-linux.h
@@ -0,0 +1,4 @@
+/* Configuration for GCC for Motorola m68k running Linux. */
+
+#include <m68k/xm-m68k.h>
+#include <xm-linux.h>
diff --git a/gcc/config/m68k/xm-m68kv.h b/gcc/config/m68k/xm-m68kv.h
new file mode 100644
index 0000000..ce3cf66
--- /dev/null
+++ b/gcc/config/m68k/xm-m68kv.h
@@ -0,0 +1,15 @@
+/* Host environment for 68000's running System V.  */
+
+#include "m68k/xm-m68k.h"
+
+#define USG
+#define bcopy(a,b,c) memcpy (b,a,c)
+#define bzero(a,b) memset (a,0,b)
+#define bcmp(a,b,c) memcmp (a,b,c)
+
+#define rindex strrchr
+#define index strchr
+
+#ifndef __GNUC__
+#define USE_C_ALLOCA
+#endif
diff --git a/gcc/config/m68k/xm-netbsd.h b/gcc/config/m68k/xm-netbsd.h
new file mode 100644
index 0000000..27a33cd
--- /dev/null
+++ b/gcc/config/m68k/xm-netbsd.h
@@ -0,0 +1,4 @@
+/* Configuration for GCC for Motorola 68k running NetBSD as host.  */
+
+#include <m68k/xm-m68k.h>
+#include <xm-netbsd.h>
diff --git a/gcc/config/m68k/xm-sun3.h b/gcc/config/m68k/xm-sun3.h
new file mode 100644
index 0000000..eafe716
--- /dev/null
+++ b/gcc/config/m68k/xm-sun3.h
@@ -0,0 +1,5 @@
+/* Configuration for GCC for Motorola m68k on sun3. */
+
+#define HAVE_POPEN
+
+#include "m68k/xm-m68k.h"
diff --git a/gcc/config/m68k/xm-tower.h b/gcc/config/m68k/xm-tower.h
new file mode 100644
index 0000000..fcb456f
--- /dev/null
+++ b/gcc/config/m68k/xm-tower.h
@@ -0,0 +1,4 @@
+#include "m68k/xm-m68k.h"
+#include "xm-svr3.h"
+
+#define HAVE_VPRINTF
diff --git a/gcc/config/m88k/dgux.h b/gcc/config/m88k/dgux.h
index edeffdf..6a3c4102 100644
--- a/gcc/config/m88k/dgux.h
+++ b/gcc/config/m88k/dgux.h
@@ -30,7 +30,7 @@
   (TARGET_SVR4 ? DWARF_DEBUG : SDB_DEBUG)
 
 #ifndef VERSION_INFO2
-#define VERSION_INFO2   "$Revision: 1.23 $"
+#define VERSION_INFO2   "$Revision: 1.24 $"
 #endif
 #ifndef NO_BUGS
 #define AS_BUG_IMMEDIATE_LABEL
diff --git a/gcc/config/m88k/m88k.h b/gcc/config/m88k/m88k.h
index 8a45610..7fc8ed9 100644
--- a/gcc/config/m88k/m88k.h
+++ b/gcc/config/m88k/m88k.h
@@ -198,13 +198,13 @@
    Redefined in sysv4.h, and luna.h.  */
 #define VERSION_INFO1	"m88k, "
 #ifndef VERSION_INFO2
-#define VERSION_INFO2   "$Revision: 1.72 $"
+#define VERSION_INFO2   "$Revision: 1.1 $"
 #endif
 
 #ifndef VERSION_STRING
 #define VERSION_STRING  version_string
 #ifdef __STDC__
-#define TM_RCS_ID      "@(#)" __FILE__ " $Revision: 1.72 $ " __DATE__
+#define TM_RCS_ID      "@(#)" __FILE__ " $Revision: 1.1 $ " __DATE__
 #else
 #define TM_RCS_ID      "$What: <@(#) m88k.h,v	1.1.1.2.2.2> $"
 #endif  /* __STDC__ */
diff --git a/gcc/config/mips/elflorion.h b/gcc/config/mips/elflorion.h
new file mode 100644
index 0000000..4b7f111
--- /dev/null
+++ b/gcc/config/mips/elflorion.h
@@ -0,0 +1,24 @@
+/* Definitions of target machine for GNU compiler.  MIPS ORION version with
+   GOFAST floating point library.
+   Copyright (C) 1994 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#define MIPS_CPU_STRING_DEFAULT "orion"
+
+#include "mips/elfl64.h"
diff --git a/gcc/config/mips/nws3250v4.h b/gcc/config/mips/nws3250v4.h
new file mode 100644
index 0000000..611effe
--- /dev/null
+++ b/gcc/config/mips/nws3250v4.h
@@ -0,0 +1,36 @@
+/* Definitions of target machine for GNU compiler.  Sony RISC NEWS (mips)
+   Copyright (C) 1991 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#define MIPS_NEWS
+
+#define CPP_PREDEFINES "\
+-Dmips -Dhost_mips -Dsony -Dsonyrisc -Dunix \
+-DLANGUAGE_C -DMIPSEB -DSYSTYPE_SYSV \
+-Asystem(unix) -Asystem(svr3) -Acpu(mips) -Amachine(mips)"
+
+#define MD_STARTFILE_PREFIX "/usr/ccs/lib/"
+
+#define LIB_SPEC "%{p:-lprof1} %{pg:-lprof1} -lc crtn.o%s values-Xt.o%s"
+
+#define STARTFILE_SPEC "%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt1.o%s}}"
+
+#define MACHINE_TYPE "RISC NEWS-OS SVr4"
+
+#include "mips/mips.h"
diff --git a/gcc/config/mips/xm-iris3.h b/gcc/config/mips/xm-iris3.h
new file mode 100644
index 0000000..3d2a59a
--- /dev/null
+++ b/gcc/config/mips/xm-iris3.h
@@ -0,0 +1,8 @@
+#include "mips/xm-mips.h"
+
+#define USG
+
+#define bcopy(a,b,c) memcpy (b,a,c)
+#define bzero(a,b) memset (a,0,b)
+#define bcmp(a,b,c) memcmp (a,b,c)
+
diff --git a/gcc/config/mips/xm-iris4.h b/gcc/config/mips/xm-iris4.h
new file mode 100644
index 0000000..e12c226
--- /dev/null
+++ b/gcc/config/mips/xm-iris4.h
@@ -0,0 +1,18 @@
+#include "mips/xm-mips.h"
+
+#define USG
+#define HAVE_VPRINTF
+
+#define bcopy(a,b,c) memcpy (b,a,c)
+#define bzero(a,b) memset (a,0,b)
+#define bcmp(a,b,c) memcmp (a,b,c)
+
+#if 0
+#ifdef __GNUC__
+/* The normal irix compiler requires alloca.h or alloca doesn't work.
+   However, the IRIX compiler doesn't allow alloca to be stored in
+   something like ptr->field = alloca(), so we just use the normal
+   C alloca.  */
+#include <alloca.h>
+#endif
+#endif
diff --git a/gcc/config/mips/xm-netbsd.h b/gcc/config/mips/xm-netbsd.h
new file mode 100644
index 0000000..b9d3c70
--- /dev/null
+++ b/gcc/config/mips/xm-netbsd.h
@@ -0,0 +1,2 @@
+#include "mips/xm-mips.h"
+#include "config/xm-netbsd.h"
diff --git a/gcc/config/mips/xm-news.h b/gcc/config/mips/xm-news.h
new file mode 100644
index 0000000..9409d7f
--- /dev/null
+++ b/gcc/config/mips/xm-news.h
@@ -0,0 +1,6 @@
+/* This file is for the Sony Mips News running "NewsOS Version 5",
+   which is really System V.  */
+#include "mips/xm-sysv.h"
+
+/* Sony has a funny name for this symbol.  */
+#define sys_siglist _sys_siglist
diff --git a/gcc/config/mips/xm-nws3250v4.h b/gcc/config/mips/xm-nws3250v4.h
new file mode 100644
index 0000000..34ab631
--- /dev/null
+++ b/gcc/config/mips/xm-nws3250v4.h
@@ -0,0 +1,9 @@
+#define USG
+
+#include "xm-mips.h"
+
+/* If compiling with mips compiler, we are probably using alloca.c,
+   so help it work right.  */
+#ifndef __GNUC__
+#define USE_C_ALLOCA
+#endif
diff --git a/gcc/config/mips/xm-sysv.h b/gcc/config/mips/xm-sysv.h
new file mode 100644
index 0000000..170538f
--- /dev/null
+++ b/gcc/config/mips/xm-sysv.h
@@ -0,0 +1,38 @@
+/* Configuration for GNU C-compiler for UMIPS operating system
+   Copyright (C) 1989, 1990, 1991 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/*
+ *  Notes for compiling gcc on umips (v3.0)
+ *	- change the -g in the CFLAGS to a -g3 or take it out all together.
+ *	- do not define DBX_DEBUGGING_INFO in tm.h, it doesn't exist (unless
+ *	you get one from a bsd system)
+ */
+
+#define USG
+
+#include "mips/xm-mips.h"
+
+#define bcopy(a,b,c)	memcpy((b),(a),(c))
+#define bzero(a,b)	memset((a),0,(b))
+#define bcmp(a,b,c)	memcmp((a),(b),(c))
+
+#define rindex strrchr
+#define index strchr
+
diff --git a/gcc/config/mips/xm-sysv4.h b/gcc/config/mips/xm-sysv4.h
new file mode 100644
index 0000000..490a772
--- /dev/null
+++ b/gcc/config/mips/xm-sysv4.h
@@ -0,0 +1,11 @@
+#include "mips/xm-sysv.h"
+
+/* SVR4 provides no sys_siglist,
+   but does offer the same data under another name.  */
+#define sys_siglist _sys_siglist
+
+/* There is a declaration in /usr/include/signal.h that conflicts with the
+   declarations in collect2.c and mips-tfile.c, so disable gcc's declarations.
+   This is at least true for CDC's EP/IX 2.1.1.  It is suspected to be true
+   for RISC/OS 5.x also.  */
+#define DONT_DECLARE_SYS_SIGLIST
diff --git a/gcc/config/ns32k/xm-genix.h b/gcc/config/ns32k/xm-genix.h
new file mode 100644
index 0000000..76be3b7
--- /dev/null
+++ b/gcc/config/ns32k/xm-genix.h
@@ -0,0 +1,9 @@
+/* Config file for ns32k running system V.  */
+
+#include "ns32k/xm-ns32k.h"
+
+#define USG
+
+#define bcopy(a,b,c) memcpy (b,a,c)
+#define bzero(a,b) memset (a,0,b)
+#define bcmp(a,b,c) memcmp (a,b,c)
diff --git a/gcc/config/ns32k/xm-netbsd.h b/gcc/config/ns32k/xm-netbsd.h
new file mode 100644
index 0000000..4040751
--- /dev/null
+++ b/gcc/config/ns32k/xm-netbsd.h
@@ -0,0 +1,10 @@
+/* Configuration for GCC for ns32k running NetBSD as host.  */
+
+#include <ns32k/xm-ns32k.h>
+
+/* ns32k/xm-ns32k.h defines these macros, but we don't need them */
+#undef memcmp
+#undef memcpy
+#undef memset
+
+#include <xm-netbsd.h>
diff --git a/gcc/config/sparc/xm-netbsd.h b/gcc/config/sparc/xm-netbsd.h
new file mode 100644
index 0000000..5f11b8d
--- /dev/null
+++ b/gcc/config/sparc/xm-netbsd.h
@@ -0,0 +1,4 @@
+/* Configuration for GCC for Sun SPARC running NetBSD as host.  */
+
+#include <sparc/xm-sparc.h>
+#include <xm-netbsd.h>
diff --git a/gcc/config/sparc/xm-pbd.h b/gcc/config/sparc/xm-pbd.h
new file mode 100644
index 0000000..dad9fdc
--- /dev/null
+++ b/gcc/config/sparc/xm-pbd.h
@@ -0,0 +1,13 @@
+/* Host environment for the tti "Unicom" PBB 68020 boards */
+
+#include "sparc/xm-sparc.h"
+
+#define USG
+#define bcopy(a,b,c) memcpy (b,a,c)
+#define bzero(a,b) memset (a,0,b)
+#define bcmp(a,b,c) memcmp (a,b,c)
+
+#ifndef __GNUC__
+#define USE_C_ALLOCA
+#endif
+
diff --git a/gcc/config/vax/x-vax b/gcc/config/vax/x-vax
new file mode 100644
index 0000000..bb58a6a
--- /dev/null
+++ b/gcc/config/vax/x-vax
@@ -0,0 +1,3 @@
+# If compiling GCC with the Unix assembler, -J will handle a large function.
+# With GAS, it should have no effect.
+X_CPPFLAGS = -J
diff --git a/gcc/config/vax/xm-vaxv.h b/gcc/config/vax/xm-vaxv.h
new file mode 100644
index 0000000..18a1d73
--- /dev/null
+++ b/gcc/config/vax/xm-vaxv.h
@@ -0,0 +1,7 @@
+/* Config file for Vax running system V.  */
+
+#define USG
+
+#define bcopy(a,b,c) memcpy (b,a,c)
+#define bzero(a,b) memset (a,0,b)
+#define bcmp(a,b,c) memcmp (a,b,c)
diff --git a/gcc/config/xm-freebsd.h b/gcc/config/xm-freebsd.h
new file mode 100644
index 0000000..f73c9aa
--- /dev/null
+++ b/gcc/config/xm-freebsd.h
@@ -0,0 +1,33 @@
+/* Configuration for GNU C-compiler for hosts running FreeBSD.
+   Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* This file defines machine-independent things specific to a host
+   running FreeBSD.  This file should not be specified as $xm_file itself;
+   instead $xm_file should be CPU/xm-freebsd.h, which should include both
+   CPU/xm-CPU.h and this file xm-freebsd.h.  */
+   
+/* FreeBSD has strerror.  */
+#define HAVE_STRERROR
+
+/* We have _sys_siglist, but the declaration in <signal.h> conflicts with
+   the declarations in collect2.c and mips-tfile.c, so disable the declarations
+   in those files.  */
+
+#define DONT_DECLARE_SYS_SIGLIST
diff --git a/gcc/config/xm-linux.h b/gcc/config/xm-linux.h
new file mode 100644
index 0000000..88b558c
--- /dev/null
+++ b/gcc/config/xm-linux.h
@@ -0,0 +1,47 @@
+/* Configuration for GCC for Intel i386 running Linux.
+   Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+   Contributed by H.J. Lu (hjl@nynexst.com)
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#undef  HAVE_VPRINTF
+#define HAVE_VPRINTF
+
+#undef  HAVE_STRERROR
+#define HAVE_STRERROR
+
+#undef  HAVE_POPEN
+#define HAVE_POPEN
+
+#undef  POSIX
+#define POSIX
+
+#undef  DONT_DECLARE_SYS_SIGLIST
+#define DONT_DECLARE_SYS_SIGLIST
+
+/* We do have one, but I'd like to use the one come with gcc since
+   we have been doing that for a long time with USG defined.  H.J. */
+#define NO_STAB_H
+
+#undef BSTRING
+#define BSTRING
+#undef bcmp
+#undef bcopy
+#undef bzero
+#undef index
+#undef rindex
diff --git a/gcc/config/xm-netbsd.h b/gcc/config/xm-netbsd.h
new file mode 100644
index 0000000..00000ce
--- /dev/null
+++ b/gcc/config/xm-netbsd.h
@@ -0,0 +1,27 @@
+/* Configuration for GNU C-compiler for hosts running NetBSD.
+   Copyright (C) 1995 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* This file defines machine-independent things specific to a host
+   running NetBSD.  This file should not be specified as $xm_file itself;
+   instead $xm_file should be CPU/xm-netbsd.h, which should include both
+   CPU/xm-CPU.h and this file xm-netbsd.h.  */
+   
+#define HAVE_STRERROR
+#define HAVE_VPRINTF
diff --git a/gcc/config/xm-svr3.h b/gcc/config/xm-svr3.h
new file mode 100644
index 0000000..ac1000f
--- /dev/null
+++ b/gcc/config/xm-svr3.h
@@ -0,0 +1,33 @@
+/* Configuration for GNU C-compiler for hosts running System V Release 3
+   Copyright (C) 1991, 1993 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#define bcopy(src,dst,len) memcpy ((dst),(src),(len))
+#define bzero(dst,len) memset ((dst),0,(len))
+#define bcmp(left,right,len) memcmp ((left),(right),(len))
+
+#define rindex strrchr
+#define index strchr
+
+#define USG
+#define HAVE_VPRINTF
+
+#ifndef SVR3
+#define SVR3
+#endif
diff --git a/gcc/config/xm-svr4.h b/gcc/config/xm-svr4.h
new file mode 100644
index 0000000..3008432
--- /dev/null
+++ b/gcc/config/xm-svr4.h
@@ -0,0 +1,35 @@
+/* Configuration for GNU C-compiler for hosts running System V Release 4
+   Copyright (C) 1988 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#define bcopy(src,dst,len) memcpy ((dst),(src),(len))
+#define bzero(dst,len) memset ((dst),0,(len))
+#define bcmp(left,right,len) memcmp ((left),(right),(len))
+
+#define rindex strrchr
+#define index strchr
+
+#define USG
+#define HAVE_VPRINTF
+
+#define POSIX
+
+/* SVR4 provides no sys_siglist,
+   but does offer the same data under another name.  */
+#define sys_siglist _sys_siglist
diff --git a/gcc/configure b/gcc/configure
new file mode 100755
index 0000000..b318152
--- /dev/null
+++ b/gcc/configure
@@ -0,0 +1,4911 @@
+#! /bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.12 
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+  --with-gnu-ld           arrange to work with GNU ld."
+ac_help="$ac_help
+  --with-gnu-as           arrange to work with GNU as."
+ac_help="$ac_help
+  --with-stabs            arrange to use stabs instead of host debug format."
+ac_help="$ac_help
+  --with-elf              arrange to use ELF instead of host debug format."
+ac_help="$ac_help
+  --with-local-prefix=DIR specifies directory to put local include."
+ac_help="$ac_help
+  --with-gxx-include-dir=DIR
+                          specifies directory to put g++ header files."
+ac_help="$ac_help
+  --enable-c-cpplib       Use cpplib for C."
+ac_help="$ac_help
+  --enable-threads        enable thread usage for target GCC.
+  --enable-threads=LIB    use LIB thread package for target GCC."
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir="$ac_optarg" ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build="$ac_optarg" ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file="$ac_optarg" ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir="$ac_optarg" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix="$ac_optarg" ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he)
+    # Omit some internal or obsolete options to make the list less imposing.
+    # This message is too long to be a string in the A/UX 3.1 sh.
+    cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [same as prefix]
+  --bindir=DIR            user executables in DIR [EPREFIX/bin]
+  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
+  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
+  --datadir=DIR           read-only architecture-independent data in DIR
+                          [PREFIX/share]
+  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
+                          [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
+  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
+  --includedir=DIR        C header files in DIR [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
+  --infodir=DIR           info documentation in DIR [PREFIX/info]
+  --mandir=DIR            man documentation in DIR [PREFIX/man]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+  --program-transform-name=PROGRAM
+                          run sed PROGRAM on installed program names
+EOF
+    cat << EOF
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+EOF
+    if test -n "$ac_help"; then
+      echo "--enable and --with options recognized:$ac_help"
+    fi
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$ac_optarg" ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir="$ac_optarg" ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir="$ac_optarg" ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir="$ac_optarg" ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir="$ac_optarg" ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir="$ac_optarg" ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir="$ac_optarg" ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir="$ac_optarg" ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix="$ac_optarg" ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix="$ac_optarg" ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix="$ac_optarg" ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name="$ac_optarg" ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir="$ac_optarg" ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir="$ac_optarg" ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site="$ac_optarg" ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir="$ac_optarg" ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir="$ac_optarg" ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 2.12"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    eval "with_${ac_package}=no" ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes="$ac_optarg" ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries="$ac_optarg" ;;
+
+  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+    ;;
+
+  *)
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 6>/dev/null
+else
+  exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set.  These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=tree.c
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then its parent.
+  ac_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  srcdir=$ac_confdir
+  if test ! -r $srcdir/$ac_unique_file; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+  fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    echo "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='	'
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+
+
+
+native_prefix=/usr
+remove=rm
+hard_link=ln
+symbolic_link='ln -s'
+copy=cp
+
+# Check for additional parameters
+
+# With GNU ld
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+  withval="$with_gnu_ld"
+  gnu_ld=yes
+else
+  gnu_ld=no
+fi
+
+
+# With GNU as
+# Check whether --with-gnu-as or --without-gnu-as was given.
+if test "${with_gnu_as+set}" = set; then
+  withval="$with_gnu_as"
+  gas=yes
+else
+  gas=no
+fi
+
+
+# With stabs
+# Check whether --with-stabs or --without-stabs was given.
+if test "${with_stabs+set}" = set; then
+  withval="$with_stabs"
+  stabs=yes
+else
+  stabs=no
+fi
+
+
+# With ELF
+# Check whether --with-elf or --without-elf was given.
+if test "${with_elf+set}" = set; then
+  withval="$with_elf"
+  elf=yes
+else
+  elf=no
+fi
+
+
+# Specify the local prefix
+# Check whether --with-local-prefix or --without-local-prefix was given.
+if test "${with_local_prefix+set}" = set; then
+  withval="$with_local_prefix"
+  local_prefix=$with_local_prefix
+else
+  local_prefix=/usr/local
+fi
+
+
+# Default local prefix if it is empty
+if [ x$local_prefix = x ]; then
+	local_prefix=/usr/local
+fi
+
+# Specify the g++ header file directory
+# Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
+if test "${with_gxx_include_dir+set}" = set; then
+  withval="$with_gxx_include_dir"
+  gxx_include_dir=$with_gxx_include_dir
+else
+  gxx_include_dir='${prefix}/include/g++'
+fi
+
+
+# Default g++ header file directory if it is empty
+if [ x$gxx_include_dir = x ]; then
+	gxx_include_dir='${prefix}/include/g++'
+fi
+
+# Enable use of cpplib for C.
+# Check whether --enable-c-cpplib or --disable-c-cpplib was given.
+if test "${enable_c_cpplib+set}" = set; then
+  enableval="$enable_c_cpplib"
+  if [ x$enable_c_cpplib != xno ]; then
+  extra_c_objs="${extra_c_objs} cpplib.o cppexp.o cpphash.o cpperror.o"
+  extra_c_flags=-DUSE_CPPLIB=1
+fi
+fi
+
+
+# Enable threads
+# Pass with no value to take the default
+# Pass with a value to specify a thread package
+# Check whether --enable-threads or --disable-threads was given.
+if test "${enable_threads+set}" = set; then
+  enableval="$enable_threads"
+  if [ x$enable_threads = xno ]; then
+	enable_threads=''
+fi
+else
+  enable_threads=''
+fi
+
+
+# Check if a valid thread package
+case x${enable_threads} in
+	x | xno)
+		# No threads
+		thread_file='single'
+		;;
+	xyes)
+		# default
+		thread_file=''
+		;;
+	xdecosf1 | xirix | xmach | xos2 | xposix | xpthreads | xsingle | \
+	xsolaris | xwin32)
+		thread_file=$enable_threads
+		;;
+	*)
+		echo "$enable_threads is an unknown thread package" 1>&2
+		exit 1
+		;;
+esac
+
+# Determine the host, build, and target systems
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+  if test -f $ac_dir/install-sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f $ac_dir/install.sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+
+# Do some error checking and defaulting for the host and target type.
+# The inputs are:
+#    configure --host=HOST --target=TARGET --build=BUILD NONOPT
+#
+# The rules are:
+# 1. You are not allowed to specify --host, --target, and nonopt at the
+#    same time.
+# 2. Host defaults to nonopt.
+# 3. If nonopt is not specified, then host defaults to the current host,
+#    as determined by config.guess.
+# 4. Target and build default to nonopt.
+# 5. If nonopt is not specified, then target and build default to host.
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+case $host---$target---$nonopt in
+NONE---*---* | *---NONE---* | *---*---NONE) ;;
+*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
+esac
+
+
+# Make sure we can run config.sub.
+if $ac_config_sub sun4 >/dev/null 2>&1; then :
+else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking host system type""... $ac_c" 1>&6
+echo "configure:713: checking host system type" >&5
+
+host_alias=$host
+case "$host_alias" in
+NONE)
+  case $nonopt in
+  NONE)
+    if host_alias=`$ac_config_guess`; then :
+    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+    fi ;;
+  *) host_alias=$nonopt ;;
+  esac ;;
+esac
+
+host=`$ac_config_sub $host_alias`
+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$host" 1>&6
+
+echo $ac_n "checking target system type""... $ac_c" 1>&6
+echo "configure:734: checking target system type" >&5
+
+target_alias=$target
+case "$target_alias" in
+NONE)
+  case $nonopt in
+  NONE) target_alias=$host_alias ;;
+  *) target_alias=$nonopt ;;
+  esac ;;
+esac
+
+target=`$ac_config_sub $target_alias`
+target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$target" 1>&6
+
+echo $ac_n "checking build system type""... $ac_c" 1>&6
+echo "configure:752: checking build system type" >&5
+
+build_alias=$build
+case "$build_alias" in
+NONE)
+  case $nonopt in
+  NONE) build_alias=$host_alias ;;
+  *) build_alias=$nonopt ;;
+  esac ;;
+esac
+
+build=`$ac_config_sub $build_alias`
+build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$build" 1>&6
+
+test "$host_alias" != "$target_alias" &&
+  test "$program_prefix$program_suffix$program_transform_name" = \
+    NONENONEs,x,x, &&
+  program_prefix=${target_alias}-
+
+
+# Find some useful tools
+for ac_prog in mawk gawk nawk awk
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:781: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_AWK="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+AWK="$ac_cv_prog_AWK"
+if test -n "$AWK"; then
+  echo "$ac_t""$AWK" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$AWK" && break
+done
+
+# Extract the first word of "flex", so it can be a program name with args.
+set dummy flex; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:812: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$LEX"; then
+  ac_cv_prog_LEX="$LEX" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_LEX="flex"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_LEX" && ac_cv_prog_LEX="lex"
+fi
+fi
+LEX="$ac_cv_prog_LEX"
+if test -n "$LEX"; then
+  echo "$ac_t""$LEX" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$LEXLIB"
+then
+  case "$LEX" in
+  flex*) ac_lib=fl ;;
+  *) ac_lib=l ;;
+  esac
+  echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
+echo "configure:845: checking for yywrap in -l$ac_lib" >&5
+ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-l$ac_lib  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 853 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char yywrap();
+
+int main() {
+yywrap()
+; return 0; }
+EOF
+if { (eval echo configure:864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LEXLIB="-l$ac_lib"
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+fi
+
+echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
+echo "configure:887: checking whether ln -s works" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  rm -f conftestdata
+if ln -s X conftestdata 2>/dev/null
+then
+  rm -f conftestdata
+  ac_cv_prog_LN_S="ln -s"
+else
+  ac_cv_prog_LN_S=ln
+fi
+fi
+LN_S="$ac_cv_prog_LN_S"
+if test "$ac_cv_prog_LN_S" = "ln -s"; then
+  echo "$ac_t""yes" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:910: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+for ac_prog in 'bison -y' byacc
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:941: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$YACC"; then
+  ac_cv_prog_YACC="$YACC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_YACC="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+YACC="$ac_cv_prog_YACC"
+if test -n "$YACC"; then
+  echo "$ac_t""$YACC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$YACC" && break
+done
+test -n "$YACC" || YACC="yacc"
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:981: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    # Account for people who put trailing slashes in PATH elements.
+    case "$ac_dir/" in
+    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+    *)
+      # OSF1 and SCO ODT 3.0 have their own names for install.
+      for ac_prog in ginstall installbsd scoinst install; do
+        if test -f $ac_dir/$ac_prog; then
+	  if test $ac_prog = install &&
+            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    # OSF/1 installbsd also uses dspmsg, but is usable.
+	    :
+	  else
+	    ac_cv_path_install="$ac_dir/$ac_prog -c"
+	    break 2
+	  fi
+	fi
+      done
+      ;;
+    esac
+  done
+  IFS="$ac_save_IFS"
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL="$ac_cv_path_install"
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL="$ac_install_sh"
+  fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+# Find the native compiler
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1035: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1064: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  ac_prog_rejected=no
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+        ac_prog_rejected=yes
+	continue
+      fi
+      ac_cv_prog_CC="cc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# -gt 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    set dummy "$ac_dir/$ac_word" "$@"
+    shift
+    ac_cv_prog_CC="$@"
+  fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:1112: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext <<EOF
+#line 1122 "configure"
+#include "confdefs.h"
+main(){return(0);}
+EOF
+if { (eval echo configure:1126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  ac_cv_prog_cc_works=yes
+  # If we can't run a trivial program, we are probably using a cross compiler.
+  if (./conftest; exit) 2>/dev/null; then
+    ac_cv_prog_cc_cross=no
+  else
+    ac_cv_prog_cc_cross=yes
+  fi
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_prog_cc_works=no
+fi
+rm -fr conftest*
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:1146: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:1151: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1160: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gcc=yes
+else
+  ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+  ac_test_CFLAGS="${CFLAGS+set}"
+  ac_save_CFLAGS="$CFLAGS"
+  CFLAGS=
+  echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:1175: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  ac_cv_prog_cc_g=yes
+else
+  ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+  if test "$ac_test_CFLAGS" = set; then
+    CFLAGS="$ac_save_CFLAGS"
+  elif test $ac_cv_prog_cc_g = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-O2"
+  fi
+else
+  GCC=
+  test "${CFLAGS+set}" = set || CFLAGS="-g"
+fi
+
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:1203: checking whether ${MAKE-make} sets \${MAKE}" >&5
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftestmake <<\EOF
+all:
+	@echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+  eval ac_cv_prog_make_${ac_make}_set=yes
+else
+  eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftestmake
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  SET_MAKE=
+else
+  echo "$ac_t""no" 1>&6
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:1231: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    # This must be in double quotes, not single quotes, because CPP may get
+  # substituted into the Makefile and "${CC-cc}" will confuse make.
+  CPP="${CC-cc} -E"
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp.
+  cat > conftest.$ac_ext <<EOF
+#line 1246 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1252: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -E -traditional-cpp"
+  cat > conftest.$ac_ext <<EOF
+#line 1263 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1269: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+  ac_cv_prog_CPP="$CPP"
+fi
+  CPP="$ac_cv_prog_CPP"
+else
+  ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+for ac_hdr in stddef.h string.h strings.h stdlib.h time.h unistd.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:1295: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1300 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1305: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+
+echo $ac_n "checking whether malloc must be declared""... $ac_c" 1>&6
+echo "configure:1333: checking whether malloc must be declared" >&5
+if eval "test \"`echo '$''{'gcc_cv_decl_needed_malloc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1338 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+int main() {
+char *(*pfn) = (char *(*)) malloc
+; return 0; }
+EOF
+if { (eval echo configure:1359: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  gcc_cv_decl_needed_malloc=no
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  gcc_cv_decl_needed_malloc=yes
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$gcc_cv_decl_needed_malloc" 1>&6
+if test $gcc_cv_decl_needed_malloc = yes; then
+  gcc_tr_decl=NEED_DECLARATION_`echo malloc | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $gcc_tr_decl 1
+EOF
+
+fi
+
+echo $ac_n "checking whether realloc must be declared""... $ac_c" 1>&6
+echo "configure:1381: checking whether realloc must be declared" >&5
+if eval "test \"`echo '$''{'gcc_cv_decl_needed_realloc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1386 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+int main() {
+char *(*pfn) = (char *(*)) realloc
+; return 0; }
+EOF
+if { (eval echo configure:1407: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  gcc_cv_decl_needed_realloc=no
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  gcc_cv_decl_needed_realloc=yes
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$gcc_cv_decl_needed_realloc" 1>&6
+if test $gcc_cv_decl_needed_realloc = yes; then
+  gcc_tr_decl=NEED_DECLARATION_`echo realloc | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $gcc_tr_decl 1
+EOF
+
+fi
+
+echo $ac_n "checking whether free must be declared""... $ac_c" 1>&6
+echo "configure:1429: checking whether free must be declared" >&5
+if eval "test \"`echo '$''{'gcc_cv_decl_needed_free'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1434 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+int main() {
+char *(*pfn) = (char *(*)) free
+; return 0; }
+EOF
+if { (eval echo configure:1455: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  gcc_cv_decl_needed_free=no
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  gcc_cv_decl_needed_free=yes
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$gcc_cv_decl_needed_free" 1>&6
+if test $gcc_cv_decl_needed_free = yes; then
+  gcc_tr_decl=NEED_DECLARATION_`echo free | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $gcc_tr_decl 1
+EOF
+
+fi
+
+
+# File extensions
+manext='.1'
+objext='.o'
+
+
+
+build_xm_file=
+build_broken_install=
+build_install_headers_dir=install-headers-tar
+build_exeext=
+host_xm_file=
+host_xmake_file=
+host_truncate_target=
+
+# Decode the host machine, then the target machine.
+# For the host machine, we save the xm_file variable as host_xm_file;
+# then we decode the target machine and forget everything else
+# that came from the host machine.
+for machine in $build $host $target; do
+
+	out_file=
+	xmake_file=
+	tmake_file=
+	extra_headers=
+	extra_passes=
+	extra_parts=
+	extra_programs=
+	extra_objs=
+	extra_host_objs=
+	extra_gcc_objs=
+	float_format=
+	# Set this to force installation and use of collect2.
+	use_collect2=
+	# Set this to override the default target model.
+	target_cpu_default=
+	# Set this to force use of install.sh.
+	broken_install=
+	# Set this to control which fixincludes program to use.
+	fixincludes=fixincludes
+	# Set this to control how the header file directory is installed.
+	install_headers_dir=install-headers-tar
+	# Set this to a non-empty list of args to pass to cpp if the target
+	# wants its .md file passed through cpp.
+	md_cppflags=
+	# Set this if directory names should be truncated to 14 characters.
+	truncate_target=
+	# Set this if gdb needs a dir command with `dirname $out_file`
+	gdb_needs_out_file_path=
+	# Set this if the build machine requires executables to have a
+	# file name suffix.
+	exeext=
+
+	# Set default cpu_type, tm_file and xm_file so it can be updated in
+	# each machine entry.
+	cpu_type=`echo $machine | sed 's/-.*$//'`
+	case $machine in
+	alpha*-*-*)
+		cpu_type=alpha
+		;;
+	arm*-*-*)
+		cpu_type=arm
+		;;
+	c*-convex-*)
+		cpu_type=convex
+		;;
+	i[3456]86-*-*)
+		cpu_type=i386
+		;;
+	hppa*-*-*)
+		cpu_type=pa
+		;;
+	m68000-*-*)
+		cpu_type=m68k
+		;;
+	mips*-*-*)
+		cpu_type=mips
+		;;
+	powerpc*-*-*)
+		cpu_type=rs6000
+		;;
+	pyramid-*-*)
+		cpu_type=pyr
+		;;
+	sparc*-*-*)
+		cpu_type=sparc
+		;;
+	esac
+
+	tm_file=${cpu_type}/${cpu_type}.h
+	xm_file=${cpu_type}/xm-${cpu_type}.h
+	
+	case $machine in
+	# Support site-specific machine types.
+	*local*)
+		cpu_type=`echo $machine | sed -e 's/-.*//'`
+		rest=`echo $machine | sed -e "s/$cpu_type-//"`
+		xm_file=${cpu_type}/xm-$rest.h
+		tm_file=${cpu_type}/$rest.h
+		if [ -f $srcdir/config/${cpu_type}/x-$rest ] ; \
+		then xmake_file=${cpu_type}/x-$rest; \
+		else true; \
+		fi
+		if [ -f $srcdir/config/${cpu_type}/t-$rest ] ; \
+		then tmake_file=${cpu_type}/t-$rest; \
+		else true; \
+		fi
+		;;
+	1750a-*-*)
+		;;
+	a29k-*-bsd* | a29k-*-sym1*)
+		tm_file="${tm_file} a29k/unix.h"
+		xm_file=a29k/xm-unix.h
+		xmake_file=a29k/x-unix
+		use_collect2=yes
+		;;
+	a29k-*-udi | a29k-*-coff)
+		tm_file="${tm_file} dbxcoff.h a29k/udi.h"
+		tmake_file=a29k/t-a29kbare
+		;;
+	a29k-*-vxworks*)
+		tm_file="${tm_file} dbxcoff.h a29k/udi.h a29k/vx29k.h"
+		tmake_file=a29k/t-vx29k
+		extra_parts="crtbegin.o crtend.o"
+		;;
+	a29k-*-*)			# Default a29k environment.
+		use_collect2=yes
+		;;
+	alpha*-*-linux-gnuecoff*)
+		tm_file="${tm_file} alpha/linux.h"
+		xm_file="${xm_file} alpha/xm-linux.h"
+		target_cpu_default="MASK_GAS"
+		gas=no
+		xmake_file=none
+		fixincludes=Makefile.in
+		gas=yes gnu_ld=yes
+		;;
+	alpha*-*-linux-gnu*)
+		tm_file="${tm_file} alpha/linux.h alpha/elf.h"
+		xm_file="${xm_file} alpha/xm-linux.h"
+		target_cpu_default="MASK_GAS"
+		gas=no
+		tmake_file="t-linux alpha/t-linux"
+		xmake_file=none
+		fixincludes=Makefile.in
+		extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+		gas=yes gnu_ld=yes
+ 		if [ x$enable_threads = xyes ]; then
+ 			thread_file='posix'
+ 		fi
+		;;
+	alpha*-dec-osf[456789]*)
+		if [ x$stabs = xyes ]
+		then
+			tm_file="${tm_file} dbx.h"
+		fi
+		if [ x$gas != xyes ]
+		then
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		broken_install=yes
+		use_collect2=yes
+		# Some versions of OSF4 (specifically X4.0-9 296.7) have
+		# a broken tar, so we use cpio instead.
+		case $machine in
+		  alpha*-dec-osf4*)
+		    install_headers_dir=install-headers-cpio
+		    ;;
+		esac
+		;;
+	alpha*-dec-osf[23]*)
+		tm_file="${tm_file} alpha/osf2or3.h"
+		if [ x$stabs = xyes ]
+		then
+			tm_file="${tm_file} dbx.h"
+		fi
+		if [ x$gas != xyes ]
+		then
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		broken_install=yes
+		use_collect2=yes
+		;;
+	alpha*-dec-osf1.2)
+		tm_file="${tm_file} alpha/osf12.h"
+		if [ x$stabs = xyes ]
+		then
+			tm_file="${tm_file} dbx.h"
+		fi
+		if [ x$gas != xyes ]
+		then
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		broken_install=yes
+		use_collect2=yes
+		;;
+	alpha*-*-osf*)
+		if [ x$stabs = xyes ]
+		then
+			tm_file="${tm_file} dbx.h"
+		fi
+		if [ x$gas != xyes ]
+		then
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		broken_install=yes
+		use_collect2=yes
+		;;
+	alpha*-*-winnt3*)
+		tm_file="${tm_file} alpha/win-nt.h"
+		target_cpu_default=MASK_WINDOWS_NT
+		xm_file="${xm_file} config/winnt/xm-winnt.h alpha/xm-winnt.h"
+		tmake_file=t-libc-ok
+		xmake_file=winnt/x-winnt
+		extra_host_objs=oldnames.o
+		extra_gcc_objs="spawnv.o oldnames.o"
+		fixincludes=fixinc.winnt
+		if [ x$gnu_ld != xyes ]
+		then
+			extra_programs=ld.exe
+		fi
+ 		if [ x$enable_threads = xyes ]; then
+			thread_file='win32'
+		fi
+		;;
+	alpha*-dec-vms*)
+		tm_file=alpha/vms.h
+		xm_file="${xm_file} alpha/xm-vms.h"
+		tmake_file=alpha/t-vms
+		fixincludes=Makefile.in
+		;;
+	arm-*-coff* | armel-*-coff*)
+		tm_file=arm/coff.h
+		tmake_file=arm/t-bare
+		;;
+	arm-*-riscix1.[01]*)		# Acorn RISC machine (early versions)
+		tm_file=arm/riscix1-1.h
+		use_collect2=yes
+		;;
+	arm-*-riscix*)			# Acorn RISC machine
+		if [ x$gas = xyes ]
+		then
+		    tm_file=arm/rix-gas.h
+		else
+		    tm_file=arm/riscix.h
+		fi
+		xmake_file=arm/x-riscix
+		tmake_file=arm/t-riscix
+		use_collect2=yes
+		;;
+	arm-semi-aout | armel-semi-aout)
+		tm_file=arm/semi.h
+		tmake_file=arm/t-semi
+		fixincludes=Makefile.in # There is nothing to fix
+		;;
+	arm-semi-aof | armel-semi-aof)
+		tm_file=arm/semiaof.h
+		tmake_file=arm/t-semiaof
+		fixincludes=Makefile.in # There is nothing to fix
+		;;
+	arm-*-netbsd*)
+		tm_file=arm/netbsd.h
+		xm_file=arm/xm-netbsd.h
+		tmake_file=arm/t-netbsd
+		# On NetBSD, the headers are already okay.
+		fixincludes=Makefile.in
+		use_collect2=yes
+		;;
+	arm-*-linux-gnuaout*)		# ARM Linux
+		cpu_type=arm
+		xm_file=arm/xm-linux.h
+		xmake_file=x-linux
+		tm_file=arm/linux-gas.h
+		tmake_file=arm/t-linux
+		fixincludes=Makefile.in
+		broken_install=yes
+		gnu_ld=yes
+		;;
+	arm-*-aout)
+		tm_file=arm/aout.h
+		;;
+	c1-convex-*)			# Convex C1
+		target_cpu_default=1
+		use_collect2=yes
+		fixincludes=Makefile.in
+		;;
+	c2-convex-*)			# Convex C2
+		target_cpu_default=2
+		use_collect2=yes
+		fixincludes=Makefile.in
+		;;
+	c32-convex-*)
+		target_cpu_default=4
+		use_collect2=yes
+		fixincludes=Makefile.in
+		;;
+	c34-convex-*)
+		target_cpu_default=8
+		use_collect2=yes
+		fixincludes=Makefile.in
+		;;
+	c38-convex-*)
+		target_cpu_default=16		
+		use_collect2=yes
+		fixincludes=Makefile.in
+		;;
+	clipper-intergraph-clix*)
+		tm_file="${tm_file} svr3.h clipper/clix.h"
+		xm_file=clipper/xm-clix.h
+		xmake_file=clipper/x-clix
+		extra_headers=va-clipper.h
+		extra_parts="crtbegin.o crtend.o"
+		install_headers_dir=install-headers-cpio
+		broken_install=yes
+		;;
+	dsp16xx-*)
+		;;
+	elxsi-elxsi-*)
+		use_collect2=yes
+		;;
+# This hasn't been upgraded to GCC 2.
+#	fx80-alliant-*)			# Alliant FX/80
+#		;;
+	h8300-*-*)
+		float_format=i32
+		;;
+	hppa1.1-*-pro*)
+		tm_file="pa/pa-pro.h ${tm_file} pa/pa-pro-end.h libgloss.h"
+		xm_file=pa/xm-papro.h
+		tmake_file=pa/t-pro
+		;;
+	hppa1.1-*-osf*)
+		target_cpu_default=1
+		tm_file="${tm_file} pa/pa-osf.h"
+		use_collect2=yes
+		fixincludes=Makefile.in
+		;;
+	hppa1.1-*-rtems*)
+		tm_file="pa/pa-pro.h ${tm_file} pa/pa-pro-end.h libgloss.h pa/rtems.h"
+		xm_file=pa/xm-papro.h
+		tmake_file=pa/t-pro
+		;;
+	hppa1.0-*-osf*)
+		tm_file="${tm_file} pa/pa-osf.h"
+		use_collect2=yes
+		fixincludes=Makefile.in
+		;;
+	hppa1.1-*-bsd*)
+		target_cpu_default=1
+		use_collect2=yes
+		fixincludes=Makefile.in
+		;;
+	hppa1.0-*-bsd*)
+		use_collect2=yes
+		fixincludes=Makefile.in
+		;;
+	hppa1.0-*-hpux7*)
+		tm_file="pa/pa-oldas.h ${tm_file} pa/pa-hpux7.h"
+		xm_file=pa/xm-pahpux.h
+		xmake_file=pa/x-pa-hpux
+		if [ x$gas = xyes ]
+		then
+			tm_file="${tm_file} pa/gas.h"
+		fi
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		use_collect2=yes
+		;;
+	hppa1.0-*-hpux8.0[0-2]*)
+		tm_file="${tm_file} pa/pa-hpux.h"
+		xm_file=pa/xm-pahpux.h
+		xmake_file=pa/x-pa-hpux
+		if [ x$gas = xyes ]
+		then
+			tm_file="${tm_file} pa/pa-gas.h"
+		else
+			tm_file="pa/pa-oldas.h ${tm_file}"
+		fi
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		use_collect2=yes
+		;;
+	hppa1.1-*-hpux8.0[0-2]*)
+		target_cpu_default=1
+		tm_file="${tm_file} pa/pa-hpux.h"
+		xm_file=pa/xm-pahpux.h
+		xmake_file=pa/x-pa-hpux
+		if [ x$gas = xyes ]
+		then
+			tm_file="${tm_file} pa/pa-gas.h"
+		else
+			tm_file="pa/pa-oldas.h ${tm_file}"
+		fi
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		use_collect2=yes
+		;;
+	hppa1.1-*-hpux8*)
+		target_cpu_default=1
+		tm_file="${tm_file} pa/pa-hpux.h"
+		xm_file=pa/xm-pahpux.h
+		xmake_file=pa/x-pa-hpux
+		if [ x$gas = xyes ]
+		then
+			tm_file="${tm_file} pa/pa-gas.h"
+		fi
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		use_collect2=yes
+		;;
+	hppa1.0-*-hpux8*)
+		tm_file="${tm_file} pa/pa-hpux.h"
+		xm_file=pa/xm-pahpux.h
+		xmake_file=pa/x-pa-hpux
+		if [ x$gas = xyes ]
+		then
+			tm_file="${tm_file} pa/pa-gas.h"
+		fi
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		use_collect2=yes
+		;;
+	hppa1.1-*-hpux10*)
+		target_cpu_default=1
+		tm_file="${tm_file} pa/pa-hpux.h pa/pa-hpux10.h"
+		xm_file=pa/xm-pahpux.h
+		xmake_file=pa/x-pa-hpux
+		if [ x$gas = xyes ]
+		then
+			tm_file="${tm_file} pa/pa-gas.h"
+		fi
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		use_collect2=yes
+		;;
+	hppa1.0-*-hpux10*)
+		tm_file="${tm_file} pa/pa-hpux.h pa/pa-hpux10.h"
+		xm_file=pa/xm-pahpux.h
+		xmake_file=pa/x-pa-hpux
+		if [ x$gas = xyes ]
+		then
+			tm_file="${tm_file} pa/pa-gas.h"
+		fi
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		use_collect2=yes
+		;;
+	hppa1.1-*-hpux*)
+		target_cpu_default=1
+		tm_file="${tm_file} pa/pa-hpux.h pa/pa-hpux9.h"
+		xm_file=pa/xm-pahpux.h
+		xmake_file=pa/x-pa-hpux
+		if [ x$gas = xyes ]
+		then
+			tm_file="${tm_file} pa/pa-gas.h"
+		fi
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		use_collect2=yes
+		;;
+	hppa1.0-*-hpux*)
+		tm_file="${tm_file} pa/pa-hpux.h pa/pa-hpux9.h"
+		xm_file=pa/xm-pahpux.h
+		xmake_file=pa/x-pa-hpux
+		if [ x$gas = xyes ]
+		then
+			tm_file="${tm_file} pa/pa-gas.h"
+		fi
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		use_collect2=yes
+		;;
+	hppa1.1-*-hiux*)
+		target_cpu_default=1
+		tm_file="${tm_file} pa/pa-hpux.h pa/pa-hiux.h"
+		xm_file=pa/xm-pahpux.h
+		xmake_file=pa/x-pa-hpux
+		if [ x$gas = xyes ]
+		then
+			tm_file="${tm_file} pa/pa-gas.h"
+		fi
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		use_collect2=yes
+		;;
+	hppa1.0-*-hiux*)
+		tm_file="${tm_file} pa/pa-hpux.h pa/pa-hiux.h"
+		xm_file=pa/xm-pahpux.h
+		xmake_file=pa/x-pa-hpux
+		if [ x$gas = xyes ]
+		then
+			tm_file="${tm_file} pa/pa-gas.h"
+		fi
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		use_collect2=yes
+		;;
+	hppa*-*-lites*)
+		target_cpu_default=1
+		use_collect2=yes
+		fixincludes=Makefile.in
+		;;
+	i370-*-mvs*)
+		;;
+	i[3456]86-ibm-aix*)		# IBM PS/2 running AIX
+                if [ x$gas = xyes ]
+		then
+			tm_file=i386/aix386.h
+			extra_parts="crtbegin.o crtend.o"
+			tmake_file=i386/t-crtstuff
+		else
+			tm_file=i386/aix386ng.h
+			use_collect2=yes
+		fi
+		xm_file=i386/xm-aix.h
+		xmake_file=i386/x-aix
+		broken_install=yes
+		;;
+	i486-ncr-sysv4*)		# NCR 3000 - i486 running system V.4
+		xm_file=i386/xm-sysv4.h
+		xmake_file=i386/x-ncr3000
+		if [ x$stabs = xyes -a x$gas = xyes ]
+		then
+			tm_file=i386/sysv4gdb.h
+		else
+			tm_file=i386/sysv4.h
+		fi
+		extra_parts="crtbegin.o crtend.o"
+		tmake_file=i386/t-crtpic
+		;;
+	i[3456]86-next-*)
+		tm_file=i386/next.h
+		xm_file=i386/xm-next.h
+		tmake_file=i386/t-next
+		xmake_file=i386/x-next
+		extra_objs=nextstep.o
+ 		if [ x$enable_threads = xyes ]; then
+			thread_file='mach'
+		fi
+		;;
+	i[3456]86-sequent-bsd*) 		# 80386 from Sequent
+		use_collect2=yes
+		if [ x$gas = xyes ]
+		then
+			tm_file=i386/seq-gas.h
+		else
+			tm_file=i386/sequent.h
+		fi
+		;;
+	i[3456]86-sequent-ptx1*)
+		xm_file=i386/xm-sysv3.h
+		xmake_file=i386/x-sysv3
+		tm_file=i386/seq-sysv3.h
+		tmake_file=i386/t-crtstuff
+		fixincludes=fixinc.ptx
+		extra_parts="crtbegin.o crtend.o"
+		install_headers_dir=install-headers-cpio
+		broken_install=yes
+		;;
+	i[3456]86-sequent-ptx2* | i[3456]86-sequent-sysv3*)
+		xm_file=i386/xm-sysv3.h
+		xmake_file=i386/x-sysv3
+		tm_file=i386/seq2-sysv3.h
+		tmake_file=i386/t-crtstuff
+		extra_parts="crtbegin.o crtend.o"
+		fixincludes=fixinc.ptx
+		install_headers_dir=install-headers-cpio
+		broken_install=yes
+		;;
+	i[3456]86-sequent-ptx4* | i[3456]86-sequent-sysv4*)
+		xm_file=i386/xm-sysv4.h
+		xmake_file=x-svr4
+		tm_file=i386/ptx4-i.h
+		tmake_file=t-svr4
+		extra_parts="crtbegin.o crtend.o"
+		fixincludes=fixinc.ptx
+		install_headers_dir=install-headers-cpio
+		broken_install=yes
+		;;
+	i386-sun-sunos*)		# Sun i386 roadrunner
+		xm_file=i386/xm-sun.h
+		tm_file=i386/sun.h
+		use_collect2=yes
+		;;
+	i[3456]86-*-aout*)
+		tm_file=i386/i386-aout.h
+		tmake_file=i386/t-i386bare
+		;;
+	i[3456]86-*-bsdi* | i[345]86-*-bsd386*)
+		tm_file=i386/bsd386.h
+		xm_file=i386/xm-bsd386.h
+#		tmake_file=t-libc-ok
+		;;
+	i[3456]86-*-bsd*)
+		tm_file=i386/386bsd.h
+		xm_file=i386/xm-bsd386.h
+#		tmake_file=t-libc-ok
+# Next line turned off because both 386BSD and BSD/386 use GNU ld.
+#		use_collect2=yes
+		;;
+	i[3456]86-*-freebsdelf*)
+		tm_file="i386/i386.h i386/att.h linux.h i386/freebsd-elf.h i386/perform.h"
+		xm_file=i386/xm-freebsd.h
+		# On FreeBSD, the headers are already ok.
+		fixincludes=Makefile.in
+		tmake_file=i386/t-freebsd
+		gas=yes
+		gnu_ld=yes
+		stabs=yes
+		;;
+	i[3456]86-*-freebsd*)
+		tm_file=i386/freebsd.h
+		xm_file=i386/xm-freebsd.h
+		# On FreeBSD, the headers are already ok.
+		fixincludes=Makefile.in
+		tmake_file=i386/t-freebsd
+		;;
+	i[3456]86-*-netbsd*)
+		tm_file=i386/netbsd.h
+		xm_file=i386/xm-netbsd.h
+		# On NetBSD, the headers are already okay.
+		fixincludes=Makefile.in
+		tmake_file=t-netbsd
+		;;
+	i[3456]86-*-coff*)
+		tm_file=i386/i386-coff.h
+		tmake_file=i386/t-i386bare
+		;;
+	i[3456]86-*-isc*)		# 80386 running ISC system
+		xm_file=i386/xm-isc.h
+		case $machine in
+		  i[345]86-*-isc[34]*)
+		    xmake_file=i386/x-isc3
+		    ;;
+		  *)
+		    xmake_file=i386/x-isc
+		    ;;
+		esac
+                if [ x$gas = xyes -a x$stabs = xyes ]
+		then
+			tm_file=i386/iscdbx.h
+			tmake_file=i386/t-svr3dbx
+			extra_parts="svr3.ifile svr3z.ifile"
+		else
+			tm_file=i386/isccoff.h
+			tmake_file=i386/t-crtstuff
+			extra_parts="crtbegin.o crtend.o"
+		fi
+		install_headers_dir=install-headers-cpio
+		broken_install=yes
+		;;
+	i[3456]86-*-linux-gnuoldld*)	# Intel 80386's running Linux
+		xm_file=i386/xm-linux.h # with a.out format using pre BFD linkers
+		xmake_file=x-linux-aout
+		tmake_file="t-linux-aout i386/t-crtstuff"
+		tm_file=i386/linux-oldld.h
+		fixincludes=Makefile.in #On Linux, the headers are ok already.
+		broken_install=yes
+		gnu_ld=yes
+		;;
+	i[3456]86-*-linux-gnuaout*)		# Intel 80386's running Linux
+		xm_file=i386/xm-linux.h		# with a.out format
+		xmake_file=x-linux-aout
+		tmake_file="t-linux-aout i386/t-crtstuff"
+		tm_file=i386/linux-aout.h
+		fixincludes=Makefile.in #On Linux, the headers are ok already.
+		broken_install=yes
+		gnu_ld=yes
+		;;
+	i[3456]86-*-linux-gnulibc1)
+		xm_file=i386/xm-linux.h	# Intel 80386's running Linux
+		xmake_file=x-linux	# with ELF format using the
+		tm_file=i386/linux.h	# Linux C library 5
+		tmake_file="t-linux t-linux-gnulibc1 i386/t-crtstuff"
+		extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+		fixincludes=Makefile.in #On Linux, the headers are ok already.
+		broken_install=yes
+		gnu_ld=yes
+ 		if [ x$enable_threads = xyes ]; then
+ 			thread_file='single'
+ 		fi
+		;;
+	i[3456]86-*-linux-gnu*)		# Intel 80386's running Linux
+		xm_file=i386/xm-linux.h # with ELF format using glibc 2
+		xmake_file=x-linux	# aka Linux C library 6
+		tm_file=i386/linux.h
+		tmake_file="t-linux i386/t-crtstuff"
+		extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+		fixincludes=Makefile.in #On Linux, the headers are ok already.
+		broken_install=yes
+		gnu_ld=yes
+ 		if [ x$enable_threads = xyes ]; then
+ 			thread_file='posix'
+ 		fi
+		;;
+	i[3456]86-*-gnu*)
+		;;
+	i[3456]86-go32-msdos | i[3456]86-*-go32*)
+		xm_file=i386/xm-go32.h
+		tm_file=i386/go32.h
+		tmake_file=i386/t-go32
+		;;
+	i[3456]86-moss-msdos* | i[3456]86-*-moss*)
+		tm_file=i386/moss.h
+		tmake_file=t-libc-ok
+		fixincludes=Makefile.in
+		gnu_ld=yes
+		gas=yes
+		;;
+	i[3456]86-*-lynxos*)
+		if [ x$gas = xyes ]
+		then
+			tm_file=i386/lynx.h
+		else
+			tm_file=i386/lynx-ng.h
+		fi
+		xm_file=i386/xm-lynx.h
+		tmake_file=i386/t-i386bare
+		xmake_file=x-lynx
+		;;
+	i[3456]86-*-mach*)
+		tm_file=i386/mach.h
+#		tmake_file=t-libc-ok
+		use_collect2=yes
+		;;
+	i[3456]86-*-osfrose*)		# 386 using OSF/rose
+                if [ x$elf = xyes ]
+		then
+			tm_file=i386/osfelf.h
+			use_collect2=
+		else
+			tm_file=i386/osfrose.h
+			use_collect2=yes
+		fi
+		xm_file=i386/xm-osf.h
+		xmake_file=i386/x-osfrose
+		tmake_file=i386/t-osf
+		extra_objs=halfpic.o
+		;;
+	i[345]86-go32-rtems*)
+		cpu_type=i386
+		xm_file=i386/xm-go32.h
+		tm_file=i386/go32-rtems.h
+		tmake_file="i386/t-go32 t-rtems"
+		;;
+	i[345]86-*-rtems*)
+		cpu_type=i386
+		tm_file=i386/rtems.h
+		tmake_file="i386/t-i386bare t-rtems"
+		;;
+	i[3456]86-*-sco3.2v5*)		# 80386 running SCO Open Server 5
+		xm_file=i386/xm-sco5.h
+		xmake_file=i386/x-sco5
+		fixincludes=fixinc.sco
+		broken_install=yes
+		tm_file=i386/sco5.h
+		tmake_file=i386/t-sco5
+		extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+		;;
+	i[3456]86-*-sco3.2v4*)	 	# 80386 running SCO 3.2v4 system
+		xm_file=i386/xm-sco.h
+		xmake_file=i386/x-sco4
+		fixincludes=fixinc.sco
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+                if [ x$stabs = xyes ]
+		then
+			tm_file=i386/sco4dbx.h
+			tmake_file=i386/t-svr3dbx
+			extra_parts="svr3.ifile svr3z.rfile"
+		else
+			tm_file=i386/sco4.h
+			tmake_file=i386/t-crtstuff
+			extra_parts="crtbegin.o crtend.o"
+		fi
+		truncate_target=yes
+		;;
+	i[3456]86-*-sco*)	 	# 80386 running SCO system
+		xm_file=i386/xm-sco.h
+		xmake_file=i386/x-sco
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+                if [ x$stabs = xyes ]
+		then
+			tm_file=i386/scodbx.h
+			tmake_file=i386/t-svr3dbx
+			extra_parts="svr3.ifile svr3z.rfile"
+		else
+			tm_file=i386/sco.h
+			extra_parts="crtbegin.o crtend.o"
+			tmake_file=i386/t-crtstuff
+		fi
+		truncate_target=yes
+		;;
+	i[3456]86-*-solaris2*)
+		xm_file=i386/xm-sysv4.h
+		if [ x$stabs = xyes ]
+		then
+			tm_file=i386/sol2dbg.h
+		else
+			tm_file=i386/sol2.h
+		fi
+		tmake_file=i386/t-sol2
+		extra_parts="crt1.o crti.o crtn.o crtbegin.o crtend.o"
+		xmake_file=x-svr4
+		fixincludes=fixinc.svr4
+		broken_install=yes
+ 		if [ x$enable_threads = xyes ]; then
+			thread_file='solaris'
+		fi
+		;;
+	i[3456]86-*-sysv4*)		# Intel 80386's running system V.4
+		xm_file=i386/xm-sysv4.h
+		tm_file=i386/sysv4.h
+		if [ x$stabs = xyes ]
+		then
+			tm_file="${tm_file} dbx.h"
+		fi
+		tmake_file=i386/t-crtpic
+		xmake_file=x-svr4
+		extra_parts="crtbegin.o crtend.o"
+		;;
+	i[3456]86-*-sysv*)		# Intel 80386's running system V
+		xm_file=i386/xm-sysv3.h
+		xmake_file=i386/x-sysv3
+		if [ x$gas = xyes ]
+		then
+			if [ x$stabs = xyes ]
+			then
+				tm_file=i386/svr3dbx.h
+				tmake_file=i386/t-svr3dbx
+				extra_parts="svr3.ifile svr3z.rfile"
+			else
+				tm_file=i386/svr3gas.h
+				extra_parts="crtbegin.o crtend.o"
+				tmake_file=i386/t-crtstuff
+			fi
+		else
+			tm_file=i386/sysv3.h
+			extra_parts="crtbegin.o crtend.o"
+			tmake_file=i386/t-crtstuff
+		fi
+		;;
+	i386-*-vsta)			# Intel 80386's running VSTa kernel
+		xm_file=i386/xm-vsta.h
+		tm_file=i386/vsta.h
+		tmake_file=i386/t-vsta
+		xmake_file=i386/x-vsta
+		;;
+	i[3456]86-*-pe | i[3456]86-*-cygwin32)
+		xm_file="${xm_file} i386/xm-cygwin32.h"
+		tmake_file=i386/t-cygwin32
+		tm_file=i386/cygwin32.h
+		xmake_file=i386/x-cygwin32
+		extra_objs=winnt.o
+		fixincludes=Makefile.in
+ 		if [ x$enable_threads = xyes ]; then
+			thread_file='win32'
+		fi
+		exeext=.exe
+		;;
+	i[3456]86-*-mingw32)
+		tm_file=i386/mingw32.h
+		xm_file="${xm_file} i386/xm-mingw32.h"
+		tmake_file=i386/t-cygwin32
+		extra_objs=winnt.o
+		xmake_file=i386/x-cygwin32
+		fixincludes=Makefile.in
+ 		if [ x$enable_threads = xyes ]; then
+			thread_file='win32'
+		fi
+		exeext=.exe
+		;;
+	i[3456]86-*-winnt3*)
+		tm_file=i386/win-nt.h
+		out_file=i386/i386.c
+		xm_file=i386/xm-winnt.h
+		xmake_file=winnt/x-winnt
+		tmake_file=i386/t-winnt
+		extra_host_objs="winnt.o oldnames.o"
+		extra_gcc_objs="spawnv.o oldnames.o"
+		fixincludes=fixinc.winnt
+		if [ x$gnu_ld != xyes ]
+		then
+			extra_programs=ld.exe
+		fi
+ 		if [ x$enable_threads = xyes ]; then
+			thread_file='win32'
+		fi
+		;;
+	i[3456]86-dg-dgux)
+		xm_file=i386/xm-dgux.h
+		out_file=i386/dgux.c
+		tm_file=i386/dgux.h
+		tmake_file=i386/t-dgux
+		xmake_file=i386/x-dgux
+		fixincludes=fixinc.dgux
+		install_headers_dir=install-headers-cpio
+              ;;
+	i860-alliant-*)		# Alliant FX/2800
+		tm_file="${tm_file} svr4.h i860/sysv4.h i860/fx2800.h"
+		xm_file="${xm_file} i860/xm-fx2800.h"
+		xmake_file=i860/x-fx2800
+		tmake_file=i860/t-fx2800
+		extra_parts="crtbegin.o crtend.o"
+		;;
+	i860-*-bsd*)
+		tm_file="${tm_file} i860/bsd.h"
+		if [ x$gas = xyes ]
+		then
+			tm_file="${tm_file} i860/bsd-gas.h"
+		fi
+		use_collect2=yes
+		;;
+	i860-*-mach*)
+		tm_file="${tm_file} i860/mach.h"
+		tmake_file=t-libc-ok
+		;;
+	i860-*-osf*)			# Intel Paragon XP/S, OSF/1AD
+		tm_file="${tm_file} svr3.h i860/paragon.h"
+		xm_file="${xm_file} xm-svr3.h"
+		tmake_file=t-osf
+		broken_install=yes
+		;;
+	i860-*-sysv3*)
+		tm_file="${tm_file} svr3.h i860/sysv3.h"
+		xm_file="${tm_file} xm-svr3.h"
+		xmake_file=i860/x-sysv3
+		extra_parts="crtbegin.o crtend.o"
+		;;
+	i860-*-sysv4*)
+		tm_file="${tm_file} svr4.h i860/sysv4.h"
+		xm_file="${xm_file} xm-svr3.h"
+		xmake_file=i860/x-sysv4
+		tmake_file=t-svr4
+		extra_parts="crtbegin.o crtend.o"
+		;;
+	i960-wrs-vxworks5 | i960-wrs-vxworks5.0*)
+		tm_file="${tm_file} i960/vx960.h"
+		tmake_file=i960/t-vxworks960
+		use_collect2=yes
+		;;
+	i960-wrs-vxworks5*)
+		tm_file="${tm_file} dbxcoff.h i960/i960-coff.h i960/vx960-coff.h"
+		tmake_file=i960/t-vxworks960
+		use_collect2=yes
+		;;
+	i960-wrs-vxworks*)
+		tm_file="${tm_file} i960/vx960.h"
+		tmake_file=i960/t-vxworks960
+		use_collect2=yes
+		;;
+	i960-*-coff*)
+		tm_file="${tm_file} dbxcoff.h i960/i960-coff.h libgloss.h"
+		tmake_file=i960/t-960bare
+		use_collect2=yes
+		;;
+	i960-*-rtems)
+		tmake_file="i960/t-960bare t-rtems"
+		tm_file="${tm_file} dbxcoff.h i960/rtems.h"
+		use_collect2=yes
+		;;
+	i960-*-*)			# Default i960 environment.
+		use_collect2=yes
+		;;
+	m32r-*-elf*)
+		extra_parts="crtinit.o crtfini.o"
+		;;
+	m68000-convergent-sysv*)
+		tm_file=m68k/ctix.h
+		xm_file=m68k/xm-3b1.h
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68000-hp-bsd*)			# HP 9000/200 running BSD
+		tm_file=m68k/hp2bsd.h
+		xmake_file=m68k/x-hp2bsd
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68000-hp-hpux*)		# HP 9000 series 300
+		xm_file=m68k/xm-hp320.h
+		if [ x$gas = xyes ]
+		then
+			xmake_file=m68k/x-hp320g
+			tm_file=m68k/hp310g.h
+		else
+			xmake_file=m68k/x-hp320
+			tm_file=m68k/hp310.h
+		fi
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68000-sun-sunos3*)
+		tm_file=m68k/sun2.h
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68000-sun-sunos4*)
+		tm_file=m68k/sun2o4.h
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68000-att-sysv*)
+		xm_file=m68k/xm-3b1.h
+		if [ x$gas = xyes ]
+		then
+			tm_file=m68k/3b1g.h
+		else
+			tm_file=m68k/3b1.h
+		fi
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68k-apple-aux*)		# Apple Macintosh running A/UX
+		xm_file=m68k/xm-aux.h
+		tmake_file=m68k/t-aux
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		extra_headers=math-68881.h
+		extra_parts="crt1.o mcrt1.o maccrt1.o crt2.o crtn.o"
+		tm_file=
+		if [ "$gnu_ld" = yes ]
+		then
+			tm_file="${tm_file} m68k/auxgld.h"
+		else
+			tm_file="${tm_file} m68k/auxld.h"
+		fi
+		if [ "$gas" = yes ]
+		then
+			tm_file="${tm_file} m68k/auxgas.h"
+		else
+			tm_file="${tm_file} m68k/auxas.h"
+		fi
+		tm_file="${tm_file} m68k/a-ux.h"
+		;;
+	m68k-apollo-*)
+		tm_file=m68k/apollo68.h
+		xmake_file=m68k/x-apollo68
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68k-altos-sysv*)		   # Altos 3068
+		if [ x$gas = xyes ]
+		then
+		        tm_file=m68k/altos3068.h
+		        xm_file=m68k/xm-altos3068.h
+		else
+			echo "The Altos is supported only with the GNU assembler" 1>&2
+			exit 1
+		fi
+		extra_headers=math-68881.h
+	        ;;
+	m68k-bull-sysv*)		# Bull DPX/2
+		if [ x$gas = xyes ]
+		then
+			if [ x$stabs = xyes ]
+			then
+				tm_file=m68k/dpx2cdbx.h
+			else
+				tm_file=m68k/dpx2g.h
+			fi
+		else
+			tm_file=m68k/dpx2.h
+		fi
+		xm_file=m68k/xm-m68kv.h
+		xmake_file=m68k/x-dpx2
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68k-atari-sysv4*)              # Atari variant of V.4.
+		tm_file=m68k/atari.h
+		xm_file=m68k/xm-atari.h
+		tmake_file=t-svr4
+		extra_parts="crtbegin.o crtend.o"
+		extra_headers=math-68881.h
+		;;
+	m68k-motorola-sysv*)
+		tm_file=m68k/mot3300.h
+		xm_file=m68k/xm-mot3300.h
+		if [ x$gas = xyes ]
+		then
+			xmake_file=m68k/x-mot3300-gas
+			if [ x$gnu_ld = xyes ]
+			then
+				tmake_file=m68k/t-mot3300-gald
+			else
+				tmake_file=m68k/t-mot3300-gas
+				use_collect2=yes
+			fi
+		else
+			xmake_file=m68k/x-mot3300
+			if [ x$gnu_ld = xyes ]
+			then
+				tmake_file=m68k/t-mot3300-gld
+			else
+				tmake_file=m68k/t-mot3300
+				use_collect2=yes
+			fi
+		fi
+		gdb_needs_out_file_path=yes
+		extra_parts="crt0.o mcrt0.o"
+		extra_headers=math-68881.h
+		;;
+	m68k-ncr-sysv*)			# NCR Tower 32 SVR3
+		tm_file=m68k/tower-as.h
+		xm_file=m68k/xm-tower.h
+		xmake_file=m68k/x-tower
+		extra_parts="crtbegin.o crtend.o"
+		extra_headers=math-68881.h
+		;;
+        m68k-plexus-sysv*)
+		tm_file=m68k/plexus.h
+		xm_file=m68k/xm-plexus.h
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68k-tti-*)
+		tm_file=m68k/pbb.h
+		xm_file=m68k/xm-m68kv.h
+		extra_headers=math-68881.h
+		;;
+	m68k-crds-unos*)
+		xm_file=m68k/xm-crds.h
+		xmake_file=m68k/x-crds
+		tm_file=m68k/crds.h
+		broken_install=yes
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68k-cbm-sysv4*)		# Commodore variant of V.4.
+		tm_file=m68k/amix.h
+		xm_file=m68k/xm-amix.h
+		xmake_file=m68k/x-amix
+		tmake_file=t-svr4
+		extra_parts="crtbegin.o crtend.o"
+		extra_headers=math-68881.h
+		;;
+	m68k-ccur-rtu)
+		tm_file=m68k/ccur-GAS.h
+		xmake_file=m68k/x-ccur
+		extra_headers=math-68881.h
+		use_collect2=yes
+		broken_install=yes
+		;;
+	m68k-hp-bsd4.4*)		# HP 9000/3xx running 4.4bsd
+		tm_file=m68k/hp3bsd44.h
+		xmake_file=m68k/x-hp3bsd44
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68k-hp-bsd*)			# HP 9000/3xx running Berkeley Unix
+		tm_file=m68k/hp3bsd.h
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68k-isi-bsd*)
+		if [ x$with_fp = xno ]
+		then
+			tm_file=m68k/isi-nfp.h
+		else
+			tm_file=m68k/isi.h
+		fi
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68k-hp-hpux7*)	# HP 9000 series 300 running HPUX version 7.
+		xm_file=m68k/xm-hp320.h
+		if [ x$gas = xyes ]
+		then
+			xmake_file=m68k/x-hp320g
+			tm_file=m68k/hp320g.h
+		else
+			xmake_file=m68k/x-hp320
+			tm_file=m68k/hpux7.h
+		fi
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68k-hp-hpux*)	# HP 9000 series 300
+		xm_file=m68k/xm-hp320.h
+		if [ x$gas = xyes ]
+		then
+			xmake_file=m68k/x-hp320g
+			tm_file=m68k/hp320g.h
+		else
+			xmake_file=m68k/x-hp320
+			tm_file=m68k/hp320.h
+		fi
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68k-sun-mach*)
+		tm_file=m68k/sun3mach.h
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68k-sony-newsos3*)
+		if [ x$gas = xyes ]
+		then
+			tm_file=m68k/news3gas.h
+		else
+			tm_file=m68k/news3.h
+		fi
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68k-sony-bsd* | m68k-sony-newsos*)
+		if [ x$gas = xyes ]
+		then
+			tm_file=m68k/newsgas.h
+		else
+			tm_file=m68k/news.h
+		fi
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68k-next-nextstep2*)
+		tm_file=m68k/next21.h
+		xm_file=m68k/xm-next.h
+		tmake_file=m68k/t-next
+		xmake_file=m68k/x-next
+		extra_objs=nextstep.o
+		extra_headers=math-68881.h
+		use_collect2=yes
+                ;;
+	m68k-next-nextstep3*)
+		tm_file=m68k/next.h
+		xm_file=m68k/xm-next.h
+		tmake_file=m68k/t-next
+		xmake_file=m68k/x-next
+		extra_objs=nextstep.o
+		extra_headers=math-68881.h
+ 		if [ x$enable_threads = xyes ]; then
+			thread_file='mach'
+		fi
+		;;
+	m68k-sun-sunos3*)
+		if [ x$with_fp = xno ]
+		then
+			tm_file=m68k/sun3n3.h
+		else
+			tm_file=m68k/sun3o3.h
+		fi
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68k-sun-sunos*)			# For SunOS 4 (the default).
+		if [ x$with_fp = xno ]
+		then
+			tm_file=m68k/sun3n.h
+		else
+			tm_file=m68k/sun3.h
+		fi
+		xm_file=m68k/xm-sun3.h
+		use_collect2=yes
+		extra_headers=math-68881.h
+		;;
+	m68k-wrs-vxworks*)
+		tm_file=m68k/vxm68k.h
+		tmake_file=m68k/t-vxworks68
+		extra_headers=math-68881.h
+		;;
+	m68k-*-aout*)
+		tmake_file=m68k/t-m68kbare
+		tm_file="m68k/m68k-aout.h libgloss.h"
+		extra_headers=math-68881.h
+		;;
+	m68k-*-coff*)
+		tmake_file=m68k/t-m68kbare
+		tm_file="m68k/m68k-coff.h dbx.h libgloss.h"
+		extra_headers=math-68881.h
+		;;
+	m68k-*-lynxos*)
+		if [ x$gas = xyes ]
+		then
+			tm_file=m68k/lynx.h
+		else
+			tm_file=m68k/lynx-ng.h
+		fi
+		xm_file=m68k/xm-lynx.h
+		xmake_file=x-lynx
+		tmake_file=m68k/t-lynx
+		extra_headers=math-68881.h
+		;;
+	m68k-*-netbsd*)
+		tm_file=m68k/netbsd.h
+		xm_file=m68k/xm-netbsd.h
+		# On NetBSD, the headers are already okay.
+		fixincludes=Makefile.in
+		tmake_file=t-netbsd
+		;;
+	m68k-*-sysv3*)			# Motorola m68k's running system V.3
+		xm_file=m68k/xm-m68kv.h
+		xmake_file=m68k/x-m68kv
+		extra_parts="crtbegin.o crtend.o"
+		extra_headers=math-68881.h
+		;;
+	m68k-*-sysv4*)			# Motorola m68k's running system V.4
+		tm_file=m68k/m68kv4.h
+		xm_file=m68k/xm-m68kv.h
+		tmake_file=t-svr4
+		extra_parts="crtbegin.o crtend.o"
+		extra_headers=math-68881.h
+		;;
+	m68k-*-linux-gnuaout*)		# Motorola m68k's running Linux
+		xm_file=m68k/xm-linux.h	# with a.out format
+		xmake_file=x-linux
+		tm_file=m68k/linux-aout.h
+		tmake_file="t-linux-aout m68k/t-linux-aout"
+		fixincludes=Makefile.in #On Linux, the headers are ok already.
+		extra_headers=math-68881.h
+		gnu_ld=yes
+		;;
+	m68k-*-linux-gnulibc1)		# Motorola m68k's running Linux
+		xm_file=m68k/xm-linux.h	# with ELF format using the
+		xmake_file=x-linux	# Linux C library 5
+		tm_file=m68k/linux.h
+		tmake_file="t-linux t-linux-gnulibc1 m68k/t-linux"
+		extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+		fixincludes=Makefile.in #On Linux, the headers are ok already.
+		extra_headers=math-68881.h
+		gnu_ld=yes
+		;;
+	m68k-*-linux-gnu*)			# Motorola m68k's running Linux
+		xm_file=m68k/xm-linux.h	# with ELF format using glibc 2
+		xmake_file=x-linux	# aka the Linux C library 6.
+		tm_file=m68k/linux.h
+		tmake_file="t-linux m68k/t-linux"
+		extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+		fixincludes=Makefile.in #On Linux, the headers are ok already.
+		extra_headers=math-68881.h
+		gnu_ld=yes
+		if [ x$enable_threads = xyes ]; then
+			thread_file='posix'
+		fi
+		;;
+	m68k-*-psos*)
+		tmake_file=m68k/t-m68kbare
+		tm_file=m68k/m68k-psos.h
+		extra_headers=math-68881.h
+		;;
+	m68k-*-rtems*)
+		tmake_file="m68k/t-m68kbare t-rtems"
+		tm_file=m68k/rtems.h
+		extra_headers=math-68881.h
+		;;
+
+	m88k-dg-dgux*)
+		case $machine in
+		  m88k-dg-dguxbcs*)
+		    tm_file=m88k/dguxbcs.h
+		    tmake_file=m88k/t-dguxbcs
+		    ;;
+		  *)
+		    tm_file=m88k/dgux.h
+		    tmake_file=m88k/t-dgux
+		    ;;
+		esac
+		extra_parts="crtbegin.o bcscrtbegin.o crtend.o m88kdgux.ld"
+		broken_install=yes
+		xmake_file=m88k/x-dgux
+		if [ x$gas = xyes ]
+		then
+			tmake_file=m88k/t-dgux-gas
+		fi
+		fixincludes=fixinc.dgux
+		;;
+	m88k-dolphin-sysv3*)
+		tm_file=m88k/dolph.h
+		extra_parts="crtbegin.o crtend.o"
+		xm_file=m88k/xm-sysv3.h
+		xmake_file=m88k/x-dolph
+		if [ x$gas = xyes ]
+		then
+			tmake_file=m88k/t-m88k-gas
+		fi
+		;;
+	m88k-tektronix-sysv3)
+		tm_file=m88k/tekXD88.h
+		extra_parts="crtbegin.o crtend.o"
+		xm_file=m88k/xm-sysv3.h
+		xmake_file=m88k/x-tekXD88
+		if [ x$gas = xyes ]
+		then
+			tmake_file=m88k/t-m88k-gas
+		fi
+		;;
+	m88k-*-aout*)
+		tm_file=m88k/m88k-aout.h
+		;;
+	m88k-*-coff*)
+		tm_file=m88k/m88k-coff.h
+		tmake_file=m88k/t-bug
+		;;
+	m88k-*-luna*)
+		tm_file=m88k/luna.h
+		extra_parts="crtbegin.o crtend.o"
+		if [ x$gas = xyes ]
+		then
+			tmake_file=m88k/t-luna-gas
+		else
+			tmake_file=m88k/t-luna
+		fi
+		;;
+	m88k-*-sysv3*)
+		tm_file=m88k/sysv3.h
+		extra_parts="crtbegin.o crtend.o"
+		xm_file=m88k/xm-sysv3.h
+		xmake_file=m88k/x-sysv3
+		if [ x$gas = xyes ]
+		then
+			tmake_file=m88k/t-m88k-gas
+		fi
+		;;
+	m88k-*-sysv4*)
+		tm_file=m88k/sysv4.h
+		extra_parts="crtbegin.o crtend.o"
+		xmake_file=m88k/x-sysv4
+		tmake_file=m88k/t-sysv4
+		;;
+	mips-sgi-irix6*)		# SGI System V.4., IRIX 6
+		tm_file=mips/iris6.h
+		xm_file=mips/xm-iris6.h
+		broken_install=yes
+		fixincludes=fixinc.irix
+		xmake_file=mips/x-iris6
+		tmake_file=mips/t-iris6
+ 		if [ x$enable_threads = xyes ]; then
+			thread_file='irix'
+		fi
+		;;
+	mips-sgi-irix5cross64)		# Irix5 host, Irix 6 target, cross64
+		tm_file=mips/cross64.h
+		xm_file=mips/xm-iris5.h
+		broken_install=yes
+		fixincludes=Makefile.in
+		xmake_file=mips/x-iris
+		tmake_file=mips/t-cross64
+		# See comment in mips/iris[56].h files.
+		use_collect2=yes
+ 		if [ x$enable_threads = xyes ]; then
+			thread_file='irix'
+		fi
+		;;
+        mips-sni-sysv4)
+		if [ x$gas = xyes ]
+		then
+			if [ x$stabs = xyes ]
+			then
+				tm_file=mips/iris5gdb.h
+			else
+				tm_file=mips/sni-gas.h
+			fi
+		else
+			tm_file=mips/sni-svr4.h
+		fi
+                xm_file=mips/xm-sysv.h
+                xmake_file=mips/x-sni-svr4
+                tmake_file=mips/t-mips-gas
+                if [ x$gnu_ld != xyes ]
+                then
+                        use_collect2=yes
+                fi
+                broken_install=yes
+                ;;
+	mips-sgi-irix5*)		# SGI System V.4., IRIX 5
+		if [ x$gas = xyes ]
+		then
+			tm_file=mips/iris5gas.h
+			if [ x$stabs = xyes ]
+			then
+				tm_file="${tm_file} dbx.h"
+			fi
+		else
+			tm_file=mips/iris5.h
+		fi
+		xm_file=mips/xm-iris5.h
+		broken_install=yes
+		fixincludes=fixinc.irix
+		xmake_file=mips/x-iris
+		# mips-tfile doesn't work yet
+		tmake_file=mips/t-mips-gas
+		# See comment in mips/iris5.h file.
+		use_collect2=yes
+ 		if [ x$enable_threads = xyes ]; then
+			thread_file='irix'
+		fi
+		;;
+	mips-sgi-irix4loser*)		# Mostly like a MIPS.
+		tm_file=mips/iris4loser.h
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		xm_file=mips/xm-iris4.h
+		broken_install=yes
+		xmake_file=mips/x-iris
+		if [ x$gas = xyes ]
+		then
+			tmake_file=mips/t-mips-gas
+		else
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		if [ x$gnu_ld != xyes ]
+		then
+			use_collect2=yes
+		fi
+ 		if [ x$enable_threads = xyes ]; then
+			thread_file='irix'
+		fi
+		;;
+	mips-sgi-irix4*)		# Mostly like a MIPS.
+		tm_file=mips/iris4.h
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		xm_file=mips/xm-iris4.h
+		broken_install=yes
+		xmake_file=mips/x-iris
+		if [ x$gas = xyes ]
+		then
+			tmake_file=mips/t-mips-gas
+		else
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		if [ x$gnu_ld != xyes ]
+		then
+			use_collect2=yes
+		fi
+ 		if [ x$enable_threads = xyes ]; then
+			thread_file='irix'
+		fi
+		;;
+	mips-sgi-*)			# Mostly like a MIPS.
+		tm_file=mips/iris3.h
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		xm_file=mips/xm-iris3.h
+		broken_install=yes
+		xmake_file=mips/x-iris3
+		if [ x$gas = xyes ]
+		then
+			tmake_file=mips/t-mips-gas
+		else
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		if [ x$gnu_ld != xyes ]
+		then
+			use_collect2=yes
+		fi
+		;;
+	mips-dec-osfrose*)		# Decstation running OSF/1 reference port with OSF/rose.
+		tm_file=mips/osfrose.h
+		xmake_file=mips/x-osfrose
+		tmake_file=mips/t-osfrose
+		extra_objs=halfpic.o
+		use_collect2=yes
+		;;
+	mips-dec-osf*)			# Decstation running OSF/1 as shipped by DIGITAL
+		tm_file=mips/dec-osf1.h
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		xmake_file=mips/x-dec-osf1
+		if [ x$gas = xyes ]
+		then
+			tmake_file=mips/t-mips-gas
+		else
+			tmake_file=mips/t-ultrix
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		if [ x$gnu_ld != xyes ]
+		then
+			use_collect2=yes
+		fi
+		;;
+	mips-dec-bsd*)                  # Decstation running 4.4 BSD
+              tm_file=mips/dec-bsd.h
+              fixincludes=
+	      if [ x$gas = xyes ]
+	      then
+		   	tmake_file=mips/t-mips-gas
+	      else
+			tmake_file=mips/t-ultrix
+			extra_passes="mips-tfile mips-tdump"
+	      fi
+	      if [ x$gnu_ld != xyes ]
+	      then
+			use_collect2=yes
+	      fi
+	      ;;
+	mips-dec-netbsd*)                  # Decstation running NetBSD
+		tm_file=mips/netbsd.h
+		xm_file=mips/xm-netbsd.h
+		# On NetBSD, the headers are already okay.
+		fixincludes=Makefile.in
+		tmake_file=t-netbsd
+		if [ x$prefix = xNONE ]; then
+			prefix=$native_prefix
+		fi
+		prefix=$native_prefix
+		;;
+	mips-sony-bsd* | mips-sony-newsos*)	# Sony NEWS 3600 or risc/news.
+		tm_file=mips/news4.h
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		if [ x$gas = xyes ]
+		then
+			tmake_file=mips/t-mips-gas
+		else
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		if [ x$gnu_ld != xyes ]
+		then
+			use_collect2=yes
+		fi
+		xmake_file=mips/x-sony
+		;;
+	mips-sony-sysv*)		# Sony NEWS 3800 with NEWSOS5.0.
+					# That is based on svr4.
+		# t-svr4 is not right because this system doesn't use ELF.
+		tm_file=mips/news5.h
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		xm_file=mips/xm-news.h
+		if [ x$gas = xyes ]
+		then
+			tmake_file=mips/t-mips-gas
+		else
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		if [ x$gnu_ld != xyes ]
+		then
+			use_collect2=yes
+		fi
+		;;
+	mips-tandem-sysv4*)		# Tandem S2 running NonStop UX
+		tm_file=mips/svr4-t.h
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		xm_file=mips/xm-sysv4.h
+		xmake_file=mips/x-sysv
+		if [ x$gas = xyes ]
+		then
+			tmake_file=mips/t-mips-gas
+			extra_parts="crtbegin.o crtend.o"
+		else
+			tmake_file=mips/t-mips
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		if [ x$gnu_ld != xyes ]
+		then
+			use_collect2=yes
+		fi
+		broken_install=yes
+		;;
+	mips-*-ultrix* | mips-dec-mach3)	# Decstation.
+		tm_file=mips/ultrix.h
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		xmake_file=mips/x-ultrix
+		if [ x$gas = xyes ]
+		then
+			tmake_file=mips/t-mips-gas
+		else
+			tmake_file=mips/t-ultrix
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		if [ x$gnu_ld != xyes ]
+		then
+			use_collect2=yes
+		fi
+	        ;;
+	mips-*-riscos[56789]bsd*)
+		tm_file=mips/bsd-5.h	# MIPS BSD 4.3, RISC-OS 5.0
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		if [ x$gas = xyes ]
+		then
+			tmake_file=mips/t-bsd-gas
+		else
+			tmake_file=mips/t-bsd
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		if [ x$gnu_ld != xyes ]
+		then
+			use_collect2=yes
+		fi
+		broken_install=yes
+	        ;;
+	mips-*-bsd* | mips-*-riscosbsd* | mips-*-riscos[1234]bsd*)
+		tm_file=mips/bsd-4.h	# MIPS BSD 4.3, RISC-OS 4.0
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		if [ x$gas = xyes ]
+		then
+			tmake_file=mips/t-bsd-gas
+		else
+			tmake_file=mips/t-bsd
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		if [ x$gnu_ld != xyes ]
+		then
+			use_collect2=yes
+		fi
+		broken_install=yes
+	        ;;
+	mips-*-riscos[56789]sysv4*)
+		tm_file=mips/svr4-5.h	# MIPS System V.4., RISC-OS 5.0
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		xm_file=mips/xm-sysv4.h
+		xmake_file=mips/x-sysv
+		if [ x$gas = xyes ]
+		then
+			tmake_file=mips/t-svr4-gas
+		else
+			tmake_file=mips/t-svr4
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		if [ x$gnu_ld != xyes ]
+		then
+			use_collect2=yes
+		fi
+		broken_install=yes
+		;;
+	mips-*-sysv4* | mips-*-riscos[1234]sysv4* | mips-*-riscossysv4*)
+		tm_file=mips/svr4-4.h	# MIPS System V.4. RISC-OS 4.0
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		xm_file=mips/xm-sysv.h
+		xmake_file=mips/x-sysv
+		if [ x$gas = xyes ]
+		then
+			tmake_file=mips/t-svr4-gas
+		else
+			tmake_file=mips/t-svr4
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		if [ x$gnu_ld != xyes ]
+		then
+			use_collect2=yes
+		fi
+		broken_install=yes
+		;;
+	mips-*-riscos[56789]sysv*)
+		tm_file=mips/svr3-5.h	# MIPS System V.3, RISC-OS 5.0
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		xm_file=mips/xm-sysv.h
+		xmake_file=mips/x-sysv
+		if [ x$gas = xyes ]
+		then
+			tmake_file=mips/t-svr3-gas
+		else
+			tmake_file=mips/t-svr3
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		if [ x$gnu_ld != xyes ]
+		then
+			use_collect2=yes
+		fi
+		broken_install=yes
+		;;
+	mips-*-sysv* | mips-*-riscos*sysv*)
+		tm_file=mips/svr3-4.h	# MIPS System V.3, RISC-OS 4.0
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		xm_file=mips/xm-sysv.h
+		xmake_file=mips/x-sysv
+		if [ x$gas = xyes ]
+		then
+			tmake_file=mips/t-svr3-gas
+		else
+			tmake_file=mips/t-svr3
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		if [ x$gnu_ld != xyes ]
+		then
+			use_collect2=yes
+		fi
+		broken_install=yes
+		;;
+	mips-*-riscos[56789]*)		# Default MIPS RISC-OS 5.0.
+		tm_file=mips/mips-5.h
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		if [ x$gas = xyes ]
+		then
+			tmake_file=mips/t-mips-gas
+		else
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		if [ x$gnu_ld != xyes ]
+		then
+			use_collect2=yes
+		fi
+		broken_install=yes
+		;;
+	mips-*-gnu*)
+		;;
+	mipsel-*-ecoff*)
+		tm_file=mips/ecoffl.h
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		tmake_file=mips/t-ecoff
+		;;
+	mips-*-ecoff*)
+		tm_file=mips/ecoff.h
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		tmake_file=mips/t-ecoff
+		broken_install=yes
+		;;
+	mipsel-*-elf*)
+		tm_file="mips/elfl.h libgloss.h"
+		tmake_file=mips/t-ecoff
+		;;
+	mips-*-elf*)
+		tm_file="mips/elf.h libgloss.h"
+		tmake_file=mips/t-ecoff
+		;;
+	mips64el-*-elf*)
+		tm_file="mips/elfl64.h libgloss.h"
+		tmake_file=mips/t-ecoff
+		;;
+	mips64orionel-*-elf*)
+		tm_file="mips/elflorion.h libgloss.h"
+		tmake_file=mips/t-ecoff
+		;;
+	mips64-*-elf*)
+		tm_file="mips/elf64.h libgloss.h"
+		tmake_file=mips/t-ecoff
+		;;
+	mips64orion-*-elf*)
+		tm_file="mips/elforion.h libgloss.h"
+		tmake_file=mips/t-ecoff
+		;;
+	mips64orion-*-rtems*)
+		tm_file=mips/rtems64.h
+		tmake_file="mips/t-ecoff t-rtems"
+		;;
+	mips-*-*)				# Default MIPS RISC-OS 4.0.
+		if [ x$stabs = xyes ]; then
+			tm_file="${tm_file} dbx.h"
+		fi
+		if [ x$gas = xyes ]
+		then
+			tmake_file=mips/t-mips-gas
+		else
+			extra_passes="mips-tfile mips-tdump"
+		fi
+		if [ x$gnu_ld != xyes ]
+		then
+			use_collect2=yes
+		fi
+		;;
+	mn10200-*-*)
+		cpu_type=mn10200
+		tm_file="mn10200/mn10200.h"
+		if [ x$stabs = xyes ]
+		then
+			tm_file="${tm_file} dbx.h"
+		fi
+		use_collect2=no
+		;;
+	mn10300-*-*)
+		cpu_type=mn10300
+		tm_file="mn10300/mn10300.h"
+		if [ x$stabs = xyes ]
+		then
+			tm_file="${tm_file} dbx.h"
+		fi
+		use_collect2=no
+		;;
+	ns32k-encore-bsd*)
+		tm_file=ns32k/encore.h
+		use_collect2=yes
+		;;
+	ns32k-sequent-bsd*)
+		tm_file=ns32k/sequent.h
+		use_collect2=yes
+		;;
+	ns32k-tek6100-bsd*)
+		tm_file=ns32k/tek6100.h
+		broken_install=yes
+		use_collect2=yes
+		;;
+	ns32k-tek6200-bsd*)
+		tm_file=ns32k/tek6200.h
+		broken_install=yes
+		use_collect2=yes
+		;;
+# This has not been updated to GCC 2.
+#	ns32k-ns-genix*)
+#		xm_file=ns32k/xm-genix.h
+#		xmake_file=ns32k/x-genix
+#		tm_file=ns32k/genix.h
+#		broken_install=yes
+#		use_collect2=yes
+#		;;
+	ns32k-merlin-*)
+		tm_file=ns32k/merlin.h
+		use_collect2=yes
+		;;
+	ns32k-pc532-mach*)
+		tm_file=ns32k/pc532-mach.h
+		use_collect2=yes
+		;;
+	ns32k-pc532-minix*)
+		tm_file=ns32k/pc532-min.h
+		xm_file=ns32k/xm-pc532-min.h
+		use_collect2=yes
+		;;
+	ns32k-pc532-netbsd*)
+		tm_file=ns32k/netbsd.h
+		xm_file=ns32k/xm-netbsd.h
+		# On NetBSD, the headers are already okay.
+		fixincludes=Makefile.in
+		tmake_file=t-netbsd
+		;;
+        pdp11-*-bsd)
+		tm_file="${tm_file} pdp11/2bsd.h"
+                ;;
+        pdp11-*-*)
+		;;
+	pyramid-*-*)
+		cpu_type=pyr
+		xmake_file=pyr/x-pyr
+		use_collect2=yes
+		;;
+	romp-*-aos*)
+		use_collect2=yes
+		;;
+	romp-*-mach*)
+		xmake_file=romp/x-mach
+		use_collect2=yes
+		;;
+	powerpc-*-sysv* | powerpc-*-elf*)
+		tm_file=rs6000/sysv4.h
+		xm_file=rs6000/xm-sysv4.h
+		extra_headers=ppc-asm.h
+		if [ x$gas = xyes ]
+		then
+			tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
+		else
+			tmake_file="rs6000/t-ppc rs6000/t-ppccomm"
+		fi
+		xmake_file=rs6000/x-sysv4
+		;;
+	powerpc-*-eabiaix*)
+		tm_file=rs6000/eabiaix.h
+		tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
+		fixincludes=Makefile.in
+		extra_headers=ppc-asm.h
+		;;
+	powerpc-*-eabisim*)
+		tm_file=rs6000/eabisim.h
+		tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
+		fixincludes=Makefile.in
+		extra_headers=ppc-asm.h
+		;;
+	powerpc-*-eabi*)
+		tm_file=rs6000/eabi.h
+		if [ x$gas = xyes ]
+		then
+			tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
+		else
+			tmake_file="rs6000/t-ppc rs6000/t-ppccomm"
+		fi
+		fixincludes=Makefile.in
+		extra_headers=ppc-asm.h
+		;;
+	powerpc-*-rtems*)
+		tm_file=rs6000/rtems.h
+		if [ x$gas = xyes ]
+		then
+		     tmake_file="rs6000/t-ppcgas t-rtems rs6000/t-ppccomm"
+		else
+		     tmake_file="rs6000/t-ppc t-rtems rs6000/t-ppccomm"
+		fi
+		fixincludes=Makefile.in
+		extra_headers=ppc-asm.h
+		;;
+	powerpc-*-linux-gnu*)
+		tm_file=rs6000/linux.h
+		xm_file=rs6000/xm-sysv4.h
+		out_file=rs6000/rs6000.c
+		if [ x$gas = xyes ]
+		then
+			tmake_file="rs6000/t-ppcos t-linux rs6000/t-ppccomm"
+		else
+			tmake_file="rs6000/t-ppc t-linux rs6000/t-ppccomm"
+		fi
+		xmake_file=x-linux
+		fixincludes=Makefile.in
+		extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+		extra_headers=ppc-asm.h
+		if [ x$enable_threads = xyes ]; then
+			thread_file='posix'
+		fi
+		;;
+        powerpc-*-vxworks*)
+                cpu_type=rs6000
+                xm_file=rs6000/xm-sysv4.h
+                tm_file=rs6000/vxppc.h
+                tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
+		extra_headers=ppc-asm.h
+                ;;
+	powerpcle-*-sysv* | powerpcle-*-elf*)
+		tm_file=rs6000/sysv4le.h
+		xm_file=rs6000/xm-sysv4.h
+		if [ x$gas = xyes ]
+		then
+			tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
+		else
+			tmake_file="rs6000/t-ppc rs6000/t-ppccomm"
+		fi
+		xmake_file=rs6000/x-sysv4
+		extra_headers=ppc-asm.h
+		;;
+	powerpcle-*-eabisim*)
+		tm_file=rs6000/eabilesim.h
+		tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
+		fixincludes=Makefile.in
+		extra_headers=ppc-asm.h
+		;;
+	powerpcle-*-eabi*)
+		tm_file=rs6000/eabile.h
+		if [ x$gas = xyes ]
+		then
+			tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
+		else
+			tmake_file="rs6000/t-ppc rs6000/t-ppccomm"
+		fi
+		fixincludes=Makefile.in
+		extra_headers=ppc-asm.h
+		;;
+        powerpcle-*-winnt* )
+                tm_file=rs6000/win-nt.h
+                tmake_file=rs6000/t-winnt
+#               extra_objs=pe.o
+		fixincludes=Makefile.in
+ 		if [ x$enable_threads = xyes ]; then
+			thread_file='win32'
+		fi
+		extra_headers=ppc-asm.h
+		;;
+	powerpcle-*-pe | powerpcle-*-cygwin32)
+		tm_file=rs6000/cygwin32.h
+		xm_file=rs6000/xm-cygwin32.h
+		tmake_file=rs6000/t-winnt
+		xmake_file=rs6000/x-cygwin32
+#		extra_objs=pe.o
+		fixincludes=Makefile.in
+ 		if [ x$enable_threads = xyes ]; then
+			thread_file='win32'
+		fi
+		exeext=.exe
+		extra_headers=ppc-asm.h
+		;;
+	powerpcle-*-solaris2*)
+		tm_file=rs6000/sol2.h
+		xm_file=rs6000/xm-sysv4.h
+		if [ x$gas = xyes ]
+		then
+			tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
+		else
+			tmake_file="rs6000/t-ppc rs6000/t-ppccomm"
+		fi
+		xmake_file=rs6000/x-sysv4
+		fixincludes=fixinc.svr4
+		extra_headers=ppc-asm.h
+		;;
+	rs6000-ibm-aix3.[01]*)
+		tm_file=rs6000/aix31.h
+		xmake_file=rs6000/x-aix31
+		use_collect2=yes
+		;;
+	rs6000-ibm-aix3.2.[456789]* | powerpc-ibm-aix3.2.[456789]*)
+		tm_file=rs6000/aix3newas.h
+		if [ x$host != x$target ]
+		then
+			tmake_file=rs6000/t-xnewas
+		else
+			tmake_file=rs6000/t-newas
+		fi
+		use_collect2=yes
+		;;
+	rs6000-ibm-aix[456789].* | powerpc-ibm-aix[456789].*)
+		tm_file=rs6000/aix41.h
+		if [ x$host != x$target ]
+		then
+			tmake_file=rs6000/t-xnewas
+		else
+			tmake_file=rs6000/t-newas
+		fi
+		xmake_file=rs6000/x-aix31
+		use_collect2=yes
+		;;
+	rs6000-ibm-aix*)
+		use_collect2=yes
+		;;
+	rs6000-bull-bosx)
+		use_collect2=yes
+		;;
+	rs6000-*-mach*)
+		tm_file=rs6000/mach.h
+		xm_file=rs6000/xm-mach.h
+		xmake_file=rs6000/x-mach
+		use_collect2=yes
+		;;
+	rs6000-*-lynxos*)
+		tm_file=rs6000/lynx.h
+		xm_file=rs6000/xm-lynx.h
+		tmake_file=rs6000/t-rs6000
+		xmake_file=rs6000/x-lynx
+		use_collect2=yes
+		;;
+	sh-*-elf*)
+		tm_file=sh/elf.h
+		float_format=sh
+		;;
+	sh-*-*)
+		float_format=sh
+		;;
+	sparc-tti-*)
+		tm_file=sparc/pbd.h
+		xm_file=sparc/xm-pbd.h
+		;;
+	sparc-wrs-vxworks* | sparclite-wrs-vxworks*)
+		tm_file=sparc/vxsparc.h
+		tmake_file=sparc/t-vxsparc
+		use_collect2=yes
+		;;
+	sparc-*-aout*)
+		tmake_file=sparc/t-sparcbare
+		tm_file="sparc/aout.h libgloss.h"
+		;;
+	sparc-*-netbsd*)
+		tm_file=sparc/netbsd.h
+		xm_file=sparc/xm-netbsd.h
+		# On NetBSD, the headers are already okay.
+		fixincludes=Makefile.in
+		tmake_file=t-netbsd
+		;;
+	sparc-*-bsd*)
+		tm_file=sparc/bsd.h
+		;;
+	sparc-*-linux-gnuaout*)		# Sparc's running Linux, a.out
+		xm_file=sparc/xm-linux.h
+		tm_file=sparc/linux-aout.h
+		xmake_file=x-linux
+		fixincludes=Makefile.in #On Linux, the headers are ok already.
+		broken_install=yes
+		gnu_ld=yes
+		;;
+	sparc-*-linux-gnulibc1*)		 # Sparc's running Linux
+		xm_file=sparc/xm-linux.h # with ELF format using the
+		xmake_file=x-linux	 # Linux C library 5.
+		tm_file=sparc/linux.h
+		tmake_file="t-linux t-linux-gnulibc1 sparc/t-linux"
+		extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+		fixincludes=Makefile.in #On Linux, the headers are ok already.
+		broken_install=yes
+		gnu_ld=yes
+		;;
+	sparc-*-linux-gnu*)			 # Sparc's running Linux
+		xm_file=sparc/xm-linux.h # with ELF format using glibc 2
+		xmake_file=x-linux	 # aka the Linux C library 6.
+		tm_file=sparc/linux.h
+		tmake_file="t-linux sparc/t-linux"
+		extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+		fixincludes=Makefile.in #On Linux, the headers are ok already.
+		broken_install=yes
+		gnu_ld=yes
+ 		if [ x$enable_threads = xyes ]; then
+ 			thread_file='posix'
+ 		fi
+		;;
+	sparc-*-lynxos*)
+		if [ x$gas = xyes ]
+		then
+			tm_file=sparc/lynx.h
+		else
+			tm_file=sparc/lynx-ng.h
+		fi
+		xm_file=sparc/xm-lynx.h
+		tmake_file=sparc/t-sunos41
+		xmake_file=x-lynx
+		;;
+	sparc-*-rtems*)
+		tmake_file="sparc/t-sparcbare t-rtems"
+		tm_file=sparc/rtems.h
+		;;
+	sparc-*-solaris2*)
+		tm_file=sparc/sol2.h
+		xm_file=sparc/xm-sol2.h
+		tmake_file=sparc/t-sol2
+		xmake_file=sparc/x-sysv4
+		extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
+		fixincludes=fixinc.svr4
+		broken_install=yes
+ 		if [ x$enable_threads = xyes ]; then
+			thread_file='solaris'
+		fi
+		;;
+	sparc-*-sunos4.0*)
+		tm_file=sparc/sunos4.h
+		tmake_file=sparc/t-sunos40
+		use_collect2=yes
+		;;
+	sparc-*-sunos4*)
+		tm_file=sparc/sunos4.h
+		tmake_file=sparc/t-sunos41
+		use_collect2=yes
+		;;
+	sparc-*-sunos3*)
+		tm_file=sparc/sun4o3.h
+		use_collect2=yes
+		;;
+	sparc-*-sysv4*)
+		tm_file=sparc/sysv4.h
+		xm_file=sparc/xm-sysv4.h
+		tmake_file=t-svr4
+		xmake_file=sparc/x-sysv4
+		extra_parts="crtbegin.o crtend.o"
+		;;
+	sparc-*-vxsim*)
+		xm_file=sparc/xm-sol2.h
+		tm_file=sparc/vxsim.h
+		tmake_file=sparc/t-vxsparc
+		xmake_file=sparc/x-sysv4
+		;;
+	sparclet-*-aout*)
+		tm_file="sparc/splet.h libgloss.h"
+		tmake_file=sparc/t-splet
+		;;
+	sparclite-*-coff*)
+		tm_file="sparc/litecoff.h libgloss.h"
+		tmake_file=sparc/t-sparclite
+		;;
+	sparclite-*-aout*)
+		tm_file="sparc/lite.h aoutos.h libgloss.h"
+		tmake_file=sparc/t-sparclite
+		;;
+	sparc64-*-aout*)
+		tmake_file=sparc/t-sp64
+		tm_file=sparc/sp64-aout.h
+		;;
+	sparc64-*-elf*)
+		tmake_file=sparc/t-sp64
+		tm_file=sparc/sp64-elf.h
+		extra_parts="crtbegin.o crtend.o"
+		;;
+# This hasn't been upgraded to GCC 2.
+#	tahoe-harris-*)			# Harris tahoe, using COFF.
+#		tm_file=tahoe/harris.h
+#		;;
+#	tahoe-*-bsd*)			# tahoe running BSD
+#		;;
+# This hasn't been upgraded to GCC 2.
+#	tron-*-*)
+#		cpu_type=gmicro
+#		use_collect2=yes
+#		;;
+	vax-*-bsd*)			# vaxen running BSD
+		use_collect2=yes
+		float_format=vax
+		;;
+	vax-*-sysv*)			# vaxen running system V
+		tm_file="${tm_file} vax/vaxv.h"
+		xm_file="${tm_file} vax/xm-vaxv.h"
+		float_format=vax
+		;;
+	vax-*-netbsd*)
+		tm_file="${tm_file} netbsd.h vax/netbsd.h"
+		xm_file="${xm_file} xm-netbsd.h"
+		# On NetBSD, the headers are already okay.
+		fixincludes=Makefile.in
+		tmake_file=t-netbsd
+		float_format=vax
+		;;
+	vax-*-ultrix*)			# vaxen running ultrix
+		tm_file="${tm_file} vax/ultrix.h"
+		use_collect2=yes
+		float_format=vax
+		;;
+	vax-*-vms*)			# vaxen running VMS
+		xm_file=vax/xm-vms.h
+		tm_file=vax/vms.h
+		float_format=vax
+		;;
+	vax-*-*)			# vax default entry
+		float_format=vax
+		;;
+	we32k-att-sysv*)
+		xm_file="${xm_file} xm-svr3"
+		use_collect2=yes
+		;;
+	*)
+		echo "Configuration $machine not supported" 1>&2
+		exit 1
+		;;
+	esac
+
+	case $machine in
+	*-*-linux-gnu*)
+	        ;; # Existing Linux/GNU systems do not use the GNU setup.
+	*-*-gnu*)
+		# On the GNU system, the setup is just about the same on
+		# each different CPU.  The specific machines that GNU
+		# supports are matched above and just set $cpu_type.
+		xm_file=${cpu_type}/xm-gnu.h
+		tm_file=${cpu_type}/gnu.h
+		extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+		# GNU always uses ELF.
+		elf=yes
+		# GNU tools are the only tools.
+		gnu_ld=yes
+		gas=yes
+		# On GNU, the headers are already okay.
+		fixincludes=Makefile.in
+		xmake_file=x-linux	# These details are the same as Linux.
+		tmake_file=t-gnu	# These are not.
+		;;
+	*-*-sysv4*)
+		fixincludes=fixinc.svr4
+		xmake_try_sysv=x-sysv
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		;;
+	*-*-sysv*)
+		broken_install=yes
+		install_headers_dir=install-headers-cpio
+		;;
+	esac
+
+	# Distinguish i[3456]86
+	# Also, do not run mips-tfile on MIPS if using gas.
+	# Process --with-cpu= for PowerPC/rs6000
+	target_cpu_default2=
+	case $machine in
+	i486-*-*)
+		target_cpu_default2=1
+		;;
+	i586-*-*)
+		target_cpu_default2=2
+		;;
+	i686-*-*)
+		target_cpu_default2=3
+		;;
+	alpha*-*-*)
+		case $machine in
+			alphaev56*)
+				target_cpu_default2="MASK_CPU_EV5|MASK_BYTE_OPS"
+				;;
+			alphaev5*)
+				target_cpu_default2="MASK_CPU_EV5"
+				;;
+		esac
+				
+		if [ x$gas = xyes ]
+		then
+			if [ x$target_cpu_default2 = x ]
+			then
+				target_cpu_default2="MASK_GAS"
+			else
+				target_cpu_default2="${target_cpu_default2}|MASK_GAS"
+			fi
+		fi
+		;;
+	mips*-*-ecoff* | mips*-*-elf*)
+		if [ x$gas = xyes ]
+		then
+			if [ x$gnu_ld = xyes ]
+			then
+				target_cpu_default2=20
+			else
+				target_cpu_default2=16
+			fi
+		fi
+		;;
+	mips*-*-*)
+		if [ x$gas = xyes ]
+		then
+			target_cpu_default2=16
+		fi
+		;;
+	powerpc*-*-* | rs6000-*-*)
+		case "x$with_cpu" in
+			x)
+				;;
+
+			xcommon | xpower | xpower2 | xpowerpc | xrios \
+			  | xrios1 | xrios2 | xrsc | xrsc1 \
+			  | x601 | x602 | x603 | x603e | x604 | x604e | x620 \
+			  | x403 | x505 | x801 | x821 | x823 | x860)
+				target_cpu_default2="'\"$with_cpu\"'"
+				;;
+
+			xyes | xno)
+				echo "--with-cpu must be passed a value" 1>&2
+				exit 1
+				;;
+
+			*)
+				echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2
+				exit 1
+				;;
+		esac
+		;;
+	sparc*-*-*)
+		case ".$with_cpu" in
+			.)
+				target_cpu_default2=TARGET_CPU_"`echo $machine | sed 's/-.*$//'`"
+				;;
+			.supersparc | .ultrasparc | .v7 | .v8)
+				target_cpu_default2="TARGET_CPU_$with_cpu"
+				;;
+			*)
+				echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2
+				exit 1
+				;;
+		esac
+		;;
+	esac
+
+	if [ x$target_cpu_default2 != x ]
+	then
+		if [ x$target_cpu_default != x ]
+		then
+			target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
+		else
+			target_cpu_default=$target_cpu_default2
+		fi
+	fi
+
+	# No need for collect2 if we have the GNU linker.
+	case x$gnu_ld in
+	xyes)
+		use_collect2=
+		;;
+	esac
+
+# Save data on machine being used to compile GCC in build_xm_file.
+# Save data on host machine in vars host_xm_file and host_xmake_file.
+	if [ x$pass1done = x ]
+	then
+		if [ x"$xm_file" = x ]
+		then build_xm_file=$cpu_type/xm-$cpu_type.h
+		else build_xm_file=$xm_file
+		fi
+		build_broken_install=$broken_install
+		build_install_headers_dir=$install_headers_dir
+		build_exeext=$exeext
+		pass1done=yes
+	else
+		if [ x$pass2done = x ]
+		then
+			if [ x"$xm_file" = x ]
+			then host_xm_file=$cpu_type/xm-$cpu_type.h
+			else host_xm_file=$xm_file
+			fi
+			if [ x"$xmake_file" = x ]
+			then xmake_file=$cpu_type/x-$cpu_type
+			fi
+			host_xmake_file="$xmake_file"
+			host_truncate_target=$truncate_target
+			host_extra_gcc_objs=$extra_gcc_objs
+			host_extra_objs=$extra_host_objs
+			pass2done=yes
+		fi
+	fi
+done
+
+extra_objs="${host_extra_objs} ${extra_objs}"
+
+# Default the target-machine variables that were not explicitly set.
+if [ x"$tm_file" = x ]
+then tm_file=$cpu_type/$cpu_type.h; fi
+
+if [ x$extra_headers = x ]
+then extra_headers=; fi
+
+if [ x"$xm_file" = x ]
+then xm_file=$cpu_type/xm-$cpu_type.h; fi
+
+md_file=$cpu_type/$cpu_type.md
+
+if [ x$out_file = x ]
+then out_file=$cpu_type/$cpu_type.c; fi
+
+if [ x"$tmake_file" = x ]
+then tmake_file=$cpu_type/t-$cpu_type
+fi
+
+if [ x$float_format = x ]
+then float_format=i64
+fi
+
+# Say what files are being used for the output code and MD file.
+echo "Using \`$srcdir/config/$out_file' to output insns."
+echo "Using \`$srcdir/config/$md_file' as machine description file."
+
+count=a
+for f in $tm_file; do
+	count=${count}x
+done
+if [ $count = ax ]; then
+	echo "Using \`$srcdir/config/$tm_file' as target machine macro file."
+else
+	echo "Using the following target machine macro files:"
+	for f in $tm_file; do
+		echo "	$srcdir/config/$f"
+	done
+fi
+
+count=a
+for f in $host_xm_file; do
+	count=${count}x
+done
+if [ $count = ax ]; then
+	echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file."
+else
+	echo "Using the following host machine macro files:"
+	for f in $host_xm_file; do
+		echo "	$srcdir/config/$f"
+	done
+fi
+
+if [ "$host_xm_file" != "$build_xm_file" ]; then
+	count=a
+	for f in $build_xm_file; do
+		count=${count}x
+	done
+	if [ $count = ax ]; then
+		echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file."
+	else
+		echo "Using the following build machine macro files:"
+		for f in $build_xm_file; do
+			echo "	$srcdir/config/$f"
+		done
+	fi
+fi
+
+if [ x$thread_file = x ]
+then thread_file='single'
+fi
+
+# Set up the header files.
+# $links is the list of header files to create.
+# $vars is the list of shell variables with file names to include.
+# config2.h is the old config.h.  It is included by the new config.h which
+# created from config.in.  The goal is to simplify the transition to autoconf.
+vars="host_xm_file tm_file xm_file build_xm_file"
+links="config2.h tm.h tconfig.h hconfig.h"
+
+rm -f config.bak
+if [ -f config.status ]; then mv -f config.status config.bak; fi
+
+# Make the links.
+while [ -n "$vars" ]
+do
+	# set file to car of files, files to cdr of files
+	set $vars; var=$1; shift; vars=$*
+	set $links; link=$1; shift; links=$*
+
+	rm -f $link
+
+	# Define TARGET_CPU_DEFAULT if the system wants one.
+	# This substitutes for lots of *.h files.
+	if [ x$target_cpu_default != x -a $link = tm.h ]
+	then
+		echo "#define TARGET_CPU_DEFAULT $target_cpu_default" >>$link
+	fi
+
+	for file in `eval echo '$'$var`; do
+		echo "#include \"$file\"" >>$link
+	done
+done
+
+# Truncate the target if necessary
+if [ x$host_truncate_target != x ]; then
+	target=`echo $target | sed -e 's/\(..............\).*/\1/'`
+fi
+
+# Get the version number from the toplevel
+version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < ${srcdir}/version.c`
+
+# Are we using gcc as the native compiler?
+case $host in
+*linux*)	# All Linux's use gcc as the native compiler.
+	if [ x$prefix = xNONE ]; then
+		prefix=$native_prefix
+	fi
+	;;
+esac
+
+# Get an absolute path to the GCC top-level source directory
+holddir=`pwd`
+cd $srcdir
+topdir=`pwd`
+cd $holddir
+
+# Conditionalize the makefile for this host machine.
+# Make-host contains the concatenation of all host makefile fragments
+# [there can be more than one].  This file is built by configure.frag.
+host_overrides=Make-host
+dep_host_xmake_file=
+for f in .. ${host_xmake_file}
+do
+	if [ -f ${srcdir}/config/$f ]
+	then
+		dep_host_xmake_file="${dep_host_xmake_file} ${srcdir}/config/$f"
+	fi
+done
+
+# Conditionalize the makefile for this target machine.
+# Make-target contains the concatenation of all host makefile fragments
+# [there can be more than one].  This file is built by configure.frag.
+target_overrides=Make-target
+dep_tmake_file=
+for f in .. ${tmake_file}
+do
+	if [ -f ${srcdir}/config/$f ]
+	then
+		dep_tmake_file="${dep_tmake_file} ${srcdir}/config/$f"
+	fi
+done
+
+# If the host doesn't support symlinks, modify CC in
+# FLAGS_TO_PASS so CC="stage1/xgcc -Bstage1/" works.
+# Otherwise, we can use "CC=$(CC)".
+rm -f symtest.tem
+if $symbolic_link symtest1.tem symtest.tem 2>/dev/null
+then
+	cc_set_by_configure="\$(CC)"
+	stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
+else
+	cc_set_by_configure="\`case '\$(CC)' in stage*) echo '\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\$(CC)';; esac\`"
+	stage_prefix_set_by_configure="\`case '\$(STAGE_PREFIX)' in stage*) echo '\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\$(STAGE_PREFIX)';; esac\`"
+fi
+rm -f symtest.tem
+
+out_object_file=`basename $out_file .c`.o
+
+tm_file_list=
+for f in $tm_file; do
+	tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
+done
+
+host_xm_file_list=
+for f in $host_xm_file; do
+	host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f"
+done
+
+build_xm_file_list=
+for f in $build_xm_file; do
+	build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f"
+done
+
+# Define macro CROSS_COMPILE in compilation
+# if this is a cross-compiler.
+# Also use all.cross instead of all.internal
+# and add cross-make to Makefile.
+cross_overrides="/dev/null"
+if [ x$host != x$target ]
+then
+	cross_defines="CROSS=-DCROSS_COMPILE"
+	cross_overrides="${topdir}/cross-make"
+fi
+
+# When building gcc with a cross-compiler, we need to fix a few things.
+# This must come after cross-make as we want all.build to override
+# all.cross.
+build_overrides="/dev/null"
+if [ x$build != x$host ]
+then
+	build_overrides="${topdir}/build-make"
+fi
+
+# Expand extra_headers to include complete path.
+# This substitutes for lots of t-* files.
+extra_headers_list=
+if [ "x$extra_headers" = x ]
+then true
+else
+	# Prepend ${srcdir}/ginclude/ to every entry in extra_headers.
+	for file in $extra_headers;
+	do
+		extra_headers_list="${extra_headers_list} \$(srcdir)/ginclude/${file}"
+	done
+fi
+
+# Add a definition of USE_COLLECT2 if system wants one.
+# Also tell toplev.c what to do.
+# This substitutes for lots of t-* files.
+if [ x$use_collect2 = x ]
+then
+	will_use_collect2=
+	maybe_use_collect2=
+else
+	will_use_collect2="ld"
+	maybe_use_collect2="-DUSE_COLLECT2"
+fi
+
+# NEED TO CONVERT
+# Set MD_DEPS if the real md file is in md.pre-cpp.
+# Set MD_CPP to the cpp to pass the md file through.  Md files use ';'
+# for line oriented comments, so we must always use a GNU cpp.  If
+# building gcc with a cross compiler, use the cross compiler just
+# built.  Otherwise, we can use the cpp just built.
+md_file_sub=
+if [ "x$md_cppflags" = x ]
+then
+	md_file_sub=$srcdir/config/$md_file
+else
+	md_file=md
+fi
+
+# If we have gas in the build tree, make a link to it.
+if [ -f ../gas/Makefile ]; then
+	rm -f as; $symbolic_link ../gas/as.new as 2>/dev/null
+fi
+
+# If we have ld in the build tree, make a link to it.
+if [ -f ../ld/Makefile ]; then
+	if [ x$use_collect2 = x ]; then
+		rm -f ld; $symbolic_link ../ld/ld.new ld 2>/dev/null
+	else
+		rm -f collect-ld; $symbolic_link ../ld/ld.new collect-ld 2>/dev/null
+	fi
+fi
+
+# Figure out what language subdirectories are present.
+subdirs=
+for lang in ${srcdir}/*/config-lang.in ..
+do
+	case $lang in
+	..) ;;
+	# The odd quoting in the next line works around
+	# an apparent bug in bash 1.12 on linux.
+	${srcdir}/[*]/config-lang.in) ;;
+	*) subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`" ;;
+	esac
+done
+
+# Make empty files to contain the specs and options for each language.
+# Then add #include lines to for a compiler that has specs and/or options.
+
+lang_specs_files=
+lang_options_files=
+rm -f specs.h options.h
+touch specs.h options.h
+for subdir in . $subdirs
+do
+	if [ -f $srcdir/$subdir/lang-specs.h ]; then
+		echo "#include \"$subdir/lang-specs.h\"" >>specs.h
+		lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
+	fi
+	if [ -f $srcdir/$subdir/lang-options.h ]; then
+		echo "#include \"$subdir/lang-options.h\"" >>options.h
+		lang_options_files="$lang_options_files $srcdir/$subdir/lang-options.h"
+	fi
+done
+
+# These (without "all_") are set in each config-lang.in.
+# `language' must be a single word so is spelled singularly.
+all_languages=
+all_boot_languages=
+all_compilers=
+all_stagestuff=
+all_diff_excludes=
+all_outputs=Makefile
+# List of language makefile fragments.
+all_lang_makefiles=
+all_headers=
+all_lib2funcs=
+
+# Add the language fragments.
+# Languages are added via two mechanisms.  Some information must be
+# recorded in makefile variables, these are defined in config-lang.in.
+# We accumulate them and plug them into the main Makefile.
+# The other mechanism is a set of hooks for each of the main targets
+# like `clean', `install', etc.
+
+language_fragments="Make-lang"
+language_hooks="Make-hooks"
+oldstyle_subdirs=
+
+for s in .. $subdirs
+do
+	if [ $s != ".." ]
+	then
+		language=
+		boot_language=
+		compilers=
+		stagestuff=
+		diff_excludes=
+		headers=
+		outputs=
+		lib2funcs=
+		. ${srcdir}/$s/config-lang.in
+		if [ "x$language" = x ]
+		then
+			echo "${srcdir}/$s/config-lang.in doesn't set \$language." 1>&2
+			exit 1
+		fi
+		all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Make-lang.in ${srcdir}/$s/Makefile.in"
+		all_languages="$all_languages $language"
+		if [ "x$boot_language" = xyes ]
+		then
+			all_boot_languages="$all_boot_languages $language"
+		fi
+		all_compilers="$all_compilers $compilers"
+		all_stagestuff="$all_stagestuff $stagestuff"
+		all_diff_excludes="$all_diff_excludes $diff_excludes"
+		all_headers="$all_headers $headers"
+		all_outputs="$all_outputs $outputs"
+		if [ x$outputs = x ]
+		then
+			oldstyle_subdirs="$oldstyle_subdirs $s"
+		fi
+		all_lib2funcs="$all_lib2funcs $lib2funcs"
+	fi
+done
+
+# Since we can't use `::' targets, we link each language in
+# with a set of hooks, reached indirectly via lang.${target}.
+
+rm -f Make-hooks
+touch Make-hooks
+target_list="all.build all.cross start.encap rest.encap \
+	info dvi \
+	install-normal install-common install-info install-man \
+	uninstall distdir \
+	mostlyclean clean distclean extraclean maintainer-clean \
+	stage1 stage2 stage3 stage4"
+for t in $target_list
+do
+	x=
+	for l in .. $all_languages
+	do
+		if [ $l != ".." ]; then
+			x="$x $l.$t"
+		fi
+	done
+	echo "lang.$t: $x" >> Make-hooks
+done
+
+# If we're not building in srcdir, create .gdbinit.
+
+if [ ! -f Makefile.in ]; then
+	echo "dir ." > .gdbinit
+	echo "dir ${srcdir}" >> .gdbinit
+	if [ x$gdb_needs_out_file_path = xyes ]
+	then
+		echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit
+	fi
+	if [ "x$subdirs" != x ]; then
+		for s in $subdirs
+		do
+			echo "dir ${srcdir}/$s" >> .gdbinit
+		done
+	fi
+	echo "source ${srcdir}/.gdbinit" >> .gdbinit
+fi
+
+# Process the language and host/target makefile fragments.
+${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xmake_file" "$dep_tmake_file"
+
+# Substitute configuration variables
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Echo that links are built
+if [ x$host = x$target ]
+then
+	str1="native "
+else
+	str1="cross-"
+	str2=" from $host"
+fi
+
+if [ x$host != x$build ]
+then
+	str3=" on a $build system"
+fi
+
+if [ "x$str2" != x ] || [ "x$str3" != x ]
+then
+	str4=
+fi
+
+echo "Links are now set up to build a ${str1}compiler for ${target}$str4" 1>&2
+
+if [ "x$str2" != x ] || [ "x$str3" != x ]
+then
+	echo " ${str2}${str3}." 1>&2
+fi
+
+# Configure the subdirectories
+# AC_CONFIG_SUBDIRS($subdirs)
+
+# Create the Makefile
+# and configure language subdirectories
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+  case `(ac_space=' '; set) 2>&1` in
+  *ac_space=\ *)
+    # `set' does not quote correctly, so add quotes (double-quote substitution
+    # turns \\\\ into \\, and sed turns \\ into \).
+    sed -n \
+      -e "s/'/'\\\\''/g" \
+      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+    ;;
+  *)
+    # `set' quotes correctly as required by POSIX, so do not add quotes.
+    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+    ;;
+  esac >> confcache
+if cmp -s $cache_file confcache; then
+  :
+else
+  if test -w $cache_file; then
+    echo "updating cache $cache_file"
+    cat confcache > $cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+DEFS=-DHAVE_CONFIG_H
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 2.12"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "$all_outputs config.h:config.in" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@host@%$host%g
+s%@host_alias@%$host_alias%g
+s%@host_cpu@%$host_cpu%g
+s%@host_vendor@%$host_vendor%g
+s%@host_os@%$host_os%g
+s%@target@%$target%g
+s%@target_alias@%$target_alias%g
+s%@target_cpu@%$target_cpu%g
+s%@target_vendor@%$target_vendor%g
+s%@target_os@%$target_os%g
+s%@build@%$build%g
+s%@build_alias@%$build_alias%g
+s%@build_cpu@%$build_cpu%g
+s%@build_vendor@%$build_vendor%g
+s%@build_os@%$build_os%g
+s%@AWK@%$AWK%g
+s%@LEX@%$LEX%g
+s%@LEXLIB@%$LEXLIB%g
+s%@LN_S@%$LN_S%g
+s%@RANLIB@%$RANLIB%g
+s%@YACC@%$YACC%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@CC@%$CC%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@CPP@%$CPP%g
+s%@manext@%$manext%g
+s%@objext@%$objext%g
+s%@subdirs@%$subdirs%g
+s%@all_languages@%$all_languages%g
+s%@all_boot_languages@%$all_boot_languages%g
+s%@all_compilers@%$all_compilers%g
+s%@all_lang_makefiles@%$all_lang_makefiles%g
+s%@all_stagestuff@%$all_stagestuff%g
+s%@all_diff_excludes@%$all_diff_excludes%g
+s%@all_lib2funcs@%$all_lib2funcs%g
+s%@all_headers@%$all_headers%g
+s%@extra_passes@%$extra_passes%g
+s%@extra_programs@%$extra_programs%g
+s%@extra_parts@%$extra_parts%g
+s%@extra_c_objs@%$extra_c_objs%g
+s%@extra_c_flags@%$extra_c_flags%g
+s%@extra_objs@%$extra_objs%g
+s%@host_extra_gcc_objs@%$host_extra_gcc_objs%g
+s%@extra_headers_list@%$extra_headers_list%g
+s%@dep_host_xmake_file@%$dep_host_xmake_file%g
+s%@dep_tmake_file@%$dep_tmake_file%g
+s%@out_file@%$out_file%g
+s%@out_object_file@%$out_object_file%g
+s%@md_file@%$md_file%g
+s%@tm_file_list@%$tm_file_list%g
+s%@build_xm_file_list@%$build_xm_file_list%g
+s%@host_xm_file_list@%$host_xm_file_list%g
+s%@lang_specs_files@%$lang_specs_files%g
+s%@lang_options_files@%$lang_options_files%g
+s%@thread_file@%$thread_file%g
+s%@version@%$version%g
+s%@local_prefix@%$local_prefix%g
+s%@gxx_include_dir@%$gxx_include_dir%g
+s%@fixincludes@%$fixincludes%g
+s%@build_install_headers_dir@%$build_install_headers_dir%g
+s%@build_exeext@%$build_exeext%g
+s%@float_format@%$float_format%g
+s%@will_use_collect2@%$will_use_collect2%g
+s%@maybe_use_collect2@%$maybe_use_collect2%g
+s%@cc_set_by_configure@%$cc_set_by_configure%g
+s%@stage_prefix_set_by_configure@%$stage_prefix_set_by_configure%g
+/@target_overrides@/r $target_overrides
+s%@target_overrides@%%g
+/@host_overrides@/r $host_overrides
+s%@host_overrides@%%g
+s%@cross_defines@%$cross_defines%g
+/@cross_overrides@/r $cross_overrides
+s%@cross_overrides@%%g
+/@build_overrides@/r $build_overrides
+s%@build_overrides@%%g
+/@language_fragments@/r $language_fragments
+s%@language_fragments@%%g
+/@language_hooks@/r $language_hooks
+s%@language_hooks@%%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+  if test $ac_beg -gt 1; then
+    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+  else
+    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+  fi
+  if test ! -s conftest.s$ac_file; then
+    ac_more_lines=false
+    rm -f conftest.s$ac_file
+  else
+    if test -z "$ac_sed_cmds"; then
+      ac_sed_cmds="sed -f conftest.s$ac_file"
+    else
+      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+    fi
+    ac_file=`expr $ac_file + 1`
+    ac_beg=$ac_end
+    ac_end=`expr $ac_end + $ac_max_sed_cmds`
+  fi
+done
+if test -z "$ac_sed_cmds"; then
+  ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"$all_outputs"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  case "$ac_given_INSTALL" in
+  [/$]*) INSTALL="$ac_given_INSTALL" ;;
+  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+  esac
+
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
+ac_dB='\([ 	][ 	]*\)[^ 	]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uB='\([ 	]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+if test "${CONFIG_HEADERS+set}" != set; then
+EOF
+cat >> $CONFIG_STATUS <<EOF
+  CONFIG_HEADERS="config.h:config.in"
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+fi
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  echo creating $ac_file
+
+  rm -f conftest.frag conftest.in conftest.out
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  cat $ac_file_inputs > conftest.in
+
+EOF
+
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h.  And first:
+# Protect against being on the right side of a sed subst in config.status.
+# Protect against being in an unquoted here document in config.status.
+rm -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+rm -f conftest.hdr
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >> conftest.vals <<\EOF
+s%^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
+
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
+
+rm -f conftest.tail
+while :
+do
+  ac_lines=`grep -c . conftest.vals`
+  # grep -c gives empty output for an empty file on some AIX systems.
+  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+  # Write a limited-size here document to conftest.frag.
+  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+  echo 'CEOF
+  sed -f conftest.frag conftest.in > conftest.out
+  rm -f conftest.in
+  mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+  rm -f conftest.vals
+  mv conftest.tail conftest.vals
+done
+rm -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+  rm -f conftest.frag conftest.h
+  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
+  cat conftest.in >> conftest.h
+  rm -f conftest.in
+  if cmp -s $ac_file conftest.h 2>/dev/null; then
+    echo "$ac_file is unchanged"
+    rm -f conftest.h
+  else
+    # Remove last slash and all that follows it.  Not all systems have dirname.
+      ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+      if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+      # The file is in a subdirectory.
+      test ! -d "$ac_dir" && mkdir "$ac_dir"
+    fi
+    rm -f $ac_file
+    mv conftest.h $ac_file
+  fi
+fi; done
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+host='${host}'
+build='${build}'
+target='${target}'
+target_alias='${target_alias}'
+srcdir='${srcdir}'
+subdirs='${subdirs}'
+oldstyle_subdirs='${oldstyle_subdirs}'
+symbolic_link='${symbolic_link}'
+program_transform_set='${program_transform_set}'
+program_transform_name='${program_transform_name}'
+dep_host_xmake_file='${dep_host_xmake_file}'
+host_xmake_file='${host_xmake_file}'
+dep_tmake_file='${dep_tmake_file}'
+tmake_file='${tmake_file}'
+thread_file='${thread_file}'
+version='${version}'
+local_prefix='${local_prefix}'
+build_install_headers_dir='${build_install_headers_dir}'
+build_exeext='${build_exeext}'
+gdb_needs_out_file_path='${gdb_needs_out_file_path}'
+SET_MAKE='${SET_MAKE}'
+build_broken_install='${build_broken_install}'
+target_list='${target_list}'
+target_overrides='${target_overrides}'
+host_overrides='${host_overrides}'
+cross_defines='${cross_defines}'
+cross_overrides='${cross_overrides}'
+build_overrides='${build_overrides}'
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+
+. $srcdir/configure.lang
+case x$CONFIG_HEADERS in
+xconfig.h:config.in)
+echo > cstamp-h ;;
+esac
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
diff --git a/gcc/cp/parse.c b/gcc/cp/parse.c
new file mode 100644
index 0000000..9119e64
--- /dev/null
+++ b/gcc/cp/parse.c
@@ -0,0 +1,8338 @@
+
+/*  A Bison parser, made from parse.y with Bison version GNU Bison version 1.24
+  */
+
+#define YYBISON 1  /* Identify Bison output.  */
+
+#define	IDENTIFIER	258
+#define	TYPENAME	259
+#define	SELFNAME	260
+#define	SCSPEC	261
+#define	TYPESPEC	262
+#define	CV_QUALIFIER	263
+#define	CONSTANT	264
+#define	STRING	265
+#define	ELLIPSIS	266
+#define	SIZEOF	267
+#define	ENUM	268
+#define	IF	269
+#define	ELSE	270
+#define	WHILE	271
+#define	DO	272
+#define	FOR	273
+#define	SWITCH	274
+#define	CASE	275
+#define	DEFAULT	276
+#define	BREAK	277
+#define	CONTINUE	278
+#define	RETURN	279
+#define	GOTO	280
+#define	ASM_KEYWORD	281
+#define	GCC_ASM_KEYWORD	282
+#define	TYPEOF	283
+#define	ALIGNOF	284
+#define	SIGOF	285
+#define	ATTRIBUTE	286
+#define	EXTENSION	287
+#define	LABEL	288
+#define	REALPART	289
+#define	IMAGPART	290
+#define	AGGR	291
+#define	VISSPEC	292
+#define	DELETE	293
+#define	NEW	294
+#define	THIS	295
+#define	OPERATOR	296
+#define	CXX_TRUE	297
+#define	CXX_FALSE	298
+#define	NAMESPACE	299
+#define	TYPENAME_KEYWORD	300
+#define	USING	301
+#define	LEFT_RIGHT	302
+#define	TEMPLATE	303
+#define	TYPEID	304
+#define	DYNAMIC_CAST	305
+#define	STATIC_CAST	306
+#define	REINTERPRET_CAST	307
+#define	CONST_CAST	308
+#define	SCOPE	309
+#define	EMPTY	310
+#define	PTYPENAME	311
+#define	NSNAME	312
+#define	THROW	313
+#define	ASSIGN	314
+#define	OROR	315
+#define	ANDAND	316
+#define	MIN_MAX	317
+#define	EQCOMPARE	318
+#define	ARITHCOMPARE	319
+#define	LSHIFT	320
+#define	RSHIFT	321
+#define	POINTSAT_STAR	322
+#define	DOT_STAR	323
+#define	UNARY	324
+#define	PLUSPLUS	325
+#define	MINUSMINUS	326
+#define	HYPERUNARY	327
+#define	PAREN_STAR_PAREN	328
+#define	POINTSAT	329
+#define	TRY	330
+#define	CATCH	331
+#define	TYPENAME_ELLIPSIS	332
+#define	PRE_PARSED_FUNCTION_DECL	333
+#define	EXTERN_LANG_STRING	334
+#define	ALL	335
+#define	PRE_PARSED_CLASS_DECL	336
+#define	DEFARG	337
+#define	DEFARG_MARKER	338
+#define	TYPENAME_DEFN	339
+#define	IDENTIFIER_DEFN	340
+#define	PTYPENAME_DEFN	341
+#define	END_OF_LINE	342
+#define	END_OF_SAVED_INPUT	343
+
+#line 29 "parse.y"
+
+/* Cause the `yydebug' variable to be defined.  */
+#define YYDEBUG 1
+
+#include "config.h"
+
+#include <stdio.h>
+#include <errno.h>
+
+#include "tree.h"
+#include "input.h"
+#include "flags.h"
+#include "lex.h"
+#include "cp-tree.h"
+#include "output.h"
+
+/* Since parsers are distinct for each language, put the language string
+   definition here.  (fnf) */
+char *language_string = "GNU C++";
+
+extern tree void_list_node;
+extern struct obstack permanent_obstack;
+
+#ifndef errno
+extern int errno;
+#endif
+
+extern int end_of_file;
+extern int current_class_depth;
+extern tree last_tree;
+
+/* FSF LOCAL dje prefix attributes */
+extern tree strip_attrs		PROTO((tree));
+/* END FSF LOCAL */
+
+void yyerror ();
+
+/* Like YYERROR but do call yyerror.  */
+#define YYERROR1 { yyerror ("syntax error"); YYERROR; }
+
+#define OP0(NODE) (TREE_OPERAND (NODE, 0))
+#define OP1(NODE) (TREE_OPERAND (NODE, 1))
+
+/* Contains the statement keyword (if/while/do) to include in an
+   error message if the user supplies an empty conditional expression.  */
+static char *cond_stmt_keyword;
+
+/* Nonzero if we have an `extern "C"' acting as an extern specifier.  */
+int have_extern_spec;
+int used_extern_spec;
+
+void yyhook ();
+
+/* Cons up an empty parameter list.  */
+#ifdef __GNUC__
+__inline
+#endif
+static tree
+empty_parms ()
+{
+  tree parms;
+
+  if (strict_prototype
+      /* Only go ahead with using the void list node if we're actually
+	 parsing a class in C++, not a struct in extern "C" mode.  */
+      || (current_class_type != NULL
+	  && current_lang_name == lang_name_cplusplus))
+    parms = void_list_node;
+  else
+    parms = NULL_TREE;
+  return parms;
+}
+
+#line 105 "parse.y"
+typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
+#line 288 "parse.y"
+
+/* List of types and structure classes of the current declaration.  */
+static tree current_declspecs = NULL_TREE;
+/* List of prefix attributes in effect.
+   Prefix attributes are parsed by the reserved_declspecs and declmods
+   rules.  They create a list that contains *both* declspecs and attrs.  */
+/* ??? It is not clear yet that all cases where an attribute can now appear in
+   a declspec list have been updated.  */
+static tree prefix_attributes = NULL_TREE;
+
+/* When defining an aggregate, this is the most recent one being defined.  */
+static tree current_aggr;
+
+/* Tell yyparse how to print a token's value, if yydebug is set.  */
+
+#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
+extern void yyprint ();
+extern tree combine_strings		PROTO((tree));
+
+#ifndef YYLTYPE
+typedef
+  struct yyltype
+    {
+      int timestamp;
+      int first_line;
+      int first_column;
+      int last_line;
+      int last_column;
+      char *text;
+   }
+  yyltype;
+
+#define YYLTYPE yyltype
+#endif
+
+#include <stdio.h>
+
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
+
+
+
+#define	YYFINAL		1459
+#define	YYFLAG		-32768
+#define	YYNTBASE	113
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 343 ? yytranslate[x] : 366)
+
+static const char yytranslate[] = {     0,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,   111,     2,     2,     2,    82,    70,     2,    93,
+   109,    80,    78,    59,    79,    92,    81,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,    62,    60,    74,
+    64,    75,    65,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+    94,     2,   112,    69,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,    58,    68,   110,    88,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
+     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
+    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+    46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+    56,    57,    61,    63,    66,    67,    71,    72,    73,    76,
+    77,    83,    84,    85,    86,    87,    89,    90,    91,    95,
+    96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
+   106,   107,   108
+};
+
+#if YYDEBUG != 0
+static const short yyprhs[] = {     0,
+     0,     1,     3,     4,     7,    10,    12,    13,    14,    15,
+    17,    19,    21,    22,    25,    28,    30,    32,    38,    43,
+    49,    54,    55,    62,    63,    69,    75,    78,    83,    86,
+    89,    93,    97,    99,   101,   104,   107,   109,   112,   113,
+   119,   123,   125,   129,   131,   134,   136,   139,   141,   145,
+   147,   151,   154,   157,   160,   164,   168,   171,   174,   177,
+   180,   183,   185,   187,   189,   190,   192,   195,   196,   198,
+   203,   207,   211,   212,   221,   227,   228,   238,   245,   246,
+   255,   261,   262,   272,   279,   282,   285,   287,   290,   292,
+   299,   304,   311,   316,   319,   321,   324,   327,   329,   332,
+   334,   337,   340,   345,   348,   352,   353,   354,   356,   360,
+   363,   367,   369,   374,   377,   382,   385,   390,   393,   395,
+   397,   399,   401,   403,   405,   407,   409,   411,   413,   415,
+   419,   423,   426,   429,   434,   439,   443,   447,   452,   456,
+   461,   465,   467,   472,   476,   478,   480,   482,   486,   488,
+   490,   492,   494,   496,   498,   500,   502,   504,   506,   510,
+   512,   516,   517,   519,   521,   522,   530,   532,   534,   538,
+   543,   547,   548,   552,   554,   558,   562,   566,   570,   572,
+   574,   576,   579,   582,   585,   588,   591,   594,   597,   602,
+   605,   610,   613,   617,   621,   626,   631,   637,   643,   650,
+   653,   658,   664,   667,   670,   674,   678,   682,   684,   688,
+   691,   695,   700,   702,   705,   711,   713,   717,   721,   725,
+   729,   733,   737,   741,   745,   749,   753,   757,   761,   765,
+   769,   773,   777,   781,   785,   789,   795,   799,   803,   805,
+   808,   812,   814,   816,   818,   820,   822,   824,   826,   828,
+   831,   834,   838,   840,   842,   846,   848,   850,   852,   854,
+   858,   862,   866,   867,   872,   877,   880,   885,   888,   891,
+   893,   898,   900,   908,   916,   924,   932,   937,   942,   945,
+   948,   950,   955,   958,   961,   964,   970,   974,   980,   984,
+   989,   996,   999,  1001,  1004,  1006,  1009,  1011,  1013,  1015,
+  1018,  1019,  1022,  1025,  1029,  1033,  1037,  1040,  1043,  1046,
+  1048,  1050,  1052,  1055,  1058,  1061,  1064,  1066,  1068,  1070,
+  1072,  1075,  1078,  1082,  1086,  1090,  1095,  1097,  1100,  1103,
+  1106,  1108,  1110,  1112,  1115,  1118,  1121,  1123,  1125,  1128,
+  1131,  1135,  1137,  1140,  1142,  1144,  1146,  1151,  1156,  1161,
+  1166,  1168,  1170,  1172,  1174,  1178,  1180,  1184,  1186,  1190,
+  1191,  1196,  1197,  1204,  1208,  1209,  1216,  1220,  1221,  1228,
+  1232,  1233,  1240,  1244,  1245,  1247,  1249,  1252,  1259,  1261,
+  1265,  1266,  1268,  1273,  1280,  1285,  1287,  1289,  1291,  1293,
+  1295,  1299,  1300,  1303,  1305,  1308,  1312,  1317,  1319,  1321,
+  1325,  1330,  1337,  1341,  1347,  1349,  1354,  1358,  1362,  1363,
+  1367,  1371,  1375,  1376,  1379,  1382,  1383,  1391,  1396,  1397,
+  1404,  1408,  1411,  1414,  1418,  1423,  1424,  1425,  1435,  1437,
+  1438,  1440,  1441,  1443,  1445,  1448,  1451,  1454,  1457,  1460,
+  1463,  1467,  1470,  1474,  1475,  1477,  1481,  1484,  1487,  1489,
+  1491,  1492,  1495,  1499,  1501,  1506,  1508,  1512,  1514,  1518,
+  1523,  1528,  1533,  1536,  1539,  1543,  1547,  1549,  1550,  1552,
+  1555,  1560,  1564,  1566,  1569,  1572,  1575,  1578,  1581,  1584,
+  1587,  1589,  1592,  1595,  1598,  1603,  1608,  1611,  1613,  1619,
+  1624,  1626,  1627,  1629,  1633,  1634,  1636,  1640,  1642,  1644,
+  1646,  1648,  1653,  1658,  1663,  1668,  1673,  1677,  1682,  1687,
+  1692,  1697,  1701,  1703,  1707,  1709,  1713,  1716,  1718,  1725,
+  1726,  1729,  1731,  1734,  1735,  1738,  1743,  1748,  1751,  1756,
+  1760,  1764,  1767,  1770,  1774,  1776,  1778,  1781,  1783,  1786,
+  1789,  1794,  1799,  1803,  1807,  1810,  1812,  1816,  1820,  1823,
+  1826,  1830,  1832,  1836,  1840,  1843,  1846,  1850,  1852,  1857,
+  1861,  1866,  1870,  1872,  1875,  1878,  1880,  1883,  1888,  1893,
+  1896,  1898,  1900,  1902,  1904,  1907,  1910,  1913,  1916,  1919,
+  1922,  1924,  1927,  1930,  1934,  1936,  1940,  1943,  1947,  1950,
+  1953,  1957,  1959,  1963,  1968,  1972,  1975,  1978,  1980,  1984,
+  1987,  1990,  1992,  1995,  1999,  2001,  2005,  2007,  2014,  2019,
+  2024,  2028,  2034,  2038,  2042,  2046,  2049,  2051,  2053,  2056,
+  2059,  2062,  2063,  2064,  2065,  2067,  2069,  2072,  2076,  2078,
+  2081,  2082,  2088,  2089,  2090,  2097,  2099,  2100,  2105,  2107,
+  2109,  2111,  2114,  2115,  2116,  2123,  2125,  2126,  2127,  2135,
+  2136,  2137,  2145,  2146,  2147,  2148,  2149,  2164,  2165,  2166,
+  2176,  2177,  2183,  2184,  2192,  2193,  2198,  2201,  2204,  2207,
+  2211,  2218,  2227,  2238,  2251,  2256,  2260,  2263,  2266,  2268,
+  2270,  2271,  2272,  2279,  2280,  2281,  2287,  2289,  2292,  2293,
+  2294,  2295,  2304,  2306,  2308,  2312,  2316,  2319,  2322,  2325,
+  2328,  2331,  2333,  2336,  2337,  2339,  2340,  2342,  2344,  2345,
+  2347,  2349,  2353,  2358,  2360,  2364,  2365,  2367,  2369,  2371,
+  2374,  2377,  2380,  2382,  2384,  2387,  2390,  2393,  2396,  2397,
+  2401,  2403,  2405,  2407,  2410,  2413,  2416,  2421,  2424,  2427,
+  2430,  2433,  2436,  2439,  2441,  2444,  2446,  2449,  2451,  2453,
+  2454,  2455,  2457,  2458,  2463,  2466,  2468,  2470,  2474,  2475,
+  2479,  2483,  2487,  2489,  2492,  2495,  2498,  2501,  2504,  2507,
+  2510,  2513,  2516,  2519,  2522,  2525,  2528,  2531,  2534,  2537,
+  2540,  2543,  2546,  2549,  2552,  2555,  2558,  2562,  2565,  2568,
+  2571,  2574,  2578,  2581,  2584,  2589,  2594,  2598
+};
+
+static const short yyrhs[] = {    -1,
+   114,     0,     0,   115,   121,     0,   114,   121,     0,   114,
+     0,     0,     0,     0,    32,     0,    26,     0,    27,     0,
+     0,   122,   123,     0,   139,   138,     0,   135,     0,   134,
+     0,   120,    93,   190,   109,    60,     0,   128,    58,   116,
+   110,     0,   128,   117,   139,   118,   138,     0,   128,   117,
+   135,   118,     0,     0,    44,   154,    58,   124,   116,   110,
+     0,     0,    44,    58,   125,   116,   110,     0,    44,   154,
+    64,   127,    60,     0,   126,    60,     0,    46,    44,   127,
+    60,     0,   119,   123,     0,    46,   281,     0,    46,   290,
+   281,     0,    46,   290,   182,     0,   182,     0,   281,     0,
+   290,   281,     0,   290,   182,     0,    99,     0,   128,    99,
+     0,     0,    48,    74,   130,   131,    75,     0,    48,    74,
+    75,     0,   133,     0,   131,    59,   133,     0,   239,     0,
+   239,   154,     0,    45,     0,    45,   154,     0,   132,     0,
+   132,    64,   196,     0,   357,     0,   357,    64,   180,     0,
+   129,   123,     0,   129,     1,     0,   207,    60,     0,   200,
+   206,    60,     0,   197,   205,    60,     0,   200,    60,     0,
+   157,    60,     0,   197,    60,     0,     1,    60,     0,     1,
+   110,     0,    60,     0,   191,     0,   150,     0,     0,   149,
+     0,   149,    60,     0,     0,   108,     0,   145,   137,   136,
+   302,     0,   145,   137,   327,     0,   145,   137,     1,     0,
+     0,   286,     5,    93,   141,   348,   109,   269,   360,     0,
+   286,     5,    47,   269,   360,     0,     0,   290,   286,     5,
+    93,   142,   348,   109,   269,   360,     0,   290,   286,     5,
+    47,   269,   360,     0,     0,   286,   159,    93,   143,   348,
+   109,   269,   360,     0,   286,   159,    47,   269,   360,     0,
+     0,   290,   286,   159,    93,   144,   348,   109,   269,   360,
+     0,   290,   286,   159,    47,   269,   360,     0,   197,   194,
+     0,   200,   278,     0,   278,     0,   200,   140,     0,   140,
+     0,     5,    93,   348,   109,   269,   360,     0,     5,    47,
+   269,   360,     0,   159,    93,   348,   109,   269,   360,     0,
+   159,    47,   269,   360,     0,   200,   146,     0,   146,     0,
+   197,   194,     0,   200,   278,     0,   278,     0,   200,   140,
+     0,   140,     0,    24,     3,     0,   148,   224,     0,   148,
+    93,   174,   109,     0,   148,    47,     0,    62,   151,   152,
+     0,     0,     0,   153,     0,   152,    59,   153,     0,   152,
+     1,     0,    93,   174,   109,     0,    47,     0,   155,    93,
+   174,   109,     0,   155,    47,     0,   275,    93,   174,   109,
+     0,   275,    47,     0,   282,    93,   174,   109,     0,   282,
+    47,     0,     3,     0,     4,     0,     5,     0,    56,     0,
+    57,     0,     3,     0,    56,     0,    57,     0,   105,     0,
+   104,     0,   106,     0,    48,   239,   158,     0,    48,   197,
+   194,     0,    48,   278,     0,    48,   140,     0,     6,    48,
+   239,   158,     0,     6,    48,   197,   194,     0,     6,    48,
+   278,     0,     6,    48,   140,     0,    56,    74,   161,   160,
+     0,    56,    74,   160,     0,     4,    74,   161,   160,     0,
+     4,    74,   160,     0,   159,     0,     5,    74,   161,   160,
+     0,     5,    74,   160,     0,    75,     0,    77,     0,   162,
+     0,   161,    59,   162,     0,   196,     0,   180,     0,    79,
+     0,    78,     0,    86,     0,    87,     0,   111,     0,   173,
+     0,   180,     0,    47,     0,    93,   164,   109,     0,    47,
+     0,    93,   168,   109,     0,     0,   168,     0,     1,     0,
+     0,   338,   194,   208,   217,    64,   169,   225,     0,   164,
+     0,   110,     0,   299,   295,   110,     0,   299,   295,     1,
+   110,     0,   299,     1,   110,     0,     0,    58,   172,   170,
+     0,   311,     0,   180,    59,   180,     0,   180,    59,     1,
+     0,   173,    59,   180,     0,   173,    59,     1,     0,   180,
+     0,   173,     0,   185,     0,   119,   179,     0,    80,   179,
+     0,    70,   179,     0,    88,   179,     0,   163,   179,     0,
+    67,   154,     0,    12,   175,     0,    12,    93,   196,   109,
+     0,    29,   175,     0,    29,    93,   196,   109,     0,   187,
+   268,     0,   187,   268,   177,     0,   187,   176,   268,     0,
+   187,   176,   268,   177,     0,   187,    93,   196,   109,     0,
+   187,    93,   196,   109,   177,     0,   187,   176,    93,   196,
+   109,     0,   187,   176,    93,   196,   109,   177,     0,   188,
+   179,     0,   188,    94,   112,   179,     0,   188,    94,   164,
+   112,   179,     0,    34,   179,     0,    35,   179,     0,    93,
+   174,   109,     0,    58,   174,   110,     0,    93,   174,   109,
+     0,    47,     0,    93,   203,   109,     0,    64,   225,     0,
+    93,   196,   109,     0,   178,    93,   196,   109,     0,   175,
+     0,   178,   175,     0,   178,    58,   226,   237,   110,     0,
+   179,     0,   180,    83,   180,     0,   180,    84,   180,     0,
+   180,    78,   180,     0,   180,    79,   180,     0,   180,    80,
+   180,     0,   180,    81,   180,     0,   180,    82,   180,     0,
+   180,    76,   180,     0,   180,    77,   180,     0,   180,    73,
+   180,     0,   180,    74,   180,     0,   180,    75,   180,     0,
+   180,    72,   180,     0,   180,    71,   180,     0,   180,    70,
+   180,     0,   180,    68,   180,     0,   180,    69,   180,     0,
+   180,    67,   180,     0,   180,    66,   180,     0,   180,    65,
+   343,    62,   180,     0,   180,    64,   180,     0,   180,    63,
+   180,     0,    61,     0,    61,   180,     0,    88,   358,   154,
+     0,   365,     0,     3,     0,    56,     0,    57,     0,   181,
+     0,     4,     0,     5,     0,   181,     0,    80,   183,     0,
+    70,   183,     0,    93,   183,   109,     0,   280,     0,   181,
+     0,    93,   183,   109,     0,   181,     0,     9,     0,   189,
+     0,   190,     0,    93,   164,   109,     0,    93,   183,   109,
+     0,    93,     1,   109,     0,     0,    93,   186,   303,   109,
+     0,   185,    93,   174,   109,     0,   185,    47,     0,   185,
+    94,   164,   112,     0,   185,    86,     0,   185,    87,     0,
+    40,     0,     8,    93,   174,   109,     0,   284,     0,    50,
+    74,   196,    75,    93,   164,   109,     0,    51,    74,   196,
+    75,    93,   164,   109,     0,    52,    74,   196,    75,    93,
+   164,   109,     0,    53,    74,   196,    75,    93,   164,   109,
+     0,    49,    93,   164,   109,     0,    49,    93,   196,   109,
+     0,   290,     3,     0,   290,   365,     0,   283,     0,   283,
+    93,   174,   109,     0,   283,    47,     0,   192,   182,     0,
+   192,   283,     0,   192,   182,    93,   174,   109,     0,   192,
+   182,    47,     0,   192,   283,    93,   174,   109,     0,   192,
+   283,    47,     0,   192,    88,     7,    47,     0,   192,     7,
+    54,    88,     7,    47,     0,   192,     1,     0,    39,     0,
+   290,    39,     0,    38,     0,   290,   188,     0,    42,     0,
+    43,     0,    10,     0,   190,    10,     0,     0,   185,    92,
+     0,   185,    91,     0,   203,   205,    60,     0,   197,   205,
+    60,     0,   200,   206,    60,     0,   197,    60,     0,   200,
+    60,     0,   119,   193,     0,   274,     0,   278,     0,    47,
+     0,   195,    47,     0,   201,   293,     0,   270,   293,     0,
+   203,   293,     0,   201,     0,   270,     0,   201,     0,   198,
+     0,   200,   203,     0,   203,   199,     0,   203,   202,   199,
+     0,   200,   203,   199,     0,   200,   203,   202,     0,   200,
+   203,   202,   199,     0,     6,     0,   199,   204,     0,   199,
+     6,     0,   199,   218,     0,   218,     0,   270,     0,     6,
+     0,   200,     8,     0,   200,     6,     0,   200,   218,     0,
+   218,     0,   203,     0,   270,   203,     0,   203,   202,     0,
+   270,   203,   202,     0,   204,     0,   202,   204,     0,   232,
+     0,     7,     0,   275,     0,    28,    93,   164,   109,     0,
+    28,    93,   196,   109,     0,    30,    93,   164,   109,     0,
+    30,    93,   196,   109,     0,     7,     0,     8,     0,   232,
+     0,   209,     0,   205,    59,   211,     0,   213,     0,   206,
+    59,   211,     0,   215,     0,   207,    59,   211,     0,     0,
+   120,    93,   190,   109,     0,     0,   194,   208,   217,    64,
+   210,   225,     0,   194,   208,   217,     0,     0,   194,   208,
+   217,    64,   212,   225,     0,   194,   208,   217,     0,     0,
+   278,   208,   217,    64,   214,   225,     0,   278,   208,   217,
+     0,     0,   278,   208,   217,    64,   216,   225,     0,   278,
+   208,   217,     0,     0,   218,     0,   219,     0,   218,   219,
+     0,    31,    93,    93,   220,   109,   109,     0,   221,     0,
+   220,    59,   221,     0,     0,   222,     0,   222,    93,     3,
+   109,     0,   222,    93,     3,    59,   174,   109,     0,   222,
+    93,   174,   109,     0,   154,     0,     6,     0,     7,     0,
+     8,     0,   154,     0,   223,    59,   154,     0,     0,    64,
+   225,     0,   180,     0,    58,   110,     0,    58,   226,   110,
+     0,    58,   226,    59,   110,     0,     1,     0,   225,     0,
+   226,    59,   225,     0,    94,   180,   112,   225,     0,   226,
+    59,    20,   180,    62,   225,     0,   154,    62,   225,     0,
+   226,    59,   154,    62,   225,     0,    98,     0,   227,   137,
+   136,   302,     0,   227,   137,   327,     0,   227,   137,     1,
+     0,     0,   229,   228,   138,     0,   103,   180,   108,     0,
+   103,     1,   108,     0,     0,   231,   230,     0,   231,     1,
+     0,     0,    13,   154,    58,   233,   266,   238,   110,     0,
+    13,   154,    58,   110,     0,     0,    13,    58,   234,   266,
+   238,   110,     0,    13,    58,   110,     0,    13,   154,     0,
+    13,   288,     0,    45,   286,   154,     0,    45,   290,   286,
+   154,     0,     0,     0,   246,   252,   254,   110,   217,   235,
+   231,   236,   229,     0,   246,     0,     0,    59,     0,     0,
+    59,     0,    36,     0,   239,     6,     0,   239,     7,     0,
+   239,     8,     0,   239,    36,     0,   239,   154,     0,   239,
+   156,     0,   239,   286,   154,     0,   239,   158,     0,   239,
+   286,   158,     0,     0,   240,     0,   241,   243,   247,     0,
+   242,   247,     0,   239,    58,     0,   245,     0,   244,     0,
+     0,    62,   358,     0,    62,   358,   248,     0,   249,     0,
+   248,    59,   358,   249,     0,   250,     0,   251,   358,   250,
+     0,   275,     0,    45,   286,   154,     0,    45,   290,   286,
+   154,     0,    30,    93,   164,   109,     0,    30,    93,   196,
+   109,     0,    37,   358,     0,     6,   358,     0,   251,    37,
+   358,     0,   251,     6,   358,     0,    58,     0,     0,   253,
+     0,   253,   255,     0,   254,    37,    62,   255,     0,   254,
+    37,    62,     0,   256,     0,   255,   256,     0,   257,    60,
+     0,   257,   110,     0,   147,    62,     0,   147,    95,     0,
+   147,    24,     0,   147,    58,     0,    60,     0,   119,   256,
+     0,   197,   258,     0,   200,   259,     0,   278,   208,   217,
+   224,     0,   140,   208,   217,   224,     0,    62,   180,     0,
+     1,     0,   200,   146,   208,   217,   224,     0,   146,   208,
+   217,   224,     0,   126,     0,     0,   260,     0,   258,    59,
+   261,     0,     0,   263,     0,   259,    59,   265,     0,   262,
+     0,   263,     0,   264,     0,   265,     0,   274,   208,   217,
+   224,     0,     4,    62,   180,   217,     0,   278,   208,   217,
+   224,     0,   140,   208,   217,   224,     0,     3,    62,   180,
+   217,     0,    62,   180,   217,     0,   274,   208,   217,   224,
+     0,     4,    62,   180,   217,     0,   278,   208,   217,   224,
+     0,     3,    62,   180,   217,     0,    62,   180,   217,     0,
+   267,     0,   266,    59,   267,     0,   154,     0,   154,    64,
+   180,     0,   338,   291,     0,   338,     0,    93,   196,   109,
+    94,   164,   112,     0,     0,   269,     8,     0,     8,     0,
+   270,     8,     0,     0,   271,   164,     0,   271,    93,   174,
+   109,     0,   271,    93,   348,   109,     0,   271,    47,     0,
+   271,    93,     1,   109,     0,    80,   270,   274,     0,    70,
+   270,   274,     0,    80,   274,     0,    70,   274,     0,   289,
+   269,   274,     0,   277,     0,   285,     0,   290,   285,     0,
+   276,     0,   290,   276,     0,   286,   285,     0,   277,   273,
+   269,   360,     0,   277,    94,   272,   112,     0,   277,    94,
+   112,     0,    93,   274,   109,     0,   286,   285,     0,   285,
+     0,    80,   270,   278,     0,    70,   270,   278,     0,    80,
+   278,     0,    70,   278,     0,   289,   269,   278,     0,   184,
+     0,    80,   270,   278,     0,    70,   270,   278,     0,    80,
+   279,     0,    70,   279,     0,   289,   269,   278,     0,   280,
+     0,   184,   273,   269,   360,     0,    93,   279,   109,     0,
+   184,    94,   272,   112,     0,   184,    94,   112,     0,   282,
+     0,   286,   182,     0,   286,   181,     0,   282,     0,   290,
+   282,     0,   203,    93,   174,   109,     0,   203,    93,   183,
+   109,     0,   203,   195,     0,     4,     0,     5,     0,   158,
+     0,   287,     0,   286,   287,     0,     4,    54,     0,     5,
+    54,     0,    57,    54,     0,   158,    54,     0,   290,   285,
+     0,   276,     0,   290,   276,     0,   286,    80,     0,   290,
+   286,    80,     0,    54,     0,    80,   269,   291,     0,    80,
+   269,     0,    70,   269,   291,     0,    70,   269,     0,   289,
+   269,     0,   289,   269,   291,     0,   292,     0,    94,   164,
+   112,     0,   292,    94,   272,   112,     0,    80,   270,   293,
+     0,    80,   293,     0,    80,   270,     0,    80,     0,    70,
+   270,   293,     0,    70,   293,     0,    70,   270,     0,    70,
+     0,   289,   269,     0,   289,   269,   293,     0,   294,     0,
+    93,   293,   109,     0,    90,     0,   294,    93,   348,   109,
+   269,   360,     0,   294,    47,   269,   360,     0,   294,    94,
+   272,   112,     0,   294,    94,   112,     0,    93,   349,   109,
+   269,   360,     0,   178,   269,   360,     0,   195,   269,   360,
+     0,    94,   272,   112,     0,    94,   112,     0,   310,     0,
+   296,     0,   295,   310,     0,   295,   296,     0,     1,    60,
+     0,     0,     0,     0,   300,     0,   301,     0,   300,   301,
+     0,    33,   223,    60,     0,   303,     0,     1,   303,     0,
+     0,    58,   304,   297,   170,   298,     0,     0,     0,    14,
+   306,   297,   166,   307,   308,     0,   303,     0,     0,   297,
+   309,   311,   298,     0,   303,     0,   311,     0,   193,     0,
+   164,    60,     0,     0,     0,   305,    15,   312,   308,   313,
+   298,     0,   305,     0,     0,     0,    16,   314,   297,   166,
+   315,   171,   298,     0,     0,     0,    17,   316,   308,    16,
+   317,   165,    60,     0,     0,     0,     0,     0,    18,   318,
+    93,   341,   319,   297,   167,    60,   320,   343,   109,   321,
+   171,   298,     0,     0,     0,    19,   297,    93,   168,   109,
+   322,   308,   323,   298,     0,     0,    20,   180,    62,   324,
+   310,     0,     0,    20,   180,    11,   180,    62,   325,   310,
+     0,     0,    21,    62,   326,   310,     0,    22,    60,     0,
+    23,    60,     0,    24,    60,     0,    24,   164,    60,     0,
+   120,   342,    93,   190,   109,    60,     0,   120,   342,    93,
+   190,    62,   344,   109,    60,     0,   120,   342,    93,   190,
+    62,   344,    62,   344,   109,    60,     0,   120,   342,    93,
+   190,    62,   344,    62,   344,    62,   347,   109,    60,     0,
+    25,    80,   164,    60,     0,    25,   154,    60,     0,   340,
+   310,     0,   340,   110,     0,    60,     0,   330,     0,     0,
+     0,    95,   328,   136,   302,   329,   333,     0,     0,     0,
+    95,   331,   303,   332,   333,     0,   334,     0,   333,   334,
+     0,     0,     0,     0,    96,   335,   297,   339,   336,   303,
+   337,   298,     0,   201,     0,   270,     0,    93,    11,   109,
+     0,    93,   357,   109,     0,     3,    62,     0,    56,    62,
+     0,     4,    62,     0,     5,    62,     0,   343,    60,     0,
+   193,     0,    58,   170,     0,     0,     8,     0,     0,   164,
+     0,     1,     0,     0,   345,     0,   346,     0,   345,    59,
+   346,     0,    10,    93,   164,   109,     0,    10,     0,   347,
+    59,    10,     0,     0,   349,     0,   196,     0,   353,     0,
+   354,    11,     0,   353,    11,     0,   196,    11,     0,    11,
+     0,    97,     0,   353,    97,     0,   196,    97,     0,   353,
+    62,     0,   196,    62,     0,     0,    64,   351,   352,     0,
+   102,     0,   225,     0,   355,     0,   357,   350,     0,   354,
+   356,     0,   354,   359,     0,   354,   359,    64,   225,     0,
+   353,    59,     0,   196,    59,     0,   198,   194,     0,   201,
+   194,     0,   203,   194,     0,   198,   293,     0,   198,     0,
+   200,   278,     0,   357,     0,   357,   350,     0,   355,     0,
+   196,     0,     0,     0,   278,     0,     0,    61,    93,   362,
+   109,     0,    61,    47,     0,   196,     0,   361,     0,   362,
+    59,   361,     0,     0,    80,   269,   363,     0,    70,   269,
+   363,     0,   289,   269,   363,     0,    41,     0,   364,    80,
+     0,   364,    81,     0,   364,    82,     0,   364,    78,     0,
+   364,    79,     0,   364,    70,     0,   364,    68,     0,   364,
+    69,     0,   364,    88,     0,   364,    59,     0,   364,    73,
+     0,   364,    74,     0,   364,    75,     0,   364,    72,     0,
+   364,    63,     0,   364,    64,     0,   364,    76,     0,   364,
+    77,     0,   364,    86,     0,   364,    87,     0,   364,    67,
+     0,   364,    66,     0,   364,   111,     0,   364,    65,    62,
+     0,   364,    71,     0,   364,    91,     0,   364,    83,     0,
+   364,    47,     0,   364,    94,   112,     0,   364,    39,     0,
+   364,    38,     0,   364,    39,    94,   112,     0,   364,    38,
+    94,   112,     0,   364,   338,   363,     0,   364,     1,     0
+};
+
+#endif
+
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+   309,   311,   325,   328,   329,   333,   335,   338,   343,   347,
+   353,   355,   358,   361,   365,   368,   370,   372,   375,   377,
+   380,   383,   385,   387,   389,   391,   393,   395,   401,   405,
+   408,   410,   414,   416,   417,   419,   423,   426,   432,   435,
+   437,   441,   444,   448,   461,   463,   465,   469,   479,   481,
+   483,   487,   491,   496,   499,   501,   505,   507,   508,   515,
+   516,   517,   520,   523,   527,   529,   530,   533,   535,   538,
+   541,   543,   547,   557,   559,   569,   578,   580,   590,   599,
+   601,   611,   620,   622,   634,   642,   649,   654,   661,   668,
+   671,   673,   675,   681,   691,   693,   696,   699,   701,   704,
+   708,   717,   720,   722,   726,   739,   759,   762,   764,   765,
+   768,   775,   781,   783,   785,   787,   790,   794,   800,   802,
+   803,   804,   805,   808,   810,   811,   814,   816,   817,   820,
+   823,   826,   828,   830,   832,   835,   837,   845,   852,   858,
+   864,   870,   873,   880,   888,   890,   898,   901,   905,   908,
+   911,   914,   916,   918,   920,   924,   927,   930,   935,   939,
+   944,   948,   951,   953,   957,   977,   984,   987,   989,   990,
+   991,   994,  1005,  1014,  1018,  1022,  1025,  1027,  1031,  1034,
+  1037,  1041,  1044,  1046,  1048,  1050,  1057,  1068,  1070,  1072,
+  1074,  1080,  1083,  1086,  1089,  1092,  1096,  1099,  1102,  1106,
+  1108,  1112,  1116,  1118,  1122,  1125,  1132,  1135,  1137,  1145,
+  1154,  1160,  1167,  1169,  1171,  1184,  1187,  1189,  1191,  1193,
+  1195,  1197,  1199,  1201,  1203,  1205,  1207,  1209,  1211,  1213,
+  1215,  1217,  1219,  1221,  1223,  1225,  1227,  1231,  1233,  1235,
+  1252,  1255,  1256,  1257,  1258,  1261,  1263,  1264,  1267,  1269,
+  1271,  1273,  1277,  1279,  1280,  1284,  1292,  1293,  1294,  1302,
+  1310,  1318,  1320,  1328,  1349,  1356,  1363,  1365,  1374,  1379,
+  1402,  1446,  1447,  1451,  1455,  1459,  1463,  1465,  1469,  1471,
+  1479,  1481,  1486,  1492,  1494,  1499,  1514,  1529,  1540,  1552,
+  1560,  1569,  1613,  1616,  1620,  1623,  1627,  1630,  1635,  1637,
+  1641,  1654,  1657,  1664,  1671,  1676,  1678,  1683,  1685,  1692,
+  1694,  1698,  1702,  1708,  1712,  1715,  1718,  1721,  1731,  1733,
+  1736,  1740,  1743,  1746,  1749,  1752,  1758,  1764,  1766,  1771,
+  1773,  1782,  1785,  1787,  1790,  1796,  1798,  1808,  1812,  1815,
+  1818,  1823,  1826,  1834,  1836,  1838,  1840,  1843,  1846,  1861,
+  1880,  1883,  1885,  1888,  1890,  1893,  1895,  1898,  1900,  1903,
+  1906,  1910,  1929,  1931,  1951,  1957,  1958,  1964,  1973,  1975,
+  1985,  1994,  1996,  2008,  2011,  2015,  2018,  2022,  2027,  2030,
+  2034,  2037,  2039,  2041,  2043,  2050,  2052,  2053,  2054,  2058,
+  2061,  2065,  2068,  2074,  2076,  2079,  2082,  2085,  2091,  2094,
+  2097,  2099,  2101,  2103,  2107,  2113,  2121,  2123,  2127,  2129,
+  2134,  2137,  2140,  2142,  2144,  2148,  2152,  2157,  2161,  2164,
+  2169,  2173,  2176,  2179,  2182,  2186,  2221,  2227,  2233,  2245,
+  2247,  2250,  2252,  2257,  2259,  2261,  2263,  2265,  2269,  2274,
+  2279,  2294,  2296,  2300,  2305,  2308,  2315,  2343,  2349,  2351,
+  2354,  2357,  2359,  2363,  2365,  2369,  2395,  2424,  2426,  2428,
+  2430,  2451,  2474,  2476,  2480,  2506,  2515,  2598,  2605,  2608,
+  2616,  2627,  2636,  2640,  2655,  2658,  2663,  2665,  2667,  2669,
+  2671,  2673,  2678,  2684,  2686,  2689,  2692,  2694,  2705,  2710,
+  2713,  2719,  2722,  2723,  2734,  2737,  2738,  2749,  2751,  2754,
+  2756,  2759,  2766,  2774,  2781,  2787,  2793,  2801,  2805,  2810,
+  2814,  2817,  2826,  2828,  2832,  2835,  2840,  2844,  2849,  2859,
+  2862,  2866,  2870,  2878,  2883,  2889,  2892,  2894,  2896,  2902,
+  2905,  2907,  2909,  2911,  2915,  2918,  2939,  2947,  2948,  2952,
+  2957,  2960,  2962,  2964,  2966,  2970,  2976,  2979,  2981,  2983,
+  2985,  2989,  2992,  2995,  2997,  2999,  3001,  3005,  3008,  3011,
+  3013,  3015,  3017,  3026,  3032,  3038,  3040,  3044,  3047,  3049,
+  3053,  3055,  3056,  3059,  3061,  3067,  3082,  3088,  3098,  3112,
+  3121,  3122,  3126,  3129,  3135,  3141,  3144,  3146,  3148,  3150,
+  3154,  3158,  3162,  3165,  3170,  3173,  3175,  3177,  3179,  3181,
+  3183,  3185,  3187,  3191,  3195,  3199,  3203,  3204,  3206,  3208,
+  3210,  3212,  3214,  3216,  3218,  3220,  3228,  3230,  3231,  3232,
+  3235,  3243,  3248,  3255,  3257,  3262,  3264,  3267,  3281,  3284,
+  3287,  3296,  3308,  3319,  3339,  3349,  3352,  3360,  3372,  3375,
+  3378,  3381,  3397,  3400,  3411,  3412,  3416,  3431,  3450,  3462,
+  3476,  3490,  3503,  3522,  3540,  3559,  3567,  3588,  3606,  3619,
+  3620,  3623,  3623,  3626,  3626,  3629,  3629,  3635,  3641,  3644,
+  3649,  3656,  3665,  3674,  3683,  3691,  3704,  3706,  3710,  3712,
+  3715,  3722,  3725,  3733,  3749,  3760,  3772,  3774,  3777,  3787,
+  3797,  3808,  3810,  3812,  3815,  3832,  3838,  3846,  3848,  3850,
+  3854,  3857,  3858,  3866,  3870,  3874,  3877,  3878,  3884,  3887,
+  3890,  3892,  3896,  3901,  3904,  3914,  3919,  3920,  3928,  3934,
+  3939,  3943,  3948,  3952,  3956,  3960,  3965,  3976,  3990,  3994,
+  3997,  3999,  4003,  4007,  4010,  4013,  4015,  4019,  4021,  4028,
+  4035,  4038,  4041,  4045,  4049,  4055,  4059,  4064,  4066,  4069,
+  4074,  4080,  4090,  4093,  4095,  4099,  4104,  4106,  4113,  4116,
+  4118,  4120,  4126,  4131,  4134,  4136,  4138,  4140,  4142,  4144,
+  4146,  4148,  4150,  4152,  4154,  4156,  4158,  4160,  4162,  4164,
+  4166,  4168,  4170,  4172,  4174,  4176,  4178,  4180,  4182,  4184,
+  4186,  4188,  4190,  4192,  4194,  4196,  4199,  4201
+};
+
+static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER",
+"TYPENAME","SELFNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT","STRING",
+"ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
+"BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","GCC_ASM_KEYWORD","TYPEOF",
+"ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","AGGR",
+"VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE",
+"TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST",
+"REINTERPRET_CAST","CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','",
+"';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
+"EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
+"'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY",
+"PAREN_STAR_PAREN","POINTSAT","'.'","'('","'['","TRY","CATCH","TYPENAME_ELLIPSIS",
+"PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
+"DEFARG","DEFARG_MARKER","TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN",
+"END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'","program","extdefs",
+"@1","extdefs_opt",".hush_warning",".warning_ok","extension","asm_keyword","lang_extdef",
+"@2","extdef","@3","@4","using_decl","any_id","extern_lang_string","template_header",
+"@5","template_parm_list","template_type_parm","template_parm","template_def",
+"datadef","ctor_initializer_opt","maybe_return_init","eat_saved_input","fndef",
+"constructor_declarator","@6","@7","@8","@9","fn.def1","component_constructor_declarator",
+"fn.def2","return_id","return_init","base_init",".set_base_init","member_init_list",
+"member_init","identifier","notype_identifier","identifier_defn","explicit_instantiation",
+"template_type","self_template_type","template_close_bracket","template_arg_list",
+"template_arg","unop","expr","paren_expr_or_null","paren_cond_or_null","xcond",
+"condition","@10","compstmtend","already_scoped_stmt","@11","nontrivial_exprlist",
+"nonnull_exprlist","unary_expr","new_placement","new_initializer","regcast_or_absdcl",
+"cast_expr","expr_no_commas","notype_unqualified_id","unqualified_id","expr_or_declarator",
+"direct_notype_declarator","primary","@12","new","delete","boolean.literal",
+"string","nodecls","object","decl","declarator","fcast_or_absdcl","type_id",
+"typed_declspecs","typed_declspecs1","reserved_declspecs","declmods","typed_typespecs",
+"reserved_typespecquals","typespec","typespecqual_reserved","initdecls","notype_initdecls",
+"nomods_initdecls","maybeasm","initdcl0","@13","initdcl","@14","notype_initdcl0",
+"@15","nomods_initdcl0","@16","maybe_attribute","attributes","attribute","attribute_list",
+"attrib","any_word","identifiers_or_typenames","maybe_init","init","initlist",
+"fn.defpen","pending_inline","pending_inlines","defarg_again","pending_defargs",
+"structsp","@17","@18","@19","@20","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
+"named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
+"do_xref_defn","named_class_head","unnamed_class_head","class_head","maybe_base_class_list",
+"base_class_list","base_class","base_class.1","base_class_access_list","left_curly",
+"self_reference","opt.component_decl_list","component_decl_list","component_decl",
+"component_decl_1","components","notype_components","component_declarator0",
+"component_declarator","after_type_component_declarator0","notype_component_declarator0",
+"after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
+"new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
+"maybe_parmlist","after_type_declarator","complete_type_name","nested_type",
+"direct_after_type_declarator","notype_declarator","complex_notype_declarator",
+"complex_direct_notype_declarator","qualified_id","notype_qualified_id","overqualified_id",
+"functional_cast","type_name","nested_name_specifier","nested_name_specifier_1",
+"complex_type_name","ptr_to_mem","global_scope","new_declarator","direct_new_declarator",
+"absdcl","direct_abstract_declarator","stmts","errstmt",".pushlevel",".poplevel",
+"maybe_label_decls","label_decls","label_decl","compstmt_or_error","compstmt",
+"@21","simple_if","@22","@23","implicitly_scoped_stmt","@24","stmt","simple_stmt",
+"@25","@26","@27","@28","@29","@30","@31","@32","@33","@34","@35","@36","@37",
+"@38","@39","function_try_block","@40","@41","try_block","@42","@43","handler_seq",
+"handler","@44","@45","@46","type_specifier_seq","handler_args","label_colon",
+"for.init.statement","maybe_cv_qualifier","xexpr","asm_operands","nonnull_asm_operands",
+"asm_operand","asm_clobbers","parmlist","complex_parmlist","defarg","@47","defarg1",
+"parms","parms_comma","named_parm","full_parm","parm","see_typename","bad_parm",
+"exception_specification_opt","ansi_raise_identifier","ansi_raise_identifiers",
+"conversion_declarator","operator","operator_name",""
+};
+#endif
+
+static const short yyr1[] = {     0,
+   113,   113,   115,   114,   114,   116,   116,   117,   118,   119,
+   120,   120,   122,   121,   123,   123,   123,   123,   123,   123,
+   123,   124,   123,   125,   123,   123,   123,   123,   123,   126,
+   126,   126,   127,   127,   127,   127,   128,   128,   130,   129,
+   129,   131,   131,   132,   132,   132,   132,   133,   133,   133,
+   133,   134,   134,   135,   135,   135,   135,   135,   135,   135,
+   135,   135,   136,   136,   137,   137,   137,   138,   138,   139,
+   139,   139,   141,   140,   140,   142,   140,   140,   143,   140,
+   140,   144,   140,   140,   145,   145,   145,   145,   145,   146,
+   146,   146,   146,   147,   147,   147,   147,   147,   147,   147,
+   148,   149,   149,   149,   150,   151,   152,   152,   152,   152,
+   153,   153,   153,   153,   153,   153,   153,   153,   154,   154,
+   154,   154,   154,   155,   155,   155,   156,   156,   156,   157,
+   157,   157,   157,   157,   157,   157,   157,   158,   158,   158,
+   158,   158,   159,   159,   160,   160,   161,   161,   162,   162,
+   163,   163,   163,   163,   163,   164,   164,   165,   165,   166,
+   166,   167,   167,   167,   169,   168,   168,   170,   170,   170,
+   170,   172,   171,   171,   173,   173,   173,   173,   174,   174,
+   175,   175,   175,   175,   175,   175,   175,   175,   175,   175,
+   175,   175,   175,   175,   175,   175,   175,   175,   175,   175,
+   175,   175,   175,   175,   176,   176,   177,   177,   177,   177,
+   178,   178,   179,   179,   179,   180,   180,   180,   180,   180,
+   180,   180,   180,   180,   180,   180,   180,   180,   180,   180,
+   180,   180,   180,   180,   180,   180,   180,   180,   180,   180,
+   181,   181,   181,   181,   181,   182,   182,   182,   183,   183,
+   183,   183,   184,   184,   184,   185,   185,   185,   185,   185,
+   185,   185,   186,   185,   185,   185,   185,   185,   185,   185,
+   185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
+   185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
+   185,   185,   187,   187,   188,   188,   189,   189,   190,   190,
+   191,   192,   192,   193,   193,   193,   193,   193,   193,   194,
+   194,   195,   195,   196,   196,   196,   196,   196,   197,   197,
+   198,   198,   198,   198,   198,   198,   199,   199,   199,   199,
+   199,   200,   200,   200,   200,   200,   200,   201,   201,   201,
+   201,   202,   202,   203,   203,   203,   203,   203,   203,   203,
+   204,   204,   204,   205,   205,   206,   206,   207,   207,   208,
+   208,   210,   209,   209,   212,   211,   211,   214,   213,   213,
+   216,   215,   215,   217,   217,   218,   218,   219,   220,   220,
+   221,   221,   221,   221,   221,   222,   222,   222,   222,   223,
+   223,   224,   224,   225,   225,   225,   225,   225,   226,   226,
+   226,   226,   226,   226,   227,   228,   228,   228,   229,   229,
+   230,   230,   231,   231,   231,   233,   232,   232,   234,   232,
+   232,   232,   232,   232,   232,   235,   236,   232,   232,   237,
+   237,   238,   238,   239,   239,   239,   239,   239,   240,   241,
+   242,   242,   242,   243,   244,   244,   244,   245,   246,   246,
+   247,   247,   247,   248,   248,   249,   249,   250,   250,   250,
+   250,   250,   251,   251,   251,   251,   252,   253,   254,   254,
+   254,   254,   255,   255,   256,   256,   256,   256,   256,   256,
+   256,   256,   257,   257,   257,   257,   257,   257,   257,   257,
+   257,   258,   258,   258,   259,   259,   259,   260,   260,   261,
+   261,   262,   262,   263,   263,   263,   263,   264,   264,   265,
+   265,   265,   266,   266,   267,   267,   268,   268,   268,   269,
+   269,   270,   270,   271,   272,   273,   273,   273,   273,   274,
+   274,   274,   274,   274,   274,   275,   275,   275,   275,   276,
+   277,   277,   277,   277,   277,   277,   278,   278,   278,   278,
+   278,   278,   279,   279,   279,   279,   279,   279,   280,   280,
+   280,   280,   280,   281,   282,   283,   283,   284,   284,   284,
+   285,   285,   285,   286,   286,   287,   287,   287,   287,   288,
+   288,   288,   289,   289,   290,   291,   291,   291,   291,   291,
+   291,   291,   292,   292,   293,   293,   293,   293,   293,   293,
+   293,   293,   293,   293,   293,   294,   294,   294,   294,   294,
+   294,   294,   294,   294,   294,   294,   295,   295,   295,   295,
+   296,   297,   298,   299,   299,   300,   300,   301,   302,   302,
+   304,   303,   306,   307,   305,   308,   309,   308,   310,   310,
+   311,   311,   312,   313,   311,   311,   314,   315,   311,   316,
+   317,   311,   318,   319,   320,   321,   311,   322,   323,   311,
+   324,   311,   325,   311,   326,   311,   311,   311,   311,   311,
+   311,   311,   311,   311,   311,   311,   311,   311,   311,   311,
+   328,   329,   327,   331,   332,   330,   333,   333,   335,   336,
+   337,   334,   338,   338,   339,   339,   340,   340,   340,   340,
+   341,   341,   341,   342,   342,   343,   343,   343,   344,   344,
+   345,   345,   346,   347,   347,   348,   348,   348,   349,   349,
+   349,   349,   349,   349,   349,   349,   349,   349,   351,   350,
+   352,   352,   353,   353,   353,   353,   353,   354,   354,   355,
+   355,   355,   355,   355,   355,   356,   356,   357,   357,   358,
+   359,   359,   360,   360,   360,   361,   362,   362,   363,   363,
+   363,   363,   364,   365,   365,   365,   365,   365,   365,   365,
+   365,   365,   365,   365,   365,   365,   365,   365,   365,   365,
+   365,   365,   365,   365,   365,   365,   365,   365,   365,   365,
+   365,   365,   365,   365,   365,   365,   365,   365
+};
+
+static const short yyr2[] = {     0,
+     0,     1,     0,     2,     2,     1,     0,     0,     0,     1,
+     1,     1,     0,     2,     2,     1,     1,     5,     4,     5,
+     4,     0,     6,     0,     5,     5,     2,     4,     2,     2,
+     3,     3,     1,     1,     2,     2,     1,     2,     0,     5,
+     3,     1,     3,     1,     2,     1,     2,     1,     3,     1,
+     3,     2,     2,     2,     3,     3,     2,     2,     2,     2,
+     2,     1,     1,     1,     0,     1,     2,     0,     1,     4,
+     3,     3,     0,     8,     5,     0,     9,     6,     0,     8,
+     5,     0,     9,     6,     2,     2,     1,     2,     1,     6,
+     4,     6,     4,     2,     1,     2,     2,     1,     2,     1,
+     2,     2,     4,     2,     3,     0,     0,     1,     3,     2,
+     3,     1,     4,     2,     4,     2,     4,     2,     1,     1,
+     1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
+     3,     2,     2,     4,     4,     3,     3,     4,     3,     4,
+     3,     1,     4,     3,     1,     1,     1,     3,     1,     1,
+     1,     1,     1,     1,     1,     1,     1,     1,     3,     1,
+     3,     0,     1,     1,     0,     7,     1,     1,     3,     4,
+     3,     0,     3,     1,     3,     3,     3,     3,     1,     1,
+     1,     2,     2,     2,     2,     2,     2,     2,     4,     2,
+     4,     2,     3,     3,     4,     4,     5,     5,     6,     2,
+     4,     5,     2,     2,     3,     3,     3,     1,     3,     2,
+     3,     4,     1,     2,     5,     1,     3,     3,     3,     3,
+     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
+     3,     3,     3,     3,     3,     5,     3,     3,     1,     2,
+     3,     1,     1,     1,     1,     1,     1,     1,     1,     2,
+     2,     3,     1,     1,     3,     1,     1,     1,     1,     3,
+     3,     3,     0,     4,     4,     2,     4,     2,     2,     1,
+     4,     1,     7,     7,     7,     7,     4,     4,     2,     2,
+     1,     4,     2,     2,     2,     5,     3,     5,     3,     4,
+     6,     2,     1,     2,     1,     2,     1,     1,     1,     2,
+     0,     2,     2,     3,     3,     3,     2,     2,     2,     1,
+     1,     1,     2,     2,     2,     2,     1,     1,     1,     1,
+     2,     2,     3,     3,     3,     4,     1,     2,     2,     2,
+     1,     1,     1,     2,     2,     2,     1,     1,     2,     2,
+     3,     1,     2,     1,     1,     1,     4,     4,     4,     4,
+     1,     1,     1,     1,     3,     1,     3,     1,     3,     0,
+     4,     0,     6,     3,     0,     6,     3,     0,     6,     3,
+     0,     6,     3,     0,     1,     1,     2,     6,     1,     3,
+     0,     1,     4,     6,     4,     1,     1,     1,     1,     1,
+     3,     0,     2,     1,     2,     3,     4,     1,     1,     3,
+     4,     6,     3,     5,     1,     4,     3,     3,     0,     3,
+     3,     3,     0,     2,     2,     0,     7,     4,     0,     6,
+     3,     2,     2,     3,     4,     0,     0,     9,     1,     0,
+     1,     0,     1,     1,     2,     2,     2,     2,     2,     2,
+     3,     2,     3,     0,     1,     3,     2,     2,     1,     1,
+     0,     2,     3,     1,     4,     1,     3,     1,     3,     4,
+     4,     4,     2,     2,     3,     3,     1,     0,     1,     2,
+     4,     3,     1,     2,     2,     2,     2,     2,     2,     2,
+     1,     2,     2,     2,     4,     4,     2,     1,     5,     4,
+     1,     0,     1,     3,     0,     1,     3,     1,     1,     1,
+     1,     4,     4,     4,     4,     4,     3,     4,     4,     4,
+     4,     3,     1,     3,     1,     3,     2,     1,     6,     0,
+     2,     1,     2,     0,     2,     4,     4,     2,     4,     3,
+     3,     2,     2,     3,     1,     1,     2,     1,     2,     2,
+     4,     4,     3,     3,     2,     1,     3,     3,     2,     2,
+     3,     1,     3,     3,     2,     2,     3,     1,     4,     3,
+     4,     3,     1,     2,     2,     1,     2,     4,     4,     2,
+     1,     1,     1,     1,     2,     2,     2,     2,     2,     2,
+     1,     2,     2,     3,     1,     3,     2,     3,     2,     2,
+     3,     1,     3,     4,     3,     2,     2,     1,     3,     2,
+     2,     1,     2,     3,     1,     3,     1,     6,     4,     4,
+     3,     5,     3,     3,     3,     2,     1,     1,     2,     2,
+     2,     0,     0,     0,     1,     1,     2,     3,     1,     2,
+     0,     5,     0,     0,     6,     1,     0,     4,     1,     1,
+     1,     2,     0,     0,     6,     1,     0,     0,     7,     0,
+     0,     7,     0,     0,     0,     0,    14,     0,     0,     9,
+     0,     5,     0,     7,     0,     4,     2,     2,     2,     3,
+     6,     8,    10,    12,     4,     3,     2,     2,     1,     1,
+     0,     0,     6,     0,     0,     5,     1,     2,     0,     0,
+     0,     8,     1,     1,     3,     3,     2,     2,     2,     2,
+     2,     1,     2,     0,     1,     0,     1,     1,     0,     1,
+     1,     3,     4,     1,     3,     0,     1,     1,     1,     2,
+     2,     2,     1,     1,     2,     2,     2,     2,     0,     3,
+     1,     1,     1,     2,     2,     2,     4,     2,     2,     2,
+     2,     2,     2,     1,     2,     1,     2,     1,     1,     0,
+     0,     1,     0,     4,     2,     1,     1,     3,     0,     3,
+     3,     3,     1,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     3,     2,     2,     2,
+     2,     3,     2,     2,     4,     4,     3,     2
+};
+
+static const short yydefact[] = {     3,
+    13,    13,     5,     0,     4,     0,   243,   571,   572,   333,
+   345,   522,     0,    11,    12,     0,     0,     0,    10,   434,
+   763,     0,     0,     0,     0,   585,   244,   245,    62,     0,
+     0,   750,     0,    37,     0,     0,    14,     0,     8,     0,
+    17,    16,    68,    89,    65,     0,   573,   142,   254,   552,
+     0,   320,     0,   319,   338,     0,   358,   337,   376,   344,
+     0,   445,   444,   451,   450,   449,   429,   332,   346,   538,
+    87,   253,   563,   536,     0,   574,   520,     0,     0,   242,
+    60,    61,   576,     0,   577,     0,     0,   119,   120,   121,
+   122,   123,   419,   422,     0,   581,     0,   423,     0,     0,
+     0,     0,   120,   121,   122,   123,    24,     0,     0,     0,
+     0,     0,     0,     0,     0,    30,     0,     0,   333,    39,
+   133,     0,     0,     0,   132,     0,   578,     0,   550,     0,
+     0,     0,   549,     0,     0,     0,     0,   254,     0,   524,
+     0,   253,   520,    29,     0,    27,     3,    38,     0,    53,
+    52,    69,    15,     0,     0,   392,    66,    58,   579,   524,
+     0,   520,    59,     0,     0,     0,    85,     0,   354,   310,
+   535,   311,   546,     0,   520,   335,   334,    57,    88,   321,
+     0,   356,   336,    86,   327,   351,   352,   322,   340,   342,
+   331,   353,     0,    54,   377,   435,   436,   437,   438,   448,
+   128,   127,   129,   439,   440,   442,     0,   451,   750,   447,
+   467,   468,   523,   339,     0,     0,   374,   572,   583,   142,
+   565,   540,   575,     0,   539,   537,     0,   798,   794,   793,
+   791,   773,   778,   779,     0,   785,   784,   770,   771,   769,
+   788,   777,   774,   775,   776,   780,   781,   767,   768,   764,
+   765,   766,   790,   782,   783,   772,   789,     0,   786,   693,
+   338,   694,   759,   522,   257,   299,     0,     0,     0,     0,
+   295,   293,   270,   297,   298,     0,     0,     0,     0,     0,
+   239,     0,     0,   145,   146,   152,   151,     0,   153,   154,
+     0,     0,   155,     0,   141,     0,   147,     0,   213,     0,
+   216,   150,   256,   181,     0,     0,   258,   259,     0,   149,
+   317,   338,   318,   566,   281,   272,     0,     0,   144,     0,
+   137,     0,     0,   136,   421,     0,   416,   582,   580,     0,
+   156,   157,     0,     0,     0,   381,     3,    22,     0,   424,
+     0,   247,   248,     0,   246,    33,    34,     0,   564,    32,
+    31,    41,     0,   131,   442,   139,     0,   548,     0,   547,
+   241,   251,     0,   556,   250,     0,   555,     0,   255,   560,
+     0,     0,    13,     0,     0,     9,     9,   101,    72,   106,
+   681,     0,    64,    63,    71,   104,     0,     0,   102,    67,
+   562,     0,     0,   528,     0,   753,     0,   533,     0,   532,
+     0,     0,     0,     0,   520,   374,     0,    56,   524,   520,
+   545,     0,   324,   325,     0,    55,   374,   329,   328,   330,
+   323,   343,   360,   359,   441,   443,   446,   452,     0,     0,
+   341,     0,   373,   375,   520,    73,   520,    79,   521,   551,
+   572,   584,   142,     0,     0,   787,   792,   340,   520,   520,
+     0,   520,   797,     0,     0,     0,   188,     0,     0,   190,
+   203,   204,     0,     0,     0,     0,     0,   240,   187,   184,
+   183,   185,     0,     0,     0,     0,     0,   256,     0,     0,
+     0,   182,     0,   140,   186,     0,     0,   214,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   266,   268,   269,   303,   302,     0,     0,     0,     0,     0,
+   192,   518,     0,   200,   300,   292,     0,   750,   284,   285,
+     0,     0,   312,   602,   598,   607,     0,   524,   520,   520,
+   520,   314,   605,     0,   570,   316,     0,     0,   315,   283,
+     0,   279,   294,   296,   567,     0,   280,   143,   135,   442,
+   515,   432,   513,   418,     0,   347,     0,     0,   348,   349,
+   350,   387,   388,   389,   386,     0,   379,   382,     0,     3,
+     0,   425,    28,    36,    35,    46,     0,    48,    42,   749,
+   744,     0,   317,   338,    44,   318,   748,    50,   138,   554,
+   553,   255,   557,     0,    19,    21,    68,   107,   301,     0,
+   631,    70,   629,   398,     0,   394,   393,   180,     0,   179,
+   525,   561,     0,   723,   724,     0,   718,   338,     0,   717,
+   719,   751,   733,     0,     0,   559,   531,   530,     0,     0,
+   544,     0,   364,   355,   543,     0,   753,   534,   326,   357,
+   370,   374,   750,     0,   750,     0,   453,   454,   456,   750,
+   458,   488,   572,     0,   481,     0,     0,   491,   100,    95,
+     0,   142,   492,   495,     0,   473,     0,    98,     0,   374,
+     0,   371,   753,   716,   753,   716,   520,    76,   520,    82,
+   796,   795,   759,   759,   759,     0,     0,     0,   570,     0,
+     0,     0,     0,   338,     0,     0,     0,   262,     0,   260,
+   261,     0,   211,   148,   243,   571,   572,   244,   245,     0,
+     0,   399,   430,     0,   238,   237,   708,   707,     0,   235,
+   234,   232,   233,   231,   230,   229,   226,   227,   228,   224,
+   225,   219,   220,   221,   222,   223,   217,   218,     0,     0,
+     0,     0,     0,     0,   194,   208,     0,     0,   193,   520,
+   520,     0,   520,   517,   592,     0,     0,     0,     0,   287,
+     0,   289,     0,   601,   600,   597,   596,   749,     0,     0,
+   616,     0,     0,   753,   313,   753,   603,   520,   716,   524,
+   602,   598,     0,     0,   520,     0,     0,     0,     0,     0,
+     0,   433,     0,   432,   178,   177,   176,   175,   381,     0,
+     0,    25,     0,    26,    47,     0,    40,     0,   602,   598,
+     0,   740,   520,   743,   745,   741,   742,   439,     0,    18,
+    20,   124,   112,   125,   126,     0,   105,   108,     0,     0,
+     0,     0,   630,   622,   395,     0,   103,   529,   526,   722,
+   739,   728,   726,     0,   527,   721,   738,   727,   725,   720,
+   752,   735,   746,   736,   729,   734,   755,     0,   362,   542,
+   541,   368,   367,   464,     0,   463,     0,     0,   750,   750,
+   750,     0,   520,   716,   487,   482,   374,   374,   479,   480,
+   477,   478,   520,   716,   243,   571,     0,   360,    96,   483,
+   493,   498,   499,   360,   360,     0,     0,   360,    94,   484,
+   496,   360,   474,   475,   476,   374,     0,   426,   361,     0,
+    75,     0,    81,     0,   753,   716,   753,   716,   761,   760,
+   762,   271,   189,   191,   277,   278,     0,     0,     0,     0,
+   261,   264,     0,     0,     0,     0,   212,     0,   265,   267,
+   206,   205,   196,     0,   195,   210,     0,     0,   589,   587,
+     0,   590,   524,   201,     0,     0,   290,     0,     0,   599,
+   595,   606,   520,   615,   613,   614,   604,   753,     0,   611,
+     0,   568,   569,     0,   282,   516,   514,   420,     0,   380,
+   378,   243,     0,    23,    43,    49,   601,   597,   602,   598,
+     0,   536,     0,   520,   603,    51,     0,   110,     0,   114,
+     0,   116,     0,   118,     0,   682,   624,     0,   396,   602,
+   598,     0,   256,     0,   566,   747,     0,     0,   756,   757,
+     0,     0,     0,   365,     0,     0,   459,     0,     0,   466,
+   465,   457,   753,     0,   392,   392,   753,     0,     0,     0,
+   374,   374,     0,   374,   374,     0,   374,     0,   392,     0,
+   413,   372,   520,   520,    78,     0,    84,     0,     0,     0,
+     0,     0,     0,   403,     0,     0,   400,   215,   236,     0,
+   197,   198,   207,   209,   588,   586,   593,   591,     0,   202,
+     0,   286,   288,   753,   609,   520,   610,   417,     0,   383,
+   385,   601,   597,   540,   603,   111,   109,     0,     0,     0,
+     0,     0,   168,   623,     0,   625,   626,   397,     0,   569,
+   737,   731,   732,   730,     0,   754,   363,   369,     0,   461,
+   462,   460,   455,    91,   520,   486,   490,    93,   520,   374,
+   374,   507,   392,   243,   571,     0,   494,   500,   501,   360,
+   360,   392,   392,     0,   392,   497,   485,     0,   753,   753,
+   520,   520,     0,     0,     0,     0,   401,     0,     0,     0,
+   199,   594,   291,   612,   753,     0,   113,   115,   117,   689,
+   683,   687,   390,     0,   632,     0,   243,   571,   572,   633,
+   647,   650,   653,   622,     0,     0,     0,     0,     0,     0,
+   244,   679,   684,     0,   704,     0,   641,     0,     0,   338,
+     0,   618,   639,   646,   617,   640,   680,     0,   627,   261,
+   758,   366,   753,   753,   506,   503,   505,     0,     0,   374,
+   374,   374,   502,   504,   489,   415,     0,   414,   409,    74,
+    80,   753,   753,   273,   274,   275,   276,     0,   404,   519,
+   608,   384,   622,   688,     0,   628,   621,   171,   697,   699,
+   700,   622,   622,   622,     0,     0,     0,   665,   667,   668,
+   669,     0,     0,     0,   698,     0,   309,   705,     0,   642,
+   307,   360,     0,   308,     0,   360,     0,     0,     0,   169,
+   620,   619,   643,   678,   677,    90,    92,   374,   374,   512,
+   392,   392,     0,     0,   428,    77,    83,   402,     0,   391,
+     0,     0,   637,   636,     0,     0,     0,     0,   661,     0,
+   670,     0,   676,   685,     0,   305,   306,     0,     0,     0,
+   304,   170,   622,   511,   509,   508,   510,   412,   411,   405,
+    65,    68,     0,   690,   160,     0,   634,   648,     0,   651,
+   624,   702,   654,     0,   167,     0,   338,     0,     0,     0,
+   666,   675,     0,     0,   644,     0,   410,     0,     0,     0,
+     0,   622,     0,   623,     0,   703,   622,   701,   658,   360,
+   663,   662,   686,   709,     0,   623,   408,     0,   407,   695,
+   696,   691,   161,   635,   172,   623,   174,   638,   158,     0,
+     0,     0,   622,   374,     0,     0,     0,   710,   711,   671,
+   645,   406,   623,   624,   649,     0,   652,   164,     0,   163,
+   659,     0,   664,     0,   709,     0,     0,   692,   173,   159,
+   655,   623,   165,     0,     0,   672,   712,     0,   660,     0,
+   713,     0,     0,     0,   166,   714,     0,   673,   656,     0,
+     0,     0,   715,   674,   623,   657,     0,     0,     0
+};
+
+static const short yydefgoto[] = {  1457,
+   373,     2,   374,   149,   606,   294,   216,     3,     4,    37,
+   580,   337,   668,   344,    39,    40,   353,   587,   588,   589,
+    41,    42,   382,   155,   153,    43,   669,   684,   926,   686,
+   928,    45,   670,   671,   156,   157,   383,   608,   837,   838,
+   204,   839,   205,    46,    47,    48,   295,   296,   297,   298,
+  1206,  1401,  1347,  1419,  1356,  1440,  1114,  1396,  1414,   331,
+   794,   299,   520,   759,   300,   301,   332,   303,   346,   362,
+    50,   304,   480,   305,   306,   307,   308,   384,   309,  1207,
+   423,   540,   627,  1208,    52,   188,   592,   311,   189,   458,
+   190,   168,   181,    56,   406,   169,  1032,   424,  1129,   182,
+  1033,    57,   920,   433,    58,    59,   576,   577,   578,  1184,
+   389,   722,   723,  1341,  1342,  1305,  1238,  1158,    60,   565,
+   326,  1061,  1239,   946,   803,    61,    62,    63,    64,   208,
+    65,    66,    67,   210,   657,   658,   659,   660,   212,   429,
+   430,   675,   676,   677,   900,   910,   901,  1147,   902,   903,
+  1148,  1149,   562,   563,   521,   784,   313,   392,   393,   162,
+   170,    69,    70,   171,   172,   141,    72,   116,   314,   315,
+   316,    74,   317,    76,    98,    77,   318,   764,   765,   779,
+   543,  1211,  1212,  1313,  1185,  1115,  1116,  1117,   612,  1213,
+   844,  1214,  1262,  1372,  1315,  1349,  1215,  1216,  1333,  1386,
+  1263,  1373,  1264,  1375,  1265,  1377,  1438,  1452,  1403,  1432,
+  1360,  1405,  1320,   385,   609,  1111,  1217,  1276,  1363,  1181,
+  1182,  1253,  1370,  1413,  1358,  1344,  1218,  1353,  1279,   729,
+  1407,  1408,  1409,  1447,   629,   630,   866,  1028,  1124,   631,
+   632,   633,   862,   634,   134,   864,   636,  1030,  1031,   453,
+    79,    80
+};
+
+static const short yypact[] = {    45,
+   109,-32768,-32768,  9869,-32768,    44,-32768,   294,   414,    76,
+-32768,-32768,   392,-32768,-32768,    42,    59,    94,-32768,-32768,
+-32768,   573,   707,  1336, 10054,-32768,   154,   170,-32768,  1480,
+  1480,-32768,  3768,-32768,  9869,   142,-32768,   203,   126,  9939,
+-32768,-32768,   213,-32768,   260,   236,   271,-32768,-32768,   426,
+  1790,-32768,  5098,-32768,  1518,   558,-32768,   301,-32768,-32768,
+   881,-32768,-32768,   285,-32768,-32768,   302,  4449,-32768,-32768,
+  1373,-32768,-32768,-32768,   324,-32768,-32768,   358,  6789,-32768,
+-32768,-32768,-32768,  8390,-32768,  8390, 10260,-32768,   294,   414,
+   154,   170,   259,   344,   271,-32768,   358,-32768,   358,  8839,
+  8839,   320,-32768,-32768,-32768,-32768,-32768,    49,   294,   414,
+   154,   170,   939,   401,   553,-32768,   646,   646,-32768,   360,
+-32768,  4051,  3013,   881,-32768,  8390,-32768,  2670,-32768,   943,
+   401,  2670,-32768,  1076,  2820,  2820,  3768,   334,   356,   399,
+   397,   435,-32768,-32768,   500,-32768,   413,-32768,  1691,    44,
+-32768,-32768,-32768,   547,    72,   250,   521,-32768,-32768,   481,
+   143,-32768,-32768,  2911,  2911,  4193,  1373,   608,-32768,-32768,
+   502,-32768,-32768,  1243,-32768,-32768,-32768,-32768,-32768,  1518,
+   672,-32768,   301,  1373,-32768,-32768,-32768,  1821,  1518,-32768,
+   301,-32768,  4051,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,   271,   939,   285,-32768,-32768,
+-32768,-32768,-32768,  1227,   358,   505,   301,   393,-32768,   176,
+-32768,-32768,-32768,  3112,-32768,-32768,   695,-32768,   512,   517,
+-32768,-32768,-32768,-32768,   559,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,   503,-32768,-32768,
+  1227,  4449,  1007,   533,-32768,-32768,  9453,  9540,  9627,  9627,
+-32768,-32768,-32768,-32768,-32768,   568,   600,   615,   621,   630,
+  8926,  1076,  9627,-32768,-32768,-32768,-32768,  9627,-32768,-32768,
+  9627,  6881,-32768,  9627,-32768,   557,-32768,  9627,-32768,  9013,
+-32768,  5963,-32768,  1585,  2305,  9100,-32768,   662,  1440,-32768,
+   566,  2295,  2056,-32768,   240,-32768,   737,  1989,-32768,   557,
+-32768,  4051,   881,-32768,-32768,  1076,   606,-32768,-32768,   599,
+   677, 10414,   611,   637,   648,  1302,   413,-32768,   553,-32768,
+   939,   294,   414,   711,-32768,-32768,-32768,   646,-32768,-32768,
+-32768,-32768,  4374,-32768,   257,-32768,   557,-32768,   818,-32768,
+-32768,-32768,  2670,-32768,-32768,  2670,-32768,   653,-32768,-32768,
+  3112,    55,   667,   678, 10260,-32768,-32768,-32768,-32768,-32768,
+-32768,   102,-32768,-32768,-32768,-32768,  6972,  8926,-32768,-32768,
+-32768,  8926,   686,-32768,  5379,   121,  3290,-32768,  3290,-32768,
+  3538,  3538,  4193,   709,-32768,   301,  4051,-32768,   690,-32768,
+-32768,  3629,  1821,  1518,  4051,-32768,   301,-32768,-32768,   301,
+  1821,-32768,   348,-32768,-32768,   271,-32768,  3069,  3964,    48,
+  1227,   500,   747,   301,-32768,-32768,-32768,-32768,-32768,-32768,
+   453,-32768,   289,   704,   714,-32768,-32768,  1227,-32768,-32768,
+   826,-32768,-32768,  8926,   533,  6881,-32768,   340,  6881,-32768,
+-32768,-32768,  8839,  4846,  4846,  4846,  4846, 10482,-32768,-32768,
+-32768,-32768,   732,  9714,  9714,  6881,   738,   334,   740,   798,
+   758,-32768,  8839,-32768,-32768,  6634,  6881,-32768,  8926,  8926,
+  7063,  8926,  8926,  8926,  8926,  8926,  8926,  8926,  8926,  8926,
+  8926,  8926,  8926,  8926,  8926,  8926,  8926,  8926,  8926,  8926,
+-32768,-32768,-32768,-32768,-32768,  8926,  8926,  8926,  8839,  2689,
+   381,   362,  7696,-32768,-32768,-32768,   814,   862,   343,   361,
+  1612,   401,-32768,  1557,  1557,-32768,  2917,   764,   777,   844,
+-32768,-32768,   561,  8200,  1177,-32768,   847,   358,-32768,-32768,
+  8926,-32768,-32768,-32768,-32768,   551,-32768,-32768,-32768,   476,
+   831,   837,-32768,-32768,  1076,-32768,  7427,  7518,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,    52,-32768,   807,   789,   413,
+   841,-32768,-32768,-32768,-32768,   804,   598,   848,-32768,-32768,
+   702, 10315,   702,  1911,   881,  3617,-32768,   850,-32768,-32768,
+-32768,   809,-32768,   855,-32768,-32768,   213,   874,   854,   798,
+-32768,-32768,-32768,-32768,  6356, 10482,-32768,   677,   817, 10414,
+-32768,-32768,   820,-32768,-32768,   823,   330,  4985,   824,-32768,
+    66, 10109,   871,   876,   383,-32768,-32768,-32768,  3290,  3290,
+-32768,  3629,   888,-32768,-32768,   843,   121,-32768,  1821,-32768,
+   894,   301,-32768,   868,-32768,   707,   905,-32768,-32768,   262,
+-32768,-32768,   508,   707,-32768,  8926, 10009,-32768,   465,   465,
+   188,   404,  3336, 10154,  4767,-32768,   129,   465,   903,   301,
+    62,-32768,   121,  1089,   121,  1089,-32768,-32768,-32768,-32768,
+-32768,-32768,  1487,  1487,  1487,   861,   863,  9192,   844,   864,
+   865,   867,   896,  3839,   904,   906,   907,-32768,   879,-32768,
+-32768,   884,-32768,-32768,   921,   590,   622,   379,   147,  8926,
+   936,-32768,   942,   897, 10482, 10482,-32768,-32768,   948,  5235,
+  7722,  2193,  5136,  5286,  4683,  2562,  2406,  2406,  2406,  1199,
+  1199,   753,   753,   697,   697,   697,-32768,-32768,   915,   893,
+   916,   923,   924,  4846,   381,-32768,  6972,  8926,-32768,-32768,
+-32768,  8926,-32768,-32768,   919,  9627,   922,   928,   991,-32768,
+  8926,-32768,  8926,  3429,-32768,  3429,-32768,   157,   932,   937,
+-32768,   933,  4846,   121,-32768,   121,  3845,-32768,  1089,   941,
+  8477,  8477,  6049,   940,  9013,   945,  1243,  1989,   964,   949,
+  8926,  1076,   938,   837,-32768, 10482,-32768, 10482,  1302,   950,
+  9279,-32768,   955,-32768,-32768,  4374,-32768,  4846,  2139,  2139,
+  3183,-32768,-32768,-32768,-32768,-32768,-32768,   655,  8926,-32768,
+-32768,-32768,-32768,   154,   170,  8926,  1001,-32768,   438,   448,
+   471,   102,-32768,-32768,-32768,    82,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,  8295,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   876,  1002,-32768,-32768,-32768,  4846,-32768,-32768,
+-32768,-32768,  1005,-32768,  8839,-32768,   939,   401,-32768,-32768,
+-32768,  1109,-32768,  1089, 10482,-32768,   301,   301,-32768,-32768,
+-32768,-32768,-32768,  1089,  1009,   661,  8926,   348,-32768,  1023,
+-32768,-32768,-32768,   883,  1046,   324,   401,  1203,   465,  1024,
+-32768,  1359,-32768,-32768,-32768,   301,  4915,-32768,-32768,  6972,
+-32768,   977,-32768,   982,   121,  1089,   121,  1089,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,   999,  1010,  1012,  1014,
+   809,-32768, 10346,  6972,  6450,   988,-32768,  8926,-32768,-32768,
+-32768,-32768,   329,  1000,-32768,-32768,  1013,   150,  1070,  1070,
+   998,  1070,-32768,-32768,  9627,  1121,-32768,  1029,  1033,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,   121,  1035,-32768,
+  1036,-32768,-32768,  1291,-32768, 10482,-32768,-32768,  1037,-32768,
+-32768,   158,  1040,-32768,-32768,-32768,  2364,  2364,  2492,  2492,
+  3183,-32768,  1243,-32768,  2611,  5963,  1043,-32768,   874,-32768,
+  8926,-32768,  8926,-32768,  8926,-32768,    68,  6543,-32768,  8569,
+  8569,  6170,   144,  1044,   155,-32768,  6972,  6728,-32768,-32768,
+   161,  6972,  6972,-32768,  1050,  1051,-32768,   939,  3069,-32768,
+-32768,-32768,   121,  1053,  1103,  1103,   121,  1059,  8926,  8926,
+  5719,   301,  3687,   301,   301,  1032,   301,  3919,  1103,  5493,
+-32768,-32768,-32768,-32768,-32768,  1060,-32768,  1069,  8926,  8926,
+  8926,  8926,  6972,-32768,  8926,  1093,-32768,-32768, 10482,  8926,
+-32768,   329,-32768,-32768,-32768,-32768,-32768,-32768,  1067,-32768,
+  1134,-32768,-32768,   121,-32768,-32768,-32768,-32768,  8926,-32768,
+-32768,  2364,  2364,-32768,  2611,-32768,-32768,  1075,  1080,  1081,
+  1098,  1076,-32768,-32768,  5927,  1166,-32768,-32768,  1094,  1409,
+-32768,-32768,-32768,-32768,  4846,-32768,-32768,-32768,  6972,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  5719,
+  5719,-32768,  1103,  1144,   691,  8926,-32768,-32768,-32768,   348,
+   348,  1103,  1103,   453,  1103,-32768,-32768,  5654,   121,   121,
+-32768,-32768,  1099,  1100,  1101,  1104,-32768, 10437,  6972,  1116,
+-32768,-32768,-32768,-32768,   121,  1106,-32768,-32768,-32768,-32768,
+  1098,-32768,-32768,   679,-32768,   166,  1154,   693,   729,-32768,
+-32768,-32768,-32768,-32768,  8926,  1159,  1182,  1185,  8661,   582,
+   450,-32768,-32768,  8752,  1229,  1189,-32768,  2470, 10215,  3404,
+  5816,-32768,-32768,  1238,-32768,-32768,-32768,  7806,-32768,   292,
+-32768,-32768,   121,   121,-32768,-32768,-32768,  8926,  8926,  5719,
+   301,   301,-32768,-32768,-32768,-32768,  7609,-32768,-32768,-32768,
+-32768,   121,   121,-32768,-32768,-32768,-32768,  6972,-32768,-32768,
+-32768,-32768,-32768,-32768,  1076,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,   798,  1162,  1163,  5543,-32768,-32768,-32768,
+-32768,  1198,  8926,  1200,-32768,   798,-32768,-32768,  1173,-32768,
+-32768,   348,   761,-32768,   785,   348,  9366,   806,   172,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,  5719,  5719,-32768,
+  1103,  1103,  1160, 10368,  1175,-32768,-32768,-32768,  1192,-32768,
+   474,   474,-32768,-32768,  1259,  6265,  8839,  8926,-32768,  7915,
+-32768,  1230,-32768,-32768,   500,-32768,-32768,  9801,  9801,  7154,
+-32768,-32768,   798,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+   260,   213,  3073,-32768,-32768,  8839,-32768,-32768,  8107,-32768,
+    68,-32768,-32768,  1232,-32768,  1178,   186,  4051, 10460,  7915,
+-32768,-32768,  1098,    53,-32768,   145,-32768,  1180,  1184,   798,
+  1188,   798,  8011,-32768,   544,-32768,-32768,-32768,-32768,   348,
+-32768,-32768,  1098,  1292,  1241,-32768,-32768,   102,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  8926,
+  1244,  7245,   798,   301,  7915,  1218,   180,  1258,-32768,-32768,
+-32768,-32768,-32768,    68,-32768,  1210,-32768,-32768,  1261,-32768,
+-32768,  1269,-32768,  8926,  1292,  1274,  1292,-32768,-32768,-32768,
+-32768,-32768,-32768,  1235,   229,-32768,-32768,  7336,-32768,  6972,
+-32768,  1328,  1293,  1246,-32768,-32768,   206,-32768,-32768,  1342,
+  1301,  8011,-32768,-32768,-32768,-32768,  1363,  1364,-32768
+};
+
+static const short yypgoto[] = {-32768,
+  1365,-32768,  -276,-32768,   990,    58,     0,  1368,-32768,   311,
+-32768,-32768,   315,  1048,-32768,-32768,-32768,-32768,-32768,   572,
+-32768,  1226,  -598,    56,  -594,  1240,    96,-32768,-32768,-32768,
+-32768,-32768,   720,-32768,-32768,-32768,-32768,-32768,-32768,   387,
+     4,-32768,-32768,-32768,  5114,    -9,    22,   -10,   920,-32768,
+   859,-32768,    90,-32768, -1232,-32768, -1277,   -44,-32768,  1705,
+  -289,  -212,-32768,  -709,  3691,   211,  1091,  3239,   -48,   222,
+   136,-32768,-32768,-32768,  -300,-32768,  -142,-32768,-32768, -1136,
+   -28,  -305,  2329,     2,   872,  -122,    46,   173,  -170,    -4,
+  -136,  -784,   202,-32768,   -66,-32768,-32768,  -201,-32768,-32768,
+-32768,-32768,-32768,  -101,  2902,   -36,-32768,   603,-32768,-32768,
+  -967,  -385,   799,-32768,-32768,-32768,-32768,-32768,   -14,-32768,
+-32768,-32768,-32768,-32768,   618,     3,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,  1216,-32768,   386,   545,-32768,-32768,-32768,
+-32768,   509,  -616,-32768,-32768,-32768,-32768,-32768,-32768,   755,
+-32768,   376,   873,   640,   926,  4194,     8,    10,  -379,  1268,
+  3163,  -412,     6,-32768,  4530,  -127,   171,     5,  3723,  1140,
+-32768,  4271,  1650,  1780,-32768,  4014,  2468,  -186,-32768,  2035,
+-32768,-32768,   239,  -824,  -695,-32768,-32768,   337,  -827,  -353,
+-32768,-32768,-32768,-32768, -1193,-32768, -1079, -1247,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,    89,-32768,-32768,-32768,-32768,-32768,    98,
+ -1149,-32768,-32768,-32768,   -54,-32768,-32768,-32768,-32768, -1282,
+    32,-32768,    35,-32768,  -574,  -490,   596,-32768,-32768,-32768,
+-32768,  -352,-32768,  -339,  -152,-32768,   644,   342,-32768,   160,
+-32768,  -294
+};
+
+
+#define	YYLAST		10566
+
+
+static const short yytable[] = {    55,
+   597,   617,   372,    36,   217,    51,   545,   364,   367,   414,
+   842,    68,   831,   598,  1016,   661,    94,   554,    96,  1017,
+    55,   195,   167,   557,   263,   108,   122,   124,   613,   646,
+    55,  1254,    68,  1354,    36,    55,    51,   128,   132,    36,
+   192,    51,    68,   431,    -1,   955,   780,    68,   180,    53,
+   886,   419,   422,   780,   457,   460,   428,   413,   913,   161,
+   579,    35,   525,   214,   525,   220,   421,  1277,   349,   350,
+   123,   525,   379,  1376,   261,   320,   856,  1136,  1137,   312,
+    53,   312,    55,   225,   679,    53,   262,   488,   322,   323,
+   448,  1157,    35,   354,    68,   312,   312,    35,   619,    44,
+  1112,  1374,   610,    81,   328,   626,   338,   319,    -2,   922,
+   809,   924,   339,  1371,  1384,   357,   340,   417,   180,   347,
+   121,   312,   351,    87,   857,  1397,   712,   858,   439,  -301,
+    44,  1292,   123,   380,   100,    44,  1429,   361,  1295,  1365,
+  1018,   448,   363,   366,    55,  1387,   195,   356,   179,   161,
+    51,   101,   699,    82,   195,  1444,    68,   680,   782,   611,
+   810,  1385,   859,   604,   696,   192,   381,   850,   140,  1420,
+   919,   397,   399,   192,   192,  1227,    54,  1113,  1394,  1352,
+   161,   635,   321,   147,  1233,  1234,   102,  1235,   914,   394,
+  -254,  1019,   186,   187,    53,   840,   533,    54,    13,   192,
+   127,  -563,  -301,   142,  1397,   644,   380,    54,  -123,  1421,
+   425,   889,    54,   650,   979,   851,  1099,   443,   852,  1125,
+   225,    20,   437,   127,   148,  1257,   749,   126,   751,   752,
+    23,  1257,   533,  1254,   145,   395,  -254,  -254,   915,   381,
+  1361,  1425,   698,  1081,    44,   890,   192,  -563,  -563,   891,
+   522,   260,  -249,   853,   139,   554,   843,   214,  1084,    54,
+   529,   800,   146,  -563,  1450,   713,  1100,   880,   438,  1126,
+   140,   140,   140,   364,   367,  1258,   419,   422,   698,   597,
+  1382,  1332,   892,   154,   419,   469,   550,   312,  1426,   681,
+  1442,   649,   863,   559,   422,   158,   386,   192,   881,   584,
+   261,   140,   780,   813,   643,   142,   142,   142,   214,  1044,
+   159,   422,   262,   387,  1451,   651,  -130,   484,    38,  1048,
+   152,    54,   545,   225,   159,  1423,     7,     8,   218,   561,
+   780,    18,   551,  1336,  1337,   689,   142,  1443,  -255,   575,
+   850,   558,   388,   347,   582,   144,   209,    83,   594,    38,
+   151,  1066,   585,  1068,    38,   595,   652,   365,   368,   211,
+   596,     8,     9,   780,    21,   109,   110,    84,   325,  1266,
+    55,   956,  1171,    14,    15,   756,   122,   124,   599,    27,
+    28,   690,    68,   195,  -255,  -255,   533,   139,   851,   770,
+   628,   852,   757,  -749,    88,    89,    90,   195,   192,   192,
+  -252,   327,   596,   219,   109,   110,   192,   772,   639,   640,
+   981,    32,   336,   111,   112,    26,   192,   111,   112,   672,
+   123,   758,  1080,  1283,    55,  1288,   853,   756,  1309,   867,
+   673,   760,   698,   192,   352,   771,    68,  1311,  1312,   435,
+  -122,   761,  -249,   913,   757,    26,    85,    91,    92,    93,
+   893,   312,   126,   773,   312,   762,   111,   112,   312,   704,
+   704,   704,   704,   597,   369,   522,    86,    85,   957,   661,
+   121,   312,  -524,   758,   674,   868,   598,   260,   312,   461,
+   462,   968,   312,   969,  1010,   436,   667,    86,   613,   721,
+    14,    15,   160,   470,  1012,  -360,   894,   554,   471,   687,
+   874,   472,   876,   557,   482,   370,    85,   882,   485,   266,
+   780,  1275,   419,   479,   312,   261,   524,  1014,  -524,   160,
+  1345,   993,    -7,   126,  -360,   593,    86,   262,  -360,   159,
+  1011,   780,   594,   448,  1062,  -134,   140,   140,   140,   628,
+  1013,   774,   776,  -558,   596,   688,  1007,    54,  -524,   378,
+   873,   596,  1402,   225,   883,     7,   342,   343,  1074,  1077,
+  1412,    85,   822,  1015,   826,   827,  1346,   593,   561,   109,
+   110,   142,   142,   142,  -360,    88,   103,   104,   918,   192,
+   390,    86,   488,  1089,    88,   103,   104,   180,   271,   815,
+  1399,   214,   391,    21,  -524,   409,   840,   432,   828,   827,
+   884,    54,   887,   888,    26,   444,    26,   788,    27,    28,
+   445,   916,   533,   192,   447,   483,   193,   194,   721,    26,
+   446,   111,   112,   365,   368,   454,   661,   594,   105,   106,
+   107,   284,  1077,   285,   192,   534,  1400,   105,   106,   596,
+    32,  1121,  1123,    83,   899,   535,  1127,  1128,     7,   342,
+   343,  -120,   699,   789,   790,   536,   816,   672,   537,   538,
+   463,  1273,    55,    84,   672,   672,   407,   408,   673,   180,
+    55,   525,   817,   464,    68,    85,   673,   479,  1398,   594,
+   479,   594,    68,  -121,   470,   471,    21,  1167,   465,   192,
+  1411,   596,   260,   596,   466,    86,   365,   709,     8,   441,
+  1415,    27,    28,   467,     7,     8,     9,   566,   479,   593,
+   109,   110,   674,   -45,    83,   564,   593,  1428,   -45,   569,
+   674,  1108,  1050,  1109,   667,  1110,  1039,  1040,  1041,   -45,
+   415,   416,   667,    32,    84,   567,  1439,  1255,  1256,     7,
+     8,     9,    21,  1222,    83,   570,    83,  1367,   533,   704,
+   111,   112,  1229,   958,  1260,    26,   571,    27,    28,  1456,
+    26,   602,   111,   112,    84,   796,    84,  1388,   898,   908,
+   583,   819,  1085,  1086,   442,  1088,    -6,    21,   704,   509,
+   510,   820,    85,  1249,   594,  1045,  1046,   605,   628,    32,
+  1261,   536,    27,    28,   821,   538,   596,   622,   774,   776,
+   596,   645,    86,   225,   593,   561,    88,    89,    90,  1176,
+   682,   594,   575,   704,  1059,   691,   594,   641,   595,   407,
+  1326,   109,   110,   596,    32,   692,   997,   998,   596,   109,
+   110,  1052,   506,   507,   508,   509,   510,  1054,  1055,    54,
+   708,  1052,  1057,   415,  1327,  1055,   710,    54,   711,   628,
+     8,     9,   929,   930,   931,   611,   593,    26,   593,    91,
+    92,   596,  1308,   704,   407,  1331,   713,   768,   769,   783,
+   312,   364,   367,   111,   112,   781,   832,     8,     9,   594,
+  1037,   111,   112,    88,    89,    90,   196,   197,   198,   594,
+   785,   596,   364,   367,   801,   802,   220,   442,   812,   811,
+   814,   596,   111,   112,   699,   219,  -310,   672,    14,    15,
+  1314,   818,    55,   829,   830,   380,   199,  -252,   673,   796,
+   833,   594,  1324,   594,    68,   847,   219,    26,   848,   834,
+   835,   849,   855,   596,  -748,   596,    91,    92,   200,   865,
+  -310,    88,    89,    90,  -310,     7,   109,   110,  1076,  1142,
+  1143,   869,  1152,  1153,   870,  1155,   140,   872,   330,   334,
+   875,   593,   674,   879,   917,   593,   836,     8,     9,   932,
+   937,   933,   934,   935,   667,   936,   964,  -310,   938,  1314,
+   939,   940,  -119,    21,   201,   202,   203,   941,   593,   140,
+   597,   142,   942,   593,    91,    92,   594,   944,    27,    28,
+   945,   470,   471,  1369,   950,   947,  1102,  1103,   596,   948,
+   109,   110,   963,   365,   709,   966,  1392,   628,  1314,   111,
+   112,  1076,   219,   949,   142,   951,   593,  1102,  1103,   596,
+    32,   952,   953,   965,   613,   109,  1154,   967,  1225,  1226,
+   972,  1132,   139,   442,   974,   973,   443,   988,   982,  1314,
+   672,   699,   980,   983,  1445,    55,   593,   985,   991,  1009,
+    26,   673,   111,   112,   994,  1027,   593,    68,  1034,  -311,
+  1049,    14,    15,   109,   110,  1024,   449,   439,    88,   103,
+   104,  1053,  1058,  1231,  1232,  1063,   450,   111,   112,    54,
+  1064,  1069,     8,     9,   119,    11,    12,  1078,   593,   624,
+   593,    13,  1070,  -311,  1071,   674,  1072,  -311,  1082,  1087,
+  1210,   442,     8,     9,  1205,  1183,    16,   667,    17,    18,
+   704,  1083,    68,    26,    20,   111,   112,  1091,  1300,  1301,
+  1302,   105,   106,    23,   140,   140,   140,  1092,   654,   760,
+  -311,  1093,    26,  1096,   111,   112,  1098,  1097,  1101,   761,
+   477,  1106,  1120,   656,  1169,   140,   140,   140,  1130,  1131,
+  1209,  1135,    26,   762,   111,   112,   387,  1139,  1161,   142,
+   142,   142,  1204,   593,   302,  1090,   302,  1162,  1172,  1282,
+  1173,  1282,  1364,  1177,  -520,   625,   448,  -520,  1178,  1179,
+   142,   142,   142,  1180,   593,   192,  1334,  1335,  1112,  1210,
+   364,   367,  1220,  1274,   180,  1228,  1210,  1244,  1245,  1246,
+  1205,    68,  1247,  1210,  1252,  1259,   302,  1205,    68,   417,
+  1268,   365,   368,   785,   591,    68,   -99,  1250,    14,    15,
+   470,   471,    54,   186,   187,  -520,  1278,  -520,  -520,    13,
+  -520,  1269,   365,  1119,  1270,     7,     8,     9,  1280,  1209,
+   621,  -520,  1293,  -520,  1316,  1317,  1209,  1321,  1310,  1323,
+   -99,  1204,    20,  1209,   -99,  1325,   591,  1338,  1204,  -520,
+  -520,    23,  1340,  -520,  1350,  1204,   504,   505,   506,   507,
+   508,   509,   510,    21,  1343,  -520,  1379,    54,  1390,  1362,
+   871,  1378,  1391,     7,     8,     9,  1393,   -99,    27,    28,
+  1410,  1406,  1422,  1417,    88,   103,   104,   572,   573,   574,
+  1424,  1210,  1357,  1404,   477,  1210,  1427,   477,  1430,  1205,
+  1431,   701,   219,    68,   262,   312,   921,    68,   923,  1380,
+    32,    21,  1433,  1436,   477,   639,   640,  1446,   594,   109,
+   110,  1357,   192,  1441,  1210,   477,    27,    28,  1205,   728,
+   596,  1453,  1448,   262,  1449,  1210,    68,   105,   106,  1205,
+  1454,  1209,  1458,  1459,     1,  1209,   607,    68,  1210,     5,
+   442,   468,  1205,  1204,   376,   750,    54,  1204,    32,   115,
+    68,   767,   -97,    54,    14,    15,   581,   995,   377,    26,
+    54,   111,   112,   909,  1209,  1107,  1366,  1357,    14,    15,
+  1210,  1348,   714,  -360,  1205,  1209,  1204,  1455,   591,   262,
+  1285,   990,    68,   846,   482,   591,   -97,  1204,  1209,  -255,
+   -97,   989,   140,   427,  1133,  1060,  1042,   975,   911,   976,
+  1204,  -360,  -360,  1156,  -255,  -255,  -360,   804,   410,  -255,
+   526,   987,     7,   342,   343,   755,   527,  1210,   530,  1291,
+  1209,  1205,  1219,   -97,  1389,  -255,  1435,   142,  1026,    68,
+  1383,  1437,  1204,   140,   140,   140,  1221,  -255,  -255,     0,
+  -255,     0,  -255,     0,     0,     0,     0,   616,   620,     0,
+    21,     0,     7,   109,   110,   620,     0,    12,    54,   260,
+   109,   110,    54,    26,   439,    27,    28,  1209,   142,   142,
+   142,  -255,  -255,   591,     0,  -255,     0,     0,  1024,  1204,
+     0,     0,     0,     0,     0,   593,     0,  -255,   260,     0,
+    21,    54,     0,   185,   186,   187,     0,   528,     0,     0,
+    13,     0,    54,    26,     0,    27,    28,     0,   470,   471,
+    26,     0,   111,   112,   620,    54,     0,     0,    18,    30,
+   365,  1119,     0,    20,     0,   591,   449,   591,     0,    31,
+   109,   110,    23,     0,    12,     0,   450,    32,  1065,     0,
+  1067,     0,    33,   302,   260,     0,   616,    54,     0,   725,
+   726,     0,   730,   731,   732,   733,   734,   735,   736,   737,
+   738,   739,   740,   741,   742,   743,   744,   745,   746,   747,
+   748,     0,     0,   533,     0,     0,   620,     0,   620,   620,
+    26,     0,   111,   112,     7,   109,   110,     0,     0,     0,
+   961,  1095,     0,     0,    54,     0,   534,     0,     0,     0,
+     0,   511,     0,     0,   620,     0,   535,     0,     0,     0,
+     0,   620,     0,     0,     0,     0,   536,     0,     0,   537,
+   538,   477,    21,    75,     0,     0,     0,   806,   808,     0,
+   591,     0,    97,     0,   591,     0,     0,    27,    28,     0,
+   512,   513,   113,   117,    75,   514,   515,   516,   517,   130,
+   130,     0,   130,     0,    75,     0,  1134,   591,     0,    75,
+  1138,     6,   591,     7,     8,     9,    10,    11,    12,    32,
+   174,     0,    75,    13,     0,   616,     0,     0,     0,     0,
+   207,     0,     0,     0,     0,     0,     0,    97,    16,     0,
+    17,    18,     0,     0,     0,   591,    20,   227,    97,     0,
+     0,    21,     0,  1035,     0,    23,    75,  1174,   375,     0,
+     0,     0,     0,     0,    26,     0,    27,    28,    97,     0,
+    29,     0,     0,     0,     0,   591,   885,     0,     0,     0,
+    30,     0,     0,   341,   117,   591,     0,   117,     0,     0,
+    31,   174,    97,   207,     0,     0,     0,   130,    32,     0,
+   359,   130,     0,    33,   130,   130,   130,     0,   620,     0,
+     0,     0,     7,     8,     9,     0,     0,   591,    75,   591,
+     0,     0,  1240,  1241,     0,     0,     0,     0,     0,     0,
+   943,     0,     0,   174,   174,   174,     0,     0,  1251,     0,
+     0,     0,     0,     0,     0,     0,   418,   186,   187,     0,
+    21,     0,     0,    13,     0,     0,     0,     0,     0,     0,
+     0,     0,   174,    26,     0,    27,    28,   616,   620,   163,
+     0,    18,     0,     0,   223,     0,    20,     0,     0,   164,
+     0,   620,     0,   620,    97,    23,  1296,  1297,     0,   165,
+     0,     0,   591,   130,     0,     0,   223,    32,     0,     0,
+   477,     0,   166,     0,     0,  1306,  1307,     0,     0,     0,
+     0,   986,   223,   591,     0,     0,   223,     0,     0,     0,
+     0,   620,     0,     0,     0,     0,     0,     0,     0,   223,
+     0,    97,   451,     7,     8,     9,   185,   186,   187,  1006,
+     0,     0,     0,    13,     0,     0,   620,  1163,  1164,  1165,
+  1166,     0,     0,     0,     0,     0,     0,     0,  1170,     0,
+     0,    18,     0,     0,   620,     0,    20,     0,     0,     0,
+     0,    21,     0,   223,    97,    23,     0,   533,   531,     0,
+   451,   451,   547,     0,    26,     0,    27,    28,     0,     0,
+     0,   174,   207,     0,     0,     0,     0,     0,     0,     0,
+   819,     0,     0,     0,     0,     0,   223,  1051,   117,     0,
+   820,   552,     8,     9,     0,     0,     0,   117,    32,     0,
+   536,     0,    97,   821,   538,     0,   223,     0,     0,     0,
+   616,     0,   130,     0,     0,   130,     0,     0,     0,     0,
+   130,     0,     0,     0,    75,     0,   271,   553,     0,    21,
+     0,     0,     0,     0,   616,   616,     0,     0,  1079,     0,
+     0,     0,    26,     0,   111,   112,   174,     0,   174,     0,
+   174,   174,   174,     0,     0,     0,   174,  1272,     0,     8,
+     9,   174,    11,   213,   174,     0,     0,     0,    13,     0,
+     0,     0,     0,     0,     0,     0,     0,    97,    75,     0,
+     0,     0,     0,    16,     0,    17,     0,     0,     0,     0,
+     0,    20,   618,     0,     0,     0,   223,     0,     0,   618,
+    23,   620,   533,   620,     0,   620,     0,     0,   616,    26,
+     0,   111,   112,    97,    97,    97,    97,   616,   616,     0,
+   223,     0,   616,   616,     0,   534,     0,     0,     0,     0,
+     0,  1322,     0,     0,     0,   535,     0,     0,   223,  1140,
+  1141,     7,     8,     9,     0,   536,    12,     0,   537,   538,
+     0,     0,     0,     0,     0,     0,     0,     0,   618,     0,
+     0,     0,     0,   616,     0,  1168,     0,     0,     0,    97,
+     0,   451,     0,     0,   728,  1355,     0,     0,     0,    21,
+     0,   531,     0,   451,   451,   533,   547,     0,   477,   620,
+     0,     0,    26,   797,    27,    28,     0,   799,     0,     0,
+     0,     0,     0,     0,  1355,     0,     0,     0,   819,     0,
+     0,     0,     0,     0,   591,     0,     0,     0,   820,   616,
+   618,     0,   618,   618,     0,     0,    32,     0,   536,     0,
+   223,   821,   538,     0,     0,   113,  1230,     0,     0,     0,
+   174,   797,   174,   174,   207,   547,     0,     0,   618,     0,
+     0,     0,     0,     0,     0,   618,     0,     0,  1416,   616,
+  1355,   495,   496,   497,   498,   499,   500,   501,   502,   503,
+   504,   505,   506,   507,   508,   509,   510,   174,     0,     0,
+     0,   797,  1434,     0,     0,  1267,     0,     0,   174,   174,
+     0,   174,     0,     0,     0,     0,   728,     0,   109,   110,
+     0,   186,   187,     0,     0,   877,     0,    13,     8,     9,
+   223,    11,    12,   117,     0,     0,    75,    13,  1298,  1299,
+     0,     0,   906,    75,    75,     0,   223,  1304,     0,     0,
+    20,     0,    16,    97,    17,    97,     0,     0,   616,    23,
+    20,   533,   451,   451,   451,   542,   546,   549,    26,    23,
+   111,   112,     0,   451,     0,     0,     0,     0,    26,     0,
+   111,   112,   518,     0,   534,     0,     7,     8,     9,     0,
+     0,   213,     0,     0,   535,     0,     0,   620,     0,     0,
+     0,     0,     0,     0,   536,     0,     0,   544,   538,     0,
+     0,     0,     0,     0,     0,     0,     0,   519,     0,     0,
+     0,     0,   618,    97,    21,     0,     0,     0,  1359,     0,
+   533,     0,   310,     0,   310,     0,     0,    26,     0,    27,
+    28,     0,     0,   451,     0,   451,     0,     0,   333,   335,
+     0,     0,    97,   819,     0,     0,   451,     0,    97,     0,
+   797,   797,   797,   820,     0,     0,     0,   984,     0,     0,
+     0,    32,     0,   536,   310,     0,   821,   538,     0,     0,
+     0,     0,   618,     0,     0,    97,     0,    97,   174,   174,
+  1003,    78,     7,     8,     9,   618,     0,   618,     0,     0,
+    99,   502,   503,   504,   505,   506,   507,   508,   509,   510,
+   114,   118,    78,     0,     7,     8,     9,   131,   131,    12,
+   131,     0,    78,  1003,     0,     0,     0,    78,     0,     0,
+    21,     0,     0,     0,     0,   618,     0,    97,   131,     0,
+    78,     0,     0,    26,     0,    27,    28,  1038,     0,  1281,
+   616,    97,    21,    97,     0,   215,     0,     0,   533,   164,
+   618,     0,     0,    97,     0,    26,   215,    27,    28,   165,
+     0,     0,     0,     0,    78,     0,  1056,    32,   618,     0,
+     0,   999,   166,     0,     0,     0,    75,     0,   775,   777,
+     0,  1000,     0,     0,     0,    97,   223,    97,   223,    32,
+     0,   536,   348,     0,  1001,   538,     0,     0,     0,   131,
+   215,     0,     0,     0,     0,   131,     0,     0,     0,   131,
+     0,     0,   131,   131,   131,     0,     0,     0,   451,   451,
+     0,   451,     0,     7,     8,     9,    78,     0,   439,     0,
+   481,     0,     0,     0,     0,   824,     0,   542,   546,     0,
+   549,   131,   131,   131,   499,   500,   501,   502,   503,   504,
+   505,   506,   507,   508,   509,   510,   174,   174,   174,   174,
+  1003,    21,     0,     0,   174,     0,   223,   533,     0,     0,
+   131,     0,   546,     0,    26,     0,    27,    28,     0,  1003,
+  1003,  1003,     7,   109,   110,     0,     0,   213,     0,     0,
+   819,   590,     0,     0,     0,   223,     0,     0,    97,     0,
+   820,   131,     8,     9,     0,    11,    12,     0,    32,     0,
+   536,    13,   174,   821,   538,     0,     0,   130,     0,    75,
+    21,     0,     0,     0,     0,   618,    16,   618,    17,   618,
+     0,     0,     0,    26,    20,    27,    28,     0,     0,   215,
+   131,     0,     0,    23,     0,     0,     0,     0,   546,    30,
+     0,     0,    26,     0,   111,   112,     0,     0,     0,    31,
+     0,   174,   174,     0,   174,     0,     0,    32,     0,     0,
+     0,     0,    33,   223,     0,     0,     0,     0,     0,     0,
+     0,     0,   215,     0,    97,     0,   532,     0,   131,   131,
+   548,   754,   223,     0,   697,   556,     0,   700,     0,   131,
+     0,   702,   703,   705,   706,   707,     0,     0,     0,     0,
+     0,     0,     0,   618,   481,     0,   348,     0,   970,     0,
+   971,   310,     0,     0,     0,   724,     0,   223,     0,     0,
+   215,   977,     7,   109,   110,   775,   777,    12,     0,     0,
+   131,     0,     0,   131,     0,   223,     0,     0,   131,     0,
+     0,     0,    78,     0,     0,     0,     0,   753,     0,     0,
+     0,     0,     0,   775,   777,     0,     0,   174,   797,   174,
+    21,     0,     0,     0,   131,   778,   131,     0,   131,   131,
+   131,     0,   778,    26,   131,    27,    28,     0,     0,   131,
+     0,     0,   131,     0,     0,     0,     0,     0,     0,   135,
+     0,     0,     0,     0,     0,   215,    78,     0,     0,   136,
+     0,     0,     0,     0,     0,     0,     0,    32,     0,     0,
+     0,     0,   137,     7,     8,     9,     0,     0,    12,     0,
+     8,     9,   119,    11,    12,     0,     0,   624,     0,    13,
+     0,   215,   215,   215,   215,     0,  1003,     0,     0,     0,
+     0,     0,     0,     0,    16,     0,    17,    18,     0,     0,
+     0,    21,    20,     0,   183,     0,   191,     0,     0,     0,
+   590,    23,     0,   533,    26,     0,    27,    28,     0,     0,
+    26,     0,   111,   112,     0,     0,     0,  1003,  1003,  1003,
+   164,     0,     0,     0,     0,     0,   534,   215,     0,   131,
+   165,   618,    97,     0,     0,     0,   535,     0,    32,     0,
+     0,   131,   131,   166,   548,     0,   536,   174,     0,   537,
+   538,   798,     0,   625,     0,     0,     8,     9,   176,    11,
+   177,     0,     0,   556,   183,    13,     0,     0,     0,     0,
+     0,   970,   971,   775,   777,     0,     0,     0,     0,   977,
+    16,     0,    17,    18,     0,     0,     0,     0,    20,     0,
+     0,     0,     0,   114,   775,   777,     0,    23,   131,   548,
+   131,   131,     0,   548,     0,     0,    26,     0,   111,   112,
+     0,     0,     8,     9,   653,   215,     8,     9,   119,    11,
+    12,   191,   954,  1368,     0,    13,     0,     0,     0,   420,
+   191,     0,     0,     0,     0,   131,     0,     0,   654,   548,
+    16,     0,    17,    18,     0,   655,   131,   131,    20,   131,
+     0,   724,     0,   656,     7,   109,   110,    23,   434,   439,
+     0,   778,    26,   878,   111,   112,    26,     0,   111,   112,
+     0,   118,     0,     0,    78,     0,   970,   971,     0,   977,
+   907,    78,    78,     0,   590,     0,   996,     0,     0,   778,
+     0,   215,    21,   215,     0,     0,     0,     0,     0,     0,
+   131,   131,   131,     0,     0,    26,     0,    27,    28,     0,
+     0,   131,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,    30,   778,     0,     0,     7,     8,     9,   119,    11,
+    12,    31,     0,   624,     0,    13,  1029,     0,     0,    32,
+     0,     0,     0,  1036,    33,     0,     0,     0,     0,     0,
+    16,     0,    17,    18,     0,     0,     0,     0,    20,     0,
+     0,   215,     0,    21,     0,     0,     0,    23,     0,   533,
+     0,     0,     0,     0,     0,     0,    26,     0,    27,    28,
+     0,   131,    49,   131,     0,     0,     0,     0,     0,     0,
+   215,     0,   999,     0,   131,     0,   215,     0,   798,   798,
+   798,     0,  1000,    49,     0,   556,     0,     0,    49,    49,
+    32,   138,   536,    49,     0,  1001,   538,     0,    49,   625,
+     0,     0,     0,   215,     0,   215,   131,   131,   548,    49,
+     0,    49,     7,     8,     9,     0,     0,   213,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   434,     0,     0,
+     0,     0,     0,   221,   420,   191,     0,     0,   434,     0,
+     0,   798,   420,     0,     0,    49,   398,   400,   404,   778,
+    21,     0,     0,     0,     0,   215,     0,     0,   895,   896,
+     9,     0,     0,    26,     0,    27,    28,     0,     0,   215,
+   778,   215,     0,   345,     0,   345,   345,     0,     0,   164,
+    49,   215,     0,     0,     0,     0,    49,     0,   221,   165,
+    49,     0,     0,   138,   138,   138,    21,    32,     0,     0,
+     0,     0,   166,     0,    78,     0,     0,    49,     0,    26,
+     0,    27,    28,   215,     0,   215,     0,   897,     0,     0,
+     0,     0,    49,    49,   138,   164,     7,     8,     9,   185,
+   186,   187,   221,     0,     0,   165,    13,     0,     0,     0,
+     0,     0,     0,    32,     0,     0,   131,   131,   166,   131,
+     0,    49,   109,   110,    18,     0,   213,     0,     0,    20,
+     0,     0,     0,     0,    21,     0,     0,     0,    23,     0,
+   533,     0,     0,  1029,     0,     0,     0,    26,     0,    27,
+    28,     0,    49,     0,   131,   131,   131,   131,   548,     0,
+     0,     0,   131,   164,     0,   533,   215,     0,     0,     0,
+     0,     0,    26,   165,   111,   112,     0,   798,   798,   798,
+     0,    32,     0,   183,     0,   191,  1287,     0,   534,     0,
+     0,     0,     0,     0,     0,     0,   215,     0,   535,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   536,     0,
+   131,   537,   538,     0,     0,   131,     0,    78,     0,   191,
+   478,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     7,     8,     9,     0,     0,    12,     0,   345,     0,     0,
+   420,     0,     0,   434,     0,   221,     0,     0,     0,   637,
+    49,   638,     0,   398,   400,   404,     0,     0,     0,   131,
+   131,     0,   131,     0,   648,   183,     0,   345,    21,     0,
+     0,   434,     0,     0,     0,     0,   345,     0,     0,     0,
+     0,    26,   215,    27,    28,     0,     0,     0,     0,     0,
+     0,    49,     0,     0,    49,     0,     0,   401,     0,    49,
+     0,     0,     0,    49,     0,     0,     0,   402,     0,  -332,
+     8,     9,  -332,    11,   213,    32,     0,     0,     0,    13,
+   403,     7,     8,     9,     0,    49,   439,    49,     0,   138,
+   138,   138,     0,     0,    16,    49,    17,  -332,     0,     0,
+    49,     0,    20,    49,     0,     0,     0,  -332,   481,     0,
+     0,    23,     0,   533,     0,     0,     0,    49,     0,    21,
+    26,   590,   111,   112,     0,   131,   548,   131,     0,     0,
+     0,     0,    26,     0,    27,    28,   534,     0,     0,  1144,
+  1145,     9,     0,     0,   478,     0,   535,   478,   164,     0,
+     0,     0,     0,     0,  -332,     0,   536,     0,   165,   537,
+   538,     0,   478,   478,   478,     0,    32,     0,     0,     0,
+     0,   166,     0,     0,     0,   478,    73,    21,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    26,     0,    27,    28,     0,     0,     0,    73,  1146,     0,
+     0,     0,    73,    73,   798,    73,   164,    73,     0,     0,
+     0,     0,    73,     0,     0,     0,   165,     0,     0,   221,
+     7,   109,   110,    73,    32,    73,     0,     0,     0,   166,
+     0,     0,   478,     0,     0,     0,     0,     0,   434,   434,
+     0,     0,     0,     0,     0,   798,   798,   798,     0,     0,
+     0,   637,   638,     0,   648,     0,     0,     0,    21,    73,
+   215,     0,     0,     0,     0,     0,     0,   434,     0,     0,
+     0,    26,     0,    27,    28,   131,     0,     0,     0,    49,
+    49,    49,    49,     0,     0,   904,     0,   135,     0,     0,
+     0,     0,   109,   110,    73,   186,   187,   136,   109,   110,
+    73,    13,   439,     0,    73,    32,     0,    73,    73,    73,
+   137,     0,     0,     0,     0,     0,    49,     0,     0,     0,
+    49,    73,     0,     0,    20,     0,     0,    49,    49,     0,
+    49,     0,     0,    23,     0,   533,    73,    73,    73,     0,
+     0,   533,    26,     0,   111,   112,     0,     0,    26,     0,
+   111,   112,     0,     0,     0,    49,     0,     0,   534,     0,
+     0,    49,    49,    49,   534,    73,     0,     0,   535,     0,
+     0,  1144,   109,   110,   535,     0,     0,     0,   536,     0,
+     0,   537,   538,     0,   536,     0,   478,   537,   538,     0,
+     0,     0,     0,     0,     0,     0,    73,     0,     0,     0,
+     0,     0,   434,   434,     0,   434,   434,     0,   434,    21,
+     0,     0,     0,     0,   662,     0,     7,     8,   663,   119,
+    11,    12,    26,     0,    27,    28,    13,     0,     0,     0,
+  1146,   398,   400,   404,     0,     0,     0,     0,    30,     0,
+     0,    16,     0,    17,    18,    19,     0,     0,    31,    20,
+  -469,   539,   539,   539,    21,     0,    32,     0,    23,   664,
+     0,    33,     0,     0,     0,     0,   404,    26,     0,    27,
+    28,     0,     0,   665,     0,   666,     0,     0,     0,   478,
+   478,   478,     0,    30,     0,   221,     0,     0,     0,     0,
+   555,   434,   434,    31,    73,     0,   143,     0,     0,     0,
+     0,    32,     0,     7,     8,     9,    33,    49,    49,   138,
+     0,     0,     0,     0,   175,     0,     0,     0,     0,     0,
+     0,     0,     0,  -469,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    73,     0,     0,    73,     0,
+     0,    21,  1023,    73,     0,     0,     0,    73,     0,     0,
+     0,     0,     0,     0,    26,     0,    27,    28,     0,     0,
+   183,   191,     0,     0,     0,     0,     0,     0,     0,    73,
+   164,    73,     0,    73,    73,    73,     0,     0,     0,    73,
+   165,   434,   434,   434,    73,   175,     0,    73,    32,     0,
+     0,     0,     0,   166,   221,     0,     0,     0,   143,   143,
+   143,    73,     0,     0,     0,    49,     0,     0,     0,   637,
+   638,   398,   400,   404,     0,     0,     0,   648,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   175,   175,   405,
+     0,     0,   398,   400,   404,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     7,     8,     9,     0,   434,
+   434,     0,     0,     0,     0,     0,   175,     0,     0,     0,
+     0,     0,     0,     0,     0,  1150,     0,     0,     0,     0,
+     0,     0,   221,     0,   539,   539,     0,   539,     0,     0,
+     0,     0,     0,    21,   795,    49,    49,   138,   138,   138,
+     0,   221,     0,    49,     0,     0,    26,     0,    27,    28,
+     0,     0,     0,     0,   555,     0,     0,     0,  1023,  1023,
+  1023,     0,   401,     0,   637,   638,     0,   648,     0,     0,
+   224,     0,   402,     0,     0,     0,   452,     0,     0,     0,
+    32,   539,     0,   539,   539,   403,   539,     0,     0,     0,
+     0,    49,     0,     0,     0,     0,    49,     0,    49,     0,
+     0,     0,     0,     0,     0,   434,     0,     0,     0,     0,
+     0,     0,     0,    73,    73,    73,    73,     0,   539,     0,
+     0,   173,     0,     0,   541,   541,   541,     0,     0,     0,
+   841,     0,     0,     0,     0,   175,   371,     0,     0,     0,
+    49,    49,     0,    49,     0,   222,     0,     0,   226,     0,
+    73,     0,     0,     0,    73,   396,     0,     0,     0,     0,
+     0,    73,    73,     0,    73,     0,     0,   222,   412,   329,
+     0,     0,     0,     0,     0,     0,     0,     8,     9,   119,
+    11,    12,     0,     0,     0,     0,    13,     0,     0,    73,
+     0,     0,   173,     0,   539,    73,    73,    73,     0,     0,
+     0,    16,     0,    17,    18,     0,     0,     0,     0,    20,
+   175,     0,   175,     0,   405,   405,   405,     0,   586,     0,
+   175,     0,     0,     0,     0,   175,     0,    26,   175,   111,
+   112,     0,     0,     0,   173,   173,   173,     0,     0,     0,
+     0,     0,     0,     0,   411,     0,    49,    49,    49,   404,
+     0,     0,     8,     9,     0,    11,   213,     0,     0,     0,
+     0,    13,     0,   173,   539,     0,   539,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    16,   539,    17,     0,
+     0,   795,   795,   795,    20,   226,     0,     0,     0,     0,
+   398,   400,   404,    23,     0,     0,     0,   222,     0,     0,
+     0,     0,    26,     0,   111,   112,     0,     0,     0,   539,
+   539,   539,     0,     0,     0,     0,     0,     0,     0,     0,
+   555,     0,     0,     0,     0,  1023,     0,     0,     0,     0,
+     0,     0,     0,    71,     0,   763,     0,     0,     0,     0,
+     0,    73,    73,    73,   795,     0,     0,   541,   541,     0,
+   541,     0,     0,     0,   125,     0,     0,   541,     0,   129,
+   133,     0,     0,     0,    71,     0,  1023,  1023,  1023,    71,
+     0,     0,     0,     0,     0,     0,  1025,     0,     0,     0,
+     0,     0,   184,     0,     0,     0,     0,   222,   226,     0,
+     0,     0,   173,     0,     0,     0,    49,     0,   642,     0,
+     0,     0,     0,   647,   823,     0,   823,   823,     0,   541,
+     0,     0,     0,     0,     0,     0,   324,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   683,     0,
+   685,     0,     0,     0,     0,     0,     0,     0,     0,    73,
+     0,   823,   693,   694,     0,   695,     0,     0,     0,     0,
+     0,     0,   175,   175,     0,   175,     0,   358,     0,     0,
+     0,   360,     0,     0,     0,     0,     0,   173,     0,   173,
+     0,   173,   173,   173,     0,     0,     0,   173,    71,     0,
+     0,     0,   173,     0,     0,   173,   175,   539,   539,   539,
+   539,   539,     0,   129,   133,   539,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   452,   452,   452,     0,
+   795,   795,   795,     0,     0,     0,     0,   541,     0,    73,
+    73,    73,    73,    73,     0,     0,     0,    73,     0,     0,
+     0,   841,     0,   786,   787,     0,     0,     0,   786,     0,
+     0,     0,  1025,  1025,  1025,     0,     0,     0,     0,     0,
+     0,     0,     0,   440,   498,   499,   500,   501,   502,   503,
+   504,   505,   506,   507,   508,   509,   510,   662,     0,     7,
+     8,   663,   119,    11,    12,    73,     0,     0,     0,    13,
+    73,     0,    73,     0,     0,     0,     0,   541,     0,   541,
+     0,     0,   539,   539,    16,   539,    17,    18,    19,     0,
+   541,     0,    20,  -470,   541,   541,   541,    21,     0,     0,
+     0,    23,   664,     0,     0,     0,     0,   222,   226,     0,
+    26,     0,    27,    28,    73,    73,   665,    73,   666,     0,
+     0,     0,   823,   823,  1004,     0,    30,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    31,     0,     0,     8,
+     9,     0,    11,    12,    32,     0,     0,     0,    13,    33,
+     0,   173,     0,   173,   173,     0,     0,  1004,     0,     0,
+     0,     0,     0,    16,     0,    17,  -470,     0,     0,     0,
+   925,    20,   927,     0,     0,     0,     0,     0,     0,     0,
+    23,     0,   600,     0,     0,   601,     0,     0,   173,    26,
+   603,   111,   112,     0,   125,     0,     0,     0,     0,   173,
+   173,     0,   173,     0,     0,   662,     0,     7,     8,   663,
+   119,    11,    12,     0,     0,     0,   358,    13,   360,     0,
+    73,    73,    73,     0,     0,     0,     0,     0,     0,     0,
+     0,   440,    16,   173,    17,    18,    19,     0,     0,     0,
+    20,  -472,     0,   959,   960,    21,   962,     0,   678,    23,
+   664,     0,     0,     0,     0,     0,     0,     0,    26,     0,
+    27,    28,   763,   763,   665,   763,   666,     0,     0,     0,
+     0,   978,     0,     0,    30,     0,     0,     7,     8,     9,
+   185,   186,   187,     0,    31,     0,     0,    13,     0,     0,
+     0,     0,    32,     0,     0,     0,     0,    33,     0,  1025,
+   823,   823,  1004,  1004,  1004,    18,  1005,     0,   823,     0,
+    20,     0,     0,     0,  -472,    21,     0,     0,     0,    23,
+     0,   533,     0,  1004,  1004,  1004,     0,     0,    26,     0,
+    27,    28,     0,     0,     0,     0,     0,     0,     0,     0,
+  1025,  1025,  1025,     0,   819,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   820,     0,   175,   222,   226,   222,
+     0,     0,    32,     0,   536,     0,  1043,   854,   538,     0,
+    73,     0,     0,     0,     0,     0,  1047,     0,     0,   173,
+   173,  1002,     0,     0,     0,     0,     0,     0,     0,     0,
+     7,     8,     9,   176,    11,   177,     0,     0,     0,     0,
+    13,     0,     0,     0,     0,   823,   823,     0,   823,     0,
+     0,   825,     0,     0,  1002,    16,    95,    17,    18,     0,
+     0,     0,     0,    20,     0,     0,    95,    95,    21,     0,
+     0,     0,    23,    95,    95,     0,    95,     0,     0,     0,
+     0,    26,     0,    27,    28,     0,     0,   178,     0,     0,
+     0,   861,     0,     0,     0,     0,  1094,    30,   600,   601,
+     0,   603,     0,     0,   206,     0,   411,    31,     0,     0,
+     0,     0,     0,     0,     0,    32,     0,     0,     0,     0,
+    33,     0,     0,     0,     0,     0,   678,  1105,     0,     0,
+     0,     0,   905,   912,   678,   496,   497,   498,   499,   500,
+   501,   502,   503,   504,   505,   506,   507,   508,   509,   510,
+     0,   175,     0,   175,     0,     0,    95,    95,    95,     0,
+    95,    95,     0,     0,     0,     0,     0,   355,     0,     0,
+     0,    95,     0,    95,    95,    95,     0,     0,    95,    95,
+    95,     0,     0,     0,   222,     0,  1159,  1160,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   173,   173,   173,
+   173,  1002,     0,  1104,     0,   173,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,  1175,
+  1002,  1002,  1002,     0,     0,     0,     0,     0,     0,     0,
+   405,   493,   494,   495,   496,   497,   498,   499,   500,   501,
+   502,   503,   504,   505,   506,   507,   508,   509,   510,     0,
+   426,     0,     0,   173,     0,     0,     0,     0,  1223,     0,
+     0,     0,  1224,     0,     0,     0,     0,    95,     0,     0,
+     0,   405,   405,   405,     0,     0,     0,     0,   129,   133,
+     0,     0,     0,     0,  1242,  1243,   497,   498,   499,   500,
+   501,   502,   503,   504,   505,   506,   507,   508,   509,   510,
+     0,   175,   173,   173,     0,   173,    95,     0,     0,   623,
+     0,     7,     8,     9,   119,    11,   264,   265,   266,   624,
+   267,    13,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    16,   268,    17,    18,
+    19,     0,   269,   270,    20,     0,   271,   272,   273,    21,
+   274,   275,    95,    23,    95,    95,     0,   276,   277,   278,
+   279,   280,    26,     0,    27,    28,   560,     0,     0,   281,
+     0,     0,     0,     0,     0,   282,   678,     0,   283,     0,
+     0,     0,    95,     0,    95,     0,   286,   287,   288,     0,
+     0,    95,     0,     0,   289,   290,   291,     0,     0,     0,
+     0,   292,    95,     0,     0,   625,    95,     0,   173,    95,
+   173,     0,     0,     0,    95,     0,     0,  -716,     0,   293,
+     0,     0,     0,   662,     0,     7,     8,   663,   119,    11,
+    12,     0,     0,     0,     0,    13,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    16,     0,    17,    18,    19,     0,   358,   360,    20,  -471,
+     0,     0,     0,    21,   440,     0,     0,    23,   664,     0,
+     0,     0,     0,     0,     0,     0,    26,     0,    27,    28,
+     0,     0,   665,  1318,   666,     0,     0,  1002,     0,     0,
+     0,     0,    30,     0,    95,     0,     0,     0,     0,     0,
+     0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
+    32,     0,  1151,     0,     0,    33,     0,  1151,     0,   678,
+     0,     0,     0,     0,     0,     0,     0,     0,  1002,  1002,
+  1002,     0,  -471,     0,  1319,   489,   490,   491,   492,   493,
+   494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
+   504,   505,   506,   507,   508,   509,   510,     0,   173,     0,
+     0,   600,   601,     0,   603,    95,     0,     0,     0,     0,
+     0,     0,     0,     0,    95,    95,     0,    95,    95,     0,
+     0,     0,     0,     0,  1236,     0,  -427,  -427,  -427,  -427,
+  -427,  -427,     0,     0,  -427,     0,  -427,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,  -427,     0,  -427,
+  -427,     0,     0,     0,  -427,     0,     0,     0,     0,  -427,
+     0,     0,     0,     0,  -427,     0,     0,     0,  -427,    95,
+  -427,     0,     0,     0,     0,     0,     0,  -427,   206,  -427,
+  -427,  -427,  -427,  -427,     0,  -427,  -427,  -427,  -427,  -427,
+  -427,  -427,  -427,  -427,  -427,  -427,  -427,  -427,  -427,  -427,
+  -427,  -427,  -427,  -427,  -427,  -427,  -427,  -427,  1286,  -427,
+  -427,  -427,     0,  -427,  -427,  -427,  -427,  -427,  -427,    18,
+  -427,  -427,     0,     0,     0,     0,  1237,     0,     0,     0,
+     0,  -427,  -427,  -427,     0,  -427,     0,     0,     0,    95,
+     0,     0,     0,     0,     0,     0,     0,    95,     0,     0,
+     0,   489,   490,   491,   492,   493,   494,   495,   496,   497,
+   498,   499,   500,   501,   502,   503,   504,   505,   506,   507,
+   508,   509,   510,     0,     0,     0,    95,    95,    95,     0,
+     0,     0,     0,     0,     0,     0,  1289,    95,  1187,  1188,
+  1189,   119,    11,   264,   265,   266,     0,   267,    13,  1190,
+     0,  1191,  1192,  1193,  1194,  1195,  1196,  1197,  1198,  1199,
+  1200,    14,    15,    16,   268,    17,    18,    19,     0,   269,
+   270,    20,     0,   271,   272,   273,    21,   274,   275,     0,
+    23,     0,     0,     0,   276,   277,   278,   279,   280,    26,
+     0,  1201,    28,   611,     0,  1202,   281,     0,     0,     0,
+     0,     0,   282,     0,     0,   283,     0,    95,     0,    95,
+     0,     0,     0,   286,   287,   288,     0,     0,     0,     0,
+    95,   289,   290,   291,     0,     0,     0,     0,   292,     0,
+  1203,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,  1290,   293,  1186,     0,  1187,
+  1188,  1189,   119,    11,   264,   265,   266,     0,   267,    13,
+  1190,     0,  1191,  1192,  1193,  1194,  1195,  1196,  1197,  1198,
+  1199,  1200,    14,    15,    16,   268,    17,    18,    19,     0,
+   269,   270,    20,     0,   271,   272,   273,    21,   274,   275,
+     0,    23,     0,     0,     0,   276,   277,   278,   279,   280,
+    26,     0,  1201,    28,   611,     0,  1202,   281,     0,     0,
+    95,    95,     0,   282,     0,     0,   283,     0,     0,     0,
+     0,     0,     0,     0,   286,   287,   288,     0,     0,     0,
+     0,     0,   289,   290,   291,     0,     0,     0,     0,   292,
+    95,  1203,     0,     0,     0,   489,   490,   491,   492,   493,
+   494,   495,   496,   497,   498,   499,   500,   293,   502,   503,
+   504,   505,   506,   507,   508,   509,   510,     0,     0,   473,
+     0,     7,     8,     9,   119,    11,   264,   265,   266,   624,
+   267,    13,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,    95,    95,     0,    95,    16,   268,    17,    18,
+    19,     0,   269,   270,    20,     0,   271,   272,   273,    21,
+   274,   275,     0,    23,     0,   533,     0,   276,   277,   278,
+   279,   280,    26,     0,    27,    28,  -263,     0,     0,   281,
+     0,     0,     0,     0,     0,   282,     0,     0,   791,     0,
+     0,     0,     0,     0,     0,     0,   286,   287,   792,     0,
+     0,     0,     0,     0,   289,   290,   291,     0,   536,     0,
+     0,   793,   538,     0,     0,   625,     0,     0,     0,     0,
+     0,    95,     0,     0,     0,     0,     0,     0,     0,   293,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    95,
+   473,    95,     7,     8,     9,   119,    11,   264,   265,   266,
+   624,   267,    13,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    16,   268,    17,
+    18,    19,     0,   269,   270,    20,     0,   271,   272,   273,
+    21,   274,   275,     0,    23,     0,   533,     0,   276,   277,
+   278,   279,   280,    26,     0,    27,    28,  -263,     0,     0,
+   281,     0,     0,     0,     0,     0,   282,     0,     0,  1020,
+     0,     0,     0,     0,     0,     0,     0,   286,   287,  1021,
+     0,     0,     0,     0,     0,   289,   290,   291,     0,   536,
+     0,     0,  1022,   538,     0,   727,   625,     7,     8,     9,
+   119,    11,   264,   265,   266,     0,   267,    13,     0,     0,
+   293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,    16,   268,    17,    18,    19,     0,   269,   270,
+    20,     0,   271,   272,   273,    21,   274,   275,     0,    23,
+     0,     0,     0,   276,   277,   278,   279,   280,    26,     0,
+    27,    28,  1351,     0,  -706,   281,     0,     0,     0,     0,
+     0,   282,     0,     0,   283,     0,     0,     0,     0,     0,
+     0,     0,   286,   287,   288,     0,     0,     0,     0,     0,
+   289,   290,   291,     0,     0,     0,   614,   292,   715,   716,
+   717,     0,    11,   455,   265,   266,     0,   267,    13,     0,
+     0,     0,     0,     0,     0,   293,     0,     0,     0,     0,
+     0,     0,     0,    16,   268,    17,     0,    19,     0,   269,
+   270,    20,     0,   271,   272,   273,    21,   274,   275,     0,
+    23,     0,     0,     0,   276,   277,   278,   279,   280,    26,
+     0,   718,   719,   615,     0,     0,   281,     0,     0,     0,
+     0,     0,   282,     0,     0,   283,     0,     0,     0,     0,
+     0,     0,     0,   286,   287,   288,     0,     0,     0,     0,
+     0,   289,   290,   291,     0,     0,     0,     0,   292,   720,
+   614,     0,   715,   716,   717,     0,    11,   455,   265,   266,
+     0,   267,    13,     0,     0,   845,   293,     0,     0,  1075,
+     0,     0,     0,     0,     0,     0,     0,    16,   268,    17,
+     0,    19,     0,   269,   270,    20,     0,   271,   272,   273,
+    21,   274,   275,     0,    23,     0,     0,     0,   276,   277,
+   278,   279,   280,    26,     0,   718,   719,   615,     0,     0,
+   281,     0,     0,     0,     0,     0,   282,     0,     0,   283,
+     0,     0,     0,     0,     0,     0,     0,   286,   287,   288,
+     0,     0,     0,     0,     0,   289,   290,   291,     0,     0,
+     0,     0,   292,   614,     0,   715,   716,   717,     0,    11,
+   455,   265,   266,     0,   267,    13,     0,     0,     0,  -431,
+   293,     0,  1075,     0,     0,     0,     0,     0,     0,     0,
+    16,   268,    17,     0,    19,     0,   269,   270,    20,     0,
+   271,   272,   273,    21,   274,   275,     0,    23,     0,     0,
+     0,   276,   277,   278,   279,   280,    26,     0,   718,   719,
+   615,     0,     0,   281,     0,     0,     0,     0,     0,   282,
+     0,     0,   283,     0,     0,     0,     0,     0,     0,     0,
+   286,   287,   288,     0,     0,     0,     0,     0,   289,   290,
+   291,     0,     0,     0,   614,   292,   715,   716,   717,     0,
+    11,   455,   265,   266,     0,   267,    13,     0,     0,     0,
+     0,     0,  1118,   293,     0,     0,     0,     0,     0,     0,
+     0,    16,   268,    17,     0,    19,     0,   269,   270,    20,
+     0,   271,   272,   273,    21,   274,   275,     0,    23,     0,
+     0,     0,   276,   277,   278,   279,   280,    26,     0,   718,
+   719,   615,     0,     0,   281,     0,     0,     0,     0,     0,
+   282,     0,     0,   283,     0,     0,     0,     0,     0,     0,
+     0,   286,   287,   288,     0,     0,     0,     0,     0,   289,
+   290,   291,     0,     0,     0,     0,   292,   720,   614,     0,
+     7,     8,     9,     0,    11,   455,   265,   266,     0,   267,
+    13,     0,     0,     0,   293,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    16,   268,    17,     0,    19,
+     0,   269,   270,    20,     0,   271,   272,   273,    21,   274,
+   275,     0,    23,     0,     0,     0,   276,   277,   278,   279,
+   280,    26,     0,    27,    28,   615,     0,     0,   281,   228,
+     0,     0,     8,     9,   282,    11,    12,   283,     0,     0,
+     0,    13,     0,     0,     0,   286,   287,   288,     0,     0,
+     0,     0,     0,   289,   290,   291,    16,     0,    17,     0,
+   292,     0,     0,     0,    20,     0,   229,   230,     0,  1122,
+     0,     0,     0,    23,     0,   231,     0,     0,   293,     0,
+     0,     0,    26,     0,   111,   112,     0,   232,     0,     0,
+     0,   233,   234,   235,   236,   237,   238,   239,   240,   241,
+   242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
+   252,   253,     0,     0,   254,   255,   256,     0,     0,   257,
+     0,   473,   258,     7,     8,     9,     0,    11,   264,   265,
+   266,     0,   267,    13,     0,     0,     0,     0,     0,   259,
+     0,     0,     0,     0,     0,     0,     0,     0,    16,   268,
+    17,     0,    19,     0,   269,   270,    20,     0,   271,   272,
+   273,    21,   274,   275,     0,    23,     0,     0,     0,   276,
+   277,   278,   279,   280,    26,     0,    27,    28,  -263,     0,
+     0,   281,     0,     0,     0,     0,     0,   282,     0,     0,
+   474,     0,     0,     0,     0,     0,     0,     0,   286,   287,
+   475,     0,     0,     0,     0,     0,   289,   290,   291,     0,
+     0,     0,   614,   476,     7,     8,     9,     0,    11,   455,
+   265,   266,     0,   267,    13,     0,     0,     0,     0,     0,
+     0,   293,     0,     0,     0,     0,     0,     0,     0,    16,
+   268,    17,     0,    19,     0,   269,   270,    20,     0,   271,
+   272,   273,    21,   274,   275,     0,    23,     0,     0,     0,
+   276,   277,   278,   279,   280,    26,     0,    27,    28,   615,
+     0,     0,   281,     0,     0,     0,     0,     0,   282,     0,
+     0,   283,     0,     0,     0,     0,     0,     0,     0,   286,
+   287,   288,     0,     0,     0,     0,     0,   289,   290,   291,
+     0,     0,     0,   727,   292,     7,     8,     9,     0,    11,
+   455,   265,   266,     0,   267,    13,     0,     0,     0,     0,
+     0,     0,   293,     0,     0,     0,     0,     0,     0,     0,
+    16,   268,    17,     0,    19,     0,   269,   270,    20,     0,
+   271,   272,   273,    21,   274,   275,     0,    23,     0,     0,
+     0,   276,   277,   278,   279,   280,    26,     0,    27,    28,
+     0,     0,     0,   281,  -706,     0,     0,     0,     0,   282,
+     0,     0,   283,     0,     0,     0,     0,     0,     0,     0,
+   286,   287,   288,     0,     0,     0,     0,     0,   289,   290,
+   291,     0,     0,     0,   473,   292,     7,     8,     9,     0,
+    11,   264,   265,   266,     0,   267,    13,     0,     0,     0,
+     0,     0,     0,   293,     0,     0,     0,     0,     0,     0,
+     0,    16,   268,    17,     0,    19,     0,   269,   270,    20,
+     0,   271,   272,   273,    21,   274,   275,     0,    23,     0,
+     0,     0,   276,   277,   278,   279,   280,    26,     0,    27,
+    28,  -263,     0,     0,   281,     0,     0,     0,     0,     0,
+   282,     0,     0,  1328,     0,     0,     0,     0,     0,     0,
+     0,   286,   287,  1329,     0,     0,     0,     0,     0,   289,
+   290,   291,     0,     0,     0,  1418,  1330,     7,     8,     9,
+     0,    11,   264,   265,   266,     0,   267,    13,     0,     0,
+     0,     0,     0,     0,   293,     0,     0,     0,     0,     0,
+     0,     0,    16,   268,    17,     0,    19,     0,   269,   270,
+    20,     0,   271,   272,   273,    21,   274,   275,     0,    23,
+     0,     0,     0,   276,   277,   278,   279,   280,    26,     0,
+    27,    28,     0,     0,  -162,   281,     0,     0,     0,     0,
+     0,   282,     0,     0,   283,     0,     0,     0,     0,     0,
+     0,     0,   286,   287,   288,     0,     0,     0,     0,     0,
+   289,   290,   291,     0,     0,     0,   727,   292,     7,     8,
+     9,     0,    11,   455,   265,   266,     0,   267,    13,     0,
+     0,     0,     0,     0,     0,   293,     0,     0,     0,     0,
+     0,     0,     0,    16,   268,    17,     0,    19,     0,   269,
+   270,    20,     0,   271,   272,   273,    21,   274,   275,     0,
+    23,     0,     0,     0,   276,   277,   278,   279,   280,    26,
+     0,    27,    28,     0,     0,     0,   281,     0,     0,     0,
+     0,     0,   282,     0,     0,   283,     0,     0,     0,     0,
+     0,     0,     0,   286,   287,   288,     0,     0,     0,     0,
+     0,   289,   290,   291,     0,     0,     0,   805,   292,     7,
+     8,     9,     0,    11,   455,   265,   266,     0,   267,    13,
+     0,     0,     0,     0,  -706,     0,   293,     0,     0,     0,
+     0,     0,     0,     0,    16,   268,    17,     0,    19,     0,
+   269,   270,    20,     0,   271,   272,   273,    21,   274,   275,
+     0,    23,     0,     0,     0,   276,   277,   278,   279,   280,
+    26,     0,    27,    28,     0,     0,     0,   281,     0,     0,
+     0,     0,     0,   282,     0,     0,   283,     0,     0,     0,
+     0,     0,     0,     0,   286,   287,   288,     0,     0,     0,
+     0,     0,   289,   290,   291,     0,     0,     0,   807,   292,
+     7,     8,     9,     0,    11,   455,   265,   266,     0,   267,
+    13,     0,     0,     0,     0,     0,     0,   293,     0,     0,
+     0,     0,     0,     0,     0,    16,   268,    17,     0,    19,
+     0,   269,   270,    20,     0,   271,   272,   273,    21,   274,
+   275,     0,    23,     0,     0,     0,   276,   277,   278,   279,
+   280,    26,     0,    27,    28,     0,     0,     0,   281,     0,
+     0,     0,     0,     0,   282,     0,     0,   283,     0,     0,
+     0,     0,     0,     0,     0,   286,   287,   288,     0,     0,
+     0,     0,     0,   289,   290,   291,     0,     0,     0,  1303,
+   292,     7,     8,     9,     0,    11,   455,   265,   266,     0,
+   267,    13,     0,     0,     0,     0,     0,     0,   293,     0,
+     0,     0,     0,     0,     0,     0,    16,   268,    17,     0,
+    19,     0,   269,   270,    20,     0,   271,   272,   273,    21,
+   274,   275,     0,    23,     0,     0,     0,   276,   277,   278,
+   279,   280,    26,     0,    27,    28,     0,     0,     0,   281,
+     0,     0,     0,     0,     0,   282,     0,     0,   283,     0,
+     0,     0,     0,     0,     0,     0,   286,   287,   288,     0,
+     0,     0,     0,     0,   289,   290,   291,     0,     7,     8,
+     9,   292,    11,   455,   265,   266,     0,   267,    13,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   293,
+     0,     0,     0,    16,   268,    17,     0,    19,     0,   269,
+   270,    20,     0,   271,   272,   273,    21,   274,   275,     0,
+    23,     0,     0,     0,   276,   277,   278,   279,   280,    26,
+     0,    27,    28,     0,     0,     0,   281,     0,     0,     0,
+     0,     0,   282,     0,     0,   283,     0,     0,     0,     0,
+     0,     0,     0,   286,   287,   288,     0,     0,     0,     0,
+     0,   289,   290,   291,     0,     0,     0,     0,   292,   494,
+   495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
+   505,   506,   507,   508,   509,   510,   293,   766,  1187,  1188,
+  1189,   119,    11,   264,   265,   266,     0,   267,    13,  1190,
+     0,  1191,  1192,  1193,  1194,  1195,  1196,  1197,  1198,  1199,
+  1200,    14,    15,    16,   268,    17,    18,    19,     0,   269,
+   270,    20,     0,   271,   272,   273,    21,   274,   275,     0,
+    23,     0,     0,     0,   276,   277,   278,   279,   280,    26,
+     0,  1201,    28,   611,     0,  1202,   281,     0,     0,     0,
+     0,     0,   282,     0,     0,   283,     0,     0,     0,     0,
+     0,     0,     0,   286,   287,   288,     0,     0,     0,     0,
+     0,   289,   290,   291,     0,     0,     0,     0,   292,     0,
+  1203,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,  1294,   293,  1187,  1188,  1189,
+   119,    11,   264,   265,   266,     0,   267,    13,  1190,     0,
+  1191,  1192,  1193,  1194,  1195,  1196,  1197,  1198,  1199,  1200,
+    14,    15,    16,   268,    17,    18,    19,     0,   269,   270,
+    20,     0,   271,   272,   273,    21,   274,   275,     0,    23,
+     0,     0,     0,   276,   277,   278,   279,   280,    26,     0,
+  1201,    28,   611,     0,  1202,   281,     0,     0,     0,     0,
+     0,   282,     0,     0,   283,     0,     0,     0,     0,     0,
+     0,     0,   286,   287,   288,     0,     0,     0,     0,     0,
+   289,   290,   291,     0,     0,     0,     0,   292,     0,  1203,
+     0,     0,     0,  1187,  1188,  1189,   119,    11,   264,   265,
+   266,     0,   267,    13,  1190,   293,  1191,  1192,  1193,  1194,
+  1195,  1196,  1197,  1198,  1199,  1200,    14,    15,    16,   268,
+    17,    18,    19,     0,   269,   270,    20,     0,   271,   272,
+   273,    21,   274,   275,     0,    23,     0,     0,     0,   276,
+   277,   278,   279,   280,    26,     0,  1201,    28,  1395,     0,
+  1202,   281,     0,     0,     0,     0,     0,   282,     0,     0,
+   283,     0,     0,     0,     0,     0,     0,     0,   286,   287,
+   288,     0,     0,     0,     0,     0,   289,   290,   291,     0,
+     0,     0,     0,   292,     0,  1203,     0,     0,     0,  1187,
+  1188,  1189,   119,    11,   264,   265,   266,     0,   267,    13,
+  1190,   293,  1191,  1192,  1193,  1194,  1195,  1196,  1197,  1198,
+  1199,  1200,    14,    15,    16,   268,    17,    18,    19,     0,
+   269,   270,    20,     0,   271,   272,   273,    21,   274,   275,
+     0,    23,     0,     0,     0,   276,   277,   278,   279,   280,
+    26,     0,  1201,    28,     0,     0,  1202,   281,     0,     0,
+     0,     0,     0,   282,     0,     0,   283,     0,     0,     0,
+     0,     0,     0,     0,   286,   287,   288,     0,     0,     0,
+     0,     0,   289,   290,   291,     0,     0,     0,     0,   292,
+     0,  1203,     7,     8,     9,   119,    11,   264,   265,   266,
+   624,   267,    13,     0,     0,     0,     0,   293,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    16,   268,    17,
+    18,    19,     0,   269,   270,    20,     0,   271,   272,   273,
+    21,   274,   275,     0,    23,     0,   533,     0,   276,   277,
+   278,   279,   280,    26,     0,    27,    28,     0,     0,     0,
+   281,     0,     0,     0,     0,     0,   282,     0,     0,   791,
+     0,     0,     0,     0,     0,     0,     0,   286,   287,   792,
+     0,     0,     0,     0,     0,   289,   290,   291,     0,   536,
+     0,     0,   793,   538,     0,     0,   625,     7,     8,     9,
+   119,    11,   264,   265,   266,   624,   267,    13,     0,     0,
+   293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,    16,   268,    17,    18,    19,     0,   269,   270,
+    20,     0,   271,   272,   273,    21,   274,   275,     0,    23,
+     0,   533,     0,   276,   277,   278,   279,   280,    26,     0,
+    27,    28,     0,     0,     0,   281,     0,     0,     0,     0,
+     0,   282,     0,     0,  1020,     0,     0,     0,     0,     0,
+     0,     0,   286,   287,  1021,     0,     0,     0,     0,     0,
+   289,   290,   291,     0,   536,     0,     0,  1022,   538,     0,
+     0,   625,     7,     8,     9,     0,    11,   264,   265,   266,
+     0,   267,    13,     0,     0,   293,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    16,   268,    17,
+     0,    19,     0,   269,   270,    20,     0,   271,   272,   273,
+    21,   274,   275,     0,    23,     0,     0,     0,   276,   277,
+   278,   279,   280,    26,     0,    27,    28,     0,     0,     0,
+   281,     0,     0,     0,     0,     0,   282,     0,     0,   283,
+     0,     0,     0,     0,   284,     0,   285,   286,   287,   288,
+     0,     0,     0,     0,     0,   289,   290,   291,     0,     7,
+     8,     9,   292,    11,   264,   265,   266,     0,   267,    13,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   293,     0,     0,     0,    16,   268,    17,     0,    19,     0,
+   269,   270,    20,     0,   271,   272,   273,    21,   274,   275,
+     0,    23,     0,   533,     0,   276,   277,   278,   279,   280,
+    26,     0,    27,    28,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   282,     0,     0,   791,     0,     0,     0,
+     0,     0,     0,     0,   286,   287,   792,     0,     0,     0,
+     0,     0,   289,   290,   291,     0,   536,     0,     0,   793,
+   538,     7,     8,     9,     0,    11,   264,   265,   266,     0,
+   267,    13,     0,     0,     0,     0,     0,   293,     0,     0,
+     0,     0,     0,     0,     0,     0,    16,   268,    17,     0,
+    19,     0,   269,   270,    20,     0,   271,   272,   273,    21,
+   274,   275,     0,    23,     0,   533,     0,   276,   277,   278,
+   279,   280,    26,     0,    27,    28,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   282,     0,     0,  1020,     0,
+     0,     0,     0,     0,     0,     0,   286,   287,  1021,     0,
+     0,     0,     0,     0,   289,   290,   291,     0,   536,     0,
+     0,  1022,   538,     7,     8,     9,     0,    11,   455,   265,
+   266,     0,   267,    13,     0,     0,     0,     0,     0,   293,
+     0,     0,     0,     0,     0,     0,     0,     0,    16,   268,
+    17,     0,    19,     0,   269,   270,    20,     0,   271,   272,
+   273,    21,   274,   275,     0,    23,     0,     0,     0,   276,
+   277,   278,   279,   280,    26,     0,    27,    28,     0,     0,
+  1271,   281,     0,     0,     0,     0,     0,   282,     0,     0,
+   283,     0,     0,     0,     0,     0,     0,     0,   286,   287,
+   288,     0,     0,     0,     0,     0,   289,   290,   291,     0,
+     0,     0,     0,   292,     7,     8,     9,   119,    11,   264,
+   265,   266,     0,   267,    13,     0,     0,     0,     0,     0,
+     0,   293,     0,     0,     0,     0,     0,     0,     0,    16,
+   268,    17,    18,    19,     0,   269,   270,    20,     0,   271,
+   272,   273,    21,   274,   275,     0,    23,     0,     0,     0,
+   276,   277,   278,   279,   280,    26,     0,    27,    28,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   282,     0,
+     0,   283,     0,     0,     0,     0,     0,     0,     0,   286,
+   287,   288,     0,     0,     0,     0,     0,   289,   290,   291,
+     0,     7,     8,     9,   292,    11,   264,   265,   266,     0,
+   267,    13,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   293,     0,     0,     0,    16,   268,    17,     0,
+    19,     0,   269,   270,    20,     0,   271,   272,   273,    21,
+   274,   275,     0,    23,     0,     0,     0,   276,   277,   278,
+   279,   280,    26,     0,    27,    28,     0,     0,     0,   281,
+     0,     0,     0,     0,     0,   282,     0,     0,   283,     0,
+     0,     0,     0,     0,     0,     0,   286,   287,   288,     0,
+     0,     0,     0,     0,   289,   290,   291,     0,     7,     8,
+     9,   292,    11,   455,   265,   266,     0,   267,    13,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   293,
+     0,     0,     0,    16,   268,    17,     0,    19,     0,   269,
+   270,    20,     0,   271,   272,   273,    21,   274,   275,     0,
+    23,     0,     0,     0,   276,   277,   278,   279,   280,    26,
+     0,    27,    28,     0,     0,     0,   281,     0,     0,     0,
+     0,     0,   282,     0,     0,   283,     0,     0,     0,     0,
+     0,     0,     0,   286,   287,   288,     0,     0,     0,     0,
+     0,   289,   290,   291,     0,     7,     8,     9,   292,    11,
+   455,   265,   266,     0,   267,    13,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
+    16,   268,    17,     0,    19,     0,   269,   270,    20,     0,
+   271,   272,   273,    21,   274,   275,     0,    23,     0,     0,
+     0,   276,   277,   278,   279,   280,    26,     0,    27,    28,
+   486,     0,     0,     0,     0,     0,     0,     0,     0,   282,
+     0,     0,   283,     0,     0,     0,     0,     0,     0,     0,
+   286,   287,   288,     0,     0,     0,     0,     0,   289,   290,
+   291,     0,     7,     8,     9,   487,    11,   455,   265,   266,
+     0,   267,    13,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   293,     0,     0,     0,    16,   268,    17,
+     0,    19,     0,   269,   270,    20,     0,   271,   272,   273,
+    21,   274,   275,     0,    23,     0,     0,     0,   276,   277,
+   278,   279,   280,    26,     0,    27,    28,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   282,     0,     0,   283,
+     0,     0,     0,     0,     0,     0,     0,   286,   287,   288,
+     0,     0,     0,     0,     0,   289,   290,   291,     0,     0,
+     0,     0,   292,   523,     7,     8,     9,     0,    11,   455,
+   265,   266,     0,   267,    13,     0,     0,     0,     0,     0,
+   293,     0,     0,     0,     0,     0,     0,     0,     0,    16,
+   268,    17,     0,    19,     0,   269,   270,    20,     0,   271,
+   272,   273,    21,   274,   275,     0,    23,     0,     0,     0,
+   276,   277,   278,   279,   280,    26,     0,    27,    28,     0,
+     0,     0,   281,     0,     0,     0,     0,     0,   282,     0,
+     0,   474,     0,     0,     0,     0,     0,     0,     0,   286,
+   287,   475,     0,     0,     0,     0,     0,   289,   290,   291,
+     0,   992,     8,     9,   476,    11,   455,   265,   266,     0,
+   267,    13,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   293,     0,     0,     0,    16,   268,    17,     0,
+    19,     0,   269,   270,    20,     0,   271,   272,   273,    21,
+   274,   275,     0,    23,     0,     0,     0,   276,   277,   278,
+   279,   280,    26,     0,    27,    28,     0,     0,     0,   281,
+     0,     0,     0,     0,     0,   282,     0,     0,   283,     0,
+     0,     0,     0,     0,     0,     0,   286,   287,   288,     0,
+     0,     0,     0,     0,   289,   290,   291,     0,     7,     8,
+     9,   292,    11,   455,   265,   266,     0,   267,    13,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   293,
+     0,     0,     0,    16,   268,    17,     0,    19,     0,   269,
+   270,    20,     0,   271,   272,   273,    21,   274,   275,     0,
+    23,     0,     0,     0,   276,   277,   278,   279,   280,    26,
+     0,    27,    28,     0,     0,     0,   281,     0,     0,     0,
+     0,     0,   282,     0,     0,  1328,     0,     0,     0,     0,
+     0,     0,     0,   286,   287,  1329,     0,     0,     0,     0,
+     0,   289,   290,   291,     0,     7,     8,     9,  1330,    11,
+   455,   265,   266,     0,   267,    13,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
+    16,   268,    17,     0,    19,     0,   269,   270,    20,     0,
+   271,   272,   273,    21,   274,   275,     0,    23,     0,     0,
+     0,   276,   277,   278,   279,   280,    26,     0,    27,    28,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   282,
+     0,     0,   283,     0,     0,     0,     0,     0,     0,     0,
+   286,   287,   288,     0,     0,     0,     0,     0,   289,   290,
+   291,     0,     7,     8,     9,   456,    11,   455,   265,   266,
+     0,   267,    13,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   293,     0,     0,     0,    16,   268,    17,
+     0,    19,     0,   269,   270,    20,     0,   271,   272,   273,
+    21,   274,   275,     0,    23,     0,     0,     0,   276,   277,
+   278,   279,   280,    26,     0,    27,    28,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   282,     0,     0,   283,
+     0,     0,     0,     0,     0,     0,     0,   286,   287,   288,
+     0,     0,     0,     0,     0,   289,   290,   291,     0,     7,
+     8,     9,   459,    11,   455,   265,   266,     0,   267,    13,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   293,     0,     0,     0,    16,   268,    17,     0,    19,     0,
+   269,   270,    20,     0,   271,   272,   273,    21,   274,   275,
+     0,    23,     0,     0,     0,   276,   277,   278,   279,   280,
+    26,     0,    27,    28,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   282,     0,     0,   283,     0,     0,     0,
+     0,     0,     0,     0,   286,   287,   288,     0,     0,     0,
+     0,     0,   289,   290,   291,     0,     7,     8,     9,   292,
+    11,   455,   265,   266,     0,   267,    13,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   293,     0,     0,
+     0,    16,   268,    17,     0,    19,     0,   269,   270,    20,
+     0,   271,   272,   273,    21,   274,   275,     0,    23,     0,
+     0,     0,   276,   277,   278,   279,   280,    26,     0,    27,
+    28,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   282,     0,     0,   474,     0,     0,     0,     0,     0,     0,
+     0,   286,   287,   475,     0,     0,     0,     0,     0,   289,
+   290,   291,     0,     7,     8,     9,   476,    11,   264,   265,
+   266,     0,   267,    13,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   293,     0,     0,     0,    16,   268,
+    17,     0,    19,     0,   269,   270,    20,     0,   271,   272,
+   273,    21,   274,   275,     0,    23,     0,     0,     0,   276,
+   277,   278,   279,   280,    26,     0,    27,    28,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   282,     0,     6,
+  1328,     7,     8,     9,    10,    11,    12,     0,   286,   287,
+  1329,    13,     0,     0,     0,     0,   289,   290,   291,     0,
+     0,     0,     0,  1330,    14,    15,    16,     0,    17,    18,
+    19,     0,     0,     0,    20,     0,     0,     0,     0,    21,
+     0,   293,    22,    23,    24,     0,    25,     0,     0,     0,
+     0,     0,    26,     0,    27,    28,     0,     0,    29,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    30,   150,
+     0,     7,     8,     9,    10,    11,    12,     0,    31,     0,
+     0,    13,     0,     0,     0,     0,    32,     0,     0,     0,
+     0,    33,     0,     0,    14,    15,    16,    34,    17,    18,
+    19,     0,     0,     0,    20,     0,     0,     0,     0,    21,
+     0,     0,    22,    23,    24,     0,    25,     0,     0,     0,
+     0,     0,    26,     0,    27,    28,     0,     0,    29,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    30,   662,
+     0,     7,     8,   663,   119,    11,    12,     0,    31,     0,
+     0,    13,     0,     0,     0,     0,    32,     0,     0,     0,
+     0,    33,     0,     0,     0,     0,    16,    34,    17,    18,
+    19,     0,     0,     0,    20,     0,     0,     0,     0,    21,
+     0,     0,     0,    23,   664,     0,     7,     8,     9,   119,
+    11,    12,    26,     0,    27,    28,    13,     0,   665,     0,
+   666,     0,     0,     0,     0,     0,     0,     0,    30,     0,
+     0,    16,     0,    17,    18,     0,     0,     0,    31,    20,
+     0,     0,     0,     0,    21,     0,    32,     0,    23,     0,
+     0,    33,     0,     0,     0,     0,     0,    26,     0,    27,
+    28,     7,     8,     9,   119,    11,    12,     0,     0,   860,
+     0,    13,     0,    30,     0,     0,     0,   120,     0,     0,
+     0,     0,     0,    31,     0,     0,    16,     0,    17,    18,
+     0,    32,     0,     0,    20,     0,    33,     0,     0,    21,
+     0,     0,     0,    23,     0,     0,   895,     8,   663,   176,
+    11,   177,    26,     0,    27,    28,    13,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    30,     0,
+     0,    16,     0,    17,    18,     0,     0,     0,    31,    20,
+     0,     0,     0,     0,    21,     0,    32,     0,    23,     0,
+     0,    33,     0,     0,     0,     0,     0,    26,     0,    27,
+    28,     0,     0,     0,     0,   897,     0,     7,     8,     9,
+   176,    11,   177,    30,     0,     0,     0,    13,     0,     0,
+     0,     0,     0,    31,     0,     0,     0,     0,     0,     0,
+     0,    32,    16,     0,    17,    18,    33,     0,     0,     0,
+    20,     0,     0,     0,     0,    21,     0,     0,     0,    23,
+     0,     0,     7,     8,     9,   119,    11,    12,    26,     0,
+    27,    28,    13,     0,  1284,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    30,     0,     0,    16,     0,    17,
+    18,     0,     0,     0,    31,    20,     0,     0,     0,     0,
+    21,     0,    32,     0,    23,     0,     0,    33,     0,     0,
+     0,     0,     0,    26,     0,    27,    28,     7,     8,     9,
+   176,    11,   177,     0,     0,     0,     0,    13,     0,    30,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
+     0,     0,    16,     0,    17,    18,     0,    32,     0,     0,
+    20,     0,    33,     0,     0,    21,     0,     0,     0,    23,
+     0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
+    27,    28,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
+     0,     0,    32,     0,     0,     0,     0,    33,   489,   490,
+   491,   492,   493,   494,   495,   496,   497,   498,   499,   500,
+   501,   502,   503,   504,   505,   506,   507,   508,   509,   510,
+   489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
+   499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
+   509,   510,     0,     0,     0,     0,     0,  1073,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   568,     0,     0,  1339,   489,   490,   491,   492,
+   493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
+   503,   504,   505,   506,   507,   508,   509,   510,  1248,   489,
+   490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
+   500,   501,   502,   503,   504,   505,   506,   507,   508,   509,
+   510,  1381,   489,   490,   491,   492,   493,   494,   495,   496,
+   497,   498,   499,   500,   501,   502,   503,   504,   505,   506,
+   507,   508,   509,   510,   489,   490,   491,   492,   493,   494,
+   495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
+   505,   506,   507,   508,   509,   510
+};
+
+static const short yycheck[] = {     4,
+   353,   387,   145,     4,    71,     4,   312,   135,   136,   180,
+   609,     4,   607,   353,   842,   428,    13,   318,    13,   844,
+    25,    58,    51,   318,    79,    22,    25,    25,   382,   409,
+    35,  1181,    25,  1316,    35,    40,    35,    30,    31,    40,
+    55,    40,    35,   214,     0,   755,   537,    40,    53,     4,
+   667,   188,   189,   544,   267,   268,   209,   180,   675,    50,
+   337,     4,    10,    68,    10,    75,   189,  1204,   117,   118,
+    25,    10,     1,  1351,    79,    86,    11,  1045,  1046,    84,
+    35,    86,    87,    78,    37,    40,    79,   300,    87,    87,
+   261,  1059,    35,   122,    87,   100,   101,    40,   388,     4,
+    33,  1349,     1,    60,    99,   395,    58,    86,     0,   684,
+    59,   686,    64,  1346,    62,   126,   113,   184,   123,   115,
+    25,   126,   118,    48,    59,  1373,   480,    62,     8,    58,
+    35,  1211,    87,    62,    93,    40,  1414,   134,  1218,  1333,
+    59,   312,   135,   136,   149,     1,   183,   126,    53,   140,
+   149,    93,   458,   110,   191,  1438,   149,   110,   538,    58,
+   109,   109,    97,   109,   454,   180,    95,    11,    33,  1402,
+   109,   164,   165,   188,   189,  1143,     4,   110,  1372,  1316,
+   171,    61,    87,    58,  1152,  1153,    93,  1155,    60,    47,
+    47,   110,     7,     8,   149,   608,    47,    25,    13,   214,
+    54,    47,    58,    33,  1452,   407,    62,    35,    62,  1403,
+   207,    24,    40,   415,   789,    59,    59,   227,    62,    59,
+   215,    36,    47,    54,    99,    60,   516,    74,   518,   519,
+    45,    60,    47,  1383,    93,    93,    93,    94,   110,    95,
+  1320,    62,    93,   953,   149,    58,   261,    93,    94,    62,
+   305,    79,   109,    97,    33,   556,   610,   262,   109,    87,
+   309,   551,    60,   109,    59,   109,   109,     6,    93,   109,
+   135,   136,   137,   401,   402,   110,   413,   414,    93,   632,
+  1360,   110,    95,    24,   421,   282,    47,   292,   109,   432,
+    62,   414,   632,   322,   431,    60,    47,   312,    37,   348,
+   305,   166,   793,   580,   406,   135,   136,   137,   313,   884,
+    54,   448,   305,    64,   109,   417,    60,   296,     4,   894,
+   108,   149,   628,   318,    54,  1405,     3,     4,     5,   326,
+   821,    31,    93,  1301,  1302,    47,   166,   109,    47,   336,
+    11,   320,    93,   339,   341,    35,    62,    54,   353,    35,
+    40,   926,   348,   928,    40,   353,   423,   136,   137,    58,
+   353,     4,     5,   854,    41,     4,     5,    74,   110,  1194,
+   375,   757,  1082,    26,    27,    47,   375,   375,   357,    56,
+    57,    93,   375,   420,    93,    94,    47,   166,    59,    47,
+   395,    62,    64,    64,     3,     4,     5,   434,   413,   414,
+   109,    58,   395,    80,     4,     5,   421,    47,   401,   402,
+   790,    88,    93,    56,    57,    54,   431,    56,    57,   429,
+   375,    93,    94,  1208,   429,  1210,    97,    47,  1253,    47,
+   429,    70,    93,   448,    75,    93,   429,  1262,  1263,    47,
+    62,    80,   109,  1060,    64,    54,    54,    56,    57,    58,
+    47,   456,    74,    93,   459,    94,    56,    57,   463,   464,
+   465,   466,   467,   816,   109,   520,    74,    54,   758,   882,
+   375,   476,    47,    93,   429,    93,   816,   305,   483,   269,
+   270,   771,   487,   773,    47,    93,   429,    74,   842,   486,
+    26,    27,    94,   283,    47,    31,    93,   798,   288,    47,
+   653,   291,   655,   798,   294,   109,    54,   660,   298,    10,
+  1001,    62,   649,   292,   519,   520,   306,    47,    93,    94,
+    47,   811,   110,    74,    60,   353,    74,   520,    64,    54,
+    93,  1022,   537,   704,   920,    60,   401,   402,   403,   544,
+    93,   534,   535,   109,   537,    93,   836,   375,    47,     3,
+   652,   544,  1377,   548,    47,     3,     4,     5,   944,   945,
+  1388,    54,   591,    93,   593,   594,    93,   395,   565,     4,
+     5,   401,   402,   403,   110,     3,     4,     5,   680,   594,
+    60,    74,   795,   963,     3,     4,     5,   592,    38,   586,
+    47,   596,   112,    41,    93,    94,  1009,    93,   595,   628,
+    93,   429,   669,   670,    54,    94,    54,    47,    56,    57,
+    94,   678,    47,   628,   112,    59,    59,    60,   615,    54,
+    62,    56,    57,   402,   403,    93,  1039,   632,    56,    57,
+    58,    75,  1018,    77,   649,    70,    93,    56,    57,   632,
+    88,  1027,  1028,    54,   673,    80,  1032,  1033,     3,     4,
+     5,    62,   958,    93,    94,    90,    59,   667,    93,    94,
+    93,    80,   667,    74,   674,   675,    59,    60,   667,   674,
+   675,    10,    75,    74,   667,    54,   675,   456,  1374,   684,
+   459,   686,   675,    62,   474,   475,    41,  1073,    74,   704,
+  1386,   684,   520,   686,    74,    74,   475,   476,     4,     5,
+  1396,    56,    57,    74,     3,     4,     5,   109,   487,   537,
+     4,     5,   667,    59,    54,   110,   544,  1413,    64,   109,
+   675,  1011,    62,  1013,   667,  1015,   879,   880,   881,    75,
+    59,    60,   675,    88,    74,    59,  1432,    59,    60,     3,
+     4,     5,    41,  1129,    54,   109,    54,  1342,    47,   754,
+    56,    57,    62,   758,    62,    54,   109,    56,    57,  1455,
+    54,   109,    56,    57,    74,   544,    74,  1366,   673,   674,
+    60,    70,   959,   960,    80,   962,   110,    41,   783,    83,
+    84,    80,    54,  1169,   789,   887,   888,   110,   793,    88,
+    62,    90,    56,    57,    93,    94,   789,   112,   791,   792,
+   793,   112,    74,   798,   632,   802,     3,     4,     5,  1099,
+    64,   816,   809,   818,   916,   112,   821,   109,   816,    59,
+    60,     4,     5,   816,    88,   112,   819,   820,   821,     4,
+     5,   898,    80,    81,    82,    83,    84,   904,   905,   667,
+   109,   908,   909,    59,    60,   912,   109,   675,   109,   854,
+     4,     5,   693,   694,   695,    58,   684,    54,   686,    56,
+    57,   854,  1248,   868,    59,    60,   109,    54,     7,    93,
+   875,   999,  1000,    56,    57,   112,     3,     4,     5,   884,
+   877,    56,    57,     3,     4,     5,     6,     7,     8,   894,
+    47,   884,  1020,  1021,    64,    59,   906,    80,   110,    93,
+    60,   894,    56,    57,  1210,    80,    24,   917,    26,    27,
+  1264,    64,   917,    64,    60,    62,    36,   109,   917,   698,
+    47,   926,  1276,   928,   917,   109,    80,    54,   109,    56,
+    57,   109,   109,   926,    64,   928,    56,    57,    58,    64,
+    58,     3,     4,     5,    62,     3,     4,     5,   945,  1051,
+  1052,    64,  1054,  1055,   112,  1057,   821,    64,   100,   101,
+    93,   789,   917,    59,    62,   793,    93,     4,     5,   109,
+    75,   109,   109,   109,   917,   109,   766,    95,    75,  1333,
+    75,    75,    62,    41,   104,   105,   106,   109,   816,   854,
+  1343,   821,   109,   821,    56,    57,  1001,    62,    56,    57,
+    59,   791,   792,  1343,   112,   109,   999,  1000,  1001,    62,
+     4,     5,    94,   792,   793,    88,  1370,  1022,  1372,    56,
+    57,  1018,    80,   109,   854,   110,   854,  1020,  1021,  1022,
+    88,   109,   109,   112,  1388,     4,     5,    47,  1140,  1141,
+   109,  1038,   821,    80,   112,   109,  1056,   110,   109,  1403,
+  1060,  1357,   112,   109,  1440,  1060,   884,   109,   109,    59,
+    54,  1060,    56,    57,   110,    64,   894,  1060,    64,    24,
+    62,    26,    27,     4,     5,   854,    70,     8,     3,     4,
+     5,    59,    59,  1150,  1151,   109,    80,    56,    57,   917,
+   109,    93,     4,     5,     6,     7,     8,   110,   926,    11,
+   928,    13,    93,    58,    93,  1060,    93,    62,   109,   112,
+  1115,    80,     4,     5,  1115,  1112,    28,  1060,    30,    31,
+  1125,   109,  1115,    54,    36,    56,    57,     7,  1230,  1231,
+  1232,    56,    57,    45,   999,  1000,  1001,   109,    30,    70,
+    95,   109,    54,   109,    56,    57,   110,   112,   109,    80,
+   292,   109,   109,    45,    62,  1020,  1021,  1022,   109,   109,
+  1115,   109,    54,    94,    56,    57,    64,   109,   109,   999,
+  1000,  1001,  1115,  1001,    84,   965,    86,   109,   112,  1208,
+    47,  1210,  1325,   109,     8,    97,  1357,    11,   109,   109,
+  1020,  1021,  1022,    96,  1022,  1210,  1298,  1299,    33,  1204,
+  1328,  1329,   109,  1200,  1209,    62,  1211,   109,   109,   109,
+  1211,  1204,   109,  1218,   109,    62,   126,  1218,  1211,  1286,
+    62,  1000,  1001,    47,   353,  1218,    24,   112,    26,    27,
+  1020,  1021,  1060,     7,     8,    59,     8,    61,    62,    13,
+    64,    60,  1021,  1022,    60,     3,     4,     5,    60,  1204,
+   392,    75,    15,    77,    93,    93,  1211,    60,  1255,    60,
+    58,  1204,    36,  1218,    62,    93,   395,   108,  1211,    93,
+    94,    45,    98,    97,    16,  1218,    78,    79,    80,    81,
+    82,    83,    84,    41,    93,   109,   109,  1115,   109,    60,
+   647,    60,   109,     3,     4,     5,   109,    95,    56,    57,
+    60,    10,  1404,    60,     3,     4,     5,     6,     7,     8,
+    93,  1316,  1317,  1380,   456,  1320,    59,   459,   109,  1320,
+    60,   463,    80,  1316,  1317,  1330,   683,  1320,   685,  1358,
+    88,    41,    64,    60,   476,  1328,  1329,    10,  1343,     4,
+     5,  1346,  1357,   109,  1349,   487,    56,    57,  1349,   491,
+  1343,    10,    60,  1346,   109,  1360,  1349,    56,    57,  1360,
+    60,  1316,     0,     0,     0,  1320,   377,  1360,  1373,     2,
+    80,   281,  1373,  1316,   149,   517,  1204,  1320,    88,    44,
+  1373,   523,    24,  1211,    26,    27,   339,   816,   149,    54,
+  1218,    56,    57,   674,  1349,  1009,  1341,  1402,    26,    27,
+  1405,  1312,   483,    31,  1405,  1360,  1349,  1452,   537,  1402,
+  1209,   809,  1405,   615,  1204,   544,    58,  1360,  1373,    11,
+    62,   804,  1287,   208,  1039,   917,   882,   784,   674,   786,
+  1373,    59,    60,  1058,    26,    27,    64,   565,   171,    31,
+     1,   802,     3,     4,     5,   520,     7,  1452,   309,  1211,
+  1405,  1452,  1116,    95,  1366,    47,  1425,  1287,   863,  1452,
+  1363,  1427,  1405,  1328,  1329,  1330,  1125,    59,    60,    -1,
+    62,    -1,    64,    -1,    -1,    -1,    -1,   387,   388,    -1,
+    41,    -1,     3,     4,     5,   395,    -1,     8,  1316,  1317,
+     4,     5,  1320,    54,     8,    56,    57,  1452,  1328,  1329,
+  1330,    93,    94,   632,    -1,    97,    -1,    -1,  1287,  1452,
+    -1,    -1,    -1,    -1,    -1,  1343,    -1,   109,  1346,    -1,
+    41,  1349,    -1,     6,     7,     8,    -1,    88,    -1,    -1,
+    13,    -1,  1360,    54,    -1,    56,    57,    -1,  1328,  1329,
+    54,    -1,    56,    57,   454,  1373,    -1,    -1,    31,    70,
+  1329,  1330,    -1,    36,    -1,   684,    70,   686,    -1,    80,
+     4,     5,    45,    -1,     8,    -1,    80,    88,   925,    -1,
+   927,    -1,    93,   483,  1402,    -1,   486,  1405,    -1,   489,
+   490,    -1,   492,   493,   494,   495,   496,   497,   498,   499,
+   500,   501,   502,   503,   504,   505,   506,   507,   508,   509,
+   510,    -1,    -1,    47,    -1,    -1,   516,    -1,   518,   519,
+    54,    -1,    56,    57,     3,     4,     5,    -1,    -1,    -1,
+   762,   978,    -1,    -1,  1452,    -1,    70,    -1,    -1,    -1,
+    -1,    47,    -1,    -1,   544,    -1,    80,    -1,    -1,    -1,
+    -1,   551,    -1,    -1,    -1,    -1,    90,    -1,    -1,    93,
+    94,   793,    41,     4,    -1,    -1,    -1,   567,   568,    -1,
+   789,    -1,    13,    -1,   793,    -1,    -1,    56,    57,    -1,
+    86,    87,    23,    24,    25,    91,    92,    93,    94,    30,
+    31,    -1,    33,    -1,    35,    -1,  1043,   816,    -1,    40,
+  1047,     1,   821,     3,     4,     5,     6,     7,     8,    88,
+    51,    -1,    53,    13,    -1,   615,    -1,    -1,    -1,    -1,
+    61,    -1,    -1,    -1,    -1,    -1,    -1,    68,    28,    -1,
+    30,    31,    -1,    -1,    -1,   854,    36,    78,    79,    -1,
+    -1,    41,    -1,   875,    -1,    45,    87,  1094,    48,    -1,
+    -1,    -1,    -1,    -1,    54,    -1,    56,    57,    99,    -1,
+    60,    -1,    -1,    -1,    -1,   884,   666,    -1,    -1,    -1,
+    70,    -1,    -1,   114,   115,   894,    -1,   118,    -1,    -1,
+    80,   122,   123,   124,    -1,    -1,    -1,   128,    88,    -1,
+   131,   132,    -1,    93,   135,   136,   137,    -1,   698,    -1,
+    -1,    -1,     3,     4,     5,    -1,    -1,   926,   149,   928,
+    -1,    -1,  1159,  1160,    -1,    -1,    -1,    -1,    -1,    -1,
+   720,    -1,    -1,   164,   165,   166,    -1,    -1,  1175,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,     6,     7,     8,    -1,
+    41,    -1,    -1,    13,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   193,    54,    -1,    56,    57,   757,   758,    60,
+    -1,    31,    -1,    -1,    75,    -1,    36,    -1,    -1,    70,
+    -1,   771,    -1,   773,   215,    45,  1223,  1224,    -1,    80,
+    -1,    -1,  1001,   224,    -1,    -1,    97,    88,    -1,    -1,
+  1022,    -1,    93,    -1,    -1,  1242,  1243,    -1,    -1,    -1,
+    -1,   801,   113,  1022,    -1,    -1,   117,    -1,    -1,    -1,
+    -1,   811,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   130,
+    -1,   262,   263,     3,     4,     5,     6,     7,     8,   829,
+    -1,    -1,    -1,    13,    -1,    -1,   836,  1069,  1070,  1071,
+  1072,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1080,    -1,
+    -1,    31,    -1,    -1,   854,    -1,    36,    -1,    -1,    -1,
+    -1,    41,    -1,   174,   305,    45,    -1,    47,   309,    -1,
+   311,   312,   313,    -1,    54,    -1,    56,    57,    -1,    -1,
+    -1,   322,   323,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    70,    -1,    -1,    -1,    -1,    -1,   207,   897,   339,    -1,
+    80,     3,     4,     5,    -1,    -1,    -1,   348,    88,    -1,
+    90,    -1,   353,    93,    94,    -1,   227,    -1,    -1,    -1,
+   920,    -1,   363,    -1,    -1,   366,    -1,    -1,    -1,    -1,
+   371,    -1,    -1,    -1,   375,    -1,    38,    39,    -1,    41,
+    -1,    -1,    -1,    -1,   944,   945,    -1,    -1,   948,    -1,
+    -1,    -1,    54,    -1,    56,    57,   397,    -1,   399,    -1,
+   401,   402,   403,    -1,    -1,    -1,   407,  1199,    -1,     4,
+     5,   412,     7,     8,   415,    -1,    -1,    -1,    13,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   428,   429,    -1,
+    -1,    -1,    -1,    28,    -1,    30,    -1,    -1,    -1,    -1,
+    -1,    36,   388,    -1,    -1,    -1,   317,    -1,    -1,   395,
+    45,  1011,    47,  1013,    -1,  1015,    -1,    -1,  1018,    54,
+    -1,    56,    57,   464,   465,   466,   467,  1027,  1028,    -1,
+   341,    -1,  1032,  1033,    -1,    70,    -1,    -1,    -1,    -1,
+    -1,  1273,    -1,    -1,    -1,    80,    -1,    -1,   359,  1049,
+  1050,     3,     4,     5,    -1,    90,     8,    -1,    93,    94,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   454,    -1,
+    -1,    -1,    -1,  1073,    -1,  1075,    -1,    -1,    -1,   520,
+    -1,   522,    -1,    -1,  1316,  1317,    -1,    -1,    -1,    41,
+    -1,   532,    -1,   534,   535,    47,   537,    -1,  1330,  1099,
+    -1,    -1,    54,   544,    56,    57,    -1,   548,    -1,    -1,
+    -1,    -1,    -1,    -1,  1346,    -1,    -1,    -1,    70,    -1,
+    -1,    -1,    -1,    -1,  1343,    -1,    -1,    -1,    80,  1129,
+   516,    -1,   518,   519,    -1,    -1,    88,    -1,    90,    -1,
+   451,    93,    94,    -1,    -1,   586,  1146,    -1,    -1,    -1,
+   591,   592,   593,   594,   595,   596,    -1,    -1,   544,    -1,
+    -1,    -1,    -1,    -1,    -1,   551,    -1,    -1,  1400,  1169,
+  1402,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+    78,    79,    80,    81,    82,    83,    84,   628,    -1,    -1,
+    -1,   632,  1424,    -1,    -1,  1195,    -1,    -1,   639,   640,
+    -1,   642,    -1,    -1,    -1,    -1,  1438,    -1,     4,     5,
+    -1,     7,     8,    -1,    -1,   656,    -1,    13,     4,     5,
+   531,     7,     8,   664,    -1,    -1,   667,    13,  1228,  1229,
+    -1,    -1,   673,   674,   675,    -1,   547,  1237,    -1,    -1,
+    36,    -1,    28,   684,    30,   686,    -1,    -1,  1248,    45,
+    36,    47,   693,   694,   695,   311,   312,   313,    54,    45,
+    56,    57,    -1,   704,    -1,    -1,    -1,    -1,    54,    -1,
+    56,    57,    58,    -1,    70,    -1,     3,     4,     5,    -1,
+    -1,     8,    -1,    -1,    80,    -1,    -1,  1287,    -1,    -1,
+    -1,    -1,    -1,    -1,    90,    -1,    -1,    93,    94,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,
+    -1,    -1,   698,   754,    41,    -1,    -1,    -1,  1318,    -1,
+    47,    -1,    84,    -1,    86,    -1,    -1,    54,    -1,    56,
+    57,    -1,    -1,   774,    -1,   776,    -1,    -1,   100,   101,
+    -1,    -1,   783,    70,    -1,    -1,   787,    -1,   789,    -1,
+   791,   792,   793,    80,    -1,    -1,    -1,   798,    -1,    -1,
+    -1,    88,    -1,    90,   126,    -1,    93,    94,    -1,    -1,
+    -1,    -1,   758,    -1,    -1,   816,    -1,   818,   819,   820,
+   821,     4,     3,     4,     5,   771,    -1,   773,    -1,    -1,
+    13,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+    23,    24,    25,    -1,     3,     4,     5,    30,    31,     8,
+    33,    -1,    35,   854,    -1,    -1,    -1,    40,    -1,    -1,
+    41,    -1,    -1,    -1,    -1,   811,    -1,   868,    51,    -1,
+    53,    -1,    -1,    54,    -1,    56,    57,   878,    -1,    60,
+  1440,   882,    41,   884,    -1,    68,    -1,    -1,    47,    70,
+   836,    -1,    -1,   894,    -1,    54,    79,    56,    57,    80,
+    -1,    -1,    -1,    -1,    87,    -1,   907,    88,   854,    -1,
+    -1,    70,    93,    -1,    -1,    -1,   917,    -1,   534,   535,
+    -1,    80,    -1,    -1,    -1,   926,   797,   928,   799,    88,
+    -1,    90,   115,    -1,    93,    94,    -1,    -1,    -1,   122,
+   123,    -1,    -1,    -1,    -1,   128,    -1,    -1,    -1,   132,
+    -1,    -1,   135,   136,   137,    -1,    -1,    -1,   959,   960,
+    -1,   962,    -1,     3,     4,     5,   149,    -1,     8,    -1,
+   292,    -1,    -1,    -1,    -1,   591,    -1,   593,   594,    -1,
+   596,   164,   165,   166,    73,    74,    75,    76,    77,    78,
+    79,    80,    81,    82,    83,    84,   997,   998,   999,  1000,
+  1001,    41,    -1,    -1,  1005,    -1,   877,    47,    -1,    -1,
+   193,    -1,   628,    -1,    54,    -1,    56,    57,    -1,  1020,
+  1021,  1022,     3,     4,     5,    -1,    -1,     8,    -1,    -1,
+    70,   353,    -1,    -1,    -1,   906,    -1,    -1,  1039,    -1,
+    80,   224,     4,     5,    -1,     7,     8,    -1,    88,    -1,
+    90,    13,  1053,    93,    94,    -1,    -1,  1058,    -1,  1060,
+    41,    -1,    -1,    -1,    -1,  1011,    28,  1013,    30,  1015,
+    -1,    -1,    -1,    54,    36,    56,    57,    -1,    -1,   262,
+   263,    -1,    -1,    45,    -1,    -1,    -1,    -1,   704,    70,
+    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,    80,
+    -1,  1102,  1103,    -1,  1105,    -1,    -1,    88,    -1,    -1,
+    -1,    -1,    93,   984,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   305,    -1,  1125,    -1,   309,    -1,   311,   312,
+   313,    93,  1003,    -1,   456,   318,    -1,   459,    -1,   322,
+    -1,   463,   464,   465,   466,   467,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,  1099,   476,    -1,   339,    -1,   774,    -1,
+   776,   483,    -1,    -1,    -1,   487,    -1,  1038,    -1,    -1,
+   353,   787,     3,     4,     5,   791,   792,     8,    -1,    -1,
+   363,    -1,    -1,   366,    -1,  1056,    -1,    -1,   371,    -1,
+    -1,    -1,   375,    -1,    -1,    -1,    -1,   519,    -1,    -1,
+    -1,    -1,    -1,   819,   820,    -1,    -1,  1208,  1209,  1210,
+    41,    -1,    -1,    -1,   397,   537,   399,    -1,   401,   402,
+   403,    -1,   544,    54,   407,    56,    57,    -1,    -1,   412,
+    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    70,
+    -1,    -1,    -1,    -1,    -1,   428,   429,    -1,    -1,    80,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    -1,    -1,
+    -1,    -1,    93,     3,     4,     5,    -1,    -1,     8,    -1,
+     4,     5,     6,     7,     8,    -1,    -1,    11,    -1,    13,
+    -1,   464,   465,   466,   467,    -1,  1287,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    28,    -1,    30,    31,    -1,    -1,
+    -1,    41,    36,    -1,    53,    -1,    55,    -1,    -1,    -1,
+   632,    45,    -1,    47,    54,    -1,    56,    57,    -1,    -1,
+    54,    -1,    56,    57,    -1,    -1,    -1,  1328,  1329,  1330,
+    70,    -1,    -1,    -1,    -1,    -1,    70,   520,    -1,   522,
+    80,  1287,  1343,    -1,    -1,    -1,    80,    -1,    88,    -1,
+    -1,   534,   535,    93,   537,    -1,    90,  1358,    -1,    93,
+    94,   544,    -1,    97,    -1,    -1,     4,     5,     6,     7,
+     8,    -1,    -1,   556,   123,    13,    -1,    -1,    -1,    -1,
+    -1,   997,   998,   999,  1000,    -1,    -1,    -1,    -1,  1005,
+    28,    -1,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,
+    -1,    -1,    -1,   586,  1020,  1021,    -1,    45,   591,   592,
+   593,   594,    -1,   596,    -1,    -1,    54,    -1,    56,    57,
+    -1,    -1,     4,     5,     6,   608,     4,     5,     6,     7,
+     8,   180,   754,    11,    -1,    13,    -1,    -1,    -1,   188,
+   189,    -1,    -1,    -1,    -1,   628,    -1,    -1,    30,   632,
+    28,    -1,    30,    31,    -1,    37,   639,   640,    36,   642,
+    -1,   783,    -1,    45,     3,     4,     5,    45,   217,     8,
+    -1,   793,    54,   656,    56,    57,    54,    -1,    56,    57,
+    -1,   664,    -1,    -1,   667,    -1,  1102,  1103,    -1,  1105,
+   673,   674,   675,    -1,   816,    -1,   818,    -1,    -1,   821,
+    -1,   684,    41,   686,    -1,    -1,    -1,    -1,    -1,    -1,
+   693,   694,   695,    -1,    -1,    54,    -1,    56,    57,    -1,
+    -1,   704,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    70,   854,    -1,    -1,     3,     4,     5,     6,     7,
+     8,    80,    -1,    11,    -1,    13,   868,    -1,    -1,    88,
+    -1,    -1,    -1,   875,    93,    -1,    -1,    -1,    -1,    -1,
+    28,    -1,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,
+    -1,   754,    -1,    41,    -1,    -1,    -1,    45,    -1,    47,
+    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,
+    -1,   774,     4,   776,    -1,    -1,    -1,    -1,    -1,    -1,
+   783,    -1,    70,    -1,   787,    -1,   789,    -1,   791,   792,
+   793,    -1,    80,    25,    -1,   798,    -1,    -1,    30,    31,
+    88,    33,    90,    35,    -1,    93,    94,    -1,    40,    97,
+    -1,    -1,    -1,   816,    -1,   818,   819,   820,   821,    51,
+    -1,    53,     3,     4,     5,    -1,    -1,     8,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   406,    -1,    -1,
+    -1,    -1,    -1,    75,   413,   414,    -1,    -1,   417,    -1,
+    -1,   854,   421,    -1,    -1,    87,   164,   165,   166,  1001,
+    41,    -1,    -1,    -1,    -1,   868,    -1,    -1,     3,     4,
+     5,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,   882,
+  1022,   884,    -1,   115,    -1,   117,   118,    -1,    -1,    70,
+   122,   894,    -1,    -1,    -1,    -1,   128,    -1,   130,    80,
+   132,    -1,    -1,   135,   136,   137,    41,    88,    -1,    -1,
+    -1,    -1,    93,    -1,   917,    -1,    -1,   149,    -1,    54,
+    -1,    56,    57,   926,    -1,   928,    -1,    62,    -1,    -1,
+    -1,    -1,   164,   165,   166,    70,     3,     4,     5,     6,
+     7,     8,   174,    -1,    -1,    80,    13,    -1,    -1,    -1,
+    -1,    -1,    -1,    88,    -1,    -1,   959,   960,    93,   962,
+    -1,   193,     4,     5,    31,    -1,     8,    -1,    -1,    36,
+    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    45,    -1,
+    47,    -1,    -1,  1125,    -1,    -1,    -1,    54,    -1,    56,
+    57,    -1,   224,    -1,   997,   998,   999,  1000,  1001,    -1,
+    -1,    -1,  1005,    70,    -1,    47,  1009,    -1,    -1,    -1,
+    -1,    -1,    54,    80,    56,    57,    -1,  1020,  1021,  1022,
+    -1,    88,    -1,   592,    -1,   594,    93,    -1,    70,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,  1039,    -1,    80,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    -1,
+  1053,    93,    94,    -1,    -1,  1058,    -1,  1060,    -1,   628,
+   292,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     3,     4,     5,    -1,    -1,     8,    -1,   309,    -1,    -1,
+   649,    -1,    -1,   652,    -1,   317,    -1,    -1,    -1,   397,
+   322,   399,    -1,   401,   402,   403,    -1,    -1,    -1,  1102,
+  1103,    -1,  1105,    -1,   412,   674,    -1,   339,    41,    -1,
+    -1,   680,    -1,    -1,    -1,    -1,   348,    -1,    -1,    -1,
+    -1,    54,  1125,    56,    57,    -1,    -1,    -1,    -1,    -1,
+    -1,   363,    -1,    -1,   366,    -1,    -1,    70,    -1,   371,
+    -1,    -1,    -1,   375,    -1,    -1,    -1,    80,    -1,     3,
+     4,     5,     6,     7,     8,    88,    -1,    -1,    -1,    13,
+    93,     3,     4,     5,    -1,   397,     8,   399,    -1,   401,
+   402,   403,    -1,    -1,    28,   407,    30,    31,    -1,    -1,
+   412,    -1,    36,   415,    -1,    -1,    -1,    41,  1330,    -1,
+    -1,    45,    -1,    47,    -1,    -1,    -1,   429,    -1,    41,
+    54,  1343,    56,    57,    -1,  1208,  1209,  1210,    -1,    -1,
+    -1,    -1,    54,    -1,    56,    57,    70,    -1,    -1,     3,
+     4,     5,    -1,    -1,   456,    -1,    80,   459,    70,    -1,
+    -1,    -1,    -1,    -1,    88,    -1,    90,    -1,    80,    93,
+    94,    -1,   474,   475,   476,    -1,    88,    -1,    -1,    -1,
+    -1,    93,    -1,    -1,    -1,   487,     4,    41,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    54,    -1,    56,    57,    -1,    -1,    -1,    25,    62,    -1,
+    -1,    -1,    30,    31,  1287,    33,    70,    35,    -1,    -1,
+    -1,    -1,    40,    -1,    -1,    -1,    80,    -1,    -1,   531,
+     3,     4,     5,    51,    88,    53,    -1,    -1,    -1,    93,
+    -1,    -1,   544,    -1,    -1,    -1,    -1,    -1,   887,   888,
+    -1,    -1,    -1,    -1,    -1,  1328,  1329,  1330,    -1,    -1,
+    -1,   639,   640,    -1,   642,    -1,    -1,    -1,    41,    87,
+  1343,    -1,    -1,    -1,    -1,    -1,    -1,   916,    -1,    -1,
+    -1,    54,    -1,    56,    57,  1358,    -1,    -1,    -1,   591,
+   592,   593,   594,    -1,    -1,   673,    -1,    70,    -1,    -1,
+    -1,    -1,     4,     5,   122,     7,     8,    80,     4,     5,
+   128,    13,     8,    -1,   132,    88,    -1,   135,   136,   137,
+    93,    -1,    -1,    -1,    -1,    -1,   628,    -1,    -1,    -1,
+   632,   149,    -1,    -1,    36,    -1,    -1,   639,   640,    -1,
+   642,    -1,    -1,    45,    -1,    47,   164,   165,   166,    -1,
+    -1,    47,    54,    -1,    56,    57,    -1,    -1,    54,    -1,
+    56,    57,    -1,    -1,    -1,   667,    -1,    -1,    70,    -1,
+    -1,   673,   674,   675,    70,   193,    -1,    -1,    80,    -1,
+    -1,     3,     4,     5,    80,    -1,    -1,    -1,    90,    -1,
+    -1,    93,    94,    -1,    90,    -1,   698,    93,    94,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   224,    -1,    -1,    -1,
+    -1,    -1,  1051,  1052,    -1,  1054,  1055,    -1,  1057,    41,
+    -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,
+     7,     8,    54,    -1,    56,    57,    13,    -1,    -1,    -1,
+    62,   819,   820,   821,    -1,    -1,    -1,    -1,    70,    -1,
+    -1,    28,    -1,    30,    31,    32,    -1,    -1,    80,    36,
+    37,   311,   312,   313,    41,    -1,    88,    -1,    45,    46,
+    -1,    93,    -1,    -1,    -1,    -1,   854,    54,    -1,    56,
+    57,    -1,    -1,    60,    -1,    62,    -1,    -1,    -1,   791,
+   792,   793,    -1,    70,    -1,   797,    -1,    -1,    -1,    -1,
+   318,  1140,  1141,    80,   322,    -1,    33,    -1,    -1,    -1,
+    -1,    88,    -1,     3,     4,     5,    93,   819,   820,   821,
+    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   363,    -1,    -1,   366,    -1,
+    -1,    41,   854,   371,    -1,    -1,    -1,   375,    -1,    -1,
+    -1,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,
+  1209,  1210,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,
+    70,   399,    -1,   401,   402,   403,    -1,    -1,    -1,   407,
+    80,  1230,  1231,  1232,   412,   122,    -1,   415,    88,    -1,
+    -1,    -1,    -1,    93,   906,    -1,    -1,    -1,   135,   136,
+   137,   429,    -1,    -1,    -1,   917,    -1,    -1,    -1,   997,
+   998,   999,  1000,  1001,    -1,    -1,    -1,  1005,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   164,   165,   166,
+    -1,    -1,  1020,  1021,  1022,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,     3,     4,     5,    -1,  1298,
+  1299,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,  1053,    -1,    -1,    -1,    -1,
+    -1,    -1,   984,    -1,   534,   535,    -1,   537,    -1,    -1,
+    -1,    -1,    -1,    41,   544,   997,   998,   999,  1000,  1001,
+    -1,  1003,    -1,  1005,    -1,    -1,    54,    -1,    56,    57,
+    -1,    -1,    -1,    -1,   532,    -1,    -1,    -1,  1020,  1021,
+  1022,    -1,    70,    -1,  1102,  1103,    -1,  1105,    -1,    -1,
+    77,    -1,    80,    -1,    -1,    -1,   263,    -1,    -1,    -1,
+    88,   591,    -1,   593,   594,    93,   596,    -1,    -1,    -1,
+    -1,  1053,    -1,    -1,    -1,    -1,  1058,    -1,  1060,    -1,
+    -1,    -1,    -1,    -1,    -1,  1404,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   591,   592,   593,   594,    -1,   628,    -1,
+    -1,    51,    -1,    -1,   311,   312,   313,    -1,    -1,    -1,
+   608,    -1,    -1,    -1,    -1,   322,   143,    -1,    -1,    -1,
+  1102,  1103,    -1,  1105,    -1,    75,    -1,    -1,    78,    -1,
+   628,    -1,    -1,    -1,   632,   162,    -1,    -1,    -1,    -1,
+    -1,   639,   640,    -1,   642,    -1,    -1,    97,   175,    99,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,     4,     5,     6,
+     7,     8,    -1,    -1,    -1,    -1,    13,    -1,    -1,   667,
+    -1,    -1,   122,    -1,   704,   673,   674,   675,    -1,    -1,
+    -1,    28,    -1,    30,    31,    -1,    -1,    -1,    -1,    36,
+   397,    -1,   399,    -1,   401,   402,   403,    -1,    45,    -1,
+   407,    -1,    -1,    -1,    -1,   412,    -1,    54,   415,    56,
+    57,    -1,    -1,    -1,   164,   165,   166,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   174,    -1,  1208,  1209,  1210,  1287,
+    -1,    -1,     4,     5,    -1,     7,     8,    -1,    -1,    -1,
+    -1,    13,    -1,   193,   774,    -1,   776,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    28,   787,    30,    -1,
+    -1,   791,   792,   793,    36,   215,    -1,    -1,    -1,    -1,
+  1328,  1329,  1330,    45,    -1,    -1,    -1,   227,    -1,    -1,
+    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,   819,
+   820,   821,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   798,    -1,    -1,    -1,    -1,  1287,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,     4,    -1,   522,    -1,    -1,    -1,    -1,
+    -1,   819,   820,   821,   854,    -1,    -1,   534,   535,    -1,
+   537,    -1,    -1,    -1,    25,    -1,    -1,   544,    -1,    30,
+    31,    -1,    -1,    -1,    35,    -1,  1328,  1329,  1330,    40,
+    -1,    -1,    -1,    -1,    -1,    -1,   854,    -1,    -1,    -1,
+    -1,    -1,    53,    -1,    -1,    -1,    -1,   317,   318,    -1,
+    -1,    -1,   322,    -1,    -1,    -1,  1358,    -1,   405,    -1,
+    -1,    -1,    -1,   410,   591,    -1,   593,   594,    -1,   596,
+    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,
+   437,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   917,
+    -1,   628,   449,   450,    -1,   452,    -1,    -1,    -1,    -1,
+    -1,    -1,   639,   640,    -1,   642,    -1,   128,    -1,    -1,
+    -1,   132,    -1,    -1,    -1,    -1,    -1,   397,    -1,   399,
+    -1,   401,   402,   403,    -1,    -1,    -1,   407,   149,    -1,
+    -1,    -1,   412,    -1,    -1,   415,   673,   997,   998,   999,
+  1000,  1001,    -1,   164,   165,  1005,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   693,   694,   695,    -1,
+  1020,  1021,  1022,    -1,    -1,    -1,    -1,   704,    -1,   997,
+   998,   999,  1000,  1001,    -1,    -1,    -1,  1005,    -1,    -1,
+    -1,  1009,    -1,   540,   541,    -1,    -1,    -1,   545,    -1,
+    -1,    -1,  1020,  1021,  1022,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   224,    72,    73,    74,    75,    76,    77,
+    78,    79,    80,    81,    82,    83,    84,     1,    -1,     3,
+     4,     5,     6,     7,     8,  1053,    -1,    -1,    -1,    13,
+  1058,    -1,  1060,    -1,    -1,    -1,    -1,   774,    -1,   776,
+    -1,    -1,  1102,  1103,    28,  1105,    30,    31,    32,    -1,
+   787,    -1,    36,    37,   791,   792,   793,    41,    -1,    -1,
+    -1,    45,    46,    -1,    -1,    -1,    -1,   547,   548,    -1,
+    54,    -1,    56,    57,  1102,  1103,    60,  1105,    62,    -1,
+    -1,    -1,   819,   820,   821,    -1,    70,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,     4,
+     5,    -1,     7,     8,    88,    -1,    -1,    -1,    13,    93,
+    -1,   591,    -1,   593,   594,    -1,    -1,   854,    -1,    -1,
+    -1,    -1,    -1,    28,    -1,    30,   110,    -1,    -1,    -1,
+   687,    36,   689,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    45,    -1,   363,    -1,    -1,   366,    -1,    -1,   628,    54,
+   371,    56,    57,    -1,   375,    -1,    -1,    -1,    -1,   639,
+   640,    -1,   642,    -1,    -1,     1,    -1,     3,     4,     5,
+     6,     7,     8,    -1,    -1,    -1,   397,    13,   399,    -1,
+  1208,  1209,  1210,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,   412,    28,   673,    30,    31,    32,    -1,    -1,    -1,
+    36,    37,    -1,   760,   761,    41,   763,    -1,   429,    45,
+    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,
+    56,    57,   959,   960,    60,   962,    62,    -1,    -1,    -1,
+    -1,   788,    -1,    -1,    70,    -1,    -1,     3,     4,     5,
+     6,     7,     8,    -1,    80,    -1,    -1,    13,    -1,    -1,
+    -1,    -1,    88,    -1,    -1,    -1,    -1,    93,    -1,  1287,
+   997,   998,   999,  1000,  1001,    31,   823,    -1,  1005,    -1,
+    36,    -1,    -1,    -1,   110,    41,    -1,    -1,    -1,    45,
+    -1,    47,    -1,  1020,  1021,  1022,    -1,    -1,    54,    -1,
+    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+  1328,  1329,  1330,    -1,    70,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    80,    -1,  1053,   797,   798,   799,
+    -1,    -1,    88,    -1,    90,    -1,   883,    93,    94,    -1,
+  1358,    -1,    -1,    -1,    -1,    -1,   893,    -1,    -1,   819,
+   820,   821,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     3,     4,     5,     6,     7,     8,    -1,    -1,    -1,    -1,
+    13,    -1,    -1,    -1,    -1,  1102,  1103,    -1,  1105,    -1,
+    -1,   592,    -1,    -1,   854,    28,    13,    30,    31,    -1,
+    -1,    -1,    -1,    36,    -1,    -1,    23,    24,    41,    -1,
+    -1,    -1,    45,    30,    31,    -1,    33,    -1,    -1,    -1,
+    -1,    54,    -1,    56,    57,    -1,    -1,    60,    -1,    -1,
+    -1,   632,    -1,    -1,    -1,    -1,   973,    70,   639,   640,
+    -1,   642,    -1,    -1,    61,    -1,   906,    80,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,
+    93,    -1,    -1,    -1,    -1,    -1,   667,  1004,    -1,    -1,
+    -1,    -1,   673,   674,   675,    70,    71,    72,    73,    74,
+    75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+    -1,  1208,    -1,  1210,    -1,    -1,   113,   114,   115,    -1,
+   117,   118,    -1,    -1,    -1,    -1,    -1,   124,    -1,    -1,
+    -1,   128,    -1,   130,   131,   132,    -1,    -1,   135,   136,
+   137,    -1,    -1,    -1,   984,    -1,  1063,  1064,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   997,   998,   999,
+  1000,  1001,    -1,  1003,    -1,  1005,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1096,
+  1020,  1021,  1022,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+  1287,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+    76,    77,    78,    79,    80,    81,    82,    83,    84,    -1,
+   207,    -1,    -1,  1053,    -1,    -1,    -1,    -1,  1135,    -1,
+    -1,    -1,  1139,    -1,    -1,    -1,    -1,   224,    -1,    -1,
+    -1,  1328,  1329,  1330,    -1,    -1,    -1,    -1,   819,   820,
+    -1,    -1,    -1,    -1,  1161,  1162,    71,    72,    73,    74,
+    75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+    -1,  1358,  1102,  1103,    -1,  1105,   263,    -1,    -1,     1,
+    -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
+    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
+    32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
+    42,    43,   309,    45,   311,   312,    -1,    49,    50,    51,
+    52,    53,    54,    -1,    56,    57,   323,    -1,    -1,    61,
+    -1,    -1,    -1,    -1,    -1,    67,   917,    -1,    70,    -1,
+    -1,    -1,   339,    -1,   341,    -1,    78,    79,    80,    -1,
+    -1,   348,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,
+    -1,    93,   359,    -1,    -1,    97,   363,    -1,  1208,   366,
+  1210,    -1,    -1,    -1,   371,    -1,    -1,   109,    -1,   111,
+    -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,
+     8,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    28,    -1,    30,    31,    32,    -1,   997,   998,    36,    37,
+    -1,    -1,    -1,    41,  1005,    -1,    -1,    45,    46,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,
+    -1,    -1,    60,    11,    62,    -1,    -1,  1287,    -1,    -1,
+    -1,    -1,    70,    -1,   451,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    88,    -1,  1053,    -1,    -1,    93,    -1,  1058,    -1,  1060,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1328,  1329,
+  1330,    -1,   110,    -1,    62,    63,    64,    65,    66,    67,
+    68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+    78,    79,    80,    81,    82,    83,    84,    -1,  1358,    -1,
+    -1,  1102,  1103,    -1,  1105,   522,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   531,   532,    -1,   534,   535,    -1,
+    -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,
+     7,     8,    -1,    -1,    11,    -1,    13,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    -1,    26,
+    27,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    36,
+    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    45,   586,
+    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,   595,    56,
+    57,    58,    59,    60,    -1,    62,    63,    64,    65,    66,
+    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+    77,    78,    79,    80,    81,    82,    83,    84,  1209,    86,
+    87,    88,    -1,    90,    91,    92,    93,    94,    95,    31,
+    97,    98,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,
+    -1,   108,   109,   110,    -1,   112,    -1,    -1,    -1,   656,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   664,    -1,    -1,
+    -1,    63,    64,    65,    66,    67,    68,    69,    70,    71,
+    72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
+    82,    83,    84,    -1,    -1,    -1,   693,   694,   695,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,     1,   704,     3,     4,
+     5,     6,     7,     8,     9,    10,    -1,    12,    13,    14,
+    -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,    28,    29,    30,    31,    32,    -1,    34,
+    35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
+    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
+    -1,    56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,
+    -1,    -1,    67,    -1,    -1,    70,    -1,   774,    -1,   776,
+    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
+   787,    86,    87,    88,    -1,    -1,    -1,    -1,    93,    -1,
+    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   110,   111,     1,    -1,     3,
+     4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
+    14,    -1,    16,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,    28,    29,    30,    31,    32,    -1,
+    34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
+    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
+    54,    -1,    56,    57,    58,    -1,    60,    61,    -1,    -1,
+   877,   878,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
+    -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,
+   907,    95,    -1,    -1,    -1,    63,    64,    65,    66,    67,
+    68,    69,    70,    71,    72,    73,    74,   111,    76,    77,
+    78,    79,    80,    81,    82,    83,    84,    -1,    -1,     1,
+    -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
+    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   959,   960,    -1,   962,    28,    29,    30,    31,
+    32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
+    42,    43,    -1,    45,    -1,    47,    -1,    49,    50,    51,
+    52,    53,    54,    -1,    56,    57,    58,    -1,    -1,    61,
+    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
+    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    90,    -1,
+    -1,    93,    94,    -1,    -1,    97,    -1,    -1,    -1,    -1,
+    -1,  1038,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1056,
+     1,  1058,     3,     4,     5,     6,     7,     8,     9,    10,
+    11,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
+    31,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
+    41,    42,    43,    -1,    45,    -1,    47,    -1,    49,    50,
+    51,    52,    53,    54,    -1,    56,    57,    58,    -1,    -1,
+    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
+    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    90,
+    -1,    -1,    93,    94,    -1,     1,    97,     3,     4,     5,
+     6,     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,
+   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    28,    29,    30,    31,    32,    -1,    34,    35,
+    36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
+    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
+    56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,    -1,
+    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
+    86,    87,    88,    -1,    -1,    -1,     1,    93,     3,     4,
+     5,    -1,     7,     8,     9,    10,    -1,    12,    13,    -1,
+    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
+    35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
+    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
+    -1,    56,    57,    58,    -1,    -1,    61,    -1,    -1,    -1,
+    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
+    -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,    94,
+     1,    -1,     3,     4,     5,    -1,     7,     8,     9,    10,
+    -1,    12,    13,    -1,    -1,   110,   111,    -1,    -1,    20,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
+    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
+    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
+    51,    52,    53,    54,    -1,    56,    57,    58,    -1,    -1,
+    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
+    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,
+    -1,    -1,    93,     1,    -1,     3,     4,     5,    -1,     7,
+     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,   110,
+   111,    -1,    20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
+    38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
+    -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
+    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,
+    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
+    88,    -1,    -1,    -1,     1,    93,     3,     4,     5,    -1,
+     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,
+    -1,    -1,   110,   111,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
+    -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
+    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
+    57,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
+    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
+    87,    88,    -1,    -1,    -1,    -1,    93,    94,     1,    -1,
+     3,     4,     5,    -1,     7,     8,     9,    10,    -1,    12,
+    13,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
+    -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
+    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
+    53,    54,    -1,    56,    57,    58,    -1,    -1,    61,     1,
+    -1,    -1,     4,     5,    67,     7,     8,    70,    -1,    -1,
+    -1,    13,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
+    -1,    -1,    -1,    86,    87,    88,    28,    -1,    30,    -1,
+    93,    -1,    -1,    -1,    36,    -1,    38,    39,    -1,   102,
+    -1,    -1,    -1,    45,    -1,    47,    -1,    -1,   111,    -1,
+    -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,    -1,
+    -1,    63,    64,    65,    66,    67,    68,    69,    70,    71,
+    72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
+    82,    83,    -1,    -1,    86,    87,    88,    -1,    -1,    91,
+    -1,     1,    94,     3,     4,     5,    -1,     7,     8,     9,
+    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,   111,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
+    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
+    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
+    50,    51,    52,    53,    54,    -1,    56,    57,    58,    -1,
+    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
+    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
+    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
+    -1,    -1,     1,    93,     3,     4,     5,    -1,     7,     8,
+     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
+    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
+    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
+    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
+    49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
+    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
+    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
+    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
+    -1,    -1,    -1,     1,    93,     3,     4,     5,    -1,     7,
+     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
+    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
+    38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
+    -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
+    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    67,
+    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
+    88,    -1,    -1,    -1,     1,    93,     3,     4,     5,    -1,
+     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,
+    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
+    -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
+    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
+    57,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
+    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
+    87,    88,    -1,    -1,    -1,     1,    93,     3,     4,     5,
+    -1,     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,
+    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
+    36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
+    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
+    56,    57,    -1,    -1,    60,    61,    -1,    -1,    -1,    -1,
+    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
+    86,    87,    88,    -1,    -1,    -1,     1,    93,     3,     4,
+     5,    -1,     7,     8,     9,    10,    -1,    12,    13,    -1,
+    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
+    35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
+    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
+    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,
+    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
+    -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,     3,
+     4,     5,    -1,     7,     8,     9,    10,    -1,    12,    13,
+    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
+    34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
+    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
+    54,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,
+    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
+    -1,    -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,
+     3,     4,     5,    -1,     7,     8,     9,    10,    -1,    12,
+    13,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
+    -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
+    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
+    53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,
+    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
+    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,     1,
+    93,     3,     4,     5,    -1,     7,     8,     9,    10,    -1,
+    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,
+    32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
+    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
+    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,
+    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
+    -1,    -1,    -1,    -1,    86,    87,    88,    -1,     3,     4,
+     5,    93,     7,     8,     9,    10,    -1,    12,    13,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
+    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
+    35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
+    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
+    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,
+    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
+    -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,    68,
+    69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+    79,    80,    81,    82,    83,    84,   111,   112,     3,     4,
+     5,     6,     7,     8,     9,    10,    -1,    12,    13,    14,
+    -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,    28,    29,    30,    31,    32,    -1,    34,
+    35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
+    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
+    -1,    56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,
+    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
+    -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,    -1,
+    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   110,   111,     3,     4,     5,
+     6,     7,     8,     9,    10,    -1,    12,    13,    14,    -1,
+    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    28,    29,    30,    31,    32,    -1,    34,    35,
+    36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
+    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
+    56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,    -1,
+    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
+    86,    87,    88,    -1,    -1,    -1,    -1,    93,    -1,    95,
+    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
+    10,    -1,    12,    13,    14,   111,    16,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+    30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
+    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
+    50,    51,    52,    53,    54,    -1,    56,    57,    58,    -1,
+    60,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
+    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
+    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
+    -1,    -1,    -1,    93,    -1,    95,    -1,    -1,    -1,     3,
+     4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
+    14,   111,    16,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,    28,    29,    30,    31,    32,    -1,
+    34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
+    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
+    54,    -1,    56,    57,    -1,    -1,    60,    61,    -1,    -1,
+    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
+    -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,
+    -1,    95,     3,     4,     5,     6,     7,     8,     9,    10,
+    11,    12,    13,    -1,    -1,    -1,    -1,   111,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
+    31,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
+    41,    42,    43,    -1,    45,    -1,    47,    -1,    49,    50,
+    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,
+    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
+    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    90,
+    -1,    -1,    93,    94,    -1,    -1,    97,     3,     4,     5,
+     6,     7,     8,     9,    10,    11,    12,    13,    -1,    -1,
+   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    28,    29,    30,    31,    32,    -1,    34,    35,
+    36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
+    -1,    47,    -1,    49,    50,    51,    52,    53,    54,    -1,
+    56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,
+    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
+    86,    87,    88,    -1,    90,    -1,    -1,    93,    94,    -1,
+    -1,    97,     3,     4,     5,    -1,     7,     8,     9,    10,
+    -1,    12,    13,    -1,    -1,   111,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
+    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
+    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
+    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,
+    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
+    -1,    -1,    -1,    -1,    75,    -1,    77,    78,    79,    80,
+    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,     3,
+     4,     5,    93,     7,     8,     9,    10,    -1,    12,    13,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   111,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
+    34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
+    -1,    45,    -1,    47,    -1,    49,    50,    51,    52,    53,
+    54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
+    -1,    -1,    86,    87,    88,    -1,    90,    -1,    -1,    93,
+    94,     3,     4,     5,    -1,     7,     8,     9,    10,    -1,
+    12,    13,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,
+    32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
+    42,    43,    -1,    45,    -1,    47,    -1,    49,    50,    51,
+    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
+    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    90,    -1,
+    -1,    93,    94,     3,     4,     5,    -1,     7,     8,     9,
+    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,   111,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
+    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
+    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
+    50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
+    60,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
+    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
+    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
+    -1,    -1,    -1,    93,     3,     4,     5,     6,     7,     8,
+     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
+    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
+    29,    30,    31,    32,    -1,    34,    35,    36,    -1,    38,
+    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
+    49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
+    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
+    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
+    -1,     3,     4,     5,    93,     7,     8,     9,    10,    -1,
+    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   111,    -1,    -1,    -1,    28,    29,    30,    -1,
+    32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
+    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
+    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,
+    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
+    -1,    -1,    -1,    -1,    86,    87,    88,    -1,     3,     4,
+     5,    93,     7,     8,     9,    10,    -1,    12,    13,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
+    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
+    35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
+    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
+    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,
+    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
+    -1,    86,    87,    88,    -1,     3,     4,     5,    93,     7,
+     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
+    28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
+    38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
+    -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
+    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
+    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
+    88,    -1,     3,     4,     5,    93,     7,     8,     9,    10,
+    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   111,    -1,    -1,    -1,    28,    29,    30,
+    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
+    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
+    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
+    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,
+    -1,    -1,    93,    94,     3,     4,     5,    -1,     7,     8,
+     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
+   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
+    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
+    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
+    49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
+    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
+    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
+    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
+    -1,     3,     4,     5,    93,     7,     8,     9,    10,    -1,
+    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   111,    -1,    -1,    -1,    28,    29,    30,    -1,
+    32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
+    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
+    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,
+    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
+    -1,    -1,    -1,    -1,    86,    87,    88,    -1,     3,     4,
+     5,    93,     7,     8,     9,    10,    -1,    12,    13,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
+    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
+    35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
+    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
+    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,
+    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
+    -1,    86,    87,    88,    -1,     3,     4,     5,    93,     7,
+     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
+    28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
+    38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
+    -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
+    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
+    88,    -1,     3,     4,     5,    93,     7,     8,     9,    10,
+    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   111,    -1,    -1,    -1,    28,    29,    30,
+    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
+    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
+    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
+    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,     3,
+     4,     5,    93,     7,     8,     9,    10,    -1,    12,    13,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   111,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
+    34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
+    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
+    54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
+    -1,    -1,    86,    87,    88,    -1,     3,     4,     5,    93,
+     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
+    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
+    -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
+    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
+    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
+    87,    88,    -1,     3,     4,     5,    93,     7,     8,     9,
+    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    28,    29,
+    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
+    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
+    50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,     1,
+    70,     3,     4,     5,     6,     7,     8,    -1,    78,    79,
+    80,    13,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
+    -1,    -1,    -1,    93,    26,    27,    28,    -1,    30,    31,
+    32,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,
+    -1,   111,    44,    45,    46,    -1,    48,    -1,    -1,    -1,
+    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    60,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,     1,
+    -1,     3,     4,     5,     6,     7,     8,    -1,    80,    -1,
+    -1,    13,    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,
+    -1,    93,    -1,    -1,    26,    27,    28,    99,    30,    31,
+    32,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,
+    -1,    -1,    44,    45,    46,    -1,    48,    -1,    -1,    -1,
+    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    60,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,     1,
+    -1,     3,     4,     5,     6,     7,     8,    -1,    80,    -1,
+    -1,    13,    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,
+    -1,    93,    -1,    -1,    -1,    -1,    28,    99,    30,    31,
+    32,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,
+    -1,    -1,    -1,    45,    46,    -1,     3,     4,     5,     6,
+     7,     8,    54,    -1,    56,    57,    13,    -1,    60,    -1,
+    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
+    -1,    28,    -1,    30,    31,    -1,    -1,    -1,    80,    36,
+    -1,    -1,    -1,    -1,    41,    -1,    88,    -1,    45,    -1,
+    -1,    93,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,
+    57,     3,     4,     5,     6,     7,     8,    -1,    -1,    11,
+    -1,    13,    -1,    70,    -1,    -1,    -1,    74,    -1,    -1,
+    -1,    -1,    -1,    80,    -1,    -1,    28,    -1,    30,    31,
+    -1,    88,    -1,    -1,    36,    -1,    93,    -1,    -1,    41,
+    -1,    -1,    -1,    45,    -1,    -1,     3,     4,     5,     6,
+     7,     8,    54,    -1,    56,    57,    13,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
+    -1,    28,    -1,    30,    31,    -1,    -1,    -1,    80,    36,
+    -1,    -1,    -1,    -1,    41,    -1,    88,    -1,    45,    -1,
+    -1,    93,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,
+    57,    -1,    -1,    -1,    -1,    62,    -1,     3,     4,     5,
+     6,     7,     8,    70,    -1,    -1,    -1,    13,    -1,    -1,
+    -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    88,    28,    -1,    30,    31,    93,    -1,    -1,    -1,
+    36,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    45,
+    -1,    -1,     3,     4,     5,     6,     7,     8,    54,    -1,
+    56,    57,    13,    -1,    60,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    70,    -1,    -1,    28,    -1,    30,
+    31,    -1,    -1,    -1,    80,    36,    -1,    -1,    -1,    -1,
+    41,    -1,    88,    -1,    45,    -1,    -1,    93,    -1,    -1,
+    -1,    -1,    -1,    54,    -1,    56,    57,     3,     4,     5,
+     6,     7,     8,    -1,    -1,    -1,    -1,    13,    -1,    70,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    80,
+    -1,    -1,    28,    -1,    30,    31,    -1,    88,    -1,    -1,
+    36,    -1,    93,    -1,    -1,    41,    -1,    -1,    -1,    45,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,
+    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    88,    -1,    -1,    -1,    -1,    93,    63,    64,
+    65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+    75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+    63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+    73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+    83,    84,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    59,    -1,    -1,   108,    63,    64,    65,    66,
+    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+    77,    78,    79,    80,    81,    82,    83,    84,    62,    63,
+    64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+    74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+    84,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+    71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+    81,    82,    83,    84,    63,    64,    65,    66,    67,    68,
+    69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+    79,    80,    81,    82,    83,    84
+};
+/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
+#line 3 "/usr/local/share/bison.simple"
+
+/* Skeleton output parser for bison,
+   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+#ifndef alloca
+#ifdef __GNUC__
+#define alloca __builtin_alloca
+#else /* not GNU C.  */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
+#include <alloca.h>
+#else /* not sparc */
+#if defined (MSDOS) && !defined (__TURBOC__)
+#include <malloc.h>
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+#include <malloc.h>
+ #pragma alloca
+#else /* not MSDOS, __TURBOC__, or _AIX */
+#ifdef __hpux
+#ifdef __cplusplus
+extern "C" {
+void *alloca (unsigned int);
+};
+#else /* not __cplusplus */
+void *alloca ();
+#endif /* not __cplusplus */
+#endif /* __hpux */
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc.  */
+#endif /* not GNU C.  */
+#endif /* alloca not defined.  */
+
+/* This is the parser code that is written into each bison parser
+  when the %semantic_parser declaration is not specified in the grammar.
+  It was written by Richard Stallman by simplifying the hairy parser
+  used when %semantic_parser is specified.  */
+
+/* Note: there must be only one dollar sign in this file.
+   It is replaced by the list of actions, each action
+   as one case of the switch.  */
+
+#define yyerrok		(yyerrstatus = 0)
+#define yyclearin	(yychar = YYEMPTY)
+#define YYEMPTY		-2
+#define YYEOF		0
+#define YYACCEPT	return(0)
+#define YYABORT 	return(1)
+#define YYERROR		goto yyerrlab1
+/* Like YYERROR except do call yyerror.
+   This remains here temporarily to ease the
+   transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  */
+#define YYFAIL		goto yyerrlab
+#define YYRECOVERING()  (!!yyerrstatus)
+#define YYBACKUP(token, value) \
+do								\
+  if (yychar == YYEMPTY && yylen == 1)				\
+    { yychar = (token), yylval = (value);			\
+      yychar1 = YYTRANSLATE (yychar);				\
+      YYPOPSTACK;						\
+      goto yybackup;						\
+    }								\
+  else								\
+    { yyerror ("syntax error: cannot back up"); YYERROR; }	\
+while (0)
+
+#define YYTERROR	1
+#define YYERRCODE	256
+
+#ifndef YYPURE
+#define YYLEX		yylex()
+#endif
+
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
+#ifdef YYLEX_PARAM
+#define YYLEX		yylex(&yylval, &yylloc, YYLEX_PARAM)
+#else
+#define YYLEX		yylex(&yylval, &yylloc)
+#endif
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX		yylex(&yylval, YYLEX_PARAM)
+#else
+#define YYLEX		yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
+#endif
+
+/* If nonreentrant, generate the variables here */
+
+#ifndef YYPURE
+
+int	yychar;			/*  the lookahead symbol		*/
+YYSTYPE	yylval;			/*  the semantic value of the		*/
+				/*  lookahead symbol			*/
+
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc;			/*  location data for the lookahead	*/
+				/*  symbol				*/
+#endif
+
+int yynerrs;			/*  number of parse errors so far       */
+#endif  /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug;			/*  nonzero means print parse trace	*/
+/* Since this is uninitialized, it does not stop multiple parsers
+   from coexisting.  */
+#endif
+
+/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/
+
+#ifndef	YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
+
+/*  YYMAXDEPTH is the maximum size the stacks can grow to
+    (effective only if the built-in stack extension method is used).  */
+
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+
+/* Prevent warning if -Wstrict-prototypes.  */
+#ifdef __GNUC__
+int yyparse (void);
+#endif
+
+#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
+#define __yy_memcpy(FROM,TO,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
+#else				/* not GNU C or C++ */
+#ifndef __cplusplus
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (from, to, count)
+     char *from;
+     char *to;
+     int count;
+{
+  register char *f = from;
+  register char *t = to;
+  register int i = count;
+
+  while (i-- > 0)
+    *t++ = *f++;
+}
+
+#else /* __cplusplus */
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (char *from, char *to, int count)
+{
+  register char *f = from;
+  register char *t = to;
+  register int i = count;
+
+  while (i-- > 0)
+    *t++ = *f++;
+}
+
+#endif
+#endif
+
+#line 192 "/usr/local/share/bison.simple"
+
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+   into yyparse.  The argument should have type void *.
+   It should actually point to an object.
+   Grammar actions can access the variable by casting it
+   to the proper pointer type.  */
+
+#ifdef YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#else
+#define YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#endif
+
+int
+yyparse(YYPARSE_PARAM)
+     YYPARSE_PARAM_DECL
+{
+  register int yystate;
+  register int yyn;
+  register short *yyssp;
+  register YYSTYPE *yyvsp;
+  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
+  int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */
+
+  short	yyssa[YYINITDEPTH];	/*  the state stack			*/
+  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/
+
+  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */
+  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */
+
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/
+  YYLTYPE *yyls = yylsa;
+  YYLTYPE *yylsp;
+
+#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
+#else
+#define YYPOPSTACK   (yyvsp--, yyssp--)
+#endif
+
+  int yystacksize = YYINITDEPTH;
+
+#ifdef YYPURE
+  int yychar;
+  YYSTYPE yylval;
+  int yynerrs;
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylloc;
+#endif
+#endif
+
+  YYSTYPE yyval;		/*  the variable used to return		*/
+				/*  semantic values from the action	*/
+				/*  routines				*/
+
+  int yylen;
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Starting parse\n");
+#endif
+
+  yystate = 0;
+  yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY;		/* Cause a token to be read.  */
+
+  /* Initialize stack pointers.
+     Waste one element of value and location stack
+     so that they stay on the same level as the state stack.
+     The wasted elements are never initialized.  */
+
+  yyssp = yyss - 1;
+  yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+  yylsp = yyls;
+#endif
+
+/* Push a new state, which is found in  yystate  .  */
+/* In all cases, when you get here, the value and location stacks
+   have just been pushed. so pushing a state here evens the stacks.  */
+yynewstate:
+
+  *++yyssp = yystate;
+
+  if (yyssp >= yyss + yystacksize - 1)
+    {
+      /* Give user a chance to reallocate the stack */
+      /* Use copies of these so that the &'s don't force the real ones into memory. */
+      YYSTYPE *yyvs1 = yyvs;
+      short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+      YYLTYPE *yyls1 = yyls;
+#endif
+
+      /* Get the current used size of the three stacks, in elements.  */
+      int size = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+      /* Each stack pointer address is followed by the size of
+	 the data in use in that stack, in bytes.  */
+#ifdef YYLSP_NEEDED
+      /* This used to be a conditional around just the two extra args,
+	 but that might be undefined if yyoverflow is a macro.  */
+      yyoverflow("parser stack overflow",
+		 &yyss1, size * sizeof (*yyssp),
+		 &yyvs1, size * sizeof (*yyvsp),
+		 &yyls1, size * sizeof (*yylsp),
+		 &yystacksize);
+#else
+      yyoverflow("parser stack overflow",
+		 &yyss1, size * sizeof (*yyssp),
+		 &yyvs1, size * sizeof (*yyvsp),
+		 &yystacksize);
+#endif
+
+      yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+      yyls = yyls1;
+#endif
+#else /* no yyoverflow */
+      /* Extend the stack our own way.  */
+      if (yystacksize >= YYMAXDEPTH)
+	{
+	  yyerror("parser stack overflow");
+	  return 2;
+	}
+      yystacksize *= 2;
+      if (yystacksize > YYMAXDEPTH)
+	yystacksize = YYMAXDEPTH;
+      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
+      __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
+      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
+      __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
+      __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
+#endif
+#endif /* no yyoverflow */
+
+      yyssp = yyss + size - 1;
+      yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+      yylsp = yyls + size - 1;
+#endif
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
+
+      if (yyssp >= yyss + yystacksize - 1)
+	YYABORT;
+    }
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Entering state %d\n", yystate);
+#endif
+
+  goto yybackup;
+ yybackup:
+
+/* Do appropriate processing given the current state.  */
+/* Read a lookahead token if we need one and don't already have one.  */
+/* yyresume: */
+
+  /* First try to decide what to do without reference to lookahead token.  */
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yydefault;
+
+  /* Not known => get a lookahead token if don't already have one.  */
+
+  /* yychar is either YYEMPTY or YYEOF
+     or a valid token in external form.  */
+
+  if (yychar == YYEMPTY)
+    {
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Reading a token: ");
+#endif
+      yychar = YYLEX;
+    }
+
+  /* Convert token to internal form (in yychar1) for indexing tables with */
+
+  if (yychar <= 0)		/* This means end of input. */
+    {
+      yychar1 = 0;
+      yychar = YYEOF;		/* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Now at end of input.\n");
+#endif
+    }
+  else
+    {
+      yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+      if (yydebug)
+	{
+	  fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+	  /* Give the individual parser a way to print the precise meaning
+	     of a token, for further debugging info.  */
+#ifdef YYPRINT
+	  YYPRINT (stderr, yychar, yylval);
+#endif
+	  fprintf (stderr, ")\n");
+	}
+#endif
+    }
+
+  yyn += yychar1;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+    goto yydefault;
+
+  yyn = yytable[yyn];
+
+  /* yyn is what to do for this token type in this state.
+     Negative => reduce, -yyn is rule number.
+     Positive => shift, yyn is new state.
+       New state is final state => don't bother to shift,
+       just return success.
+     0, or most negative number => error.  */
+
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+	goto yyerrlab;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+  else if (yyn == 0)
+    goto yyerrlab;
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  /* Shift the lookahead token.  */
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
+
+  /* Discard the token being shifted unless it is eof.  */
+  if (yychar != YYEOF)
+    yychar = YYEMPTY;
+
+  *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
+
+  /* count tokens shifted since error; after three, turn off error status.  */
+  if (yyerrstatus) yyerrstatus--;
+
+  yystate = yyn;
+  goto yynewstate;
+
+/* Do the default action for the current state.  */
+yydefault:
+
+  yyn = yydefact[yystate];
+  if (yyn == 0)
+    goto yyerrlab;
+
+/* Do a reduction.  yyn is the number of a rule to reduce with.  */
+yyreduce:
+  yylen = yyr2[yyn];
+  if (yylen > 0)
+    yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      int i;
+
+      fprintf (stderr, "Reducing via rule %d (line %d), ",
+	       yyn, yyrline[yyn]);
+
+      /* Print the symbols being reduced, and their result.  */
+      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+	fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+    }
+#endif
+
+
+  switch (yyn) {
+
+case 2:
+#line 312 "parse.y"
+{
+		  /* In case there were missing closebraces,
+		     get us back to the global binding level.  */
+		  while (! global_bindings_p ())
+		    poplevel (0, 0, 0);
+		  finish_file ();
+		;
+    break;}
+case 3:
+#line 326 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 4:
+#line 328 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 5:
+#line 330 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 8:
+#line 339 "parse.y"
+{ have_extern_spec = 1;
+		  used_extern_spec = 0;
+		  yyval.ttype = NULL_TREE; ;
+    break;}
+case 9:
+#line 344 "parse.y"
+{ have_extern_spec = 0; ;
+    break;}
+case 10:
+#line 349 "parse.y"
+{ yyval.itype = pedantic;
+		  pedantic = 0; ;
+    break;}
+case 13:
+#line 359 "parse.y"
+{ if (pending_lang_change) do_pending_lang_change(); ;
+    break;}
+case 14:
+#line 361 "parse.y"
+{ if (! toplevel_bindings_p () && ! pseudo_global_level_p())
+		  pop_everything (); ;
+    break;}
+case 15:
+#line 367 "parse.y"
+{ if (pending_inlines) do_pending_inlines (); ;
+    break;}
+case 16:
+#line 369 "parse.y"
+{ if (pending_inlines) do_pending_inlines (); ;
+    break;}
+case 17:
+#line 371 "parse.y"
+{ if (pending_inlines) do_pending_inlines (); ;
+    break;}
+case 18:
+#line 373 "parse.y"
+{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
+		  assemble_asm (yyvsp[-2].ttype); ;
+    break;}
+case 19:
+#line 376 "parse.y"
+{ pop_lang_context (); ;
+    break;}
+case 20:
+#line 378 "parse.y"
+{ if (pending_inlines) do_pending_inlines ();
+		  pop_lang_context (); ;
+    break;}
+case 21:
+#line 381 "parse.y"
+{ if (pending_inlines) do_pending_inlines ();
+		  pop_lang_context (); ;
+    break;}
+case 22:
+#line 384 "parse.y"
+{ push_namespace (yyvsp[-1].ttype); ;
+    break;}
+case 23:
+#line 386 "parse.y"
+{ pop_namespace (); ;
+    break;}
+case 24:
+#line 388 "parse.y"
+{ push_namespace (NULL_TREE); ;
+    break;}
+case 25:
+#line 390 "parse.y"
+{ pop_namespace (); ;
+    break;}
+case 26:
+#line 392 "parse.y"
+{ do_namespace_alias (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 27:
+#line 394 "parse.y"
+{ do_toplevel_using_decl (yyvsp[-1].ttype); ;
+    break;}
+case 28:
+#line 396 "parse.y"
+{
+		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
+		    yyvsp[-1].ttype = lastiddecl;
+		  do_using_directive (yyvsp[-1].ttype);
+		;
+    break;}
+case 29:
+#line 402 "parse.y"
+{ pedantic = yyvsp[-1].itype; ;
+    break;}
+case 30:
+#line 407 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 31:
+#line 409 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 32:
+#line 411 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 35:
+#line 418 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 36:
+#line 420 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 37:
+#line 425 "parse.y"
+{ push_lang_context (yyvsp[0].ttype); ;
+    break;}
+case 38:
+#line 427 "parse.y"
+{ if (current_lang_name != yyvsp[0].ttype)
+		    cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
+		  pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
+    break;}
+case 39:
+#line 434 "parse.y"
+{ begin_template_parm_list (); ;
+    break;}
+case 40:
+#line 436 "parse.y"
+{ yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
+    break;}
+case 41:
+#line 438 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 42:
+#line 443 "parse.y"
+{ yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 43:
+#line 445 "parse.y"
+{ yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 44:
+#line 450 "parse.y"
+{ 
+		  yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE);
+		 ttpa:
+		  if (TREE_PURPOSE (yyval.ttype) == signature_type_node)
+		    sorry ("signature as template type parameter");
+		  else if (TREE_PURPOSE (yyval.ttype) != class_type_node)
+		    {
+		      pedwarn ("template type parameters must use the keyword `class'");
+		      TREE_PURPOSE (yyval.ttype) = class_type_node;
+		    }
+		;
+    break;}
+case 45:
+#line 462 "parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); goto ttpa; ;
+    break;}
+case 46:
+#line 464 "parse.y"
+{ yyval.ttype = build_tree_list (class_type_node, NULL_TREE); ;
+    break;}
+case 47:
+#line 466 "parse.y"
+{ yyval.ttype = build_tree_list (class_type_node, yyvsp[0].ttype); ;
+    break;}
+case 48:
+#line 478 "parse.y"
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 49:
+#line 480 "parse.y"
+{ yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
+    break;}
+case 50:
+#line 482 "parse.y"
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
+    break;}
+case 51:
+#line 484 "parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
+    break;}
+case 52:
+#line 490 "parse.y"
+{ end_template_decl (); ;
+    break;}
+case 53:
+#line 493 "parse.y"
+{ end_template_decl (); ;
+    break;}
+case 54:
+#line 498 "parse.y"
+{;
+    break;}
+case 55:
+#line 500 "parse.y"
+{;
+    break;}
+case 56:
+#line 502 "parse.y"
+{
+		  note_list_got_semicolon (yyvsp[-2].ftype.t);
+		;
+    break;}
+case 57:
+#line 506 "parse.y"
+{ pedwarn ("empty declaration"); ;
+    break;}
+case 59:
+#line 509 "parse.y"
+{
+		  tree t, attrs;
+		  split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
+		  shadow_tag (t);
+		  note_list_got_semicolon (yyvsp[-1].ftype.t);
+		;
+    break;}
+case 63:
+#line 522 "parse.y"
+{ yyval.itype = 0; ;
+    break;}
+case 64:
+#line 524 "parse.y"
+{ yyval.itype = 1; ;
+    break;}
+case 70:
+#line 540 "parse.y"
+{ finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
+    break;}
+case 71:
+#line 542 "parse.y"
+{ ;
+    break;}
+case 72:
+#line 544 "parse.y"
+{ ;
+    break;}
+case 73:
+#line 549 "parse.y"
+{
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
+		  if (yyvsp[-2].ttype != current_class_type)
+		    {
+		      push_nested_class (yyvsp[-2].ttype, 3);
+		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
+		    }
+		;
+    break;}
+case 74:
+#line 558 "parse.y"
+{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 75:
+#line 560 "parse.y"
+{
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
+		  if (yyvsp[-4].ttype != current_class_type)
+		    {
+		      push_nested_class (yyvsp[-4].ttype, 3);
+		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
+		    }
+		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 76:
+#line 570 "parse.y"
+{
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
+		  if (yyvsp[-2].ttype != current_class_type)
+		    {
+		      push_nested_class (yyvsp[-2].ttype, 3);
+		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
+		    }
+		;
+    break;}
+case 77:
+#line 579 "parse.y"
+{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 78:
+#line 581 "parse.y"
+{
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
+		  if (yyvsp[-4].ttype != current_class_type)
+		    {
+		      push_nested_class (yyvsp[-4].ttype, 3);
+		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
+		    }
+		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 79:
+#line 591 "parse.y"
+{
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
+		  if (yyvsp[-2].ttype != current_class_type)
+		    {
+		      push_nested_class (yyvsp[-2].ttype, 3);
+		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
+		    }
+		;
+    break;}
+case 80:
+#line 600 "parse.y"
+{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 81:
+#line 602 "parse.y"
+{
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
+		  if (yyvsp[-4].ttype != current_class_type)
+		    {
+		      push_nested_class (yyvsp[-4].ttype, 3);
+		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
+		    }
+		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 82:
+#line 612 "parse.y"
+{
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
+		  if (yyvsp[-2].ttype != current_class_type)
+		    {
+		      push_nested_class (yyvsp[-2].ttype, 3);
+		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
+		    }
+		;
+    break;}
+case 83:
+#line 621 "parse.y"
+{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 84:
+#line 623 "parse.y"
+{
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
+		  if (yyvsp[-4].ttype != current_class_type)
+		    {
+		      push_nested_class (yyvsp[-4].ttype, 3);
+		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
+		    }
+		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 85:
+#line 636 "parse.y"
+{ tree specs, attrs;
+		  split_specs_attrs (yyvsp[-1].ftype.t, &specs, &attrs);
+		  if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
+		    YYERROR1;
+		  reinit_parse_for_function ();
+		  yyval.ttype = NULL_TREE; ;
+    break;}
+case 86:
+#line 643 "parse.y"
+{ tree specs, attrs;
+		  split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
+		  if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
+		    YYERROR1;
+		  reinit_parse_for_function ();
+		  yyval.ttype = NULL_TREE; ;
+    break;}
+case 87:
+#line 650 "parse.y"
+{ if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
+		    YYERROR1;
+		  reinit_parse_for_function ();
+		  yyval.ttype = NULL_TREE; ;
+    break;}
+case 88:
+#line 655 "parse.y"
+{ tree specs, attrs;
+		  split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
+		  if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
+		    YYERROR1;
+		  reinit_parse_for_function ();
+		  yyval.ttype = NULL_TREE; ;
+    break;}
+case 89:
+#line 662 "parse.y"
+{ if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
+		    YYERROR1;
+		  reinit_parse_for_function ();
+		  yyval.ttype = NULL_TREE; ;
+    break;}
+case 90:
+#line 670 "parse.y"
+{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 91:
+#line 672 "parse.y"
+{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 92:
+#line 674 "parse.y"
+{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 93:
+#line 676 "parse.y"
+{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 94:
+#line 683 "parse.y"
+{ tree specs = strip_attrs (yyvsp[-1].ttype);
+		  yyval.ttype = start_method (specs, yyvsp[0].ttype);
+		 rest_of_mdef:
+		  if (! yyval.ttype)
+		    YYERROR1;
+		  if (yychar == YYEMPTY)
+		    yychar = YYLEX;
+		  reinit_parse_for_method (yychar, yyval.ttype); ;
+    break;}
+case 95:
+#line 692 "parse.y"
+{ yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype); goto rest_of_mdef; ;
+    break;}
+case 96:
+#line 694 "parse.y"
+{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
+		  yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
+    break;}
+case 97:
+#line 697 "parse.y"
+{ tree specs = strip_attrs (yyvsp[-1].ttype);
+		  yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
+    break;}
+case 98:
+#line 700 "parse.y"
+{ yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
+    break;}
+case 99:
+#line 702 "parse.y"
+{ tree specs = strip_attrs (yyvsp[-1].ttype);
+		  yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
+    break;}
+case 100:
+#line 705 "parse.y"
+{ yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
+    break;}
+case 101:
+#line 710 "parse.y"
+{
+		  if (! current_function_parms_stored)
+		    store_parm_decls ();
+		  yyval.ttype = yyvsp[0].ttype;
+		;
+    break;}
+case 102:
+#line 719 "parse.y"
+{ store_return_init (yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 103:
+#line 721 "parse.y"
+{ store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
+    break;}
+case 104:
+#line 723 "parse.y"
+{ store_return_init (yyval.ttype, NULL_TREE); ;
+    break;}
+case 105:
+#line 728 "parse.y"
+{
+		  if (yyvsp[0].itype == 0)
+		    error ("no base initializers given following ':'");
+		  setup_vtbl_ptr ();
+		  /* Always keep the BLOCK node associated with the outermost
+		     pair of curley braces of a function.  These are needed
+		     for correct operation of dwarfout.c.  */
+		  keep_next_level ();
+		;
+    break;}
+case 106:
+#line 741 "parse.y"
+{
+		  if (! current_function_parms_stored)
+		    store_parm_decls ();
+
+		  if (DECL_CONSTRUCTOR_P (current_function_decl))
+		    {
+		      /* Make a contour for the initializer list.  */
+		      pushlevel (0);
+		      clear_last_expr ();
+		      expand_start_bindings (0);
+		    }
+		  else if (current_class_type == NULL_TREE)
+		    error ("base initializers not allowed for non-member functions");
+		  else if (! DECL_CONSTRUCTOR_P (current_function_decl))
+		    error ("only constructors take base initializers");
+		;
+    break;}
+case 107:
+#line 761 "parse.y"
+{ yyval.itype = 0; ;
+    break;}
+case 108:
+#line 763 "parse.y"
+{ yyval.itype = 1; ;
+    break;}
+case 111:
+#line 770 "parse.y"
+{
+		  if (current_class_name)
+		    pedwarn ("anachronistic old style base class initializer");
+		  expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
+		;
+    break;}
+case 112:
+#line 776 "parse.y"
+{
+		  if (current_class_name)
+		    pedwarn ("anachronistic old style base class initializer");
+		  expand_member_init (current_class_ref, NULL_TREE, void_type_node);
+		;
+    break;}
+case 113:
+#line 782 "parse.y"
+{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 114:
+#line 784 "parse.y"
+{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
+    break;}
+case 115:
+#line 786 "parse.y"
+{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 116:
+#line 788 "parse.y"
+{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
+    break;}
+case 117:
+#line 791 "parse.y"
+{
+		  do_member_init (OP0 (yyvsp[-3].ttype), OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype);
+		;
+    break;}
+case 118:
+#line 795 "parse.y"
+{
+		  do_member_init (OP0 (yyvsp[-1].ttype), OP1 (yyvsp[-1].ttype), void_type_node);
+		;
+    break;}
+case 130:
+#line 822 "parse.y"
+{ do_type_instantiation (yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 131:
+#line 824 "parse.y"
+{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
+		  do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 132:
+#line 827 "parse.y"
+{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 133:
+#line 829 "parse.y"
+{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 134:
+#line 831 "parse.y"
+{ do_type_instantiation (yyvsp[0].ttype, yyvsp[-3].ttype); ;
+    break;}
+case 135:
+#line 833 "parse.y"
+{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
+		  do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-3].ttype); ;
+    break;}
+case 136:
+#line 836 "parse.y"
+{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
+    break;}
+case 137:
+#line 838 "parse.y"
+{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
+    break;}
+case 138:
+#line 847 "parse.y"
+{
+		  yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
+		  if (yyval.ttype != error_mark_node)
+		    yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
+		;
+    break;}
+case 139:
+#line 853 "parse.y"
+{
+		  yyval.ttype = lookup_template_class (yyvsp[-2].ttype, NULL_TREE, NULL_TREE);
+		  if (yyval.ttype != error_mark_node)
+		    yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
+		;
+    break;}
+case 140:
+#line 859 "parse.y"
+{
+		  yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
+		  if (yyval.ttype != error_mark_node)
+		    yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
+		;
+    break;}
+case 141:
+#line 865 "parse.y"
+{
+		  yyval.ttype = lookup_template_class (yyvsp[-2].ttype, NULL_TREE, NULL_TREE);
+		  if (yyval.ttype != error_mark_node)
+		    yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
+		;
+    break;}
+case 143:
+#line 875 "parse.y"
+{
+		  yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
+		  if (yyval.ttype != error_mark_node)
+		    yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
+		;
+    break;}
+case 144:
+#line 881 "parse.y"
+{
+		  yyval.ttype = lookup_template_class (yyvsp[-2].ttype, NULL_TREE, NULL_TREE);
+		  if (yyval.ttype != error_mark_node)
+		    yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
+		;
+    break;}
+case 146:
+#line 891 "parse.y"
+{
+		  /* Handle `Class<Class<Type>>' without space in the `>>' */
+		  pedwarn ("`>>' should be `> >' in template class name");
+		  yyungetc ('>', 1);
+		;
+    break;}
+case 147:
+#line 900 "parse.y"
+{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
+    break;}
+case 148:
+#line 902 "parse.y"
+{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 149:
+#line 907 "parse.y"
+{ yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
+    break;}
+case 151:
+#line 913 "parse.y"
+{ yyval.code = NEGATE_EXPR; ;
+    break;}
+case 152:
+#line 915 "parse.y"
+{ yyval.code = CONVERT_EXPR; ;
+    break;}
+case 153:
+#line 917 "parse.y"
+{ yyval.code = PREINCREMENT_EXPR; ;
+    break;}
+case 154:
+#line 919 "parse.y"
+{ yyval.code = PREDECREMENT_EXPR; ;
+    break;}
+case 155:
+#line 921 "parse.y"
+{ yyval.code = TRUTH_NOT_EXPR; ;
+    break;}
+case 156:
+#line 926 "parse.y"
+{ yyval.ttype = build_x_compound_expr (yyval.ttype); ;
+    break;}
+case 158:
+#line 932 "parse.y"
+{ error ("ANSI C++ forbids an empty condition for `%s'",
+			 cond_stmt_keyword);
+		  yyval.ttype = integer_zero_node; ;
+    break;}
+case 159:
+#line 936 "parse.y"
+{ yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
+    break;}
+case 160:
+#line 941 "parse.y"
+{ error ("ANSI C++ forbids an empty condition for `%s'",
+			 cond_stmt_keyword);
+		  yyval.ttype = integer_zero_node; ;
+    break;}
+case 161:
+#line 945 "parse.y"
+{ yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
+    break;}
+case 162:
+#line 950 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 163:
+#line 952 "parse.y"
+{ yyval.ttype = condition_conversion (yyval.ttype); ;
+    break;}
+case 164:
+#line 954 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 165:
+#line 959 "parse.y"
+{ {
+		  tree d;
+		  for (d = getdecls (); d; d = TREE_CHAIN (d))
+		    if (TREE_CODE (d) == TYPE_DECL) {
+		      tree s = TREE_TYPE (d);
+		      if (TREE_CODE (s) == RECORD_TYPE)
+			cp_error ("definition of class `%T' in condition", s);
+		      else if (TREE_CODE (s) == ENUMERAL_TYPE)
+			cp_error ("definition of enum `%T' in condition", s);
+		    }
+		  }
+		  current_declspecs = yyvsp[-4].ftype.t;
+		  yyvsp[0].itype = suspend_momentary ();
+		  yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
+		  cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype,
+					 /*prefix_attributes*/ NULL_TREE);
+		;
+    break;}
+case 166:
+#line 977 "parse.y"
+{ 
+		  cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
+		  resume_momentary (yyvsp[-2].itype);
+		  yyval.ttype = yyvsp[-1].ttype; 
+		  if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
+		    cp_error ("definition of array `%#D' in condition", yyval.ttype); 
+		;
+    break;}
+case 172:
+#line 996 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
+		      COMPOUND_STMT_NO_SCOPE (yyval.ttype) = 1;
+		      add_tree (yyval.ttype);
+		    }
+		;
+    break;}
+case 173:
+#line 1005 "parse.y"
+{ 
+		  if (processing_template_decl)
+		    {
+		      TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
+		      TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
+		      last_tree = yyvsp[-1].ttype;
+		    }
+		  finish_stmt (); 
+		;
+    break;}
+case 175:
+#line 1020 "parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, 
+		                  build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 176:
+#line 1023 "parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, 
+		                  build_tree_list (NULL_TREE, error_mark_node)); ;
+    break;}
+case 177:
+#line 1026 "parse.y"
+{ chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 178:
+#line 1028 "parse.y"
+{ chainon (yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ;
+    break;}
+case 179:
+#line 1033 "parse.y"
+{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
+    break;}
+case 181:
+#line 1039 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 182:
+#line 1042 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+		  pedantic = yyvsp[-1].itype; ;
+    break;}
+case 183:
+#line 1045 "parse.y"
+{ yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
+    break;}
+case 184:
+#line 1047 "parse.y"
+{ yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
+    break;}
+case 185:
+#line 1049 "parse.y"
+{ yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
+    break;}
+case 186:
+#line 1051 "parse.y"
+{ yyval.ttype = build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype);
+		  if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
+		    TREE_NEGATED_INT (yyval.ttype) = 1;
+		  overflow_warning (yyval.ttype);
+		;
+    break;}
+case 187:
+#line 1058 "parse.y"
+{ tree label = lookup_label (yyvsp[0].ttype);
+		  if (label == NULL_TREE)
+		    yyval.ttype = null_pointer_node;
+		  else
+		    {
+		      TREE_USED (label) = 1;
+		      yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
+		      TREE_CONSTANT (yyval.ttype) = 1;
+		    }
+		;
+    break;}
+case 188:
+#line 1069 "parse.y"
+{ yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
+    break;}
+case 189:
+#line 1071 "parse.y"
+{ yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ;
+    break;}
+case 190:
+#line 1073 "parse.y"
+{ yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
+    break;}
+case 191:
+#line 1075 "parse.y"
+{ yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t)); 
+		  check_for_new_type ("alignof", yyvsp[-1].ftype); ;
+    break;}
+case 192:
+#line 1081 "parse.y"
+{ yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); 
+		  check_for_new_type ("new", yyvsp[0].ftype); ;
+    break;}
+case 193:
+#line 1084 "parse.y"
+{ yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); 
+		  check_for_new_type ("new", yyvsp[-1].ftype); ;
+    break;}
+case 194:
+#line 1087 "parse.y"
+{ yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); 
+		  check_for_new_type ("new", yyvsp[0].ftype); ;
+    break;}
+case 195:
+#line 1090 "parse.y"
+{ yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); 
+		  check_for_new_type ("new", yyvsp[-1].ftype); ;
+    break;}
+case 196:
+#line 1093 "parse.y"
+{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
+				  NULL_TREE, yyvsp[-3].itype); 
+		  check_for_new_type ("new", yyvsp[-1].ftype); ;
+    break;}
+case 197:
+#line 1097 "parse.y"
+{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype); 
+		  check_for_new_type ("new", yyvsp[-2].ftype); ;
+    break;}
+case 198:
+#line 1100 "parse.y"
+{ yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype); 
+		  check_for_new_type ("new", yyvsp[-1].ftype); ;
+    break;}
+case 199:
+#line 1103 "parse.y"
+{ yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); 
+		  check_for_new_type ("new", yyvsp[-2].ftype); ;
+    break;}
+case 200:
+#line 1107 "parse.y"
+{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
+    break;}
+case 201:
+#line 1109 "parse.y"
+{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
+		  if (yychar == YYEMPTY)
+		    yychar = YYLEX; ;
+    break;}
+case 202:
+#line 1113 "parse.y"
+{ yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
+		  if (yychar == YYEMPTY)
+		    yychar = YYLEX; ;
+    break;}
+case 203:
+#line 1117 "parse.y"
+{ yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
+    break;}
+case 204:
+#line 1119 "parse.y"
+{ yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
+    break;}
+case 205:
+#line 1124 "parse.y"
+{ yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 206:
+#line 1126 "parse.y"
+{
+		  yyval.ttype = yyvsp[-1].ttype; 
+		  pedwarn ("old style placement syntax, use () instead");
+		;
+    break;}
+case 207:
+#line 1134 "parse.y"
+{ yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 208:
+#line 1136 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 209:
+#line 1138 "parse.y"
+{
+		  cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
+		  yyval.ttype = error_mark_node;
+		;
+    break;}
+case 210:
+#line 1146 "parse.y"
+{
+		  if (pedantic)
+		    pedwarn ("ANSI C++ forbids initialization of new expression with `='");
+		  yyval.ttype = yyvsp[0].ttype;
+		;
+    break;}
+case 211:
+#line 1156 "parse.y"
+{ yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
+		  TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
+		  yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
+		  check_for_new_type ("cast", yyvsp[-1].ftype); ;
+    break;}
+case 212:
+#line 1161 "parse.y"
+{ yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
+		  TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
+		  yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
+		  check_for_new_type ("cast", yyvsp[-1].ftype); ;
+    break;}
+case 214:
+#line 1170 "parse.y"
+{ yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 215:
+#line 1172 "parse.y"
+{ 
+		  tree init = build_nt (CONSTRUCTOR, NULL_TREE,
+					nreverse (yyvsp[-2].ttype)); 
+		  if (pedantic)
+		    pedwarn ("ANSI C++ forbids constructor-expressions");
+		  /* Indicate that this was a GNU C constructor expression.  */
+		  TREE_HAS_CONSTRUCTOR (init) = 1;
+
+		  yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
+		;
+    break;}
+case 217:
+#line 1188 "parse.y"
+{ yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 218:
+#line 1190 "parse.y"
+{ yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 219:
+#line 1192 "parse.y"
+{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 220:
+#line 1194 "parse.y"
+{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 221:
+#line 1196 "parse.y"
+{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 222:
+#line 1198 "parse.y"
+{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 223:
+#line 1200 "parse.y"
+{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 224:
+#line 1202 "parse.y"
+{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 225:
+#line 1204 "parse.y"
+{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 226:
+#line 1206 "parse.y"
+{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 227:
+#line 1208 "parse.y"
+{ yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 228:
+#line 1210 "parse.y"
+{ yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 229:
+#line 1212 "parse.y"
+{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 230:
+#line 1214 "parse.y"
+{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 231:
+#line 1216 "parse.y"
+{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 232:
+#line 1218 "parse.y"
+{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 233:
+#line 1220 "parse.y"
+{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 234:
+#line 1222 "parse.y"
+{ yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 235:
+#line 1224 "parse.y"
+{ yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 236:
+#line 1226 "parse.y"
+{ yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 237:
+#line 1228 "parse.y"
+{ yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
+		  if (yyval.ttype != error_mark_node)
+                    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
+    break;}
+case 238:
+#line 1232 "parse.y"
+{ yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
+    break;}
+case 239:
+#line 1234 "parse.y"
+{ yyval.ttype = build_throw (NULL_TREE); ;
+    break;}
+case 240:
+#line 1236 "parse.y"
+{ yyval.ttype = build_throw (yyvsp[0].ttype); ;
+    break;}
+case 241:
+#line 1254 "parse.y"
+{ yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
+    break;}
+case 250:
+#line 1270 "parse.y"
+{ yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
+    break;}
+case 251:
+#line 1272 "parse.y"
+{ yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
+    break;}
+case 252:
+#line 1274 "parse.y"
+{ yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 255:
+#line 1281 "parse.y"
+{ yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
+    break;}
+case 256:
+#line 1286 "parse.y"
+{
+		  if (TREE_CODE (yyval.ttype) == BIT_NOT_EXPR)
+		    yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyval.ttype, 0));
+		  else
+		    yyval.ttype = do_identifier (yyval.ttype, 1);
+		;
+    break;}
+case 259:
+#line 1295 "parse.y"
+{
+		  if (processing_template_decl)
+		    push_obstacks (&permanent_obstack, &permanent_obstack);
+		  yyval.ttype = combine_strings (yyval.ttype);
+		  if (processing_template_decl)
+		    pop_obstacks ();
+		;
+    break;}
+case 260:
+#line 1303 "parse.y"
+{ char class;
+		  yyval.ttype = yyvsp[-1].ttype;
+		  class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
+		  if (class == 'e' || class == '1'
+		      || class == '2' || class == '<')
+                    /* This inhibits warnings in truthvalue_conversion.  */
+		    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
+    break;}
+case 261:
+#line 1311 "parse.y"
+{ char class;
+		  yyval.ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
+		  class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
+		  if (class == 'e' || class == '1'
+		      || class == '2' || class == '<')
+                    /* This inhibits warnings in truthvalue_conversion.  */
+		    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
+    break;}
+case 262:
+#line 1319 "parse.y"
+{ yyval.ttype = error_mark_node; ;
+    break;}
+case 263:
+#line 1321 "parse.y"
+{ if (current_function_decl == 0)
+		    {
+		      error ("braced-group within expression allowed only inside a function");
+		      YYERROR;
+		    }
+		  keep_next_level ();
+		  yyval.ttype = expand_start_stmt_expr (); ;
+    break;}
+case 264:
+#line 1329 "parse.y"
+{ tree rtl_exp;
+		  if (pedantic)
+		    pedwarn ("ANSI C++ forbids braced-groups within expressions");
+		  rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
+		  /* The statements have side effects, so the group does.  */
+		  TREE_SIDE_EFFECTS (rtl_exp) = 1;
+
+		  if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
+		    {
+		      /* Make a BIND_EXPR for the BLOCK already made.  */
+		      yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
+				  NULL_TREE, rtl_exp, yyvsp[-1].ttype);
+		      /* Remove the block from the tree at this point.
+			 It gets put back at the proper place
+			 when the BIND_EXPR is expanded.  */
+		      delete_block (yyvsp[-1].ttype);
+		    }
+		  else
+		    yyval.ttype = yyvsp[-1].ttype;
+		;
+    break;}
+case 265:
+#line 1350 "parse.y"
+{
+                  yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_ref); 
+                  if (TREE_CODE (yyval.ttype) == CALL_EXPR
+                      && TREE_TYPE (yyval.ttype) != void_type_node)
+	            yyval.ttype = require_complete_type (yyval.ttype);
+                ;
+    break;}
+case 266:
+#line 1357 "parse.y"
+{
+		  yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_ref);
+		  if (TREE_CODE (yyval.ttype) == CALL_EXPR
+		      && TREE_TYPE (yyval.ttype) != void_type_node)
+		    yyval.ttype = require_complete_type (yyval.ttype);
+                ;
+    break;}
+case 267:
+#line 1364 "parse.y"
+{ yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
+    break;}
+case 268:
+#line 1366 "parse.y"
+{ /* If we get an OFFSET_REF, turn it into what it really
+		     means (e.g., a COMPONENT_REF).  This way if we've got,
+		     say, a reference to a static member that's being operated
+		     on, we don't end up trying to find a member operator for
+		     the class it's in.  */
+		  if (TREE_CODE (yyval.ttype) == OFFSET_REF)
+		    yyval.ttype = resolve_offset_ref (yyval.ttype);
+		  yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
+    break;}
+case 269:
+#line 1375 "parse.y"
+{ if (TREE_CODE (yyval.ttype) == OFFSET_REF)
+		    yyval.ttype = resolve_offset_ref (yyval.ttype);
+		  yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
+    break;}
+case 270:
+#line 1380 "parse.y"
+{ if (current_class_ptr)
+		    {
+#ifdef WARNING_ABOUT_CCD
+		      TREE_USED (current_class_ptr) = 1;
+#endif
+		      yyval.ttype = current_class_ptr;
+		    }
+		  else if (current_function_decl
+			   && DECL_STATIC_FUNCTION_P (current_function_decl))
+		    {
+		      error ("`this' is unavailable for static member functions");
+		      yyval.ttype = error_mark_node;
+		    }
+		  else
+		    {
+		      if (current_function_decl)
+			error ("invalid use of `this' in non-member function");
+		      else
+			error ("invalid use of `this' at top level");
+		      yyval.ttype = error_mark_node;
+		    }
+		;
+    break;}
+case 271:
+#line 1403 "parse.y"
+{
+		  tree type;
+		  tree id = yyval.ttype;
+
+		  /* This is a C cast in C++'s `functional' notation.  */
+		  if (yyvsp[-1].ttype == error_mark_node)
+		    {
+		      yyval.ttype = error_mark_node;
+		      break;
+		    }
+#if 0
+		  if (yyvsp[-1].ttype == NULL_TREE)
+		    {
+		      error ("cannot cast null list to type `%s'",
+		             IDENTIFIER_POINTER (TYPE_NAME (id)));
+		      yyval.ttype = error_mark_node;
+		      break;
+		    }
+#endif
+#if 0
+		  /* type is not set! (mrs) */
+		  if (type == error_mark_node)
+		    yyval.ttype = error_mark_node;
+		  else
+#endif
+		    {
+		      if (id == ridpointers[(int) RID_CONST])
+		        type = build_type_variant (integer_type_node, 1, 0);
+		      else if (id == ridpointers[(int) RID_VOLATILE])
+		        type = build_type_variant (integer_type_node, 0, 1);
+#if 0
+		      /* should not be able to get here (mrs) */
+		      else if (id == ridpointers[(int) RID_FRIEND])
+		        {
+		          error ("cannot cast expression to `friend' type");
+		          yyval.ttype = error_mark_node;
+		          break;
+		        }
+#endif
+		      else my_friendly_abort (79);
+		      yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
+		    }
+		;
+    break;}
+case 273:
+#line 1448 "parse.y"
+{ tree type = groktypename (yyvsp[-4].ftype.t);
+		  check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
+		  yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
+    break;}
+case 274:
+#line 1452 "parse.y"
+{ tree type = groktypename (yyvsp[-4].ftype.t);
+		  check_for_new_type ("static_cast", yyvsp[-4].ftype);
+		  yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
+    break;}
+case 275:
+#line 1456 "parse.y"
+{ tree type = groktypename (yyvsp[-4].ftype.t);
+		  check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
+		  yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
+    break;}
+case 276:
+#line 1460 "parse.y"
+{ tree type = groktypename (yyvsp[-4].ftype.t);
+		  check_for_new_type ("const_cast", yyvsp[-4].ftype);
+		  yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
+    break;}
+case 277:
+#line 1464 "parse.y"
+{ yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
+    break;}
+case 278:
+#line 1466 "parse.y"
+{ tree type = groktypename (yyvsp[-1].ftype.t);
+		  check_for_new_type ("typeid", yyvsp[-1].ftype);
+		  yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
+    break;}
+case 279:
+#line 1470 "parse.y"
+{ yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
+    break;}
+case 280:
+#line 1472 "parse.y"
+{
+		  got_scope = NULL_TREE;
+		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
+		    yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
+		  else
+		    yyval.ttype = yyvsp[0].ttype;
+		;
+    break;}
+case 281:
+#line 1480 "parse.y"
+{ yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
+    break;}
+case 282:
+#line 1482 "parse.y"
+{ if (processing_template_decl)
+		    yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE);
+		  else
+		    yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), yyvsp[-1].ttype); ;
+    break;}
+case 283:
+#line 1487 "parse.y"
+{ if (processing_template_decl)
+		    yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-1].ttype), 
+				       NULL_TREE, NULL_TREE);
+		  else
+		    yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), NULL_TREE); ;
+    break;}
+case 284:
+#line 1493 "parse.y"
+{ yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
+    break;}
+case 285:
+#line 1495 "parse.y"
+{ if (processing_template_decl)
+		    yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
+		  else
+		    yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
+    break;}
+case 286:
+#line 1500 "parse.y"
+{
+#if 0
+		  /* This is a future direction of this code, but because
+		     build_x_function_call cannot always undo what is done
+		     in build_component_ref entirely yet, we cannot do this.  */
+		  yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-3].ttype, NULL_TREE, 1), yyvsp[-1].ttype, current_class_ref);
+		  if (TREE_CODE (yyval.ttype) == CALL_EXPR
+		      && TREE_TYPE (yyval.ttype) != void_type_node)
+		    yyval.ttype = require_complete_type (yyval.ttype);
+#else
+		  yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
+					  LOOKUP_NORMAL);
+#endif
+		;
+    break;}
+case 287:
+#line 1515 "parse.y"
+{
+#if 0
+		  /* This is a future direction of this code, but because
+		     build_x_function_call cannot always undo what is done
+		     in build_component_ref entirely yet, we cannot do this.  */
+		  yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, 1), NULL_TREE, current_class_ref);
+		  if (TREE_CODE (yyval.ttype) == CALL_EXPR
+		      && TREE_TYPE (yyval.ttype) != void_type_node)
+		    yyval.ttype = require_complete_type (yyval.ttype);
+#else
+		  yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
+					  LOOKUP_NORMAL);
+#endif
+		;
+    break;}
+case 288:
+#line 1530 "parse.y"
+{
+		  if (IS_SIGNATURE (OP0 (yyvsp[-3].ttype)))
+		    {
+		      warning ("signature name in scope resolution ignored");
+		      yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE,
+					      LOOKUP_NORMAL);
+		    }
+		  else
+		    yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-3].ttype), OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype);
+		;
+    break;}
+case 289:
+#line 1541 "parse.y"
+{
+		  if (IS_SIGNATURE (OP0 (yyvsp[-1].ttype)))
+		    {
+		      warning ("signature name in scope resolution ignored");
+		      yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-1].ttype), NULL_TREE, NULL_TREE,
+					      LOOKUP_NORMAL);
+		    }
+		  else
+		    yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-1].ttype), OP1 (yyvsp[-1].ttype), NULL_TREE);
+		;
+    break;}
+case 290:
+#line 1553 "parse.y"
+{
+		  if (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)
+		      && (TREE_CODE (TREE_TYPE (yyvsp[-3].ttype)) 
+			  != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)))))
+		    cp_error ("`%E' is not of type `%T'", yyvsp[-3].ttype, yyvsp[-1].ttype);
+		  yyval.ttype = cp_convert (void_type_node, yyvsp[-3].ttype);
+		;
+    break;}
+case 291:
+#line 1561 "parse.y"
+{
+		  if (yyvsp[-4].ttype != yyvsp[-1].ttype)
+		    cp_error ("destructor specifier `%T::~%T()' must have matching names", yyvsp[-4].ttype, yyvsp[-1].ttype);
+		  if (TREE_CODE (TREE_TYPE (yyvsp[-5].ttype))
+		      != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-4].ttype))))
+		    cp_error ("`%E' is not of type `%T'", yyvsp[-5].ttype, yyvsp[-4].ttype);
+		  yyval.ttype = cp_convert (void_type_node, yyvsp[-5].ttype);
+		;
+    break;}
+case 292:
+#line 1570 "parse.y"
+{
+		  yyval.ttype = error_mark_node;
+		;
+    break;}
+case 293:
+#line 1615 "parse.y"
+{ yyval.itype = 0; ;
+    break;}
+case 294:
+#line 1617 "parse.y"
+{ got_scope = NULL_TREE; yyval.itype = 1; ;
+    break;}
+case 295:
+#line 1622 "parse.y"
+{ yyval.itype = 0; ;
+    break;}
+case 296:
+#line 1624 "parse.y"
+{ got_scope = NULL_TREE; yyval.itype = 1; ;
+    break;}
+case 297:
+#line 1629 "parse.y"
+{ yyval.ttype = boolean_true_node; ;
+    break;}
+case 298:
+#line 1631 "parse.y"
+{ yyval.ttype = boolean_false_node; ;
+    break;}
+case 300:
+#line 1638 "parse.y"
+{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 301:
+#line 1643 "parse.y"
+{
+		  if (! current_function_parms_stored)
+		    store_parm_decls ();
+		  setup_vtbl_ptr ();
+		  /* Always keep the BLOCK node associated with the outermost
+		     pair of curley braces of a function.  These are needed
+		     for correct operation of dwarfout.c.  */
+		  keep_next_level ();
+		;
+    break;}
+case 302:
+#line 1656 "parse.y"
+{ got_object = TREE_TYPE (yyval.ttype); ;
+    break;}
+case 303:
+#line 1658 "parse.y"
+{
+		  yyval.ttype = build_x_arrow (yyval.ttype); 
+		  got_object = TREE_TYPE (yyval.ttype);
+		;
+    break;}
+case 304:
+#line 1666 "parse.y"
+{
+		  resume_momentary (yyvsp[-1].itype);
+		  if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
+		    note_got_semicolon (yyvsp[-2].ftype.t);
+		;
+    break;}
+case 305:
+#line 1672 "parse.y"
+{
+		  resume_momentary (yyvsp[-1].itype);
+		  note_list_got_semicolon (yyvsp[-2].ftype.t);
+		;
+    break;}
+case 306:
+#line 1677 "parse.y"
+{ resume_momentary (yyvsp[-1].itype); ;
+    break;}
+case 307:
+#line 1679 "parse.y"
+{
+		  shadow_tag (yyvsp[-1].ftype.t);
+		  note_list_got_semicolon (yyvsp[-1].ftype.t);
+		;
+    break;}
+case 308:
+#line 1684 "parse.y"
+{ warning ("empty declaration"); ;
+    break;}
+case 309:
+#line 1686 "parse.y"
+{ pedantic = yyvsp[-1].itype; ;
+    break;}
+case 312:
+#line 1700 "parse.y"
+{ yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
+					     NULL_TREE, NULL_TREE); ;
+    break;}
+case 313:
+#line 1703 "parse.y"
+{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
+					     NULL_TREE); ;
+    break;}
+case 314:
+#line 1710 "parse.y"
+{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
+		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
+    break;}
+case 315:
+#line 1713 "parse.y"
+{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
+		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
+    break;}
+case 316:
+#line 1716 "parse.y"
+{ yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); 
+		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
+    break;}
+case 317:
+#line 1719 "parse.y"
+{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
+		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
+    break;}
+case 318:
+#line 1722 "parse.y"
+{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
+		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
+    break;}
+case 321:
+#line 1738 "parse.y"
+{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); 
+		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
+    break;}
+case 322:
+#line 1741 "parse.y"
+{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
+		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
+    break;}
+case 323:
+#line 1744 "parse.y"
+{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); 
+		  yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
+    break;}
+case 324:
+#line 1747 "parse.y"
+{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
+		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
+    break;}
+case 325:
+#line 1750 "parse.y"
+{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
+		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
+    break;}
+case 326:
+#line 1753 "parse.y"
+{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
+					 chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype))); 
+		  yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
+    break;}
+case 327:
+#line 1760 "parse.y"
+{ if (extra_warnings)
+		    warning ("`%s' is not at beginning of declaration",
+			     IDENTIFIER_POINTER (yyval.ttype));
+		  yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
+    break;}
+case 328:
+#line 1765 "parse.y"
+{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
+    break;}
+case 329:
+#line 1767 "parse.y"
+{ if (extra_warnings)
+		    warning ("`%s' is not at beginning of declaration",
+			     IDENTIFIER_POINTER (yyvsp[0].ttype));
+		  yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
+    break;}
+case 330:
+#line 1772 "parse.y"
+{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
+    break;}
+case 331:
+#line 1774 "parse.y"
+{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
+    break;}
+case 332:
+#line 1784 "parse.y"
+{ yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
+    break;}
+case 333:
+#line 1786 "parse.y"
+{ yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
+    break;}
+case 334:
+#line 1788 "parse.y"
+{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
+		  TREE_STATIC (yyval.ttype) = 1; ;
+    break;}
+case 335:
+#line 1791 "parse.y"
+{ if (extra_warnings && TREE_STATIC (yyval.ttype))
+		    warning ("`%s' is not at beginning of declaration",
+			     IDENTIFIER_POINTER (yyvsp[0].ttype));
+		  yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
+		  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
+    break;}
+case 336:
+#line 1797 "parse.y"
+{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
+    break;}
+case 337:
+#line 1799 "parse.y"
+{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
+    break;}
+case 338:
+#line 1810 "parse.y"
+{ yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t); 
+		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
+    break;}
+case 339:
+#line 1813 "parse.y"
+{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); 
+		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
+    break;}
+case 340:
+#line 1816 "parse.y"
+{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
+		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
+    break;}
+case 341:
+#line 1819 "parse.y"
+{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); 
+		  yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
+    break;}
+case 342:
+#line 1825 "parse.y"
+{ yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
+    break;}
+case 343:
+#line 1827 "parse.y"
+{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
+    break;}
+case 345:
+#line 1837 "parse.y"
+{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
+    break;}
+case 346:
+#line 1839 "parse.y"
+{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
+    break;}
+case 347:
+#line 1841 "parse.y"
+{ yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype);
+		  yyval.ftype.new_type_flag = 0; ;
+    break;}
+case 348:
+#line 1844 "parse.y"
+{ yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
+		  yyval.ftype.new_type_flag = 0; ;
+    break;}
+case 349:
+#line 1847 "parse.y"
+{ tree type = TREE_TYPE (yyvsp[-1].ttype);
+
+                  yyval.ftype.new_type_flag = 0;
+		  if (IS_AGGR_TYPE (type))
+		    {
+		      sorry ("sigof type specifier");
+		      yyval.ftype.t = type;
+		    }
+		  else
+		    {
+		      error ("`sigof' applied to non-aggregate expression");
+		      yyval.ftype.t = error_mark_node;
+		    }
+		;
+    break;}
+case 350:
+#line 1862 "parse.y"
+{ tree type = groktypename (yyvsp[-1].ftype.t);
+
+                  yyval.ftype.new_type_flag = 0;
+		  if (IS_AGGR_TYPE (type))
+		    {
+		      sorry ("sigof type specifier");
+		      yyval.ftype.t = type;
+		    }
+		  else
+		    {
+		      error("`sigof' applied to non-aggregate type");
+		      yyval.ftype.t = error_mark_node;
+		    }
+		;
+    break;}
+case 351:
+#line 1882 "parse.y"
+{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
+    break;}
+case 352:
+#line 1884 "parse.y"
+{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
+    break;}
+case 360:
+#line 1905 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 361:
+#line 1907 "parse.y"
+{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 362:
+#line 1912 "parse.y"
+{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
+				     &prefix_attributes);
+		  if (current_declspecs
+		      && TREE_CODE (current_declspecs) != TREE_LIST)
+		    current_declspecs = get_decl_list (current_declspecs);
+		  if (have_extern_spec && !used_extern_spec)
+		    {
+		      current_declspecs = decl_tree_cons
+			(NULL_TREE, get_identifier ("extern"), 
+			 current_declspecs);
+		      used_extern_spec = 1;
+		    }
+		  yyvsp[0].itype = suspend_momentary ();
+		  yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
+		  cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
+    break;}
+case 363:
+#line 1929 "parse.y"
+{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
+		  yyval.itype = yyvsp[-2].itype; ;
+    break;}
+case 364:
+#line 1932 "parse.y"
+{ tree d;
+		  split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
+				     &prefix_attributes);
+		  if (current_declspecs
+		      && TREE_CODE (current_declspecs) != TREE_LIST)
+		    current_declspecs = get_decl_list (current_declspecs);
+		  if (have_extern_spec && !used_extern_spec)
+		    {
+		      current_declspecs = decl_tree_cons
+			(NULL_TREE, get_identifier ("extern"), 
+			 current_declspecs);
+		      used_extern_spec = 1;
+		    }
+		  yyval.itype = suspend_momentary ();
+		  d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
+		  cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
+		  cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
+    break;}
+case 365:
+#line 1953 "parse.y"
+{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
+		  cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
+    break;}
+case 366:
+#line 1957 "parse.y"
+{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
+    break;}
+case 367:
+#line 1959 "parse.y"
+{ yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
+		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes);
+		  cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
+    break;}
+case 368:
+#line 1966 "parse.y"
+{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
+				     &prefix_attributes);
+		  yyvsp[0].itype = suspend_momentary ();
+		  yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
+		  cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
+    break;}
+case 369:
+#line 1973 "parse.y"
+{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
+		  yyval.itype = yyvsp[-2].itype; ;
+    break;}
+case 370:
+#line 1976 "parse.y"
+{ tree d;
+		  split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
+				     &prefix_attributes);
+		  yyval.itype = suspend_momentary ();
+		  d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
+		  cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
+		  cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
+    break;}
+case 371:
+#line 1987 "parse.y"
+{ current_declspecs = NULL_TREE;
+		  prefix_attributes = NULL_TREE;
+		  yyvsp[0].itype = suspend_momentary ();
+		  yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
+		  cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
+    break;}
+case 372:
+#line 1994 "parse.y"
+{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
+		  yyval.itype = yyvsp[-2].itype; ;
+    break;}
+case 373:
+#line 1997 "parse.y"
+{ tree d;
+		  current_declspecs = NULL_TREE;
+		  prefix_attributes = NULL_TREE;
+		  yyval.itype = suspend_momentary ();
+		  d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
+		  cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
+		  cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
+    break;}
+case 374:
+#line 2010 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 375:
+#line 2012 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 376:
+#line 2017 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 377:
+#line 2019 "parse.y"
+{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 378:
+#line 2024 "parse.y"
+{ yyval.ttype = yyvsp[-2].ttype; ;
+    break;}
+case 379:
+#line 2029 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 380:
+#line 2031 "parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 381:
+#line 2036 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 382:
+#line 2038 "parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 383:
+#line 2040 "parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
+    break;}
+case 384:
+#line 2042 "parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
+    break;}
+case 385:
+#line 2044 "parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 390:
+#line 2060 "parse.y"
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 391:
+#line 2062 "parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 392:
+#line 2067 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 393:
+#line 2069 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 395:
+#line 2077 "parse.y"
+{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
+		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
+    break;}
+case 396:
+#line 2080 "parse.y"
+{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
+		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
+    break;}
+case 397:
+#line 2083 "parse.y"
+{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
+		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
+    break;}
+case 398:
+#line 2086 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 399:
+#line 2093 "parse.y"
+{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
+    break;}
+case 400:
+#line 2095 "parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
+    break;}
+case 401:
+#line 2098 "parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 402:
+#line 2100 "parse.y"
+{ yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
+    break;}
+case 403:
+#line 2102 "parse.y"
+{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 404:
+#line 2104 "parse.y"
+{ yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
+    break;}
+case 405:
+#line 2109 "parse.y"
+{ start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
+				  NULL_TREE, 1);
+		  reinit_parse_for_function (); ;
+    break;}
+case 406:
+#line 2115 "parse.y"
+{
+		  int nested = (hack_decl_function_context
+				(current_function_decl) != NULL_TREE);
+		  finish_function (lineno, (int)yyvsp[-1].itype, nested);
+		  process_next_inline (yyvsp[-3].ttype);
+		;
+    break;}
+case 407:
+#line 2122 "parse.y"
+{ process_next_inline (yyvsp[-2].ttype); ;
+    break;}
+case 408:
+#line 2124 "parse.y"
+{ process_next_inline (yyvsp[-2].ttype); ;
+    break;}
+case 411:
+#line 2136 "parse.y"
+{ replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 412:
+#line 2138 "parse.y"
+{ replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
+    break;}
+case 414:
+#line 2143 "parse.y"
+{ do_pending_defargs (); ;
+    break;}
+case 415:
+#line 2145 "parse.y"
+{ do_pending_defargs (); ;
+    break;}
+case 416:
+#line 2150 "parse.y"
+{ yyvsp[0].itype = suspend_momentary ();
+		  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
+    break;}
+case 417:
+#line 2153 "parse.y"
+{ yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
+		  yyval.ftype.new_type_flag = 1;
+		  resume_momentary ((int) yyvsp[-4].itype);
+		  check_for_missing_semicolon (yyvsp[-3].ttype); ;
+    break;}
+case 418:
+#line 2158 "parse.y"
+{ yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
+		  yyval.ftype.new_type_flag = 1;
+		  check_for_missing_semicolon (yyval.ftype.t); ;
+    break;}
+case 419:
+#line 2162 "parse.y"
+{ yyvsp[0].itype = suspend_momentary ();
+		  yyval.ttype = start_enum (make_anon_name ()); ;
+    break;}
+case 420:
+#line 2165 "parse.y"
+{ yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
+		  resume_momentary ((int) yyvsp[-5].itype);
+		  check_for_missing_semicolon (yyvsp[-3].ttype);
+		  yyval.ftype.new_type_flag = 1; ;
+    break;}
+case 421:
+#line 2170 "parse.y"
+{ yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE);
+		  yyval.ftype.new_type_flag = 1;
+		  check_for_missing_semicolon (yyval.ftype.t); ;
+    break;}
+case 422:
+#line 2174 "parse.y"
+{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); 
+		  yyval.ftype.new_type_flag = 0; ;
+    break;}
+case 423:
+#line 2177 "parse.y"
+{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); 
+		  yyval.ftype.new_type_flag = 0; ;
+    break;}
+case 424:
+#line 2180 "parse.y"
+{ yyval.ftype.t = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); 
+		  yyval.ftype.new_type_flag = 0; ;
+    break;}
+case 425:
+#line 2183 "parse.y"
+{ yyval.ftype.t = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); 
+		  yyval.ftype.new_type_flag = 0; ;
+    break;}
+case 426:
+#line 2187 "parse.y"
+{
+		  int semi;
+		  tree id;
+
+		  yyval.ttype = yyvsp[-4].ttype;
+#if 0
+		  /* Need to rework class nesting in the
+		     presence of nested classes, etc.  */
+		  shadow_tag (CLASSTYPE_AS_LIST (yyvsp[-4].ttype)); */
+#endif
+		  if (yychar == YYEMPTY)
+		    yychar = YYLEX;
+		  semi = yychar == ';';
+		  /* finish_struct nukes this anyway; if
+		     finish_exception does too, then it can go.  */
+		  if (semi)
+		    note_got_semicolon (yyvsp[-4].ttype);
+
+		  if (TREE_CODE (yyvsp[-4].ttype) == ENUMERAL_TYPE)
+		    ;
+		  else
+		    {
+		      yyval.ttype = finish_struct (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, semi);
+		      if (semi) note_got_semicolon (yyval.ttype);
+		    }
+
+		  pop_obstacks ();
+
+		  if (! semi)
+		    check_for_missing_semicolon (yyvsp[-4].ttype); 
+		  if (current_scope () == current_function_decl)
+		    do_pending_defargs (yyvsp[-4].ttype);
+		;
+    break;}
+case 427:
+#line 2221 "parse.y"
+{
+		  if (pending_inlines 
+		      && current_scope () == current_function_decl)
+		    do_pending_inlines ();
+		;
+    break;}
+case 428:
+#line 2227 "parse.y"
+{ 
+		  yyval.ftype.t = yyvsp[-3].ttype;
+		  yyval.ftype.new_type_flag = 1; 
+		  if (current_scope () == current_function_decl)
+		    clear_inline_text_obstack (); 
+		;
+    break;}
+case 429:
+#line 2234 "parse.y"
+{
+		  yyval.ftype.t = yyvsp[0].ttype;
+		  yyval.ftype.new_type_flag = 0;
+		  /* struct B: public A; is not accepted by the WP grammar.  */
+		  if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
+		      && ! TYPE_BEING_DEFINED (yyval.ftype.t))
+		    cp_error ("base clause without member specification for `%#T'",
+			      yyval.ftype.t);
+		;
+    break;}
+case 433:
+#line 2253 "parse.y"
+{ if (pedantic && !in_system_header)
+		    pedwarn ("comma at end of enumerator list"); ;
+    break;}
+case 435:
+#line 2260 "parse.y"
+{ error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
+    break;}
+case 436:
+#line 2262 "parse.y"
+{ error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
+    break;}
+case 437:
+#line 2264 "parse.y"
+{ error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
+    break;}
+case 438:
+#line 2266 "parse.y"
+{ error ("no body nor ';' separates two class, struct or union declarations"); ;
+    break;}
+case 439:
+#line 2271 "parse.y"
+{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 440:
+#line 2276 "parse.y"
+{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 441:
+#line 2281 "parse.y"
+{
+		  current_aggr = yyvsp[-2].ttype;
+		  if (TREE_CODE (yyvsp[0].ttype) == TYPE_DECL)
+		    yyval.ttype = yyvsp[0].ttype;
+		  else
+		    {
+		      cp_error ("`%T' does not have a nested type named `%D'",
+				yyvsp[-1].ttype, yyvsp[0].ttype);
+		      yyval.ttype = xref_tag
+			(current_aggr, make_anon_name (), NULL_TREE, 1);
+		      yyval.ttype = TYPE_MAIN_DECL (yyval.ttype);
+		    }
+		;
+    break;}
+case 442:
+#line 2295 "parse.y"
+{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 443:
+#line 2297 "parse.y"
+{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 444:
+#line 2302 "parse.y"
+{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ;
+    break;}
+case 445:
+#line 2307 "parse.y"
+{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ;
+    break;}
+case 446:
+#line 2310 "parse.y"
+{ 
+		  yyval.ttype = yyvsp[-1].ttype;
+		  if (yyvsp[0].ttype)
+                    xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); 
+		;
+    break;}
+case 447:
+#line 2316 "parse.y"
+{ 
+		  yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
+		  if (TREE_INT_CST_LOW (current_aggr) == union_type 
+		      && TREE_CODE (yyval.ttype) != UNION_TYPE)
+		    cp_pedwarn ("`union' tag used in declaring `%#T'", yyval.ttype);
+		  else if (TREE_CODE (yyval.ttype) == UNION_TYPE
+			   && TREE_INT_CST_LOW (current_aggr) != union_type)
+		    cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ttype);
+		  if (yyvsp[0].ttype)
+		    {
+		      if (IS_AGGR_TYPE (yyval.ttype) && CLASSTYPE_USE_TEMPLATE (yyval.ttype))
+		        {
+		          if (CLASSTYPE_IMPLICIT_INSTANTIATION (yyval.ttype)
+			      && TYPE_SIZE (yyval.ttype) == NULL_TREE)
+			    {
+			      SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (yyval.ttype);
+			      if (processing_template_decl)
+				push_template_decl (TYPE_MAIN_DECL (yyval.ttype));
+			    }
+			  else if (CLASSTYPE_TEMPLATE_INSTANTIATION (yyval.ttype))
+			    cp_error ("specialization after instantiation of `%T'", yyval.ttype);
+			}
+		      xref_basetypes (current_aggr, yyvsp[-1].ttype, yyval.ttype, yyvsp[0].ttype); 
+		    }
+		;
+    break;}
+case 448:
+#line 2345 "parse.y"
+{ yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0);
+		  yyungetc ('{', 1); ;
+    break;}
+case 451:
+#line 2356 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 452:
+#line 2358 "parse.y"
+{ yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
+    break;}
+case 453:
+#line 2360 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 455:
+#line 2366 "parse.y"
+{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 456:
+#line 2371 "parse.y"
+{
+		  tree type = TREE_TYPE (yyvsp[0].ttype);
+		  if (! is_aggr_type (type, 1))
+		    yyval.ttype = NULL_TREE;
+		  else if (current_aggr == signature_type_node
+			   && (! type) && (! IS_SIGNATURE (type)))
+		    {
+		      error ("class name not allowed as base signature");
+		      yyval.ttype = NULL_TREE;
+		    }
+		  else if (current_aggr == signature_type_node)
+		    {
+		      sorry ("signature inheritance, base type `%s' ignored",
+			     IDENTIFIER_POINTER (yyval.ttype));
+		      yyval.ttype = build_tree_list (access_public_node, type);
+		    }
+		  else if (type && IS_SIGNATURE (type))
+		    {
+		      error ("signature name not allowed as base class");
+		      yyval.ttype = NULL_TREE;
+		    }
+		  else
+		    yyval.ttype = build_tree_list (access_default_node, type);
+		;
+    break;}
+case 457:
+#line 2396 "parse.y"
+{
+		  tree type = TREE_TYPE (yyvsp[0].ttype);
+		  if (current_aggr == signature_type_node)
+		    error ("access and source specifiers not allowed in signature");
+		  if (! IS_AGGR_TYPE (type))
+		    yyval.ttype = NULL_TREE;
+		  else if (current_aggr == signature_type_node
+			   && (! type) && (! IS_SIGNATURE (type)))
+		    {
+		      error ("class name not allowed as base signature");
+		      yyval.ttype = NULL_TREE;
+		    }
+		  else if (current_aggr == signature_type_node)
+		    {
+		      sorry ("signature inheritance, base type `%s' ignored",
+			     IDENTIFIER_POINTER (yyval.ttype));
+		      yyval.ttype = build_tree_list (access_public_node, type);
+		    }
+		  else if (type && IS_SIGNATURE (type))
+		    {
+		      error ("signature name not allowed as base class");
+		      yyval.ttype = NULL_TREE;
+		    }
+		  else
+		    yyval.ttype = build_tree_list (yyval.ttype, type);
+		;
+    break;}
+case 459:
+#line 2427 "parse.y"
+{ yyval.ttype = TYPE_MAIN_DECL (make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype)); ;
+    break;}
+case 460:
+#line 2429 "parse.y"
+{ yyval.ttype = TYPE_MAIN_DECL (make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype)); ;
+    break;}
+case 461:
+#line 2431 "parse.y"
+{
+		  if (current_aggr == signature_type_node)
+		    {
+		      if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
+			{
+			  sorry ("`sigof' as base signature specifier");
+			  yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
+			}
+		      else
+			{
+			  error ("`sigof' applied to non-aggregate expression");
+			  yyval.ttype = error_mark_node;
+			}
+		    }
+		  else
+		    {
+		      error ("`sigof' in struct or class declaration");
+		      yyval.ttype = error_mark_node;
+		    }
+		;
+    break;}
+case 462:
+#line 2452 "parse.y"
+{
+		  if (current_aggr == signature_type_node)
+		    {
+		      if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
+			{
+			  sorry ("`sigof' as base signature specifier");
+			  yyval.ttype = groktypename (yyvsp[-1].ftype.t);
+			}
+		      else
+			{
+			  error ("`sigof' applied to non-aggregate expression");
+			  yyval.ttype = error_mark_node;
+			}
+		    }
+		  else
+		    {
+		      error ("`sigof' in struct or class declaration");
+		      yyval.ttype = error_mark_node;
+		    }
+		;
+    break;}
+case 464:
+#line 2477 "parse.y"
+{ if (yyval.ttype != ridpointers[(int)RID_VIRTUAL])
+		    sorry ("non-virtual access");
+		  yyval.ttype = access_default_virtual_node; ;
+    break;}
+case 465:
+#line 2481 "parse.y"
+{ int err = 0;
+		  if (yyvsp[-1].ttype == access_protected_node)
+		    {
+		      warning ("`protected' access not implemented");
+		      yyvsp[-1].ttype = access_public_node;
+		      err++;
+		    }
+		  else if (yyvsp[-1].ttype == access_public_node)
+		    {
+		      if (yyvsp[-2].ttype == access_private_node)
+			{
+			mixed:
+			  error ("base class cannot be public and private");
+			}
+		      else if (yyvsp[-2].ttype == access_default_virtual_node)
+			yyval.ttype = access_public_virtual_node;
+		    }
+		  else /* $2 == access_private_node */
+		    {
+		      if (yyvsp[-2].ttype == access_public_node)
+			goto mixed;
+		      else if (yyvsp[-2].ttype == access_default_virtual_node)
+			yyval.ttype = access_private_virtual_node;
+		    }
+		;
+    break;}
+case 466:
+#line 2507 "parse.y"
+{ if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
+		    sorry ("non-virtual access");
+		  if (yyval.ttype == access_public_node)
+		    yyval.ttype = access_public_virtual_node;
+		  else if (yyval.ttype == access_private_node)
+		    yyval.ttype = access_private_virtual_node; ;
+    break;}
+case 467:
+#line 2517 "parse.y"
+{ tree t = yyvsp[-1].ttype;
+		  push_obstacks_nochange ();
+		  end_temporary_allocation ();
+
+		  if (t == error_mark_node
+		      || ! IS_AGGR_TYPE (t))
+		    {
+		      t = yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
+		      pushtag (make_anon_name (), t, 0);
+		    }
+		  if (TYPE_SIZE (t))
+		    duplicate_tag_error (t);
+                  if (TYPE_SIZE (t) || TYPE_BEING_DEFINED (t))
+                    {
+                      t = make_lang_type (TREE_CODE (t));
+                      pushtag (TYPE_IDENTIFIER (yyvsp[-1].ttype), t, 0);
+                      yyvsp[-1].ttype = t;
+                    }
+		  if (processing_template_decl && TYPE_CONTEXT (t)
+		      && ! current_class_type)
+		    push_template_decl (TYPE_STUB_DECL (t));
+		  pushclass (t, 0);
+		  TYPE_BEING_DEFINED (t) = 1;
+		  if (IS_AGGR_TYPE (t) && CLASSTYPE_USE_TEMPLATE (t))
+		    {
+		      if (CLASSTYPE_IMPLICIT_INSTANTIATION (t)
+			  && TYPE_SIZE (t) == NULL_TREE)
+			{
+			  SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (t);
+			  if (processing_template_decl)
+			    push_template_decl (TYPE_MAIN_DECL (t));
+			}
+		      else if (CLASSTYPE_TEMPLATE_INSTANTIATION (t))
+			cp_error ("specialization after instantiation of `%T'", t);
+		    }
+		  /* Reset the interface data, at the earliest possible
+		     moment, as it might have been set via a class foo;
+		     before.  */
+		  /* Don't change signatures.  */
+		  if (! IS_SIGNATURE (t))
+		    {
+		      extern tree pending_vtables;
+		      int needs_writing;
+		      tree name = TYPE_IDENTIFIER (t);
+
+		      if (! ANON_AGGRNAME_P (name))
+			{
+			  CLASSTYPE_INTERFACE_ONLY (t) = interface_only;
+			  SET_CLASSTYPE_INTERFACE_UNKNOWN_X
+			    (t, interface_unknown);
+			}
+
+		      /* Record how to set the access of this class's
+			 virtual functions.  If write_virtuals == 2 or 3, then
+			 inline virtuals are ``extern inline''.  */
+		      switch (write_virtuals)
+			{
+			case 0:
+			case 1:
+			  needs_writing = 1;
+			  break;
+			case 2:
+			  needs_writing = !! value_member (name, pending_vtables);
+			  break;
+			case 3:
+			  needs_writing = ! CLASSTYPE_INTERFACE_ONLY (t)
+			    && CLASSTYPE_INTERFACE_KNOWN (t);
+			  break;
+			default:
+			  needs_writing = 0;
+			}
+		      CLASSTYPE_VTABLE_NEEDS_WRITING (t) = needs_writing;
+		    }
+#if 0
+		  t = TYPE_IDENTIFIER (yyvsp[-1].ttype);
+		  if (t && IDENTIFIER_TEMPLATE (t))
+		    overload_template_name (t, 1);
+#endif
+		;
+    break;}
+case 468:
+#line 2600 "parse.y"
+{
+		    yyval.ttype = build_self_reference ();
+		;
+    break;}
+case 469:
+#line 2607 "parse.y"
+{ if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ;
+    break;}
+case 470:
+#line 2609 "parse.y"
+{
+		  if (current_aggr == signature_type_node)
+		    yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype);
+		  else
+		    yyval.ttype = build_tree_list (access_default_node, yyvsp[0].ttype);
+		  if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype);
+		;
+    break;}
+case 471:
+#line 2617 "parse.y"
+{
+		  tree visspec = yyvsp[-2].ttype;
+
+		  if (current_aggr == signature_type_node)
+		    {
+		      error ("access specifier not allowed in signature");
+		      visspec = access_public_node;
+		    }
+		  yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype));
+		;
+    break;}
+case 472:
+#line 2628 "parse.y"
+{
+		  if (current_aggr == signature_type_node)
+		    error ("access specifier not allowed in signature");
+		;
+    break;}
+case 473:
+#line 2638 "parse.y"
+{ if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; 
+		;
+    break;}
+case 474:
+#line 2641 "parse.y"
+{ /* In pushdecl, we created a reverse list of names
+		     in this binding level.  Make sure that the chain
+		     of what we're trying to add isn't the item itself
+		     (which can happen with what pushdecl's doing).  */
+		  if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
+		    {
+		      if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
+			yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
+		      else
+			yyval.ttype = yyvsp[0].ttype;
+		    }
+		;
+    break;}
+case 475:
+#line 2657 "parse.y"
+{ ;
+    break;}
+case 476:
+#line 2659 "parse.y"
+{ error ("missing ';' before right brace");
+		  yyungetc ('}', 0); ;
+    break;}
+case 477:
+#line 2664 "parse.y"
+{ yyval.ttype = finish_method (yyval.ttype); ;
+    break;}
+case 478:
+#line 2666 "parse.y"
+{ yyval.ttype = finish_method (yyval.ttype); ;
+    break;}
+case 479:
+#line 2668 "parse.y"
+{ yyval.ttype = finish_method (yyval.ttype); ;
+    break;}
+case 480:
+#line 2670 "parse.y"
+{ yyval.ttype = finish_method (yyval.ttype); ;
+    break;}
+case 481:
+#line 2672 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 482:
+#line 2674 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+		  pedantic = yyvsp[-1].itype; ;
+    break;}
+case 483:
+#line 2683 "parse.y"
+{ yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
+    break;}
+case 484:
+#line 2685 "parse.y"
+{ yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 485:
+#line 2687 "parse.y"
+{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
+				  build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
+    break;}
+case 486:
+#line 2690 "parse.y"
+{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
+				  build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
+    break;}
+case 487:
+#line 2693 "parse.y"
+{ yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 488:
+#line 2695 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 489:
+#line 2706 "parse.y"
+{ tree specs, attrs;
+		  split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
+		  yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
+				  build_tree_list (yyvsp[-1].ttype, attrs)); ;
+    break;}
+case 490:
+#line 2711 "parse.y"
+{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
+				  build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
+    break;}
+case 491:
+#line 2714 "parse.y"
+{ yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
+    break;}
+case 492:
+#line 2721 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 494:
+#line 2724 "parse.y"
+{
+		  /* In this context, void_type_node encodes
+		     friends.  They have been recorded elsewhere.  */
+		  if (yyval.ttype == void_type_node)
+		    yyval.ttype = yyvsp[0].ttype;
+		  else
+		    yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 495:
+#line 2736 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 497:
+#line 2739 "parse.y"
+{
+		  /* In this context, void_type_node encodes
+		     friends.  They have been recorded elsewhere.  */
+		  if (yyval.ttype == void_type_node)
+		    yyval.ttype = yyvsp[0].ttype;
+		  else
+		    yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 502:
+#line 2761 "parse.y"
+{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
+				     &prefix_attributes);
+		  yyvsp[-4].ttype = current_declspecs;
+		  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
+				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
+    break;}
+case 503:
+#line 2767 "parse.y"
+{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
+				     &prefix_attributes);
+		  yyvsp[-4].ttype = current_declspecs;
+		  yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
+		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
+    break;}
+case 504:
+#line 2776 "parse.y"
+{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
+				     &prefix_attributes);
+		  yyvsp[-4].ttype = current_declspecs;
+		  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
+				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
+    break;}
+case 505:
+#line 2782 "parse.y"
+{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
+				     &prefix_attributes);
+		  yyvsp[-4].ttype = current_declspecs;
+		  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
+				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
+    break;}
+case 506:
+#line 2788 "parse.y"
+{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
+				     &prefix_attributes);
+		  yyvsp[-4].ttype = current_declspecs;
+		  yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
+		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
+    break;}
+case 507:
+#line 2794 "parse.y"
+{ split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
+				     &prefix_attributes);
+		  yyvsp[-3].ttype = current_declspecs;
+		  yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
+		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
+    break;}
+case 508:
+#line 2803 "parse.y"
+{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
+				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
+    break;}
+case 509:
+#line 2806 "parse.y"
+{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
+		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
+    break;}
+case 510:
+#line 2812 "parse.y"
+{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
+				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
+    break;}
+case 511:
+#line 2815 "parse.y"
+{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
+		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
+    break;}
+case 512:
+#line 2818 "parse.y"
+{ yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
+		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
+    break;}
+case 514:
+#line 2829 "parse.y"
+{ TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 515:
+#line 2834 "parse.y"
+{ yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
+    break;}
+case 516:
+#line 2836 "parse.y"
+{ yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 517:
+#line 2842 "parse.y"
+{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
+		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
+    break;}
+case 518:
+#line 2845 "parse.y"
+{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
+		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
+    break;}
+case 519:
+#line 2850 "parse.y"
+{
+		  if (pedantic)
+		    pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
+		  yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
+		  yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
+		  yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
+		;
+    break;}
+case 520:
+#line 2861 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 521:
+#line 2863 "parse.y"
+{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
+    break;}
+case 522:
+#line 2868 "parse.y"
+{ yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype); 
+		  yyval.ftype.new_type_flag = 0; ;
+    break;}
+case 523:
+#line 2871 "parse.y"
+{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); 
+		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
+    break;}
+case 524:
+#line 2880 "parse.y"
+{ yyval.itype = suspend_momentary (); ;
+    break;}
+case 525:
+#line 2885 "parse.y"
+{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 526:
+#line 2891 "parse.y"
+{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 527:
+#line 2893 "parse.y"
+{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 528:
+#line 2895 "parse.y"
+{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
+    break;}
+case 529:
+#line 2897 "parse.y"
+{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
+    break;}
+case 530:
+#line 2904 "parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
+    break;}
+case 531:
+#line 2906 "parse.y"
+{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
+    break;}
+case 532:
+#line 2908 "parse.y"
+{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 533:
+#line 2910 "parse.y"
+{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 534:
+#line 2912 "parse.y"
+{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
+		;
+    break;}
+case 536:
+#line 2920 "parse.y"
+{
+		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
+		    {
+		      if (current_class_type
+			  && TYPE_BEING_DEFINED (current_class_type)
+			  && ! IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype))
+			{
+			  /* Be sure to get an inherited typedef.  */
+			  yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
+			  /* Remember that this name has been used in the class
+			     definition, as per [class.scope0] */
+			  pushdecl_class_level (yyval.ttype);
+			}
+		      else
+			yyval.ttype = identifier_typedecl_value (yyvsp[0].ttype);
+		    }
+		  else
+		    yyval.ttype = yyvsp[0].ttype;
+		;
+    break;}
+case 537:
+#line 2940 "parse.y"
+{
+		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
+		    yyval.ttype = identifier_typedecl_value (yyvsp[0].ttype);
+		  else
+		    yyval.ttype = yyvsp[0].ttype;
+		  got_scope = NULL_TREE;
+		;
+    break;}
+case 539:
+#line 2949 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 540:
+#line 2954 "parse.y"
+{ yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
+    break;}
+case 541:
+#line 2959 "parse.y"
+{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 542:
+#line 2961 "parse.y"
+{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
+    break;}
+case 543:
+#line 2963 "parse.y"
+{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
+    break;}
+case 544:
+#line 2965 "parse.y"
+{ yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 545:
+#line 2967 "parse.y"
+{ push_nested_class (yyvsp[-1].ttype, 3);
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
+		  TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
+    break;}
+case 547:
+#line 2978 "parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
+    break;}
+case 548:
+#line 2980 "parse.y"
+{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
+    break;}
+case 549:
+#line 2982 "parse.y"
+{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 550:
+#line 2984 "parse.y"
+{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 551:
+#line 2986 "parse.y"
+{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
+		;
+    break;}
+case 553:
+#line 2994 "parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
+    break;}
+case 554:
+#line 2996 "parse.y"
+{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
+    break;}
+case 555:
+#line 2998 "parse.y"
+{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 556:
+#line 3000 "parse.y"
+{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 557:
+#line 3002 "parse.y"
+{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
+		;
+    break;}
+case 559:
+#line 3010 "parse.y"
+{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 560:
+#line 3012 "parse.y"
+{ yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 561:
+#line 3014 "parse.y"
+{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
+    break;}
+case 562:
+#line 3016 "parse.y"
+{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
+    break;}
+case 563:
+#line 3018 "parse.y"
+{ if (OP0 (yyval.ttype) != current_class_type)
+		    {
+		      push_nested_class (OP0 (yyval.ttype), 3);
+		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
+		    }
+		;
+    break;}
+case 564:
+#line 3028 "parse.y"
+{ got_scope = NULL_TREE;
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 565:
+#line 3034 "parse.y"
+{ got_scope = NULL_TREE;
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 567:
+#line 3041 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 568:
+#line 3046 "parse.y"
+{ yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
+    break;}
+case 569:
+#line 3048 "parse.y"
+{ yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
+    break;}
+case 570:
+#line 3050 "parse.y"
+{ yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
+    break;}
+case 575:
+#line 3062 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 576:
+#line 3069 "parse.y"
+{
+		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
+		    {
+		      yyval.ttype = lastiddecl;
+		      /* Remember that this name has been used in the class
+			 definition, as per [class.scope0] */
+		      if (current_class_type
+			  && TYPE_BEING_DEFINED (current_class_type)
+			  && ! IDENTIFIER_CLASS_VALUE (yyvsp[-1].ttype))
+			pushdecl_class_level (yyval.ttype);
+		    }
+		  got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
+		;
+    break;}
+case 577:
+#line 3083 "parse.y"
+{
+		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
+		    yyval.ttype = lastiddecl;
+		  got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
+		;
+    break;}
+case 578:
+#line 3089 "parse.y"
+{
+		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
+		    yyval.ttype = lastiddecl;
+		  if (TREE_CODE (yyval.ttype) == NAMESPACE_DECL
+		      && DECL_NAME (yyval.ttype) == get_identifier ("std"))
+		    got_scope = void_type_node;
+		  else
+		    got_scope = yyval.ttype;
+		;
+    break;}
+case 579:
+#line 3099 "parse.y"
+{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
+    break;}
+case 580:
+#line 3114 "parse.y"
+{
+		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
+		    yyval.ttype = identifier_typedecl_value (yyvsp[0].ttype);
+		  else
+		    yyval.ttype = yyvsp[0].ttype;
+		  got_scope = NULL_TREE;
+		;
+    break;}
+case 582:
+#line 3123 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 583:
+#line 3128 "parse.y"
+{ got_scope = NULL_TREE; ;
+    break;}
+case 584:
+#line 3130 "parse.y"
+{ yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
+    break;}
+case 585:
+#line 3137 "parse.y"
+{ got_scope = void_type_node; ;
+    break;}
+case 586:
+#line 3143 "parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 587:
+#line 3145 "parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 588:
+#line 3147 "parse.y"
+{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 589:
+#line 3149 "parse.y"
+{ yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 590:
+#line 3151 "parse.y"
+{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
+		;
+    break;}
+case 591:
+#line 3155 "parse.y"
+{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
+		;
+    break;}
+case 593:
+#line 3164 "parse.y"
+{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
+    break;}
+case 594:
+#line 3166 "parse.y"
+{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
+    break;}
+case 595:
+#line 3172 "parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
+    break;}
+case 596:
+#line 3174 "parse.y"
+{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 597:
+#line 3176 "parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
+    break;}
+case 598:
+#line 3178 "parse.y"
+{ yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
+    break;}
+case 599:
+#line 3180 "parse.y"
+{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
+    break;}
+case 600:
+#line 3182 "parse.y"
+{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 601:
+#line 3184 "parse.y"
+{ yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
+    break;}
+case 602:
+#line 3186 "parse.y"
+{ yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
+    break;}
+case 603:
+#line 3188 "parse.y"
+{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
+		;
+    break;}
+case 604:
+#line 3192 "parse.y"
+{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
+		;
+    break;}
+case 606:
+#line 3201 "parse.y"
+{ yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 608:
+#line 3205 "parse.y"
+{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 609:
+#line 3207 "parse.y"
+{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 610:
+#line 3209 "parse.y"
+{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
+    break;}
+case 611:
+#line 3211 "parse.y"
+{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
+    break;}
+case 612:
+#line 3213 "parse.y"
+{ yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 613:
+#line 3215 "parse.y"
+{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 614:
+#line 3217 "parse.y"
+{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 615:
+#line 3219 "parse.y"
+{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
+    break;}
+case 616:
+#line 3221 "parse.y"
+{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
+    break;}
+case 622:
+#line 3245 "parse.y"
+{ do_pushlevel (); ;
+    break;}
+case 623:
+#line 3250 "parse.y"
+{ yyval.ttype = do_poplevel (); ;
+    break;}
+case 625:
+#line 3258 "parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C++ forbids label declarations"); ;
+    break;}
+case 628:
+#line 3269 "parse.y"
+{ tree link;
+		  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
+		    {
+		      tree label = shadow_label (TREE_VALUE (link));
+		      C_DECLARED_LABEL_FLAG (label) = 1;
+		      declare_nonlocal_label (label);
+		    }
+		;
+    break;}
+case 629:
+#line 3283 "parse.y"
+{;
+    break;}
+case 631:
+#line 3289 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
+		      add_tree (yyval.ttype);
+		    }
+		;
+    break;}
+case 632:
+#line 3297 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      TREE_OPERAND (yyvsp[-3].ttype, 0) = TREE_CHAIN (yyvsp[-3].ttype);
+		      TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
+		      last_tree = yyvsp[-3].ttype;
+		    }
+		  yyval.ttype = yyvsp[0].ttype;
+		;
+    break;}
+case 633:
+#line 3310 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      yyval.ttype = build_min_nt (IF_STMT, NULL_TREE, NULL_TREE,
+					        NULL_TREE);
+		      add_tree (yyval.ttype);
+		    }
+                  cond_stmt_keyword = "if";
+		;
+    break;}
+case 634:
+#line 3320 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      if (last_tree != yyvsp[-2].ttype)
+		        {
+			  TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
+			  TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
+			  last_tree = yyvsp[-2].ttype;
+			}
+		      else
+		        TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
+		    }
+		  else
+		    {
+		      emit_line_note (input_filename, lineno);
+		      expand_start_cond (yyvsp[0].ttype, 0);
+		    }
+		;
+    break;}
+case 635:
+#line 3339 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
+		      TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
+		      yyval.ttype = last_tree = yyvsp[-4].ttype;
+		    }
+		;
+    break;}
+case 636:
+#line 3351 "parse.y"
+{ finish_stmt (); ;
+    break;}
+case 637:
+#line 3353 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
+		      add_tree (yyval.ttype);
+		    }
+		;
+    break;}
+case 638:
+#line 3361 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
+		      TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
+		      last_tree = yyvsp[-2].ttype;
+		    }
+		  yyval.ttype = yyvsp[0].ttype;
+		;
+    break;}
+case 639:
+#line 3374 "parse.y"
+{ finish_stmt (); ;
+    break;}
+case 641:
+#line 3380 "parse.y"
+{ finish_stmt (); ;
+    break;}
+case 642:
+#line 3382 "parse.y"
+{
+		  tree expr = yyvsp[-1].ttype;
+		  if (! processing_template_decl)
+		    {
+		      emit_line_note (input_filename, lineno);
+		      /* Do default conversion if safe and possibly important,
+		         in case within ({...}).  */
+		      if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
+		           && lvalue_p (expr))
+		          || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
+		        expr = default_conversion (expr);
+		    }
+		  cplus_expand_expr_stmt (expr);
+		  clear_momentary ();
+		  finish_stmt (); ;
+    break;}
+case 643:
+#line 3398 "parse.y"
+{ if (! processing_template_decl) expand_start_else (); ;
+    break;}
+case 644:
+#line 3400 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      TREE_OPERAND (yyvsp[-3].ttype, 2) = TREE_CHAIN (yyvsp[-3].ttype);
+		      TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
+		      last_tree = yyvsp[-3].ttype;
+		    }
+		  else
+		    expand_end_cond ();
+		;
+    break;}
+case 645:
+#line 3411 "parse.y"
+{ finish_stmt (); ;
+    break;}
+case 646:
+#line 3413 "parse.y"
+{ if (! processing_template_decl) expand_end_cond ();
+		  do_poplevel ();
+		  finish_stmt (); ;
+    break;}
+case 647:
+#line 3417 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      yyval.ttype = build_min_nt (WHILE_STMT, NULL_TREE, NULL_TREE);
+		      add_tree (yyval.ttype);
+		    }
+		  else
+		    {
+		      emit_nop ();
+		      emit_line_note (input_filename, lineno);
+		      expand_start_loop (1); 
+		    }
+		  cond_stmt_keyword = "while";
+		;
+    break;}
+case 648:
+#line 3432 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      if (last_tree != yyvsp[-2].ttype)
+		        {
+			  TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
+			  TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
+			  last_tree = yyvsp[-2].ttype;
+			}
+		      else
+		        TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
+		    }
+		  else
+		    {
+		      emit_line_note (input_filename, lineno);
+		      expand_exit_loop_if_false (0, yyvsp[0].ttype);
+		    }
+		;
+    break;}
+case 649:
+#line 3451 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      TREE_OPERAND (yyvsp[-5].ttype, 1) = TREE_CHAIN (yyvsp[-5].ttype);
+		      TREE_CHAIN (yyvsp[-5].ttype) = NULL_TREE;
+		      last_tree = yyvsp[-5].ttype;
+		    }
+		  else
+		    expand_end_loop ();
+		  finish_stmt ();
+		;
+    break;}
+case 650:
+#line 3463 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      yyval.ttype = build_min_nt (DO_STMT, NULL_TREE, NULL_TREE);
+		      add_tree (yyval.ttype);
+		    }
+		  else
+		    {
+		      emit_nop ();
+		      emit_line_note (input_filename, lineno);
+		      expand_start_loop_continue_elsewhere (1);
+		    }
+		;
+    break;}
+case 651:
+#line 3477 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
+		      TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
+		      last_tree = yyvsp[-2].ttype;
+		    }
+		  else
+		    {
+		      expand_loop_continue_here ();
+		      cond_stmt_keyword = "do";
+		    }
+		;
+    break;}
+case 652:
+#line 3491 "parse.y"
+{
+		  if (processing_template_decl)
+		    TREE_OPERAND (yyvsp[-5].ttype, 1) = yyvsp[-1].ttype;
+		  else
+		    {
+		      emit_line_note (input_filename, lineno);
+		      expand_exit_loop_if_false (0, yyvsp[-1].ttype);
+		      expand_end_loop ();
+		    }
+		  clear_momentary ();
+		  finish_stmt ();
+		;
+    break;}
+case 653:
+#line 3504 "parse.y"
+{ if (processing_template_decl)
+		    {
+		      yyval.ttype = build_min_nt (FOR_STMT, NULL_TREE, NULL_TREE, 
+					        NULL_TREE, NULL_TREE);
+		      add_tree (yyval.ttype);
+		    }
+                  else
+		    emit_line_note (input_filename, lineno);
+		  if (flag_new_for_scope > 0)
+		    {
+		      /* Conditionalize .pushlevel */
+		      pushlevel (0);
+		      note_level_for_for ();
+		      clear_last_expr ();
+		      push_momentary ();
+		      expand_start_bindings (0);
+		    }
+		;
+    break;}
+case 654:
+#line 3523 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      if (last_tree != yyvsp[-2].ttype)
+			{
+			  TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
+			  TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
+			  last_tree = yyvsp[-2].ttype;
+			}
+		    }
+		  else
+		    {
+		      emit_nop ();
+		      emit_line_note (input_filename, lineno);
+		      expand_start_loop_continue_elsewhere (1); 
+		    }
+		;
+    break;}
+case 655:
+#line 3541 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      if (last_tree != yyvsp[-6].ttype)
+		        {
+			  TREE_OPERAND (yyvsp[-6].ttype, 1) = last_tree;
+			  TREE_CHAIN (yyvsp[-6].ttype) = NULL_TREE;
+			  last_tree = yyvsp[-6].ttype;
+			}
+		      else
+		        TREE_OPERAND (yyvsp[-6].ttype, 1) = yyvsp[-1].ttype;
+		    }
+		  else
+		    {
+		      emit_line_note (input_filename, lineno);
+		      if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, yyvsp[-1].ttype);
+		    }
+		;
+    break;}
+case 656:
+#line 3562 "parse.y"
+{
+		  if (processing_template_decl)
+		    TREE_OPERAND (yyvsp[-9].ttype, 2) = yyvsp[-1].ttype;
+		  push_momentary ();
+		;
+    break;}
+case 657:
+#line 3568 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      TREE_OPERAND (yyvsp[-12].ttype, 3) = TREE_CHAIN (yyvsp[-12].ttype);
+		      TREE_CHAIN (yyvsp[-12].ttype) = NULL_TREE;
+		      last_tree = yyvsp[-12].ttype;
+		    }
+		  else
+		    {
+		      emit_line_note (input_filename, lineno);
+		      expand_loop_continue_here ();
+		      if (yyvsp[-4].ttype) cplus_expand_expr_stmt (yyvsp[-4].ttype);
+		      expand_end_loop ();
+		    }
+		  pop_momentary ();
+		  if (flag_new_for_scope > 0)
+		    {
+		      do_poplevel ();
+		    }
+		  finish_stmt (); ;
+    break;}
+case 658:
+#line 3589 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      yyval.ttype = build_min_nt (SWITCH_STMT, yyvsp[-1].ttype, NULL_TREE);
+		      add_tree (yyval.ttype);
+		    }
+		  else
+		    {
+		      emit_line_note (input_filename, lineno);
+		      c_expand_start_case (yyvsp[-1].ttype);
+		    }
+		  push_switch ();
+		  /* Don't let the tree nodes for $4 be discarded by
+		     clear_momentary during the parsing of the next stmt.  */
+		  push_momentary ();
+		;
+    break;}
+case 659:
+#line 3606 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      TREE_OPERAND (yyvsp[-1].ttype, 1) = TREE_CHAIN (yyvsp[-1].ttype);
+		      TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
+		      last_tree = yyvsp[-1].ttype;
+		    }
+		  else
+		    expand_end_case (yyvsp[-3].ttype);
+		  pop_momentary ();
+		  pop_switch (); 
+		;
+    break;}
+case 660:
+#line 3619 "parse.y"
+{ finish_stmt (); ;
+    break;}
+case 661:
+#line 3621 "parse.y"
+{ do_case (yyvsp[-1].ttype, NULL_TREE); ;
+    break;}
+case 663:
+#line 3624 "parse.y"
+{ do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 665:
+#line 3627 "parse.y"
+{ do_case (NULL_TREE, NULL_TREE); ;
+    break;}
+case 667:
+#line 3630 "parse.y"
+{ emit_line_note (input_filename, lineno);
+		  if (processing_template_decl)
+		    add_tree (build_min_nt (BREAK_STMT));
+		  else if ( ! expand_exit_something ())
+		    error ("break statement not within loop or switch"); ;
+    break;}
+case 668:
+#line 3636 "parse.y"
+{ emit_line_note (input_filename, lineno);
+		  if (processing_template_decl)
+		    add_tree (build_min_nt (CONTINUE_STMT));
+		  else if (! expand_continue_loop (0))
+		    error ("continue statement not within a loop"); ;
+    break;}
+case 669:
+#line 3642 "parse.y"
+{ emit_line_note (input_filename, lineno);
+		  c_expand_return (NULL_TREE); ;
+    break;}
+case 670:
+#line 3645 "parse.y"
+{ emit_line_note (input_filename, lineno);
+		  c_expand_return (yyvsp[-1].ttype);
+		  finish_stmt ();
+		;
+    break;}
+case 671:
+#line 3650 "parse.y"
+{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
+		  emit_line_note (input_filename, lineno);
+		  expand_asm (yyvsp[-2].ttype);
+		  finish_stmt ();
+		;
+    break;}
+case 672:
+#line 3657 "parse.y"
+{ if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
+		  emit_line_note (input_filename, lineno);
+		  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
+					 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
+					 input_filename, lineno);
+		  finish_stmt ();
+		;
+    break;}
+case 673:
+#line 3666 "parse.y"
+{ if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
+		  emit_line_note (input_filename, lineno);
+		  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
+					 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
+					 input_filename, lineno);
+		  finish_stmt ();
+		;
+    break;}
+case 674:
+#line 3676 "parse.y"
+{ if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
+		  emit_line_note (input_filename, lineno);
+		  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
+					 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
+					 input_filename, lineno);
+		  finish_stmt ();
+		;
+    break;}
+case 675:
+#line 3684 "parse.y"
+{
+		  if (processing_template_decl)
+		    add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
+		  else
+		    { emit_line_note (input_filename, lineno);
+		      expand_computed_goto (yyvsp[-1].ttype); }
+		;
+    break;}
+case 676:
+#line 3692 "parse.y"
+{
+		  if (processing_template_decl)
+		    add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
+		  else
+		    {
+		      tree decl;
+		      emit_line_note (input_filename, lineno);
+		      decl = lookup_label (yyvsp[-1].ttype);
+		      TREE_USED (decl) = 1;
+		      expand_goto (decl); 
+		    }
+		;
+    break;}
+case 677:
+#line 3705 "parse.y"
+{ finish_stmt (); ;
+    break;}
+case 678:
+#line 3707 "parse.y"
+{ error ("label must be followed by statement");
+		  yyungetc ('}', 0);
+		  finish_stmt (); ;
+    break;}
+case 679:
+#line 3711 "parse.y"
+{ finish_stmt (); ;
+    break;}
+case 681:
+#line 3717 "parse.y"
+{
+		  if (! current_function_parms_stored)
+		    store_parm_decls ();
+		  expand_start_early_try_stmts ();
+		;
+    break;}
+case 682:
+#line 3723 "parse.y"
+{ expand_start_all_catch (); ;
+    break;}
+case 683:
+#line 3725 "parse.y"
+{
+		  int nested = (hack_decl_function_context
+				(current_function_decl) != NULL_TREE);
+		  expand_end_all_catch ();
+		  finish_function (lineno, (int)yyvsp[-3].itype, nested);
+		;
+    break;}
+case 684:
+#line 3735 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      yyval.ttype = build_min_nt (TRY_BLOCK, NULL_TREE,
+						NULL_TREE);
+		      add_tree (yyval.ttype);
+		    }
+		  else
+		    {
+		      emit_line_note (input_filename, lineno);
+		      expand_start_try_stmts ();
+		    }
+		;
+    break;}
+case 685:
+#line 3749 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
+		      TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
+		      last_tree = yyvsp[-1].ttype;
+		    }
+		  else
+		    expand_start_all_catch ();
+		;
+    break;}
+case 686:
+#line 3760 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      TREE_OPERAND (yyvsp[-3].ttype, 1) = TREE_CHAIN (yyvsp[-3].ttype);
+		      TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
+		      last_tree = yyvsp[-3].ttype;
+		    }
+		  else
+		    expand_end_all_catch ();
+		;
+    break;}
+case 689:
+#line 3779 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      yyval.ttype = build_min_nt (HANDLER, NULL_TREE,
+						NULL_TREE);
+		      add_tree (yyval.ttype);
+		    }
+		;
+    break;}
+case 690:
+#line 3788 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
+		      TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
+		      last_tree = yyvsp[-2].ttype;
+		    }
+		;
+    break;}
+case 691:
+#line 3797 "parse.y"
+{
+		  if (processing_template_decl)
+		    {
+		      TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
+		      TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
+		      last_tree = yyvsp[-4].ttype;
+		    }
+		  else
+		    expand_end_catch_block ();
+		;
+    break;}
+case 695:
+#line 3817 "parse.y"
+{ expand_start_catch_block (NULL_TREE, NULL_TREE); ;
+    break;}
+case 696:
+#line 3833 "parse.y"
+{ check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
+		  expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
+					    TREE_VALUE (yyvsp[-1].ftype.t)); ;
+    break;}
+case 697:
+#line 3840 "parse.y"
+{ tree label;
+		do_label:
+		  label = define_label (input_filename, lineno, yyvsp[-1].ttype);
+		  if (label && ! minimal_parse_mode)
+		    expand_label (label);
+		;
+    break;}
+case 698:
+#line 3847 "parse.y"
+{ goto do_label; ;
+    break;}
+case 699:
+#line 3849 "parse.y"
+{ goto do_label; ;
+    break;}
+case 700:
+#line 3851 "parse.y"
+{ goto do_label; ;
+    break;}
+case 701:
+#line 3856 "parse.y"
+{ if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
+    break;}
+case 703:
+#line 3859 "parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C++ forbids compound statements inside for initializations");
+		;
+    break;}
+case 704:
+#line 3868 "parse.y"
+{ emit_line_note (input_filename, lineno);
+		  yyval.ttype = NULL_TREE; ;
+    break;}
+case 705:
+#line 3871 "parse.y"
+{ emit_line_note (input_filename, lineno); ;
+    break;}
+case 706:
+#line 3876 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 708:
+#line 3879 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 709:
+#line 3886 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 712:
+#line 3893 "parse.y"
+{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
+    break;}
+case 713:
+#line 3898 "parse.y"
+{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
+    break;}
+case 714:
+#line 3903 "parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
+    break;}
+case 715:
+#line 3905 "parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
+    break;}
+case 716:
+#line 3916 "parse.y"
+{
+		  yyval.ttype = empty_parms();
+		;
+    break;}
+case 718:
+#line 3921 "parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, void_list_node);
+		  TREE_PARMLIST (yyval.ttype) = 1; 
+		  check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
+    break;}
+case 719:
+#line 3930 "parse.y"
+{
+		  yyval.ttype = chainon (yyval.ttype, void_list_node);
+		  TREE_PARMLIST (yyval.ttype) = 1;
+		;
+    break;}
+case 720:
+#line 3935 "parse.y"
+{
+		  TREE_PARMLIST (yyval.ttype) = 1;
+		;
+    break;}
+case 721:
+#line 3940 "parse.y"
+{
+		  TREE_PARMLIST (yyval.ttype) = 1;
+		;
+    break;}
+case 722:
+#line 3944 "parse.y"
+{
+		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); 
+		  TREE_PARMLIST (yyval.ttype) = 1;
+		;
+    break;}
+case 723:
+#line 3949 "parse.y"
+{
+		  yyval.ttype = NULL_TREE;
+		;
+    break;}
+case 724:
+#line 3953 "parse.y"
+{
+		  TREE_PARMLIST (yyval.ttype) = 1;
+		;
+    break;}
+case 725:
+#line 3957 "parse.y"
+{
+		  TREE_PARMLIST (yyval.ttype) = 1;
+		;
+    break;}
+case 726:
+#line 3961 "parse.y"
+{
+		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
+		  TREE_PARMLIST (yyval.ttype) = 1;
+		;
+    break;}
+case 727:
+#line 3966 "parse.y"
+{
+		  /* This helps us recover from really nasty
+		     parse errors, for example, a missing right
+		     parenthesis.  */
+		  yyerror ("possibly missing ')'");
+		  yyval.ttype = chainon (yyval.ttype, void_list_node);
+		  TREE_PARMLIST (yyval.ttype) = 1;
+		  yyungetc (':', 0);
+		  yychar = ')';
+		;
+    break;}
+case 728:
+#line 3977 "parse.y"
+{
+		  /* This helps us recover from really nasty
+		     parse errors, for example, a missing right
+		     parenthesis.  */
+		  yyerror ("possibly missing ')'");
+		  yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
+		  TREE_PARMLIST (yyval.ttype) = 1;
+		  yyungetc (':', 0);
+		  yychar = ')';
+		;
+    break;}
+case 729:
+#line 3992 "parse.y"
+{ maybe_snarf_defarg (); ;
+    break;}
+case 730:
+#line 3994 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 733:
+#line 4005 "parse.y"
+{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
+		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
+    break;}
+case 734:
+#line 4008 "parse.y"
+{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
+		  yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
+    break;}
+case 735:
+#line 4011 "parse.y"
+{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
+		  yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
+    break;}
+case 736:
+#line 4014 "parse.y"
+{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 737:
+#line 4016 "parse.y"
+{ yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
+    break;}
+case 739:
+#line 4022 "parse.y"
+{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
+		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
+    break;}
+case 740:
+#line 4032 "parse.y"
+{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
+		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
+		  yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
+    break;}
+case 741:
+#line 4036 "parse.y"
+{ yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
+		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
+    break;}
+case 742:
+#line 4039 "parse.y"
+{ yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); 
+		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
+    break;}
+case 743:
+#line 4042 "parse.y"
+{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
+		  yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
+		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
+    break;}
+case 744:
+#line 4046 "parse.y"
+{ tree specs = strip_attrs (yyvsp[0].ftype.t);
+		  yyval.ftype.t = build_tree_list (specs, NULL_TREE); 
+		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
+    break;}
+case 745:
+#line 4050 "parse.y"
+{ tree specs = strip_attrs (yyvsp[-1].ttype);
+		  yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); 
+		  yyval.ftype.new_type_flag = 0; ;
+    break;}
+case 746:
+#line 4057 "parse.y"
+{ yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
+		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
+    break;}
+case 747:
+#line 4060 "parse.y"
+{ yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
+		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;  ;
+    break;}
+case 750:
+#line 4071 "parse.y"
+{ see_typename (); ;
+    break;}
+case 751:
+#line 4076 "parse.y"
+{
+		  error ("type specifier omitted for parameter");
+		  yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
+		;
+    break;}
+case 752:
+#line 4081 "parse.y"
+{
+		  error ("type specifier omitted for parameter");
+		  if (TREE_CODE (yyval.ttype) == SCOPE_REF
+		      && TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM)
+		    cp_error ("  perhaps you want `typename %E' to make it a type", yyval.ttype);
+		  yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
+		;
+    break;}
+case 753:
+#line 4092 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 754:
+#line 4094 "parse.y"
+{ yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 755:
+#line 4096 "parse.y"
+{ yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
+    break;}
+case 756:
+#line 4101 "parse.y"
+{ yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
+    break;}
+case 758:
+#line 4107 "parse.y"
+{
+		  TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
+		  yyval.ttype = yyvsp[0].ttype;
+		;
+    break;}
+case 759:
+#line 4115 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 760:
+#line 4117 "parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 761:
+#line 4119 "parse.y"
+{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 762:
+#line 4121 "parse.y"
+{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
+		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
+		;
+    break;}
+case 763:
+#line 4128 "parse.y"
+{ got_scope = NULL_TREE; ;
+    break;}
+case 764:
+#line 4133 "parse.y"
+{ yyval.ttype = ansi_opname[MULT_EXPR]; ;
+    break;}
+case 765:
+#line 4135 "parse.y"
+{ yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
+    break;}
+case 766:
+#line 4137 "parse.y"
+{ yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
+    break;}
+case 767:
+#line 4139 "parse.y"
+{ yyval.ttype = ansi_opname[PLUS_EXPR]; ;
+    break;}
+case 768:
+#line 4141 "parse.y"
+{ yyval.ttype = ansi_opname[MINUS_EXPR]; ;
+    break;}
+case 769:
+#line 4143 "parse.y"
+{ yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
+    break;}
+case 770:
+#line 4145 "parse.y"
+{ yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
+    break;}
+case 771:
+#line 4147 "parse.y"
+{ yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
+    break;}
+case 772:
+#line 4149 "parse.y"
+{ yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
+    break;}
+case 773:
+#line 4151 "parse.y"
+{ yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
+    break;}
+case 774:
+#line 4153 "parse.y"
+{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
+    break;}
+case 775:
+#line 4155 "parse.y"
+{ yyval.ttype = ansi_opname[LT_EXPR]; ;
+    break;}
+case 776:
+#line 4157 "parse.y"
+{ yyval.ttype = ansi_opname[GT_EXPR]; ;
+    break;}
+case 777:
+#line 4159 "parse.y"
+{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
+    break;}
+case 778:
+#line 4161 "parse.y"
+{ yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
+    break;}
+case 779:
+#line 4163 "parse.y"
+{ yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
+    break;}
+case 780:
+#line 4165 "parse.y"
+{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
+    break;}
+case 781:
+#line 4167 "parse.y"
+{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
+    break;}
+case 782:
+#line 4169 "parse.y"
+{ yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
+    break;}
+case 783:
+#line 4171 "parse.y"
+{ yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
+    break;}
+case 784:
+#line 4173 "parse.y"
+{ yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
+    break;}
+case 785:
+#line 4175 "parse.y"
+{ yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
+    break;}
+case 786:
+#line 4177 "parse.y"
+{ yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
+    break;}
+case 787:
+#line 4179 "parse.y"
+{ yyval.ttype = ansi_opname[COND_EXPR]; ;
+    break;}
+case 788:
+#line 4181 "parse.y"
+{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
+    break;}
+case 789:
+#line 4183 "parse.y"
+{ yyval.ttype = ansi_opname[COMPONENT_REF]; ;
+    break;}
+case 790:
+#line 4185 "parse.y"
+{ yyval.ttype = ansi_opname[MEMBER_REF]; ;
+    break;}
+case 791:
+#line 4187 "parse.y"
+{ yyval.ttype = ansi_opname[CALL_EXPR]; ;
+    break;}
+case 792:
+#line 4189 "parse.y"
+{ yyval.ttype = ansi_opname[ARRAY_REF]; ;
+    break;}
+case 793:
+#line 4191 "parse.y"
+{ yyval.ttype = ansi_opname[NEW_EXPR]; ;
+    break;}
+case 794:
+#line 4193 "parse.y"
+{ yyval.ttype = ansi_opname[DELETE_EXPR]; ;
+    break;}
+case 795:
+#line 4195 "parse.y"
+{ yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
+    break;}
+case 796:
+#line 4197 "parse.y"
+{ yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
+    break;}
+case 797:
+#line 4200 "parse.y"
+{ yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
+    break;}
+case 798:
+#line 4202 "parse.y"
+{ yyval.ttype = ansi_opname[ERROR_MARK]; ;
+    break;}
+}
+   /* the action file gets copied in in place of this dollarsign */
+#line 487 "/usr/local/share/bison.simple"
+
+  yyvsp -= yylen;
+  yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+  yylsp -= yylen;
+#endif
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "state stack now");
+      while (ssp1 != yyssp)
+	fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
+
+  *++yyvsp = yyval;
+
+#ifdef YYLSP_NEEDED
+  yylsp++;
+  if (yylen == 0)
+    {
+      yylsp->first_line = yylloc.first_line;
+      yylsp->first_column = yylloc.first_column;
+      yylsp->last_line = (yylsp-1)->last_line;
+      yylsp->last_column = (yylsp-1)->last_column;
+      yylsp->text = 0;
+    }
+  else
+    {
+      yylsp->last_line = (yylsp+yylen-1)->last_line;
+      yylsp->last_column = (yylsp+yylen-1)->last_column;
+    }
+#endif
+
+  /* Now "shift" the result of the reduction.
+     Determine what state that goes to,
+     based on the state we popped back to
+     and the rule number reduced by.  */
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTBASE];
+
+  goto yynewstate;
+
+yyerrlab:   /* here on detecting error */
+
+  if (! yyerrstatus)
+    /* If not already recovering from an error, report this error.  */
+    {
+      ++yynerrs;
+
+#ifdef YYERROR_VERBOSE
+      yyn = yypact[yystate];
+
+      if (yyn > YYFLAG && yyn < YYLAST)
+	{
+	  int size = 0;
+	  char *msg;
+	  int x, count;
+
+	  count = 0;
+	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
+	  for (x = (yyn < 0 ? -yyn : 0);
+	       x < (sizeof(yytname) / sizeof(char *)); x++)
+	    if (yycheck[x + yyn] == x)
+	      size += strlen(yytname[x]) + 15, count++;
+	  msg = (char *) malloc(size + 15);
+	  if (msg != 0)
+	    {
+	      strcpy(msg, "parse error");
+
+	      if (count < 5)
+		{
+		  count = 0;
+		  for (x = (yyn < 0 ? -yyn : 0);
+		       x < (sizeof(yytname) / sizeof(char *)); x++)
+		    if (yycheck[x + yyn] == x)
+		      {
+			strcat(msg, count == 0 ? ", expecting `" : " or `");
+			strcat(msg, yytname[x]);
+			strcat(msg, "'");
+			count++;
+		      }
+		}
+	      yyerror(msg);
+	      free(msg);
+	    }
+	  else
+	    yyerror ("parse error; also virtual memory exceeded");
+	}
+      else
+#endif /* YYERROR_VERBOSE */
+	yyerror("parse error");
+    }
+
+  goto yyerrlab1;
+yyerrlab1:   /* here on error raised explicitly by an action */
+
+  if (yyerrstatus == 3)
+    {
+      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
+
+      /* return failure if at end of input */
+      if (yychar == YYEOF)
+	YYABORT;
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
+
+      yychar = YYEMPTY;
+    }
+
+  /* Else will try to reuse lookahead token
+     after shifting the error token.  */
+
+  yyerrstatus = 3;		/* Each real token shifted decrements this */
+
+  goto yyerrhandle;
+
+yyerrdefault:  /* current state does not do anything special for the error token. */
+
+#if 0
+  /* This is wrong; only states that explicitly want error tokens
+     should shift them.  */
+  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
+  if (yyn) goto yydefault;
+#endif
+
+yyerrpop:   /* pop the current state because it cannot handle the error token */
+
+  if (yyssp == yyss) YYABORT;
+  yyvsp--;
+  yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+  yylsp--;
+#endif
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "Error: state stack now");
+      while (ssp1 != yyssp)
+	fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
+
+yyerrhandle:
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yyerrdefault;
+
+  yyn += YYTERROR;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+    goto yyerrdefault;
+
+  yyn = yytable[yyn];
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+	goto yyerrpop;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+  else if (yyn == 0)
+    goto yyerrpop;
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting error token, ");
+#endif
+
+  *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
+
+  yystate = yyn;
+  goto yynewstate;
+}
+#line 4205 "parse.y"
+
+
+#ifdef SPEW_DEBUG
+const char *
+debug_yytranslate (value)
+    int value;
+{
+  return yytname[YYTRANSLATE (value)];
+}
+
+#endif
diff --git a/gcc/cp/parse.h b/gcc/cp/parse.h
new file mode 100644
index 0000000..432766b
--- /dev/null
+++ b/gcc/cp/parse.h
@@ -0,0 +1,91 @@
+typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
+#define	IDENTIFIER	258
+#define	TYPENAME	259
+#define	SELFNAME	260
+#define	SCSPEC	261
+#define	TYPESPEC	262
+#define	CV_QUALIFIER	263
+#define	CONSTANT	264
+#define	STRING	265
+#define	ELLIPSIS	266
+#define	SIZEOF	267
+#define	ENUM	268
+#define	IF	269
+#define	ELSE	270
+#define	WHILE	271
+#define	DO	272
+#define	FOR	273
+#define	SWITCH	274
+#define	CASE	275
+#define	DEFAULT	276
+#define	BREAK	277
+#define	CONTINUE	278
+#define	RETURN	279
+#define	GOTO	280
+#define	ASM_KEYWORD	281
+#define	GCC_ASM_KEYWORD	282
+#define	TYPEOF	283
+#define	ALIGNOF	284
+#define	SIGOF	285
+#define	ATTRIBUTE	286
+#define	EXTENSION	287
+#define	LABEL	288
+#define	REALPART	289
+#define	IMAGPART	290
+#define	AGGR	291
+#define	VISSPEC	292
+#define	DELETE	293
+#define	NEW	294
+#define	THIS	295
+#define	OPERATOR	296
+#define	CXX_TRUE	297
+#define	CXX_FALSE	298
+#define	NAMESPACE	299
+#define	TYPENAME_KEYWORD	300
+#define	USING	301
+#define	LEFT_RIGHT	302
+#define	TEMPLATE	303
+#define	TYPEID	304
+#define	DYNAMIC_CAST	305
+#define	STATIC_CAST	306
+#define	REINTERPRET_CAST	307
+#define	CONST_CAST	308
+#define	SCOPE	309
+#define	EMPTY	310
+#define	PTYPENAME	311
+#define	NSNAME	312
+#define	THROW	313
+#define	ASSIGN	314
+#define	OROR	315
+#define	ANDAND	316
+#define	MIN_MAX	317
+#define	EQCOMPARE	318
+#define	ARITHCOMPARE	319
+#define	LSHIFT	320
+#define	RSHIFT	321
+#define	POINTSAT_STAR	322
+#define	DOT_STAR	323
+#define	UNARY	324
+#define	PLUSPLUS	325
+#define	MINUSMINUS	326
+#define	HYPERUNARY	327
+#define	PAREN_STAR_PAREN	328
+#define	POINTSAT	329
+#define	TRY	330
+#define	CATCH	331
+#define	TYPENAME_ELLIPSIS	332
+#define	PRE_PARSED_FUNCTION_DECL	333
+#define	EXTERN_LANG_STRING	334
+#define	ALL	335
+#define	PRE_PARSED_CLASS_DECL	336
+#define	DEFARG	337
+#define	DEFARG_MARKER	338
+#define	TYPENAME_DEFN	339
+#define	IDENTIFIER_DEFN	340
+#define	PTYPENAME_DEFN	341
+#define	END_OF_LINE	342
+#define	END_OF_SAVED_INPUT	343
+
+
+extern YYSTYPE yylval;
+#define YYEMPTY		-2
diff --git a/gcc/cstamp-h.in b/gcc/cstamp-h.in
new file mode 100644
index 0000000..9788f70
--- /dev/null
+++ b/gcc/cstamp-h.in
@@ -0,0 +1 @@
+timestamp
diff --git a/gcc/gcc.1 b/gcc/gcc.1
new file mode 100644
index 0000000..b09c8b7
--- /dev/null
+++ b/gcc/gcc.1
@@ -0,0 +1,4167 @@
+.\" Copyright (c) 1991, 1992, 1993, 1994 Free Software Foundation    -*-Text-*-
+.\" See section COPYING for conditions for redistribution
+.\"
+.\" Set up \*(lq, \*(rq if -man hasn't already set it up.
+.if @@\*(lq@ \{\
+.	ds lq "
+.	if t .ds lq ``
+.	if !@@\(lq@ .ds lq "\(lq
+.\}
+.if @@\*(rq@ \{\
+.	ds rq "
+.	if t .ds rq ''
+.	if !@@\(rq@ .ds rq "\(rq
+.\}
+.de Id
+.ds Rv \\$3
+.ds Dt \\$4
+..
+.de Sp
+.if n .sp
+.if t .sp 0.4
+..
+.Id $Id: gcc.1,v 1.4 1993/10/13 23:19:12 pesch Exp $
+.TH GCC 1 "\*(Dt" "GNU Tools" "GNU Tools"
+.SH NAME
+gcc, g++ \- GNU project C and C++ Compiler (v2.7)
+.SH SYNOPSIS
+.B gcc
+.RI "[ " option " | " filename " ].\|.\|."
+.br
+.B g++
+.RI "[ " option " | " filename " ].\|.\|."
+.SH WARNING
+The information in this man page is an extract from the full
+documentation of the GNU C compiler, and is limited to the meaning of
+the options.
+.PP
+This man page is not kept up to date except when volunteers want to
+maintain it.  If you find a discrepancy between the man page and the
+software, please check the Info file, which is the authoritative
+documentation.
+.PP
+If we find that the things in this man page that are out of date cause
+significant confusion or complaints, we will stop distributing the man
+page.  The alternative, updating the man page when we update the Info
+file, is impossible because the rest of the work of maintaining GNU CC
+leaves us no time for that.  The GNU project regards man pages as
+obsolete and should not let them take time away from other things.
+.PP
+For complete and current documentation, refer to the Info file `\|\c
+.B gcc\c
+\&\|' or the manual
+.I
+Using and Porting GNU CC (for version 2.0)\c
+\&.  Both are made from the Texinfo source file
+.BR gcc.texinfo .
+.SH DESCRIPTION
+The C and C++ compilers are integrated.  Both process input files
+through one or more of four stages: preprocessing, compilation,
+assembly, and linking.  Source filename suffixes identify the source
+language, but which name you use for the compiler governs default
+assumptions:
+.TP
+.B gcc
+assumes preprocessed (\c
+.B .i\c
+\&) files are C and assumes C style linking.
+.TP
+.B g++
+assumes preprocessed (\c
+.B .i\c
+\&) files are C++ and assumes C++ style linking.
+.PP
+Suffixes of source file names indicate the language and kind of
+processing to be done:
+.Sp
+.nf
+.ta \w'\fB.cxx\fP  'u
+\&\fB.c\fP	C source; preprocess, compile, assemble
+\&\fB.C\fP	C++ source; preprocess, compile, assemble
+\&\fB.cc\fP	C++ source; preprocess, compile, assemble
+\&\fB.cxx\fP	C++ source; preprocess, compile, assemble
+\&\fB.m\fP	Objective-C source; preprocess, compile, assemble
+\&\fB.i\fP	preprocessed C; compile, assemble
+\&\fB.ii\fP	preprocessed C++; compile, assemble
+\&\fB.s\fP	Assembler source; assemble
+\&\fB.S\fP	Assembler source; preprocess, assemble
+\&\fB.h\fP	Preprocessor file; not usually named on command line
+.Sp
+.fi
+Files with other suffixes are passed to the linker.  Common cases include:
+.Sp
+.nf
+\&\fB.o\fP	Object file
+\&\fB.a\fP	Archive file
+.br
+.fi
+.Sp
+Linking is always the last stage unless you use one of the
+.BR \-c ,
+.BR \-S ,
+or
+.B \-E
+options to avoid it (or unless compilation errors stop the whole
+process).  For the link stage, all
+.B .o
+files corresponding to source files,
+.B \-l
+libraries, unrecognized filenames (including named
+.B .o
+object files and
+.B .a
+archives)
+are passed to the linker in command-line order.
+.SH OPTIONS
+Options must be separate: `\|\c
+.B \-dr\c
+\&\|' is quite different from `\|\c
+.B \-d \-r
+\&\|'.
+.PP
+Most `\|\c
+.B \-f\c
+\&\|' and `\|\c
+.B \-W\c
+\&\|' options have two contrary forms:
+.BI \-f name
+and
+.BI \-fno\- name\c
+\& (or
+.BI \-W name
+and
+.BI \-Wno\- name\c
+\&).  Only the non-default forms are shown here.
+.PP
+Here is a summary of all the options, grouped by type.  Explanations are
+in the following sections.
+.hy 0
+.na
+.TP
+.B Overall Options
+.br
+\-c
+\-S
+\-E
+.RI "\-o " file
+\-pipe
+\-v
+.RI "\-x " language
+.TP
+.B Language Options
+\-ansi
+\-fall\-virtual
+\-fcond\-mismatch
+\-fdollars\-in\-identifiers
+\-fenum\-int\-equiv
+\-fexternal\-templates
+\-fno\-asm
+\-fno\-builtin
+\-fhosted
+\-fno\-hosted
+\-ffreestanding
+\-fno\-freestanding
+\-fno\-strict\-prototype
+\-fsigned\-bitfields
+\-fsigned\-char
+\-fthis\-is\-variable
+\-funsigned\-bitfields
+\-funsigned\-char
+\-fwritable\-strings
+\-traditional
+\-traditional\-cpp
+\-trigraphs
+.TP
+.B Warning Options
+\-fsyntax\-only
+\-pedantic
+\-pedantic\-errors
+\-w
+\-W
+\-Wall
+\-Waggregate\-return
+\-Wcast\-align
+\-Wcast\-qual
+\-Wchar\-subscript
+\-Wcomment
+\-Wconversion
+\-Wenum\-clash
+\-Werror
+\-Wformat
+.RI \-Wid\-clash\- len
+\-Wimplicit
+\-Winline
+\-Wmain
+\-Wmissing\-prototypes
+\-Wmissing\-declarations
+\-Wnested\-externs
+\-Wno\-import
+\-Wparentheses
+\-Wpointer\-arith
+\-Wredundant\-decls
+\-Wreturn\-type
+\-Wshadow
+\-Wstrict\-prototypes
+\-Wswitch
+\-Wtemplate\-debugging
+\-Wtraditional
+\-Wtrigraphs
+\-Wuninitialized
+\-Wunused
+\-Wwrite\-strings
+.TP
+.B Debugging Options
+\-a
+.RI \-d letters
+\-fpretend\-float
+\-g
+.RI \-g level
+\-gcoff
+\-gxcoff
+\-gxcoff+
+\-gdwarf
+\-gdwarf+
+\-gstabs
+\-gstabs+
+\-ggdb
+\-p
+\-pg
+\-save\-temps
+.RI \-print\-file\-name= library
+\-print\-libgcc\-file\-name
+.RI \-print\-prog\-name= program
+.TP
+.B Optimization Options
+\-fcaller\-saves
+\-fcse\-follow\-jumps
+\-fcse\-skip\-blocks
+\-fdelayed\-branch
+\-felide\-constructors
+\-fexpensive\-optimizations
+\-ffast\-math
+\-ffloat\-store
+\-fforce\-addr
+\-fforce\-mem
+\-finline\-functions
+\-fkeep\-inline\-functions
+\-fmemoize\-lookups
+\-fno\-default\-inline
+\-fno\-defer\-pop
+\-fno\-function\-cse
+\-fno\-inline
+\-fno\-peephole
+\-fomit\-frame\-pointer
+\-frerun\-cse\-after\-loop
+\-fschedule\-insns
+\-fschedule\-insns2
+\-fstrength\-reduce
+\-fthread\-jumps
+\-funroll\-all\-loops
+\-funroll\-loops
+\-O
+\-O2
+.TP
+.B Preprocessor Options
+.RI \-A assertion
+\-C
+\-dD
+\-dM
+\-dN
+.RI \-D macro [\|= defn \|]
+\-E
+\-H
+.RI "\-idirafter " dir
+.RI "\-include " file
+.RI "\-imacros " file
+.RI "\-iprefix " file
+.RI "\-iwithprefix " dir
+\-M
+\-MD
+\-MM
+\-MMD
+\-nostdinc
+\-P
+.RI \-U macro
+\-undef
+.TP
+.B Assembler Option
+.RI \-Wa, option
+.TP
+.B Linker Options
+.RI \-l library
+\-nostartfiles
+\-nostdlib
+\-static
+\-shared
+\-symbolic
+.RI "\-Xlinker\ " option
+.RI \-Wl, option
+.RI "\-u " symbol
+.TP
+.B Directory Options
+.RI \-B prefix
+.RI \-I dir
+\-I\-
+.RI \-L dir
+.TP
+.B Target Options
+.RI "\-b  " machine
+.RI "\-V " version
+.TP
+.B Configuration Dependent Options
+.I M680x0\ Options
+.br
+\-m68000
+\-m68020
+\-m68020\-40
+\-m68030
+\-m68040
+\-m68881
+\-mbitfield
+\-mc68000
+\-mc68020
+\-mfpa
+\-mnobitfield
+\-mrtd
+\-mshort
+\-msoft\-float
+.Sp
+.I VAX Options
+.br
+\-mg
+\-mgnu
+\-munix
+.Sp
+.I SPARC Options
+.br
+\-mepilogue
+\-mfpu
+\-mhard\-float
+\-mno\-fpu
+\-mno\-epilogue
+\-msoft\-float
+\-msparclite
+\-mv8
+\-msupersparc
+\-mcypress
+.Sp
+.I Convex Options
+.br
+\-margcount
+\-mc1
+\-mc2
+\-mnoargcount
+.Sp
+.I AMD29K Options
+.br
+\-m29000
+\-m29050
+\-mbw
+\-mdw
+\-mkernel\-registers
+\-mlarge
+\-mnbw
+\-mnodw
+\-msmall
+\-mstack\-check
+\-muser\-registers
+.Sp
+.I M88K Options
+.br
+\-m88000
+\-m88100
+\-m88110
+\-mbig\-pic
+\-mcheck\-zero\-division
+\-mhandle\-large\-shift
+\-midentify\-revision
+\-mno\-check\-zero\-division
+\-mno\-ocs\-debug\-info
+\-mno\-ocs\-frame\-position
+\-mno\-optimize\-arg\-area
+\-mno\-serialize\-volatile
+\-mno\-underscores
+\-mocs\-debug\-info
+\-mocs\-frame\-position
+\-moptimize\-arg\-area
+\-mserialize\-volatile
+.RI \-mshort\-data\- num
+\-msvr3
+\-msvr4
+\-mtrap\-large\-shift
+\-muse\-div\-instruction
+\-mversion\-03.00
+\-mwarn\-passed\-structs
+.Sp
+.I RS6000 Options
+.br
+\-mfp\-in\-toc
+\-mno\-fop\-in\-toc
+.Sp
+.I RT Options
+.br
+\-mcall\-lib\-mul
+\-mfp\-arg\-in\-fpregs
+\-mfp\-arg\-in\-gregs
+\-mfull\-fp\-blocks
+\-mhc\-struct\-return
+\-min\-line\-mul
+\-mminimum\-fp\-blocks
+\-mnohc\-struct\-return
+.Sp
+.I MIPS Options
+.br
+\-mcpu=\fIcpu type\fP
+\-mips2
+\-mips3
+\-mint64
+\-mlong64
+\-mlonglong128
+\-mmips\-as
+\-mgas
+\-mrnames
+\-mno\-rnames
+\-mgpopt
+\-mno\-gpopt
+\-mstats
+\-mno\-stats
+\-mmemcpy
+\-mno\-memcpy
+\-mno\-mips\-tfile
+\-mmips\-tfile
+\-msoft\-float
+\-mhard\-float
+\-mabicalls
+\-mno\-abicalls
+\-mhalf\-pic
+\-mno\-half\-pic
+\-G \fInum\fP
+\-nocpp
+.Sp
+.I i386 Options
+.br
+\-m486
+\-mno\-486
+\-msoft\-float
+\-mno\-fp\-ret\-in\-387
+.Sp
+.I HPPA Options
+.br
+\-mpa\-risc\-1\-0
+\-mpa\-risc\-1\-1
+\-mkernel
+\-mshared\-libs
+\-mno\-shared\-libs
+\-mlong\-calls
+\-mdisable\-fpregs
+\-mdisable\-indexing
+\-mtrailing\-colon
+.Sp
+.I i960 Options
+.br
+\-m\fIcpu-type\fP
+\-mnumerics
+\-msoft\-float
+\-mleaf\-procedures
+\-mno\-leaf\-procedures
+\-mtail\-call
+\-mno\-tail\-call
+\-mcomplex\-addr
+\-mno\-complex\-addr
+\-mcode\-align
+\-mno\-code\-align
+\-mic\-compat
+\-mic2.0\-compat
+\-mic3.0\-compat
+\-masm\-compat
+\-mintel\-asm
+\-mstrict\-align
+\-mno\-strict\-align
+\-mold\-align
+\-mno\-old\-align
+.Sp
+.I DEC Alpha Options
+.br
+\-mfp\-regs
+\-mno\-fp\-regs
+\-mno\-soft\-float
+\-msoft\-float
+.Sp
+.I System V Options
+.br
+\-G
+\-Qy
+\-Qn
+.RI \-YP, paths
+.RI \-Ym, dir
+.TP
+.B Code Generation Options
+.RI \-fcall\-saved\- reg
+.RI \-fcall\-used\- reg
+.RI \-ffixed\- reg
+\-finhibit\-size\-directive
+\-fnonnull\-objects
+\-fno\-common
+\-fno\-ident
+\-fno\-gnu\-linker
+\-fpcc\-struct\-return
+\-fpic
+\-fPIC
+\-freg\-struct\-return
+\-fshared\-data
+\-fshort\-enums
+\-fshort\-double
+\-fvolatile
+\-fvolatile\-global
+\-fverbose\-asm
+.ad b
+.hy 1
+.SH OVERALL OPTIONS
+.TP
+.BI "\-x " "language"
+Specify explicitly the
+.I language\c
+\& for the following input files (rather than choosing a default based
+on the file name suffix) .  This option applies to all following input
+files until the next `\|\c
+.B \-x\c
+\&\|' option.  Possible values of \c
+.I language\c
+\& are
+`\|\c
+.B c\c
+\&\|', `\|\c
+.B objective\-c\c
+\&\|', `\|\c
+.B c\-header\c
+\&\|', `\|\c
+.B c++\c
+\&\|',
+`\|\c
+.B cpp\-output\c
+\&\|', `\|\c
+.B assembler\c
+\&\|', and `\|\c
+.B assembler\-with\-cpp\c
+\&\|'.
+.TP
+.B \-x none
+Turn off any specification of a language, so that subsequent files are
+handled according to their file name suffixes (as they are if `\|\c
+.B \-x\c
+\&\|'
+has not been used at all).
+.PP
+If you want only some of the four stages (preprocess, compile,
+assemble, link), you can use
+`\|\c
+.B \-x\c
+\&\|' (or filename suffixes) to tell \c
+.B gcc\c
+\& where to start, and
+one of the options `\|\c
+.B \-c\c
+\&\|', `\|\c
+.B \-S\c
+\&\|', or `\|\c
+.B \-E\c
+\&\|' to say where
+.B gcc\c
+\& is to stop.  Note that some combinations (for example,
+`\|\c
+.B \-x cpp\-output \-E\c
+\&\|') instruct \c
+.B gcc\c
+\& to do nothing at all.
+.TP
+.B \-c
+Compile or assemble the source files, but do not link.  The compiler
+output is an object file corresponding to each source file.
+.Sp
+By default, GCC makes the object file name for a source file by replacing
+the suffix `\|\c
+.B .c\c
+\&\|', `\|\c
+.B .i\c
+\&\|', `\|\c
+.B .s\c
+\&\|', etc., with `\|\c
+.B .o\c
+\&\|'.  Use
+.B \-o\c
+\& to select another name.
+.Sp
+GCC ignores any unrecognized input files (those that do not require
+compilation or assembly) with the
+.B \-c
+option.
+.TP
+.B \-S
+Stop after the stage of compilation proper; do not assemble.  The output
+is an assembler code file for each non-assembler input
+file specified.
+.Sp
+By default, GCC makes the assembler file name for a source file by
+replacing the suffix `\|\c
+.B .c\c
+\&\|', `\|\c
+.B .i\c
+\&\|', etc., with `\|\c
+.B .s\c
+\&\|'.  Use
+.B \-o\c
+\& to select another name.
+.Sp
+GCC ignores any input files that don't require compilation.
+.TP
+.B \-E
+Stop after the preprocessing stage; do not run the compiler proper.  The
+output is preprocessed source code, which is sent to the
+standard output.
+.Sp
+GCC ignores input files which don't require preprocessing.
+.TP
+.BI "\-o " file
+Place output in file \c
+.I file\c
+\&.  This applies regardless to whatever
+sort of output GCC is producing, whether it be an executable file,
+an object file, an assembler file or preprocessed C code.
+.Sp
+Since only one output file can be specified, it does not make sense to
+use `\|\c
+.B \-o\c
+\&\|' when compiling more than one input file, unless you are
+producing an executable file as output.
+.Sp
+If you do not specify `\|\c
+.B \-o\c
+\&\|', the default is to put an executable file
+in `\|\c
+.B a.out\c
+\&\|', the object file for `\|\c
+.I source\c
+.B \&.\c
+.I suffix\c
+\&\c
+\&\|' in
+`\|\c
+.I source\c
+.B \&.o\c
+\&\|', its assembler file in `\|\c
+.I source\c
+.B \&.s\c
+\&\|', and
+all preprocessed C source on standard output.
+.TP
+.B \-v
+Print (on standard error output) the commands executed to run the stages
+of compilation.  Also print the version number of the compiler driver
+program and of the preprocessor and the compiler proper.
+.TP
+.B \-pipe
+Use pipes rather than temporary files for communication between the
+various stages of compilation.  This fails to work on some systems where
+the assembler cannot read from a pipe; but the GNU assembler has
+no trouble.
+.PP
+.SH LANGUAGE OPTIONS
+The following options control the dialect of C that the compiler
+accepts:
+.TP
+.B \-ansi
+Support all ANSI standard C programs.
+.Sp
+This turns off certain features of GNU C that are incompatible with
+ANSI C, such as the \c
+.B asm\c
+\&, \c
+.B inline\c
+\& and \c
+.B typeof
+keywords, and predefined macros such as \c
+.B unix\c
+\& and \c
+.B vax
+that identify the type of system you are using.  It also enables the
+undesirable and rarely used ANSI trigraph feature, and disallows `\|\c
+.B $\c
+\&\|' as part of identifiers.
+.Sp
+The alternate keywords \c
+.B _\|_asm_\|_\c
+\&, \c
+.B _\|_extension_\|_\c
+\&,
+.B _\|_inline_\|_\c
+\& and \c
+.B _\|_typeof_\|_\c
+\& continue to work despite
+`\|\c
+.B \-ansi\c
+\&\|'.  You would not want to use them in an ANSI C program, of
+course, but it is useful to put them in header files that might be included
+in compilations done with `\|\c
+.B \-ansi\c
+\&\|'.  Alternate predefined macros
+such as \c
+.B _\|_unix_\|_\c
+\& and \c
+.B _\|_vax_\|_\c
+\& are also available, with or
+without `\|\c
+.B \-ansi\c
+\&\|'.
+.Sp
+The `\|\c
+.B \-ansi\c
+\&\|' option does not cause non-ANSI programs to be
+rejected gratuitously.  For that, `\|\c
+.B \-pedantic\c
+\&\|' is required in
+addition to `\|\c
+.B \-ansi\c
+\&\|'.
+.Sp
+The preprocessor predefines a macro \c
+.B _\|_STRICT_ANSI_\|_\c
+\& when you use the `\|\c
+.B \-ansi\c
+\&\|'
+option.  Some header files may notice this macro and refrain
+from declaring certain functions or defining certain macros that the
+ANSI standard doesn't call for; this is to avoid interfering with any
+programs that might use these names for other things.
+.TP
+.B \-fno\-asm
+Do not recognize \c
+.B asm\c
+\&, \c
+.B inline\c
+\& or \c
+.B typeof\c
+\& as a
+keyword.  These words may then be used as identifiers.  You can
+use \c
+.B _\|_asm_\|_\c
+\&, \c
+.B _\|_inline_\|_\c
+\& and \c
+.B _\|_typeof_\|_\c
+\& instead.
+`\|\c
+.B \-ansi\c
+\&\|' implies `\|\c
+.B \-fno\-asm\c
+\&\|'.
+.TP
+.B \-fno\-builtin
+Don't recognize built-in functions that do not begin with two leading
+underscores.  Currently, the functions affected include \c
+.B _exit\c
+\&,
+.B abort\c
+\&, \c
+.B abs\c
+\&, \c
+.B alloca\c
+\&, \c
+.B cos\c
+\&, \c
+.B exit\c
+\&,
+.B fabs\c
+\&, \c
+.B labs\c
+\&, \c
+.B memcmp\c
+\&, \c
+.B memcpy\c
+\&, \c
+.B sin\c
+\&,
+.B sqrt\c
+\&, \c
+.B strcmp\c
+\&, \c
+.B strcpy\c
+\&, and \c
+.B strlen\c
+\&.
+.Sp
+The `\|\c
+.B \-ansi\c
+\&\|' option prevents \c
+.B alloca\c
+\& and \c
+.B _exit\c
+\& from
+being builtin functions.
+.TP
+.B \-fhosted
+Compile for a hosted environment; this implies the `\|\c
+.B \-fbuiltin\c
+\&\|' option, and implies that suspicious declarations of
+.B main\c
+\& should be warned about.
+.TP
+.B \-ffreestanding
+Compile for a freestanding environment; this implies the `\|\c
+.B \-fno-builtin\c
+\&\|' option, and implies that
+.B main\c
+\& has no special requirements.
+.TP
+.B \-fno\-strict\-prototype
+Treat a function declaration with no arguments, such as `\|\c
+.B int foo
+();\c
+\&\|', as C would treat it\(em\&as saying nothing about the number of
+arguments or their types (C++ only).  Normally, such a declaration in
+C++ means that the function \c
+.B foo\c
+\& takes no arguments.
+.TP
+.B \-trigraphs
+Support ANSI C trigraphs.  The `\|\c
+.B \-ansi\c
+\&\|' option implies `\|\c
+.B \-trigraphs\c
+\&\|'.
+.TP
+.B \-traditional
+Attempt to support some aspects of traditional C compilers.
+For details, see the GNU C Manual; the duplicate list here
+has been deleted so that we won't get complaints when it
+is out of date.
+.Sp
+But one note about C++ programs only (not C).  `\|\c
+.B \-traditional\c
+\&\|' has one additional effect for C++: assignment to
+.B this
+is permitted.  This is the same as the effect of `\|\c
+.B \-fthis\-is\-variable\c
+\&\|'.
+.TP
+.B \-traditional\-cpp
+Attempt to support some aspects of traditional C preprocessors.
+This includes the items that specifically mention the preprocessor above,
+but none of the other effects of `\|\c
+.B \-traditional\c
+\&\|'.
+.TP
+.B \-fdollars\-in\-identifiers
+Permit the use of `\|\c
+.B $\c
+\&\|' in identifiers (C++ only).  You can also use
+`\|\c
+.B \-fno\-dollars\-in\-identifiers\c
+\&\|' to explicitly prohibit use of
+`\|\c
+.B $\c
+\&\|'.  (GNU C++ allows `\|\c
+.B $\c
+\&\|' by default on some target systems
+but not others.)
+.TP
+.B \-fenum\-int\-equiv
+Permit implicit conversion of \c
+.B int\c
+\& to enumeration types (C++
+only).  Normally GNU C++ allows conversion of \c
+.B enum\c
+\& to \c
+.B int\c
+\&,
+but not the other way around.
+.TP
+.B \-fexternal\-templates
+Produce smaller code for template declarations, by generating only a
+single copy of each template function where it is defined (C++ only).
+To use this option successfully, you must also mark all files that
+use templates with either `\|\c
+.B #pragma implementation\c
+\&\|' (the definition) or
+`\|\c
+.B #pragma interface\c
+\&\|' (declarations).
+
+When your code is compiled with `\|\c
+.B \-fexternal\-templates\c
+\&\|', all
+template instantiations are external.  You must arrange for all
+necessary instantiations to appear in the implementation file; you can
+do this with a \c
+.B typedef\c
+\& that references each instantiation needed.
+Conversely, when you compile using the default option
+`\|\c
+.B \-fno\-external\-templates\c
+\&\|', all template instantiations are
+explicitly internal.
+.TP
+.B \-fall\-virtual
+Treat all possible member functions as virtual, implicitly.  All
+member functions (except for constructor functions and
+.B new
+or
+.B delete
+member operators) are treated as virtual functions of the class where
+they appear.
+.Sp
+This does not mean that all calls to these member functions will be
+made through the internal table of virtual functions.  Under some
+circumstances, the compiler can determine that a call to a given
+virtual function can be made directly; in these cases the calls are
+direct in any case.
+.TP
+.B \-fcond\-mismatch
+Allow conditional expressions with mismatched types in the second and
+third arguments.  The value of such an expression is void.
+.TP
+.B \-fthis\-is\-variable
+Permit assignment to \c
+.B this\c
+\& (C++ only).  The incorporation of
+user-defined free store management into C++ has made assignment to
+`\|\c
+.B this\c
+\&\|' an anachronism.  Therefore, by default it is invalid to
+assign to \c
+.B this\c
+\& within a class member function.  However, for
+backwards compatibility, you can make it valid with
+`\|\c
+.B \-fthis-is-variable\c
+\&\|'.
+.TP
+.B \-funsigned\-char
+Let the type \c
+.B char\c
+\& be unsigned, like \c
+.B unsigned char\c
+\&.
+.Sp
+Each kind of machine has a default for what \c
+.B char\c
+\& should
+be.  It is either like \c
+.B unsigned char\c
+\& by default or like
+.B signed char\c
+\& by default.
+.Sp
+Ideally, a portable program should always use \c
+.B signed char\c
+\& or
+.B unsigned char\c
+\& when it depends on the signedness of an object.
+But many programs have been written to use plain \c
+.B char\c
+\& and
+expect it to be signed, or expect it to be unsigned, depending on the
+machines they were written for.  This option, and its inverse, let you
+make such a program work with the opposite default.
+.Sp
+The type \c
+.B char\c
+\& is always a distinct type from each of
+.B signed char\c
+\& and \c
+.B unsigned char\c
+\&, even though its behavior
+is always just like one of those two.
+.TP
+.B \-fsigned\-char
+Let the type \c
+.B char\c
+\& be signed, like \c
+.B signed char\c
+\&.
+.Sp
+Note that this is equivalent to `\|\c
+.B \-fno\-unsigned\-char\c
+\&\|', which is
+the negative form of `\|\c
+.B \-funsigned\-char\c
+\&\|'.  Likewise,
+`\|\c
+.B \-fno\-signed\-char\c
+\&\|' is equivalent to `\|\c
+.B \-funsigned\-char\c
+\&\|'.
+.TP
+.B \-fsigned\-bitfields
+.TP
+.B \-funsigned\-bitfields
+.TP
+.B \-fno\-signed\-bitfields
+.TP
+.B \-fno\-unsigned\-bitfields
+These options control whether a bitfield is
+signed or unsigned, when declared with no explicit `\|\c
+.B signed\c
+\&\|' or `\|\c
+.B unsigned\c
+\&\|' qualifier.  By default, such a bitfield is
+signed, because this is consistent: the basic integer types such as
+.B int\c
+\& are signed types.
+.Sp
+However, when you specify `\|\c
+.B \-traditional\c
+\&\|', bitfields are all unsigned
+no matter what.
+.TP
+.B \-fwritable\-strings
+Store string constants in the writable data segment and don't uniquize
+them.  This is for compatibility with old programs which assume they
+can write into string constants.  `\|\c
+.B \-traditional\c
+\&\|' also has this
+effect.
+.Sp
+Writing into string constants is a very bad idea; \*(lqconstants\*(rq should
+be constant.
+.SH PREPROCESSOR OPTIONS
+These options control the C preprocessor, which is run on each C source
+file before actual compilation.
+.PP
+If you use the `\|\c
+.B \-E\c
+\&\|' option, GCC does nothing except preprocessing.
+Some of these options make sense only together with `\|\c
+.B \-E\c
+\&\|' because
+they cause the preprocessor output to be unsuitable for actual
+compilation.
+.TP
+.BI "\-include " "file"
+Process \c
+.I file\c
+\& as input before processing the regular input file.
+In effect, the contents of \c
+.I file\c
+\& are compiled first.  Any `\|\c
+.B \-D\c
+\&\|'
+and `\|\c
+.B \-U\c
+\&\|' options on the command line are always processed before
+`\|\c
+.B \-include \c
+.I file\c
+\&\c
+\&\|', regardless of the order in which they are
+written.  All the `\|\c
+.B \-include\c
+\&\|' and `\|\c
+.B \-imacros\c
+\&\|' options are
+processed in the order in which they are written.
+.TP
+.BI "\-imacros " file
+Process \c
+.I file\c
+\& as input, discarding the resulting output, before
+processing the regular input file.  Because the output generated from
+.I file\c
+\& is discarded, the only effect of `\|\c
+.B \-imacros \c
+.I file\c
+\&\c
+\&\|' is to
+make the macros defined in \c
+.I file\c
+\& available for use in the main
+input.  The preprocessor evaluates any `\|\c
+.B \-D\c
+\&\|' and `\|\c
+.B \-U\c
+\&\|' options
+on the command line before processing `\|\c
+.B \-imacros\c
+.I file\c
+\&\|', regardless of the order in
+which they are written.  All the `\|\c
+.B \-include\c
+\&\|' and `\|\c
+.B \-imacros\c
+\&\|'
+options are processed in the order in which they are written.
+.TP
+.BI "\-idirafter " "dir"
+Add the directory \c
+.I dir\c
+\& to the second include path.  The directories
+on the second include path are searched when a header file is not found
+in any of the directories in the main include path (the one that
+`\|\c
+.B \-I\c
+\&\|' adds to).
+.TP
+.BI "\-iprefix " "prefix"
+Specify \c
+.I prefix\c
+\& as the prefix for subsequent `\|\c
+.B \-iwithprefix\c
+\&\|'
+options.
+.TP
+.BI "\-iwithprefix " "dir"
+Add a directory to the second include path.  The directory's name is
+made by concatenating \c
+.I prefix\c
+\& and \c
+.I dir\c
+\&, where \c
+.I prefix
+was specified previously with `\|\c
+.B \-iprefix\c
+\&\|'.
+.TP
+.B \-nostdinc
+Do not search the standard system directories for header files.  Only
+the directories you have specified with `\|\c
+.B \-I\c
+\&\|' options (and the
+current directory, if appropriate) are searched.
+.Sp
+By using both `\|\c
+.B \-nostdinc\c
+\&\|' and `\|\c
+.B \-I\-\c
+\&\|', you can limit the include-file search file to only those
+directories you specify explicitly.
+.TP
+.B \-nostdinc++
+Do not search for header files in the C++\-specific standard directories,
+but do still search the other standard directories.
+(This option is used when building `\|\c
+.B libg++\c
+\&\|'.)
+.TP
+.B \-undef
+Do not predefine any nonstandard macros.  (Including architecture flags).
+.TP
+.B \-E
+Run only the C preprocessor.  Preprocess all the C source files
+specified and output the results to standard output or to the
+specified output file.
+.TP
+.B \-C
+Tell the preprocessor not to discard comments.  Used with the
+`\|\c
+.B \-E\c
+\&\|' option.
+.TP
+.B \-P
+Tell the preprocessor not to generate `\|\c
+.B #line\c
+\&\|' commands.
+Used with the `\|\c
+.B \-E\c
+\&\|' option.
+.TP
+.B \-M\  [ \-MG ]
+Tell the preprocessor to output a rule suitable for \c
+.B make
+describing the dependencies of each object file.  For each source file,
+the preprocessor outputs one \c
+.B make\c
+\&-rule whose target is the object
+file name for that source file and whose dependencies are all the files
+`\|\c
+.B #include\c
+\&\|'d in it.  This rule may be a single line or may be
+continued with `\|\c
+.B \e\c
+\&\|'-newline if it is long.  The list of rules is
+printed on standard output instead of the preprocessed C program.
+.Sp
+`\|\c
+.B \-M\c
+\&\|' implies `\|\c
+.B \-E\c
+\&\|'.
+.Sp
+`\|\c
+.B \-MG\c
+\&\|' says to treat missing header files as generated files and assume \c
+they live in the same directory as the source file.  It must be specified \c
+in addition to `\|\c
+.B \-M\c
+\&\|'.
+.TP
+.B \-MM\  [ \-MG ]
+Like `\|\c
+.B \-M\c
+\&\|' but the output mentions only the user header files
+included with `\|\c
+.B #include "\c
+.I file\c
+\&"\c
+\&\|'.  System header files
+included with `\|\c
+.B #include <\c
+.I file\c
+\&>\c
+\&\|' are omitted.
+.TP
+.B \-MD
+Like `\|\c
+.B \-M\c
+\&\|' but the dependency information is written to files with
+names made by replacing `\|\c
+.B .o\c
+\&\|' with `\|\c
+.B .d\c
+\&\|' at the end of the
+output file names.  This is in addition to compiling the file as
+specified\(em\&`\|\c
+.B \-MD\c
+\&\|' does not inhibit ordinary compilation the way
+`\|\c
+.B \-M\c
+\&\|' does.
+.Sp
+The Mach utility `\|\c
+.B md\c
+\&\|' can be used to merge the `\|\c
+.B .d\c
+\&\|' files
+into a single dependency file suitable for using with the `\|\c
+.B make\c
+\&\|'
+command.
+.TP
+.B \-MMD
+Like `\|\c
+.B \-MD\c
+\&\|' except mention only user header files, not system
+header files.
+.TP
+.B \-H
+Print the name of each header file used, in addition to other normal
+activities.
+.TP
+.BI "\-A" "question" ( answer )
+Assert the answer
+.I answer
+for
+.I question\c
+\&, in case it is tested
+with a preprocessor conditional such as `\|\c
+.BI "#if #" question ( answer )\c
+\&\|'.  `\|\c
+.B \-A\-\c
+\&\|' disables the standard
+assertions that normally describe the target machine.
+.TP
+.BI "\-A" "question"\c
+\&(\c
+.I answer\c
+\&)
+Assert the answer \c
+.I answer\c
+\& for \c
+.I question\c
+\&, in case it is tested
+with a preprocessor conditional such as `\|\c
+.B #if
+#\c
+.I question\c
+\&(\c
+.I answer\c
+\&)\c
+\&\|'.  `\|\c
+.B \-A-\c
+\&\|' disables the standard
+assertions that normally describe the target machine.
+.TP
+.BI \-D macro
+Define macro \c
+.I macro\c
+\& with the string `\|\c
+.B 1\c
+\&\|' as its definition.
+.TP
+.BI \-D macro = defn
+Define macro \c
+.I macro\c
+\& as \c
+.I defn\c
+\&.    All instances of `\|\c
+.B \-D\c
+\&\|' on
+the command line are processed before any `\|\c
+.B \-U\c
+\&\|' options.
+.TP
+.BI \-U macro
+Undefine macro \c
+.I macro\c
+\&.  `\|\c
+.B \-U\c
+\&\|' options are evaluated after all `\|\c
+.B \-D\c
+\&\|' options, but before any `\|\c
+.B \-include\c
+\&\|' and `\|\c
+.B \-imacros\c
+\&\|' options.
+.TP
+.B \-dM
+Tell the preprocessor to output only a list of the macro definitions
+that are in effect at the end of preprocessing.  Used with the `\|\c
+.B \-E\c
+\&\|'
+option.
+.TP
+.B \-dD
+Tell the preprocessor to pass all macro definitions into the output, in
+their proper sequence in the rest of the output.
+.TP
+.B \-dN
+Like `\|\c
+.B \-dD\c
+\&\|' except that the macro arguments and contents are omitted.
+Only `\|\c
+.B #define \c
+.I name\c
+\&\c
+\&\|' is included in the output.
+.SH ASSEMBLER OPTION
+.TP
+.BI "\-Wa," "option"
+Pass \c
+.I option\c
+\& as an option to the assembler.  If \c
+.I option
+contains commas, it is split into multiple options at the commas.
+.SH LINKER OPTIONS
+These options come into play when the compiler links object files into
+an executable output file.  They are meaningless if the compiler is
+not doing a link step.
+.TP
+.I object-file-name
+A file name that does not end in a special recognized suffix is
+considered to name an object file or library.  (Object files are
+distinguished from libraries by the linker according to the file
+contents.)  If GCC does a link step, these object files are used as input
+to the linker.
+.TP
+.BI \-l library
+Use the library named \c
+.I library\c
+\& when linking.
+.Sp
+The linker searches a standard list of directories for the library,
+which is actually a file named `\|\c
+.B lib\c
+.I library\c
+\&.a\c
+\&\|'.  The linker
+then uses this file as if it had been specified precisely by name.
+.Sp
+The directories searched include several standard system directories
+plus any that you specify with `\|\c
+.B \-L\c
+\&\|'.
+.Sp
+Normally the files found this way are library files\(em\&archive files
+whose members are object files.  The linker handles an archive file by
+scanning through it for members which define symbols that have so far
+been referenced but not defined.  However, if the linker finds an
+ordinary object file rather than a library, the object file is linked
+in the usual fashion.  The only difference between using an `\|\c
+.B \-l\c
+\&\|' option and specifying a file
+name is that `\|\c
+.B \-l\c
+\&\|' surrounds
+.I library
+with `\|\c
+.B lib\c
+\&\|' and `\|\c
+.B .a\c
+\&\|' and searches several directories.
+.TP
+.B \-lobjc
+You need this special case of the
+.B \-l
+option in order to link an Objective C program.
+.TP
+.B \-nostartfiles
+Do not use the standard system startup files when linking.
+The standard libraries are used normally.
+.TP
+.B \-nostdlib
+Don't use the standard system libraries and startup files when linking.
+Only the files you specify will be passed to the linker.
+.TP
+.B \-static
+On systems that support dynamic linking, this prevents linking with the shared
+libraries.  On other systems, this option has no effect.
+.TP
+.B \-shared
+Produce a shared object which can then be linked with other objects to
+form an executable.  Only a few systems support this option.
+.TP
+.B \-symbolic
+Bind references to global symbols when building a shared object.  Warn
+about any unresolved references (unless overridden by the link editor
+option `\|\c
+.B
+\-Xlinker \-z \-Xlinker defs\c
+\&\|').  Only a few systems support
+this option.
+.TP
+.BI "\-Xlinker " "option"
+Pass \c
+.I option
+as an option to the linker.  You can use this to
+supply system-specific linker options which GNU CC does not know how to
+recognize.
+.Sp
+If you want to pass an option that takes an argument, you must use
+`\|\c
+.B \-Xlinker\c
+\&\|' twice, once for the option and once for the argument.
+For example, to pass `\|\c
+.B
+\-assert definitions\c
+\&\|', you must write
+`\|\c
+.B
+\-Xlinker \-assert \-Xlinker definitions\c
+\&\|'.  It does not work to write
+`\|\c
+.B
+\-Xlinker "\-assert definitions"\c
+\&\|', because this passes the entire
+string as a single argument, which is not what the linker expects.
+.TP
+.BI "\-Wl," "option"
+Pass \c
+.I option\c
+\& as an option to the linker.  If \c
+.I option\c
+\& contains
+commas, it is split into multiple options at the commas.
+.TP
+.BI "\-u " "symbol"
+Pretend the symbol
+.I symbol
+is undefined, to force linking of
+library modules to define it.  You can use `\|\c
+.B \-u\c
+\&\|' multiple times with
+different symbols to force loading of additional library modules.
+.SH DIRECTORY OPTIONS
+These options specify directories to search for header files, for
+libraries and for parts of the compiler:
+.TP
+.BI "\-I" "dir"
+Append directory \c
+.I dir\c
+\& to the list of directories searched for include files.
+.TP
+.B \-I\-
+Any directories you specify with `\|\c
+.B \-I\c
+\&\|' options before the `\|\c
+.B \-I\-\c
+\&\|'
+option are searched only for the case of `\|\c
+.B
+#include "\c
+.I file\c
+.B
+\&"\c
+\&\|';
+they are not searched for `\|\c
+.B #include <\c
+.I file\c
+\&>\c
+\&\|'.
+.Sp
+If additional directories are specified with `\|\c
+.B \-I\c
+\&\|' options after
+the `\|\c
+.B \-I\-\c
+\&\|', these directories are searched for all `\|\c
+.B #include\c
+\&\|'
+directives.  (Ordinarily \c
+.I all\c
+\& `\|\c
+.B \-I\c
+\&\|' directories are used
+this way.)
+.Sp
+In addition, the `\|\c
+.B \-I\-\c
+\&\|' option inhibits the use of the current
+directory (where the current input file came from) as the first search
+directory for `\|\c
+.B
+#include "\c
+.I file\c
+.B
+\&"\c
+\&\|'.  There is no way to
+override this effect of `\|\c
+.B \-I\-\c
+\&\|'.  With `\|\c
+.B \-I.\c
+\&\|' you can specify
+searching the directory which was current when the compiler was
+invoked.  That is not exactly the same as what the preprocessor does
+by default, but it is often satisfactory.
+.Sp
+`\|\c
+.B \-I\-\c
+\&\|' does not inhibit the use of the standard system directories
+for header files.  Thus, `\|\c
+.B \-I\-\c
+\&\|' and `\|\c
+.B \-nostdinc\c
+\&\|' are
+independent.
+.TP
+.BI "\-L" "dir"
+Add directory \c
+.I dir\c
+\& to the list of directories to be searched
+for `\|\c
+.B \-l\c
+\&\|'.
+.TP
+.BI "\-B" "prefix"
+This option specifies where to find the executables, libraries and
+data files of the compiler itself.
+.Sp
+The compiler driver program runs one or more of the subprograms
+`\|\c
+.B cpp\c
+\&\|', `\|\c
+.B cc1\c
+\&\|' (or, for C++, `\|\c
+.B cc1plus\c
+\&\|'), `\|\c
+.B as\c
+\&\|' and `\|\c
+.B ld\c
+\&\|'.  It tries
+.I prefix\c
+\& as a prefix for each program it tries to run, both with and
+without `\|\c
+.I machine\c
+.B /\c
+.I version\c
+.B /\c
+\&\|'.
+.Sp
+For each subprogram to be run, the compiler driver first tries the
+`\|\c
+.B \-B\c
+\&\|' prefix, if any.  If that name is not found, or if `\|\c
+.B \-B\c
+\&\|'
+was not specified, the driver tries two standard prefixes, which are
+`\|\c
+.B /usr/lib/gcc/\c
+\&\|' and `\|\c
+.B /usr/local/lib/gcc-lib/\c
+\&\|'.  If neither of
+those results in a file name that is found, the compiler driver
+searches for the unmodified program
+name, using the directories specified in your
+`\|\c
+.B PATH\c
+\&\|' environment variable.
+.Sp
+The run-time support file `\|\c
+.B libgcc.a\c
+\&\|' is also searched for using the
+`\|\c
+.B \-B\c
+\&\|' prefix, if needed.  If it is not found there, the two
+standard prefixes above are tried, and that is all.  The file is left
+out of the link if it is not found by those means.  Most of the time,
+on most machines, `\|\c
+.B libgcc.a\c
+\&\|' is not actually necessary.
+.Sp
+You can get a similar result from the environment variable
+.B GCC_EXEC_PREFIX\c
+\&; if it is defined, its value is used as a prefix
+in the same way.  If both the `\|\c
+.B \-B\c
+\&\|' option and the
+.B GCC_EXEC_PREFIX\c
+\& variable are present, the `\|\c
+.B \-B\c
+\&\|' option is
+used first and the environment variable value second.
+.SH WARNING OPTIONS
+Warnings are diagnostic messages that report constructions which
+are not inherently erroneous but which are risky or suggest there
+may have been an error.
+.Sp
+These options control the amount and kinds of warnings produced by GNU
+CC:
+.TP
+.B \-fsyntax\-only
+Check the code for syntax errors, but don't emit any output.
+.TP
+.B \-w
+Inhibit all warning messages.
+.TP
+.B \-Wno\-import
+Inhibit warning messages about the use of
+.BR #import .
+.TP
+.B \-pedantic
+Issue all the warnings demanded by strict ANSI standard C; reject
+all programs that use forbidden extensions.
+.Sp
+Valid ANSI standard C programs should compile properly with or without
+this option (though a rare few will require `\|\c
+.B \-ansi\c
+\&\|').  However,
+without this option, certain GNU extensions and traditional C features
+are supported as well.  With this option, they are rejected.  There is
+no reason to \c
+.I use\c
+\& this option; it exists only to satisfy pedants.
+.Sp
+`\|\c
+.B \-pedantic\c
+\&\|' does not cause warning messages for use of the
+alternate keywords whose names begin and end with `\|\c
+.B _\|_\c
+\&\|'.  Pedantic
+warnings are also disabled in the expression that follows
+.B _\|_extension_\|_\c
+\&.  However, only system header files should use
+these escape routes; application programs should avoid them.
+.TP
+.B \-pedantic\-errors
+Like `\|\c
+.B \-pedantic\c
+\&\|', except that errors are produced rather than
+warnings.
+.TP
+.B \-W
+Print extra warning messages for these events:
+.TP
+\ \ \ \(bu
+A nonvolatile automatic variable might be changed by a call to
+.B longjmp\c
+\&.  These warnings are possible only in
+optimizing compilation.
+.Sp
+The compiler sees only the calls to \c
+.B setjmp\c
+\&.  It cannot know
+where \c
+.B longjmp\c
+\& will be called; in fact, a signal handler could
+call it at any point in the code.  As a result, you may get a warning
+even when there is in fact no problem because \c
+.B longjmp\c
+\& cannot
+in fact be called at the place which would cause a problem.
+.TP
+\ \ \ \(bu
+A function can return either with or without a value.  (Falling
+off the end of the function body is considered returning without
+a value.)  For example, this function would evoke such a
+warning:
+.Sp
+.nf
+foo (a)
+{
+  if (a > 0)
+    return a;
+}
+.Sp
+.fi
+Spurious warnings can occur because GNU CC does not realize that
+certain functions (including \c
+.B abort\c
+\& and \c
+.B longjmp\c
+\&)
+will never return.
+.TP
+\ \ \ \(bu
+An expression-statement or the left-hand side of a comma expression
+contains no side effects. 
+To suppress the warning, cast the unused expression to void.
+For example, an expression such as `\|\c
+.B x[i,j]\c
+\&\|' will cause a warning,
+but `\|\c
+.B x[(void)i,j]\c
+\&\|' will not.
+.TP
+\ \ \ \(bu
+An unsigned value is compared against zero with `\|\c
+.B >\c
+\&\|' or `\|\c
+.B <=\c
+\&\|'.
+.PP
+.TP
+.B \-Wimplicit
+Warn whenever a function or parameter is implicitly declared.
+.TP
+.B \-Wmain
+Warn if the
+.B main
+function is declared or defined with a suspicious type.
+Typically, it is a function with external linkage, returning
+.B int\c
+\&, and
+taking zero or two arguments.
+
+.TP
+.B \-Wreturn\-type
+Warn whenever a function is defined with a return-type that defaults
+to \c
+.B int\c
+\&.  Also warn about any \c
+.B return\c
+\& statement with no
+return-value in a function whose return-type is not \c
+.B void\c
+\&.
+.TP
+.B \-Wunused
+Warn whenever a local variable is unused aside from its declaration,
+whenever a function is declared static but never defined, and whenever
+a statement computes a result that is explicitly not used.
+.TP
+.B \-Wswitch
+Warn whenever a \c
+.B switch\c
+\& statement has an index of enumeral type
+and lacks a \c
+.B case\c
+\& for one or more of the named codes of that
+enumeration.  (The presence of a \c
+.B default\c
+\& label prevents this
+warning.)  \c
+.B case\c
+\& labels outside the enumeration range also
+provoke warnings when this option is used.
+.TP
+.B \-Wcomment
+Warn whenever a comment-start sequence `\|\c
+.B /\(**\c
+\&\|' appears in a comment.
+.TP
+.B \-Wtrigraphs
+Warn if any trigraphs are encountered (assuming they are enabled).
+.TP
+.B \-Wformat
+Check calls to \c
+.B printf\c
+\& and \c
+.B scanf\c
+\&, etc., to make sure that
+the arguments supplied have types appropriate to the format string
+specified.
+.TP
+.B \-Wchar\-subscripts
+Warn if an array subscript has type
+.BR char .
+This is a common cause of error, as programmers often forget that this
+type is signed on some machines.
+.TP
+.B \-Wuninitialized
+An automatic variable is used without first being initialized.
+.Sp
+These warnings are possible only in optimizing compilation,
+because they require data flow information that is computed only
+when optimizing.  If you don't specify `\|\c
+.B \-O\c
+\&\|', you simply won't
+get these warnings.
+.Sp
+These warnings occur only for variables that are candidates for
+register allocation.  Therefore, they do not occur for a variable that
+is declared \c
+.B volatile\c
+\&, or whose address is taken, or whose size
+is other than 1, 2, 4 or 8 bytes.  Also, they do not occur for
+structures, unions or arrays, even when they are in registers.
+.Sp
+Note that there may be no warning about a variable that is used only
+to compute a value that itself is never used, because such
+computations may be deleted by data flow analysis before the warnings
+are printed.
+.Sp
+These warnings are made optional because GNU CC is not smart
+enough to see all the reasons why the code might be correct
+despite appearing to have an error.  Here is one example of how
+this can happen:
+.Sp
+.nf
+{
+  int x;
+  switch (y)
+    {
+    case 1: x = 1;
+      break;
+    case 2: x = 4;
+      break;
+    case 3: x = 5;
+    }
+  foo (x);
+}
+.Sp
+.fi
+If the value of \c
+.B y\c
+\& is always 1, 2 or 3, then \c
+.B x\c
+\& is
+always initialized, but GNU CC doesn't know this.  Here is
+another common case:
+.Sp
+.nf
+{
+  int save_y;
+  if (change_y) save_y = y, y = new_y;
+  .\|.\|.
+  if (change_y) y = save_y;
+}
+.Sp
+.fi
+This has no bug because \c
+.B save_y\c
+\& is used only if it is set.
+.Sp
+Some spurious warnings can be avoided if you declare as
+.B volatile\c
+\& all the functions you use that never return.
+.TP
+.B \-Wparentheses
+Warn if parentheses are omitted in certain contexts.
+.TP
+.B \-Wtemplate\-debugging
+When using templates in a C++ program, warn if debugging is not yet
+fully available (C++ only).
+.TP
+.B \-Wall
+All of the above `\|\c
+.B \-W\c
+\&\|' options combined.  These are all the
+options which pertain to usage that we recommend avoiding and that we
+believe is easy to avoid, even in conjunction with macros.
+.PP
+The remaining `\|\c
+.B \-W.\|.\|.\c
+\&\|' options are not implied by `\|\c
+.B \-Wall\c
+\&\|'
+because they warn about constructions that we consider reasonable to
+use, on occasion, in clean programs.
+.TP
+.B \-Wtraditional
+Warn about certain constructs that behave differently in traditional and
+ANSI C.
+.TP
+\ \ \ \(bu
+Macro arguments occurring within string constants in the macro body.
+These would substitute the argument in traditional C, but are part of
+the constant in ANSI C.
+.TP
+\ \ \ \(bu
+A function declared external in one block and then used after the end of
+the block.
+.TP
+\ \ \ \(bu
+A \c
+.B switch\c
+\& statement has an operand of type \c
+.B long\c
+\&.
+.PP
+.TP
+.B \-Wshadow
+Warn whenever a local variable shadows another local variable.
+.TP
+.BI "\-Wid\-clash\-" "len"
+Warn whenever two distinct identifiers match in the first \c
+.I len
+characters.  This may help you prepare a program that will compile
+with certain obsolete, brain-damaged compilers.
+.TP
+.B \-Wpointer\-arith
+Warn about anything that depends on the \*(lqsize of\*(rq a function type or
+of \c
+.B void\c
+\&.  GNU C assigns these types a size of 1, for
+convenience in calculations with \c
+.B void \(**\c
+\& pointers and pointers
+to functions.
+.TP
+.B \-Wcast\-qual
+Warn whenever a pointer is cast so as to remove a type qualifier from
+the target type.  For example, warn if a \c
+.B const char \(**\c
+\& is cast
+to an ordinary \c
+.B char \(**\c
+\&.
+.TP
+.B \-Wcast\-align
+Warn whenever a pointer is cast such that the required alignment of the
+target is increased.  For example, warn if a \c
+.B char \(**\c
+\& is cast to
+an \c
+.B int \(**\c
+\& on machines where integers can only be accessed at
+two- or four-byte boundaries.
+.TP
+.B \-Wwrite\-strings
+Give string constants the type \c
+.B const char[\c
+.I length\c
+.B ]\c
+\& so that
+copying the address of one into a non-\c
+.B const\c
+\& \c
+.B char \(**
+pointer will get a warning.  These warnings will help you find at
+compile time code that can try to write into a string constant, but
+only if you have been very careful about using \c
+.B const\c
+\& in
+declarations and prototypes.  Otherwise, it will just be a nuisance;
+this is why we did not make `\|\c
+.B \-Wall\c
+\&\|' request these warnings.
+.TP
+.B \-Wconversion
+Warn if a prototype causes a type conversion that is different from what
+would happen to the same argument in the absence of a prototype.  This
+includes conversions of fixed point to floating and vice versa, and
+conversions changing the width or signedness of a fixed point argument
+except when the same as the default promotion.
+.TP
+.B \-Waggregate\-return
+Warn if any functions that return structures or unions are defined or
+called.  (In languages where you can return an array, this also elicits
+a warning.)
+.TP
+.B \-Wstrict\-prototypes
+Warn if a function is declared or defined without specifying the
+argument types.  (An old-style function definition is permitted without
+a warning if preceded by a declaration which specifies the argument
+types.)
+.TP
+.B \-Wmissing\-prototypes
+Warn if a global function is defined without a previous prototype
+declaration.  This warning is issued even if the definition itself
+provides a prototype.  The aim is to detect global functions that fail
+to be declared in header files.
+.TP
+.B \-Wmissing\-declarations
+Warn if a global function is defined without a previous declaration.
+Do so even if the definition itself provides a prototype.
+Use this option to detect global functions that are not declared in
+header files.
+.TP
+.B \-Wredundant-decls
+Warn if anything is declared more than once in the same scope, even in
+cases where multiple declaration is valid and changes nothing.
+.TP
+.B \-Wnested-externs
+Warn if an \c
+.B extern\c
+\& declaration is encountered within an function.
+.TP
+.B \-Wenum\-clash
+Warn about conversion between different enumeration types (C++ only).
+.TP
+.B \-Woverloaded\-virtual
+(C++ only.)
+In a derived class, the definitions of virtual functions must match
+the type signature of a virtual function declared in the base class.
+Use this option to request warnings when a derived class declares a
+function that may be an erroneous attempt to define a virtual
+function: that is, warn when a function with the same name as a
+virtual function in the base class, but with a type signature that
+doesn't match any virtual functions from the base class.
+.TP
+.B \-Winline
+Warn if a function can not be inlined, and either it was declared as inline,
+or else the
+.B \-finline\-functions
+option was given.
+.TP
+.B \-Werror
+Treat warnings as errors; abort compilation after any warning.
+.SH DEBUGGING OPTIONS
+GNU CC has various special options that are used for debugging
+either your program or GCC:
+.TP
+.B \-g
+Produce debugging information in the operating system's native format
+(stabs, COFF, XCOFF, or DWARF).  GDB can work with this debugging
+information.
+.Sp
+On most systems that use stabs format, `\|\c
+.B \-g\c
+\&\|' enables use of extra
+debugging information that only GDB can use; this extra information
+makes debugging work better in GDB but will probably make other debuggers
+crash or
+refuse to read the program.  If you want to control for certain whether
+to generate the extra information, use `\|\c
+.B \-gstabs+\c
+\&\|', `\|\c
+.B \-gstabs\c
+\&\|',
+`\|\c
+.B \-gxcoff+\c
+\&\|', `\|\c
+.B \-gxcoff\c
+\&\|', `\|\c
+.B \-gdwarf+\c
+\&\|', or `\|\c
+.B \-gdwarf\c
+\&\|'
+(see below).
+.Sp
+Unlike most other C compilers, GNU CC allows you to use `\|\c
+.B \-g\c
+\&\|' with
+`\|\c
+.B \-O\c
+\&\|'.  The shortcuts taken by optimized code may occasionally
+produce surprising results: some variables you declared may not exist
+at all; flow of control may briefly move where you did not expect it;
+some statements may not be executed because they compute constant
+results or their values were already at hand; some statements may
+execute in different places because they were moved out of loops.
+.Sp
+Nevertheless it proves possible to debug optimized output.  This makes
+it reasonable to use the optimizer for programs that might have bugs.
+.PP
+The following options are useful when GNU CC is generated with the
+capability for more than one debugging format.
+.TP
+.B \-ggdb
+Produce debugging information in the native format (if that is supported),
+including GDB extensions if at all possible.
+.TP
+.B \-gstabs
+Produce debugging information in stabs format (if that is supported),
+without GDB extensions.  This is the format used by DBX on most BSD
+systems.
+.TP
+.B \-gstabs+
+Produce debugging information in stabs format (if that is supported),
+using GNU extensions understood only by the GNU debugger (GDB).  The
+use of these extensions is likely to make other debuggers crash or
+refuse to read the program.
+.TP
+.B \-gcoff
+Produce debugging information in COFF format (if that is supported).
+This is the format used by SDB on most System V systems prior to
+System V Release 4.
+.TP
+.B \-gxcoff
+Produce debugging information in XCOFF format (if that is supported).
+This is the format used by the DBX debugger on IBM RS/6000 systems.
+.TP
+.B \-gxcoff+
+Produce debugging information in XCOFF format (if that is supported),
+using GNU extensions understood only by the GNU debugger (GDB).  The
+use of these extensions is likely to make other debuggers crash or
+refuse to read the program.
+.TP
+.B \-gdwarf
+Produce debugging information in DWARF format (if that is supported).
+This is the format used by SDB on most System V Release 4 systems.
+.TP
+.B \-gdwarf+
+Produce debugging information in DWARF format (if that is supported),
+using GNU extensions understood only by the GNU debugger (GDB).  The
+use of these extensions is likely to make other debuggers crash or
+refuse to read the program.
+.PP
+.BI "\-g" "level"
+.br
+.BI "\-ggdb" "level"
+.br
+.BI "\-gstabs" "level"
+.br
+.BI "\-gcoff" "level"
+.BI "\-gxcoff" "level"
+.TP
+.BI "\-gdwarf" "level"
+Request debugging information and also use \c
+.I level\c
+\& to specify how
+much information.  The default level is 2.
+.Sp
+Level 1 produces minimal information, enough for making backtraces in
+parts of the program that you don't plan to debug.  This includes
+descriptions of functions and external variables, but no information
+about local variables and no line numbers.
+.Sp
+Level 3 includes extra information, such as all the macro definitions
+present in the program.  Some debuggers support macro expansion when
+you use `\|\c
+.B \-g3\c
+\&\|'.
+.TP
+.B \-p
+Generate extra code to write profile information suitable for the
+analysis program \c
+.B prof\c
+\&.
+.TP
+.B \-pg
+Generate extra code to write profile information suitable for the
+analysis program \c
+.B gprof\c
+\&.
+.TP
+.B \-a
+Generate extra code to write profile information for basic blocks,
+which will record the number of times each basic block is executed.
+This data could be analyzed by a program like \c
+.B tcov\c
+\&.  Note,
+however, that the format of the data is not what \c
+.B tcov\c
+\& expects.
+Eventually GNU \c
+.B gprof\c
+\& should be extended to process this data.
+.TP
+.B \-ax
+Generate extra code to read basic block profiling parameters from 
+file `bb.in' and write profiling results to file `bb.out'.
+`bb.in' contains a list of functions. Whenever a function on the list
+is entered, profiling is turned on. When the outmost function is left,
+profiling is turned off. If a function name is prefixed with `-'
+the function is excluded from profiling. If a function name is not
+unique it can be disambiguated by writing
+`/path/filename.d:functionname'. `bb.out' will list some available
+filenames.
+Four function names have a special meaning:
+`__bb_jumps__' will cause jump frequencies to be written to `bb.out'.
+`__bb_trace__' will cause the sequence of basic blocks to be piped 
+into `gzip' and written to file `bbtrace.gz'.
+`__bb_hidecall__' will cause call instructions to be excluded from
+the trace.
+`__bb_showret__' will cause return instructions to be included in
+the trace.
+.TP
+.BI "\-d" "letters"
+Says to make debugging dumps during compilation at times specified by
+.I letters\c
+\&.  This is used for debugging the compiler.  The file names
+for most of the dumps are made by appending a word to the source file
+name (e.g.  `\|\c
+.B foo.c.rtl\c
+\&\|' or `\|\c
+.B foo.c.jump\c
+\&\|').
+.TP
+.B \-dM
+Dump all macro definitions, at the end of preprocessing, and write no
+output.
+.TP
+.B \-dN
+Dump all macro names, at the end of preprocessing.
+.TP
+.B \-dD
+Dump all macro definitions, at the end of preprocessing, in addition to
+normal output.
+.TP
+.B \-dy
+Dump debugging information during parsing, to standard error.
+.TP
+.B \-dr
+Dump after RTL generation, to `\|\c
+.I file\c
+.B \&.rtl\c
+\&\|'.
+.TP
+.B \-dx
+Just generate RTL for a function instead of compiling it.  Usually used
+with `\|\c
+.B r\c
+\&\|'.
+.TP
+.B \-dj
+Dump after first jump optimization, to `\|\c
+.I file\c
+.B \&.jump\c
+\&\|'.
+.TP
+.B \-ds
+Dump after CSE (including the jump optimization that sometimes
+follows CSE), to `\|\c
+.I file\c
+.B \&.cse\c
+\&\|'.
+.TP
+.B \-dL
+Dump after loop optimization, to `\|\c
+.I file\c
+.B \&.loop\c
+\&\|'.
+.TP
+.B \-dt
+Dump after the second CSE pass (including the jump optimization that
+sometimes follows CSE), to `\|\c
+.I file\c
+.B \&.cse2\c
+\&\|'.
+.TP
+.B \-df
+Dump after flow analysis, to `\|\c
+.I file\c
+.B \&.flow\c
+\&\|'.
+.TP
+.B \-dc
+Dump after instruction combination, to `\|\c
+.I file\c
+.B \&.combine\c
+\&\|'.
+.TP
+.B \-dS
+Dump after the first instruction scheduling pass, to
+`\|\c
+.I file\c
+.B \&.sched\c
+\&\|'.
+.TP
+.B \-dl
+Dump after local register allocation, to `\|\c
+.I file\c
+.B \&.lreg\c
+\&\|'.
+.TP
+.B \-dg
+Dump after global register allocation, to `\|\c
+.I file\c
+.B \&.greg\c
+\&\|'.
+.TP
+.B \-dR
+Dump after the second instruction scheduling pass, to
+`\|\c
+.I file\c
+.B \&.sched2\c
+\&\|'.
+.TP
+.B \-dJ
+Dump after last jump optimization, to `\|\c
+.I file\c
+.B \&.jump2\c
+\&\|'.
+.TP
+.B \-dd
+Dump after delayed branch scheduling, to `\|\c
+.I file\c
+.B \&.dbr\c
+\&\|'.
+.TP
+.B \-dk
+Dump after conversion from registers to stack, to `\|\c
+.I file\c
+.B \&.stack\c
+\&\|'.
+.TP
+.B \-da
+Produce all the dumps listed above.
+.TP
+.B \-dm
+Print statistics on memory usage, at the end of the run, to
+standard error.
+.TP
+.B \-dp
+Annotate the assembler output with a comment indicating which
+pattern and alternative was used.
+.TP
+.B \-fpretend\-float
+When running a cross-compiler, pretend that the target machine uses the
+same floating point format as the host machine.  This causes incorrect
+output of the actual floating constants, but the actual instruction
+sequence will probably be the same as GNU CC would make when running on
+the target machine.
+.TP
+.B \-save\-temps
+Store the usual \*(lqtemporary\*(rq intermediate files permanently; place them
+in the current directory and name them based on the source file.  Thus,
+compiling `\|\c
+.B foo.c\c
+\&\|' with `\|\c
+.B \-c \-save\-temps\c
+\&\|' would produce files
+`\|\c
+.B foo.cpp\c
+\&\|' and `\|\c
+.B foo.s\c
+\&\|', as well as `\|\c
+.B foo.o\c
+\&\|'.
+.TP
+.BI "\-print\-file\-name=" "library"
+Print the full absolute name of the library file \|\c
+.nh
+.I library
+.hy
+\&\| that
+would be used when linking\(em\&and do not do anything else.  With this
+option, GNU CC does not compile or link anything; it just prints the
+file name.
+.TP
+.B \-print\-libgcc\-file\-name
+Same as `\|\c
+.B \-print\-file\-name=libgcc.a\c
+\&\|'.
+.TP
+.BI "\-print\-prog\-name=" "program"
+Like `\|\c
+.B \-print\-file\-name\c
+\&\|', but searches for a program such as `\|\c
+cpp\c
+\&\|'.
+.SH OPTIMIZATION OPTIONS
+These options control various sorts of optimizations:
+.TP
+.B \-O
+.TP
+.B \-O1
+Optimize.  Optimizing compilation takes somewhat more time, and a lot
+more memory for a large function.
+.Sp
+Without `\|\c
+.B \-O\c
+\&\|', the compiler's goal is to reduce the cost of
+compilation and to make debugging produce the expected results.
+Statements are independent: if you stop the program with a breakpoint
+between statements, you can then assign a new value to any variable or
+change the program counter to any other statement in the function and
+get exactly the results you would expect from the source code.
+.Sp
+Without `\|\c
+.B \-O\c
+\&\|', only variables declared \c
+.B register\c
+\& are
+allocated in registers.  The resulting compiled code is a little worse
+than produced by PCC without `\|\c
+.B \-O\c
+\&\|'.
+.Sp
+With `\|\c
+.B \-O\c
+\&\|', the compiler tries to reduce code size and execution
+time.
+.Sp
+When you specify `\|\c
+.B \-O\c
+\&\|', the two options `\|\c
+.B \-fthread\-jumps\c
+\&\|' and `\|\c
+.B \-fdefer\-pop\c
+\&\|' are turned on.  On machines that have delay slots, the `\|\c
+.B \-fdelayed\-branch\c
+\&\|' option is turned on.  For those machines that can support debugging even
+without a frame pointer, the `\|\c
+.B \-fomit\-frame\-pointer\c
+\&\|' option is turned on.  On some machines other flags may also be turned on.
+.TP
+.B \-O2
+Optimize even more.  Nearly all supported optimizations that do not
+involve a space-speed tradeoff are performed.  Loop unrolling and function
+inlining are not done, for example.  As compared to
+.B \-O\c
+\&,
+this option increases both compilation time and the performance of the
+generated code.
+.TP
+.B \-O3
+Optimize yet more. This turns on everything
+.B \-O2
+does, along with also turning on
+.B \-finline\-functions.
+.TP
+.B \-O0
+Do not optimize.
+.Sp
+If you use multiple
+.B \-O
+options, with or without level numbers, the last such option is the
+one that is effective.
+.PP
+Options of the form `\|\c
+.B \-f\c
+.I flag\c
+\&\c
+\&\|' specify machine-independent
+flags.  Most flags have both positive and negative forms; the negative
+form of `\|\c
+.B \-ffoo\c
+\&\|' would be `\|\c
+.B \-fno\-foo\c
+\&\|'.  The following list shows
+only one form\(em\&the one which is not the default.
+You can figure out the other form by either removing `\|\c
+.B no\-\c
+\&\|' or
+adding it.
+.TP
+.B \-ffloat\-store
+Do not store floating point variables in registers.  This
+prevents undesirable excess precision on machines such as the
+68000 where the floating registers (of the 68881) keep more
+precision than a \c
+.B double\c
+\& is supposed to have.
+.Sp
+For most programs, the excess precision does only good, but a few
+programs rely on the precise definition of IEEE floating point.
+Use `\|\c
+.B \-ffloat\-store\c
+\&\|' for such programs.
+.TP
+.B \-fmemoize\-lookups
+.TP
+.B \-fsave\-memoized
+Use heuristics to compile faster (C++ only).  These heuristics are not
+enabled by default, since they are only effective for certain input
+files.  Other input files compile more slowly.
+.Sp
+The first time the compiler must build a call to a member function (or
+reference to a data member), it must (1) determine whether the class
+implements member functions of that name; (2) resolve which member
+function to call (which involves figuring out what sorts of type
+conversions need to be made); and (3) check the visibility of the member
+function to the caller.  All of this adds up to slower compilation.
+Normally, the second time a call is made to that member function (or
+reference to that data member), it must go through the same lengthy
+process again.  This means that code like this
+.Sp
+\&  cout << "This " << p << " has " << n << " legs.\en";
+.Sp
+makes six passes through all three steps.  By using a software cache,
+a \*(lqhit\*(rq significantly reduces this cost.  Unfortunately, using the
+cache introduces another layer of mechanisms which must be implemented,
+and so incurs its own overhead.  `\|\c
+.B \-fmemoize\-lookups\c
+\&\|' enables
+the software cache.
+.Sp
+Because access privileges (visibility) to members and member functions
+may differ from one function context to the next,
+.B g++
+may need to flush the cache.  With the `\|\c
+.B \-fmemoize\-lookups\c
+\&\|' flag, the cache is flushed after every
+function that is compiled.  The `\|\c
+\-fsave\-memoized\c
+\&\|' flag enables the same software cache, but when the compiler
+determines that the context of the last function compiled would yield
+the same access privileges of the next function to compile, it
+preserves the cache.
+This is most helpful when defining many member functions for the same
+class: with the exception of member functions which are friends of
+other classes, each member function has exactly the same access
+privileges as every other, and the cache need not be flushed.
+.TP
+.B \-fno\-default\-inline
+Don't make member functions inline by default merely because they are
+defined inside the class scope (C++ only).
+.TP
+.B \-fno\-defer\-pop
+Always pop the arguments to each function call as soon as that
+function returns.  For machines which must pop arguments after a
+function call, the compiler normally lets arguments accumulate on the
+stack for several function calls and pops them all at once.
+.TP
+.B \-fforce\-mem
+Force memory operands to be copied into registers before doing
+arithmetic on them.  This may produce better code by making all
+memory references potential common subexpressions.  When they are
+not common subexpressions, instruction combination should
+eliminate the separate register-load.  I am interested in hearing
+about the difference this makes.
+.TP
+.B \-fforce\-addr
+Force memory address constants to be copied into registers before
+doing arithmetic on them.  This may produce better code just as
+`\|\c
+.B \-fforce\-mem\c
+\&\|' may.  I am interested in hearing about the
+difference this makes.
+.TP
+.B \-fomit\-frame\-pointer
+Don't keep the frame pointer in a register for functions that
+don't need one.  This avoids the instructions to save, set up and
+restore frame pointers; it also makes an extra register available
+in many functions.  \c
+.I It also makes debugging impossible on most machines\c
+\&.
+.Sp
+On some machines, such as the Vax, this flag has no effect, because
+the standard calling sequence automatically handles the frame pointer
+and nothing is saved by pretending it doesn't exist.  The
+machine-description macro \c
+.B FRAME_POINTER_REQUIRED\c
+\& controls
+whether a target machine supports this flag.
+.TP
+.B \-finline\-functions
+Integrate all simple functions into their callers.  The compiler
+heuristically decides which functions are simple enough to be worth
+integrating in this way.
+.Sp
+If all calls to a given function are integrated, and the function is
+declared \c
+.B static\c
+\&, then GCC normally does not output the function as
+assembler code in its own right.
+.TP
+.B \-fcaller\-saves
+Enable values to be allocated in registers that will be clobbered by
+function calls, by emitting extra instructions to save and restore the
+registers around such calls.  Such allocation is done only when it
+seems to result in better code than would otherwise be produced.
+.Sp
+This option is enabled by default on certain machines, usually those
+which have no call-preserved registers to use instead.
+.TP
+.B \-fkeep\-inline\-functions
+Even if all calls to a given function are integrated, and the function
+is declared \c
+.B static\c
+\&, nevertheless output a separate run-time
+callable version of the function.
+.TP
+.B \-fno\-function\-cse
+Do not put function addresses in registers; make each instruction that
+calls a constant function contain the function's address explicitly.
+.Sp
+This option results in less efficient code, but some strange hacks
+that alter the assembler output may be confused by the optimizations
+performed when this option is not used.
+.TP
+.B \-fno\-peephole
+Disable any machine-specific peephole optimizations.
+.TP
+.B \-ffast-math
+This option allows GCC to violate some ANSI or IEEE rules/specifications
+in the interest of optimizing code for speed.  For example, it allows
+the compiler to assume arguments to the \c
+.B sqrt\c
+\& function are
+non-negative numbers.
+.Sp
+This option should never be turned on by any `\|\c
+.B \-O\c
+\&\|' option since
+it can result in incorrect output for programs which depend on
+an exact implementation of IEEE or ANSI rules/specifications for
+math functions.
+.PP
+The following options control specific optimizations.  The `\|\c
+.B \-O2\c
+\&\|'
+option turns on all of these optimizations except `\|\c
+.B \-funroll\-loops\c
+\&\|'
+and `\|\c
+.B \-funroll\-all\-loops\c
+\&\|'.
+.PP
+The `\|\c
+.B \-O\c
+\&\|' option usually turns on
+the `\|\c
+.B \-fthread\-jumps\c
+\&\|' and `\|\c
+.B \-fdelayed\-branch\c
+\&\|' options, but
+specific machines may change the default optimizations.
+.PP
+You can use the following flags in the rare cases when \*(lqfine-tuning\*(rq
+of optimizations to be performed is desired.
+.TP
+.B \-fstrength\-reduce
+Perform the optimizations of loop strength reduction and
+elimination of iteration variables.
+.TP
+.B \-fthread\-jumps
+Perform optimizations where we check to see if a jump branches to a
+location where another comparison subsumed by the first is found.  If
+so, the first branch is redirected to either the destination of the
+second branch or a point immediately following it, depending on whether
+the condition is known to be true or false.
+.TP
+.B \-funroll\-loops
+Perform the optimization of loop unrolling.  This is only done for loops
+whose number of iterations can be determined at compile time or run time.
+.TP
+.B \-funroll\-all\-loops
+Perform the optimization of loop unrolling.  This is done for all loops.
+This usually makes programs run more slowly.
+.TP
+.B \-fcse\-follow\-jumps
+In common subexpression elimination, scan through jump instructions
+when the target of the jump is not reached by any other path.  For
+example, when CSE encounters an \c
+.B if\c
+\& statement with an
+.B else\c
+\& clause, CSE will follow the jump when the condition
+tested is false.
+.TP
+.B \-fcse\-skip\-blocks
+This is similar to `\|\c
+.B \-fcse\-follow\-jumps\c
+\&\|', but causes CSE to
+follow jumps which conditionally skip over blocks.  When CSE
+encounters a simple \c
+.B if\c
+\& statement with no else clause,
+`\|\c
+.B \-fcse\-skip\-blocks\c
+\&\|' causes CSE to follow the jump around the
+body of the \c
+.B if\c
+\&.
+.TP
+.B \-frerun\-cse\-after\-loop
+Re-run common subexpression elimination after loop optimizations has been
+performed.
+.TP
+.B \-felide\-constructors
+Elide constructors when this seems plausible (C++ only).  With this
+flag, GNU C++ initializes \c
+.B y\c
+\& directly from the call to \c
+.B foo
+without going through a temporary in the following code:
+.Sp
+A foo ();
+A y = foo ();
+.Sp
+Without this option, GNU C++ first initializes \c
+.B y\c
+\& by calling the
+appropriate constructor for type \c
+.B A\c
+\&; then assigns the result of
+.B foo\c
+\& to a temporary; and, finally, replaces the initial value of
+`\|\c
+.B y\c
+\&\|' with the temporary.
+.Sp
+The default behavior (`\|\c
+.B \-fno\-elide\-constructors\c
+\&\|') is specified by
+the draft ANSI C++ standard.  If your program's constructors have side
+effects, using `\|\c
+.B \-felide-constructors\c
+\&\|' can make your program act
+differently, since some constructor calls may be omitted.
+.TP
+.B \-fexpensive\-optimizations
+Perform a number of minor optimizations that are relatively expensive.
+.TP
+.B \-fdelayed\-branch
+If supported for the target machine, attempt to reorder instructions
+to exploit instruction slots available after delayed branch
+instructions.
+.TP
+.B \-fschedule\-insns
+If supported for the target machine, attempt to reorder instructions to
+eliminate execution stalls due to required data being unavailable.  This
+helps machines that have slow floating point or memory load instructions
+by allowing other instructions to be issued until the result of the load
+or floating point instruction is required.
+.TP
+.B \-fschedule\-insns2
+Similar to `\|\c
+.B \-fschedule\-insns\c
+\&\|', but requests an additional pass of
+instruction scheduling after register allocation has been done.  This is
+especially useful on machines with a relatively small number of
+registers and where memory load instructions take more than one cycle.
+.SH TARGET OPTIONS
+By default, GNU CC compiles code for the same type of machine that you
+are using.  However, it can also be installed as a cross-compiler, to
+compile for some other type of machine.  In fact, several different
+configurations of GNU CC, for different target machines, can be
+installed side by side.  Then you specify which one to use with the
+`\|\c
+.B \-b\c
+\&\|' option.
+.PP
+In addition, older and newer versions of GNU CC can be installed side
+by side.  One of them (probably the newest) will be the default, but
+you may sometimes wish to use another.
+.TP
+.BI "\-b " "machine"
+The argument \c
+.I machine\c
+\& specifies the target machine for compilation.
+This is useful when you have installed GNU CC as a cross-compiler.
+.Sp
+The value to use for \c
+.I machine\c
+\& is the same as was specified as the
+machine type when configuring GNU CC as a cross-compiler.  For
+example, if a cross-compiler was configured with `\|\c
+.B configure
+i386v\c
+\&\|', meaning to compile for an 80386 running System V, then you
+would specify `\|\c
+.B \-b i386v\c
+\&\|' to run that cross compiler.
+.Sp
+When you do not specify `\|\c
+.B \-b\c
+\&\|', it normally means to compile for
+the same type of machine that you are using.
+.TP
+.BI "\-V " "version"
+The argument \c
+.I version\c
+\& specifies which version of GNU CC to run.
+This is useful when multiple versions are installed.  For example,
+.I version\c
+\& might be `\|\c
+.B 2.0\c
+\&\|', meaning to run GNU CC version 2.0.
+.Sp
+The default version, when you do not specify `\|\c
+.B \-V\c
+\&\|', is controlled
+by the way GNU CC is installed.  Normally, it will be a version that
+is recommended for general use.
+.SH MACHINE DEPENDENT OPTIONS
+Each of the target machine types can have its own special options,
+starting with `\|\c
+.B \-m\c
+\&\|', to choose among various hardware models or
+configurations\(em\&for example, 68010 vs 68020, floating coprocessor or
+none.  A single installed version of the compiler can compile for any
+model or configuration, according to the options specified.
+.PP
+Some configurations of the compiler also support additional special
+options, usually for command-line compatibility with other compilers on
+the same platform.
+.PP
+These are the `\|\c
+.B \-m\c
+\&\|' options defined for the 68000 series:
+.TP
+.B \-m68000
+.TP
+.B \-mc68000
+Generate output for a 68000.  This is the default when the compiler is
+configured for 68000-based systems.
+.TP
+.B \-m68020
+.TP
+.B \-mc68020
+Generate output for a 68020 (rather than a 68000).  This is the
+default when the compiler is configured for 68020-based systems.
+.TP
+.B \-m68881
+Generate output containing 68881 instructions for floating point.
+This is the default for most 68020-based systems unless
+.B \-nfp
+was specified when the compiler was configured.
+.TP
+.B \-m68030
+Generate output for a 68030.  This is the default when the compiler is
+configured for 68030-based systems.
+.TP
+.B \-m68040
+Generate output for a 68040.  This is the default when the compiler is
+configured for 68040-based systems.
+.TP
+.B \-m68020\-40
+Generate output for a 68040, without using any of the new instructions.
+This results in code which can run relatively efficiently on either a
+68020/68881 or a 68030 or a 68040.
+.TP
+.B \-mfpa
+Generate output containing Sun FPA instructions for floating point.
+.TP
+.B \-msoft\-float
+Generate output containing library calls for floating point.
+.I
+WARNING:
+the requisite libraries are not part of GNU CC.  Normally the
+facilities of the machine's usual C compiler are used, but this can't
+be done directly in cross-compilation.  You must make your own
+arrangements to provide suitable library functions for cross-compilation.
+.TP
+.B \-mshort
+Consider type \c
+.B int\c
+\& to be 16 bits wide, like \c
+.B short int\c
+\&.
+.TP
+.B \-mnobitfield
+Do not use the bit-field instructions.  `\|\c
+.B \-m68000\c
+\&\|' implies
+`\|\c
+.B \-mnobitfield\c
+\&\|'.
+.TP
+.B \-mbitfield
+Do use the bit-field instructions.  `\|\c
+.B \-m68020\c
+\&\|' implies
+`\|\c
+.B \-mbitfield\c
+\&\|'.  This is the default if you use the unmodified
+sources.
+.TP
+.B \-mrtd
+Use a different function-calling convention, in which functions
+that take a fixed number of arguments return with the \c
+.B rtd
+instruction, which pops their arguments while returning.  This
+saves one instruction in the caller since there is no need to pop
+the arguments there.
+.Sp
+This calling convention is incompatible with the one normally
+used on Unix, so you cannot use it if you need to call libraries
+compiled with the Unix compiler.
+.Sp
+Also, you must provide function prototypes for all functions that
+take variable numbers of arguments (including \c
+.B printf\c
+\&);
+otherwise incorrect code will be generated for calls to those
+functions.
+.Sp
+In addition, seriously incorrect code will result if you call a
+function with too many arguments.  (Normally, extra arguments are
+harmlessly ignored.)
+.Sp
+The \c
+.B rtd\c
+\& instruction is supported by the 68010 and 68020
+processors, but not by the 68000.
+.PP
+These `\|\c
+.B \-m\c
+\&\|' options are defined for the Vax:
+.TP
+.B \-munix
+Do not output certain jump instructions (\c
+.B aobleq\c
+\& and so on)
+that the Unix assembler for the Vax cannot handle across long
+ranges.
+.TP
+.B \-mgnu
+Do output those jump instructions, on the assumption that you
+will assemble with the GNU assembler.
+.TP
+.B \-mg
+Output code for g-format floating point numbers instead of d-format.
+.PP
+These `\|\c
+.B \-m\c
+\&\|' switches are supported on the SPARC:
+.PP
+.B \-mfpu
+.TP
+.B \-mhard\-float
+Generate output containing floating point instructions.  This is the
+default.
+.PP
+.B \-mno\-fpu
+.TP
+.B \-msoft\-float
+Generate output containing library calls for floating point.
+.I Warning:
+there is no GNU floating-point library for SPARC.
+Normally the facilities of the machine's usual C compiler are used, but
+this cannot be done directly in cross-compilation.  You must make your
+own arrangements to provide suitable library functions for
+cross-compilation.
+.Sp
+.B \-msoft\-float
+changes the calling convention in the output file;
+therefore, it is only useful if you compile
+.I all
+of a program with this option.
+.PP
+.B \-mno\-epilogue
+.TP
+.B \-mepilogue
+With
+.B \-mepilogue
+(the default), the compiler always emits code for
+function exit at the end of each function.  Any function exit in
+the middle of the function (such as a return statement in C) will
+generate a jump to the exit code at the end of the function.
+.Sp
+With
+.BR \-mno\-epilogue ,
+the compiler tries to emit exit code inline at every function exit.
+.PP
+.B \-mno\-v8
+.TP
+.B \-mv8
+.TP
+.B \-msparclite
+These three options select variations on the SPARC architecture.
+.Sp
+By default (unless specifically configured for the Fujitsu SPARClite),
+GCC generates code for the v7 variant of the SPARC architecture.
+.Sp
+.B \-mv8
+will give you SPARC v8 code.  The only difference from v7
+code is that the compiler emits the integer multiply and integer
+divide instructions which exist in SPARC v8 but not in SPARC v7.
+.Sp
+.B \-msparclite
+will give you SPARClite code.  This adds the integer
+multiply, integer divide step and scan (ffs) instructions which
+exist in SPARClite but not in SPARC v7.
+.PP
+.B \-mcypress
+.TP
+.B \-msupersparc
+These two options select the processor for which the code is optimised.
+.Sp
+With
+.B \-mcypress
+(the default), the compiler optimises code for the Cypress CY7C602 chip, as
+used in the SparcStation/SparcServer 3xx series. This is also appropriate for
+the older SparcStation 1, 2, IPX etc.
+.Sp
+With
+.B \-msupersparc
+the compiler optimises code for the SuperSparc cpu, as used in the SparcStation
+10, 1000 and 2000 series. This flag also enables use of the full SPARC v8
+instruction set.
+.PP
+These `\|\c
+.B \-m\c
+\&\|' options are defined for the Convex:
+.TP
+.B \-mc1
+Generate output for a C1.  This is the default when the compiler is
+configured for a C1.
+.TP
+.B \-mc2
+Generate output for a C2.  This is the default when the compiler is
+configured for a C2.
+.TP
+.B \-margcount
+Generate code which puts an argument count in the word preceding each
+argument list.  Some nonportable Convex and Vax programs need this word.
+(Debuggers don't, except for functions with variable-length argument
+lists; this info is in the symbol table.)
+.TP
+.B \-mnoargcount
+Omit the argument count word.  This is the default if you use the
+unmodified sources.
+.PP
+These `\|\c
+.B \-m\c
+\&\|' options are defined for the AMD Am29000:
+.TP
+.B \-mdw
+Generate code that assumes the DW bit is set, i.e., that byte and
+halfword operations are directly supported by the hardware.  This is the
+default.
+.TP
+.B \-mnodw
+Generate code that assumes the DW bit is not set.
+.TP
+.B \-mbw
+Generate code that assumes the system supports byte and halfword write
+operations.  This is the default.
+.TP
+.B \-mnbw
+Generate code that assumes the systems does not support byte and
+halfword write operations.  This implies `\|\c
+.B \-mnodw\c
+\&\|'.
+.TP
+.B \-msmall
+Use a small memory model that assumes that all function addresses are
+either within a single 256 KB segment or at an absolute address of less
+than 256K.  This allows the \c
+.B call\c
+\& instruction to be used instead
+of a \c
+.B const\c
+\&, \c
+.B consth\c
+\&, \c
+.B calli\c
+\& sequence.
+.TP
+.B \-mlarge
+Do not assume that the \c
+.B call\c
+\& instruction can be used; this is the
+default.
+.TP
+.B \-m29050
+Generate code for the Am29050.
+.TP
+.B \-m29000
+Generate code for the Am29000.  This is the default.
+.TP
+.B \-mkernel\-registers
+Generate references to registers \c
+.B gr64-gr95\c
+\& instead of
+.B gr96-gr127\c
+\&.  This option can be used when compiling kernel code
+that wants a set of global registers disjoint from that used by
+user-mode code.
+.Sp
+Note that when this option is used, register names in `\|\c
+.B \-f\c
+\&\|' flags
+must use the normal, user-mode, names.
+.TP
+.B \-muser\-registers
+Use the normal set of global registers, \c
+.B gr96-gr127\c
+\&.  This is the
+default.
+.TP
+.B \-mstack\-check
+Insert a call to \c
+.B _\|_msp_check\c
+\& after each stack adjustment.  This
+is often used for kernel code.
+.PP
+These `\|\c
+.B \-m\c
+\&\|' options are defined for Motorola 88K architectures:
+.TP
+.B \-m88000
+Generate code that works well on both the m88100 and the
+m88110.
+.TP
+.B \-m88100
+Generate code that works best for the m88100, but that also
+runs on the m88110.
+.TP
+.B \-m88110
+Generate code that works best for the m88110, and may not run
+on the m88100.
+.TP
+.B \-midentify\-revision
+Include an \c
+.B ident\c
+\& directive in the assembler output recording the
+source file name, compiler name and version, timestamp, and compilation
+flags used.
+.TP
+.B \-mno\-underscores
+In assembler output, emit symbol names without adding an underscore
+character at the beginning of each name.  The default is to use an
+underscore as prefix on each name.
+.TP
+.B \-mno\-check\-zero\-division
+.TP
+.B \-mcheck\-zero\-division
+Early models of the 88K architecture had problems with division by zero;
+in particular, many of them didn't trap.  Use these options to avoid
+including (or to include explicitly) additional code to detect division
+by zero and signal an exception.  All GCC configurations for the 88K use
+`\|\c
+.B \-mcheck\-zero\-division\c
+\&\|' by default.
+.TP
+.B \-mocs\-debug\-info
+.TP
+.B \-mno\-ocs\-debug\-info
+Include (or omit) additional debugging information (about
+registers used in each stack frame) as specified in the 88Open Object
+Compatibility Standard, \*(lqOCS\*(rq.  This extra information is not needed
+by GDB.  The default for DG/UX, SVr4, and Delta 88 SVr3.2 is to
+include this information; other 88k configurations omit this information
+by default.
+.TP
+.B \-mocs\-frame\-position
+.TP
+.B \-mno\-ocs\-frame\-position
+Force (or do not require) register values to be stored in a particular
+place in stack frames, as specified in OCS.  The DG/UX, Delta88 SVr3.2,
+and BCS configurations use `\|\c
+.B \-mocs\-frame\-position\c
+\&\|'; other 88k
+configurations have the default `\|\c
+.B \-mno\-ocs\-frame\-position\c
+\&\|'.
+.TP
+.B \-moptimize\-arg\-area
+.TP
+.B \-mno\-optimize\-arg\-area
+Control how to store function arguments in stack frames.
+`\|\c
+.B \-moptimize\-arg\-area\c
+\&\|' saves space, but may break some
+debuggers (not GDB).  `\|\c
+.B \-mno\-optimize\-arg\-area\c
+\&\|' conforms better to
+standards.   By default GCC does not optimize the argument area.
+.TP
+.BI "\-mshort\-data\-" "num"
+.I num
+Generate smaller data references by making them relative to \c
+.B r0\c
+\&,
+which allows loading a value using a single instruction (rather than the
+usual two).  You control which data references are affected by
+specifying \c
+.I num\c
+\& with this option.  For example, if you specify
+`\|\c
+.B \-mshort\-data\-512\c
+\&\|', then the data references affected are those
+involving displacements of less than 512 bytes.
+`\|\c
+.B \-mshort\-data\-\c
+.I num\c
+\&\c
+\&\|' is not effective for \c
+.I num\c
+\& greater
+than 64K.
+.PP
+.B \-mserialize-volatile
+.TP
+.B \-mno-serialize-volatile
+Do, or do not, generate code to guarantee sequential consistency of
+volatile memory references.
+.Sp
+GNU CC always guarantees consistency by default, for the preferred
+processor submodel.  How this is done depends on the submodel.
+.Sp
+The m88100 processor does not reorder memory references and so always
+provides sequential consistency.  If you use `\|\c
+.B \-m88100\c
+\&\|', GNU CC does
+not generate any special instructions for sequential consistency.
+.Sp
+The order of memory references made by the m88110 processor does not
+always match the order of the instructions requesting those references.
+In particular, a load instruction may execute before a preceding store
+instruction.  Such reordering violates sequential consistency of
+volatile memory references, when there are multiple processors.  When
+you use `\|\c
+.B \-m88000\c
+\&\|' or `\|\c
+.B \-m88110\c
+\&\|', GNU CC generates special
+instructions when appropriate, to force execution in the proper order.
+.Sp
+The extra code generated to guarantee consistency may affect the
+performance of your application.  If you know that you can safely forgo
+this guarantee, you may use the option `\|\c
+.B \-mno-serialize-volatile\c
+\&\|'.
+.Sp
+If you use the `\|\c
+.B \-m88100\c
+\&\|' option but require sequential consistency
+when running on the m88110 processor, you should use
+`\|\c
+.B \-mserialize-volatile\c
+\&\|'.
+.PP
+.B \-msvr4
+.TP
+.B \-msvr3
+Turn on (`\|\c
+.B \-msvr4\c
+\&\|') or off (`\|\c
+.B \-msvr3\c
+\&\|') compiler extensions
+related to System V release 4 (SVr4).  This controls the following:
+.TP
+\ \ \ \(bu
+Which variant of the assembler syntax to emit (which you can select
+independently using `\|\c
+.B \-mversion\-03.00\c
+\&\|').
+.TP
+\ \ \ \(bu
+`\|\c
+.B \-msvr4\c
+\&\|' makes the C preprocessor recognize `\|\c
+.B #pragma weak\c
+\&\|'
+.TP
+\ \ \ \(bu
+`\|\c
+.B \-msvr4\c
+\&\|' makes GCC issue additional declaration directives used in
+SVr4.
+.PP
+`\|\c
+.B \-msvr3\c
+\&\|' is the default for all m88K configurations except
+the SVr4 configuration.
+.TP
+.B \-mtrap\-large\-shift
+.TP
+.B \-mhandle\-large\-shift
+Include code to detect bit-shifts of more than 31 bits; respectively,
+trap such shifts or emit code to handle them properly.  By default GCC
+makes no special provision for large bit shifts.
+.TP
+.B \-muse\-div\-instruction
+Very early models of the 88K architecture didn't have a divide
+instruction, so GCC avoids that instruction by default.  Use this option
+to specify that it's safe to use the divide instruction.
+.TP
+.B \-mversion\-03.00
+In the DG/UX configuration, there are two flavors of SVr4.  This option
+modifies
+.B \-msvr4
+to select whether the hybrid-COFF or real-ELF
+flavor is used.  All other configurations ignore this option.
+.TP
+.B \-mwarn\-passed\-structs
+Warn when a function passes a struct as an argument or result.
+Structure-passing conventions have changed during the evolution of the C
+language, and are often the source of portability problems.  By default,
+GCC issues no such warning.
+.PP
+These options are defined for the IBM RS6000:
+.PP
+.B \-mfp\-in\-toc
+.TP
+.B \-mno\-fp\-in\-toc
+Control whether or not floating-point constants go in the Table of
+Contents (TOC), a table of all global variable and function addresses.  By
+default GCC puts floating-point constants there; if the TOC overflows,
+`\|\c
+.B \-mno\-fp\-in\-toc\c
+\&\|' will reduce the size of the TOC, which may avoid
+the overflow.
+.PP
+These `\|\c
+.B \-m\c
+\&\|' options are defined for the IBM RT PC:
+.TP
+.B \-min\-line\-mul
+Use an in-line code sequence for integer multiplies.  This is the
+default.
+.TP
+.B \-mcall\-lib\-mul
+Call \c
+.B lmul$$\c
+\& for integer multiples.
+.TP
+.B \-mfull\-fp\-blocks
+Generate full-size floating point data blocks, including the minimum
+amount of scratch space recommended by IBM.  This is the default.
+.TP
+.B \-mminimum\-fp\-blocks
+Do not include extra scratch space in floating point data blocks.  This
+results in smaller code, but slower execution, since scratch space must
+be allocated dynamically.
+.TP
+.B \-mfp\-arg\-in\-fpregs
+Use a calling sequence incompatible with the IBM calling convention in
+which floating point arguments are passed in floating point registers.
+Note that \c
+.B varargs.h\c
+\& and \c
+.B stdargs.h\c
+\& will not work with
+floating point operands if this option is specified.
+.TP
+.B \-mfp\-arg\-in\-gregs
+Use the normal calling convention for floating point arguments.  This is
+the default.
+.TP
+.B \-mhc\-struct\-return
+Return structures of more than one word in memory, rather than in a
+register.  This provides compatibility with the MetaWare HighC (hc)
+compiler.  Use `\|\c
+.B \-fpcc\-struct\-return\c
+\&\|' for compatibility with the
+Portable C Compiler (pcc).
+.TP
+.B \-mnohc\-struct\-return
+Return some structures of more than one word in registers, when
+convenient.  This is the default.  For compatibility with the
+IBM-supplied compilers, use either `\|\c
+.B \-fpcc\-struct\-return\c
+\&\|' or
+`\|\c
+.B \-mhc\-struct\-return\c
+\&\|'.
+.PP
+These `\|\c
+.B \-m\c
+\&\|' options are defined for the MIPS family of computers:
+.TP
+.BI "\-mcpu=" "cpu-type"
+Assume the defaults for the machine type
+.I cpu-type
+when
+scheduling instructions.  The default
+.I cpu-type
+is
+.BR default ,
+which picks the longest cycles times for any of the machines, in order
+that the code run at reasonable rates on all MIPS cpu's.  Other
+choices for
+.I cpu-type
+are
+.BR r2000 ,
+.BR r3000 ,
+.BR r4000 ,
+and
+.BR r6000 .
+While picking a specific
+.I cpu-type
+will schedule things appropriately for that particular chip, the
+compiler will not generate any code that does not meet level 1 of the
+MIPS ISA (instruction set architecture) without the
+.B \-mips2
+or
+.B \-mips3
+switches being used.
+.TP
+.B \-mips2
+Issue instructions from level 2 of the MIPS ISA (branch likely, square
+root instructions).  The
+.B \-mcpu=r4000
+or
+.B \-mcpu=r6000
+switch must be used in conjunction with
+.BR \-mips2 .
+.TP
+.B \-mips3
+Issue instructions from level 3 of the MIPS ISA (64 bit instructions).
+The
+.B \-mcpu=r4000
+switch must be used in conjunction with
+.BR \-mips2 .
+.TP
+.B \-mint64
+.TP
+.B \-mlong64
+.TP
+.B \-mlonglong128
+These options don't work at present.
+.TP
+.B \-mmips\-as
+Generate code for the MIPS assembler, and invoke
+.B mips\-tfile
+to add normal debug information.  This is the default for all
+platforms except for the OSF/1 reference platform, using the OSF/rose
+object format.  If any of the
+.BR \-ggdb ,
+.BR \-gstabs ,
+or
+.B \-gstabs+
+switches are used, the
+.B mips\-tfile
+program will encapsulate the stabs within MIPS ECOFF.
+.TP
+.B \-mgas
+Generate code for the GNU assembler.  This is the default on the OSF/1
+reference platform, using the OSF/rose object format.
+.TP
+.B \-mrnames
+.TP
+.B \-mno\-rnames
+The
+.B \-mrnames
+switch says to output code using the MIPS software names for the
+registers, instead of the hardware names (ie,
+.B a0
+instead of
+.BR $4 ).
+The GNU assembler does not support the
+.B \-mrnames
+switch, and the MIPS assembler will be instructed to run the MIPS C
+preprocessor over the source file.  The
+.B \-mno\-rnames
+switch is default.
+.TP
+.B \-mgpopt
+.TP
+.B \-mno\-gpopt
+The
+.B \-mgpopt
+switch says to write all of the data declarations before the
+instructions in the text section, to all the MIPS assembler to
+generate one word memory references instead of using two words for
+short global or static data items.  This is on by default if
+optimization is selected.
+.TP
+.B \-mstats
+.TP
+.B \-mno\-stats
+For each non-inline function processed, the
+.B \-mstats
+switch causes the compiler to emit one line to the standard error file
+to print statistics about the program (number of registers saved,
+stack size, etc.).
+.TP
+.B \-mmemcpy
+.TP
+.B \-mno\-memcpy
+The
+.B \-mmemcpy
+switch makes all block moves call the appropriate string function
+.RB ( memcpy
+or
+.BR bcopy )
+instead of possibly generating inline code.
+.TP
+.B \-mmips\-tfile
+.TP
+.B \-mno\-mips\-tfile
+The
+.B \-mno\-mips\-tfile
+switch causes the compiler not postprocess the object file with the
+.B mips\-tfile
+program, after the MIPS assembler has generated it to add debug
+support.  If
+.B mips\-tfile
+is not run, then no local variables will be available to the debugger.
+In addition,
+.B stage2
+and
+.B stage3
+objects will have the temporary file names passed to the assembler
+embedded in the object file, which means the objects will not compare
+the same.
+.TP
+.B \-msoft\-float
+Generate output containing library calls for floating point.
+.I
+WARNING:
+the requisite libraries are not part of GNU CC.  Normally the
+facilities of the machine's usual C compiler are used, but this can't
+be done directly in cross-compilation.  You must make your own
+arrangements to provide suitable library functions for cross-compilation.
+.TP
+.B \-mhard\-float
+Generate output containing floating point instructions.  This is the
+default if you use the unmodified sources.
+.TP
+.B \-mfp64
+Assume that the
+.B FR
+bit in the status word is on, and that there are 32 64-bit floating
+point registers, instead of 32 32-bit floating point registers.  You
+must also specify the
+.B \-mcpu=r4000
+and
+.B \-mips3
+switches.
+.TP
+.B \-mfp32
+Assume that there are 32 32-bit floating point registers.  This is the
+default.
+.PP
+.B \-mabicalls
+.TP
+.B \-mno\-abicalls
+Emit (or do not emit) the
+.BR \&.abicalls ,
+.BR \&.cpload ,
+and
+.B \&.cprestore
+pseudo operations that some System V.4 ports use for position
+independent code.
+.TP
+.B \-mhalf\-pic
+.TP
+.B \-mno\-half\-pic
+The
+.B \-mhalf\-pic
+switch says to put pointers to extern references into the data section
+and load them up, rather than put the references in the text section.
+This option does not work at present.
+.B
+.BI \-G num
+Put global and static items less than or equal to
+.I num
+bytes into the small data or bss sections instead of the normal data
+or bss section.  This allows the assembler to emit one word memory
+reference instructions based on the global pointer
+.RB ( gp
+or
+.BR $28 ),
+instead of the normal two words used.  By default,
+.I num
+is 8 when the MIPS assembler is used, and 0 when the GNU
+assembler is used.  The
+.BI \-G num
+switch is also passed to the assembler and linker.  All modules should
+be compiled with the same
+.BI \-G num
+value.
+.TP
+.B \-nocpp
+Tell the MIPS assembler to not run it's preprocessor over user
+assembler files (with a `\|\c
+.B .s\c
+\&\|' suffix) when assembling them.
+.PP
+These `\|\c
+.B \-m\c
+\&\|' options are defined for the Intel 80386 family of computers:
+.B \-m486
+.TP
+.B \-mno\-486
+Control whether or not code is optimized for a 486 instead of an
+386.  Code generated for a 486 will run on a 386 and vice versa.
+.TP
+.B \-msoft\-float
+Generate output containing library calls for floating point.
+.I Warning:
+the requisite libraries are not part of GNU CC.
+Normally the facilities of the machine's usual C compiler are used, but
+this can't be done directly in cross-compilation.  You must make your
+own arrangements to provide suitable library functions for
+cross-compilation.
+.Sp
+On machines where a function returns floating point results in the 80387
+register stack, some floating point opcodes may be emitted even if
+`\|\c
+.B \-msoft-float\c
+\&\|' is used.
+.TP
+.B \-mno-fp-ret-in-387
+Do not use the FPU registers for return values of functions.
+.Sp
+The usual calling convention has functions return values of types
+.B float\c
+\& and \c
+.B double\c
+\& in an FPU register, even if there
+is no FPU.  The idea is that the operating system should emulate
+an FPU.
+.Sp
+The option `\|\c
+.B \-mno-fp-ret-in-387\c
+\&\|' causes such values to be returned
+in ordinary CPU registers instead.
+.PP
+These `\|\c
+.B \-m\c
+\&\|' options are defined for the HPPA family of computers:
+.TP
+.B \-mpa-risc-1-0
+Generate code for a PA 1.0 processor.
+.TP
+.B \-mpa-risc-1-1
+Generate code for a PA 1.1 processor.
+.TP
+.B \-mkernel
+Generate code which is suitable for use in kernels.  Specifically, avoid
+.B add\c
+\& instructions in which one of the arguments is the DP register;
+generate \c
+.B addil\c
+\& instructions instead.  This avoids a rather serious
+bug in the HP-UX linker.
+.TP
+.B \-mshared-libs
+Generate code that can be linked against HP-UX shared libraries.  This option
+is not fully function yet, and is not on by default for any PA target.  Using
+this option can cause incorrect code to be generated by the compiler.
+.TP
+.B \-mno-shared-libs
+Don't generate code that will be linked against shared libraries.  This is
+the default for all PA targets.
+.TP
+.B \-mlong-calls
+Generate code which allows calls to functions greater than 256K away from
+the caller when the caller and callee are in the same source file.  Do
+not turn this option on unless code refuses to link with \*(lqbranch out of
+range errors\*('' from the linker.
+.TP
+.B \-mdisable-fpregs
+Prevent floating point registers from being used in any manner.  This is
+necessary for compiling kernels which perform lazy context switching of
+floating point registers.  If you use this option and attempt to perform
+floating point operations, the compiler will abort.
+.TP
+.B \-mdisable-indexing
+Prevent the compiler from using indexing address modes.  This avoids some
+rather obscure problems when compiling MIG generated code under MACH.
+.TP
+.B \-mtrailing-colon
+Add a colon to the end of label definitions (for ELF assemblers).
+.PP
+These `\|\c
+.B \-m\c
+\&\|' options are defined for the Intel 80960 family of computers:
+.TP
+.BI "\-m" "cpu-type"
+Assume the defaults for the machine type
+.I cpu-type
+for instruction and addressing-mode availability and alignment.
+The default
+.I cpu-type
+is
+.BR kb ;
+other choices are
+.BR ka ,
+.BR mc ,
+.BR ca ,
+.BR cf ,
+.BR sa ,
+and
+.BR sb .
+.TP
+.B \-mnumerics
+.TP
+.B \-msoft\-float
+The
+.B \-mnumerics
+option indicates that the processor does support
+floating-point instructions.  The
+.B \-msoft\-float
+option indicates
+that floating-point support should not be assumed.
+.TP
+.B \-mleaf\-procedures
+.TP
+.B \-mno\-leaf\-procedures
+Do (or do not) attempt to alter leaf procedures to be callable with the
+.I bal
+instruction as well as
+.IR call .
+This will result in more
+efficient code for explicit calls when the
+.I bal
+instruction can be
+substituted by the assembler or linker, but less efficient code in other
+cases, such as calls via function pointers, or using a linker that doesn't
+support this optimization.
+.TP
+.B \-mtail\-call
+.TP
+.B \-mno\-tail\-call
+Do (or do not) make additional attempts (beyond those of the
+machine-independent portions of the compiler) to optimize tail-recursive
+calls into branches.  You may not want to do this because the detection of
+cases where this is not valid is not totally complete.  The default is
+.BR \-mno\-tail\-call .
+.TP
+.B \-mcomplex\-addr
+.TP
+.B \-mno\-complex\-addr
+Assume (or do not assume) that the use of a complex addressing mode is a
+win on this implementation of the i960.  Complex addressing modes may not
+be worthwhile on the K-series, but they definitely are on the C-series.
+The default is currently
+.B \-mcomplex\-addr
+for all processors except
+the CB and CC.
+.TP
+.B \-mcode\-align
+.TP
+.B \-mno\-code\-align
+Align code to 8-byte boundaries for faster fetching (or don't bother).
+Currently turned on by default for C-series implementations only.
+.TP
+.B \-mic\-compat
+.TP
+.B \-mic2.0\-compat
+.TP
+.B \-mic3.0\-compat
+Enable compatibility with iC960 v2.0 or v3.0.
+.TP
+.B \-masm\-compat
+.TP
+.B \-mintel\-asm
+Enable compatibility with the iC960 assembler.
+.TP
+.B \-mstrict\-align
+.TP
+.B \-mno\-strict\-align
+Do not permit (do permit) unaligned accesses.
+.TP
+.B \-mold\-align
+Enable structure-alignment compatibility with Intel's gcc release version
+1.3 (based on gcc 1.37).  Currently this is buggy in that
+.B #pragma align 1
+is always assumed as well, and cannot be turned off.
+.PP
+These `\|\c
+.B \-m\c
+\&\|' options are defined for the DEC Alpha implementations:
+.TP
+.B \-mno-soft-float
+.TP
+.B \-msoft-float
+Use (do not use) the hardware floating-point instructions for
+floating-point operations.  When \c
+.B \-msoft-float\c
+\& is specified,
+functions in `\|\c
+.B libgcc1.c\c
+\&\|' will be used to perform floating-point
+operations.  Unless they are replaced by routines that emulate the
+floating-point operations, or compiled in such a way as to call such
+emulations routines, these routines will issue floating-point
+operations.   If you are compiling for an Alpha without floating-point
+operations, you must ensure that the library is built so as not to call
+them.
+.Sp
+Note that Alpha implementations without floating-point operations are
+required to have floating-point registers.
+.TP
+.B \-mfp-reg
+.TP
+.B \-mno-fp-regs
+Generate code that uses (does not use) the floating-point register set.
+.B \-mno-fp-regs\c
+\& implies \c
+.B \-msoft-float\c
+\&.  If the floating-point
+register set is not used, floating point operands are passed in integer
+registers as if they were integers and floating-point results are passed
+in $0 instead of $f0.  This is a non-standard calling sequence, so any
+function with a floating-point argument or return value called by code
+compiled with \c
+.B \-mno-fp-regs\c
+\& must also be compiled with that
+option.
+.Sp
+A typical use of this option is building a kernel that does not use,
+and hence need not save and restore, any floating-point registers.
+.PP
+These additional options are available on System V Release 4 for
+compatibility with other compilers on those systems:
+.TP
+.B \-G
+On SVr4 systems, \c
+.B gcc\c
+\& accepts the option `\|\c
+.B \-G\c
+\&\|' (and passes
+it to the system linker), for compatibility with other compilers.
+However, we suggest you use `\|\c
+.B \-symbolic\c
+\&\|' or `\|\c
+.B \-shared\c
+\&\|' as
+appropriate, instead of supplying linker options on the \c
+.B gcc
+command line.
+.TP
+.B \-Qy
+Identify the versions of each tool used by the compiler, in a
+.B .ident\c
+\& assembler directive in the output.
+.TP
+.B \-Qn
+Refrain from adding \c
+.B .ident\c
+\& directives to the output file (this is
+the default).
+.TP
+.BI "\-YP," "dirs"
+Search the directories \c
+.I dirs\c
+\&, and no others, for libraries
+specified with `\|\c
+.B \-l\c
+\&\|'.  You can separate directory entries in
+.I dirs\c
+\& from one another with colons.
+.TP
+.BI "\-Ym," "dir"
+Look in the directory \c
+.I dir\c
+\& to find the M4 preprocessor.
+The assembler uses this option.
+.SH CODE GENERATION OPTIONS
+These machine-independent options control the interface conventions
+used in code generation.
+.PP
+Most of them begin with `\|\c
+\-f\c
+\&\|'.  These options have both positive and negative forms; the negative form
+of `\|\c
+.B \-ffoo\c
+\&\|' would be `\|\c
+.B \-fno\-foo\c
+\&\|'.  In the table below, only
+one of the forms is listed\(em\&the one which is not the default.  You
+can figure out the other form by either removing `\|\c
+.B no\-\c
+\&\|' or adding
+it.
+.TP
+.B \-fnonnull\-objects
+Assume that objects reached through references are not null
+(C++ only).
+.Sp
+Normally, GNU C++ makes conservative assumptions about objects reached
+through references.  For example, the compiler must check that \c
+.B a
+is not null in code like the following:
+.Sp
+obj &a = g ();
+a.f (2);
+.Sp
+Checking that references of this sort have non-null values requires
+extra code, however, and it is unnecessary for many programs.  You can
+use `\|\c
+.B \-fnonnull-objects\c
+\&\|' to omit the checks for null, if your
+program doesn't require checking.
+.TP
+.B \-fpcc\-struct\-return
+Use the same convention for returning \c
+.B struct\c
+\& and \c
+.B union
+values that is used by the usual C compiler on your system.  This
+convention is less efficient for small structures, and on many
+machines it fails to be reentrant; but it has the advantage of
+allowing intercallability between GCC-compiled code and PCC-compiled
+code.
+.TP
+.B \-freg\-struct\-return
+Use the convention that
+.B struct
+and
+.B union
+values are returned in registers when possible.  This is more
+efficient for small structures than
+.BR \-fpcc\-struct\-return .
+.Sp
+If you specify neither
+.B \-fpcc\-struct\-return
+nor
+.BR \-freg\-struct\-return ,
+GNU CC defaults to whichever convention is standard for the target.
+If there is no standard convention, GNU CC defaults to
+.BR \-fpcc\-struct\-return .
+.TP
+.B \-fshort\-enums
+Allocate to an \c
+.B enum\c
+\& type only as many bytes as it needs for the
+declared range of possible values.  Specifically, the \c
+.B enum\c
+\& type
+will be equivalent to the smallest integer type which has enough room.
+.TP
+.B \-fshort\-double
+Use the same size for
+.B double
+as for
+.B float
+\&.
+.TP
+.B \-fshared\-data
+Requests that the data and non-\c
+.B const\c
+\& variables of this
+compilation be shared data rather than private data.  The distinction
+makes sense only on certain operating systems, where shared data is
+shared between processes running the same program, while private data
+exists in one copy per process.
+.TP
+.B \-fno\-common
+Allocate even uninitialized global variables in the bss section of the
+object file, rather than generating them as common blocks.  This has the
+effect that if the same variable is declared (without \c
+.B extern\c
+\&) in
+two different compilations, you will get an error when you link them.
+The only reason this might be useful is if you wish to verify that the
+program will work on other systems which always work this way.
+.TP
+.B \-fno\-ident
+Ignore the `\|\c
+.B #ident\c
+\&\|' directive.
+.TP
+.B \-fno\-gnu\-linker
+Do not output global initializations (such as C++ constructors and
+destructors) in the form used by the GNU linker (on systems where the GNU
+linker is the standard method of handling them).  Use this option when
+you want to use a non-GNU linker, which also requires using the
+.B collect2\c
+\& program to make sure the system linker includes
+constructors and destructors.  (\c
+.B collect2\c
+\& is included in the GNU CC
+distribution.)  For systems which \c
+.I must\c
+\& use \c
+.B collect2\c
+\&, the
+compiler driver \c
+.B gcc\c
+\& is configured to do this automatically.
+.TP
+.B \-finhibit-size-directive
+Don't output a \c
+.B .size\c
+\& assembler directive, or anything else that
+would cause trouble if the function is split in the middle, and the
+two halves are placed at locations far apart in memory.  This option is
+used when compiling `\|\c
+.B crtstuff.c\c
+\&\|'; you should not need to use it
+for anything else.
+.TP
+.B \-fverbose-asm
+Put extra commentary information in the generated assembly code to
+make it more readable.  This option is generally only of use to those
+who actually need to read the generated assembly code (perhaps while
+debugging the compiler itself).
+.TP
+.B \-fvolatile
+Consider all memory references through pointers to be volatile.
+.TP
+.B \-fvolatile\-global
+Consider all memory references to extern and global data items to
+be volatile.
+.TP
+.B \-fpic
+If supported for the target machines, generate position-independent code,
+suitable for use in a shared library.
+.TP
+.B \-fPIC
+If supported for the target machine, emit position-independent code,
+suitable for dynamic linking, even if branches need large displacements.
+.TP
+.BI "\-ffixed\-" "reg"
+Treat the register named \c
+.I reg\c
+\& as a fixed register; generated code
+should never refer to it (except perhaps as a stack pointer, frame
+pointer or in some other fixed role).
+.Sp
+.I reg\c
+\& must be the name of a register.  The register names accepted
+are machine-specific and are defined in the \c
+.B REGISTER_NAMES
+macro in the machine description macro file.
+.Sp
+This flag does not have a negative form, because it specifies a
+three-way choice.
+.TP
+.BI "\-fcall\-used\-" "reg"
+Treat the register named \c
+.I reg\c
+\& as an allocatable register that is
+clobbered by function calls.  It may be allocated for temporaries or
+variables that do not live across a call.  Functions compiled this way
+will not save and restore the register \c
+.I reg\c
+\&.
+.Sp
+Use of this flag for a register that has a fixed pervasive role in the
+machine's execution model, such as the stack pointer or frame pointer,
+will produce disastrous results.
+.Sp
+This flag does not have a negative form, because it specifies a
+three-way choice.
+.TP
+.BI "\-fcall\-saved\-" "reg"
+Treat the register named \c
+.I reg\c
+\& as an allocatable register saved by
+functions.  It may be allocated even for temporaries or variables that
+live across a call.  Functions compiled this way will save and restore
+the register \c
+.I reg\c
+\& if they use it.
+.Sp
+Use of this flag for a register that has a fixed pervasive role in the
+machine's execution model, such as the stack pointer or frame pointer,
+will produce disastrous results.
+.Sp
+A different sort of disaster will result from the use of this flag for
+a register in which function values may be returned.
+.Sp
+This flag does not have a negative form, because it specifies a
+three-way choice.
+.SH PRAGMAS
+Two `\|\c
+.B #pragma\c
+\&\|' directives are supported for GNU C++, to permit using the same
+header file for two purposes: as a definition of interfaces to a given
+object class, and as the full definition of the contents of that object class.
+.TP
+.B #pragma interface
+(C++ only.)
+Use this directive in header files that define object classes, to save
+space in most of the object files that use those classes.  Normally,
+local copies of certain information (backup copies of inline member
+functions, debugging information, and the internal tables that
+implement virtual functions) must be kept in each object file that
+includes class definitions.  You can use this pragma to avoid such
+duplication.  When a header file containing `\|\c
+.B #pragma interface\c
+\&\|' is included in a compilation, this auxiliary information
+will not be generated (unless the main input source file itself uses
+`\|\c
+.B #pragma implementation\c
+\&\|').  Instead, the object files will contain references to be
+resolved at link time.
+.TP
+.B #pragma implementation
+.TP
+\fB#pragma implementation "\fP\fIobjects\fP\fB.h"\fP
+(C++ only.)
+Use this pragma in a main input file, when you want full output from
+included header files to be generated (and made globally visible).
+The included header file, in turn, should use `\|\c
+.B #pragma interface\c
+\&\|'.
+Backup copies of inline member functions, debugging information, and
+the internal tables used to implement virtual functions are all
+generated in implementation files.
+.Sp
+If you use `\|\c
+.B #pragma implementation\c
+\&\|' with no argument, it applies to an include file with the same
+basename as your source file; for example, in `\|\c
+.B allclass.cc\c
+\&\|', `\|\c
+.B #pragma implementation\c
+\&\|' by itself is equivalent to `\|\c
+.B
+#pragma implementation "allclass.h"\c
+\&\|'.  Use the string argument if you want a single implementation
+file to include code from multiple header files.
+.Sp
+There is no way to split up the contents of a single header file into
+multiple implementation files.
+.SH FILES
+.nf
+.ta \w'LIBDIR/g++\-include 'u
+file.c	C source file
+file.h	C header (preprocessor) file
+file.i	preprocessed C source file
+file.C	C++ source file
+file.cc	C++ source file
+file.cxx	C++ source file
+file.m	Objective-C source file
+file.s	assembly language file
+file.o	object file
+a.out	link edited output
+\fITMPDIR\fR/cc\(**	temporary files
+\fILIBDIR\fR/cpp	preprocessor
+\fILIBDIR\fR/cc1	compiler for C
+\fILIBDIR\fR/cc1plus	compiler for C++
+\fILIBDIR\fR/collect	linker front end needed on some machines
+\fILIBDIR\fR/libgcc.a	GCC subroutine library
+/lib/crt[01n].o	start-up routine
+\fILIBDIR\fR/ccrt0	additional start-up routine for C++
+/lib/libc.a	standard C library, see
+.IR intro (3)
+/usr/include	standard directory for \fB#include\fP files
+\fILIBDIR\fR/include	standard gcc directory for \fB#include\fP files
+\fILIBDIR\fR/g++\-include	additional g++ directory for \fB#include\fP
+.Sp
+.fi
+.I LIBDIR
+is usually
+.B /usr/local/lib/\c
+.IR machine / version .
+.br
+.I TMPDIR
+comes from the environment variable
+.B TMPDIR
+(default
+.B /usr/tmp
+if available, else
+.B /tmp\c
+\&).
+.SH "SEE ALSO"
+cpp(1), as(1), ld(1), gdb(1), adb(1), dbx(1), sdb(1).
+.br
+.RB "`\|" gcc "\|', `\|" cpp \|',
+.RB "`\|" as "\|', `\|" ld \|',
+and
+.RB `\| gdb \|'
+entries in
+.B info\c
+\&.
+.br
+.I
+Using and Porting GNU CC (for version 2.0)\c
+, Richard M. Stallman;
+.I
+The C Preprocessor\c
+, Richard M. Stallman;
+.I
+Debugging with GDB: the GNU Source-Level Debugger\c
+, Richard M. Stallman and Roland H. Pesch;
+.I
+Using as: the GNU Assembler\c
+, Dean Elsner, Jay Fenlason & friends;
+.I
+ld: the GNU linker\c
+, Steve Chamberlain and Roland Pesch.
+.SH BUGS
+For instructions on reporting bugs, see the GCC manual.
+.SH COPYING
+Copyright
+.if t \(co
+1991, 1992, 1993 Free Software Foundation, Inc.
+.PP
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+.PP
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+.PP
+Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be included in
+translations approved by the Free Software Foundation instead of in
+the original English.
+.SH AUTHORS
+See the GNU CC Manual for the contributors to GNU CC.
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 9680977..2027d28 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -4302,6 +4302,11 @@
     signal (SIGPIPE, fatal_error);
 #endif
 
+  { /* Warn users they are using developmental software.  */
+    static void snapshot_warning ();
+    snapshot_warning ();
+  }
+
   argbuf_length = 10;
   argbuf = (char **) xmalloc (argbuf_length * sizeof (char *));
 
@@ -5441,3 +5446,58 @@
       ++p;
     }
 }
+
+/* For snapshots only.
+   Warn the user that this version of gcc is for testing and developing only.
+   If this is unix, we can restrict the warning to once per day.
+   Otherwise always issue it.  */
+
+#define TIMESTAMP_FILE ".gcc-test-time"
+#define ONE_DAY (24*60*60)
+
+static void
+snapshot_warning ()
+{
+  char *home;
+  int print_p = 1;
+
+#ifdef unix
+  home = getenv ("HOME");
+  if (home != NULL)
+    {
+      char *file_name = (char *) alloca (strlen (home) + 1 + sizeof (TIMESTAMP_FILE));
+      struct stat statbuf;
+      time_t now = time (NULL);
+      int s;
+
+      sprintf (file_name, "%s/%s", home, TIMESTAMP_FILE);
+      s = stat (file_name, &statbuf);
+      if (s == 0
+	  && (statbuf.st_mtime + ONE_DAY > now))
+	print_p = 0;
+      else
+	{
+	  FILE *f;
+
+	  if ((f = fopen (file_name, "w")) == NULL)
+	    {
+	      /* Ensure we have write access.  */
+	      chmod (file_name, s == 0 ? (statbuf.st_mode + 0200) : 0644);
+	      f = fopen (file_name, "w");
+	    }
+	  if (f != NULL)
+	    {
+	      fputc ('\n', f);
+	      fclose (f);
+	    }
+	}
+    }
+#endif
+
+  if (print_p)
+    {
+      fprintf (stderr, "*** This is a development snapshot of GCC.\n");
+      fprintf (stderr, "*** It is not reliable release, and the GCC developers\n");
+      fprintf (stderr, "*** warn you not to use it for anything except to test it.\n");
+    }
+}
diff --git a/gcc/gcc.hlp b/gcc/gcc.hlp
new file mode 100644
index 0000000..7ba1264
--- /dev/null
+++ b/gcc/gcc.hlp
@@ -0,0 +1,406 @@
+1 GCC
+
+ The GCC command invokes the GNU C compiler.
+
+       GCC file-spec
+
+2 Parameters
+
+ file-spec
+
+ A C source file.  If no input file  extension  is  specified,  GNU  C
+ assumes  .C  as  the  default extension unless the /PLUS qualifier is
+ given, in which case .CC is assumed as the default extension.
+
+ If an extension of .CPP is given, then the source file is assumed  to
+ be  the  output of the preprocessor, and thus the preprocessor is not
+ executed.
+
+ If an extension of .S is given, then the source file is assumed to be
+ the  assembly  code output of the compiler, and only the assembler is
+ called to generate an object file.
+
+2 Qualifiers
+
+ GNU C command qualifiers modify the  way  the  compiler  handles  the
+ compilation.
+
+ The following is the list of available qualifiers for GNU C:
+
+       /CASE_HACK
+       /CC1_OPTIONS=(option [,option...]])
+       /DEBUG
+       /DEFINE=(identifier[=definition][,...])
+       /G_FLOAT
+       /INCLUDE_DIRECTORY=(path [,path...]])
+       /LIST[=filename]
+       /MACHINE_CODE
+       /OBJECT[=filename]
+       /OPTIMIZE
+       /PLUS
+       /PROFILE[=identifier]
+       /SCAN=(file[,file...])
+       /SHOW[=option]
+       /UNDEFINE=(identifier[,identifier,...])
+       /VERBOSE
+       /VERSION
+       /WARNING
+
+2 Linking
+
+ When linking programs compiled with GNU C, you should include the GNU
+ C library before the VAX C library.  For example,
+
+   LINK object-file,GNU_CC:[000000]GCCLIB/LIB,SYS$LIBRARY:VAXCRTL/LIB
+
+ You can also link your program with the shared VAX C  library.   This
+ can reduce the size of the .EXE file, as well as make it smaller when
+ it's running.  For example,
+
+   $ LINK object-file, GNU_CC:[000000]GCCLIB/LIB,SYS$INPUT/OPT
+   SYS$SHARE:VAXCRTL/SHARE
+
+ (If you use the second example and type it in by  hand,  be  sure  to
+ type ^Z after the last carriage return).  A simpler alternative would
+ be to place the single line:
+
+   SYS$SHARE:VAXCRTL/SHARE
+
+ into a file called VAXCRTL.OPT, and then use the link command:
+
+   $ LINK object-file, GNU_CC:[000000]GCCLIB/LIB,VAXCRTL.OPT/OPT
+
+ If a program has  been  compiled  with  /G_FLOAT,  then  the  linking
+ instructions  are  slightly  different.   If you are linking with the
+ non-shared library, then the command that you should use would be:
+
+   LINK object-file,GNU_CC:[000000]GCCLIB/LIB,SYS$LIBRARY:VAXCRTLG/LIB -
+                                ,SYS$LIBRARY:VAXCRTL/LIB
+
+ Note that both VAXCRTL and VAXCRTLG must be linked to.   If  you  are
+ using the shared VAX C library, then you should use a command like:
+
+   $ LINK object-file, GNU_CC:[000000]GCCLIB/LIB,SYS$INPUT:/OPTIONS
+   SYS$SHARE:VAXCRTLG/SHARE
+
+ In the case of the sharable library, only one  library  needs  to  be
+ linked to.
+
+ If you need to link to libg++, it  is  easiest  to  use  the  command
+ procedure supplied with libg++ to link your program.
+
+2 /CASE_HACK
+
+   /[NO]CASE_HACK      D=/CASE_HACK
+
+ Since the VMS Linker  and  Librarian  are  not  case  sensitive  with
+ respect  to  symbol names, a "case-hack" is appended to a symbol name
+ when the symbol contains upper case characters.
+
+ There are cases where this is undesirable, (mainly when using certain
+ applications  where modules have been precompiled, perhaps in another
+ language) and we want to compile  without  case  hacking.   In  these
+ cases the /NOCASE_HACK switch disables case hacking.
+
+2 /CC1_OPTIONS
+
+ This specifies additional  switches  to  the  compiler  itself  which
+ cannot be set by means of the compiler driver.
+
+2 /DEBUG
+
+ /DEBUG includes additional information in the object file  output  so
+ that the program can be debugged with the VAX Symbolic Debugger.
+
+ To use the debugger it is also necessary to link the debugger to your
+ program, which is done by specifying the /DEBUG qualifier to the link
+ command.  With the  debugger  it  is  possible  to  set  breakpoints,
+ examine  variables,  and  set  variables  to new values.  See the VAX
+ Symbolic Debugger manual for more information, or  type  "HELP"  from
+ the debugger prompt.
+
+2 /DEFINE
+
+ /DEFINE=(identifier[=definition][,...])
+
+ /DEFINE defines a string or macro ('definition')  to  be  substituted
+ for  every  occurrence of a given string ('identifier') in a program.
+ It is equivalent to the #define preprocessor directive.
+
+ All definitions and identifiers are  converted  to  uppercase  unless
+ they are in quotation marks.
+
+ The simple form of the /DEFINE qualifier:
+
+    /DEFINE=vms
+
+ results in a definition equivalent to the preprocessor directive:
+
+  #define VMS 1
+
+ You must enclose macro definitions in quotation  marks,  as  in  this
+ example:
+
+  /DEFINE="C(x)=((x) & 0xff)"
+
+ This definition is the same as the preprocessor definition:
+
+  #define C(x) ((x) & 0xff)
+
+ If more than one /DEFINE is present on the GCC command line, only the
+ last /DEFINE is used.
+
+ If both /DEFINE and /UNDEFINE are present on a command line,  /DEFINE
+ is evaluated before /UNDEFINE.
+
+2 /G_FLOAT
+
+ Instructs the compiler to use "G" floating point  arithmetic  instead
+ of  "D".   The  difference  is  that  double precision has a range of
+ approximately +/-0.56e-308 to +/-0.9  e+308,  with  approximately  15
+ decimal digits precision.
+
+ "D" floating point has the same range as  single  precision  floating
+ point, with approximately 17 decimal digits precision.
+
+ If you use the  /G_FLOAT  qualifier,  the  linking  instructions  are
+ different.  See "Linking" for further details.
+
+2 /LIST
+
+ /LIST[=list_file_name]
+
+ This does not generate a listing file in the usual sense, however  it
+ does  direct the compiler to save the preprocessor output.  If a file
+ is not specified, then this output is written into a  file  with  the
+ same name as the source file and an extension of .CPP.
+
+2 /INCLUDE_DIRECTORY
+
+  /INCLUDE_DIRECTORY=(path [,path...])
+
+ The /INCLUDE_DIRECTORY qualifier provides additional  directories  to
+ search  for  user-defined  include  files.   'path'  can  be either a
+ logical name or a directory specification.
+
+ There  are  two  forms  for  specifying  include  files  -   #include
+ "file-spec"  and  #include <file-spec>.  For the #include "file-spec"
+ form, the search order is:
+
+  1.  The directory containing the source file.
+
+  2.  The directories in the /INCLUDE qualifier (if any).
+
+  3.  The directory (or directories) specified in the logical name
+      GNU_CC_INCLUDE.
+
+  4.  The directory (or directories) specified in the logical name
+      SYS$LIBRARY.
+
+  For the #include <file-spec> form, the search order is:
+
+  1.  The directories specified in the /INCLUDE qualifier (if any).
+
+  2.  The directory (or directories) specified in the logical name
+      GNU_CC_INCLUDE.
+
+  3.  The directory (or directories) specified in the logical name
+      SYS$LIBRARY.
+
+2 /MACHINE_CODE
+
+ Tells GNU C to output the machine code  generated  by  the  compiler.
+ The  machine code is output to a file with the same name as the input
+ file, with the extension .S.  An  object  file  is  still  generated,
+ unless /NOOBJ is also specified.
+
+2 /OBJECT
+
+   /OBJECT[=filename]
+   /NOOBJECT
+
+        Controls whether or not an object file  is  generated  by  the
+ compiler.
+
+2 /OPTIMIZE
+
+ /[NO]OPTIMIZE
+
+ Controls whether optimization  is  performed  by  the  compiler.   By
+ default, optimization is on.  /NOOPTIMIZE turns optimization off.
+
+2 /PLUS
+
+ Instructs the compiler driver to use the GNU-C++ compiler instead  of
+ the  GNU-C compiler.  Note that the default extension of source files
+ is .CC when this qualifier is in effect.
+
+2 /PROFILE
+
+ /PROFILE[=identifier]
+
+ Instructs the compiler to generate function profiling code.  You must
+ link  your  program  to  the profiler when you use this options.  The
+ profile statistics are automatically  printed  out  on  the  terminal
+ during  image  exit.  (i.e.  no modifications to your source file are
+ required in order to use the profiler).
+
+ There are three identifiers  that  can  be  used  with  the  /PROFILE
+ switch.   These  are  ALL, FUNCTION, and BLOCK.  If /PROFILE is given
+ without an identifier, then FUNCTION is assumed.
+
+3 Block_Profiler
+
+ The block profiler counts how  many  times  control  of  the  program
+ passes certain points in your program.  This is useful in determining
+ which  portions  of  a  program  would  benefit  from  recoding   for
+ optimization.
+
+ The report for the block profiler contains the  function  name,  file
+ name, PC, and the source file line number as well as the count of how
+ many times control has passed through the specified source line.
+
+3 Function_Profiler
+
+ The function profiler counts how many times each function is entered,
+ and keeps track of how much CPU time is used within each function.
+
+ You should be careful about  interpreting  the  results  of  profiles
+ where  there  are  inline  functions.  When a function is included as
+ inline, then there is no call to the internal data collection routine
+ used  by  the  profiler,  and  thus  there  will be no record of this
+ function being called.  The compiler does generate a callable version
+ of each inline function, and if this called version is used, then the
+ profiler's data collection routine will be called.
+
+2 /SCAN
+
+ /SCAN=(file[,file...])
+
+ This qualifier supplies a list of files that will be read  as  input,
+ and  the output will be discarded before processing the regular input
+ file.  Because the output generated from the files is discarded,  the
+ only  effect  of  this qualifier is to make the macros defined in the
+ files available for use in the main input.
+
+2 /SHOW
+
+ /SHOW[=option]
+
+ This causes the preprocessor to generate information other  than  the
+ preprocessed  input  file.   When this qualifier is used, no assembly
+ code and no object file is generated.
+
+ The output of the preprocessor is placed in the file specified by the
+ /LIST  qualifier, if present.  If the /LIST qualifier is not present,
+ then the output is placed in a file with the same name as  the  input
+ file  with  an  extension  that  depends  upon  which  option that is
+ selected.
+
+3 DEFINITIONS
+
+ This option causes the preprocessor to dump a  list  of  all  of  the
+ definitions  to  the  output  file.   This  is  useful  for debugging
+ purposes, since it lets you determine whether or not  everything  has
+ been defined properly.
+
+ If the default file name is used for the output, the  extension  will
+ be .DEF.
+
+3 RULES
+
+ This option causes the preprocessor to output  a  rule  suitable  for
+ MAKE,  describing  the  dependencies  of  the  main source file.  The
+ preprocessor outputs one MAKE rule containing the  object  file  name
+ for  that  source  file,  a colon, and the names of all the concluded
+ files.  If there are many included files then the rule is split  into
+ several lines using the '\'-newline.
+
+ When using this option, only files included with the "#include "file"
+ directive are mentioned.
+
+ If the default file name is used for the  output,  a  null  extension
+ will be used.
+
+3 ALL
+
+ This option is similar to RULES, except that it also  mentions  files
+ included with the "#include <file.h>" directive.
+
+ If the default file name is used for the  output,  a  null  extension
+ will be used.
+
+2 /UNDEFINE
+
+ /UNDEFINE cancels a macro definition.  Thus, it is the  same  as  the
+ #undef preprocessor directive.
+
+ If more than one /UNDEFINE is present on the GCC command  line,  only
+ the last /UNDEFINE is used.
+
+ If both /DEFINE and /UNDEFINE are present on a command line,  /DEFINE
+ is evaluated before /UNDEFINE.
+
+2 /VERBOSE
+
+ Controls whether the user sees the invocation command strings for the
+ preprocessor,  compiler,  and  assembler.   The compiler also outputs
+ some statistics on time spent in its various phases.
+
+2 /VERSION
+
+ Causes the preprocessor and the compiler to  identify  themselves  by
+ their  version  numbers, and in the case of the compiler, the version
+ number of the compiler that built it.
+
+2 /WARNING
+
+ When this qualifier is present, warnings about usage that  should  be
+ avoided  are given by the compiler.  For more information, see "Using
+ and Porting GNU CC", in the section on command  line  options,  under
+ "-Wall".
+
+ Warnings are also generated by the preprocessor when  this  qualifier
+ is given.
+
+2 Known_Incompatibilities_with_VAX-C
+
+ There are several known incompatibilities between  GNU-C  and  VAX-C.
+ Some  common  ones  will  be  briefly  described  here.   A  complete
+ description can be found in "Using and Porting GNU CC" in the chapter
+ entitled "Using GNU CC on VMS".
+
+     GNU-C provides case hacking as a means of giving case sensitivity
+ to  symbol  names.  The case hack is a hexadecimal number appended to
+ the symbol name, with a bit being set for  each  upper  case  letter.
+ Symbols with all lower case, or symbols that have a dollar sign ("$")
+ are not case hacked.  There  are  times  that  this  is  undesirable,
+ namely  when  you  wish  to  link  your program against a precompiled
+ library which was compiled with a non-GNU-C compiler.  X-windows  (or
+ DECWindows)   is  an  example  of  this.   In  these  instances,  the
+ /NOCASE_HACK switch should be used.
+
+ If you require case hacking in some cases, but not  in  others  (i.e.
+ Libg++  with  DECWindows),  then it is recommended that you develop a
+ header file which will define all mixed case  functions  that  should
+ not have a case hack as the lower case equivalents.
+
+     GNU-C does not provide  the  globaldef  and  globalref  mechanism
+ which  is  used  by VAX-C to coerce the VMS linker to include certain
+ object modules from a library.  There are assembler hacks, which  are
+ available  to  the  user  through  the macros defined in gnu_hacks.h,
+ which effectively give you the ability to  perform  these  functions.
+ While  not  syntactically  identical,  they  do  provide  most of the
+ functionality.
+
+ Note that globaldefs of enums is not supported in the way that it  is
+ under  VAX-C.  This can be easily simulated, however, by globaldefing
+ an integer variable, and then globalvaluing  all  of  the  enumerated
+ states.
+
+ Furthermore, the way that globalvalue is currently  implemented,  the
+ data type of the globalvalue variable is seen to the compiler to be a
+ pointer to the data type that you  specify.   This  is  necessary  in
+ order   to  make  the  compiler  correctly  address  the  globalvalue
+ variables.
+
diff --git a/gcc/gcc.texi b/gcc/gcc.texi
new file mode 100644
index 0000000..418dcbc
--- /dev/null
+++ b/gcc/gcc.texi
@@ -0,0 +1,4793 @@
+>\input texinfo  @c -*-texinfo-*-
+@c %**start of header
+@setfilename gcc.info
+@c @setfilename usegcc.info
+@c @setfilename portgcc.info
+@c To produce the full manual, use the "gcc.info" setfilename, and
+@c make sure the following do NOT begin with '@c' (and the @clear lines DO)
+@set INTERNALS
+@set USING
+@c To produce a user-only manual, use the "usegcc.info" setfilename, and
+@c make sure the following does NOT begin with '@c':
+@c @clear INTERNALS
+@c To produce a porter-only manual, use the "portgcc.info" setfilename,
+@c and make sure the following does NOT begin with '@c':
+@c @clear USING
+
+@c (For FSF printing, turn on smallbook, comment out finalout below;
+@c that is all that is needed.)
+
+@c 6/27/96 FSF DO wants smallbook fmt for 1st bound edition.
+@c @smallbook
+
+@c i also commented out the finalout command, so if there *are* any
+@c overfulls, you'll (hopefully) see the rectangle in the right hand
+@c margin. -mew 15june93
+@c @finalout
+
+@c NOTE: checks/things to do:
+@c
+@c -have bob do a search in all seven files for "mew" (ideally --mew,
+@c  but i may have forgotten the occasional "--"..).  
+@c     Just checked... all have `--'!  Bob 22Jul96
+@c     Use this to search:   grep -n '\-\-mew' *.texi
+@c -item/itemx, text after all (sub/sub)section titles, etc..
+@c -consider putting the lists of options on pp 17--> etc in columns or
+@c  some such.
+@c -spellcheck
+@c -continuity of phrasing; ie, bit-field vs bitfield in rtl.texi
+@c -overfulls.  do a search for "mew" in the files, and you will see
+@c   overfulls that i noted but could not deal with.
+@c -have to add text:  beginning of chapter 8
+
+@c
+@c anything else?                       --mew 10feb93
+
+
+
+@ifset INTERNALS
+@ifset USING
+@settitle Using and Porting GNU CC
+@end ifset
+@end ifset
+@c seems reasonable to assume at least one of INTERNALS or USING is set...
+@ifclear INTERNALS
+@settitle Using GNU CC
+@end ifclear
+@ifclear USING
+@settitle Porting GNU CC
+@end ifclear
+
+@syncodeindex fn cp
+@syncodeindex vr cp
+@c %**end of header
+
+@c Use with @@smallbook.
+
+@c Cause even numbered pages to be printed on the left hand side of
+@c the page and odd numbered pages to be printed on the right hand
+@c side of the page.  Using this, you can print on both sides of a
+@c sheet of paper and have the text on the same part of the sheet.
+
+@c The text on right hand pages is pushed towards the right hand
+@c margin and the text on left hand pages is pushed toward the left
+@c hand margin.
+@c (To provide the reverse effect, set bindingoffset to -0.75in.)
+
+@c @tex
+@c \global\bindingoffset=0.75in
+@c \global\normaloffset =0.75in
+@c @end tex
+
+@ifinfo
+@ifset INTERNALS
+@ifset USING
+This file documents the use and the internals of the GNU compiler.
+@end ifset
+@end ifset
+@ifclear USING
+This file documents the internals of the GNU compiler.
+@end ifclear
+@ifclear INTERNALS
+This file documents the use of the GNU compiler.
+@end ifclear
+
+Published by the Free Software Foundation
+59 Temple Place - Suite 330
+Boston, MA 02111-1307 USA
+
+Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+@ignore
+Permission is granted to process this file through Tex and print the
+results, provided the printed document carries copying permission
+notice identical to this one except for the removal of this paragraph
+(this paragraph not being relevant to the printed manual).
+
+@end ignore
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided also that the
+sections entitled ``GNU General Public License,'' ``Funding for Free
+Software,'' and ``Protect Your Freedom---Fight `Look And Feel'@w{}'' are
+included exactly as in the original, and provided that the entire
+resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that the sections entitled ``GNU General Public License,''
+``Funding for Free Software,'' and ``Protect Your Freedom---Fight `Look
+And Feel'@w{}'', and this permission notice, may be included in
+translations approved by the Free Software Foundation instead of in the
+original English.
+@end ifinfo
+
+@setchapternewpage odd
+
+@titlepage
+@ifset INTERNALS
+@ifset USING
+@center @titlefont{Using and Porting GNU CC}
+
+@end ifset
+@end ifset
+@ifclear INTERNALS
+@title Using GNU CC
+@end ifclear
+@ifclear USING
+@title Porting GNU CC
+@end ifclear
+@sp 2
+@center Richard M. Stallman
+@sp 3
+@center Last updated 26 November 1995
+@sp 1
+@c The version number appears twice more in this file.
+
+@center for version 2.7.2
+@page
+@vskip 0pt plus 1filll
+Copyright @copyright{} 1988, 89, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
+@sp 2
+For GCC Version 2.7.2@*
+@sp 1
+Published by the Free Software Foundation @*
+59 Temple Place - Suite 330@*
+Boston, MA 02111-1307, USA@*
+Last printed November, 1995.@*
+Printed copies are available for $50 each.@*
+ISBN 1-882114-36-1
+@sp 1
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided also that the
+sections entitled ``GNU General Public License,'' ``Funding for Free
+Software,'' and ``Protect Your Freedom---Fight `Look And Feel'@w{}'' are
+included exactly as in the original, and provided that the entire
+resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that the sections entitled ``GNU General Public License,''
+``Funding for Free Software,'' and ``Protect Your Freedom---Fight `Look
+And Feel'@w{}'', and this permission notice, may be included in
+translations approved by the Free Software Foundation instead of in the
+original English.
+@end titlepage
+@page
+
+@ifinfo
+
+@node Top, G++ and GCC,, (DIR)
+@top Introduction
+@cindex introduction
+
+@ifset INTERNALS
+@ifset USING
+This manual documents how to run, install and port the GNU
+compiler, as well as its new features and incompatibilities, and how to
+report bugs.  It corresponds to GNU CC version 2.7.2.
+@end ifset
+@end ifset
+
+@ifclear INTERNALS
+This manual documents how to run and install the GNU compiler,
+as well as its new features and incompatibilities, and how to report
+bugs.  It corresponds to GNU CC version 2.7.2.
+@end ifclear
+@ifclear USING
+This manual documents how to port the GNU compiler,
+as well as its new features and incompatibilities, and how to report
+bugs.  It corresponds to GNU CC version 2.7.1.
+@end ifclear
+
+@end ifinfo
+@menu
+@ifset USING
+* G++ and GCC::     You can compile C or C++ programs.
+* Invoking GCC::    Command options supported by @samp{gcc}.
+* Installation::    How to configure, compile and install GNU CC.
+* C Extensions::    GNU extensions to the C language family.
+* C++ Extensions::  GNU extensions to the C++ language.
+* Gcov::	    gcov: a GNU CC test coverage program.
+* Trouble::         If you have trouble installing GNU CC.
+* Bugs::            How, why and where to report bugs.
+* Service::         How to find suppliers of support for GNU CC.
+* Contributing::    How to contribute to testing and developing GNU CC.
+* VMS::             Using GNU CC on VMS.
+@end ifset
+@ifset INTERNALS
+* Portability::     Goals of GNU CC's portability features.
+* Interface::       Function-call interface of GNU CC output.
+* Passes::          Order of passes, what they do, and what each file is for.
+* RTL::             The intermediate representation that most passes work on.
+* Machine Desc::    How to write machine description instruction patterns.
+* Target Macros::   How to write the machine description C macros.
+* Config::          Writing the @file{xm-@var{machine}.h} file.
+* Fragments::       Writing the @file{t-@var{target}} and @file{x-@var{host}} files.
+@end ifset
+
+* Funding::         How to help assure funding for free software.
+* Look and Feel::   Protect your freedom---fight ``look and feel''.
+
+* Copying::         GNU General Public License says
+                     how you can copy and share GNU CC.
+* Contributors::    People who have contributed to GNU CC.
+
+* Index::	    Index of concepts and symbol names.
+@end menu
+
+@ifset USING
+@node G++ and GCC
+@chapter Compile C, C++, or Objective C
+
+@cindex Objective C
+The C, C++, and Objective C versions of the compiler are integrated; the
+GNU C compiler can compile programs written in C, C++, or Objective C.
+
+@cindex GCC
+``GCC'' is a common shorthand term for the GNU C compiler.  This is both
+the most general name for the compiler, and the name used when the
+emphasis is on compiling C programs.
+
+@cindex C++
+@cindex G++
+When referring to C++ compilation, it is usual to call the compiler
+``G++''.  Since there is only one compiler, it is also accurate to call
+it ``GCC'' no matter what the language context; however, the term
+``G++'' is more useful when the emphasis is on compiling C++ programs.
+
+We use the name ``GNU CC'' to refer to the compilation system as a
+whole, and more specifically to the language-independent part of the
+compiler.  For example, we refer to the optimization options as
+affecting the behavior of ``GNU CC'' or sometimes just ``the compiler''.
+
+Front ends for other languages, such as Ada 9X, Fortran, Modula-3, and
+Pascal, are under development.  These front-ends, like that for C++, are
+built in subdirectories of GNU CC and link to it.  The result is an
+integrated compiler that can compile programs written in C, C++,
+Objective C, or any of the languages for which you have installed front
+ends.
+
+In this manual, we only discuss the options for the C, Objective-C, and
+C++ compilers and those of the GNU CC core.  Consult the documentation
+of the other front ends for the options to use when compiling programs
+written in other languages.
+
+@cindex compiler compared to C++ preprocessor
+@cindex intermediate C version, nonexistent
+@cindex C intermediate output, nonexistent
+G++ is a @emph{compiler}, not merely a preprocessor.  G++ builds object
+code directly from your C++ program source.  There is no intermediate C
+version of the program.  (By contrast, for example, some other
+implementations use a program that generates a C program from your C++
+source.)  Avoiding an intermediate C representation of the program means
+that you get better object code, and better debugging information.  The
+GNU debugger, GDB, works with this information in the object code to
+give you comprehensive C++ source-level editing capabilities
+(@pxref{C,,C and C++,gdb.info, Debugging with GDB}).
+
+@c FIXME!  Someone who knows something about Objective C ought to put in
+@c a paragraph or two about it here, and move the index entry down when
+@c there is more to point to than the general mention in the 1st par.
+
+@include invoke.texi
+
+@include install.texi
+
+@include extend.texi
+
+@include gcov.texi
+
+@node Trouble
+@chapter Known Causes of Trouble with GNU CC
+@cindex bugs, known
+@cindex installation trouble
+@cindex known causes of trouble
+
+This section describes known problems that affect users of GNU CC.  Most
+of these are not GNU CC bugs per se---if they were, we would fix them.
+But the result for a user may be like the result of a bug.
+
+Some of these problems are due to bugs in other software, some are
+missing features that are too much work to add, and some are places
+where people's opinions differ as to what is best.
+
+@menu
+* Actual Bugs::		      Bugs we will fix later.
+* Installation Problems::     Problems that manifest when you install GNU CC.
+* Cross-Compiler Problems::   Common problems of cross compiling with GNU CC.
+* Interoperation::      Problems using GNU CC with other compilers,
+			   and with certain linkers, assemblers and debuggers.
+* External Bugs::	Problems compiling certain programs.
+* Incompatibilities::   GNU CC is incompatible with traditional C.
+* Fixed Headers::       GNU C uses corrected versions of system header files.
+                           This is necessary, but doesn't always work smoothly.
+* Standard Libraries::  GNU C uses the system C library, which might not be
+                           compliant with the ISO/ANSI C standard.
+* Disappointments::     Regrettable things we can't change, but not quite bugs.
+* C++ Misunderstandings::     Common misunderstandings with GNU C++.
+* Protoize Caveats::    Things to watch out for when using @code{protoize}.
+* Non-bugs::		Things we think are right, but some others disagree.
+* Warnings and Errors:: Which problems in your code get warnings,
+                         and which get errors.
+@end menu
+
+@node Actual Bugs
+@section Actual Bugs We Haven't Fixed Yet
+
+@itemize @bullet
+@item
+The @code{fixincludes} script interacts badly with automounters; if the
+directory of system header files is automounted, it tends to be
+unmounted while @code{fixincludes} is running.  This would seem to be a
+bug in the automounter.  We don't know any good way to work around it.
+
+@item
+The @code{fixproto} script will sometimes add prototypes for the
+@code{sigsetjmp} and @code{siglongjmp} functions that reference the
+@code{jmp_buf} type before that type is defined.  To work around this,
+edit the offending file and place the typedef in front of the
+prototypes.
+
+@item
+There are several obscure case of mis-using struct, union, and
+enum tags that are not detected as errors by the compiler.
+
+@item
+When @samp{-pedantic-errors} is specified, GNU C will incorrectly give
+an error message when a function name is specified in an expression
+involving the comma operator.
+
+@item
+Loop unrolling doesn't work properly for certain C++ programs.  This is
+a bug in the C++ front end.  It sometimes emits incorrect debug info, and
+the loop unrolling code is unable to recover from this error.
+@end itemize
+
+@node Installation Problems
+@section Installation Problems
+
+This is a list of problems (and some apparent problems which don't
+really mean anything is wrong) that show up during installation of GNU
+CC.
+
+@itemize @bullet
+@item
+On certain systems, defining certain environment variables such as
+@code{CC} can interfere with the functioning of @code{make}.
+
+@item
+If you encounter seemingly strange errors when trying to build the
+compiler in a directory other than the source directory, it could be
+because you have previously configured the compiler in the source
+directory.  Make sure you have done all the necessary preparations.
+@xref{Other Dir}.
+
+@item
+If you build GNU CC on a BSD system using a directory stored in a System
+V file system, problems may occur in running @code{fixincludes} if the
+System V file system doesn't support symbolic links.  These problems
+result in a failure to fix the declaration of @code{size_t} in
+@file{sys/types.h}.  If you find that @code{size_t} is a signed type and
+that type mismatches occur, this could be the cause.
+
+The solution is not to use such a directory for building GNU CC.
+
+@item
+In previous versions of GNU CC, the @code{gcc} driver program looked for
+@code{as} and @code{ld} in various places; for example, in files
+beginning with @file{/usr/local/lib/gcc-}.  GNU CC version 2 looks for
+them in the directory
+@file{/usr/local/lib/gcc-lib/@var{target}/@var{version}}.
+
+Thus, to use a version of @code{as} or @code{ld} that is not the system
+default, for example @code{gas} or GNU @code{ld}, you must put them in
+that directory (or make links to them from that directory).
+
+@item
+Some commands executed when making the compiler may fail (return a
+non-zero status) and be ignored by @code{make}.  These failures, which
+are often due to files that were not found, are expected, and can safely
+be ignored.
+
+@item
+It is normal to have warnings in compiling certain files about
+unreachable code and about enumeration type clashes.  These files' names
+begin with @samp{insn-}.  Also, @file{real.c} may get some warnings that
+you can ignore.
+
+@item
+Sometimes @code{make} recompiles parts of the compiler when installing
+the compiler.  In one case, this was traced down to a bug in
+@code{make}.  Either ignore the problem or switch to GNU Make.
+
+@item
+If you have installed a program known as purify, you may find that it
+causes errors while linking @code{enquire}, which is part of building
+GNU CC.  The fix is to get rid of the file @code{real-ld} which purify
+installs---so that GNU CC won't try to use it.
+
+@item
+On Linux SLS 1.01, there is a problem with @file{libc.a}: it does not
+contain the obstack functions.  However, GNU CC assumes that the obstack
+functions are in @file{libc.a} when it is the GNU C library.  To work
+around this problem, change the @code{__GNU_LIBRARY__} conditional
+around line 31 to @samp{#if 1}.
+
+@item
+On some 386 systems, building the compiler never finishes because
+@code{enquire} hangs due to a hardware problem in the motherboard---it
+reports floating point exceptions to the kernel incorrectly.  You can
+install GNU CC except for @file{float.h} by patching out the command to
+run @code{enquire}.  You may also be able to fix the problem for real by
+getting a replacement motherboard.  This problem was observed in
+Revision E of the Micronics motherboard, and is fixed in Revision F.
+It has also been observed in the MYLEX MXA-33 motherboard.
+
+If you encounter this problem, you may also want to consider removing
+the FPU from the socket during the compilation.  Alternatively, if you
+are running SCO Unix, you can reboot and force the FPU to be ignored.
+To do this, type @samp{hd(40)unix auto ignorefpu}.
+
+@item
+On some 386 systems, GNU CC crashes trying to compile @file{enquire.c}.
+This happens on machines that don't have a 387 FPU chip.  On 386
+machines, the system kernel is supposed to emulate the 387 when you
+don't have one.  The crash is due to a bug in the emulator.
+
+One of these systems is the Unix from Interactive Systems: 386/ix.
+On this system, an alternate emulator is provided, and it does work.
+To use it, execute this command as super-user:
+
+@example
+ln /etc/emulator.rel1 /etc/emulator
+@end example
+
+@noindent
+and then reboot the system.  (The default emulator file remains present
+under the name @file{emulator.dflt}.)
+
+Try using @file{/etc/emulator.att}, if you have such a problem on the
+SCO system.
+
+Another system which has this problem is Esix.  We don't know whether it
+has an alternate emulator that works.
+
+On NetBSD 0.8, a similar problem manifests itself as these error messages:
+
+@example
+enquire.c: In function `fprop':
+enquire.c:2328: floating overflow
+@end example
+
+@item
+On SCO systems, when compiling GNU CC with the system's compiler,
+do not use @samp{-O}.  Some versions of the system's compiler miscompile
+GNU CC with @samp{-O}.
+
+@cindex @code{genflags}, crash on Sun 4
+@item
+Sometimes on a Sun 4 you may observe a crash in the program
+@code{genflags} or @code{genoutput} while building GNU CC.  This is said to
+be due to a bug in @code{sh}.  You can probably get around it by running
+@code{genflags} or @code{genoutput} manually and then retrying the
+@code{make}.
+
+@item
+On Solaris 2, executables of GNU CC version 2.0.2 are commonly
+available, but they have a bug that shows up when compiling current
+versions of GNU CC: undefined symbol errors occur during assembly if you
+use @samp{-g}.
+
+The solution is to compile the current version of GNU CC without
+@samp{-g}.  That makes a working compiler which you can use to recompile
+with @samp{-g}.
+
+@item
+Solaris 2 comes with a number of optional OS packages.  Some of these
+packages are needed to use GNU CC fully.  If you did not install all
+optional packages when installing Solaris, you will need to verify that
+the packages that GNU CC needs are installed.
+
+To check whether an optional package is installed, use
+the @code{pkginfo} command.  To add an optional package, use the
+@code{pkgadd} command.  For further details, see the Solaris
+documentation.
+
+For Solaris 2.0 and 2.1, GNU CC needs six packages: @samp{SUNWarc},
+@samp{SUNWbtool}, @samp{SUNWesu}, @samp{SUNWhea}, @samp{SUNWlibm}, and
+@samp{SUNWtoo}.
+
+For Solaris 2.2, GNU CC needs an additional seventh package: @samp{SUNWsprot}.
+
+@item
+On Solaris 2, trying to use the linker and other tools in
+@file{/usr/ucb} to install GNU CC has been observed to cause trouble.
+For example, the linker may hang indefinitely.  The fix is to remove
+@file{/usr/ucb} from your @code{PATH}.
+
+@item
+If you use the 1.31 version of the MIPS assembler (such as was shipped
+with Ultrix 3.1), you will need to use the -fno-delayed-branch switch
+when optimizing floating point code.  Otherwise, the assembler will
+complain when the GCC compiler fills a branch delay slot with a
+floating point instruction, such as @code{add.d}.
+
+@item
+If on a MIPS system you get an error message saying ``does not have gp
+sections for all it's [sic] sectons [sic]'', don't worry about it.  This
+happens whenever you use GAS with the MIPS linker, but there is not
+really anything wrong, and it is okay to use the output file.  You can
+stop such warnings by installing the GNU linker.
+
+It would be nice to extend GAS to produce the gp tables, but they are
+optional, and there should not be a warning about their absence.
+
+@item
+In Ultrix 4.0 on the MIPS machine, @file{stdio.h} does not work with GNU
+CC at all unless it has been fixed with @code{fixincludes}.  This causes
+problems in building GNU CC.  Once GNU CC is installed, the problems go
+away.
+
+To work around this problem, when making the stage 1 compiler, specify
+this option to Make:
+
+@example
+GCC_FOR_TARGET="./xgcc -B./ -I./include"
+@end example
+
+When making stage 2 and stage 3, specify this option:
+
+@example
+CFLAGS="-g -I./include"
+@end example
+
+@item
+Users have reported some problems with version 2.0 of the MIPS
+compiler tools that were shipped with Ultrix 4.1.  Version 2.10
+which came with Ultrix 4.2 seems to work fine.
+
+Users have also reported some problems with version 2.20 of the
+MIPS compiler tools that were shipped with RISC/os 4.x.  The earlier
+version 2.11 seems to work fine.
+
+@item
+Some versions of the MIPS linker will issue an assertion failure
+when linking code that uses @code{alloca} against shared
+libraries on RISC-OS 5.0, and DEC's OSF/1 systems.  This is a bug
+in the linker, that is supposed to be fixed in future revisions.
+To protect against this, GNU CC passes @samp{-non_shared} to the
+linker unless you pass an explicit @samp{-shared} or
+@samp{-call_shared} switch.
+
+@item
+On System V release 3, you may get this error message
+while linking:
+
+@smallexample
+ld fatal: failed to write symbol name @var{something}
+ in strings table for file @var{whatever}
+@end smallexample
+
+This probably indicates that the disk is full or your ULIMIT won't allow
+the file to be as large as it needs to be.
+
+This problem can also result because the kernel parameter @code{MAXUMEM}
+is too small.  If so, you must regenerate the kernel and make the value
+much larger.  The default value is reported to be 1024; a value of 32768
+is said to work.  Smaller values may also work.
+
+@item
+On System V, if you get an error like this,
+
+@example
+/usr/local/lib/bison.simple: In function `yyparse':
+/usr/local/lib/bison.simple:625: virtual memory exhausted
+@end example
+
+@noindent
+that too indicates a problem with disk space, ULIMIT, or @code{MAXUMEM}.
+
+@item
+Current GNU CC versions probably do not work on version 2 of the NeXT
+operating system.
+
+@item
+On NeXTStep 3.0, the Objective C compiler does not work, due,
+apparently, to a kernel bug that it happens to trigger.  This problem
+does not happen on 3.1.
+
+@item
+On the Tower models 4@var{n}0 and 6@var{n}0, by default a process is not
+allowed to have more than one megabyte of memory.  GNU CC cannot compile
+itself (or many other programs) with @samp{-O} in that much memory.
+
+To solve this problem, reconfigure the kernel adding the following line
+to the configuration file:
+
+@smallexample
+MAXUMEM = 4096
+@end smallexample
+
+@item
+On HP 9000 series 300 or 400 running HP-UX release 8.0, there is a bug
+in the assembler that must be fixed before GNU CC can be built.  This
+bug manifests itself during the first stage of compilation, while
+building @file{libgcc2.a}:
+
+@smallexample
+_floatdisf
+cc1: warning: `-g' option not supported on this version of GCC
+cc1: warning: `-g1' option not supported on this version of GCC
+./xgcc: Internal compiler error: program as got fatal signal 11
+@end smallexample
+
+A patched version of the assembler is available by anonymous ftp from
+@code{altdorf.ai.mit.edu} as the file
+@file{archive/cph/hpux-8.0-assembler}.  If you have HP software support,
+the patch can also be obtained directly from HP, as described in the
+following note:
+
+@quotation
+This is the patched assembler, to patch SR#1653-010439, where the
+assembler aborts on floating point constants.
+
+The bug is not really in the assembler, but in the shared library
+version of the function ``cvtnum(3c)''.  The bug on ``cvtnum(3c)'' is
+SR#4701-078451.  Anyway, the attached assembler uses the archive
+library version of ``cvtnum(3c)'' and thus does not exhibit the bug.
+@end quotation
+
+This patch is also known as PHCO_4484.
+
+@item
+On HP-UX version 8.05, but not on 8.07 or more recent versions,
+the @code{fixproto} shell script triggers a bug in the system shell.
+If you encounter this problem, upgrade your operating system or
+use BASH (the GNU shell) to run @code{fixproto}.
+
+@item
+Some versions of the Pyramid C compiler are reported to be unable to
+compile GNU CC.  You must use an older version of GNU CC for
+bootstrapping.  One indication of this problem is if you get a crash
+when GNU CC compiles the function @code{muldi3} in file @file{libgcc2.c}.
+
+You may be able to succeed by getting GNU CC version 1, installing it,
+and using it to compile GNU CC version 2.  The bug in the Pyramid C
+compiler does not seem to affect GNU CC version 1.
+
+@item
+There may be similar problems on System V Release 3.1 on 386 systems.
+
+@item
+On the Intel Paragon (an i860 machine), if you are using operating
+system version 1.0, you will get warnings or errors about redefinition
+of @code{va_arg} when you build GNU CC.
+
+If this happens, then you need to link most programs with the library
+@file{iclib.a}.  You must also modify @file{stdio.h} as follows: before
+the lines
+
+@example
+#if     defined(__i860__) && !defined(_VA_LIST)
+#include <va_list.h>
+@end example
+
+@noindent
+insert the line
+
+@example
+#if __PGC__
+@end example
+
+@noindent
+and after the lines
+
+@example
+extern int  vprintf(const char *, va_list );
+extern int  vsprintf(char *, const char *, va_list );
+#endif
+@end example
+
+@noindent
+insert the line
+
+@example
+#endif /* __PGC__ */
+@end example
+
+These problems don't exist in operating system version 1.1.
+
+@item
+On the Altos 3068, programs compiled with GNU CC won't work unless you
+fix a kernel bug.  This happens using system versions V.2.2 1.0gT1 and
+V.2.2 1.0e and perhaps later versions as well.  See the file
+@file{README.ALTOS}.
+
+@item
+You will get several sorts of compilation and linking errors on the
+we32k if you don't follow the special instructions.  @xref{Configurations}.
+
+@item
+A bug in the HP-UX 8.05 (and earlier) shell will cause the fixproto
+program to report an error of the form:
+
+@example
+./fixproto: sh internal 1K buffer overflow
+@end example
+
+To fix this, change the first line of the fixproto script to look like:
+
+@example
+#!/bin/ksh
+@end example
+@end itemize
+
+@node Cross-Compiler Problems
+@section Cross-Compiler Problems
+
+You may run into problems with cross compilation on certain machines,
+for several reasons.
+
+@itemize @bullet
+@item
+Cross compilation can run into trouble for certain machines because
+some target machines' assemblers require floating point numbers to be
+written as @emph{integer} constants in certain contexts.
+
+The compiler writes these integer constants by examining the floating
+point value as an integer and printing that integer, because this is
+simple to write and independent of the details of the floating point
+representation.  But this does not work if the compiler is running on
+a different machine with an incompatible floating point format, or
+even a different byte-ordering.
+
+In addition, correct constant folding of floating point values
+requires representing them in the target machine's format.
+(The C standard does not quite require this, but in practice
+it is the only way to win.)
+
+It is now possible to overcome these problems by defining macros such
+as @code{REAL_VALUE_TYPE}.  But doing so is a substantial amount of
+work for each target machine.
+@ifset INTERNALS
+@xref{Cross-compilation}.
+@end ifset
+@ifclear INTERNALS
+@xref{Cross-compilation,,Cross Compilation and Floating Point Format,
+gcc.info, Using and Porting GCC}.
+@end ifclear
+
+@item
+At present, the program @file{mips-tfile} which adds debug
+support to object files on MIPS systems does not work in a cross
+compile environment.
+@end itemize
+
+@node Interoperation
+@section Interoperation
+
+This section lists various difficulties encountered in using GNU C or
+GNU C++ together with other compilers or with the assemblers, linkers,
+libraries and debuggers on certain systems.
+
+@itemize @bullet
+@item
+Objective C does not work on the RS/6000.
+
+@item
+GNU C++ does not do name mangling in the same way as other C++
+compilers.  This means that object files compiled with one compiler
+cannot be used with another.
+
+This effect is intentional, to protect you from more subtle problems.
+Compilers differ as to many internal details of C++ implementation,
+including: how class instances are laid out, how multiple inheritance is
+implemented, and how virtual function calls are handled.  If the name
+encoding were made the same, your programs would link against libraries
+provided from other compilers---but the programs would then crash when
+run.  Incompatible libraries are then detected at link time, rather than
+at run time.
+
+@item
+Older GDB versions sometimes fail to read the output of GNU CC version
+2.  If you have trouble, get GDB version 4.4 or later.
+
+@item
+@cindex DBX
+DBX rejects some files produced by GNU CC, though it accepts similar
+constructs in output from PCC.  Until someone can supply a coherent
+description of what is valid DBX input and what is not, there is
+nothing I can do about these problems.  You are on your own.
+
+@item
+The GNU assembler (GAS) does not support PIC.  To generate PIC code, you
+must use some other assembler, such as @file{/bin/as}.
+
+@item
+On some BSD systems, including some versions of Ultrix, use of profiling
+causes static variable destructors (currently used only in C++) not to
+be run.
+
+@item
+Use of @samp{-I/usr/include} may cause trouble.
+
+Many systems come with header files that won't work with GNU CC unless
+corrected by @code{fixincludes}.  The corrected header files go in a new
+directory; GNU CC searches this directory before @file{/usr/include}.
+If you use @samp{-I/usr/include}, this tells GNU CC to search
+@file{/usr/include} earlier on, before the corrected headers.  The
+result is that you get the uncorrected header files.
+
+Instead, you should use these options (when compiling C programs):
+
+@smallexample
+-I/usr/local/lib/gcc-lib/@var{target}/@var{version}/include -I/usr/include
+@end smallexample
+
+For C++ programs, GNU CC also uses a special directory that defines C++
+interfaces to standard C subroutines.  This directory is meant to be
+searched @emph{before} other standard include directories, so that it
+takes precedence.  If you are compiling C++ programs and specifying
+include directories explicitly, use this option first, then the two
+options above:
+
+@example
+-I/usr/local/lib/g++-include
+@end example
+
+@ignore
+@cindex @code{vfork}, for the Sun-4
+@item
+There is a bug in @code{vfork} on the Sun-4 which causes the registers
+of the child process to clobber those of the parent.  Because of this,
+programs that call @code{vfork} are likely to lose when compiled
+optimized with GNU CC when the child code alters registers which contain
+C variables in the parent.  This affects variables which are live in the
+parent across the call to @code{vfork}.
+
+If you encounter this, you can work around the problem by declaring
+variables @code{volatile} in the function that calls @code{vfork}, until
+the problem goes away, or by not declaring them @code{register} and not
+using @samp{-O} for those source files.
+@end ignore
+
+@item
+On some SGI systems, when you use @samp{-lgl_s} as an option,
+it gets translated magically to @samp{-lgl_s -lX11_s -lc_s}.
+Naturally, this does not happen when you use GNU CC.
+You must specify all three options explicitly.
+
+@item
+On a Sparc, GNU CC aligns all values of type @code{double} on an 8-byte
+boundary, and it expects every @code{double} to be so aligned.  The Sun
+compiler usually gives @code{double} values 8-byte alignment, with one
+exception: function arguments of type @code{double} may not be aligned.
+
+As a result, if a function compiled with Sun CC takes the address of an
+argument of type @code{double} and passes this pointer of type
+@code{double *} to a function compiled with GNU CC, dereferencing the
+pointer may cause a fatal signal.
+
+One way to solve this problem is to compile your entire program with GNU
+CC.  Another solution is to modify the function that is compiled with
+Sun CC to copy the argument into a local variable; local variables
+are always properly aligned.  A third solution is to modify the function
+that uses the pointer to dereference it via the following function
+@code{access_double} instead of directly with @samp{*}:
+
+@smallexample
+inline double
+access_double (double *unaligned_ptr)
+@{
+  union d2i @{ double d; int i[2]; @};
+
+  union d2i *p = (union d2i *) unaligned_ptr;
+  union d2i u;
+
+  u.i[0] = p->i[0];
+  u.i[1] = p->i[1];
+
+  return u.d;
+@}
+@end smallexample
+
+@noindent
+Storing into the pointer can be done likewise with the same union.
+
+@item
+On Solaris, the @code{malloc} function in the @file{libmalloc.a} library
+may allocate memory that is only 4 byte aligned.  Since GNU CC on the
+Sparc assumes that doubles are 8 byte aligned, this may result in a
+fatal signal if doubles are stored in memory allocated by the
+@file{libmalloc.a} library.
+
+The solution is to not use the @file{libmalloc.a} library.  Use instead
+@code{malloc} and related functions from @file{libc.a}; they do not have
+this problem.
+
+@item
+Sun forgot to include a static version of @file{libdl.a} with some
+versions of SunOS (mainly 4.1).  This results in undefined symbols when
+linking static binaries (that is, if you use @samp{-static}).  If you
+see undefined symbols @code{_dlclose}, @code{_dlsym} or @code{_dlopen}
+when linking, compile and link against the file
+@file{mit/util/misc/dlsym.c} from the MIT version of X windows.
+
+@item
+The 128-bit long double format that the Sparc port supports currently
+works by using the architecturally defined quad-word floating point
+instructions.  Since there is no hardware that supports these
+instructions they must be emulated by the operating system.  Long
+doubles do not work in Sun OS versions 4.0.3 and earlier, because the
+kernel emulator uses an obsolete and incompatible format.  Long doubles
+do not work in Sun OS version 4.1.1 due to a problem in a Sun library.
+Long doubles do work on Sun OS versions 4.1.2 and higher, but GNU CC
+does not enable them by default.  Long doubles appear to work in Sun OS
+5.x (Solaris 2.x).
+
+@item
+On HP-UX version 9.01 on the HP PA, the HP compiler @code{cc} does not
+compile GNU CC correctly.  We do not yet know why.  However, GNU CC
+compiled on earlier HP-UX versions works properly on HP-UX 9.01 and can
+compile itself properly on 9.01.
+
+@item
+On the HP PA machine, ADB sometimes fails to work on functions compiled
+with GNU CC.  Specifically, it fails to work on functions that use
+@code{alloca} or variable-size arrays.  This is because GNU CC doesn't
+generate HP-UX unwind descriptors for such functions.  It may even be
+impossible to generate them.
+
+@item
+Debugging (@samp{-g}) is not supported on the HP PA machine, unless you use
+the preliminary GNU tools (@pxref{Installation}).
+
+@item
+Taking the address of a label may generate errors from the HP-UX
+PA assembler.  GAS for the PA does not have this problem.
+
+@item
+Using floating point parameters for indirect calls to static functions
+will not work when using the HP assembler.  There simply is no way for GCC
+to specify what registers hold arguments for static functions when using
+the HP assembler.  GAS for the PA does not have this problem.
+
+@item
+In extremely rare cases involving some very large functions you may
+receive errors from the HP linker complaining about an out of bounds
+unconditional branch offset.  This used to occur more often in previous
+versions of GNU CC, but is now exceptionally rare.  If you should run
+into it, you can work around by making your function smaller.
+
+@item
+GNU CC compiled code sometimes emits warnings from the HP-UX assembler of
+the form:
+
+@smallexample
+(warning) Use of GR3 when
+  frame >= 8192 may cause conflict.
+@end smallexample
+
+These warnings are harmless and can be safely ignored.
+
+@item
+The current version of the assembler (@file{/bin/as}) for the RS/6000
+has certain problems that prevent the @samp{-g} option in GCC from
+working.  Note that @file{Makefile.in} uses @samp{-g} by default when
+compiling @file{libgcc2.c}.
+
+IBM has produced a fixed version of the assembler.  The upgraded
+assembler unfortunately was not included in any of the AIX 3.2 update
+PTF releases (3.2.2, 3.2.3, or 3.2.3e).  Users of AIX 3.1 should request
+PTF U403044 from IBM and users of AIX 3.2 should request PTF U416277.
+See the file @file{README.RS6000} for more details on these updates.
+
+You can test for the presense of a fixed assembler by using the
+command
+
+@smallexample
+as -u < /dev/null
+@end smallexample
+
+@noindent
+If the command exits normally, the assembler fix already is installed.
+If the assembler complains that "-u" is an unknown flag, you need to
+order the fix.
+
+@item
+On the IBM RS/6000, compiling code of the form
+
+@smallexample
+extern int foo;
+
+@dots{} foo @dots{}
+
+static int foo;
+@end smallexample
+
+@noindent
+will cause the linker to report an undefined symbol @code{foo}.
+Although this behavior differs from most other systems, it is not a
+bug because redefining an @code{extern} variable as @code{static}
+is undefined in ANSI C.
+
+@item
+AIX on the RS/6000 provides support (NLS) for environments outside of
+the United States.  Compilers and assemblers use NLS to support
+locale-specific representations of various objects including
+floating-point numbers ("." vs "," for separating decimal fractions).
+There have been problems reported where the library linked with GCC does
+not produce the same floating-point formats that the assembler accepts.
+If you have this problem, set the LANG environment variable to "C" or
+"En_US".
+
+@item
+Even if you specify @samp{-fdollars-in-identifiers},
+you cannot successfully use @samp{$} in identifiers on the RS/6000 due
+to a restriction in the IBM assembler.  GAS supports these
+identifiers.
+
+@item
+On the RS/6000, XLC version 1.3.0.0 will miscompile @file{jump.c}.  XLC
+version 1.3.0.1 or later fixes this problem.  You can obtain XLC-1.3.0.2
+by requesting PTF 421749 from IBM.
+
+@item
+There is an assembler bug in versions of DG/UX prior to 5.4.2.01 that
+occurs when the @samp{fldcr} instruction is used.  GNU CC uses
+@samp{fldcr} on the 88100 to serialize volatile memory references.  Use
+the option @samp{-mno-serialize-volatile} if your version of the
+assembler has this bug.
+
+@item
+On VMS, GAS versions 1.38.1 and earlier may cause spurious warning
+messages from the linker.  These warning messages complain of mismatched
+psect attributes.  You can ignore them.  @xref{VMS Install}.
+
+@item
+On NewsOS version 3, if you include both of the files @file{stddef.h}
+and @file{sys/types.h}, you get an error because there are two typedefs
+of @code{size_t}.  You should change @file{sys/types.h} by adding these
+lines around the definition of @code{size_t}:
+
+@smallexample
+#ifndef _SIZE_T
+#define _SIZE_T
+@var{actual typedef here}
+#endif
+@end smallexample
+
+@cindex Alliant
+@item
+On the Alliant, the system's own convention for returning structures
+and unions is unusual, and is not compatible with GNU CC no matter
+what options are used.
+
+@cindex RT PC
+@cindex IBM RT PC
+@item
+On the IBM RT PC, the MetaWare HighC compiler (hc) uses a different
+convention for structure and union returning.  Use the option
+@samp{-mhc-struct-return} to tell GNU CC to use a convention compatible
+with it.
+
+@cindex Vax calling convention
+@cindex Ultrix calling convention
+@item
+On Ultrix, the Fortran compiler expects registers 2 through 5 to be saved
+by function calls.  However, the C compiler uses conventions compatible
+with BSD Unix: registers 2 through 5 may be clobbered by function calls.
+
+GNU CC uses the same convention as the Ultrix C compiler.  You can use
+these options to produce code compatible with the Fortran compiler:
+
+@smallexample
+-fcall-saved-r2 -fcall-saved-r3 -fcall-saved-r4 -fcall-saved-r5
+@end smallexample
+
+@item
+On the WE32k, you may find that programs compiled with GNU CC do not
+work with the standard shared C library.  You may need to link with
+the ordinary C compiler.  If you do so, you must specify the following
+options:
+
+@smallexample
+-L/usr/local/lib/gcc-lib/we32k-att-sysv/2.7.1 -lgcc -lc_s
+@end smallexample
+
+The first specifies where to find the library @file{libgcc.a}
+specified with the @samp{-lgcc} option.
+
+GNU CC does linking by invoking @code{ld}, just as @code{cc} does, and
+there is no reason why it @emph{should} matter which compilation program
+you use to invoke @code{ld}.  If someone tracks this problem down,
+it can probably be fixed easily.
+
+@item
+On the Alpha, you may get assembler errors about invalid syntax as a
+result of floating point constants.  This is due to a bug in the C
+library functions @code{ecvt}, @code{fcvt} and @code{gcvt}.  Given valid
+floating point numbers, they sometimes print @samp{NaN}.
+
+@item
+On Irix 4.0.5F (and perhaps in some other versions), an assembler bug
+sometimes reorders instructions incorrectly when optimization is turned
+on.  If you think this may be happening to you, try using the GNU
+assembler; GAS version 2.1 supports ECOFF on Irix.
+
+Or use the @samp{-noasmopt} option when you compile GNU CC with itself,
+and then again when you compile your program.  (This is a temporary
+kludge to turn off assembler optimization on Irix.)  If this proves to
+be what you need, edit the assembler spec in the file @file{specs} so
+that it unconditionally passes @samp{-O0} to the assembler, and never
+passes @samp{-O2} or @samp{-O3}.
+@end itemize
+
+@node External Bugs
+@section Problems Compiling Certain Programs
+
+@c prevent bad page break with this line
+Certain programs have problems compiling.
+
+@itemize @bullet
+@item
+Parse errors may occur compiling X11 on a Decstation running Ultrix 4.2
+because of problems in DEC's versions of the X11 header files
+@file{X11/Xlib.h} and @file{X11/Xutil.h}.  People recommend adding
+@samp{-I/usr/include/mit} to use the MIT versions of the header files,
+using the @samp{-traditional} switch to turn off ANSI C, or fixing the
+header files by adding this:
+
+@example
+#ifdef __STDC__
+#define NeedFunctionPrototypes 0
+#endif
+@end example
+
+@item
+If you have trouble compiling Perl on a SunOS 4 system, it may be
+because Perl specifies @samp{-I/usr/ucbinclude}.  This accesses the
+unfixed header files.  Perl specifies the options
+
+@example
+-traditional -Dvolatile=__volatile__
+-I/usr/include/sun -I/usr/ucbinclude
+-fpcc-struct-return
+@end example
+
+@noindent
+most of which are unnecessary with GCC 2.4.5 and newer versions.  You
+can make a properly working Perl by setting @code{ccflags} to
+@samp{-fwritable-strings} (implied by the @samp{-traditional} in the
+original options) and @code{cppflags} to empty in @file{config.sh}, then
+typing @samp{./doSH; make depend; make}.
+
+@item
+On various 386 Unix systems derived from System V, including SCO, ISC,
+and ESIX, you may get error messages about running out of virtual memory
+while compiling certain programs.
+
+You can prevent this problem by linking GNU CC with the GNU malloc
+(which thus replaces the malloc that comes with the system).  GNU malloc
+is available as a separate package, and also in the file
+@file{src/gmalloc.c} in the GNU Emacs 19 distribution.
+
+If you have installed GNU malloc as a separate library package, use this
+option when you relink GNU CC:
+
+@example
+MALLOC=/usr/local/lib/libgmalloc.a
+@end example
+
+Alternatively, if you have compiled @file{gmalloc.c} from Emacs 19, copy
+the object file to @file{gmalloc.o} and use this option when you relink
+GNU CC:
+
+@example
+MALLOC=gmalloc.o
+@end example
+@end itemize
+
+@node Incompatibilities
+@section Incompatibilities of GNU CC
+@cindex incompatibilities of GNU CC
+
+There are several noteworthy incompatibilities between GNU C and most
+existing (non-ANSI) versions of C.  The @samp{-traditional} option
+eliminates many of these incompatibilities, @emph{but not all}, by
+telling GNU C to behave like the other C compilers.
+
+@itemize @bullet
+@cindex string constants
+@cindex read-only strings
+@cindex shared strings
+@item
+GNU CC normally makes string constants read-only.  If several
+identical-looking string constants are used, GNU CC stores only one
+copy of the string.
+
+@cindex @code{mktemp}, and constant strings
+One consequence is that you cannot call @code{mktemp} with a string
+constant argument.  The function @code{mktemp} always alters the
+string its argument points to.
+
+@cindex @code{sscanf}, and constant strings
+@cindex @code{fscanf}, and constant strings
+@cindex @code{scanf}, and constant strings
+Another consequence is that @code{sscanf} does not work on some systems
+when passed a string constant as its format control string or input.
+This is because @code{sscanf} incorrectly tries to write into the string
+constant.  Likewise @code{fscanf} and @code{scanf}.
+
+The best solution to these problems is to change the program to use
+@code{char}-array variables with initialization strings for these
+purposes instead of string constants.  But if this is not possible,
+you can use the @samp{-fwritable-strings} flag, which directs GNU CC
+to handle string constants the same way most C compilers do.
+@samp{-traditional} also has this effect, among others.
+
+@item
+@code{-2147483648} is positive.
+
+This is because 2147483648 cannot fit in the type @code{int}, so
+(following the ANSI C rules) its data type is @code{unsigned long int}.
+Negating this value yields 2147483648 again.
+
+@item
+GNU CC does not substitute macro arguments when they appear inside of
+string constants.  For example, the following macro in GNU CC
+
+@example
+#define foo(a) "a"
+@end example
+
+@noindent
+will produce output @code{"a"} regardless of what the argument @var{a} is.
+
+The @samp{-traditional} option directs GNU CC to handle such cases
+(among others) in the old-fashioned (non-ANSI) fashion.
+
+@cindex @code{setjmp} incompatibilities
+@cindex @code{longjmp} incompatibilities
+@item
+When you use @code{setjmp} and @code{longjmp}, the only automatic
+variables guaranteed to remain valid are those declared
+@code{volatile}.  This is a consequence of automatic register
+allocation.  Consider this function:
+
+@example
+jmp_buf j;
+
+foo ()
+@{
+  int a, b;
+
+  a = fun1 ();
+  if (setjmp (j))
+    return a;
+
+  a = fun2 ();
+  /* @r{@code{longjmp (j)} may occur in @code{fun3}.} */
+  return a + fun3 ();
+@}
+@end example
+
+Here @code{a} may or may not be restored to its first value when the
+@code{longjmp} occurs.  If @code{a} is allocated in a register, then
+its first value is restored; otherwise, it keeps the last value stored
+in it.
+
+If you use the @samp{-W} option with the @samp{-O} option, you will
+get a warning when GNU CC thinks such a problem might be possible.
+
+The @samp{-traditional} option directs GNU C to put variables in
+the stack by default, rather than in registers, in functions that
+call @code{setjmp}.  This results in the behavior found in
+traditional C compilers.
+
+@item
+Programs that use preprocessing directives in the middle of macro
+arguments do not work with GNU CC.  For example, a program like this
+will not work:
+
+@example
+foobar (
+#define luser
+        hack)
+@end example
+
+ANSI C does not permit such a construct.  It would make sense to support
+it when @samp{-traditional} is used, but it is too much work to
+implement.
+
+@cindex external declaration scope
+@cindex scope of external declarations
+@cindex declaration scope
+@item
+Declarations of external variables and functions within a block apply
+only to the block containing the declaration.  In other words, they
+have the same scope as any other declaration in the same place.
+
+In some other C compilers, a @code{extern} declaration affects all the
+rest of the file even if it happens within a block.
+
+The @samp{-traditional} option directs GNU C to treat all @code{extern}
+declarations as global, like traditional compilers.
+
+@item
+In traditional C, you can combine @code{long}, etc., with a typedef name,
+as shown here:
+
+@example
+typedef int foo;
+typedef long foo bar;
+@end example
+
+In ANSI C, this is not allowed: @code{long} and other type modifiers
+require an explicit @code{int}.  Because this criterion is expressed
+by Bison grammar rules rather than C code, the @samp{-traditional}
+flag cannot alter it.
+
+@cindex typedef names as function parameters
+@item
+PCC allows typedef names to be used as function parameters.  The
+difficulty described immediately above applies here too.
+
+@cindex whitespace
+@item
+PCC allows whitespace in the middle of compound assignment operators
+such as @samp{+=}.  GNU CC, following the ANSI standard, does not
+allow this.  The difficulty described immediately above applies here
+too.
+
+@cindex apostrophes
+@cindex '
+@item
+GNU CC complains about unterminated character constants inside of
+preprocessing conditionals that fail.  Some programs have English
+comments enclosed in conditionals that are guaranteed to fail; if these
+comments contain apostrophes, GNU CC will probably report an error.  For
+example, this code would produce an error:
+
+@example
+#if 0
+You can't expect this to work.
+#endif
+@end example
+
+The best solution to such a problem is to put the text into an actual
+C comment delimited by @samp{/*@dots{}*/}.  However,
+@samp{-traditional} suppresses these error messages.
+
+@item
+Many user programs contain the declaration @samp{long time ();}.  In the
+past, the system header files on many systems did not actually declare
+@code{time}, so it did not matter what type your program declared it to
+return.  But in systems with ANSI C headers, @code{time} is declared to
+return @code{time_t}, and if that is not the same as @code{long}, then
+@samp{long time ();} is erroneous.
+
+The solution is to change your program to use @code{time_t} as the return
+type of @code{time}.
+
+@cindex @code{float} as function value type
+@item
+When compiling functions that return @code{float}, PCC converts it to
+a double.  GNU CC actually returns a @code{float}.  If you are concerned
+with PCC compatibility, you should declare your functions to return
+@code{double}; you might as well say what you mean.
+
+@cindex structures
+@cindex unions
+@item
+When compiling functions that return structures or unions, GNU CC
+output code normally uses a method different from that used on most
+versions of Unix.  As a result, code compiled with GNU CC cannot call
+a structure-returning function compiled with PCC, and vice versa.
+
+The method used by GNU CC is as follows: a structure or union which is
+1, 2, 4 or 8 bytes long is returned like a scalar.  A structure or union
+with any other size is stored into an address supplied by the caller
+(usually in a special, fixed register, but on some machines it is passed
+on the stack).  The machine-description macros @code{STRUCT_VALUE} and
+@code{STRUCT_INCOMING_VALUE} tell GNU CC where to pass this address.
+
+By contrast, PCC on most target machines returns structures and unions
+of any size by copying the data into an area of static storage, and then
+returning the address of that storage as if it were a pointer value.
+The caller must copy the data from that memory area to the place where
+the value is wanted.  GNU CC does not use this method because it is
+slower and nonreentrant.
+
+On some newer machines, PCC uses a reentrant convention for all
+structure and union returning.  GNU CC on most of these machines uses a
+compatible convention when returning structures and unions in memory,
+but still returns small structures and unions in registers.
+
+You can tell GNU CC to use a compatible convention for all structure and
+union returning with the option @samp{-fpcc-struct-return}.
+
+@cindex preprocessing tokens
+@cindex preprocessing numbers
+@item
+GNU C complains about program fragments such as @samp{0x74ae-0x4000}
+which appear to be two hexadecimal constants separated by the minus
+operator.  Actually, this string is a single @dfn{preprocessing token}.
+Each such token must correspond to one token in C.  Since this does not,
+GNU C prints an error message.  Although it may appear obvious that what
+is meant is an operator and two values, the ANSI C standard specifically
+requires that this be treated as erroneous.
+
+A @dfn{preprocessing token} is a @dfn{preprocessing number} if it
+begins with a digit and is followed by letters, underscores, digits,
+periods and @samp{e+}, @samp{e-}, @samp{E+}, or @samp{E-} character
+sequences.
+
+To make the above program fragment valid, place whitespace in front of
+the minus sign.  This whitespace will end the preprocessing number.
+@end itemize
+
+@node Fixed Headers
+@section Fixed Header Files
+
+GNU CC needs to install corrected versions of some system header files.
+This is because most target systems have some header files that won't
+work with GNU CC unless they are changed.  Some have bugs, some are
+incompatible with ANSI C, and some depend on special features of other
+compilers.
+
+Installing GNU CC automatically creates and installs the fixed header
+files, by running a program called @code{fixincludes} (or for certain
+targets an alternative such as @code{fixinc.svr4}).  Normally, you
+don't need to pay attention to this.  But there are cases where it
+doesn't do the right thing automatically.
+
+@itemize @bullet
+@item
+If you update the system's header files, such as by installing a new
+system version, the fixed header files of GNU CC are not automatically
+updated.  The easiest way to update them is to reinstall GNU CC.  (If
+you want to be clever, look in the makefile and you can find a
+shortcut.)
+
+@item
+On some systems, in particular SunOS 4, header file directories contain
+machine-specific symbolic links in certain places.  This makes it
+possible to share most of the header files among hosts running the
+same version of SunOS 4 on different machine models.
+
+The programs that fix the header files do not understand this special
+way of using symbolic links; therefore, the directory of fixed header
+files is good only for the machine model used to build it.
+
+In SunOS 4, only programs that look inside the kernel will notice the
+difference between machine models.  Therefore, for most purposes, you
+need not be concerned about this.
+
+It is possible to make separate sets of fixed header files for the
+different machine models, and arrange a structure of symbolic links so
+as to use the proper set, but you'll have to do this by hand.
+
+@item
+On Lynxos, GNU CC by default does not fix the header files.  This is
+because bugs in the shell cause the @code{fixincludes} script to fail.
+
+This means you will encounter problems due to bugs in the system header
+files.  It may be no comfort that they aren't GNU CC's fault, but it
+does mean that there's nothing for us to do about them.
+@end itemize
+
+@node Standard Libraries
+@section Standard Libraries
+
+GNU CC by itself attempts to be what the ISO/ANSI C standard calls a
+@dfn{conforming freestanding implementation}.  This means all ANSI
+C language features are available, as well as the contents of
+@file{float.h}, @file{limits.h}, @file{stdarg.h}, and
+@file{stddef.h}.  The rest of the C library is supplied by the
+vendor of the operating system.  If that C library doesn't conform to
+the C standards, then your programs might get warnings (especially when
+using @samp{-Wall}) that you don't expect.
+
+For example, the @code{sprintf} function on SunOS 4.1.3 returns
+@code{char *} while the C standard says that @code{sprintf} returns an
+@code{int}.  The @code{fixincludes} program could make the prototype for
+this function match the Standard, but that would be wrong, since the
+function will still return @code{char *}.
+
+If you need a Standard compliant library, then you need to find one, as
+GNU CC does not provide one.  The GNU C library (called @code{glibc})
+has been ported to a number of operating systems, and provides ANSI/ISO,
+POSIX, BSD and SystemV compatibility.  You could also ask your operating
+system vendor if newer libraries are available.
+
+@node Disappointments
+@section Disappointments and Misunderstandings
+
+These problems are perhaps regrettable, but we don't know any practical
+way around them.
+
+@itemize @bullet
+@item
+Certain local variables aren't recognized by debuggers when you compile
+with optimization.
+
+This occurs because sometimes GNU CC optimizes the variable out of
+existence.  There is no way to tell the debugger how to compute the
+value such a variable ``would have had'', and it is not clear that would
+be desirable anyway.  So GNU CC simply does not mention the eliminated
+variable when it writes debugging information.
+
+You have to expect a certain amount of disagreement between the
+executable and your source code, when you use optimization.
+
+@cindex conflicting types
+@cindex scope of declaration
+@item
+Users often think it is a bug when GNU CC reports an error for code
+like this:
+
+@example
+int foo (struct mumble *);
+
+struct mumble @{ @dots{} @};
+
+int foo (struct mumble *x)
+@{ @dots{} @}
+@end example
+
+This code really is erroneous, because the scope of @code{struct
+mumble} in the prototype is limited to the argument list containing it.
+It does not refer to the @code{struct mumble} defined with file scope
+immediately below---they are two unrelated types with similar names in
+different scopes.
+
+But in the definition of @code{foo}, the file-scope type is used
+because that is available to be inherited.  Thus, the definition and
+the prototype do not match, and you get an error.
+
+This behavior may seem silly, but it's what the ANSI standard specifies.
+It is easy enough for you to make your code work by moving the
+definition of @code{struct mumble} above the prototype.  It's not worth
+being incompatible with ANSI C just to avoid an error for the example
+shown above.
+
+@item
+Accesses to bitfields even in volatile objects works by accessing larger
+objects, such as a byte or a word.  You cannot rely on what size of
+object is accessed in order to read or write the bitfield; it may even
+vary for a given bitfield according to the precise usage.
+
+If you care about controlling the amount of memory that is accessed, use
+volatile but do not use bitfields.
+
+@item
+GNU CC comes with shell scripts to fix certain known problems in system
+header files.  They install corrected copies of various header files in
+a special directory where only GNU CC will normally look for them.  The
+scripts adapt to various systems by searching all the system header
+files for the problem cases that we know about.
+
+If new system header files are installed, nothing automatically arranges
+to update the corrected header files.  You will have to reinstall GNU CC
+to fix the new header files.  More specifically, go to the build
+directory and delete the files @file{stmp-fixinc} and
+@file{stmp-headers}, and the subdirectory @code{include}; then do
+@samp{make install} again.
+
+@item
+@cindex floating point precision
+On 68000 and x86 systems, for instance, you can get paradoxical results
+if you test the precise values of floating point numbers.  For example,
+you can find that a floating point value which is not a NaN is not equal
+to itself.  This results from the fact that the floating point registers
+hold a few more bits of precision than fit in a @code{double} in memory.
+Compiled code moves values between memory and floating point registers
+at its convenience, and moving them into memory truncates them.
+
+You can partially avoid this problem by using the @samp{-ffloat-store}
+option (@pxref{Optimize Options}).
+
+@item
+On the MIPS, variable argument functions using @file{varargs.h}
+cannot have a floating point value for the first argument.  The
+reason for this is that in the absence of a prototype in scope,
+if the first argument is a floating point, it is passed in a
+floating point register, rather than an integer register.
+
+If the code is rewritten to use the ANSI standard @file{stdarg.h}
+method of variable arguments, and the prototype is in scope at
+the time of the call, everything will work fine.
+
+@item
+On the H8/300 and H8/300H, variable argument functions must be
+implemented using the ANSI standard @file{stdarg.h} method of
+variable arguments.  Furthermore, calls to functions using @file{stdarg.h}
+variable arguments must have a prototype for the called function
+in scope at the time of the call.
+@end itemize
+
+@node C++ Misunderstandings
+@section Common Misunderstandings with GNU C++
+
+@cindex misunderstandings in C++
+@cindex surprises in C++
+@cindex C++ misunderstandings
+C++ is a complex language and an evolving one, and its standard definition
+(the ANSI C++ draft standard) is also evolving.  As a result,
+your C++ compiler may occasionally surprise you, even when its behavior is
+correct.  This section discusses some areas that frequently give rise to
+questions of this sort.
+
+@menu
+* Static Definitions::  Static member declarations are not definitions
+* Temporaries::         Temporaries may vanish before you expect
+@end menu
+
+@node Static Definitions
+@subsection Declare @emph{and} Define Static Members
+
+@cindex C++ static data, declaring and defining
+@cindex static data in C++, declaring and defining
+@cindex declaring static data in C++
+@cindex defining static data in C++
+When a class has static data members, it is not enough to @emph{declare}
+the static member; you must also @emph{define} it.  For example:
+
+@example
+class Foo
+@{
+  @dots{}
+  void method();
+  static int bar;
+@};
+@end example
+
+This declaration only establishes that the class @code{Foo} has an
+@code{int} named @code{Foo::bar}, and a member function named
+@code{Foo::method}.  But you still need to define @emph{both}
+@code{method} and @code{bar} elsewhere.  According to the draft ANSI
+standard, you must supply an initializer in one (and only one) source
+file, such as:
+
+@example
+int Foo::bar = 0;
+@end example
+
+Other C++ compilers may not correctly implement the standard behavior.
+As a result, when you switch to @code{g++} from one of these compilers,
+you may discover that a program that appeared to work correctly in fact
+does not conform to the standard: @code{g++} reports as undefined
+symbols any static data members that lack definitions.
+
+@node Temporaries
+@subsection Temporaries May Vanish Before You Expect
+
+@cindex temporaries, lifetime of
+@cindex portions of temporary objects, pointers to
+It is dangerous to use pointers or references to @emph{portions} of a
+temporary object.  The compiler may very well delete the object before
+you expect it to, leaving a pointer to garbage.  The most common place
+where this problem crops up is in classes like the libg++
+@code{String} class, that define a conversion function to type
+@code{char *} or @code{const char *}.  However, any class that returns
+a pointer to some internal structure is potentially subject to this
+problem.
+
+For example, a program may use a function @code{strfunc} that returns
+@code{String} objects, and another function @code{charfunc} that
+operates on pointers to @code{char}:
+
+@example
+String strfunc ();
+void charfunc (const char *);
+@end example
+
+@noindent
+In this situation, it may seem natural to write @w{@samp{charfunc
+(strfunc ());}} based on the knowledge that class @code{String} has an
+explicit conversion to @code{char} pointers.  However, what really
+happens is akin to @samp{charfunc (@w{strfunc ()}.@w{convert ()});},
+where the @code{convert} method is a function to do the same data
+conversion normally performed by a cast.  Since the last use of the
+temporary @code{String} object is the call to the conversion function,
+the compiler may delete that object before actually calling
+@code{charfunc}.  The compiler has no way of knowing that deleting the
+@code{String} object will invalidate the pointer.  The pointer then
+points to garbage, so that by the time @code{charfunc} is called, it
+gets an invalid argument.
+
+Code like this may run successfully under some other compilers,
+especially those that delete temporaries relatively late.  However, the
+GNU C++ behavior is also standard-conforming, so if your program depends
+on late destruction of temporaries it is not portable.
+
+If you think this is surprising, you should be aware that the ANSI C++
+committee continues to debate the lifetime-of-temporaries problem.
+
+For now, at least, the safe way to write such code is to give the
+temporary a name, which forces it to remain until the end of the scope of
+the name.  For example:
+
+@example
+String& tmp = strfunc ();
+charfunc (tmp);
+@end example
+
+@node Protoize Caveats
+@section Caveats of using @code{protoize}
+
+The conversion programs @code{protoize} and @code{unprotoize} can
+sometimes change a source file in a way that won't work unless you
+rearrange it.
+
+@itemize @bullet
+@item
+@code{protoize} can insert references to a type name or type tag before
+the definition, or in a file where they are not defined.
+
+If this happens, compiler error messages should show you where the new
+references are, so fixing the file by hand is straightforward.
+
+@item
+There are some C constructs which @code{protoize} cannot figure out.
+For example, it can't determine argument types for declaring a
+pointer-to-function variable; this you must do by hand.  @code{protoize}
+inserts a comment containing @samp{???} each time it finds such a
+variable; so you can find all such variables by searching for this
+string.  ANSI C does not require declaring the argument types of
+pointer-to-function types.
+
+@item
+Using @code{unprotoize} can easily introduce bugs.  If the program
+relied on prototypes to bring about conversion of arguments, these
+conversions will not take place in the program without prototypes.
+One case in which you can be sure @code{unprotoize} is safe is when
+you are removing prototypes that were made with @code{protoize}; if
+the program worked before without any prototypes, it will work again
+without them.
+
+You can find all the places where this problem might occur by compiling
+the program with the @samp{-Wconversion} option.  It prints a warning
+whenever an argument is converted.
+
+@item
+Both conversion programs can be confused if there are macro calls in and
+around the text to be converted.  In other words, the standard syntax
+for a declaration or definition must not result from expanding a macro.
+This problem is inherent in the design of C and cannot be fixed.  If
+only a few functions have confusing macro calls, you can easily convert
+them manually.
+
+@item
+@code{protoize} cannot get the argument types for a function whose
+definition was not actually compiled due to preprocessing conditionals.
+When this happens, @code{protoize} changes nothing in regard to such
+a function.  @code{protoize} tries to detect such instances and warn
+about them.
+
+You can generally work around this problem by using @code{protoize} step
+by step, each time specifying a different set of @samp{-D} options for
+compilation, until all of the functions have been converted.  There is
+no automatic way to verify that you have got them all, however.
+
+@item
+Confusion may result if there is an occasion to convert a function
+declaration or definition in a region of source code where there is more
+than one formal parameter list present.  Thus, attempts to convert code
+containing multiple (conditionally compiled) versions of a single
+function header (in the same vicinity) may not produce the desired (or
+expected) results.
+
+If you plan on converting source files which contain such code, it is
+recommended that you first make sure that each conditionally compiled
+region of source code which contains an alternative function header also
+contains at least one additional follower token (past the final right
+parenthesis of the function header).  This should circumvent the
+problem.
+
+@item
+@code{unprotoize} can become confused when trying to convert a function
+definition or declaration which contains a declaration for a
+pointer-to-function formal argument which has the same name as the
+function being defined or declared.  We recommand you avoid such choices
+of formal parameter names.
+
+@item
+You might also want to correct some of the indentation by hand and break
+long lines.  (The conversion programs don't write lines longer than
+eighty characters in any case.)
+@end itemize
+
+@node Non-bugs
+@section Certain Changes We Don't Want to Make
+
+This section lists changes that people frequently request, but which
+we do not make because we think GNU CC is better without them.
+
+@itemize @bullet
+@item
+Checking the number and type of arguments to a function which has an
+old-fashioned definition and no prototype.
+
+Such a feature would work only occasionally---only for calls that appear
+in the same file as the called function, following the definition.  The
+only way to check all calls reliably is to add a prototype for the
+function.  But adding a prototype eliminates the motivation for this
+feature.  So the feature is not worthwhile.
+
+@item
+Warning about using an expression whose type is signed as a shift count.
+
+Shift count operands are probably signed more often than unsigned.
+Warning about this would cause far more annoyance than good.
+
+@item
+Warning about assigning a signed value to an unsigned variable.
+
+Such assignments must be very common; warning about them would cause
+more annoyance than good.
+
+@item
+Warning about unreachable code.
+
+It's very common to have unreachable code in machine-generated
+programs.  For example, this happens normally in some files of GNU C
+itself.
+
+@item
+Warning when a non-void function value is ignored.
+
+Coming as I do from a Lisp background, I balk at the idea that there is
+something dangerous about discarding a value.  There are functions that
+return values which some callers may find useful; it makes no sense to
+clutter the program with a cast to @code{void} whenever the value isn't
+useful.
+
+@item
+Assuming (for optimization) that the address of an external symbol is
+never zero.
+
+This assumption is false on certain systems when @samp{#pragma weak} is
+used.
+
+@item
+Making @samp{-fshort-enums} the default.
+
+This would cause storage layout to be incompatible with most other C
+compilers.  And it doesn't seem very important, given that you can get
+the same result in other ways.  The case where it matters most is when
+the enumeration-valued object is inside a structure, and in that case
+you can specify a field width explicitly.
+
+@item
+Making bitfields unsigned by default on particular machines where ``the
+ABI standard'' says to do so.
+
+The ANSI C standard leaves it up to the implementation whether a bitfield
+declared plain @code{int} is signed or not.  This in effect creates two
+alternative dialects of C.
+
+The GNU C compiler supports both dialects; you can specify the signed
+dialect with @samp{-fsigned-bitfields} and the unsigned dialect with
+@samp{-funsigned-bitfields}.  However, this leaves open the question of
+which dialect to use by default.
+
+Currently, the preferred dialect makes plain bitfields signed, because
+this is simplest.  Since @code{int} is the same as @code{signed int} in
+every other context, it is cleanest for them to be the same in bitfields
+as well.
+
+Some computer manufacturers have published Application Binary Interface
+standards which specify that plain bitfields should be unsigned.  It is
+a mistake, however, to say anything about this issue in an ABI.  This is
+because the handling of plain bitfields distinguishes two dialects of C.
+Both dialects are meaningful on every type of machine.  Whether a
+particular object file was compiled using signed bitfields or unsigned
+is of no concern to other object files, even if they access the same
+bitfields in the same data structures.
+
+A given program is written in one or the other of these two dialects.
+The program stands a chance to work on most any machine if it is
+compiled with the proper dialect.  It is unlikely to work at all if
+compiled with the wrong dialect.
+
+Many users appreciate the GNU C compiler because it provides an
+environment that is uniform across machines.  These users would be
+inconvenienced if the compiler treated plain bitfields differently on
+certain machines.
+
+Occasionally users write programs intended only for a particular machine
+type.  On these occasions, the users would benefit if the GNU C compiler
+were to support by default the same dialect as the other compilers on
+that machine.  But such applications are rare.  And users writing a
+program to run on more than one type of machine cannot possibly benefit
+from this kind of compatibility.
+
+This is why GNU CC does and will treat plain bitfields in the same
+fashion on all types of machines (by default).
+
+There are some arguments for making bitfields unsigned by default on all
+machines.  If, for example, this becomes a universal de facto standard,
+it would make sense for GNU CC to go along with it.  This is something
+to be considered in the future.
+
+(Of course, users strongly concerned about portability should indicate
+explicitly in each bitfield whether it is signed or not.  In this way,
+they write programs which have the same meaning in both C dialects.)
+
+@item
+Undefining @code{__STDC__} when @samp{-ansi} is not used.
+
+Currently, GNU CC defines @code{__STDC__} as long as you don't use
+@samp{-traditional}.  This provides good results in practice.
+
+Programmers normally use conditionals on @code{__STDC__} to ask whether
+it is safe to use certain features of ANSI C, such as function
+prototypes or ANSI token concatenation.  Since plain @samp{gcc} supports
+all the features of ANSI C, the correct answer to these questions is
+``yes''.
+
+Some users try to use @code{__STDC__} to check for the availability of
+certain library facilities.  This is actually incorrect usage in an ANSI
+C program, because the ANSI C standard says that a conforming
+freestanding implementation should define @code{__STDC__} even though it
+does not have the library facilities.  @samp{gcc -ansi -pedantic} is a
+conforming freestanding implementation, and it is therefore required to
+define @code{__STDC__}, even though it does not come with an ANSI C
+library.
+
+Sometimes people say that defining @code{__STDC__} in a compiler that
+does not completely conform to the ANSI C standard somehow violates the
+standard.  This is illogical.  The standard is a standard for compilers
+that claim to support ANSI C, such as @samp{gcc -ansi}---not for other
+compilers such as plain @samp{gcc}.  Whatever the ANSI C standard says
+is relevant to the design of plain @samp{gcc} without @samp{-ansi} only
+for pragmatic reasons, not as a requirement.
+
+@item
+Undefining @code{__STDC__} in C++.
+
+Programs written to compile with C++-to-C translators get the
+value of @code{__STDC__} that goes with the C compiler that is
+subsequently used.  These programs must test @code{__STDC__}
+to determine what kind of C preprocessor that compiler uses:
+whether they should concatenate tokens in the ANSI C fashion
+or in the traditional fashion.
+
+These programs work properly with GNU C++ if @code{__STDC__} is defined.
+They would not work otherwise.
+
+In addition, many header files are written to provide prototypes in ANSI
+C but not in traditional C.  Many of these header files can work without
+change in C++ provided @code{__STDC__} is defined.  If @code{__STDC__}
+is not defined, they will all fail, and will all need to be changed to
+test explicitly for C++ as well.
+
+@item
+Deleting ``empty'' loops.
+
+GNU CC does not delete ``empty'' loops because the most likely reason
+you would put one in a program is to have a delay.  Deleting them will
+not make real programs run any faster, so it would be pointless.
+
+It would be different if optimization of a nonempty loop could produce
+an empty one.  But this generally can't happen.
+
+@item
+Making side effects happen in the same order as in some other compiler.
+
+@cindex side effects, order of evaluation
+@cindex order of evaluation, side effects
+It is never safe to depend on the order of evaluation of side effects.
+For example, a function call like this may very well behave differently
+from one compiler to another:
+
+@example
+void func (int, int);
+
+int i = 2;
+func (i++, i++);
+@end example
+
+There is no guarantee (in either the C or the C++ standard language
+definitions) that the increments will be evaluated in any particular
+order.  Either increment might happen first.  @code{func} might get the
+arguments @samp{2, 3}, or it might get @samp{3, 2}, or even @samp{2, 2}.
+
+@item
+Not allowing structures with volatile fields in registers.
+
+Strictly speaking, there is no prohibition in the ANSI C standard
+against allowing structures with volatile fields in registers, but
+it does not seem to make any sense and is probably not what you wanted
+to do.  So the compiler will give an error message in this case.
+@end itemize
+
+@node Warnings and Errors
+@section Warning Messages and Error Messages
+
+@cindex error messages
+@cindex warnings vs errors
+@cindex messages, warning and error
+The GNU compiler can produce two kinds of diagnostics: errors and
+warnings.  Each kind has a different purpose:
+
+@itemize @w{}
+@item
+@emph{Errors} report problems that make it impossible to compile your
+program.  GNU CC reports errors with the source file name and line
+number where the problem is apparent.
+
+@item
+@emph{Warnings} report other unusual conditions in your code that
+@emph{may} indicate a problem, although compilation can (and does)
+proceed.  Warning messages also report the source file name and line
+number, but include the text @samp{warning:} to distinguish them
+from error messages.
+@end itemize
+
+Warnings may indicate danger points where you should check to make sure
+that your program really does what you intend; or the use of obsolete
+features; or the use of nonstandard features of GNU C or C++.  Many
+warnings are issued only if you ask for them, with one of the @samp{-W}
+options (for instance, @samp{-Wall} requests a variety of useful
+warnings).
+
+GNU CC always tries to compile your program if possible; it never
+gratuitously rejects a program whose meaning is clear merely because
+(for instance) it fails to conform to a standard.  In some cases,
+however, the C and C++ standards specify that certain extensions are
+forbidden, and a diagnostic @emph{must} be issued by a conforming
+compiler.  The @samp{-pedantic} option tells GNU CC to issue warnings in
+such cases; @samp{-pedantic-errors} says to make them errors instead.
+This does not mean that @emph{all} non-ANSI constructs get warnings
+or errors.
+
+@xref{Warning Options,,Options to Request or Suppress Warnings}, for
+more detail on these and related command-line options.
+
+@node Bugs
+@chapter Reporting Bugs
+@cindex bugs
+@cindex reporting bugs
+
+Your bug reports play an essential role in making GNU CC reliable.
+
+When you encounter a problem, the first thing to do is to see if it is
+already known.  @xref{Trouble}.  If it isn't known, then you should
+report the problem.
+
+Reporting a bug may help you by bringing a solution to your problem, or
+it may not.  (If it does not, look in the service directory; see
+@ref{Service}.)  In any case, the principal function of a bug report is
+to help the entire community by making the next version of GNU CC work
+better.  Bug reports are your contribution to the maintenance of GNU CC.
+
+Since the maintainers are very overloaded, we cannot respond to every
+bug report.  However, if the bug has not been fixed, we are likely to
+send you a patch and ask you to tell us whether it works.
+
+In order for a bug report to serve its purpose, you must include the
+information that makes for fixing the bug.
+
+@menu
+* Criteria:  Bug Criteria.   Have you really found a bug?
+* Where: Bug Lists.	     Where to send your bug report.
+* Reporting: Bug Reporting.  How to report a bug effectively.
+* Patches: Sending Patches.  How to send a patch for GNU CC.
+* Known: Trouble.            Known problems.
+* Help: Service.             Where to ask for help.
+@end menu
+
+@node Bug Criteria
+@section Have You Found a Bug?
+@cindex bug criteria
+
+If you are not sure whether you have found a bug, here are some guidelines:
+
+@itemize @bullet
+@cindex fatal signal
+@cindex core dump
+@item
+If the compiler gets a fatal signal, for any input whatever, that is a
+compiler bug.  Reliable compilers never crash.
+
+@cindex invalid assembly code
+@cindex assembly code, invalid
+@item
+If the compiler produces invalid assembly code, for any input whatever
+(except an @code{asm} statement), that is a compiler bug, unless the
+compiler reports errors (not just warnings) which would ordinarily
+prevent the assembler from being run.
+
+@cindex undefined behavior
+@cindex undefined function value
+@cindex increment operators
+@item
+If the compiler produces valid assembly code that does not correctly
+execute the input source code, that is a compiler bug.
+
+However, you must double-check to make sure, because you may have run
+into an incompatibility between GNU C and traditional C
+(@pxref{Incompatibilities}).  These incompatibilities might be considered
+bugs, but they are inescapable consequences of valuable features.
+
+Or you may have a program whose behavior is undefined, which happened
+by chance to give the desired results with another C or C++ compiler.
+
+For example, in many nonoptimizing compilers, you can write @samp{x;}
+at the end of a function instead of @samp{return x;}, with the same
+results.  But the value of the function is undefined if @code{return}
+is omitted; it is not a bug when GNU CC produces different results.
+
+Problems often result from expressions with two increment operators,
+as in @code{f (*p++, *p++)}.  Your previous compiler might have
+interpreted that expression the way you intended; GNU CC might
+interpret it another way.  Neither compiler is wrong.  The bug is
+in your code.
+
+After you have localized the error to a single source line, it should
+be easy to check for these things.  If your program is correct and
+well defined, you have found a compiler bug.
+
+@item
+If the compiler produces an error message for valid input, that is a
+compiler bug.
+
+@cindex invalid input
+@item
+If the compiler does not produce an error message for invalid input,
+that is a compiler bug.  However, you should note that your idea of
+``invalid input'' might be my idea of ``an extension'' or ``support
+for traditional practice''.
+
+@item
+If you are an experienced user of C or C++ compilers, your suggestions
+for improvement of GNU CC or GNU C++ are welcome in any case.
+@end itemize
+
+@node Bug Lists
+@section Where to Report Bugs
+@cindex bug report mailing lists
+@kindex bug-gcc@@prep.ai.mit.edu
+Send bug reports for GNU C to @samp{bug-gcc@@prep.ai.mit.edu}.
+
+@kindex bug-g++@@prep.ai.mit.edu
+@kindex bug-libg++@@prep.ai.mit.edu
+Send bug reports for GNU C++ to @samp{bug-g++@@prep.ai.mit.edu}.  If
+your bug involves the C++ class library libg++, send mail instead to the
+address @samp{bug-lib-g++@@prep.ai.mit.edu}.  If you're not sure, you
+can send the bug report to both lists.
+
+@strong{Do not send bug reports to @samp{help-gcc@@prep.ai.mit.edu} or
+to the newsgroup @samp{gnu.gcc.help}.} Most users of GNU CC do not want
+to receive bug reports.  Those that do, have asked to be on
+@samp{bug-gcc} and/or @samp{bug-g++}.
+
+The mailing lists @samp{bug-gcc} and @samp{bug-g++} both have newsgroups
+which serve as repeaters: @samp{gnu.gcc.bug} and @samp{gnu.g++.bug}.
+Each mailing list and its newsgroup carry exactly the same messages.
+
+Often people think of posting bug reports to the newsgroup instead of
+mailing them.  This appears to work, but it has one problem which can be
+crucial: a newsgroup posting does not contain a mail path back to the
+sender.  Thus, if maintainers need more information, they may be unable
+to reach you.  For this reason, you should always send bug reports by
+mail to the proper mailing list.
+
+As a last resort, send bug reports on paper to:
+
+@example
+GNU Compiler Bugs
+Free Software Foundation
+59 Temple Place - Suite 330
+Boston, MA 02111-1307, USA
+@end example
+
+@node Bug Reporting
+@section How to Report Bugs
+@cindex compiler bugs, reporting
+
+The fundamental principle of reporting bugs usefully is this:
+@strong{report all the facts}.  If you are not sure whether to state a
+fact or leave it out, state it!
+
+Often people omit facts because they think they know what causes the
+problem and they conclude that some details don't matter.  Thus, you might
+assume that the name of the variable you use in an example does not matter.
+Well, probably it doesn't, but one cannot be sure.  Perhaps the bug is a
+stray memory reference which happens to fetch from the location where that
+name is stored in memory; perhaps, if the name were different, the contents
+of that location would fool the compiler into doing the right thing despite
+the bug.  Play it safe and give a specific, complete example.  That is the
+easiest thing for you to do, and the most helpful.
+
+Keep in mind that the purpose of a bug report is to enable someone to
+fix the bug if it is not known.  It isn't very important what happens if
+the bug is already known.  Therefore, always write your bug reports on
+the assumption that the bug is not known.
+
+Sometimes people give a few sketchy facts and ask, ``Does this ring a
+bell?''  This cannot help us fix a bug, so it is basically useless.  We
+respond by asking for enough details to enable us to investigate.
+You might as well expedite matters by sending them to begin with.
+
+Try to make your bug report self-contained.  If we have to ask you for
+more information, it is best if you include all the previous information
+in your response, as well as the information that was missing.
+
+Please report each bug in a separate message.  This makes it easier for
+us to track which bugs have been fixed and to forward your bugs reports
+to the appropriate maintainer.
+
+Do not compress and encode any part of your bug report using programs
+such as @file{uuencode}.  If you do so it will slow down the processing
+of your bug.  If you must submit multiple large files, use @file{shar},
+which allows us to read your message without having to run any
+decompression programs.
+
+To enable someone to investigate the bug, you should include all these
+things:
+
+@itemize @bullet
+@item
+The version of GNU CC.  You can get this by running it with the
+@samp{-v} option.
+
+Without this, we won't know whether there is any point in looking for
+the bug in the current version of GNU CC.
+
+@item
+A complete input file that will reproduce the bug.  If the bug is in the
+C preprocessor, send a source file and any header files that it
+requires.  If the bug is in the compiler proper (@file{cc1}), run your
+source file through the C preprocessor by doing @samp{gcc -E
+@var{sourcefile} > @var{outfile}}, then include the contents of
+@var{outfile} in the bug report.  (When you do this, use the same
+@samp{-I}, @samp{-D} or @samp{-U} options that you used in actual
+compilation.)
+
+A single statement is not enough of an example.  In order to compile it,
+it must be embedded in a complete file of compiler input; and the bug
+might depend on the details of how this is done.
+
+Without a real example one can compile, all anyone can do about your bug
+report is wish you luck.  It would be futile to try to guess how to
+provoke the bug.  For example, bugs in register allocation and reloading
+frequently depend on every little detail of the function they happen in.
+
+Even if the input file that fails comes from a GNU program, you should
+still send the complete test case.  Don't ask the GNU CC maintainers to
+do the extra work of obtaining the program in question---they are all
+overworked as it is.  Also, the problem may depend on what is in the
+header files on your system; it is unreliable for the GNU CC maintainers
+to try the problem with the header files available to them.  By sending
+CPP output, you can eliminate this source of uncertainty and save us
+a certain percentage of wild goose chases.
+
+@item
+The command arguments you gave GNU CC or GNU C++ to compile that example
+and observe the bug.  For example, did you use @samp{-O}?  To guarantee
+you won't omit something important, list all the options.
+
+If we were to try to guess the arguments, we would probably guess wrong
+and then we would not encounter the bug.
+
+@item
+The type of machine you are using, and the operating system name and
+version number.
+
+@item
+The operands you gave to the @code{configure} command when you installed
+the compiler.
+
+@item
+A complete list of any modifications you have made to the compiler
+source.  (We don't promise to investigate the bug unless it happens in
+an unmodified compiler.  But if you've made modifications and don't tell
+us, then you are sending us on a wild goose chase.)
+
+Be precise about these changes.  A description in English is not
+enough---send a context diff for them.
+
+Adding files of your own (such as a machine description for a machine we
+don't support) is a modification of the compiler source.
+
+@item
+Details of any other deviations from the standard procedure for installing
+GNU CC.
+
+@item
+A description of what behavior you observe that you believe is
+incorrect.  For example, ``The compiler gets a fatal signal,'' or,
+``The assembler instruction at line 208 in the output is incorrect.''
+
+Of course, if the bug is that the compiler gets a fatal signal, then one
+can't miss it.  But if the bug is incorrect output, the maintainer might
+not notice unless it is glaringly wrong.  None of us has time to study
+all the assembler code from a 50-line C program just on the chance that
+one instruction might be wrong.  We need @emph{you} to do this part!
+
+Even if the problem you experience is a fatal signal, you should still
+say so explicitly.  Suppose something strange is going on, such as, your
+copy of the compiler is out of synch, or you have encountered a bug in
+the C library on your system.  (This has happened!)  Your copy might
+crash and the copy here would not.  If you @i{said} to expect a crash,
+then when the compiler here fails to crash, we would know that the bug
+was not happening.  If you don't say to expect a crash, then we would
+not know whether the bug was happening.  We would not be able to draw
+any conclusion from our observations.
+
+If the problem is a diagnostic when compiling GNU CC with some other
+compiler, say whether it is a warning or an error.
+
+Often the observed symptom is incorrect output when your program is run.
+Sad to say, this is not enough information unless the program is short
+and simple.  None of us has time to study a large program to figure out
+how it would work if compiled correctly, much less which line of it was
+compiled wrong.  So you will have to do that.  Tell us which source line
+it is, and what incorrect result happens when that line is executed.  A
+person who understands the program can find this as easily as finding a
+bug in the program itself.
+
+@item
+If you send examples of assembler code output from GNU CC or GNU C++,
+please use @samp{-g} when you make them.  The debugging information
+includes source line numbers which are essential for correlating the
+output with the input.
+
+@item
+If you wish to mention something in the GNU CC source, refer to it by
+context, not by line number.
+
+The line numbers in the development sources don't match those in your
+sources.  Your line numbers would convey no useful information to the
+maintainers.
+
+@item
+Additional information from a debugger might enable someone to find a
+problem on a machine which he does not have available.  However, you
+need to think when you collect this information if you want it to have
+any chance of being useful.
+
+@cindex backtrace for bug reports
+For example, many people send just a backtrace, but that is never
+useful by itself.  A simple backtrace with arguments conveys little
+about GNU CC because the compiler is largely data-driven; the same
+functions are called over and over for different RTL insns, doing
+different things depending on the details of the insn.
+
+Most of the arguments listed in the backtrace are useless because they
+are pointers to RTL list structure.  The numeric values of the
+pointers, which the debugger prints in the backtrace, have no
+significance whatever; all that matters is the contents of the objects
+they point to (and most of the contents are other such pointers).
+
+In addition, most compiler passes consist of one or more loops that
+scan the RTL insn sequence.  The most vital piece of information about
+such a loop---which insn it has reached---is usually in a local variable,
+not in an argument.
+
+@findex debug_rtx
+What you need to provide in addition to a backtrace are the values of
+the local variables for several stack frames up.  When a local
+variable or an argument is an RTX, first print its value and then use
+the GDB command @code{pr} to print the RTL expression that it points
+to.  (If GDB doesn't run on your machine, use your debugger to call
+the function @code{debug_rtx} with the RTX as an argument.)  In
+general, whenever a variable is a pointer, its value is no use
+without the data it points to.
+@end itemize
+
+Here are some things that are not necessary:
+
+@itemize @bullet
+@item
+A description of the envelope of the bug.
+
+Often people who encounter a bug spend a lot of time investigating
+which changes to the input file will make the bug go away and which
+changes will not affect it.
+
+This is often time consuming and not very useful, because the way we
+will find the bug is by running a single example under the debugger with
+breakpoints, not by pure deduction from a series of examples.  You might
+as well save your time for something else.
+
+Of course, if you can find a simpler example to report @emph{instead} of
+the original one, that is a convenience.  Errors in the output will be
+easier to spot, running under the debugger will take less time, etc.
+Most GNU CC bugs involve just one function, so the most straightforward
+way to simplify an example is to delete all the function definitions
+except the one where the bug occurs.  Those earlier in the file may be
+replaced by external declarations if the crucial function depends on
+them.  (Exception: inline functions may affect compilation of functions
+defined later in the file.)
+
+However, simplification is not vital; if you don't want to do this,
+report the bug anyway and send the entire test case you used.
+
+@item
+In particular, some people insert conditionals @samp{#ifdef BUG} around
+a statement which, if removed, makes the bug not happen.  These are just
+clutter; we won't pay any attention to them anyway.  Besides, you should
+send us cpp output, and that can't have conditionals.
+
+@item
+A patch for the bug.
+
+A patch for the bug is useful if it is a good one.  But don't omit the
+necessary information, such as the test case, on the assumption that a
+patch is all we need.  We might see problems with your patch and decide
+to fix the problem another way, or we might not understand it at all.
+
+Sometimes with a program as complicated as GNU CC it is very hard to
+construct an example that will make the program follow a certain path
+through the code.  If you don't send the example, we won't be able to
+construct one, so we won't be able to verify that the bug is fixed.
+
+And if we can't understand what bug you are trying to fix, or why your
+patch should be an improvement, we won't install it.  A test case will
+help us to understand.
+
+@xref{Sending Patches}, for guidelines on how to make it easy for us to
+understand and install your patches.
+
+@item
+A guess about what the bug is or what it depends on.
+
+Such guesses are usually wrong.  Even I can't guess right about such
+things without first using the debugger to find the facts.
+
+@item
+A core dump file.
+
+We have no way of examining a core dump for your type of machine
+unless we have an identical system---and if we do have one,
+we should be able to reproduce the crash ourselves.
+@end itemize
+
+@node Sending Patches,, Bug Reporting, Bugs
+@section Sending Patches for GNU CC
+
+If you would like to write bug fixes or improvements for the GNU C
+compiler, that is very helpful.  Send suggested fixes to the bug report
+mailing list, @code{bug-gcc@@prep.ai.mit.edu}.
+
+Please follow these guidelines so we can study your patches efficiently.
+If you don't follow these guidelines, your information might still be
+useful, but using it will take extra work.  Maintaining GNU C is a lot
+of work in the best of circumstances, and we can't keep up unless you do
+your best to help.
+
+@itemize @bullet
+@item
+Send an explanation with your changes of what problem they fix or what
+improvement they bring about.  For a bug fix, just include a copy of the
+bug report, and explain why the change fixes the bug.
+
+(Referring to a bug report is not as good as including it, because then
+we will have to look it up, and we have probably already deleted it if
+we've already fixed the bug.)
+
+@item
+Always include a proper bug report for the problem you think you have
+fixed.  We need to convince ourselves that the change is right before
+installing it.  Even if it is right, we might have trouble judging it if
+we don't have a way to reproduce the problem.
+
+@item
+Include all the comments that are appropriate to help people reading the
+source in the future understand why this change was needed.
+
+@item
+Don't mix together changes made for different reasons.
+Send them @emph{individually}.
+
+If you make two changes for separate reasons, then we might not want to
+install them both.  We might want to install just one.  If you send them
+all jumbled together in a single set of diffs, we have to do extra work
+to disentangle them---to figure out which parts of the change serve
+which purpose.  If we don't have time for this, we might have to ignore
+your changes entirely.
+
+If you send each change as soon as you have written it, with its own
+explanation, then the two changes never get tangled up, and we can
+consider each one properly without any extra work to disentangle them.
+
+Ideally, each change you send should be impossible to subdivide into
+parts that we might want to consider separately, because each of its
+parts gets its motivation from the other parts.
+
+@item
+Send each change as soon as that change is finished.  Sometimes people
+think they are helping us by accumulating many changes to send them all
+together.  As explained above, this is absolutely the worst thing you
+could do.
+
+Since you should send each change separately, you might as well send it
+right away.  That gives us the option of installing it immediately if it
+is important.
+
+@item
+Use @samp{diff -c} to make your diffs.  Diffs without context are hard
+for us to install reliably.  More than that, they make it hard for us to
+study the diffs to decide whether we want to install them.  Unidiff
+format is better than contextless diffs, but not as easy to read as
+@samp{-c} format.
+
+If you have GNU diff, use @samp{diff -cp}, which shows the name of the
+function that each change occurs in.
+
+@item
+Write the change log entries for your changes.  We get lots of changes,
+and we don't have time to do all the change log writing ourselves.
+
+Read the @file{ChangeLog} file to see what sorts of information to put
+in, and to learn the style that we use.  The purpose of the change log
+is to show people where to find what was changed.  So you need to be
+specific about what functions you changed; in large functions, it's
+often helpful to indicate where within the function the change was.
+
+On the other hand, once you have shown people where to find the change,
+you need not explain its purpose.  Thus, if you add a new function, all
+you need to say about it is that it is new.  If you feel that the
+purpose needs explaining, it probably does---but the explanation will be
+much more useful if you put it in comments in the code.
+
+If you would like your name to appear in the header line for who made
+the change, send us the header line.
+
+@item
+When you write the fix, keep in mind that we can't install a change that
+would break other systems.
+
+People often suggest fixing a problem by changing machine-independent
+files such as @file{toplev.c} to do something special that a particular
+system needs.  Sometimes it is totally obvious that such changes would
+break GNU CC for almost all users.  We can't possibly make a change like
+that.  At best it might tell us how to write another patch that would
+solve the problem acceptably.
+
+Sometimes people send fixes that @emph{might} be an improvement in
+general---but it is hard to be sure of this.  It's hard to install
+such changes because we have to study them very carefully.  Of course,
+a good explanation of the reasoning by which you concluded the change
+was correct can help convince us.
+
+The safest changes are changes to the configuration files for a
+particular machine.  These are safe because they can't create new bugs
+on other machines.
+
+Please help us keep up with the workload by designing the patch in a
+form that is good to install.
+@end itemize
+
+@node Service
+@chapter How To Get Help with GNU CC
+
+If you need help installing, using or changing GNU CC, there are two
+ways to find it:
+
+@itemize @bullet
+@item
+Send a message to a suitable network mailing list.  First try
+@code{bug-gcc@@prep.ai.mit.edu}, and if that brings no response, try
+@code{help-gcc@@prep.ai.mit.edu}.
+
+@item
+Look in the service directory for someone who might help you for a fee.
+The service directory is found in the file named @file{SERVICE} in the
+GNU CC distribution.
+@end itemize
+
+@node Contributing
+@chapter Contributing to GNU CC Development
+
+If you would like to help pretest GNU CC releases to assure they work
+well, or if you would like to work on improving GNU CC, please contact
+the maintainers at @code{bug-gcc@@gnu.ai.mit.edu}.  A pretester should
+be willing to try to investigate bugs as well as report them.
+
+If you'd like to work on improvements, please ask for suggested projects
+or suggest your own ideas.  If you have already written an improvement,
+please tell us about it.  If you have not yet started work, it is useful
+to contact @code{bug-gcc@@prep.ai.mit.edu} before you start; the
+maintainers may be able to suggest ways to make your extension fit in
+better with the rest of GNU CC and with other development plans.
+
+@node VMS
+@chapter Using GNU CC on VMS
+
+@c prevent bad page break with this line
+Here is how to use GNU CC on VMS.
+
+@menu
+* Include Files and VMS::  Where the preprocessor looks for the include files.
+* Global Declarations::    How to do globaldef, globalref and globalvalue with
+                           GNU CC.
+* VMS Misc::		   Misc information.
+@end menu
+
+@node Include Files and VMS
+@section Include Files and VMS
+
+@cindex include files and VMS
+@cindex VMS and include files
+@cindex header files and VMS
+Due to the differences between the filesystems of Unix and VMS, GNU CC
+attempts to translate file names in @samp{#include} into names that VMS
+will understand.  The basic strategy is to prepend a prefix to the
+specification of the include file, convert the whole filename to a VMS
+filename, and then try to open the file.  GNU CC tries various prefixes
+one by one until one of them succeeds:
+
+@enumerate
+@item
+The first prefix is the @samp{GNU_CC_INCLUDE:} logical name: this is
+where GNU C header files are traditionally stored.  If you wish to store
+header files in non-standard locations, then you can assign the logical
+@samp{GNU_CC_INCLUDE} to be a search list, where each element of the
+list is suitable for use with a rooted logical.
+
+@item
+The next prefix tried is @samp{SYS$SYSROOT:[SYSLIB.]}.  This is where
+VAX-C header files are traditionally stored.
+
+@item
+If the include file specification by itself is a valid VMS filename, the
+preprocessor then uses this name with no prefix in an attempt to open
+the include file.
+
+@item
+If the file specification is not a valid VMS filename (i.e. does not
+contain a device or a directory specifier, and contains a @samp{/}
+character), the preprocessor tries to convert it from Unix syntax to
+VMS syntax.
+
+Conversion works like this: the first directory name becomes a device,
+and the rest of the directories are converted into VMS-format directory
+names.  For example, the name @file{X11/foobar.h} is
+translated to @file{X11:[000000]foobar.h} or @file{X11:foobar.h},
+whichever one can be opened.  This strategy allows you to assign a
+logical name to point to the actual location of the header files.
+
+@item
+If none of these strategies succeeds, the @samp{#include} fails.
+@end enumerate
+
+Include directives of the form:
+
+@example
+#include foobar
+@end example
+
+@noindent
+are a common source of incompatibility between VAX-C and GNU CC.  VAX-C
+treats this much like a standard @code{#include <foobar.h>} directive.
+That is incompatible with the ANSI C behavior implemented by GNU CC: to
+expand the name @code{foobar} as a macro.  Macro expansion should
+eventually yield one of the two standard formats for @code{#include}:
+
+@example
+#include "@var{file}"
+#include <@var{file}>
+@end example
+
+If you have this problem, the best solution is to modify the source to
+convert the @code{#include} directives to one of the two standard forms.
+That will work with either compiler.  If you want a quick and dirty fix,
+define the file names as macros with the proper expansion, like this:
+
+@example
+#define stdio <stdio.h>
+@end example
+
+@noindent
+This will work, as long as the name doesn't conflict with anything else
+in the program.
+
+Another source of incompatibility is that VAX-C assumes that:
+
+@example
+#include "foobar"
+@end example
+
+@noindent
+is actually asking for the file @file{foobar.h}.  GNU CC does not
+make this assumption, and instead takes what you ask for literally;
+it tries to read the file @file{foobar}.  The best way to avoid this
+problem is to always specify the desired file extension in your include
+directives.
+
+GNU CC for VMS is distributed with a set of include files that is
+sufficient to compile most general purpose programs.  Even though the
+GNU CC distribution does not contain header files to define constants
+and structures for some VMS system-specific functions, there is no
+reason why you cannot use GNU CC with any of these functions.  You first
+may have to generate or create header files, either by using the public
+domain utility @code{UNSDL} (which can be found on a DECUS tape), or by
+extracting the relevant modules from one of the system macro libraries,
+and using an editor to construct a C header file.
+
+A @code{#include} file name cannot contain a DECNET node name.  The
+preprocessor reports an I/O error if you attempt to use a node name,
+whether explicitly, or implicitly via a logical name.
+
+@node Global Declarations
+@section Global Declarations and VMS
+
+@findex GLOBALREF
+@findex GLOBALDEF
+@findex GLOBALVALUEDEF
+@findex GLOBALVALUEREF
+GNU CC does not provide the @code{globalref}, @code{globaldef} and
+@code{globalvalue} keywords of VAX-C.  You can get the same effect with
+an obscure feature of GAS, the GNU assembler.  (This requires GAS
+version 1.39 or later.)  The following macros allow you to use this
+feature in a fairly natural way:
+
+@smallexample
+#ifdef __GNUC__
+#define GLOBALREF(TYPE,NAME)                      \
+  TYPE NAME                                       \
+  asm ("_$$PsectAttributes_GLOBALSYMBOL$$" #NAME)
+#define GLOBALDEF(TYPE,NAME,VALUE)                \
+  TYPE NAME                                       \
+  asm ("_$$PsectAttributes_GLOBALSYMBOL$$" #NAME) \
+    = VALUE
+#define GLOBALVALUEREF(TYPE,NAME)                 \
+  const TYPE NAME[1]                              \
+  asm ("_$$PsectAttributes_GLOBALVALUE$$" #NAME)
+#define GLOBALVALUEDEF(TYPE,NAME,VALUE)           \
+  const TYPE NAME[1]                              \
+  asm ("_$$PsectAttributes_GLOBALVALUE$$" #NAME)  \
+    = @{VALUE@}
+#else
+#define GLOBALREF(TYPE,NAME) \
+  globalref TYPE NAME
+#define GLOBALDEF(TYPE,NAME,VALUE) \
+  globaldef TYPE NAME = VALUE
+#define GLOBALVALUEDEF(TYPE,NAME,VALUE) \
+  globalvalue TYPE NAME = VALUE
+#define GLOBALVALUEREF(TYPE,NAME) \
+  globalvalue TYPE NAME
+#endif
+@end smallexample
+
+@noindent
+(The @code{_$$PsectAttributes_GLOBALSYMBOL} prefix at the start of the
+name is removed by the assembler, after it has modified the attributes
+of the symbol).  These macros are provided in the VMS binaries
+distribution in a header file @file{GNU_HACKS.H}.  An example of the
+usage is:
+
+@example
+GLOBALREF (int, ijk);
+GLOBALDEF (int, jkl, 0);
+@end example
+
+The macros @code{GLOBALREF} and @code{GLOBALDEF} cannot be used
+straightforwardly for arrays, since there is no way to insert the array
+dimension into the declaration at the right place.  However, you can
+declare an array with these macros if you first define a typedef for the
+array type, like this:
+
+@example
+typedef int intvector[10];
+GLOBALREF (intvector, foo);
+@end example
+
+Array and structure initializers will also break the macros; you can
+define the initializer to be a macro of its own, or you can expand the
+@code{GLOBALDEF} macro by hand.  You may find a case where you wish to
+use the @code{GLOBALDEF} macro with a large array, but you are not
+interested in explicitly initializing each element of the array.  In
+such cases you can use an initializer like: @code{@{0,@}}, which will
+initialize the entire array to @code{0}.
+
+A shortcoming of this implementation is that a variable declared with
+@code{GLOBALVALUEREF} or @code{GLOBALVALUEDEF} is always an array.  For
+example, the declaration:
+
+@example
+GLOBALVALUEREF(int, ijk);
+@end example
+
+@noindent
+declares the variable @code{ijk} as an array of type @code{int [1]}.
+This is done because a globalvalue is actually a constant; its ``value''
+is what the linker would normally consider an address.  That is not how
+an integer value works in C, but it is how an array works.  So treating
+the symbol as an array name gives consistent results---with the
+exception that the value seems to have the wrong type.  @strong{Don't
+try to access an element of the array.}  It doesn't have any elements.
+The array ``address'' may not be the address of actual storage.
+
+The fact that the symbol is an array may lead to warnings where the
+variable is used.  Insert type casts to avoid the warnings.  Here is an
+example; it takes advantage of the ANSI C feature allowing macros that
+expand to use the same name as the macro itself.
+
+@example
+GLOBALVALUEREF (int, ss$_normal);
+GLOBALVALUEDEF (int, xyzzy,123);
+#ifdef __GNUC__
+#define ss$_normal ((int) ss$_normal)
+#define xyzzy ((int) xyzzy)
+#endif
+@end example
+
+Don't use @code{globaldef} or @code{globalref} with a variable whose
+type is an enumeration type; this is not implemented.  Instead, make the
+variable an integer, and use a @code{globalvaluedef} for each of the
+enumeration values.  An example of this would be:
+
+@example
+#ifdef __GNUC__
+GLOBALDEF (int, color, 0);
+GLOBALVALUEDEF (int, RED, 0);
+GLOBALVALUEDEF (int, BLUE, 1);
+GLOBALVALUEDEF (int, GREEN, 3);
+#else
+enum globaldef color @{RED, BLUE, GREEN = 3@};
+#endif
+@end example
+
+@node VMS Misc
+@section Other VMS Issues
+
+@cindex exit status and VMS
+@cindex return value of @code{main}
+@cindex @code{main} and the exit status
+GNU CC automatically arranges for @code{main} to return 1 by default if
+you fail to specify an explicit return value.  This will be interpreted
+by VMS as a status code indicating a normal successful completion.
+Version 1 of GNU CC did not provide this default.
+
+GNU CC on VMS works only with the GNU assembler, GAS.  You need version
+1.37 or later of GAS in order to produce value debugging information for
+the VMS debugger.  Use the ordinary VMS linker with the object files
+produced by GAS.
+
+@cindex shared VMS run time system
+@cindex @file{VAXCRTL}
+Under previous versions of GNU CC, the generated code would occasionally
+give strange results when linked to the sharable @file{VAXCRTL} library.
+Now this should work.
+
+A caveat for use of @code{const} global variables: the @code{const}
+modifier must be specified in every external declaration of the variable
+in all of the source files that use that variable.  Otherwise the linker
+will issue warnings about conflicting attributes for the variable.  Your
+program will still work despite the warnings, but the variable will be
+placed in writable storage.
+
+@cindex name augmentation
+@cindex case sensitivity and VMS
+@cindex VMS and case sensitivity
+Although the VMS linker does distinguish between upper and lower case
+letters in global symbols, most VMS compilers convert all such symbols
+into upper case and most run-time library routines also have upper case
+names.  To be able to reliably call such routines, GNU CC (by means of
+the assembler GAS) converts global symbols into upper case like other
+VMS compilers.  However, since the usual practice in C is to distinguish
+case, GNU CC (via GAS) tries to preserve usual C behavior by augmenting
+each name that is not all lower case.  This means truncating the name
+to at most 23 characters and then adding more characters at the end
+which encode the case pattern of those 23.   Names which contain at
+least one dollar sign are an exception; they are converted directly into
+upper case without augmentation.
+
+Name augmentation yields bad results for programs that use precompiled
+libraries (such as Xlib) which were generated by another compiler.  You
+can use the compiler option @samp{/NOCASE_HACK} to inhibit augmentation;
+it makes external C functions and variables case-independent as is usual
+on VMS.  Alternatively, you could write all references to the functions
+and variables in such libraries using lower case; this will work on VMS,
+but is not portable to other systems.  The compiler option @samp{/NAMES}
+also provides control over global name handling.
+
+Function and variable names are handled somewhat differently with GNU
+C++.  The GNU C++ compiler performs @dfn{name mangling} on function
+names, which means that it adds information to the function name to
+describe the data types of the arguments that the function takes.  One
+result of this is that the name of a function can become very long.
+Since the VMS linker only recognizes the first 31 characters in a name,
+special action is taken to ensure that each function and variable has a
+unique name that can be represented in 31 characters.
+
+If the name (plus a name augmentation, if required) is less than 32
+characters in length, then no special action is performed.  If the name
+is longer than 31 characters, the assembler (GAS) will generate a
+hash string based upon the function name, truncate the function name to
+23 characters, and append the hash string to the truncated name.  If the
+@samp{/VERBOSE} compiler option is used, the assembler will print both
+the full and truncated names of each symbol that is truncated.
+
+The @samp{/NOCASE_HACK} compiler option should not be used when you are
+compiling programs that use libg++.  libg++ has several instances of
+objects (i.e.  @code{Filebuf} and @code{filebuf}) which become
+indistinguishable in a case-insensitive environment.  This leads to
+cases where you need to inhibit augmentation selectively (if you were
+using libg++ and Xlib in the same program, for example).  There is no
+special feature for doing this, but you can get the result by defining a
+macro for each mixed case symbol for which you wish to inhibit
+augmentation.  The macro should expand into the lower case equivalent of
+itself.  For example:
+
+@example
+#define StuDlyCapS studlycaps
+@end example
+
+These macro definitions can be placed in a header file to minimize the
+number of changes to your source code.
+@end ifset
+
+@ifset INTERNALS
+@node Portability
+@chapter GNU CC and Portability
+@cindex portability
+@cindex GNU CC and portability
+
+The main goal of GNU CC was to make a good, fast compiler for machines in
+the class that the GNU system aims to run on: 32-bit machines that address
+8-bit bytes and have several general registers.  Elegance, theoretical
+power and simplicity are only secondary.
+
+GNU CC gets most of the information about the target machine from a machine
+description which gives an algebraic formula for each of the machine's
+instructions.  This is a very clean way to describe the target.  But when
+the compiler needs information that is difficult to express in this
+fashion, I have not hesitated to define an ad-hoc parameter to the machine
+description.  The purpose of portability is to reduce the total work needed
+on the compiler; it was not of interest for its own sake.
+
+@cindex endianness
+@cindex autoincrement addressing, availability
+@findex abort
+GNU CC does not contain machine dependent code, but it does contain code
+that depends on machine parameters such as endianness (whether the most
+significant byte has the highest or lowest address of the bytes in a word)
+and the availability of autoincrement addressing.  In the RTL-generation
+pass, it is often necessary to have multiple strategies for generating code
+for a particular kind of syntax tree, strategies that are usable for different
+combinations of parameters.  Often I have not tried to address all possible
+cases, but only the common ones or only the ones that I have encountered.
+As a result, a new target may require additional strategies.  You will know
+if this happens because the compiler will call @code{abort}.  Fortunately,
+the new strategies can be added in a machine-independent fashion, and will
+affect only the target machines that need them.
+@end ifset
+
+@ifset INTERNALS
+@node Interface
+@chapter Interfacing to GNU CC Output
+@cindex interfacing to GNU CC output
+@cindex run-time conventions
+@cindex function call conventions
+@cindex conventions, run-time
+
+GNU CC is normally configured to use the same function calling convention
+normally in use on the target system.  This is done with the
+machine-description macros described (@pxref{Target Macros}).
+
+@cindex unions, returning
+@cindex structures, returning
+@cindex returning structures and unions
+However, returning of structure and union values is done differently on
+some target machines.  As a result, functions compiled with PCC
+returning such types cannot be called from code compiled with GNU CC,
+and vice versa.  This does not cause trouble often because few Unix
+library routines return structures or unions.
+
+GNU CC code returns structures and unions that are 1, 2, 4 or 8 bytes
+long in the same registers used for @code{int} or @code{double} return
+values.  (GNU CC typically allocates variables of such types in
+registers also.)  Structures and unions of other sizes are returned by
+storing them into an address passed by the caller (usually in a
+register).  The machine-description macros @code{STRUCT_VALUE} and
+@code{STRUCT_INCOMING_VALUE} tell GNU CC where to pass this address.
+
+By contrast, PCC on most target machines returns structures and unions
+of any size by copying the data into an area of static storage, and then
+returning the address of that storage as if it were a pointer value.
+The caller must copy the data from that memory area to the place where
+the value is wanted.  This is slower than the method used by GNU CC, and
+fails to be reentrant.
+
+On some target machines, such as RISC machines and the 80386, the
+standard system convention is to pass to the subroutine the address of
+where to return the value.  On these machines, GNU CC has been
+configured to be compatible with the standard compiler, when this method
+is used.  It may not be compatible for structures of 1, 2, 4 or 8 bytes.
+
+@cindex argument passing
+@cindex passing arguments
+GNU CC uses the system's standard convention for passing arguments.  On
+some machines, the first few arguments are passed in registers; in
+others, all are passed on the stack.  It would be possible to use
+registers for argument passing on any machine, and this would probably
+result in a significant speedup.  But the result would be complete
+incompatibility with code that follows the standard convention.  So this
+change is practical only if you are switching to GNU CC as the sole C
+compiler for the system.  We may implement register argument passing on
+certain machines once we have a complete GNU system so that we can
+compile the libraries with GNU CC.
+
+On some machines (particularly the Sparc), certain types of arguments
+are passed ``by invisible reference''.  This means that the value is
+stored in memory, and the address of the memory location is passed to
+the subroutine.
+
+@cindex @code{longjmp} and automatic variables
+If you use @code{longjmp}, beware of automatic variables.  ANSI C says that
+automatic variables that are not declared @code{volatile} have undefined
+values after a @code{longjmp}.  And this is all GNU CC promises to do,
+because it is very difficult to restore register variables correctly, and
+one of GNU CC's features is that it can put variables in registers without
+your asking it to.
+
+If you want a variable to be unaltered by @code{longjmp}, and you don't
+want to write @code{volatile} because old C compilers don't accept it,
+just take the address of the variable.  If a variable's address is ever
+taken, even if just to compute it and ignore it, then the variable cannot
+go in a register:
+
+@example
+@{
+  int careful;
+  &careful;
+  @dots{}
+@}
+@end example
+
+@cindex arithmetic libraries
+@cindex math libraries
+Code compiled with GNU CC may call certain library routines.  Most of
+them handle arithmetic for which there are no instructions.  This
+includes multiply and divide on some machines, and floating point
+operations on any machine for which floating point support is disabled
+with @samp{-msoft-float}.  Some standard parts of the C library, such as
+@code{bcopy} or @code{memcpy}, are also called automatically.  The usual
+function call interface is used for calling the library routines.
+
+These library routines should be defined in the library @file{libgcc.a},
+which GNU CC automatically searches whenever it links a program.  On
+machines that have multiply and divide instructions, if hardware
+floating point is in use, normally @file{libgcc.a} is not needed, but it
+is searched just in case.
+
+Each arithmetic function is defined in @file{libgcc1.c} to use the
+corresponding C arithmetic operator.  As long as the file is compiled
+with another C compiler, which supports all the C arithmetic operators,
+this file will work portably.  However, @file{libgcc1.c} does not work if
+compiled with GNU CC, because each arithmetic function would compile
+into a call to itself!
+@end ifset
+
+@ifset INTERNALS
+@node Passes
+@chapter Passes and Files of the Compiler
+@cindex passes and files of the compiler
+@cindex files and passes of the compiler
+@cindex compiler passes and files
+
+@cindex top level of compiler
+The overall control structure of the compiler is in @file{toplev.c}.  This
+file is responsible for initialization, decoding arguments, opening and
+closing files, and sequencing the passes.
+
+@cindex parsing pass
+The parsing pass is invoked only once, to parse the entire input.  The RTL
+intermediate code for a function is generated as the function is parsed, a
+statement at a time.  Each statement is read in as a syntax tree and then
+converted to RTL; then the storage for the tree for the statement is
+reclaimed.  Storage for types (and the expressions for their sizes),
+declarations, and a representation of the binding contours and how they nest,
+remain until the function is finished being compiled; these are all needed
+to output the debugging information.
+
+@findex rest_of_compilation
+@findex rest_of_decl_compilation
+Each time the parsing pass reads a complete function definition or
+top-level declaration, it calls either the function
+@code{rest_of_compilation}, or the function
+@code{rest_of_decl_compilation} in @file{toplev.c}, which are
+responsible for all further processing necessary, ending with output of
+the assembler language.  All other compiler passes run, in sequence,
+within @code{rest_of_compilation}.  When that function returns from
+compiling a function definition, the storage used for that function
+definition's compilation is entirely freed, unless it is an inline
+function
+@ifset USING
+(@pxref{Inline,,An Inline Function is As Fast As a Macro}).
+@end ifset
+@ifclear USING
+(@pxref{Inline,,An Inline Function is As Fast As a Macro,gcc.texi,Using GCC}).
+@end ifclear
+
+Here is a list of all the passes of the compiler and their source files.
+Also included is a description of where debugging dumps can be requested
+with @samp{-d} options.
+
+@itemize @bullet
+@item
+Parsing.  This pass reads the entire text of a function definition,
+constructing partial syntax trees.  This and RTL generation are no longer
+truly separate passes (formerly they were), but it is easier to think
+of them as separate.
+
+The tree representation does not entirely follow C syntax, because it is
+intended to support other languages as well.
+
+Language-specific data type analysis is also done in this pass, and every
+tree node that represents an expression has a data type attached.
+Variables are represented as declaration nodes.
+
+@cindex constant folding
+@cindex arithmetic simplifications
+@cindex simplifications, arithmetic
+Constant folding and some arithmetic simplifications are also done
+during this pass.
+
+The language-independent source files for parsing are
+@file{stor-layout.c}, @file{fold-const.c}, and @file{tree.c}.
+There are also header files @file{tree.h} and @file{tree.def}
+which define the format of the tree representation.@refill
+
+@c Avoiding overfull is tricky here.
+The source files to parse C are
+@file{c-parse.in},
+@file{c-decl.c},
+@file{c-typeck.c},
+@file{c-aux-info.c},
+@file{c-convert.c},
+and @file{c-lang.c}
+along with header files
+@file{c-lex.h}, and
+@file{c-tree.h}.
+
+The source files for parsing C++ are @file{cp-parse.y},
+@file{cp-class.c},@*
+@file{cp-cvt.c}, @file{cp-decl.c}, @file{cp-decl2.c},
+@file{cp-dem.c}, @file{cp-except.c},@*
+@file{cp-expr.c}, @file{cp-init.c}, @file{cp-lex.c},
+@file{cp-method.c}, @file{cp-ptree.c},@*
+@file{cp-search.c}, @file{cp-tree.c}, @file{cp-type2.c}, and
+@file{cp-typeck.c}, along with header files @file{cp-tree.def},
+@file{cp-tree.h}, and @file{cp-decl.h}.
+
+The special source files for parsing Objective C are
+@file{objc-parse.y}, @file{objc-actions.c}, @file{objc-tree.def}, and
+@file{objc-actions.h}.  Certain C-specific files are used for this as
+well.
+
+The file @file{c-common.c} is also used for all of the above languages.
+
+@cindex RTL generation
+@item
+RTL generation.  This is the conversion of syntax tree into RTL code.
+It is actually done statement-by-statement during parsing, but for
+most purposes it can be thought of as a separate pass.
+
+@cindex target-parameter-dependent code
+This is where the bulk of target-parameter-dependent code is found,
+since often it is necessary for strategies to apply only when certain
+standard kinds of instructions are available.  The purpose of named
+instruction patterns is to provide this information to the RTL
+generation pass.
+
+@cindex tail recursion optimization
+Optimization is done in this pass for @code{if}-conditions that are
+comparisons, boolean operations or conditional expressions.  Tail
+recursion is detected at this time also.  Decisions are made about how
+best to arrange loops and how to output @code{switch} statements.
+
+@c Avoiding overfull is tricky here.
+The source files for RTL generation include
+@file{stmt.c},
+@file{calls.c},
+@file{expr.c},
+@file{explow.c},
+@file{expmed.c},
+@file{function.c},
+@file{optabs.c}
+and @file{emit-rtl.c}.
+Also, the file
+@file{insn-emit.c}, generated from the machine description by the
+program @code{genemit}, is used in this pass.  The header file
+@file{expr.h} is used for communication within this pass.@refill
+
+@findex genflags
+@findex gencodes
+The header files @file{insn-flags.h} and @file{insn-codes.h},
+generated from the machine description by the programs @code{genflags}
+and @code{gencodes}, tell this pass which standard names are available
+for use and which patterns correspond to them.@refill
+
+Aside from debugging information output, none of the following passes
+refers to the tree structure representation of the function (only
+part of which is saved).
+
+@cindex inline, automatic
+The decision of whether the function can and should be expanded inline
+in its subsequent callers is made at the end of rtl generation.  The
+function must meet certain criteria, currently related to the size of
+the function and the types and number of parameters it has.  Note that
+this function may contain loops, recursive calls to itself
+(tail-recursive functions can be inlined!), gotos, in short, all
+constructs supported by GNU CC.  The file @file{integrate.c} contains
+the code to save a function's rtl for later inlining and to inline that
+rtl when the function is called.  The header file @file{integrate.h}
+is also used for this purpose.
+
+The option @samp{-dr} causes a debugging dump of the RTL code after
+this pass.  This dump file's name is made by appending @samp{.rtl} to
+the input file name.
+
+@cindex jump optimization
+@cindex unreachable code
+@cindex dead code
+@item
+Jump optimization.  This pass simplifies jumps to the following
+instruction, jumps across jumps, and jumps to jumps.  It deletes
+unreferenced labels and unreachable code, except that unreachable code
+that contains a loop is not recognized as unreachable in this pass.
+(Such loops are deleted later in the basic block analysis.)  It also
+converts some code originally written with jumps into sequences of
+instructions that directly set values from the results of comparisons,
+if the machine has such instructions.
+
+Jump optimization is performed two or three times.  The first time is
+immediately following RTL generation.  The second time is after CSE,
+but only if CSE says repeated jump optimization is needed.  The
+last time is right before the final pass.  That time, cross-jumping
+and deletion of no-op move instructions are done together with the
+optimizations described above.
+
+The source file of this pass is @file{jump.c}.
+
+The option @samp{-dj} causes a debugging dump of the RTL code after
+this pass is run for the first time.  This dump file's name is made by
+appending @samp{.jump} to the input file name.
+
+@cindex register use analysis
+@item
+Register scan.  This pass finds the first and last use of each
+register, as a guide for common subexpression elimination.  Its source
+is in @file{regclass.c}.
+
+@cindex jump threading
+@item
+Jump threading.  This pass detects a condition jump that branches to an
+identical or inverse test.  Such jumps can be @samp{threaded} through
+the second conditional test.  The source code for this pass is in
+@file{jump.c}.  This optimization is only performed if
+@samp{-fthread-jumps} is enabled.
+
+@cindex common subexpression elimination
+@cindex constant propagation
+@item
+Common subexpression elimination.  This pass also does constant
+propagation.  Its source file is @file{cse.c}.  If constant
+propagation causes conditional jumps to become unconditional or to
+become no-ops, jump optimization is run again when CSE is finished.
+
+The option @samp{-ds} causes a debugging dump of the RTL code after
+this pass.  This dump file's name is made by appending @samp{.cse} to
+the input file name.
+
+@cindex loop optimization
+@cindex code motion
+@cindex strength-reduction
+@item
+Loop optimization.  This pass moves constant expressions out of loops,
+and optionally does strength-reduction and loop unrolling as well.
+Its source files are @file{loop.c} and @file{unroll.c}, plus the header
+@file{loop.h} used for communication between them.  Loop unrolling uses
+some functions in @file{integrate.c} and the header @file{integrate.h}.
+
+The option @samp{-dL} causes a debugging dump of the RTL code after
+this pass.  This dump file's name is made by appending @samp{.loop} to
+the input file name.
+
+@item
+If @samp{-frerun-cse-after-loop} was enabled, a second common
+subexpression elimination pass is performed after the loop optimization
+pass.  Jump threading is also done again at this time if it was specified.
+
+The option @samp{-dt} causes a debugging dump of the RTL code after
+this pass.  This dump file's name is made by appending @samp{.cse2} to
+the input file name.
+
+@cindex register allocation, stupid
+@cindex stupid register allocation
+@item
+Stupid register allocation is performed at this point in a
+nonoptimizing compilation.  It does a little data flow analysis as
+well.  When stupid register allocation is in use, the next pass
+executed is the reloading pass; the others in between are skipped.
+The source file is @file{stupid.c}.
+
+@cindex data flow analysis
+@cindex analysis, data flow
+@cindex basic blocks
+@item
+Data flow analysis (@file{flow.c}).  This pass divides the program
+into basic blocks (and in the process deletes unreachable loops); then
+it computes which pseudo-registers are live at each point in the
+program, and makes the first instruction that uses a value point at
+the instruction that computed the value.
+
+@cindex autoincrement/decrement analysis
+This pass also deletes computations whose results are never used, and
+combines memory references with add or subtract instructions to make
+autoincrement or autodecrement addressing.
+
+The option @samp{-df} causes a debugging dump of the RTL code after
+this pass.  This dump file's name is made by appending @samp{.flow} to
+the input file name.  If stupid register allocation is in use, this
+dump file reflects the full results of such allocation.
+
+@cindex instruction combination
+@item
+Instruction combination (@file{combine.c}).  This pass attempts to
+combine groups of two or three instructions that are related by data
+flow into single instructions.  It combines the RTL expressions for
+the instructions by substitution, simplifies the result using algebra,
+and then attempts to match the result against the machine description.
+
+The option @samp{-dc} causes a debugging dump of the RTL code after
+this pass.  This dump file's name is made by appending @samp{.combine}
+to the input file name.
+
+@cindex instruction scheduling
+@cindex scheduling, instruction
+@item
+Instruction scheduling (@file{sched.c}).  This pass looks for
+instructions whose output will not be available by the time that it is
+used in subsequent instructions.  (Memory loads and floating point
+instructions often have this behavior on RISC machines).  It re-orders
+instructions within a basic block to try to separate the definition and
+use of items that otherwise would cause pipeline stalls.
+
+Instruction scheduling is performed twice.  The first time is immediately
+after instruction combination and the second is immediately after reload.
+
+The option @samp{-dS} causes a debugging dump of the RTL code after this
+pass is run for the first time.  The dump file's name is made by
+appending @samp{.sched} to the input file name.
+
+@cindex register class preference pass
+@item
+Register class preferencing.  The RTL code is scanned to find out
+which register class is best for each pseudo register.  The source
+file is @file{regclass.c}.
+
+@cindex register allocation
+@cindex local register allocation
+@item
+Local register allocation (@file{local-alloc.c}).  This pass allocates
+hard registers to pseudo registers that are used only within one basic
+block.  Because the basic block is linear, it can use fast and
+powerful techniques to do a very good job.
+
+The option @samp{-dl} causes a debugging dump of the RTL code after
+this pass.  This dump file's name is made by appending @samp{.lreg} to
+the input file name.
+
+@cindex global register allocation
+@item
+Global register allocation (@file{global.c}).  This pass
+allocates hard registers for the remaining pseudo registers (those
+whose life spans are not contained in one basic block).
+
+@cindex reloading
+@item
+Reloading.  This pass renumbers pseudo registers with the hardware
+registers numbers they were allocated.  Pseudo registers that did not
+get hard registers are replaced with stack slots.  Then it finds
+instructions that are invalid because a value has failed to end up in
+a register, or has ended up in a register of the wrong kind.  It fixes
+up these instructions by reloading the problematical values
+temporarily into registers.  Additional instructions are generated to
+do the copying.
+
+The reload pass also optionally eliminates the frame pointer and inserts
+instructions to save and restore call-clobbered registers around calls.
+
+Source files are @file{reload.c} and @file{reload1.c}, plus the header
+@file{reload.h} used for communication between them.
+
+The option @samp{-dg} causes a debugging dump of the RTL code after
+this pass.  This dump file's name is made by appending @samp{.greg} to
+the input file name.
+
+@cindex instruction scheduling
+@cindex scheduling, instruction
+@item
+Instruction scheduling is repeated here to try to avoid pipeline stalls
+due to memory loads generated for spilled pseudo registers.
+
+The option @samp{-dR} causes a debugging dump of the RTL code after
+this pass.  This dump file's name is made by appending @samp{.sched2}
+to the input file name.
+
+@cindex cross-jumping
+@cindex no-op move instructions
+@item
+Jump optimization is repeated, this time including cross-jumping
+and deletion of no-op move instructions.
+
+The option @samp{-dJ} causes a debugging dump of the RTL code after
+this pass.  This dump file's name is made by appending @samp{.jump2}
+to the input file name.
+
+@cindex delayed branch scheduling
+@cindex scheduling, delayed branch
+@item
+Delayed branch scheduling.  This optional pass attempts to find
+instructions that can go into the delay slots of other instructions,
+usually jumps and calls.  The source file name is @file{reorg.c}.
+
+The option @samp{-dd} causes a debugging dump of the RTL code after
+this pass.  This dump file's name is made by appending @samp{.dbr}
+to the input file name.
+
+@cindex register-to-stack conversion
+@item
+Conversion from usage of some hard registers to usage of a register
+stack may be done at this point.  Currently, this is supported only
+for the floating-point registers of the Intel 80387 coprocessor.   The
+source file name is @file{reg-stack.c}.
+
+The options @samp{-dk} causes a debugging dump of the RTL code after
+this pass.  This dump file's name is made by appending @samp{.stack}
+to the input file name.
+
+@cindex final pass
+@cindex peephole optimization
+@item
+Final.  This pass outputs the assembler code for the function.  It is
+also responsible for identifying spurious test and compare
+instructions.  Machine-specific peephole optimizations are performed
+at the same time.  The function entry and exit sequences are generated
+directly as assembler code in this pass; they never exist as RTL.
+
+The source files are @file{final.c} plus @file{insn-output.c}; the
+latter is generated automatically from the machine description by the
+tool @file{genoutput}.  The header file @file{conditions.h} is used
+for communication between these files.
+
+@cindex debugging information generation
+@item
+Debugging information output.  This is run after final because it must
+output the stack slot offsets for pseudo registers that did not get
+hard registers.  Source files are @file{dbxout.c} for DBX symbol table
+format, @file{sdbout.c} for SDB symbol table format, and
+@file{dwarfout.c} for DWARF symbol table format.
+@end itemize
+
+Some additional files are used by all or many passes:
+
+@itemize @bullet
+@item
+Every pass uses @file{machmode.def} and @file{machmode.h} which define
+the machine modes.
+
+@item
+Several passes use @file{real.h}, which defines the default
+representation of floating point constants and how to operate on them.
+
+@item
+All the passes that work with RTL use the header files @file{rtl.h}
+and @file{rtl.def}, and subroutines in file @file{rtl.c}.  The tools
+@code{gen*} also use these files to read and work with the machine
+description RTL.
+
+@findex genconfig
+@item
+Several passes refer to the header file @file{insn-config.h} which
+contains a few parameters (C macro definitions) generated
+automatically from the machine description RTL by the tool
+@code{genconfig}.
+
+@cindex instruction recognizer
+@item
+Several passes use the instruction recognizer, which consists of
+@file{recog.c} and @file{recog.h}, plus the files @file{insn-recog.c}
+and @file{insn-extract.c} that are generated automatically from the
+machine description by the tools @file{genrecog} and
+@file{genextract}.@refill
+
+@item
+Several passes use the header files @file{regs.h} which defines the
+information recorded about pseudo register usage, and @file{basic-block.h}
+which defines the information recorded about basic blocks.
+
+@item
+@file{hard-reg-set.h} defines the type @code{HARD_REG_SET}, a bit-vector
+with a bit for each hard register, and some macros to manipulate it.
+This type is just @code{int} if the machine has few enough hard registers;
+otherwise it is an array of @code{int} and some of the macros expand
+into loops.
+
+@item
+Several passes use instruction attributes.  A definition of the
+attributes defined for a particular machine is in file
+@file{insn-attr.h}, which is generated from the machine description by
+the program @file{genattr}.  The file @file{insn-attrtab.c} contains
+subroutines to obtain the attribute values for insns.  It is generated
+from the machine description by the program @file{genattrtab}.@refill
+@end itemize
+@end ifset
+
+@ifset INTERNALS
+@include rtl.texi
+@include md.texi
+@include tm.texi
+@end ifset
+
+@ifset INTERNALS
+@node Config
+@chapter The Configuration File
+@cindex configuration file
+@cindex @file{xm-@var{machine}.h}
+
+The configuration file @file{xm-@var{machine}.h} contains macro
+definitions that describe the machine and system on which the compiler
+is running, unlike the definitions in @file{@var{machine}.h}, which
+describe the machine for which the compiler is producing output.  Most
+of the values in @file{xm-@var{machine}.h} are actually the same on all
+machines that GNU CC runs on, so large parts of all configuration files
+are identical.  But there are some macros that vary:
+
+@table @code
+@findex USG
+@item USG
+Define this macro if the host system is System V.
+
+@findex VMS
+@item VMS
+Define this macro if the host system is VMS.
+
+@findex FATAL_EXIT_CODE
+@item FATAL_EXIT_CODE
+A C expression for the status code to be returned when the compiler
+exits after serious errors.
+
+@findex SUCCESS_EXIT_CODE
+@item SUCCESS_EXIT_CODE
+A C expression for the status code to be returned when the compiler
+exits without serious errors.
+
+@findex HOST_WORDS_BIG_ENDIAN
+@item HOST_WORDS_BIG_ENDIAN
+Defined if the host machine stores words of multi-word values in
+big-endian order.  (GNU CC does not depend on the host byte ordering
+within a word.)
+
+@findex HOST_FLOAT_WORDS_BIG_ENDIAN
+@item HOST_FLOAT_WORDS_BIG_ENDIAN
+Define this macro to be 1 if the host machine stores @code{DFmode},
+@code{XFmode} or @code{TFmode} floating point numbers in memory with the
+word containing the sign bit at the lowest address; otherwise, define it
+to be zero.
+
+This macro need not be defined if the ordering is the same as for
+multi-word integers.
+
+@findex HOST_FLOAT_FORMAT
+@item HOST_FLOAT_FORMAT
+A numeric code distinguishing the floating point format for the host
+machine.  See @code{TARGET_FLOAT_FORMAT} in @ref{Storage Layout} for the
+alternatives and default.
+
+@findex HOST_BITS_PER_CHAR
+@item HOST_BITS_PER_CHAR
+A C expression for the number of bits in @code{char} on the host
+machine.
+
+@findex HOST_BITS_PER_SHORT
+@item HOST_BITS_PER_SHORT
+A C expression for the number of bits in @code{short} on the host
+machine.
+
+@findex HOST_BITS_PER_INT
+@item HOST_BITS_PER_INT
+A C expression for the number of bits in @code{int} on the host
+machine.
+
+@findex HOST_BITS_PER_LONG
+@item HOST_BITS_PER_LONG
+A C expression for the number of bits in @code{long} on the host
+machine.
+
+@findex ONLY_INT_FIELDS
+@item ONLY_INT_FIELDS
+Define this macro to indicate that the host compiler only supports
+@code{int} bit fields, rather than other integral types, including
+@code{enum}, as do most C compilers.
+
+@findex OBSTACK_CHUNK_SIZE
+@item OBSTACK_CHUNK_SIZE
+A C expression for the size of ordinary obstack chunks.
+If you don't define this, a usually-reasonable default is used.
+
+@findex OBSTACK_CHUNK_ALLOC
+@item OBSTACK_CHUNK_ALLOC
+The function used to allocate obstack chunks.
+If you don't define this, @code{xmalloc} is used.
+
+@findex OBSTACK_CHUNK_FREE
+@item OBSTACK_CHUNK_FREE
+The function used to free obstack chunks.
+If you don't define this, @code{free} is used.
+
+@findex USE_C_ALLOCA
+@item USE_C_ALLOCA
+Define this macro to indicate that the compiler is running with the
+@code{alloca} implemented in C.  This version of @code{alloca} can be
+found in the file @file{alloca.c}; to use it, you must also alter the
+@file{Makefile} variable @code{ALLOCA}.  (This is done automatically
+for the systems on which we know it is needed.)
+
+If you do define this macro, you should probably do it as follows:
+
+@example
+#ifndef __GNUC__
+#define USE_C_ALLOCA
+#else
+#define alloca __builtin_alloca
+#endif
+@end example
+
+@noindent
+so that when the compiler is compiled with GNU CC it uses the more
+efficient built-in @code{alloca} function.
+
+@item FUNCTION_CONVERSION_BUG
+@findex FUNCTION_CONVERSION_BUG
+Define this macro to indicate that the host compiler does not properly
+handle converting a function value to a pointer-to-function when it is
+used in an expression.
+
+@findex HAVE_VPRINTF
+@findex vprintf
+@item HAVE_VPRINTF
+Define this if the library function @code{vprintf} is available on your
+system.
+
+@findex MULTIBYTE_CHARS
+@item MULTIBYTE_CHARS
+Define this macro to enable support for multibyte characters in the
+input to GNU CC.  This requires that the host system support the ANSI C
+library functions for converting multibyte characters to wide
+characters.
+
+@findex HAVE_PUTENV
+@findex putenv
+@item HAVE_PUTENV
+Define this if the library function @code{putenv} is available on your
+system.
+
+@findex POSIX
+@item POSIX
+Define this if your system is POSIX.1 compliant.
+
+@findex HAVE_POPEN
+@findex popen
+@item HAVE_POPEN
+Define this if the library function @code{popen} is available on your
+system.
+
+@findex NO_SYS_SIGLIST
+@item NO_SYS_SIGLIST
+Define this if your system @emph{does not} provide the variable
+@code{sys_siglist}.
+
+@findex DONT_DECLARE_SYS_SIGLIST
+@item DONT_DECLARE_SYS_SIGLIST
+Define this if your system has the variable @code{sys_siglist}, and
+there is already a declaration of it in the system header files.
+
+@findex USE_PROTOTYPES
+@item USE_PROTOTYPES
+Define this to be 1 if you know that the host compiler supports
+prototypes, even if it doesn't define __STDC__, or define
+it to be 0 if you do not want any prototypes used in compiling
+GNU CC.  If @samp{USE_PROTOTYPES} is not defined, it will be
+determined automatically whether your compiler supports
+prototypes by checking if @samp{__STDC__} is defined.
+
+@findex NO_MD_PROTOTYPES
+@item NO_MD_PROTOTYPES
+Define this if you wish suppression of prototypes generated from
+the machine description file, but to use other prototypes within
+GNU CC.  If @samp{USE_PROTOTYPES} is defined to be 0, or the
+host compiler does not support prototypes, this macro has no
+effect.
+
+@findex MD_CALL_PROTOTYPES
+@item MD_CALL_PROTOTYPES
+Define this if you wish to generate prototypes for the
+@code{gen_call} or @code{gen_call_value} functions generated from
+the machine description file.  If @samp{USE_PROTOTYPES} is
+defined to be 0, or the host compiler does not support
+prototypes, or @samp{NO_MD_PROTOTYPES} is defined, this macro has
+no effect.  As soon as all of the machine descriptions are
+modified to have the appropriate number of arguments, this macro
+will be removed.
+
+@vindex sys_siglist
+Some systems do provide this variable, but with a different name such
+as @code{_sys_siglist}.  On these systems, you can define
+@code{sys_siglist} as a macro which expands into the name actually
+provided.
+
+@findex NO_STAB_H
+@item NO_STAB_H
+Define this if your system does not have the include file
+@file{stab.h}.  If @samp{USG} is defined, @samp{NO_STAB_H} is
+assumed.
+
+@findex PATH_SEPARATOR
+@item PATH_SEPARATOR
+Define this macro to be a C character constant representing the
+character used to separate components in paths.  The default value is.
+the colon character
+
+@findex DIR_SEPARATOR
+@item DIR_SEPARATOR
+If your system uses some character other than slash to separate
+directory names within a file specification, define this macro to be a C
+character constant specifying that character.  When GNU CC displays file
+names, the character you specify will be used.  GNU CC will test for
+both slash and the character you specify when parsing filenames.
+
+@findex OBJECT_SUFFIX
+@item OBJECT_SUFFIX
+Define this macro to be a C string representing the suffix for object
+files on your machine.  If you do not define this macro, GNU CC will use
+@samp{.o} as the suffix for object files.
+
+@findex EXECUTABLE_SUFFIX
+@item EXECUTABLE_SUFFIX
+Define this macro to be a C string representing the suffix for executable
+files on your machine.  If you do not define this macro, GNU CC will use
+the null string as the suffix for object files.
+
+@findex COLLECT_EXPORT_LIST
+@item COLLECT_EXPORT_LIST
+If defined, @code{collect2} will scan the individual object files
+specified on its command line and create an export list for the linker.
+Define this macro for systems like AIX, where the linker discards
+object files that are not referenced from @code{main} and uses export
+lists.
+@end table
+
+@findex bzero
+@findex bcmp
+In addition, configuration files for system V define @code{bcopy},
+@code{bzero} and @code{bcmp} as aliases.  Some files define @code{alloca}
+as a macro when compiled with GNU CC, in order to take advantage of the
+benefit of GNU CC's built-in @code{alloca}.
+
+@node Fragments
+@chapter Makefile Fragments
+@cindex makefile fragment
+
+When you configure GNU CC using the @file{configure} script
+(@pxref{Installation}), it will construct the file @file{Makefile} from
+the template file @file{Makefile.in}.  When it does this, it will
+incorporate makefile fragment files from the @file{config} directory,
+named @file{t-@var{target}} and @file{x-@var{host}}.  If these files do
+not exist, it means nothing needs to be added for a given target or
+host.
+
+@menu
+* Target Fragment:: Writing the @file{t-@var{target}} file.
+* Host Fragment::   Writing the @file{x-@var{host}} file.
+@end menu
+
+@node Target Fragment
+@section The Target Makefile Fragment
+@cindex target makefile fragment
+@cindex @file{t-@var{target}}
+
+The target makefile fragment, @file{t-@var{target}}, defines special
+target dependent variables and targets used in the @file{Makefile}:
+
+@table @code
+@findex LIBGCC1
+@item LIBGCC1
+The rule to use to build @file{libgcc1.a}.
+If your target does not need to use the functions in @file{libgcc1.a},
+set this to empty.
+@xref{Interface}.
+
+@findex CROSS_LIBGCC1
+@item CROSS_LIBGCC1
+The rule to use to build @file{libgcc1.a} when building a cross
+compiler.  If your target does not need to use the functions in
+@file{libgcc1.a}, set this to empty.  @xref{Cross Runtime}.
+
+@findex LIBGCC2_CFLAGS
+@item LIBGCC2_CFLAGS
+Compiler flags to use when compiling @file{libgcc2.c}.
+
+@findex LIB2FUNCS_EXTRA
+@item LIB2FUNCS_EXTRA
+A list of source file names to be compiled or assembled and inserted
+into @file{libgcc.a}.
+
+@findex CRTSTUFF_T_CFLAGS
+@item CRTSTUFF_T_CFLAGS
+Special flags used when compiling @file{crtstuff.c}.
+@xref{Initialization}.
+
+@findex CRTSTUFF_T_CFLAGS_S
+@item CRTSTUFF_T_CFLAGS_S
+Special flags used when compiling @file{crtstuff.c} for shared
+linking.  Used if you use @file{crtbeginS.o} and @file{crtendS.o}
+in @code{EXTRA-PARTS}.
+@xref{Initialization}.
+
+@findex MULTILIB_OPTIONS
+@item MULTILIB_OPTIONS
+For some targets, invoking GNU CC in different ways produces objects
+that can not be linked together.  For example, for some targets GNU CC
+produces both big and little endian code.  For these targets, you must
+arrange for multiple versions of @file{libgcc.a} to be compiled, one for
+each set of incompatible options.  When GNU CC invokes the linker, it
+arranges to link in the right version of @file{libgcc.a}, based on
+the command line options used.
+
+The @code{MULTILIB_OPTIONS} macro lists the set of options for which
+special versions of @file{libgcc.a} must be built.  Write options that
+are mutually incompatible side by side, separated by a slash.  Write
+options that may be used together separated by a space.  The build
+procedure will build all combinations of compatible options.
+
+For example, if you set @code{MULTILIB_OPTIONS} to @samp{m68000/m68020
+msoft-float}, @file{Makefile} will build special versions of
+@file{libgcc.a} using the sets of options @samp{-m68000}, @samp{-m68020},
+@samp{-msoft-float}, @samp{-m68000 -msoft-float}, and @samp{-m68020
+-msoft-float}.
+
+@findex MULTILIB_DIRNAMES
+@item MULTILIB_DIRNAMES
+If @code{MULTILIB_OPTIONS} is used, this variable specifies the
+directory names that should be used to hold the various libraries.
+Write one element in @code{MULTILIB_DIRNAMES} for each element in
+@code{MULTILIB_OPTIONS}.  If @code{MULTILIB_DIRNAMES} is not used, the
+default value will be @code{MULTILIB_OPTIONS}, with all slashes treated
+as spaces.
+
+For example, if @code{MULTILIB_OPTIONS} is specified as @samp{m68000/m68020
+msoft-float}, then the default value of @code{MULTILIB_DIRNAMES} is
+@samp{m68000 m68020 msoft-float}.  You may specify a different value if
+you desire a different set of directory names.
+
+@findex MULTILIB_MATCHES
+@item MULTILIB_MATCHES
+Sometimes the same option may be written in two different ways.  If an
+option is listed in @code{MULTILIB_OPTIONS}, GNU CC needs to know about
+any synonyms.  In that case, set @code{MULTILIB_MATCHES} to a list of
+items of the form @samp{option=option} to describe all relevant
+synonyms.  For example, @samp{m68000=mc68000 m68020=mc68020}.
+
+@findex MULTILIB_EXCEPTIONS
+@item MULTILIB_EXCEPTIONS
+Sometimes when there are multiple sets of @code{MULTILIB_OPTIONS} being
+specified, there are combinations that should not be built.  In that
+case, set @code{MULTILIB_EXCEPTIONS} to be all of the switch exceptions
+in shell case syntax that should not be built.
+
+For example, in the PowerPC embedded ABI support, it was not desirable
+to build libraries that compiled with the @samp{-mcall-aixdesc} option
+and either of the @samp{-mcall-aixdesc} or @samp{-mlittle} options at
+the same time, and therefore @code{MULTILIB_EXCEPTIONS} is set to
+@code{*mrelocatable/*mcall-aixdesc* *mlittle/*mcall-aixdesc*}.
+
+@findex MULTILIB_EXTRA_OPTS
+@item MULTILIB_EXTRA_OPTS
+Sometimes it is desirable that when building multiple versions of
+@file{libgcc.a} certain options should always be passed on to the
+compiler.  In that case, set @code{MULTILIB_EXTRA_OPTS} to be the list
+of options to be used for all builds.
+@end table
+
+@node Host Fragment
+@section The Host Makefile Fragment
+@cindex host makefile fragment
+@cindex @file{x-@var{host}}
+
+The host makefile fragment, @file{x-@var{host}}, defines special host
+dependent variables and targets used in the @file{Makefile}:
+
+@table @code
+@findex CC
+@item CC
+The compiler to use when building the first stage.
+
+@findex CLIB
+@item CLIB
+Additional host libraries to link with.
+
+@findex OLDCC
+@item OLDCC
+The compiler to use when building @file{libgcc1.a} for a native
+compilation.
+
+@findex OLDAR
+@item OLDAR
+The version of @code{ar} to use when building @file{libgcc1.a} for a native
+compilation.
+
+@findex INSTALL
+@item INSTALL
+The install program to use.
+@end table
+
+@node Funding
+@unnumbered Funding Free Software
+
+If you want to have more free software a few years from now, it makes
+sense for you to help encourage people to contribute funds for its
+development.  The most effective approach known is to encourage
+commercial redistributors to donate.
+
+Users of free software systems can boost the pace of development by
+encouraging for-a-fee distributors to donate part of their selling price
+to free software developers---the Free Software Foundation, and others.
+
+The way to convince distributors to do this is to demand it and expect
+it from them.  So when you compare distributors, judge them partly by
+how much they give to free software development.  Show distributors
+they must compete to be the one who gives the most.
+
+To make this approach work, you must insist on numbers that you can
+compare, such as, ``We will donate ten dollars to the Frobnitz project
+for each disk sold.''  Don't be satisfied with a vague promise, such as
+``A portion of the profits are donated,'' since it doesn't give a basis
+for comparison.
+
+Even a precise fraction ``of the profits from this disk'' is not very
+meaningful, since creative accounting and unrelated business decisions
+can greatly alter what fraction of the sales price counts as profit.
+If the price you pay is $50, ten percent of the profit is probably
+less than a dollar; it might be a few cents, or nothing at all.
+
+Some redistributors do development work themselves.  This is useful too;
+but to keep everyone honest, you need to inquire how much they do, and
+what kind.  Some kinds of development make much more long-term
+difference than others.  For example, maintaining a separate version of
+a program contributes very little; maintaining the standard version of a
+program for the whole community contributes much.  Easy new ports
+contribute little, since someone else would surely do them; difficult
+ports such as adding a new CPU to the GNU C compiler contribute more;
+major new features or packages contribute the most.
+
+By establishing the idea that supporting further development is ``the
+proper thing to do'' when distributing free software for a fee, we can
+assure a steady flow of resources into making more free software.
+
+@display
+Copyright (C) 1994 Free Software Foundation, Inc.
+Verbatim copying and redistribution of this section is permitted
+without royalty; alteration is not permitted.
+@end display
+
+@node Look and Feel
+@unnumbered Protect Your Freedom---Fight ``Look And Feel''
+@c the above chapter heading overflows onto the next line. --mew 1/26/93
+
+@quotation
+@i{This section is a political message from the League for Programming
+Freedom to the users of GNU CC.  We have included it here because the
+issue of interface copyright is important to the GNU project.}
+@end quotation
+
+Apple, Lotus, and now CDC have tried to create a new form of legal
+monopoly: a copyright on a user interface.
+
+An interface is a kind of language---a set of conventions for
+communication between two entities, human or machine.  Until a few years
+ago, the law seemed clear: interfaces were outside the domain of
+copyright, so programmers could program freely and implement whatever
+interface the users demanded.  Imitating de-facto standard interfaces,
+sometimes with improvements, was standard practice in the computer
+field.  These improvements, if accepted by the users, caught on and
+became the norm; in this way, much progress took place.
+
+Computer users, and most software developers, were happy with this state
+of affairs.  However, large companies such as Apple and Lotus would
+prefer a different system---one in which they can own interfaces and
+thereby rid themselves of all serious competitors.  They hope that
+interface copyright will give them, in effect, monopolies on major
+classes of software.
+
+Other large companies such as IBM and Digital also favor interface
+monopolies, for the same reason: if languages become property, they
+expect to own many de-facto standard languages.  But Apple and Lotus are
+the ones who have actually sued.  Apple's lawsuit was defeated, for
+reasons only partly related to the general issue of interface copyright.
+
+Lotus won lawsuits against two small companies, which were thus put out
+of business.  Then Lotus sued Borland; Lotus won in the trial court (no
+surprise, since it was the same court that had ruled for Lotus twice
+before), but the court of appeals ruled in favor of Borland, which was
+assisted by a friend-of-the-court brief from the League for Programming
+Freedom.
+
+Lotus appealed the case to the Supreme Court, which heard the case but
+was unable to reach a decision.  This failure means that the appeals
+court decision stands, in one portion of the United States, and may
+influence the other appeals courts, but it does not set a nationwide
+precedent.  The battle is not over, and it is not limited to the United
+States.
+
+The battle is extending into other areas of software as well.  In 1995 a
+company that produced a simulator for a CDC computer was shut down by a
+copyright lawsuit, in which CDC charged that the simulator infringed the
+copyright on the manuals for the computer.
+
+If the monopolists get their way, they will hobble the software field:
+
+@itemize @bullet
+@item
+Gratuitous incompatibilities will burden users.  Imagine if each car
+manufacturer had to design a different way to start, stop, and steer a
+car.
+
+@item
+Users will be ``locked in'' to whichever interface they learn; then they
+will be prisoners of one supplier, who will charge a monopolistic price.
+
+@item
+Large companies have an unfair advantage wherever lawsuits become
+commonplace.  Since they can afford to sue, they can intimidate smaller
+developers with threats even when they don't really have a case.
+
+@item
+Interface improvements will come slower, since incremental evolution
+through creative partial imitation will no longer occur.
+@end itemize
+
+If interface monopolies are accepted, other large companies are waiting
+to grab theirs:
+
+@itemize @bullet
+@item
+Adobe is expected to claim a monopoly on the interfaces of various
+popular application programs, if Lotus ultimately wins the case against
+Borland.
+
+@item
+Open Computing magazine reported a Microsoft vice president as threatening
+to sue people who imitate the interface of Windows.
+@end itemize
+
+Users invest a great deal of time and money in learning to use computer
+interfaces.  Far more, in fact, than software developers invest in
+developing @emph{and even implementing} the interfaces.  Whoever can own
+an interface, has made its users into captives, and misappropriated
+their investment.
+
+To protect our freedom from monopolies like these, a group of
+programmers and users have formed a grass-roots political organization,
+the League for Programming Freedom.
+
+The purpose of the League is to oppose monopolistic practices such as
+interface copyright and software patents.  The League calls for a return
+to the legal policies of the recent past, in which programmers could
+program freely.  The League is not concerned with free software as an
+issue, and is not affiliated with the Free Software Foundation.
+
+The League's activities include publicizing the issues, as is being done
+here, and filing friend-of-the-court briefs on behalf of defendants sued
+by monopolists.
+
+The League's membership rolls include Donald Knuth, the foremost
+authority on algorithms, John McCarthy, inventor of Lisp, Marvin Minsky,
+founder of the MIT Artificial Intelligence lab, Guy L. Steele, Jr.,
+author of well-known books on Lisp and C, as well as Richard Stallman,
+the developer of GNU CC.  Please join and add your name to the list.
+Membership dues in the League are $42 per year for programmers, managers
+and professionals; $10.50 for students; $21 for others.
+
+Activist members are especially important, but members who have no time
+to give are also important.  Surveys at major ACM conferences have
+indicated a vast majority of attendees agree with the League on both
+issues (interface copyrights and software patents).  If just ten percent
+of the programmers who agree with the League join the League, we will
+probably triumph.
+
+To join, or for more information, send electronic mail to
+the address @code{lpf@@uunet.uu.net} or write to:
+
+@display
+League for Programming Freedom
+1 Kendall Square #143
+P.O. Box 9171
+Cambridge, MA 02139
+@end display
+
+In addition to joining the League, here are some suggestions from the
+League for other things you can do to protect your freedom to write
+programs:
+
+@itemize @bullet
+@item
+Tell your friends and colleagues about this issue and how it threatens
+to ruin the computer industry.
+
+@item
+Mention that you are a League member in your @file{.signature}, and
+mention the League's email address for inquiries.
+
+@item
+Ask the companies you consider working for or working with to make
+statements against software monopolies, and give preference to those
+that do.
+
+@item
+When employers ask you to sign contracts giving them copyright on your
+work, insist on a clause saying they will not claim the copyright covers
+imitating the interface.
+
+@item
+When employers ask you to sign contracts giving them patent rights,
+insist on clauses saying they can use these rights only defensively.
+Don't rely on ``company policy,'' since that can change at any time;
+don't rely on an individual executive's private word, since that person
+may be replaced.  Get a commitment just as binding as the commitment
+they get from you.
+
+@item
+Write to Congress to explain the importance of these issues.
+
+@display
+House Subcommittee on Intellectual Property
+2137 Rayburn Bldg
+Washington, DC 20515
+
+Senate Subcommittee on Patents, Trademarks and Copyrights
+United States Senate
+Washington, DC 20510
+@end display
+
+(These committees have received lots of mail already; let's give them
+even more.)
+@end itemize
+
+Democracy means nothing if you don't use it.  Stand up and be counted!
+
+
+@node Copying
+@unnumbered GNU GENERAL PUBLIC LICENSE
+@center Version 2, June 1991
+
+@display
+Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+@end display
+
+@unnumberedsec Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software---to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+@iftex
+@unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+@end iftex
+@ifinfo
+@center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+@end ifinfo
+
+@enumerate 0
+@item
+This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The ``Program'', below,
+refers to any such program or work, and a ``work based on the Program''
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term ``modification''.)  Each licensee is addressed as ``you''.
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+@item
+You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+@item
+You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+@enumerate a
+@item
+You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+@item
+You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+@item
+If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License.  (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+@end enumerate
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+@item
+You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+@enumerate a
+@item
+Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+@item
+Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+@item
+Accompany it with the information you received as to the offer
+to distribute corresponding source code.  (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+@end enumerate
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+@item
+You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+@item
+You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+@item
+Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+@item
+If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+@item
+If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+@item
+The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and ``any
+later version'', you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+@item
+If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+@iftex
+@heading NO WARRANTY
+@end iftex
+@ifinfo
+@center NO WARRANTY
+@end ifinfo
+
+@item
+BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+@item
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+@end enumerate
+
+@iftex
+@heading END OF TERMS AND CONDITIONS
+@end iftex
+@ifinfo
+@center END OF TERMS AND CONDITIONS
+@end ifinfo
+
+@page
+@unnumberedsec How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the ``copyright'' line and a pointer to where the full notice is found.
+
+@smallexample
+@var{one line to give the program's name and a brief idea of what it does.}
+Copyright (C) 19@var{yy}  @var{name of author}
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+@end smallexample
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+@smallexample
+Gnomovision version 69, Copyright (C) 19@var{yy} @var{name of author}
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
+type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+@end smallexample
+
+The hypothetical commands @samp{show w} and @samp{show c} should show
+the appropriate parts of the General Public License.  Of course, the
+commands you use may be called something other than @samp{show w} and
+@samp{show c}; they could even be mouse-clicks or menu items---whatever
+suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a ``copyright disclaimer'' for the program, if
+necessary.  Here is a sample; alter the names:
+
+@smallexample
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+@var{signature of Ty Coon}, 1 April 1989
+Ty Coon, President of Vice
+@end smallexample
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+
+@node Contributors
+@unnumbered Contributors to GNU CC
+@cindex contributors
+
+In addition to Richard Stallman, several people have written parts
+of GNU CC.
+
+@itemize @bullet
+@item
+The idea of using RTL and some of the optimization ideas came from the
+program PO written at the University of Arizona by Jack Davidson and
+Christopher Fraser.  See ``Register Allocation and Exhaustive Peephole
+Optimization'', Software Practice and Experience 14 (9), Sept. 1984,
+857-866.
+
+@item
+Paul Rubin wrote most of the preprocessor.
+
+@item
+Leonard Tower wrote parts of the parser, RTL generator, and RTL
+definitions, and of the Vax machine description.
+
+@item
+Ted Lemon wrote parts of the RTL reader and printer.
+
+@item
+Jim Wilson implemented loop strength reduction and some other
+loop optimizations.
+
+@item
+Nobuyuki Hikichi of Software Research Associates, Tokyo, contributed
+the support for the Sony NEWS machine.
+
+@item
+Charles LaBrec contributed the support for the Integrated Solutions
+68020 system.
+
+@item
+Michael Tiemann of Cygnus Support wrote the front end for C++, as well
+as the support for inline functions and instruction scheduling.  Also
+the descriptions of the National Semiconductor 32000 series cpu, the
+SPARC cpu and part of the Motorola 88000 cpu.
+
+@item
+Gerald Baumgartner added the signature extension to the C++ front-end.
+
+@item
+Jan Stein of the Chalmers Computer Society provided support for
+Genix, as well as part of the 32000 machine description.
+
+@item
+Randy Smith finished the Sun FPA support.
+
+@item
+Robert Brown implemented the support for Encore 32000 systems.
+
+@item
+David Kashtan of SRI adapted GNU CC to VMS.
+
+@item
+Alex Crain provided changes for the 3b1.
+
+@item
+Greg Satz and Chris Hanson assisted in making GNU CC work on HP-UX for
+the 9000 series 300.
+
+@item
+William Schelter did most of the work on the Intel 80386 support.
+
+@item
+Christopher Smith did the port for Convex machines.
+
+@item
+Paul Petersen wrote the machine description for the Alliant FX/8.
+
+@item
+Dario Dariol contributed the four varieties of sample programs
+that print a copy of their source.
+
+@item
+Alain Lichnewsky ported GNU CC to the Mips cpu.
+
+@item
+Devon Bowen, Dale Wiles and Kevin Zachmann ported GNU CC to the Tahoe.
+
+@item
+Jonathan Stone wrote the machine description for the Pyramid computer.
+
+@item
+Gary Miller ported GNU CC to Charles River Data Systems machines.
+
+@item
+Richard Kenner of the New York University Ultracomputer Research
+Laboratory wrote the machine descriptions for the AMD 29000, the DEC
+Alpha, the IBM RT PC, and the IBM RS/6000 as well as the support for
+instruction attributes.  He also made changes to better support RISC
+processors including changes to common subexpression elimination,
+strength reduction, function calling sequence handling, and condition
+code support, in addition to generalizing the code for frame pointer
+elimination.
+
+@item
+Richard Kenner and Michael Tiemann jointly developed reorg.c, the delay
+slot scheduler.
+
+@item
+Mike Meissner and Tom Wood of Data General finished the port to the
+Motorola 88000.
+
+@item
+Masanobu Yuhara of Fujitsu Laboratories implemented the machine
+description for the Tron architecture (specifically, the Gmicro).
+
+@item
+NeXT, Inc.@: donated the front end that supports the Objective C
+language.
+@c We need to be careful to make it clear that "Objective C"
+@c is the name of a language, not that of a program or product.
+
+@item
+James van Artsdalen wrote the code that makes efficient use of
+the Intel 80387 register stack.
+
+@item
+Mike Meissner at the Open Software Foundation finished the port to the
+MIPS cpu, including adding ECOFF debug support, and worked on the
+Intel port for the Intel 80386 cpu.  Later at Cygnus Support, he worked
+on the rs6000 and PowerPC ports.
+
+@item
+Ron Guilmette implemented the @code{protoize} and @code{unprotoize}
+tools, the support for Dwarf symbolic debugging information, and much of
+the support for System V Release 4.  He has also worked heavily on the
+Intel 386 and 860 support.
+
+@item
+Torbjorn Granlund implemented multiply- and divide-by-constant
+optimization, improved long long support, and improved leaf function
+register allocation.
+
+@item
+Mike Stump implemented the support for Elxsi 64 bit CPU.
+
+@item
+John Wehle added the machine description for the Western Electric 32000
+processor used in several 3b series machines (no relation to the
+National Semiconductor 32000 processor).
+
+@ignore @c These features aren't advertised yet, since they don't fully work.
+@item
+Analog Devices helped implement the support for complex data types
+and iterators.
+@end ignore
+
+@item
+Holger Teutsch provided the support for the Clipper cpu.
+
+@item
+Kresten Krab Thorup wrote the run time support for the Objective C
+language.
+
+@item
+Stephen Moshier contributed the floating point emulator that assists in
+cross-compilation and permits support for floating point numbers wider
+than 64 bits.
+
+@item
+David Edelsohn contributed the changes to RS/6000 port to make it
+support the PowerPC and POWER2 architectures.
+
+@item
+Steve Chamberlain wrote the support for the Hitachi SH processor.
+
+@item
+Peter Schauer wrote the code to allow debugging to work on the Alpha.
+
+@item
+Oliver M. Kellogg of Deutsche Aerospace contributed the port to the
+MIL-STD-1750A.
+
+@item
+Michael K. Gschwind contributed the port to the PDP-11.
+
+@item
+David Reese of Sun Microsystems contributed to the Solaris on PowerPC
+port.
+@end itemize
+
+@node Index
+@unnumbered Index
+@end ifset
+
+@ifclear INTERNALS
+@node Index
+@unnumbered Index
+@end ifclear
+
+@printindex cp
+
+@summarycontents
+@contents
+@bye
diff --git a/gcc/getopt.c b/gcc/getopt.c
index f622fc3..300f86d 100644
--- a/gcc/getopt.c
+++ b/gcc/getopt.c
@@ -6,23 +6,23 @@
    Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
    	Free Software Foundation, Inc.
 
-   NOTE: The canonical source of this file is maintained with the GNU C Library.
-   Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+NOTE: The canonical source of this file is maintained with the GNU C Library.
+Bugs can be reported to bug-glibc@prep.ai.mit.edu.
 
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by the
-   Free Software Foundation; either version 2, or (at your option) any
-   later version.
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
 
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
 
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-   USA.  */
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+USA.  */
 
 /* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
    Ditto for AIX 3.2 and <stdlib.h>.  */
diff --git a/gcc/getopt.h b/gcc/getopt.h
index fb30719a..69256fd 100644
--- a/gcc/getopt.h
+++ b/gcc/getopt.h
@@ -1,23 +1,23 @@
 /* Declarations for getopt.
    Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc.
 
-   NOTE: The canonical source of this file is maintained with the GNU C Library.
-   Bugs can be reported to bug-glibc@gnu.org.
+NOTE: The canonical source of this file is maintained with the GNU C Library.
+Bugs can be reported to bug-glibc@prep.ai.mit.edu.
 
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by the
-   Free Software Foundation; either version 2, or (at your option) any
-   later version.
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
 
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
 
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-   USA.  */
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+USA.  */
 
 #ifndef _GETOPT_H
 #define _GETOPT_H 1
@@ -130,4 +130,4 @@
 }
 #endif
 
-#endif /* getopt.h */
+#endif /* _GETOPT_H */
diff --git a/gcc/getopt1.c b/gcc/getopt1.c
index af8e681..6507ba1 100644
--- a/gcc/getopt1.c
+++ b/gcc/getopt1.c
@@ -1,23 +1,23 @@
 /* getopt_long and getopt_long_only entry points for GNU getopt.
    Copyright (C) 1987,88,89,90,91,92,93,94,96,97 Free Software Foundation, Inc.
 
-   NOTE: The canonical source of this file is maintained with the GNU C Library.
-   Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+NOTE: The canonical source of this file is maintained with the GNU C Library.
+Bugs can be reported to bug-glibc@prep.ai.mit.edu.
 
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by the
-   Free Software Foundation; either version 2, or (at your option) any
-   later version.
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
 
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
 
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-   USA.  */
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+USA.  */
 
 #ifdef HAVE_CONFIG_H
 #include <config.h>
diff --git a/gcc/gstab.h b/gcc/gstab.h
new file mode 100644
index 0000000..80bd594
--- /dev/null
+++ b/gcc/gstab.h
@@ -0,0 +1,17 @@
+#ifndef __GNU_STAB__
+
+/* Indicate the GNU stab.h is in use.  */
+
+#define __GNU_STAB__
+
+#define __define_stab(NAME, CODE, STRING) NAME=CODE,
+
+enum __stab_debug_code
+{
+#include "stab.def"
+LAST_UNUSED_STAB_CODE
+};
+
+#undef __define_stab
+
+#endif /* __GNU_STAB_ */
diff --git a/gcc/install.texi b/gcc/install.texi
index c6ba6f5..9f02385 100644
--- a/gcc/install.texi
+++ b/gcc/install.texi
@@ -179,13 +179,13 @@
 @cindex Objective C threads
 @cindex threads, Objective C
 @item --enable-objcthreads=@var{type}
-Certain systems, notably Linux, can't be relied on to supply a threads
-facility for the Objective C runtime and so will default to
-single-threaded runtime.  They may, however, have a library threads
-implementation available, in which case threads can be enabled with this
-option by supplying a suitable @var{type}, probably @samp{posix}.
-The possibilities for @var{type} are @samp{single}, @samp{posix},
-@samp{win32}, @samp{solaris}, @samp{irix} and @samp{mach}.
+Certain systems, notably Linux-based GNU systems, can't be relied on to
+supply a threads facility for the Objective C runtime and so will
+default to single-threaded runtime.  They may, however, have a library
+threads implementation available, in which case threads can be enabled
+with this option by supplying a suitable @var{type}, probably
+@samp{posix}.  The possibilities for @var{type} are @samp{single},
+@samp{posix}, @samp{win32}, @samp{solaris}, @samp{irix} and @samp{mach}.
 @end table
 
 The @file{configure} script searches subdirectories of the source
@@ -610,7 +610,7 @@
 
 @quotation
 386bsd, aix, acis, amigados, aos, aout, aux, bosx, bsd, clix, coff, ctix, cxux,
-dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms, genix, gnu, gnu/linux,
+dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms, genix, gnu, linux-gnu,
 hiux, hpux, iris, irix, isc, luna, lynxos, mach, minix, msdos, mvs,
 netbsd, newsos, nindy, ns, osf, osfrose, ptx, riscix, riscos, rtu, sco, sim,
 solaris, sunos, sym, sysv, udi, ultrix, unicos, uniplus, unos, vms, vsta,
@@ -759,15 +759,22 @@
 DBX.  DEC is now aware of this problem with the assembler and hopes to
 provide a fix shortly.
 
-@item arm
+@item arm-*-aout
 Advanced RISC Machines ARM-family processors.  These are often used in
 embedded applications.  There are no standard Unix configurations.
 This configuration corresponds to the basic instruction sequences and will
-produce a.out format object modules.
+produce @file{a.out} format object modules.
 
 You may need to make a variant of the file @file{arm.h} for your particular
 configuration.
 
+@item arm-*-linuxaout
+Any of the ARM family processors running the Linux-based GNU system with
+the @file{a.out} binary format (ELF is not yet supported).  You must use
+version 2.8.1.0.7 or later of the Linux binutils, which you can download
+from @file{sunsite.unc.edu:/pub/Linux/GCC} and other mirror sites for
+Linux-based GNU systems.
+
 @item arm-*-riscix
 The ARM2 or ARM3 processor running RISC iX, Acorn's port of BSD Unix.  If
 you are running a version of RISC iX prior to 1.2 then you must specify
@@ -880,19 +887,19 @@
 This port is very preliminary and has many known bugs.  We hope to
 have a higher-quality port for this machine soon.
 
-@item i386-*-linuxoldld
-Use this configuration to generate a.out binaries on Linux if you do not
-have gas/binutils version 2.5.2 or later installed. This is an obsolete
-configuration.
+@item i386-*-linux-gnuoldld
+Use this configuration to generate @file{a.out} binaries on Linux-based
+GNU systems if you do not have gas/binutils version 2.5.2 or later
+installed. This is an obsolete configuration.
 
-@item i386-*-linuxaout
-Use this configuration to generate a.out binaries on Linux. This configuration
-is being superseded. You must use gas/binutils version 2.5.2 or
-later.
+@item i386-*-linux-gnuaout
+Use this configuration to generate @file{a.out} binaries on Linux-based
+GNU systems. This configuration is being superseded. You must use
+gas/binutils version 2.5.2 or later.
 
-@item i386-*-linux
-Use this configuration to generate ELF binaries on Linux.  You must
-use gas/binutils version 2.5.2 or later.
+@item i386-*-linux-gnu
+Use this configuration to generate ELF binaries on Linux-based GNU
+systems.  You must use gas/binutils version 2.5.2 or later.
 
 @item i386-*-sco
 Compilation with RCC is recommended.  Also, it may be a good idea to
@@ -1017,7 +1024,7 @@
 You can tell GNU CC to use the GNU assembler and linker, by specifying
 @samp{--with-gnu-as --with-gnu-ld} when configuring.  These will produce
 COFF format object files and executables;  otherwise GNU CC will use the
-installed tools, which produce a.out format executables.
+installed tools, which produce @file{a.out} format executables.
 
 @item m32r-*-elf
 Embedded M32R system.
@@ -1378,8 +1385,8 @@
 You can specify a default version for the @samp{-mcpu=}@var{cpu_type}
 switch by using the configure option @samp{--with-cpu-}@var{cpu_type}.
 
-@item powerpc-*-linux
-PowerPC system in big endian mode, running Linux.
+@item powerpc-*-linux-gnu
+PowerPC system in big endian mode, running the Linux-based GNU system.
 
 You can specify a default version for the @samp{-mcpu=}@var{cpu_type}
 switch by using the configure option @samp{--with-cpu-}@var{cpu_type}.
diff --git a/gcc/install1.texi b/gcc/install1.texi
new file mode 100644
index 0000000..82ef9b6
--- /dev/null
+++ b/gcc/install1.texi
@@ -0,0 +1,15 @@
+@setfilename INSTALL
+@set INSTALLONLY
+
+@c This file itself, install1.texi, does not apear in the GCC distribution.
+@c The immediately following lines apply to the INSTALL file
+@c which is generated using this file.
+This file documents the installation of the GNU compiler.
+Copyright (C) 1988, 1989, 1992, 1994, 1995 Free Software Foundation, Inc.
+You may copy, distribute, and modify it freely as long as you preserve
+this copyright notice and permission notice.
+
+@node Installation,,, (dir)
+@chapter Installing GNU CC
+@include install.texi
+@bye
diff --git a/gcc/invoke.texi b/gcc/invoke.texi
index c975c35..7a643d6 100644
--- a/gcc/invoke.texi
+++ b/gcc/invoke.texi
@@ -1,4 +1,4 @@
-@c Copyright (C) 1988, 89, 92, 93, 94, 1995, 1996 Free Software Foundation, Inc.
+@c Copyright (C) 1988,89,92,93,94,95,96,1997 Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
 
@@ -93,8 +93,8 @@
 @item C Language Options
 @xref{C Dialect Options,,Options Controlling C Dialect}.
 @smallexample
--ansi  -fallow-single-precision -fcond-mismatch  -fno-asm
--fno-builtin  -fsigned-bitfields  -fsigned-char
+-ansi  -fallow-single-precision  -fcond-mismatch  -fno-asm
+-fno-builtin  -ffreestanding - fhosted  -fsigned-bitfields  -fsigned-char
 -funsigned-bitfields  -funsigned-char  -fwritable-strings
 -traditional  -traditional-cpp  -trigraphs
 @end smallexample
@@ -105,8 +105,8 @@
 -fall-virtual  -fdollars-in-identifiers  -felide-constructors
 -fenum-int-equiv -fexternal-templates  -ffor-scope -fno-for-scope
 -fhandle-signatures -fmemoize-lookups  -fno-default-inline -fno-gnu-keywords
--fnonnull-objects  -foperator-names  -fstrict-prototype
--fthis-is-variable -nostdinc++ -traditional  +e@var{n}
+-fnonnull-objects  -foperator-names  -fstrict-prototype -fthis-is-variable
+-ftemplate-depth-@var{n} -nostdinc++ -traditional  +e@var{n}
 @end smallexample
 
 @item Warning Options
@@ -117,20 +117,21 @@
 -Wcast-align -Wcast-qual  -Wchar-subscript  -Wcomment
 -Wconversion  -Werror  -Wformat
 -Wid-clash-@var{len}  -Wimplicit  -Wimport  -Winline
--Wlarger-than-@var{len}  -Wmissing-declarations
+-Wlarger-than-@var{len}  -Wmain  -Wmissing-declarations
 -Wmissing-prototypes  -Wnested-externs
 -Wno-import  -Woverloaded-virtual -Wparentheses
 -Wpointer-arith  -Wredundant-decls -Wreorder -Wreturn-type -Wshadow
 -Wsign-compare -Wstrict-prototypes  -Wswitch  -Wsynth
 -Wtemplate-debugging  -Wtraditional  -Wtrigraphs
--Wuninitialized  -Wunused  -Wwrite-strings
+-Wundef -Wuninitialized  -Wunused  -Wwrite-strings
 @end smallexample
 
 @item Debugging Options
 @xref{Debugging Options,,Options for Debugging Your Program or GCC}.
 @smallexample
 -a  -ax  -d@var{letters}  -fpretend-float
--g  -g@var{level} -gcoff  -gdwarf  -gdwarf+
+-fprofile-arcs  -ftest-coverage
+-g  -g@var{level} -gcoff  -gdwarf  -gdwarf-1  -gdwarf-1+  -gdwarf-2
 -ggdb  -gstabs  -gstabs+  -gxcoff  -gxcoff+
 -p  -pg  -print-file-name=@var{library}  -print-libgcc-file-name
 -print-prog-name=@var{program}  -print-search-dirs  -save-temps
@@ -139,6 +140,7 @@
 @item Optimization Options
 @xref{Optimize Options,,Options that Control Optimization}.
 @smallexample
+-fbranch-probabilities
 -fcaller-saves  -fcse-follow-jumps  -fcse-skip-blocks
 -fdelayed-branch   -fexpensive-optimizations
 -ffast-math  -ffloat-store  -fforce-addr  -fforce-mem
@@ -184,7 +186,7 @@
 @item Directory Options
 @xref{Directory Options,,Options for Directory Search}.
 @smallexample
--B@var{prefix}  -I@var{dir}  -I-  -L@var{dir}
+-B@var{prefix}  -I@var{dir}  -I-  -L@var{dir} -specs=@var{file}
 @end smallexample
 
 @item Target Options
@@ -198,9 +200,9 @@
 @xref{Submodel Options,,Hardware Models and Configurations}.
 @smallexample
 @emph{M680x0 Options}
--m68000  -m68020  -m68020-40  -m68030  -m68040  -m68060
--m5200  -m68881 -mbitfield  -mc68000  -mc68020  -mfpa
--mnobitfield  -mrtd  -mshort  -msoft-float
+-m68000  -m68020  -m68020-40  -m68020-60 -m68030  -m68040
+-m68060  -m5200  -m68881 -mbitfield  -mc68000  -mc68020  -mfpa
+-mnobitfield  -mrtd  -mshort  -msoft-float  -malign-int
 
 @emph{VAX Options}
 -mg  -mgnu  -munix
@@ -239,6 +241,10 @@
 -msoft-float -mhard-float
 -mbsd -mxopen -mno-symrename
 
+@emph{M32R/D Options}
+-mcode-model=@var{model type}  -msdata=@var{sdata type}
+-G @var{num}
+
 @emph{M88K Options}
 -m88000  -m88100  -m88110  -mbig-pic
 -mcheck-zero-division  -mhandle-large-shift
@@ -260,9 +266,10 @@
 -mpowerpc-gfxopt  -mno-powerpc-gfxopt
 -mnew-mnemonics  -mno-new-mnemonics
 -mfull-toc   -mminimal-toc  -mno-fop-in-toc  -mno-sum-in-toc
--mxl-call  -mno-xl-call
+-mxl-call  -mno-xl-call  -mthreads  -mpe
 -msoft-float  -mhard-float  -mmultiple  -mno-multiple
--mstring  -mno-string  -mbit-align  -mno-bit-align
+-mstring  -mno-string  -mupdate  -mno-update
+-mfused-madd  -mno-fused-madd  -mbit-align  -mno-bit-align
 -mstrict-align  -mno-strict-align  -mrelocatable
 -mno-relocatable  -mrelocatable-lib  -mno-relocatable-lib
 -mtoc  -mno-toc  -mtraceback  -mno-traceback
@@ -297,8 +304,8 @@
 -malign-functions=@var{num}
 
 @emph{HPPA Options}
--mdisable-fpregs  -mdisable-indexing -mfast-indirect-calls
--mgas  -mjump-in-delay -mlong-load-store -mno-disable-fpregs
+-mbig-switch -mdisable-fpregs  -mdisable-indexing -mfast-indirect-calls
+-mgas  -mjump-in-delay -mlong-load-store -mno-big-switch -mno-disable-fpregs
 -mno-disable-indexing -mno-fast-indirect-calls -mno-gas
 -mno-jump-in-delay
 -mno-long-load-store
@@ -341,11 +348,12 @@
 @smallexample
 -fcall-saved-@var{reg}  -fcall-used-@var{reg}
 -ffixed-@var{reg}  -finhibit-size-directive
+-fcheck-memory-usage  -fprefix-function-name
 -fno-common  -fno-ident  -fno-gnu-linker
 -fpcc-struct-return  -fpic  -fPIC
 -freg-struct-return  -fshared-data  -fshort-enums
 -fshort-double  -fvolatile  -fvolatile-global
--fverbose-asm -fpack-struct  +e0  +e1
+-fverbose-asm -fpack-struct  -fstack-check  +e0  +e1
 @end smallexample
 @end table
 
@@ -558,8 +566,8 @@
 C, such as the @code{asm}, @code{inline} and @code{typeof} keywords, and
 predefined macros such as @code{unix} and @code{vax} that identify the
 type of system you are using.  It also enables the undesirable and
-rarely used ANSI trigraph feature, disallows @samp{$} as part of
-identifiers, and disables recognition of C++ style @samp{//} comments.
+rarely used ANSI trigraph feature, and it disables recognition of C++
+style @samp{//} comments.
 
 The alternate keywords @code{__asm__}, @code{__extension__},
 @code{__inline__} and @code{__typeof__} continue to work despite
@@ -628,6 +636,24 @@
 builtin functions, since these functions do not have an ANSI standard
 meaning.
 
+@item -fhosted
+@cindex hosted environment
+
+Assert that compilation takes place in a hosted environment.  This implies
+@samp{-fbuiltin}.  A hosted environment is one in which the
+entire standard library is available, and in which @code{main} has a return
+type of @code{int}.  Examples are nearly everything except a kernel.
+This is equivalent to @samp{-fno-freestanding}.
+
+@item -ffreestanding
+@cindex hosted environment
+
+Assert that compilation takes place in a freestanding environment.  This
+implies @samp{-fno-builtin}.  A freestanding environment
+is one in which the standard library may not exist, and program startup may
+not necessarily be at @code{main}.  The most obvious example is an OS kernel.
+This is equivalent to @samp{-fno-hosted}.
+
 @item -trigraphs
 Support ANSI C trigraphs.  You don't want to know about this
 brain-damage.  The @samp{-ansi} option implies @samp{-trigraphs}.
@@ -1029,6 +1055,12 @@
 will be emitted in the translation unit containing the first one of
 those.
 
+@item -ftemplate-depth-@var{n}
+Set the maximum instantiation depth for template classes to @var{n}.
+A limit on the template instantiation depth is needed to detect
+endless recursions during template class instantiation. ANSI/ISO C++
+conforming programs must not rely on a maximum depth greater than 17.
+
 @item -nostdinc++
 Do not search for header files in the standard directories specific to
 C++, but do still search the other standard directories.  (This option
@@ -1053,6 +1085,9 @@
 Warnings that apply only to C++ programs.  @xref{Warning
 Options,,Options to Request or Suppress Warnings}.
 
+@item -Weffc++
+Warn about violation of some style rules from Effective C++ by Scott Myers.
+
 @item +e@var{n}
 Control how virtual function definitions are used, in a fashion
 compatible with @code{cfront} 1.x.  @xref{Code Gen Options,,Options for
@@ -1143,8 +1178,14 @@
 specified.
 
 @item -Wimplicit
-Warn whenever a function or parameter is implicitly declared.
+Warn whenever a function or parameter is implicitly declared,
+or when a type implicitly defaults to @code{int}.
 
+@item -Wmain
+Warn if the type of @samp{main} is suspicious.  @samp{main} should be a
+function with external linkage, returning int, taking either zero
+arguments, two, or three arguments of appropriate types.
+  
 @item -Wparentheses
 Warn if parentheses are omitted in certain contexts, such
 as when there is an assignment in a context where a truth value
@@ -1366,6 +1407,9 @@
 A @code{switch} statement has an operand of type @code{long}.
 @end itemize
 
+@item -Wundef
+Warn if an undefined identifier is evaluated in an @samp{#if} directive.
+
 @item -Wshadow
 Warn whenever a local variable shadows another local variable.
 
@@ -1510,7 +1554,7 @@
 crash or
 refuse to read the program.  If you want to control for certain whether
 to generate the extra information, use @samp{-gstabs+}, @samp{-gstabs},
-@samp{-gxcoff+}, @samp{-gxcoff}, @samp{-gdwarf+}, or @samp{-gdwarf}
+@samp{-gxcoff+}, @samp{-gxcoff}, @samp{-gdwarf-1+}, or @samp{-gdwarf-1}
 (see below).
 
 Unlike most other C compilers, GNU CC allows you to use @samp{-g} with
@@ -1528,8 +1572,10 @@
 capability for more than one debugging format.
 
 @item -ggdb
-Produce debugging information in the native format (if that is supported),
-including GDB extensions if at all possible.
+Produce debugging information for use by GDB.  This means to use the
+most expressive format available (DWARF 2, stabs, or the native format
+if neither of those are supported), including GDB extensions if at all
+possible.
 
 @item -gstabs
 Produce debugging information in stabs format (if that is supported),
@@ -1561,14 +1607,19 @@
 assembler (GAS) to fail with an error.
 
 @item -gdwarf
-Produce debugging information in DWARF format (if that is supported).
-This is the format used by SDB on most System V Release 4 systems.
+Produce debugging information in DWARF version 1 format (if that is
+supported).  This is the format used by SDB on most System V Release 4
+systems.
 
 @item -gdwarf+
-Produce debugging information in DWARF format (if that is supported),
-using GNU extensions understood only by the GNU debugger (GDB).  The
-use of these extensions is likely to make other debuggers crash or
-refuse to read the program.
+Produce debugging information in DWARF version 1 format (if that is
+supported), using GNU extensions understood only by the GNU debugger
+(GDB).  The use of these extensions is likely to make other debuggers
+crash or refuse to read the program.
+
+@item -gdwarf-2
+Produce debugging information in DWARF version 2 format (if that is
+supported).  This is the format used by DBX on IRIX 6.
 
 @item -g@var{level}
 @itemx -ggdb@var{level}
@@ -1576,6 +1627,7 @@
 @itemx -gcoff@var{level}
 @itemx -gxcoff@var{level}
 @itemx -gdwarf@var{level}
+@itemx -gdwarf-2@var{level}
 Request debugging information and also use @var{level} to specify how
 much information.  The default level is 2.
 
@@ -1688,6 +1740,54 @@
 written to @file{bbtrace.gz}.  It is solely used for counting jump
 frequencies.
 
+@item -fprofile-arcs
+Instrument @dfn{arcs} during compilation.  For each function of your
+program, GNU CC creates a program flow graph, then finds a spanning tree
+for the graph.  Only arcs that are not on the spanning tree have to be
+instrumented: the compiler adds code to count the number of times that these
+arcs are executed.  When an arc is the only exit or only entrance to a
+block, the instrumentation code can be added to the block; otherwise, a
+new basic block must be created to hold the instrumentation code.
+
+Since not every arc in the program must be instrumented, programs
+compiled with this option run faster than programs compiled with
+@samp{-a}, which adds instrumentation code to every basic block in the
+program.  The tradeoff: since @code{gcov} does not have
+execution counts for all branches, it must start with the execution
+counts for the instrumented branches, and then iterate over the program
+flow graph until the entire graph has been solved.  Hence, @code{gcov}
+runs a little more slowly than a program which uses information from
+@samp{-a}.
+
+@samp{-fprofile-arcs} also makes it possible to estimate branch
+probabilities, and to calculate basic block execution counts.  In
+general, basic block execution counts do not give enough information to
+estimate all branch probabilities.  When the compiled program exits, it
+saves the arc execution counts to a file called
+@file{@var{sourcename}.da}.  Use the compiler option
+@samp{-fbranch-probabilities} (@pxref{Optimize Options,,Options that
+Control Optimization}) when recompiling, to optimize using estimated
+branch probabilities.
+
+@need 2000
+@item -ftest-coverage
+Create data files for the @code{gcov} code-coverage utility
+(@pxref{Gcov,, @code{gcov}: a GNU CC Test Coverage Program}).
+The data file names begin with the name of your source file:
+
+@table @code
+@item @var{sourcename}.bb
+A mapping from basic blocks to line numbers, which @code{gcov} uses to
+associate basic block execution counts with line numbers.
+
+@item @var{sourcename}.bbg
+A list of all arcs in the program flow graph.  This allows @code{gcov}
+to reconstruct the program flow graph, so that it can compute all basic
+block and arc execution counts from the information in the
+@code{@var{sourcename}.da} file (this last file is the output from
+@samp{-fprofile-arcs}).
+@end table
+
 @item -d@var{letters}
 Says to make debugging dumps during compilation at times specified by
 @var{letters}.  This is used for debugging the compiler.  The file names
@@ -2078,6 +2178,23 @@
 
 @item -fno-peephole
 Disable any machine-specific peephole optimizations.
+
+@item -fbranch-probabilities
+After running a program compiled with @samp{-fprofile-arcs}
+(@pxref{Debugging Options,, Options for Debugging Your Program or
+@code{gcc}}), you can compile it a second time using
+@samp{-fbranch-probabilities}, to improve optimizations based on
+guessing the path a branch might take.
+
+@ifset INTERNALS
+With @samp{-fbranch-probabilities}, GNU CC puts a @samp{REG_EXEC_COUNT}
+note on the first instruction of each basic block, and a
+@samp{REG_BR_PROB} note on each @samp{JUMP_INSN} and @samp{CALL_INSN}.
+These can be used to improve optimization.  Currently, they are only
+used in one place: in @file{reorg.c}, instead of guessing which path a
+branch is mostly to take, the @samp{REG_BR_PROB} values are used to
+exactly determine which path is taken more often.
+@end ifset
 @end table
 
 @node Preprocessor Options
@@ -2412,9 +2529,9 @@
 
 @table @code
 @item -I@var{dir}
-Add the directory @var{directory} to the head of the list of directories
-to be searched for header files.  This can be used to override a system
-header file, substituting your own version, since these directories are
+Add the directory @var{dir} to the head of the list of directories to be
+searched for header files.  This can be used to override a system header
+file, substituting your own version, since these directories are
 searched before the system header file directories.  If you use more
 than one @samp{-I} option, the directories are scanned in left-to-right
 order; the standard system directories come after.
@@ -2477,6 +2594,14 @@
 Another way to specify a prefix much like the @samp{-B} prefix is to use
 the environment variable @code{GCC_EXEC_PREFIX}.  @xref{Environment
 Variables}.
+
+@item -specs=@var{file}
+Process @var{file} after the compiler reads in the standard @file{specs}
+file, in order to override the defaults that the @file{gcc} driver
+program uses when determining what switches to pass to @file{cc1},
+@file{cc1plus}, @file{as}, @file{ld}, etc.  More than one
+@samp{-specs=}@var{file} can be specified on the command line, and they
+are processed in order, from left to right.
 @end table
 
 @node Target Options
@@ -2594,6 +2719,7 @@
 * Convex Options::
 * AMD29K Options::
 * ARM Options::
+* M32R/D Options::
 * M88K Options::
 * RS/6000 and PowerPC Options::
 * RT Options::
@@ -2664,6 +2790,12 @@
 68020/68881 or a 68030 or a 68040.  The generated code does use the
 68881 instructions that are emulated on the 68040.
 
+@item -m68020-60
+Generate output for a 68060, without using any of the new instructions.
+This results in code which can run relatively efficiently on either a
+68020/68881 or a 68030 or a 68040.  The generated code does use the
+68881 instructions that are emulated on the 68060.
+
 @item -mfpa
 Generate output containing Sun FPA instructions for floating point.
 
@@ -2710,6 +2842,19 @@
 
 The @code{rtd} instruction is supported by the 68010, 68020, 68030,
 68040, and 68060 processors, but not by the 68000 or 5200.
+
+@item -malign-int
+@itemx -mno-align-int
+Control whether GNU CC aligns @code{int}, @code{long}, @code{long long}, 
+@code{float}, @code{double}, and @code{long double} variables on a 32-bit
+boundary (@samp{-malign-int}) or a 16-bit boundary (@samp{-mno-align-int}).
+Aligning variables on 32-bit boundaries produces code that runs somewhat
+faster on processors with 32-bit busses at the expense of more memory.
+
+@strong{Warning:} if you use the @samp{-malign-int} switch, GNU CC will
+align structures containing the above types  differently than
+most published application binary interface specifications for the m68k.
+
 @end table
 
 @node VAX Options
@@ -3090,6 +3235,12 @@
 registers for copying out arguments.  This helps detect calling a function
 with fewer arguments than it was declared with.
 
+@item -mno-impure-text
+@itemx -mimpure-text
+@kindex -mimpure-text
+@samp{-mimpure-text}, used in addition to @samp{-shared}, tells the compiler to
+not pass @samp{-assert pure-text} to the linker when linking a shared object.
+
 @item -msoft-float
 @kindex -msoft-float
 Generate output containing library calls for floating point.
@@ -3195,6 +3346,67 @@
 compiler is built for cross-compilation.
 @end table
 
+@node M32R/D Options
+@subsection M32R/D Options
+@cindex M32R/D options
+
+These @samp{-m} options are defined for Mitsubishi M32R/D architectures:
+
+@table @code
+@item -mcode-model=small
+Assume all objects live in the lower 16MB of memory (so that their addresses
+can be loaded with the @code{ld24} instruction), and assume all subroutines
+are reachable with the @code{bl} instruction.
+This is the default.
+
+The addressability of a particular object can be set with the
+@code{model} attribute.
+
+@item -mcode-model=medium
+Assume objects may be anywhere in the 32 bit address space (the compiler
+will generate @code{seth/add3} instructions to load their addresses), and
+assume all subroutines are reachable with the @code{bl} instruction.
+
+@item -mcode-model=large
+Assume objects may be anywhere in the 32 bit address space (the compiler
+will generate @code{seth/add3} instructions to load their addresses), and
+assume subroutines may not be reachable with the @code{bl} instruction
+(the compiler will generate the much slower @code{seth/add3/jl}
+instruction sequence).
+
+@item -msdata=none
+Disable use of the small data area.  Variables will be put into
+one of @samp{.data}, @samp{bss}, or @samp{.rodata} (unless the
+@code{section} attribute has been specified).
+This is the default.
+
+The small data area consists of sections @samp{.sdata} and @samp{.sbss}.
+Objects may be explicitly put in the small data area with the
+@code{section} attribute using one of these sections.
+
+@item -msdata=sdata
+Put small global and static data in the small data area, but do not
+generate special code to reference them.
+
+@item -msdata=use
+Put small global and static data in the small data area, and generate
+special instructions to reference them.
+
+@item -G @var{num}
+@cindex smaller data references
+Put global and static objects less than or equal to @var{num} bytes
+into the small data or bss sections instead of the normal data or bss
+sections.  The default value of @var{num} is 8.
+The @samp{-msdata} option must be set to one of @samp{sdata} or @samp{use}
+for this option to have any effect.
+
+All modules should be compiled with the same @samp{-G @var{num}} value.
+Compiling with different values of @var{num} may or may not work; if it
+doesn't the linker will give an error message - incorrect code will not be
+generated.
+
+@end table
+
 @node M88K Options
 @subsection M88K Options
 @cindex M88k options
@@ -3448,8 +3660,7 @@
 instructions supported by the @samp{rios} chip set used in the original
 RS/6000 systems and the @dfn{PowerPC} instruction set is the
 architecture of the Motorola MPC5xx, MPC6xx, MPC8xx microprocessors, and
-the IBM 40x microprocessors.  The PowerPC architecture defines 64-bit
-instructions, but they are not supported by any current processors.
+the IBM 4xx microprocessors.
 
 Neither architecture is a subset of the other.  However there is a
 large common subset of instructions supported by both.  An MQ
@@ -3512,25 +3723,28 @@
 instruction scheduling parameters for machine type @var{cpu_type}.
 Supported values for @var{cpu_type} are @samp{rs6000}, @samp{rios1},
 @samp{rios2}, @samp{rsc}, @samp{601}, @samp{602}, @samp{603},
-@samp{603e}, @samp{604}, @samp{620}, @samp{power}, @samp{power2},
-@samp{powerpc}, @samp{403}, @samp{505}, @samp{821}, and @samp{860} and
-@samp{common}.  @samp{-mcpu=power}, @samp{-mcpu=power2}, and
-@samp{-mcpu=powerpc} specify generic POWER, POWER2 and pure PowerPC
-(i.e., not MPC601) architecture machine types, with an appropriate,
-generic processor model assumed for scheduling purposes.@refill
+@samp{603e}, @samp{604}, @samp{604e}, @samp{620}, @samp{power},
+@samp{power2}, @samp{powerpc}, @samp{403}, @samp{505}, @samp{801},
+@samp{821}, @samp{823}, and @samp{860} and @samp{common}.
+@samp{-mcpu=power}, @samp{-mcpu=power2}, and @samp{-mcpu=powerpc}
+specify generic POWER, POWER2 and pure PowerPC (i.e., not MPC601)
+architecture machine types, with an appropriate, generic processor model
+assumed for scheduling purposes.@refill
 
 @c overfull hbox here --bob 22 jul96
 @c original text between ignore ... end ignore
 @ignore
-Specifying any of the @samp{-mcpu=rios1}, @samp{-mcpu=rios2}, @samp{-mcpu=rsc},
-@samp{-mcpu=power}, or @samp{-mcpu=power2} options enables the @samp{-mpower}
-option and disables the @samp{-mpowerpc} option; @samp{-mcpu=601}
-enables both the @samp{-mpower} and @samp{-mpowerpc} options;
-all of @samp{-mcpu=602}, @samp{-mcpu=603}, @samp{-mcpu=603e}, @samp{-mcpu=604},
-@samp{-mcpu=620}, @samp{-mcpu=403}, @samp{-mcpu=505}, @samp{-mcpu=821},
-@samp{-mcpu=860} and @samp{-mcpu=powerpc} enable the @samp{-mpowerpc}
-option and disable the @samp{-mpower} option; @samp{-mcpu=common}
-disables both the @samp{-mpower} and @samp{-mpowerpc} options.@refill
+Specifying any of the @samp{-mcpu=rios1}, @samp{-mcpu=rios2},
+@samp{-mcpu=rsc}, @samp{-mcpu=power}, or @samp{-mcpu=power2} options
+enables the @samp{-mpower} option and disables the @samp{-mpowerpc}
+option; @samp{-mcpu=601} enables both the @samp{-mpower} and
+@samp{-mpowerpc} options; all of @samp{-mcpu=602}, @samp{-mcpu=603},
+@samp{-mcpu=603e}, @samp{-mcpu=604}, @samp{-mcpu=604e},
+@samp{-mcpu=620}, @samp{-mcpu=403}, @samp{-mcpu=505}, @samp{-mcpu=801},
+@samp{-mcpu=821}, @samp{-mcpu=823}, @samp{-mcpu=860} and
+@samp{-mcpu=powerpc} enable the @samp{-mpowerpc} option and disable the
+@samp{-mpower} option; @samp{-mcpu=common} disables both the
+@samp{-mpower} and @samp{-mpowerpc} options.@refill
 @end ignore
 @c            changed paragraph
 Specifying any of the following options: 
@@ -3616,6 +3830,21 @@
 default and only is necessary when calling subroutines compiled by AIX
 XL compilers without optimization.
 
+@item -mthreads
+Support @dfn{AIX Threads}.  Link an application written to use
+@dfn{pthreads} with special libraries and startup code to enable the
+application to run.
+
+@item -mpe
+Support @dfn{IBM RS/6000 SP} @dfn{Parallel Environment} (PE).  Link an
+application written to use message passing with special startup code to
+enable the application to run.  The system must have PE installed in the
+standard location (@file{/usr/lpp/ppe.poe/}), or the @file{specs} file
+must be overridden with the @samp{-specs=} option to specify the
+appropriate directory location.  The Parallel Environment does not
+support threads, so the @samp{-mpe} option and the @samp{-mthreads}
+option are incompatible.
+
 @item -msoft-float
 @itemx -mhard-float
 Generate code that does not use (uses) the floating-point register set.
@@ -3635,11 +3864,27 @@
 @itemx -mno-string
 Generate code that uses (does not use) the load string instructions and the
 store string word instructions to save multiple registers and do small block
-moves.  These instructions are generated by default on POWER systems, anod not
+moves.  These instructions are generated by default on POWER systems, and not
 generated on PowerPC systems.  Do not use @samp{-mstring} on little endian
 PowerPC systems, since those instructions do not work when the processor is in
 little endian mode.
 
+@item -mupdate
+@itemx -mno-update
+Generate code that uses (does not use) the load or store instructions
+that update the base register to the address of the calculated memory
+location.  These instructions are generated by default.  If you use
+@samp{-mno-update}, there is a small window between the time that the
+stack pointer is updated and the address of the previous frame is
+stored, which means code that walks the stack frame across interrupts or
+signals may get corrupted data.
+
+@item -mfused-madd
+@itemx -mno-fused-madd
+Generate code that uses (does not use) the floating point multiply and
+accumulate instructions.  These instructions are generated by default if
+hardware floating is used.
+
 @item -mno-bit-align
 @itemx -mbit-align
 On System V.4 and embedded PowerPC systems do not (do) force structures
@@ -3718,8 +3963,8 @@
 operating system.
 
 @item -mcall-linux
-On System V.4 and embedded PowerPC systems compile code for the Linux
-operating system.
+On System V.4 and embedded PowerPC systems compile code for the
+Linux-based GNU system.
 
 @item -mprototype
 @item -mno-prototype
@@ -3927,7 +4172,16 @@
 
 @item -mgas
 Generate code for the GNU assembler.  This is the default on the OSF/1
-reference platform, using the OSF/rose object format.
+reference platform, using the OSF/rose object format.  Also, this is
+the default if the configure option @samp{--with-gnu-as} is used.
+
+@item -msplit-addresses
+@itemx -mno-split-addresses
+Generate code to load the high and low parts of address constants separately.
+This allows @code{gcc} to optimize away redundant loads of the high order
+bits of addresses.  This optimization requires GNU as and GNU ld.
+This optimization is enabled by default for some embedded targets where
+GNU as and GNU ld are standard.
 
 @item -mrnames
 @itemx -mno-rnames
@@ -4206,6 +4460,11 @@
 @item -mpa-risc-1-1
 Generate code for a PA 1.1 processor.
 
+@item -mbig-switch
+Generate code suitable for big switch tables.  Use this option only if
+the assembler/linker complain about out of range branches within a switch
+table.
+
 @item -mjump-in-delay
 Fill delay slots of function calls with unconditional jump instructions
 by modifying the return pointer for the function call to be the target
@@ -4353,8 +4612,7 @@
 
 @item -mold-align
 Enable structure-alignment compatibility with Intel's gcc release version
-1.3 (based on gcc 1.37).  Currently this is buggy in that @samp{#pragma
-align 1} is always assumed as well, and cannot be turned off.
+1.3 (based on gcc 1.37).  This option implies @samp{-mstrict-align}.
 @end table
 
 @node DEC Alpha Options
@@ -4733,23 +4991,20 @@
 @cindex PIC
 Generate position-independent code (PIC) suitable for use in a shared
 library, if supported for the target machine.  Such code accesses all
-constant addresses through a global offset table (GOT).  If the GOT size
-for the linked executable exceeds a machine-specific maximum size, you
-get an error message from the linker indicating that @samp{-fpic} does
-not work; in that case, recompile with @samp{-fPIC} instead.  (These
-maximums are 16k on the m88k, 8k on the Sparc, and 32k on the m68k and
-RS/6000.  The 386 has no such limit.)
+constant addresses through a global offset table (GOT).  The dynamic
+loader resolves the GOT entries when the program starts (the dynamic
+loader is not part of GNU CC; it is part of the operating system).  If
+the GOT size for the linked executable exceeds a machine-specific
+maximum size, you get an error message from the linker indicating that
+@samp{-fpic} does not work; in that case, recompile with @samp{-fPIC}
+instead.  (These maximums are 16k on the m88k, 8k on the Sparc, and 32k
+on the m68k and RS/6000.  The 386 has no such limit.)
 
 Position-independent code requires special support, and therefore works
 only on certain machines.  For the 386, GNU CC supports PIC for System V
 but not for the Sun 386i.  Code generated for the IBM RS/6000 is always
 position-independent.
 
-The GNU assembler does not fully support PIC.  Currently, you must use
-some other assembler in order for PIC to work.  We would welcome
-volunteers to upgrade GAS to handle this; the first part of the job is
-to figure out what the assembler must do differently.
-
 @item -fPIC
 If supported for the target machine, emit position-independent code,
 suitable for dynamic linking and avoiding any limit on the size of the
@@ -4805,6 +5060,61 @@
 not want to use this option, since it makes the code suboptimal, and
 the offsets of structure members won't agree with system libraries.
 
+@item -fcheck-memory-usage
+Generate extra code to check each memory access.  GNU CC will generate
+code that is suitable for a detector of bad memory accesses such as
+@file{Checker}.  If you specify this option, you can not use the
+@code{asm} or @code{__asm__} keywords.
+
+You must also specify this option when you compile functions you call that
+have side effects.  If you do not, you may get erronous messages from
+the detector.  Normally,  you should compile all your code with this option.
+If you use functions from a library that have side-effects (such as
+@code{read}), you may not be able to recompile the library and
+specify this option.  In that case, you can enable the
+@samp{-fprefix-function-name} option, which requests GNU CC to encapsulate
+your code and make other functions look as if they were compiled with
+@samp{-fcheck-memory-usage}.  This is done by calling ``stubs'',
+which are provided by the detector.  If you cannot find or build
+stubs for every function you call, you may have to specify
+@samp{-fcheck-memory-usage} without @samp{-fprefix-function-name}.
+
+@item -fprefix-function-name
+Request GNU CC to add a prefix to the symbols generated for function names.
+GNU CC adds a prefix to the names of functions defined as well as
+functions called.  Code compiled with this option and code compiled
+without the option can't be linked together, unless or stubs are used.
+
+If you compile the following code with @samp{-fprefix-function-name}
+@example
+extern void bar (int);
+void
+foo (int a)
+@{
+  return bar (a + 5);
+
+@}
+@end example
+
+@noindent
+GNU CC will compile the code as if it was written:
+@example
+extern void prefix_bar (int);
+void
+prefix_foo (int a)
+@{
+  return prefix_bar (a + 5);
+@}
+@end example
+This option is designed to be used with @samp{-fcheck-memory-usage}.
+
+@item -fstack-check
+Generate code to verify that you do not go beyond the boundary of the
+stack.  You should specify this flag if you are running in an
+environment with multiple threads, but only rarely need to specify it in
+a single-threaded environment since stack overflow is automatically
+detected on nearly all systems if there is only one stack.
+
 @item +e0
 @itemx +e1
 Control whether virtual function definitions in classes are used to
diff --git a/gcc/just-fixinc b/gcc/just-fixinc
index e5ceaec..06cf996 100755
--- a/gcc/just-fixinc
+++ b/gcc/just-fixinc
@@ -1,5 +1,5 @@
 #!/bin/sh
-# $Id$
+# $Id: just-fixinc,v 1.1 1997/08/11 15:57:11 law Exp $
 # This script exists for use after installing
 # the GCC binaries from a distribution tape/CD-ROM.
 # Use it *after* copying the directory of binaries
diff --git a/gcc/md.texi b/gcc/md.texi
index 4fe759a..1d5d53d 100644
--- a/gcc/md.texi
+++ b/gcc/md.texi
@@ -2410,6 +2410,16 @@
 
 No operands are provided.
 
+@cindex @code{check_stack} instruction pattern
+@item @samp{check_stack}
+If stack checking cannot be done on your system by probing the stack with
+a load or store instruction (@pxref{Stack Checking}), define this pattern
+to perform the needed check and signaling an error if the stack
+has overflowed.  The single operand is the location in the stack furthest
+from the current stack pointer that you need to validate.  Normally,
+on machines where this pattern is needed, you would obtain the stack
+limit from a global or thread-specific variable or register.
+
 @cindex @code{nonlocal_goto} instruction pattern
 @item @samp{nonlocal_goto}
 Emit code to generate a non-local goto, e.g., a jump from one function
@@ -2436,6 +2446,15 @@
 need this pattern is if some value, such as a pointer to a global table,
 must be restored when the frame pointer is restored.  There are no
 arguments.
+
+@cindex @code{exception_receiver} instruction pattern
+@item @samp{exception_receiver}
+This pattern, if defined, contains code needed at the site of an
+exception handler that isn't needed at the site of a nonlocal goto.  You
+will not normally need to define this pattern.  A typical reason why you
+might need this pattern is if some value, such as a pointer to a global
+table, must be restored after control flow is branched to the handler of
+an exception.  There are no arguments.
 @end table
 
 @node Pattern Ordering
diff --git a/gcc/move-if-change b/gcc/move-if-change
new file mode 100755
index 0000000..66d8b8a
--- /dev/null
+++ b/gcc/move-if-change
@@ -0,0 +1,17 @@
+#!/bin/sh
+# Like mv $1 $2, but if the files are the same, just delete $1.
+# Status is 0 if $2 is changed, 1 otherwise.
+if
+test -r $2
+then
+if
+cmp -s $1 $2
+then
+echo $2 is unchanged
+rm -f $1
+else
+mv -f $1 $2
+fi
+else
+mv -f $1 $2
+fi
diff --git a/gcc/objc/objc-parse.c b/gcc/objc/objc-parse.c
new file mode 100644
index 0000000..6a04682
--- /dev/null
+++ b/gcc/objc/objc-parse.c
@@ -0,0 +1,5103 @@
+
+/*  A Bison parser, made from objc-parse.y with Bison version GNU Bison version 1.24
+  */
+
+#define YYBISON 1  /* Identify Bison output.  */
+
+#define	IDENTIFIER	258
+#define	TYPENAME	259
+#define	SCSPEC	260
+#define	TYPESPEC	261
+#define	TYPE_QUAL	262
+#define	CONSTANT	263
+#define	STRING	264
+#define	ELLIPSIS	265
+#define	SIZEOF	266
+#define	ENUM	267
+#define	STRUCT	268
+#define	UNION	269
+#define	IF	270
+#define	ELSE	271
+#define	WHILE	272
+#define	DO	273
+#define	FOR	274
+#define	SWITCH	275
+#define	CASE	276
+#define	DEFAULT	277
+#define	BREAK	278
+#define	CONTINUE	279
+#define	RETURN	280
+#define	GOTO	281
+#define	ASM_KEYWORD	282
+#define	TYPEOF	283
+#define	ALIGNOF	284
+#define	ATTRIBUTE	285
+#define	EXTENSION	286
+#define	LABEL	287
+#define	REALPART	288
+#define	IMAGPART	289
+#define	ASSIGN	290
+#define	OROR	291
+#define	ANDAND	292
+#define	EQCOMPARE	293
+#define	ARITHCOMPARE	294
+#define	LSHIFT	295
+#define	RSHIFT	296
+#define	UNARY	297
+#define	PLUSPLUS	298
+#define	MINUSMINUS	299
+#define	HYPERUNARY	300
+#define	POINTSAT	301
+#define	INTERFACE	302
+#define	IMPLEMENTATION	303
+#define	END	304
+#define	SELECTOR	305
+#define	DEFS	306
+#define	ENCODE	307
+#define	CLASSNAME	308
+#define	PUBLIC	309
+#define	PRIVATE	310
+#define	PROTECTED	311
+#define	PROTOCOL	312
+#define	OBJECTNAME	313
+#define	CLASS	314
+#define	ALIAS	315
+#define	OBJC_STRING	316
+
+#line 33 "objc-parse.y"
+
+#include <stdio.h>
+#include <errno.h>
+#include <setjmp.h>
+
+#include "config.h"
+#include "tree.h"
+#include "input.h"
+#include "c-lex.h"
+#include "c-tree.h"
+#include "flags.h"
+
+#ifdef MULTIBYTE_CHARS
+#include <stdlib.h>
+#include <locale.h>
+#endif
+
+#include "objc-act.h"
+
+/* Since parsers are distinct for each language, put the language string
+   definition here.  */
+char *language_string = "GNU Obj-C";
+
+#ifndef errno
+extern int errno;
+#endif
+
+void yyerror ();
+
+/* Like YYERROR but do call yyerror.  */
+#define YYERROR1 { yyerror ("syntax error"); YYERROR; }
+
+/* Cause the `yydebug' variable to be defined.  */
+#define YYDEBUG 1
+
+#line 71 "objc-parse.y"
+typedef union {long itype; tree ttype; enum tree_code code;
+	char *filename; int lineno; int ends_in_label; } YYSTYPE;
+#line 198 "objc-parse.y"
+
+/* Number of statements (loosely speaking) seen so far.  */
+static int stmt_count;
+
+/* Input file and line number of the end of the body of last simple_if;
+   used by the stmt-rule immediately after simple_if returns.  */
+static char *if_stmt_file;
+static int if_stmt_line;
+
+/* List of types and structure classes of the current declaration.  */
+static tree current_declspecs = NULL_TREE;
+static tree prefix_attributes = NULL_TREE;
+
+/* Stack of saved values of current_declspecs and prefix_attributes.  */
+static tree declspec_stack;
+
+/* 1 if we explained undeclared var errors.  */
+static int undeclared_variable_notice;
+
+/* Objective-C specific information */
+
+tree objc_interface_context;
+tree objc_implementation_context;
+tree objc_method_context;
+tree objc_ivar_chain;
+tree objc_ivar_context;
+enum tree_code objc_inherit_code;
+int objc_receiver_context;
+int objc_public_flag;
+
+
+/* Tell yyparse how to print a token's value, if yydebug is set.  */
+
+#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
+extern void yyprint ();
+
+#ifndef YYLTYPE
+typedef
+  struct yyltype
+    {
+      int timestamp;
+      int first_line;
+      int first_column;
+      int last_line;
+      int last_column;
+      char *text;
+   }
+  yyltype;
+
+#define YYLTYPE yyltype
+#endif
+
+#include <stdio.h>
+
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
+
+
+
+#define	YYFINAL		940
+#define	YYFLAG		-32768
+#define	YYNTBASE	84
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 305)
+
+static const char yytranslate[] = {     0,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,    80,     2,     2,     2,    52,    43,     2,    59,
+    76,    50,    48,    81,    49,    58,    51,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,    38,    77,     2,
+    36,     2,    37,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+    60,     2,    83,    42,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,    82,    41,    78,    79,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
+     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
+    39,    40,    44,    45,    46,    47,    53,    54,    55,    56,
+    57,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+    70,    71,    72,    73,    74,    75
+};
+
+#if YYDEBUG != 0
+static const short yyprhs[] = {     0,
+     0,     1,     3,     4,     7,     8,    12,    14,    16,    18,
+    24,    27,    31,    36,    41,    44,    47,    50,    53,    55,
+    56,    57,    65,    70,    71,    72,    80,    85,    86,    87,
+    94,    98,   100,   102,   104,   106,   108,   110,   112,   114,
+   116,   118,   120,   122,   123,   125,   127,   131,   133,   136,
+   139,   142,   145,   148,   153,   156,   161,   164,   167,   169,
+   171,   173,   178,   179,   187,   189,   193,   197,   201,   205,
+   209,   213,   217,   221,   225,   229,   233,   237,   238,   243,
+   244,   249,   250,   251,   259,   260,   266,   270,   274,   276,
+   278,   280,   284,   288,   289,   294,   299,   304,   308,   312,
+   315,   318,   320,   322,   324,   326,   328,   330,   333,   335,
+   338,   339,   341,   344,   348,   350,   352,   355,   358,   363,
+   368,   371,   374,   378,   380,   382,   385,   388,   389,   390,
+   395,   400,   404,   408,   411,   414,   417,   420,   424,   425,
+   428,   431,   434,   437,   441,   442,   445,   448,   450,   452,
+   455,   458,   460,   462,   465,   468,   471,   475,   476,   479,
+   481,   483,   485,   488,   491,   493,   498,   503,   505,   507,
+   509,   511,   515,   517,   521,   522,   527,   528,   535,   539,
+   540,   547,   551,   552,   554,   556,   559,   566,   568,   572,
+   573,   575,   580,   587,   592,   594,   596,   598,   600,   602,
+   603,   608,   610,   611,   614,   616,   620,   622,   623,   628,
+   630,   631,   636,   637,   643,   644,   645,   651,   652,   653,
+   659,   661,   663,   667,   671,   676,   680,   684,   688,   690,
+   692,   696,   701,   705,   709,   713,   715,   719,   723,   727,
+   732,   736,   740,   742,   743,   751,   757,   760,   761,   769,
+   775,   778,   779,   788,   789,   797,   800,   801,   803,   804,
+   806,   808,   811,   812,   816,   819,   824,   828,   830,   834,
+   836,   838,   841,   843,   847,   852,   859,   865,   867,   871,
+   873,   875,   879,   882,   885,   886,   888,   890,   893,   894,
+   897,   901,   905,   908,   912,   917,   921,   924,   928,   931,
+   933,   935,   938,   941,   942,   944,   947,   948,   949,   951,
+   953,   956,   960,   962,   965,   968,   975,   981,   987,   990,
+   993,   998,   999,  1004,  1005,  1006,  1010,  1015,  1019,  1021,
+  1023,  1025,  1027,  1030,  1031,  1036,  1038,  1042,  1043,  1044,
+  1052,  1058,  1061,  1062,  1063,  1064,  1077,  1078,  1085,  1088,
+  1091,  1094,  1098,  1105,  1114,  1125,  1138,  1142,  1147,  1149,
+  1151,  1152,  1159,  1163,  1169,  1172,  1175,  1176,  1178,  1179,
+  1181,  1182,  1184,  1186,  1190,  1195,  1197,  1201,  1202,  1205,
+  1208,  1209,  1214,  1217,  1218,  1220,  1222,  1226,  1228,  1232,
+  1237,  1242,  1247,  1252,  1257,  1258,  1261,  1263,  1266,  1268,
+  1272,  1274,  1278,  1280,  1282,  1284,  1286,  1288,  1290,  1292,
+  1294,  1298,  1302,  1307,  1308,  1309,  1320,  1321,  1328,  1329,
+  1330,  1343,  1344,  1353,  1354,  1361,  1364,  1365,  1374,  1379,
+  1380,  1390,  1396,  1397,  1404,  1405,  1407,  1411,  1415,  1417,
+  1419,  1421,  1423,  1424,  1428,  1431,  1435,  1439,  1441,  1442,
+  1444,  1448,  1450,  1454,  1457,  1458,  1459,  1460,  1468,  1469,
+  1470,  1471,  1479,  1480,  1481,  1484,  1486,  1488,  1491,  1492,
+  1496,  1498,  1500,  1501,  1502,  1508,  1509,  1510,  1516,  1521,
+  1523,  1529,  1532,  1533,  1536,  1537,  1539,  1541,  1543,  1546,
+  1549,  1554,  1557,  1560,  1562,  1566,  1569,  1572,  1575,  1576,
+  1579,  1580,  1584,  1586,  1588,  1591,  1593,  1595,  1597,  1599,
+  1601,  1603,  1605,  1607,  1609,  1611,  1613,  1615,  1617,  1619,
+  1621,  1623,  1625,  1627,  1629,  1631,  1633,  1635,  1637,  1639,
+  1641,  1648,  1652,  1658,  1661,  1663,  1665,  1667,  1670,  1672,
+  1676,  1679,  1681,  1683,  1684,  1685,  1692,  1694,  1696,  1698,
+  1701,  1704,  1706,  1711,  1716
+};
+
+static const short yyrhs[] = {    -1,
+    85,     0,     0,    86,    88,     0,     0,    85,    87,    88,
+     0,    90,     0,    89,     0,   236,     0,    27,    59,    99,
+    76,    77,     0,   235,    88,     0,   123,   137,    77,     0,
+   130,   123,   137,    77,     0,   126,   123,   136,    77,     0,
+   130,    77,     0,   126,    77,     0,     1,    77,     0,     1,
+    78,     0,    77,     0,     0,     0,   126,   123,   163,    91,
+   117,    92,   194,     0,   126,   123,   163,     1,     0,     0,
+     0,   130,   123,   166,    93,   117,    94,   194,     0,   130,
+   123,   166,     1,     0,     0,     0,   123,   166,    95,   117,
+    96,   194,     0,   123,   166,     1,     0,     3,     0,     4,
+     0,    72,     0,    67,     0,    43,     0,    49,     0,    48,
+     0,    54,     0,    55,     0,    79,     0,    80,     0,   101,
+     0,     0,   101,     0,   107,     0,   101,    81,   107,     0,
+   113,     0,    50,   105,     0,   235,   105,     0,    98,   105,
+     0,    40,    97,     0,   103,   102,     0,   103,    59,   181,
+    76,     0,   104,   102,     0,   104,    59,   181,    76,     0,
+    33,   105,     0,    34,   105,     0,    11,     0,    29,     0,
+   102,     0,    59,   181,    76,   105,     0,     0,    59,   181,
+    76,    82,   106,   151,    78,     0,   105,     0,   107,    48,
+   107,     0,   107,    49,   107,     0,   107,    50,   107,     0,
+   107,    51,   107,     0,   107,    52,   107,     0,   107,    46,
+   107,     0,   107,    47,   107,     0,   107,    45,   107,     0,
+   107,    44,   107,     0,   107,    43,   107,     0,   107,    41,
+   107,     0,   107,    42,   107,     0,     0,   107,    40,   108,
+   107,     0,     0,   107,    39,   109,   107,     0,     0,     0,
+   107,    37,   110,    99,    38,   111,   107,     0,     0,   107,
+    37,   112,    38,   107,     0,   107,    36,   107,     0,   107,
+    35,   107,     0,     3,     0,     8,     0,   115,     0,    59,
+    99,    76,     0,    59,     1,    76,     0,     0,    59,   114,
+   195,    76,     0,   113,    59,   100,    76,     0,   113,    60,
+    99,    83,     0,   113,    58,    97,     0,   113,    57,    97,
+     0,   113,    54,     0,   113,    55,     0,   296,     0,   302,
+     0,   303,     0,   304,     0,   116,     0,     9,     0,   115,
+     9,     0,    75,     0,   116,    75,     0,     0,   119,     0,
+   119,    10,     0,   200,   201,   120,     0,   118,     0,   189,
+     0,   119,   118,     0,   118,   189,     0,   128,   123,   136,
+    77,     0,   131,   123,   137,    77,     0,   128,    77,     0,
+   131,    77,     0,   200,   201,   125,     0,   121,     0,   189,
+     0,   122,   121,     0,   121,   189,     0,     0,     0,   126,
+   123,   136,    77,     0,   130,   123,   137,    77,     0,   126,
+   123,   157,     0,   130,   123,   160,     0,   126,    77,     0,
+   130,    77,     0,   235,   125,     0,   134,   127,     0,   130,
+   134,   127,     0,     0,   127,   135,     0,   127,     5,     0,
+   127,   144,     0,   134,   129,     0,   131,   134,   129,     0,
+     0,   129,   135,     0,   129,     5,     0,   131,     0,   144,
+     0,   130,   131,     0,   130,   144,     0,     7,     0,     5,
+     0,   131,     7,     0,   131,     5,     0,   134,   133,     0,
+   183,   134,   133,     0,     0,   133,   135,     0,     6,     0,
+   167,     0,     4,     0,    67,   252,     0,    72,   252,     0,
+   253,     0,    28,    59,    99,    76,     0,    28,    59,   181,
+    76,     0,     6,     0,     7,     0,   167,     0,   139,     0,
+   136,    81,   139,     0,   141,     0,   137,    81,   139,     0,
+     0,    27,    59,   115,    76,     0,     0,   163,   138,   143,
+    36,   140,   149,     0,   163,   138,   143,     0,     0,   166,
+   138,   143,    36,   142,   149,     0,   166,   138,   143,     0,
+     0,   144,     0,   145,     0,   144,   145,     0,    30,    59,
+    59,   146,    76,    76,     0,   147,     0,   146,    81,   147,
+     0,     0,   148,     0,   148,    59,     3,    76,     0,   148,
+    59,     3,    81,   101,    76,     0,   148,    59,   100,    76,
+     0,    97,     0,     5,     0,     6,     0,     7,     0,   107,
+     0,     0,    82,   150,   151,    78,     0,     1,     0,     0,
+   152,   172,     0,   153,     0,   152,    81,   153,     0,   107,
+     0,     0,    82,   154,   151,    78,     0,     1,     0,     0,
+    97,    38,   155,   153,     0,     0,    58,    97,    36,   156,
+   153,     0,     0,     0,   163,   158,   117,   159,   195,     0,
+     0,     0,   166,   161,   117,   162,   195,     0,   164,     0,
+   166,     0,    59,   164,    76,     0,   164,    59,   230,     0,
+   164,    60,    99,    83,     0,   164,    60,    83,     0,    50,
+   184,   164,     0,   144,   124,   164,     0,     4,     0,    72,
+     0,   165,    59,   230,     0,   165,    60,    99,    83,     0,
+   165,    60,    83,     0,    50,   184,   165,     0,   144,   124,
+   165,     0,     4,     0,   166,    59,   230,     0,    59,   166,
+    76,     0,    50,   184,   166,     0,   166,    60,    99,    83,
+     0,   166,    60,    83,     0,   144,   124,   166,     0,     3,
+     0,     0,    13,    97,    82,   168,   174,    78,   143,     0,
+    13,    82,   174,    78,   143,     0,    13,    97,     0,     0,
+    14,    97,    82,   169,   174,    78,   143,     0,    14,    82,
+   174,    78,   143,     0,    14,    97,     0,     0,    12,    97,
+    82,   170,   179,   173,    78,   143,     0,     0,    12,    82,
+   171,   179,   173,    78,   143,     0,    12,    97,     0,     0,
+    81,     0,     0,    81,     0,   175,     0,   175,   176,     0,
+     0,   175,   176,    77,     0,   175,    77,     0,    65,    59,
+    67,    76,     0,   132,   123,   177,     0,   132,     0,   183,
+   123,   177,     0,   183,     0,     1,     0,   235,   176,     0,
+   178,     0,   177,    81,   178,     0,   200,   201,   163,   143,
+     0,   200,   201,   163,    38,   107,   143,     0,   200,   201,
+    38,   107,   143,     0,   180,     0,   179,    81,   180,     0,
+     1,     0,    97,     0,    97,    36,   107,     0,   132,   182,
+     0,   183,   182,     0,     0,   185,     0,     7,     0,   183,
+     7,     0,     0,   184,     7,     0,    59,   185,    76,     0,
+    50,   184,   185,     0,    50,   184,     0,   185,    59,   223,
+     0,   185,    60,    99,    83,     0,   185,    60,    83,     0,
+    59,   223,     0,    60,    99,    83,     0,    60,    83,     0,
+   187,     0,   203,     0,   187,   203,     0,   187,   189,     0,
+     0,   186,     0,     1,    77,     0,     0,     0,   192,     0,
+   193,     0,   192,   193,     0,    32,   234,    77,     0,   195,
+     0,     1,   195,     0,    82,    78,     0,    82,   190,   191,
+   122,   188,    78,     0,    82,   190,   191,     1,    78,     0,
+    82,   190,   191,   186,    78,     0,   197,   202,     0,   197,
+     1,     0,    15,    59,    99,    76,     0,     0,    18,   199,
+   202,    17,     0,     0,     0,   200,   201,   205,     0,   200,
+   201,   216,   202,     0,   200,   201,   204,     0,   205,     0,
+   216,     0,   195,     0,   213,     0,    99,    77,     0,     0,
+   196,    16,   206,   202,     0,   196,     0,   196,    16,     1,
+     0,     0,     0,    17,   207,    59,    99,    76,   208,   202,
+     0,   198,    59,    99,    76,    77,     0,   198,     1,     0,
+     0,     0,     0,    19,    59,   218,    77,   209,   218,    77,
+   210,   218,    76,   211,   202,     0,     0,    20,    59,    99,
+    76,   212,   202,     0,    23,    77,     0,    24,    77,     0,
+    25,    77,     0,    25,    99,    77,     0,    27,   217,    59,
+    99,    76,    77,     0,    27,   217,    59,    99,    38,   219,
+    76,    77,     0,    27,   217,    59,    99,    38,   219,    38,
+   219,    76,    77,     0,    27,   217,    59,    99,    38,   219,
+    38,   219,    38,   222,    76,    77,     0,    26,    97,    77,
+     0,    26,    50,    99,    77,     0,    77,     0,   214,     0,
+     0,    19,    59,   113,    76,   215,   202,     0,    21,   107,
+    38,     0,    21,   107,    10,   107,    38,     0,    22,    38,
+     0,    97,    38,     0,     0,     7,     0,     0,    99,     0,
+     0,   220,     0,   221,     0,   220,    81,   221,     0,     9,
+    59,    99,    76,     0,   115,     0,   222,    81,   115,     0,
+     0,   224,   225,     0,   227,    76,     0,     0,   228,    77,
+   226,   225,     0,     1,    76,     0,     0,    10,     0,   228,
+     0,   228,    81,    10,     0,   229,     0,   228,    81,   229,
+     0,   126,   123,   165,   143,     0,   126,   123,   166,   143,
+     0,   126,   123,   182,   143,     0,   130,   123,   166,   143,
+     0,   130,   123,   182,   143,     0,     0,   231,   232,     0,
+   225,     0,   233,    76,     0,     3,     0,   233,    81,     3,
+     0,    97,     0,   234,    81,    97,     0,    31,     0,   240,
+     0,   238,     0,   239,     0,   250,     0,   260,     0,    63,
+     0,    97,     0,   237,    81,    97,     0,    73,   237,    77,
+     0,    74,    97,    97,    77,     0,     0,     0,    61,    97,
+   252,    82,   241,   254,    78,   242,   267,    63,     0,     0,
+    61,    97,   252,   243,   267,    63,     0,     0,     0,    61,
+    97,    38,    97,   252,    82,   244,   254,    78,   245,   267,
+    63,     0,     0,    61,    97,    38,    97,   252,   246,   267,
+    63,     0,     0,    62,    97,    82,   247,   254,    78,     0,
+    62,    97,     0,     0,    62,    97,    38,    97,    82,   248,
+   254,    78,     0,    62,    97,    38,    97,     0,     0,    61,
+    97,    59,    97,    76,   252,   249,   267,    63,     0,    62,
+    97,    59,    97,    76,     0,     0,    71,    97,   252,   251,
+   267,    63,     0,     0,   253,     0,    45,   237,    45,     0,
+   254,   255,   256,     0,   256,     0,    69,     0,    70,     0,
+    68,     0,     0,   256,   257,    77,     0,   256,    77,     0,
+   132,   123,   258,     0,   183,   123,   258,     0,     1,     0,
+     0,   259,     0,   258,    81,   259,     0,   163,     0,   163,
+    38,   107,     0,    38,   107,     0,     0,     0,     0,    48,
+   261,   277,   262,   278,   263,   194,     0,     0,     0,     0,
+    49,   264,   277,   265,   278,   266,   194,     0,     0,     0,
+   268,   269,     0,   272,     0,    89,     0,   269,   272,     0,
+     0,   269,   270,    89,     0,    77,     0,     1,     0,     0,
+     0,    48,   273,   277,   274,   271,     0,     0,     0,    49,
+   275,   277,   276,   271,     0,    59,   181,    76,   286,     0,
+   286,     0,    59,   181,    76,   287,   284,     0,   287,   284,
+     0,     0,    77,   279,     0,     0,   280,     0,   281,     0,
+   189,     0,   280,   281,     0,   281,   189,     0,   126,   123,
+   282,    77,     0,   126,    77,     0,   130,    77,     0,   283,
+     0,   282,    81,   283,     0,   165,   143,     0,   166,   143,
+     0,   182,   143,     0,     0,    81,    10,     0,     0,    81,
+   285,   227,     0,   288,     0,   290,     0,   287,   290,     0,
+     3,     0,     4,     0,    72,     0,   289,     0,    12,     0,
+    13,     0,    14,     0,    15,     0,    16,     0,    17,     0,
+    18,     0,    19,     0,    20,     0,    21,     0,    22,     0,
+    23,     0,    24,     0,    25,     0,    26,     0,    27,     0,
+    11,     0,    28,     0,    29,     0,     6,     0,     7,     0,
+   288,    38,    59,   181,    76,    97,     0,   288,    38,    97,
+     0,    38,    59,   181,    76,    97,     0,    38,    97,     0,
+   288,     0,   292,     0,   294,     0,   292,   294,     0,   101,
+     0,   288,    38,   293,     0,    38,   293,     0,    99,     0,
+    67,     0,     0,     0,    60,   297,   295,   298,   291,    83,
+     0,   288,     0,   300,     0,   301,     0,   300,   301,     0,
+   288,    38,     0,    38,     0,    64,    59,   299,    76,     0,
+    71,    59,    97,    76,     0,    66,    59,   181,    76,     0
+};
+
+#endif
+
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+   236,   241,   255,   257,   257,   258,   260,   262,   263,   264,
+   272,   276,   287,   292,   297,   299,   301,   302,   303,   308,
+   315,   317,   322,   327,   333,   335,   340,   345,   351,   353,
+   358,   365,   367,   368,   369,   372,   374,   376,   378,   380,
+   382,   384,   388,   392,   395,   398,   401,   405,   407,   410,
+   413,   417,   445,   451,   454,   457,   460,   462,   466,   470,
+   474,   476,   479,   483,   510,   512,   514,   516,   518,   520,
+   522,   524,   526,   528,   530,   532,   534,   536,   540,   542,
+   546,   548,   551,   555,   557,   564,   567,   570,   576,   736,
+   737,   739,   745,   747,   761,   784,   786,   788,   800,   814,
+   816,   818,   820,   822,   824,   826,   831,   833,   839,   841,
+   845,   847,   848,   858,   863,   865,   866,   867,   874,   880,
+   885,   888,   896,   901,   903,   904,   905,   912,   923,   927,
+   933,   938,   943,   948,   950,   952,   961,   964,   968,   970,
+   972,   977,   981,   984,   988,   991,   993,  1005,  1008,  1010,
+  1012,  1016,  1020,  1022,  1025,  1038,  1041,  1045,  1047,  1055,
+  1056,  1057,  1061,  1063,  1068,  1070,  1072,  1078,  1079,  1080,
+  1083,  1085,  1088,  1090,  1093,  1096,  1102,  1109,  1111,  1118,
+  1125,  1128,  1135,  1138,  1142,  1145,  1149,  1154,  1157,  1161,
+  1164,  1166,  1168,  1170,  1177,  1179,  1180,  1181,  1186,  1188,
+  1193,  1201,  1206,  1210,  1213,  1215,  1220,  1223,  1225,  1227,
+  1231,  1234,  1234,  1237,  1239,  1250,  1258,  1262,  1273,  1281,
+  1288,  1290,  1295,  1298,  1303,  1305,  1307,  1314,  1316,  1317,
+  1325,  1331,  1333,  1335,  1342,  1344,  1350,  1356,  1358,  1360,
+  1362,  1369,  1371,  1374,  1379,  1381,  1385,  1387,  1389,  1391,
+  1395,  1397,  1400,  1403,  1406,  1409,  1413,  1415,  1418,  1420,
+  1424,  1427,  1432,  1434,  1436,  1440,  1464,  1471,  1476,  1482,
+  1487,  1489,  1494,  1496,  1500,  1504,  1508,  1518,  1520,  1525,
+  1530,  1533,  1537,  1540,  1544,  1547,  1550,  1553,  1557,  1560,
+  1564,  1568,  1570,  1572,  1574,  1576,  1578,  1580,  1582,  1592,
+  1600,  1602,  1604,  1608,  1610,  1613,  1616,  1629,  1631,  1636,
+  1638,  1641,  1655,  1658,  1661,  1663,  1671,  1679,  1690,  1695,
+  1698,  1711,  1719,  1723,  1727,  1731,  1737,  1741,  1746,  1749,
+  1754,  1757,  1758,  1775,  1780,  1783,  1795,  1797,  1807,  1817,
+  1818,  1826,  1829,  1841,  1845,  1862,  1872,  1881,  1886,  1891,
+  1896,  1900,  1904,  1915,  1922,  1929,  1936,  1947,  1953,  1956,
+  1961,  1984,  2018,  2043,  2074,  2089,  2100,  2104,  2108,  2111,
+  2116,  2118,  2121,  2123,  2127,  2132,  2135,  2141,  2146,  2151,
+  2153,  2162,  2163,  2169,  2171,  2181,  2183,  2187,  2190,  2196,
+  2206,  2215,  2224,  2234,  2248,  2253,  2258,  2260,  2269,  2272,
+  2277,  2280,  2284,  2292,  2294,  2295,  2296,  2297,  2298,  2312,
+  2315,  2319,  2325,  2331,  2338,  2343,  2349,  2356,  2362,  2368,
+  2373,  2379,  2386,  2392,  2398,  2404,  2412,  2418,  2424,  2432,
+  2439,  2445,  2454,  2461,  2469,  2474,  2477,  2487,  2489,  2492,
+  2494,  2495,  2498,  2503,  2504,  2521,  2528,  2534,  2538,  2541,
+  2542,  2545,  2553,  2559,  2568,  2578,  2585,  2589,  2594,  2603,
+  2610,  2614,  2624,  2626,  2627,  2629,  2631,  2632,  2633,  2634,
+  2636,  2638,  2641,  2647,  2652,  2652,  2657,  2661,  2663,  2669,
+  2674,  2679,  2688,  2690,  2696,  2698,  2701,  2703,  2704,  2705,
+  2708,  2714,  2716,  2720,  2723,  2730,  2736,  2741,  2748,  2753,
+  2758,  2763,  2770,  2774,  2777,  2783,  2785,  2786,  2787,  2790,
+  2792,  2793,  2794,  2795,  2796,  2797,  2798,  2799,  2800,  2801,
+  2802,  2803,  2804,  2805,  2806,  2807,  2808,  2809,  2810,  2810,
+  2813,  2819,  2824,  2829,  2835,  2837,  2840,  2842,  2849,  2861,
+  2866,  2872,  2874,  2880,  2884,  2885,  2891,  2893,  2896,  2898,
+  2904,  2909,  2915,  2922,  2931
+};
+
+static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER",
+"TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
+"ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
+"BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
+"EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
+"ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
+"'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
+"'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
+"CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
+"OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
+"@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
+"unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
+"cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
+"string","objc_string","old_style_parm_decls","lineno_datadecl","datadecls",
+"datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
+"reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
+"declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
+"typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
+"initdcl","@16","notype_initdcl","@17","maybe_attribute","attributes","attribute",
+"attribute_list","attrib","any_word","init","@18","initlist_maybe_comma","initlist1",
+"initelt","@19","@20","@21","nested_function","@22","@23","notype_nested_function",
+"@24","@25","declarator","after_type_declarator","parm_declarator","notype_declarator",
+"structsp","@26","@27","@28","@29","maybecomma","maybecomma_warn","component_decl_list",
+"component_decl_list2","component_decl","components","component_declarator",
+"enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
+"absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
+"label_decls","label_decl","compstmt_or_error","compstmt","simple_if","if_prefix",
+"do_stmt_start","@30","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
+"stmt_or_label","stmt","@31","@32","@33","@34","@35","@36","@37","all_iter_stmt",
+"all_iter_stmt_simple","@38","label","maybe_type_qual","xexpr","asm_operands",
+"nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@39","parmlist_1",
+"@40","parmlist_2","parms","parm","parmlist_or_identifiers","@41","parmlist_or_identifiers_1",
+"identifiers","identifiers_or_typenames","extension","objcdef","identifier_list",
+"classdecl","aliasdecl","classdef","@42","@43","@44","@45","@46","@47","@48",
+"@49","@50","protocoldef","@51","protocolrefs","non_empty_protocolrefs","ivar_decl_list",
+"visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator","methoddef",
+"@52","@53","@54","@55","@56","@57","methodprotolist","@58","methodprotolist2",
+"@59","semi_or_error","methodproto","@60","@61","@62","@63","methoddecl","optarglist",
+"myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@64","unaryselector",
+"keywordselector","selector","reservedwords","keyworddecl","messageargs","keywordarglist",
+"keywordexpr","keywordarg","receiver","objcmessageexpr","@65","@66","selectorarg",
+"keywordnamelist","keywordname","objcselectorexpr","objcprotocolexpr","objcencodeexpr",
+""
+};
+#endif
+
+static const short yyr1[] = {     0,
+    84,    84,    86,    85,    87,    85,    88,    88,    88,    88,
+    88,    89,    89,    89,    89,    89,    89,    89,    89,    91,
+    92,    90,    90,    93,    94,    90,    90,    95,    96,    90,
+    90,    97,    97,    97,    97,    98,    98,    98,    98,    98,
+    98,    98,    99,   100,   100,   101,   101,   102,   102,   102,
+   102,   102,   102,   102,   102,   102,   102,   102,   103,   104,
+   105,   105,   106,   105,   107,   107,   107,   107,   107,   107,
+   107,   107,   107,   107,   107,   107,   107,   108,   107,   109,
+   107,   110,   111,   107,   112,   107,   107,   107,   113,   113,
+   113,   113,   113,   114,   113,   113,   113,   113,   113,   113,
+   113,   113,   113,   113,   113,   113,   115,   115,   116,   116,
+   117,   117,   117,   118,   119,   119,   119,   119,   120,   120,
+   120,   120,   121,   122,   122,   122,   122,   123,   124,   125,
+   125,   125,   125,   125,   125,   125,   126,   126,   127,   127,
+   127,   127,   128,   128,   129,   129,   129,   130,   130,   130,
+   130,   131,   131,   131,   131,   132,   132,   133,   133,   134,
+   134,   134,   134,   134,   134,   134,   134,   135,   135,   135,
+   136,   136,   137,   137,   138,   138,   140,   139,   139,   142,
+   141,   141,   143,   143,   144,   144,   145,   146,   146,   147,
+   147,   147,   147,   147,   148,   148,   148,   148,   149,   150,
+   149,   149,   151,   151,   152,   152,   153,   154,   153,   153,
+   155,   153,   156,   153,   158,   159,   157,   161,   162,   160,
+   163,   163,   164,   164,   164,   164,   164,   164,   164,   164,
+   165,   165,   165,   165,   165,   165,   166,   166,   166,   166,
+   166,   166,   166,   168,   167,   167,   167,   169,   167,   167,
+   167,   170,   167,   171,   167,   167,   172,   172,   173,   173,
+   174,   174,   175,   175,   175,   175,   176,   176,   176,   176,
+   176,   176,   177,   177,   178,   178,   178,   179,   179,   179,
+   180,   180,   181,   181,   182,   182,   183,   183,   184,   184,
+   185,   185,   185,   185,   185,   185,   185,   185,   185,   186,
+   187,   187,   187,   188,   188,   189,   190,   191,   191,   192,
+   192,   193,   194,   194,   195,   195,   195,   195,   196,   196,
+   197,   199,   198,   200,   201,   202,   202,   203,   204,   204,
+   205,   205,   205,   206,   205,   205,   205,   207,   208,   205,
+   205,   205,   209,   210,   211,   205,   212,   205,   205,   205,
+   205,   205,   205,   205,   205,   205,   205,   205,   205,   213,
+   215,   214,   216,   216,   216,   216,   217,   217,   218,   218,
+   219,   219,   220,   220,   221,   222,   222,   224,   223,   225,
+   226,   225,   225,   227,   227,   227,   227,   228,   228,   229,
+   229,   229,   229,   229,   231,   230,   232,   232,   233,   233,
+   234,   234,   235,   236,   236,   236,   236,   236,   236,   237,
+   237,   238,   239,   241,   242,   240,   243,   240,   244,   245,
+   240,   246,   240,   247,   240,   240,   248,   240,   240,   249,
+   240,   240,   251,   250,   252,   252,   253,   254,   254,   255,
+   255,   255,   256,   256,   256,   257,   257,   257,   258,   258,
+   258,   259,   259,   259,   261,   262,   263,   260,   264,   265,
+   266,   260,   267,   268,   267,   269,   269,   269,   270,   269,
+   271,   271,   273,   274,   272,   275,   276,   272,   277,   277,
+   277,   277,   278,   278,   279,   279,   280,   280,   280,   280,
+   281,   281,   281,   282,   282,   283,   283,   283,   284,   284,
+   285,   284,   286,   287,   287,   288,   288,   288,   288,   289,
+   289,   289,   289,   289,   289,   289,   289,   289,   289,   289,
+   289,   289,   289,   289,   289,   289,   289,   289,   289,   289,
+   290,   290,   290,   290,   291,   291,   292,   292,   293,   294,
+   294,   295,   295,   297,   298,   296,   299,   299,   300,   300,
+   301,   301,   302,   303,   304
+};
+
+static const short yyr2[] = {     0,
+     0,     1,     0,     2,     0,     3,     1,     1,     1,     5,
+     2,     3,     4,     4,     2,     2,     2,     2,     1,     0,
+     0,     7,     4,     0,     0,     7,     4,     0,     0,     6,
+     3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+     1,     1,     1,     0,     1,     1,     3,     1,     2,     2,
+     2,     2,     2,     4,     2,     4,     2,     2,     1,     1,
+     1,     4,     0,     7,     1,     3,     3,     3,     3,     3,
+     3,     3,     3,     3,     3,     3,     3,     0,     4,     0,
+     4,     0,     0,     7,     0,     5,     3,     3,     1,     1,
+     1,     3,     3,     0,     4,     4,     4,     3,     3,     2,
+     2,     1,     1,     1,     1,     1,     1,     2,     1,     2,
+     0,     1,     2,     3,     1,     1,     2,     2,     4,     4,
+     2,     2,     3,     1,     1,     2,     2,     0,     0,     4,
+     4,     3,     3,     2,     2,     2,     2,     3,     0,     2,
+     2,     2,     2,     3,     0,     2,     2,     1,     1,     2,
+     2,     1,     1,     2,     2,     2,     3,     0,     2,     1,
+     1,     1,     2,     2,     1,     4,     4,     1,     1,     1,
+     1,     3,     1,     3,     0,     4,     0,     6,     3,     0,
+     6,     3,     0,     1,     1,     2,     6,     1,     3,     0,
+     1,     4,     6,     4,     1,     1,     1,     1,     1,     0,
+     4,     1,     0,     2,     1,     3,     1,     0,     4,     1,
+     0,     4,     0,     5,     0,     0,     5,     0,     0,     5,
+     1,     1,     3,     3,     4,     3,     3,     3,     1,     1,
+     3,     4,     3,     3,     3,     1,     3,     3,     3,     4,
+     3,     3,     1,     0,     7,     5,     2,     0,     7,     5,
+     2,     0,     8,     0,     7,     2,     0,     1,     0,     1,
+     1,     2,     0,     3,     2,     4,     3,     1,     3,     1,
+     1,     2,     1,     3,     4,     6,     5,     1,     3,     1,
+     1,     3,     2,     2,     0,     1,     1,     2,     0,     2,
+     3,     3,     2,     3,     4,     3,     2,     3,     2,     1,
+     1,     2,     2,     0,     1,     2,     0,     0,     1,     1,
+     2,     3,     1,     2,     2,     6,     5,     5,     2,     2,
+     4,     0,     4,     0,     0,     3,     4,     3,     1,     1,
+     1,     1,     2,     0,     4,     1,     3,     0,     0,     7,
+     5,     2,     0,     0,     0,    12,     0,     6,     2,     2,
+     2,     3,     6,     8,    10,    12,     3,     4,     1,     1,
+     0,     6,     3,     5,     2,     2,     0,     1,     0,     1,
+     0,     1,     1,     3,     4,     1,     3,     0,     2,     2,
+     0,     4,     2,     0,     1,     1,     3,     1,     3,     4,
+     4,     4,     4,     4,     0,     2,     1,     2,     1,     3,
+     1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
+     3,     3,     4,     0,     0,    10,     0,     6,     0,     0,
+    12,     0,     8,     0,     6,     2,     0,     8,     4,     0,
+     9,     5,     0,     6,     0,     1,     3,     3,     1,     1,
+     1,     1,     0,     3,     2,     3,     3,     1,     0,     1,
+     3,     1,     3,     2,     0,     0,     0,     7,     0,     0,
+     0,     7,     0,     0,     2,     1,     1,     2,     0,     3,
+     1,     1,     0,     0,     5,     0,     0,     5,     4,     1,
+     5,     2,     0,     2,     0,     1,     1,     1,     2,     2,
+     4,     2,     2,     1,     3,     2,     2,     2,     0,     2,
+     0,     3,     1,     1,     2,     1,     1,     1,     1,     1,
+     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+     6,     3,     5,     2,     1,     1,     1,     2,     1,     3,
+     2,     1,     1,     0,     0,     6,     1,     1,     1,     2,
+     2,     1,     4,     4,     4
+};
+
+static const short yydefact[] = {     3,
+     5,     0,     0,     0,   162,   153,   160,   152,     0,     0,
+     0,     0,     0,     0,   403,     0,   455,   459,     0,     0,
+   409,   435,     0,   435,     0,     0,    19,     4,     8,     7,
+     0,   128,   128,   148,   139,   149,   185,   161,     0,     9,
+   405,   406,   404,   407,   165,   408,     6,    17,    18,    32,
+    33,    35,    34,   254,   256,   263,   247,   263,   251,     0,
+     0,     0,   410,     0,     0,     0,   435,   426,   163,   436,
+   435,   164,     0,     0,   243,   289,     0,     0,   173,   129,
+     0,    16,     0,    15,     0,   150,   139,   151,   155,   154,
+   137,   186,    11,     0,   252,     0,     0,     0,   244,     0,
+   248,    89,    90,   107,    59,    60,     0,     0,     0,    36,
+    38,    37,     0,    39,    40,     0,   544,     0,     0,     0,
+   109,    41,    42,     0,     0,    43,    61,     0,     0,    65,
+    46,    48,    91,   106,     0,   102,   103,   104,   105,   287,
+     0,   285,   158,     0,   285,   190,   437,     0,   506,   507,
+   529,   530,   526,   510,   511,   512,   513,   514,   515,   516,
+   517,   518,   519,   520,   521,   522,   523,   524,   525,   527,
+   528,     0,     0,   508,   456,   480,   499,   503,   509,   504,
+   460,     0,     0,   417,     0,     0,   424,   433,   412,     0,
+     0,     0,    12,     0,     0,    31,     0,   395,     0,     0,
+   183,   229,   289,     0,   230,     0,   171,   129,     0,   221,
+   222,     0,     0,   138,   141,   168,   169,   140,   142,   170,
+   280,   281,   259,   278,     0,     0,   183,   271,   265,   128,
+   262,   128,     0,   263,   183,   263,    57,    58,    52,    49,
+     0,     0,     0,     0,     0,     0,     0,     0,    51,     0,
+     0,     0,    53,     0,    55,     0,     0,    82,    80,    78,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   100,   101,     0,     0,    44,     0,   108,   110,
+    50,   166,   289,   378,     0,   283,   286,   156,   167,   288,
+   158,   284,   196,   197,   198,   195,     0,   188,   191,   411,
+     0,   534,     0,   483,   501,   482,     0,   505,     0,   483,
+   435,     0,   414,   464,   429,     0,   443,   464,   413,   290,
+   239,   238,   174,   175,   242,     0,   237,     0,   241,     0,
+     0,    29,     0,   324,   116,   325,   182,   184,     0,     0,
+    14,     0,     0,    23,     0,   183,   395,     0,    13,    27,
+     0,     0,   260,     0,   259,     0,   246,   324,   264,   324,
+   272,     0,   250,     0,    93,    92,   307,     0,     0,   543,
+   542,   545,   552,   547,     0,   548,   549,     0,     0,    10,
+    47,     0,     0,    88,    87,     0,     0,     0,     0,    76,
+    77,    75,    74,    73,    71,    72,    66,    67,    68,    69,
+    70,    99,    98,     0,    45,     0,   293,     0,   297,     0,
+   299,     0,   378,     0,   159,   157,     0,   190,    44,     0,
+     0,     0,   457,   500,   384,     0,   532,   461,   422,   435,
+   443,     0,     0,   427,   432,     0,     0,     0,     0,     0,
+   399,   385,   128,   128,   397,     0,   386,   388,   396,     0,
+   240,   306,     0,   118,   113,   117,     0,   180,   227,   223,
+   172,   228,    21,   179,   224,   226,     0,    25,   282,   279,
+   183,     0,   266,   267,   273,   325,   269,   183,   183,   315,
+   308,    95,    63,    62,     0,   551,   553,     0,   550,   555,
+   554,    54,    56,     0,     0,    81,    79,    96,    97,   292,
+   291,   379,   298,   294,   296,     0,   187,   189,    89,     0,
+     0,   479,   499,   128,     0,   488,   484,   486,     0,     0,
+   502,   386,     0,     0,   419,   464,   430,     0,   418,   473,
+   476,   467,     0,   128,   128,   469,   466,   443,   442,   440,
+   441,   425,   443,   448,   445,   128,   128,     0,   434,   176,
+   383,   285,   285,   380,   381,     0,   398,     0,     0,    30,
+   313,   114,   128,   128,   145,     0,     0,   177,   225,     0,
+   255,   183,   324,     0,   245,   249,     0,     0,   309,   310,
+     0,     0,   535,     0,   536,   537,    83,    86,   295,   192,
+     0,   194,   533,   481,   492,   285,   493,   489,   490,   458,
+     0,   462,   443,     0,   464,   415,     0,     0,   175,     0,
+     0,     0,   468,     0,     0,   449,   449,   444,   236,   289,
+   378,   129,   183,   183,   183,   289,   183,   183,     0,   387,
+   389,   400,   314,   121,     0,   122,     0,   145,   143,   202,
+   200,   199,   181,    22,     0,    26,   253,   274,     0,   183,
+   401,     0,     0,     0,   324,     0,     0,   125,   325,   301,
+   311,   210,    89,     0,   208,     0,   207,     0,   257,   205,
+   539,   541,     0,   546,     0,   538,     0,     0,   183,   183,
+   183,     0,   494,   531,     0,   423,     0,   464,   474,   477,
+   470,   428,     0,   452,   446,   450,   447,   293,     0,   395,
+     0,   390,   391,   392,   293,   393,   394,   382,     0,     0,
+   144,   147,   146,     0,   178,   183,     0,   275,   312,     0,
+   317,   127,   126,   305,     0,   318,   303,   325,   302,     0,
+     0,     0,   211,    64,     0,   204,   540,    84,   193,   496,
+   497,   498,   491,   285,   420,   431,     0,     0,     0,   454,
+     0,     0,   234,   289,   235,   231,   233,     0,   119,   120,
+     0,   277,   183,   402,   316,     0,   162,     0,   338,   322,
+     0,     0,     0,     0,     0,     0,     0,     0,   367,   435,
+   435,   359,     0,     0,   123,   128,   128,   331,   336,     0,
+     0,   328,   329,   332,   360,   330,     0,   213,     0,     0,
+   206,   495,   464,   416,   472,   471,   475,   478,   453,   451,
+     0,   232,   201,   276,     0,     0,   324,   369,     0,     0,
+   365,   349,   350,   351,     0,     0,     0,   368,     0,   366,
+   333,   134,     0,   135,     0,     0,   320,   325,   319,   342,
+     0,   136,     0,   209,   212,     0,     0,     0,     0,   370,
+    48,     0,     0,     0,   363,   352,     0,   357,     0,     0,
+   132,   215,     0,   133,   218,   337,   324,     0,     0,   214,
+   421,   321,     0,   323,   361,   343,   347,     0,   358,     0,
+   130,     0,   131,     0,   335,   326,   324,     0,   339,   324,
+   369,   324,   364,   371,     0,   216,   219,   327,   341,   324,
+   362,     0,   348,     0,     0,   372,   373,   353,     0,     0,
+   340,   344,     0,   371,     0,     0,   217,   220,   369,     0,
+     0,   354,   374,     0,   375,     0,     0,   345,   376,     0,
+   355,   324,     0,     0,   346,   356,   377,     0,     0,     0
+};
+
+static const short yydefgoto[] = {   938,
+     1,     2,     3,    28,    29,    30,   345,   567,   351,   570,
+   200,   453,   666,   124,   242,   404,   126,   127,   128,   129,
+   130,   581,   131,   389,   388,   386,   677,   387,   132,   243,
+   133,   134,   332,   333,   334,   562,   654,   655,    31,   195,
+   785,   443,    91,   563,   639,   444,    34,   142,   288,    35,
+   218,   206,    78,   201,   207,   645,    79,   566,   337,   338,
+    37,   297,   298,   299,   643,   714,   668,   669,   670,   732,
+   800,   843,   861,   882,   909,   864,   884,   910,   324,   210,
+   679,   211,    38,   234,   236,   225,    94,   736,   354,    97,
+    98,   231,   474,   475,   223,   224,   144,   681,   145,   191,
+   287,   656,   657,   725,   335,   481,   578,   579,   580,   560,
+   561,   789,   790,   791,   817,   838,   457,   839,   660,   792,
+   793,   867,   816,   900,   891,   919,   932,   892,   794,   795,
+   890,   796,   829,   852,   905,   906,   907,   930,   409,   410,
+   445,   629,   446,   447,   448,   327,   328,   449,   450,   652,
+   135,    40,    64,    41,    42,    43,   431,   688,   314,   603,
+   803,   526,   317,   538,   605,    44,   318,    69,    45,   436,
+   543,   437,   548,   695,   696,    46,    65,   304,   520,    66,
+   310,   524,   432,   433,   536,   612,   807,   537,   607,   748,
+   608,   749,   175,   423,   517,   518,   519,   682,   683,   306,
+   425,   176,   177,   178,   179,   180,   584,   585,   672,   586,
+   372,   136,   245,   485,   375,   376,   377,   137,   138,   139
+};
+
+static const short yypact[] = {   128,
+   132,  2936,  2936,   108,-32768,-32768,-32768,-32768,   139,   253,
+   266,    86,   103,   111,-32768,    99,-32768,-32768,    99,    99,
+-32768,   158,    99,   158,    99,    99,-32768,-32768,-32768,-32768,
+   169,   137,  2416,   115,-32768,   197,-32768,-32768,  2936,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,   155,   214,   210,   214,   212,  2645,
+  2483,   252,-32768,    50,  3210,  3210,   151,    51,-32768,-32768,
+   158,-32768,   209,    99,-32768,-32768,   169,   286,-32768,   197,
+  1661,-32768,   319,-32768,   169,   115,-32768,   197,-32768,-32768,
+   729,-32768,-32768,   120,-32768,   255,   277,  1592,-32768,   283,
+-32768,-32768,-32768,-32768,-32768,-32768,  2645,  2645,    99,-32768,
+-32768,-32768,  2645,-32768,-32768,   932,-32768,   288,   312,   314,
+-32768,-32768,-32768,  2645,   305,   311,-32768,  2699,  2753,-32768,
+  3581,   622,   396,   346,  2645,-32768,-32768,-32768,-32768,-32768,
+   356,   267,-32768,   359,  3364,   269,-32768,    99,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,   398,  3487,-32768,-32768,-32768,  2377,   415,-32768,-32768,
+-32768,    99,    99,   377,    99,    99,-32768,-32768,-32768,   397,
+   105,   119,-32768,   319,   169,-32768,   420,-32768,  1846,  1806,
+   197,-32768,-32768,   319,-32768,   327,-32768,   197,  1759,   434,
+   484,   364,  1680,   729,-32768,-32768,-32768,-32768,   197,-32768,
+-32768,   473,   439,-32768,   120,   448,   197,-32768,-32768,   534,
+   445,   352,  3175,   214,   197,   214,-32768,-32768,-32768,-32768,
+   454,   456,   472,   481,  2537,  3272,  3487,    99,-32768,   485,
+  2645,   932,-32768,   932,-32768,  2645,  2645,   557,-32768,-32768,
+  2645,  2645,  2645,  2645,  2645,  2645,  2645,  2645,  2645,  2645,
+  2645,  2645,-32768,-32768,    99,    99,  2645,  2645,-32768,-32768,
+-32768,-32768,-32768,   267,  1905,-32768,   562,   766,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,   225,-32768,   547,-32768,
+  3487,-32768,   542,   550,   624,-32768,   415,-32768,   408,   550,
+   158,   560,-32768,   581,   566,   578,-32768,   581,-32768,-32768,
+   484,-32768,-32768,   641,   484,   660,-32768,  3089,-32768,   602,
+   614,-32768,   682,    83,-32768,-32768,   634,   197,   110,   243,
+-32768,   319,   319,-32768,  1806,   197,-32768,  1964,-32768,-32768,
+  1806,  2645,    99,   619,   439,   627,-32768,-32768,-32768,-32768,
+-32768,   620,-32768,   628,-32768,-32768,   629,   633,  2297,-32768,
+-32768,-32768,-32768,   662,   640,  3272,-32768,   642,   644,-32768,
+  3581,   648,   650,  3581,  3581,  2645,   679,  2645,  2645,  2456,
+   783,   879,  1653,  1750,   760,   760,   537,   537,-32768,-32768,
+-32768,-32768,-32768,   652,   311,   667,   336,   245,-32768,  3108,
+-32768,   673,-32768,  2023,-32768,   766,   669,   269,  2807,   695,
+  3300,   850,-32768,-32768,  3375,  3487,-32768,-32768,   693,   158,
+-32768,   718,  3011,-32768,-32768,   184,  2884,   719,    78,   707,
+-32768,-32768,-32768,  3450,-32768,   711,   430,-32768,-32768,   298,
+-32768,-32768,    76,-32768,-32768,-32768,  3469,-32768,   434,-32768,
+-32768,   434,-32768,   752,-32768,-32768,   708,-32768,  3581,-32768,
+   197,   715,-32768,   713,-32768,-32768,   713,   197,   197,-32768,
+   763,-32768,-32768,-32768,  3336,-32768,-32768,   662,-32768,-32768,
+-32768,-32768,-32768,   761,  2645,  1473,  1820,-32768,-32768,   562,
+-32768,-32768,-32768,-32768,-32768,   722,-32768,-32768,   339,   730,
+    99,-32768,  2377,   740,  3119,-32768,-32768,  3450,  1778,    76,
+-32768,   741,   765,    76,-32768,   581,-32768,   348,-32768,-32768,
+-32768,-32768,   169,   137,  2416,   335,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,  3506,   767,-32768,-32768,
+-32768,   593,   238,-32768,-32768,  3439,-32768,   834,   472,-32768,
+-32768,-32768,   768,   725,-32768,   839,    76,-32768,-32768,    76,
+-32768,   197,-32768,   257,-32768,-32768,    99,  1101,   763,-32768,
+  1421,  2645,   805,   769,  3336,-32768,-32768,  1394,-32768,-32768,
+  2645,-32768,-32768,-32768,-32768,   593,-32768,-32768,-32768,-32768,
+    99,-32768,-32768,   790,   581,-32768,  3210,  3210,    70,   319,
+   169,  3039,-32768,   459,  2902,   280,   280,-32768,-32768,-32768,
+   238,   197,   340,   347,   197,-32768,   347,   197,  3108,-32768,
+-32768,-32768,-32768,-32768,   319,-32768,   169,-32768,   659,-32768,
+-32768,  3581,-32768,-32768,   839,-32768,-32768,-32768,  2645,    81,
+-32768,   435,   564,  1021,   780,   782,  1181,-32768,-32768,-32768,
+-32768,-32768,   828,    99,-32768,   833,  3581,   796,   800,-32768,
+   311,-32768,  2645,-32768,   805,-32768,  2645,   427,   340,   347,
+   197,   464,-32768,-32768,   515,-32768,   820,   581,-32768,-32768,
+-32768,-32768,  2645,   846,   804,-32768,   804,   587,   510,-32768,
+  2082,-32768,-32768,-32768,   600,-32768,-32768,-32768,   501,   521,
+   659,-32768,-32768,  1421,-32768,  3214,  2645,-32768,-32768,    99,
+-32768,-32768,-32768,-32768,   808,-32768,-32768,-32768,-32768,  2163,
+   854,  1421,-32768,-32768,  1501,-32768,-32768,  1394,-32768,-32768,
+-32768,-32768,-32768,   593,-32768,-32768,   829,    80,    80,  3581,
+  2645,   280,   598,-32768,   598,-32768,-32768,   813,-32768,-32768,
+   822,-32768,  3214,-32768,-32768,  2243,   853,   842,-32768,-32768,
+   843,   845,  2645,   868,   830,   831,  2591,   372,   902,   187,
+   226,-32768,   873,   838,-32768,   865,  3138,-32768,   900,  1261,
+    91,-32768,-32768,-32768,-32768,-32768,  2405,-32768,   869,  1581,
+-32768,-32768,   581,-32768,-32768,-32768,-32768,-32768,  3581,-32768,
+   278,-32768,-32768,-32768,  2645,   861,-32768,  2645,  2645,  3545,
+-32768,-32768,-32768,-32768,   871,  2645,   872,-32768,   891,-32768,
+-32768,-32768,   319,-32768,   169,  1341,-32768,-32768,-32768,-32768,
+  2645,-32768,  1581,-32768,-32768,   888,   877,  2645,   937,-32768,
+   441,   880,   882,  2645,-32768,-32768,   885,-32768,  2645,   523,
+-32768,   442,   524,-32768,   663,-32768,-32768,  2243,   892,-32768,
+-32768,-32768,   893,-32768,-32768,-32768,-32768,  3563,-32768,    58,
+-32768,  1806,-32768,  1806,-32768,-32768,-32768,   887,-32768,-32768,
+  2645,-32768,-32768,   947,   890,-32768,-32768,-32768,-32768,-32768,
+-32768,   896,-32768,   911,    60,   895,-32768,-32768,   472,   472,
+-32768,-32768,  2645,   947,   897,   947,-32768,-32768,  2645,   903,
+    68,-32768,-32768,   907,-32768,   660,   901,-32768,   396,   429,
+-32768,-32768,   908,   660,-32768,-32768,   396,   984,   988,-32768
+};
+
+static const short yypgoto[] = {-32768,
+-32768,-32768,-32768,   102,  -367,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,    -9,-32768,   -52,   570,  -231,   533,-32768,-32768,
+   -45,-32768,   220,-32768,-32768,-32768,-32768,-32768,   172,-32768,
+  -295,-32768,  -308,   661,-32768,-32768,   342,-32768,    17,  -195,
+   203,    16,   914,-32768,   367,    21,   -11,   -65,   703,    11,
+  -249,  -574,   -58,  -206,  -127,-32768,-32768,-32768,   196,     3,
+    -6,-32768,   584,-32768,   361,-32768,  -607,-32768,  -662,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   -68,  -135,
+  -498,    14,   -66,-32768,-32768,-32768,-32768,-32768,   653,    12,
+-32768,   776,   655,   437,   788,   664,   -12,   -89,   -50,  -168,
+  -232,   363,-32768,-32768,  -269,-32768,-32768,-32768,   440,  -290,
+  -205,-32768,-32768,-32768,-32768,  -122,  -435,  -741,   366,-32768,
+   148,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,   153,-32768,  -739,   117,-32768,   121,-32768,   643,-32768,
+  -351,-32768,   632,   635,   497,  -307,-32768,-32768,-32768,-32768,
+    18,-32768,  1033,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,   -20,     4,  -348,
+-32768,   516,-32768,   450,   310,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,  -306,-32768,-32768,-32768,   316,   532,-32768,-32768,
+-32768,-32768,   -37,   762,-32768,-32768,   555,-32768,   333,   565,
+-32768,   658,   665,  -145,-32768,  -119,-32768,-32768,   409,   498,
+-32768,-32768,-32768,-32768,-32768,-32768,   714,-32768,-32768,-32768
+};
+
+
+#define	YYLAST		3633
+
+
+static const short yytable[] = {    55,
+    57,    59,   346,    72,    36,    36,    63,   125,   141,    67,
+    68,   438,   343,    71,   209,    63,    74,    32,    32,    39,
+    39,    86,    33,    33,   220,    70,   212,    70,   181,    92,
+   439,   307,   230,    80,   339,    88,   463,   368,   415,   465,
+   574,    36,   468,    87,    81,   405,   184,   232,    83,    85,
+   188,   408,   286,   623,    32,   292,    39,   308,   502,    33,
+   709,   237,   238,   454,   190,   532,   323,   240,   340,   100,
+    70,   143,   801,    92,    70,   849,   559,   336,   249,    80,
+   805,    92,   528,  -112,   222,   208,   279,    80,   185,   281,
+   192,   840,   455,   219,   147,   894,   197,   914,   213,   239,
+   374,    50,    51,   244,    47,   926,   761,    75,   143,   186,
+    14,   320,    75,   202,   407,   233,   320,   346,   717,    89,
+   221,    90,    50,    51,   799,   885,   143,    -1,   198,   199,
+   148,    -2,   187,   895,    14,   915,   296,   845,   300,    14,
+    93,    50,    51,   927,    60,   898,   330,   220,   901,   841,
+   903,   902,   516,   550,    76,   291,   806,   367,   911,   203,
+   303,    61,   302,    77,  -112,    52,   415,   230,   204,    62,
+    53,    75,   311,   312,   500,   315,   316,   198,   199,   924,
+   870,   205,   232,   143,    48,    49,    52,   405,   182,   614,
+   935,    53,   371,    80,   322,    16,   208,    80,    14,   753,
+   755,    92,    16,   459,   321,    52,   208,   462,   325,   183,
+    53,   336,    92,    82,   461,   222,   219,   192,    76,   604,
+    54,   220,   336,   730,   -35,   406,    14,    77,   336,   600,
+   488,    16,   412,   602,   378,   476,    95,   476,   379,   382,
+    75,   383,   291,   143,   691,   362,   358,   364,   360,   599,
+   233,   539,   540,   541,   685,    50,    51,   143,   860,    75,
+   202,   542,   143,   -34,   143,   402,   403,    14,    50,    51,
+    16,    50,    51,   293,   294,   295,   644,   708,    96,   646,
+    75,   619,    75,   202,   320,   189,    14,   626,   420,   148,
+   429,    99,   766,   101,   649,   467,   621,   285,   687,   427,
+   417,   347,   348,   413,   414,   418,   203,    14,   658,    14,
+   146,   143,   753,   226,    70,   204,   283,   693,   460,    52,
+   501,    75,   202,   484,    53,   284,   285,   754,   205,   203,
+    36,    92,    52,   494,    56,    52,    77,    53,   204,   583,
+    53,   208,   320,   222,   208,   208,   246,    58,    14,   220,
+   671,   205,   321,   633,   227,     5,   325,     7,   290,   678,
+   235,   506,   193,     9,    10,    11,   194,   307,   203,    14,
+   247,   546,   248,   557,    50,    51,    14,   204,   558,    13,
+   250,   747,   530,   531,   722,   283,   547,   727,   408,   713,
+   205,   251,   756,   308,   284,   285,    16,  -465,   700,   701,
+    50,    51,   868,   341,   279,   198,   199,   342,   296,   527,
+    50,    51,    36,   523,   590,   539,   540,   541,    22,   591,
+   280,   826,   357,    24,    36,   606,   699,    36,  -270,  -270,
+   363,   282,    86,    70,   289,    36,   143,   514,    52,   675,
+   349,   671,   515,    53,   194,   564,    88,   143,   534,   533,
+   476,   698,   309,   535,    87,   659,   301,   705,   313,   552,
+   553,   713,   625,   628,    52,   500,   426,   565,   197,    53,
+   381,  -175,   500,   319,    52,   384,   385,  -175,   326,    53,
+   390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
+   400,   401,   347,   348,   273,   274,   846,   275,   276,   277,
+   278,   593,   739,    86,   933,   650,   555,   251,   352,   934,
+   556,   719,    75,   619,   356,   720,   875,    88,  -175,   353,
+    36,   359,  -175,    86,   788,    87,   539,   540,   541,   365,
+   596,   366,   659,   514,   728,    80,   692,    88,   515,    14,
+   743,   464,   198,   199,   744,    87,   609,   694,   694,   546,
+   610,   611,   212,   367,   622,    80,   369,   291,    36,   754,
+   788,   380,   616,   617,   547,   624,   627,   651,    77,   689,
+   690,   469,   220,   896,   638,   897,   208,   759,   710,   635,
+   637,   342,   539,   540,   541,   811,   270,   271,   272,    75,
+   619,   684,   745,   320,   -85,    75,   619,   760,   622,   881,
+   883,   194,    75,   342,   194,   419,   320,   496,   497,   680,
+  -268,  -268,   208,    80,    36,    92,    14,   421,   208,   208,
+   413,   414,    14,    80,   609,   143,   422,   534,   533,    14,
+   929,    36,   535,   424,   192,   430,   620,   208,   937,    80,
+   452,   721,   620,  -463,   220,   621,   285,   434,   758,   626,
+   609,   621,   285,   435,   731,   346,   700,   701,   621,   285,
+   253,   255,   788,   712,   216,   217,   571,   197,   104,   458,
+     9,    10,    11,   575,   576,   273,   274,   784,   275,   276,
+   277,   278,   331,   694,   451,  -115,  -115,  -115,  -115,   197,
+   452,  -115,  -175,  -115,  -115,  -115,   471,   478,  -175,   486,
+   622,   622,   473,   917,   918,   479,   480,    80,   482,  -115,
+   764,   321,   325,   784,   588,   487,   495,   490,   321,   491,
+   783,   198,   199,   492,   825,   493,  -115,   498,     5,    89,
+     7,    90,    36,   215,   216,   217,     9,    10,    11,  -175,
+     9,    10,    11,  -175,   507,   786,   622,   797,  -115,   499,
+   787,   281,    13,  -115,   208,   503,   783,   680,    14,   336,
+    72,   336,   847,  -115,   862,   850,   853,   647,   827,    16,
+   511,   216,   217,   857,   525,    86,   863,     9,    10,    11,
+   529,   549,   551,    70,    70,   642,   554,   568,   869,    88,
+   569,    22,   572,   573,   577,   873,    24,    87,   587,    36,
+   667,   636,   833,   835,   589,   592,   880,   268,   269,   270,
+   271,   272,   786,   622,   797,   784,   595,   787,   702,   703,
+   704,   556,   706,   707,   321,   263,   264,   265,   266,   267,
+   268,   269,   270,   271,   272,   208,   632,    80,   850,   640,
+   601,   102,   673,   618,   634,   718,   103,   104,   865,   105,
+   331,   674,   686,     5,     6,     7,     8,  -304,   783,   726,
+   920,     9,    10,    11,   642,   -32,   850,   106,   716,    15,
+   733,   107,   108,   734,   740,   741,   742,    13,   109,    14,
+   735,   110,   746,   751,   752,   765,   111,   112,   113,   798,
+   -33,   804,   114,   115,    16,   812,   738,   116,   117,   813,
+   815,   818,   118,   819,   119,   821,   822,   823,   828,   120,
+   830,   762,   750,   121,   831,   836,    22,   122,   123,   848,
+   641,    24,   264,   265,   266,   267,   268,   269,   270,   271,
+   272,  -485,   241,   667,   102,     5,   763,     7,   140,   103,
+   104,   832,   105,     9,    10,    11,   844,   856,   858,   859,
+   871,   667,   872,   874,   667,   904,   876,   877,   814,    13,
+   106,   879,    15,   899,   107,   108,   908,   888,   889,   913,
+   809,   109,   912,   922,   110,   916,    16,   931,   925,   111,
+   112,   113,   928,   939,   936,   114,   115,   940,   510,   851,
+   116,   117,   820,   416,   456,   118,   723,   119,    22,   842,
+   214,   508,   120,    24,   711,   715,   121,   472,   361,   648,
+   122,   123,   355,   -94,   477,   886,   470,   724,   661,   667,
+   887,   331,   729,  -124,  -124,  -124,  -124,  -124,  -124,  -124,
+   921,  -124,  -124,  -124,  -124,  -124,   923,  -124,  -124,  -124,
+  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,
+  -124,  -124,   631,  -124,  -124,   504,   521,    73,   615,   522,
+  -124,   810,   667,  -124,   808,  -124,   697,   613,  -124,  -124,
+  -124,   428,   598,   878,  -124,  -124,   802,   594,   512,  -124,
+  -124,   737,   676,     0,  -124,   513,  -124,  -124,     0,   489,
+     0,  -124,  -124,     0,     0,  -124,     0,  -124,  -124,  -124,
+  -124,   653,  -124,  -324,  -324,  -324,  -324,  -324,  -324,  -324,
+     0,  -324,  -324,  -324,  -324,  -324,     0,  -324,  -324,  -324,
+  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,
+  -324,  -324,     0,  -324,  -324,     0,     0,     0,     0,     0,
+  -324,     0,     0,  -324,     0,  -324,     0,     0,  -324,  -324,
+  -324,     0,     0,     0,  -324,  -324,     0,     0,     0,  -324,
+  -324,     0,     0,     0,  -324,     0,  -324,  -324,     0,     0,
+     0,  -324,  -324,     0,     0,  -324,     0,  -324,     0,  -324,
+  -324,   331,  -324,  -324,  -324,     0,     0,     0,  -324,  -324,
+     0,  -324,     0,     0,     0,  -324,     0,  -324,  -324,  -324,
+  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,     0,  -324,
+     0,  -324,     0,  -324,  -324,     0,     0,     0,     0,     0,
+  -324,     0,     0,  -324,     0,     0,     0,     0,  -324,  -324,
+  -324,     0,     0,     0,  -324,  -324,     0,     0,     0,  -324,
+  -324,     0,     0,     0,  -324,     0,  -324,  -324,     0,     0,
+     0,  -324,  -324,     0,     0,  -324,     0,  -324,  -300,  -324,
+  -324,   837,  -324,  -324,  -324,     0,     0,     0,  -324,  -324,
+     0,  -324,     0,     0,     0,  -324,     0,  -324,  -324,  -324,
+  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,     0,  -324,
+     0,  -324,     0,  -324,  -324,     0,     0,     0,     0,     0,
+  -324,     0,     0,  -324,     0,     0,     0,     0,  -324,  -324,
+  -324,     0,     0,     0,  -324,  -324,     0,     0,     0,  -324,
+  -324,     0,     0,     0,  -324,     0,  -324,  -324,     0,     0,
+     0,  -324,  -324,     0,     0,  -324,     0,  -324,     0,  -324,
+  -324,   866,  -324,  -334,  -334,     0,     0,     0,  -334,  -334,
+     0,  -334,     0,     0,     0,  -334,     0,  -334,  -334,  -334,
+  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,     0,  -334,
+     0,  -334,     0,  -334,  -334,     0,     0,     0,     0,     0,
+  -334,     0,     0,  -334,     0,     0,     0,     0,  -334,  -334,
+  -334,     0,     0,     0,  -334,  -334,     0,     0,     0,  -334,
+  -334,     0,     0,     0,  -334,     0,  -334,  -334,     0,     0,
+     0,  -334,  -334,     0,     0,  -334,     0,  -334,     0,  -334,
+  -334,   662,  -334,   663,    51,     0,     0,     0,   103,   104,
+   258,   105,   259,   260,   261,   262,   263,   264,   265,   266,
+   267,   268,   269,   270,   271,   272,     0,     0,     0,   106,
+     0,    15,     0,   107,   108,     0,     0,     0,     0,     0,
+   109,     0,     0,   110,     0,     0,     0,     0,   111,   112,
+   113,     0,     0,     0,   114,   115,     0,     0,   664,   116,
+   117,     0,     0,     0,   118,     0,   119,    52,     0,     0,
+     0,   120,    53,     0,     0,   121,     0,     0,  -203,   122,
+   123,   662,   665,   663,    51,     0,     0,     0,   103,   104,
+     0,   105,   260,   261,   262,   263,   264,   265,   266,   267,
+   268,   269,   270,   271,   272,     0,     0,     0,     0,   106,
+     0,    15,     0,   107,   108,     0,     0,     0,     0,     0,
+   109,     0,     0,   110,     0,     0,     0,     0,   111,   112,
+   113,     0,     0,     0,   114,   115,     0,     0,   664,   116,
+   117,     0,     0,     0,   118,     0,   119,    52,     0,     0,
+     0,   120,    53,     0,     0,   121,     0,     0,  -258,   122,
+   123,   662,   665,   663,    51,     0,     0,     0,   103,   104,
+     0,   105,   228,     0,     0,     5,     0,     7,   140,     0,
+     0,     0,     0,     9,    10,    11,     0,     0,     0,   106,
+     0,    15,     0,   107,   108,     0,     0,     0,     0,    13,
+   109,     0,    15,   110,     0,     0,     0,     0,   111,   112,
+   113,     0,     0,     0,   114,   115,    16,     0,   664,   116,
+   117,     0,     0,     0,   118,     0,   119,    52,     0,     0,
+     0,   120,    53,     0,     0,   121,     0,     0,    22,   122,
+   123,   196,   665,    24,   -28,   -28,   -28,   -28,   229,  -261,
+     0,     0,   -28,   -28,   -28,     0,     0,     0,     0,     0,
+   350,     0,     0,   -24,   -24,   -24,   -24,   197,   -28,     0,
+  -175,   -24,   -24,   -24,     0,     0,  -175,   265,   266,   267,
+   268,   269,   270,   271,   272,   -28,   197,   -24,     0,  -175,
+     0,     0,     0,     0,     0,  -175,     0,     0,     0,   198,
+   199,     0,     0,     0,   -24,     0,     0,   -28,     0,     0,
+     0,     0,   -28,     0,     0,     0,     0,  -175,   198,   199,
+     0,  -175,   -28,     0,     0,     0,   -24,     0,     0,     0,
+     0,   -24,     0,     0,     0,     0,  -175,     0,     0,   344,
+  -175,   -24,   -20,   -20,   -20,   -20,     0,     0,     0,     0,
+   -20,   -20,   -20,     0,     0,     0,     0,     0,   331,     0,
+     0,  -487,  -487,  -487,  -487,   197,   -20,     0,  -175,  -487,
+  -487,  -487,     0,     0,  -175,   266,   267,   268,   269,   270,
+   271,   272,     0,   -20,     0,  -487,   331,  -487,     0,  -324,
+  -324,  -324,  -324,     0,     0,     0,     0,  -324,  -324,  -324,
+     0,     0,  -487,     0,     0,   -20,     0,     0,     0,     0,
+   -20,     0,     0,  -324,     0,  -175,     0,     0,     0,  -175,
+   -20,     0,     0,     0,  -487,     0,     0,     0,   102,  -487,
+  -324,     0,     0,   103,   104,     0,   105,     0,     0,  -487,
+   261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
+   271,   272,  -324,     0,   106,     0,    15,  -324,   107,   108,
+     0,     0,     0,     0,     0,   109,     0,  -111,   110,     0,
+     0,     0,     0,   111,   112,   113,     0,     0,     0,   114,
+   115,     0,     0,     0,   116,   117,     0,   102,     0,   118,
+     0,   119,   103,   104,     0,   105,   120,     0,     0,     0,
+   121,     0,     0,     0,   122,   123,     0,     0,   329,     0,
+     0,     0,     0,   106,     0,    15,     0,   107,   108,     0,
+     0,     0,     0,     0,   109,     0,     0,   110,     0,     0,
+     0,     0,   111,   112,   113,     0,     0,     0,   114,   115,
+     0,     0,     0,   116,   117,     0,   102,     0,   118,     0,
+   119,   103,   104,     0,   105,   120,     0,     0,     0,   121,
+     0,     0,     0,   122,   123,     0,     0,   411,     0,     0,
+     0,     0,   106,     0,    15,     0,   107,   108,     0,     0,
+     0,     0,     0,   109,     0,     0,   110,     0,     0,     0,
+     0,   111,   112,   113,     0,     0,     0,   114,   115,     0,
+     0,     0,   116,   117,     0,   102,     0,   118,     0,   119,
+   103,   104,     0,   105,   120,     0,     0,     0,   121,     0,
+     0,     0,   122,   123,     0,     0,   466,     0,     0,     0,
+     0,   106,     0,    15,     0,   107,   108,     0,     0,     0,
+     0,     0,   109,     0,     0,   110,     0,     0,     0,     0,
+   111,   112,   113,     0,     0,     0,   114,   115,     0,     0,
+     0,   116,   117,     0,   102,     0,   118,     0,   119,   103,
+   104,     0,   105,   120,     0,     0,     0,   121,     0,     0,
+     0,   122,   123,     0,     0,   505,     0,     0,     0,     0,
+   106,     0,    15,     0,   107,   108,     0,     0,     0,     0,
+     0,   109,     0,     0,   110,     0,     0,     0,     0,   111,
+   112,   113,     0,     0,     0,   114,   115,     0,     0,     0,
+   116,   117,     0,     0,     0,   118,     0,   119,     0,     0,
+     0,     0,   120,     0,     0,     0,   121,     0,     0,     0,
+   122,   123,     0,     0,   757,   663,   767,     6,     7,     8,
+   103,   104,     0,   105,     9,    10,    11,   768,     0,   769,
+   770,   771,   772,   773,   774,   775,   776,   777,   778,   779,
+    13,   106,    14,    15,     0,   107,   108,     0,     0,     0,
+     0,     0,   109,     0,     0,   110,     0,    16,     0,     0,
+   111,   112,   113,     0,     0,     0,   114,   115,     0,     0,
+     0,   116,   117,     0,     0,     0,   118,     0,   119,   780,
+     0,     0,     0,   120,   781,     0,     0,   121,     0,   782,
+     0,   122,   123,     0,   367,   663,    51,     0,     0,     0,
+   103,   104,     0,   105,     0,     0,     0,   768,     0,   769,
+   770,   771,   772,   773,   774,   775,   776,   777,   778,   779,
+     0,   106,     0,    15,     0,   107,   108,     0,     0,     0,
+     0,     0,   109,     0,     0,   110,     0,     0,     0,     0,
+   111,   112,   113,     0,     0,     0,   114,   115,     0,   102,
+     0,   116,   117,     0,   103,   104,   118,   105,   119,    52,
+     0,     0,     0,   120,    53,     0,     0,   121,     0,   782,
+     0,   122,   123,     0,   367,   106,     0,    15,     0,   107,
+   108,     0,     0,     0,     0,     0,   109,     0,     0,   110,
+     0,     0,     0,     0,   111,   112,   113,     0,     0,     0,
+   114,   115,     0,     0,     0,   116,   117,     0,     0,     0,
+   118,     0,   119,     0,     0,     0,     0,   120,     0,     0,
+     0,   121,     0,     0,     0,   122,   123,     0,   483,   149,
+   150,     0,   151,   152,     0,     0,     0,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,   168,   169,   170,   171,     0,   102,     5,     6,
+     7,     8,   103,   104,   172,   105,     9,    10,    11,     5,
+     6,     7,     8,     0,     0,     0,     0,     9,    10,    11,
+     0,     0,    13,   106,    14,    15,     0,   107,   108,     0,
+     0,     0,     0,    13,   109,    14,     0,   110,   174,    16,
+     0,     0,   111,   112,   113,     0,     0,   305,   114,   115,
+    16,     0,     0,   116,   117,     0,     0,     0,   118,     0,
+   119,    22,     0,     0,     0,   120,    24,     0,     0,   121,
+     0,     0,    22,   122,   123,   102,     5,    24,     7,   140,
+   103,   104,    84,   105,     9,    10,    11,   262,   263,   264,
+   265,   266,   267,   268,   269,   270,   271,   272,     0,     0,
+    13,   106,     0,    15,     0,   107,   108,     0,     0,     0,
+     0,     0,   109,     0,     0,   110,     0,    16,     0,     0,
+   111,   112,   113,     0,     0,     0,   114,   115,     0,   102,
+     0,   116,   117,     0,   103,   104,   118,   105,   119,    22,
+     0,     0,     0,   120,    24,     0,     0,   121,     0,     0,
+     0,   122,   123,     0,     0,   106,     0,    15,     0,   107,
+   108,     0,     0,     0,     0,     0,   109,     0,     0,   110,
+     0,     0,     0,     0,   111,   112,   113,     0,     0,     0,
+   114,   115,     0,   102,     0,   116,   117,     0,   103,   104,
+   118,   105,   119,   370,     0,     0,     0,   120,     0,     0,
+     0,   121,     0,     0,     0,   122,   123,     0,     0,   106,
+     0,    15,     0,   107,   108,     0,     0,     0,     0,     0,
+   109,     0,     0,   110,     0,     0,     0,     0,   111,   112,
+   113,     0,     0,     0,   114,   115,     0,   102,     0,   116,
+   117,     0,   103,   104,   118,   105,   119,     0,     0,     0,
+     0,   120,     0,     0,     0,   121,     0,   824,     0,   122,
+   123,     0,     0,   106,     0,    15,     0,   107,   108,     0,
+     0,     0,     0,     0,   109,     0,     0,   110,     0,     0,
+     0,     0,   111,   112,   113,     0,     0,     0,   114,   115,
+     0,   102,     0,   116,   117,     0,   103,   104,   118,   105,
+   119,     0,     0,     0,     0,   120,     0,     0,     0,   121,
+     0,     0,     0,   122,   123,     0,     0,   106,     0,    15,
+     0,   107,   108,     0,     0,     0,     0,     0,   109,     0,
+     0,   110,     0,     0,     0,     0,   111,   112,   113,     0,
+     0,     0,   114,   115,     0,   102,     0,   252,   117,     0,
+   103,   104,   118,   105,   119,     0,     0,     0,     0,   120,
+     0,     0,     0,   121,     0,     0,     0,   122,   123,     0,
+     0,   106,     0,    15,     0,   107,   108,     0,     0,     0,
+     0,     0,   109,     0,     0,   110,     0,     0,     0,     0,
+   111,   112,   113,     0,     0,     0,   114,   115,     0,   509,
+     0,   254,   117,     0,   103,   104,   118,   105,   119,     0,
+     0,     0,     0,   120,     0,     0,     0,   121,     0,     0,
+     0,   122,   123,     0,     0,   106,     0,    15,     0,   107,
+   108,     0,     0,     0,     0,     0,   109,     0,     0,   110,
+     0,     0,     0,     0,   111,   112,   113,     0,     0,     0,
+   114,   115,     0,     0,     0,   116,   117,     0,     0,     0,
+   118,     0,   119,     0,     0,     0,     0,   120,     0,     0,
+     0,   121,     0,     0,   544,   122,   123,     5,     0,     7,
+   140,     0,     0,     0,     0,     9,    10,    11,     0,     0,
+     0,     0,   544,     0,     0,     5,     0,     7,   140,     0,
+     0,    13,     0,     9,    10,    11,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    16,    13,
+     0,     0,     0,     0,     0,     0,     4,     0,  -128,     5,
+     6,     7,     8,     0,     0,     0,    16,     9,    10,    11,
+    22,  -439,  -439,  -439,     0,    24,     0,     0,     0,     0,
+   545,  -439,    12,    13,     0,    14,    15,     0,    22,  -438,
+  -438,  -438,     0,    24,     0,     0,     0,     0,   545,  -438,
+    16,     0,     0,    17,    18,  -128,     0,     0,     0,     0,
+     0,     0,     0,     0,  -128,     0,    19,    20,    21,     0,
+     0,     0,    22,     0,     0,     0,    23,    24,    25,    26,
+     0,     4,    27,  -128,     5,     6,     7,     8,     0,     0,
+     0,     0,     9,    10,    11,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    13,     4,
+    14,  -128,     5,     6,     7,     8,     0,     0,     0,     0,
+     9,    10,    11,     0,     0,    16,     0,     0,   530,   531,
+  -128,     0,     0,     0,     0,     0,    13,     0,    14,  -128,
+     0,     0,     0,     0,     0,     0,     0,    22,     0,     0,
+     0,     0,    24,    16,     0,     0,     0,    27,  -128,   440,
+     0,   441,     5,     6,     7,     8,     0,  -128,   442,     0,
+     9,    10,    11,     0,     0,    22,     0,     0,   440,     0,
+    24,     5,     6,     7,     8,    27,    13,   442,    14,     9,
+    10,    11,     5,     6,     7,     8,     0,     0,     0,     0,
+     9,    10,    11,    16,     0,    13,     0,    14,     0,     0,
+     0,     5,     6,     7,     8,     0,    13,     0,    14,     9,
+    10,    11,    16,     0,     0,    22,     0,     0,     0,     0,
+    24,     0,     0,    16,  -384,    13,     0,    14,     0,     0,
+     0,     0,     0,     0,    22,   228,     0,     0,     5,    24,
+     7,   140,    16,  -384,     0,    22,     9,    10,    11,     0,
+    24,     0,     0,     0,     0,   597,     0,     0,     0,     0,
+     0,     0,    13,     0,    22,    15,     0,     0,     0,    24,
+     0,     0,   149,   150,   834,   151,   152,     0,     0,    16,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
+   163,   164,   165,   166,   167,   168,   169,   170,   171,     0,
+     0,    22,     0,    14,     0,     0,    24,   172,   256,   257,
+   258,     0,   259,   260,   261,   262,   263,   264,   265,   266,
+   267,   268,   269,   270,   271,   272,     0,     0,   173,     0,
+     0,     0,     0,     0,   149,   150,     0,   151,   152,     0,
+     0,   174,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
+   171,     0,   149,   150,     0,   151,   152,     0,     0,   373,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
+   163,   164,   165,   166,   167,   168,   169,   170,   171,     0,
+     0,     0,     0,     0,     0,     0,     0,   172,   149,   150,
+     0,   151,   152,   174,     0,     0,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
+   167,   168,   169,   170,   171,     0,     0,     5,     0,     7,
+   290,   174,     0,   582,     0,     9,    10,    11,     5,     6,
+     7,     8,     0,     0,   442,     0,     9,    10,    11,     0,
+     0,    13,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,    13,     0,    14,     0,     0,   174,    16,     0,
+     0,     0,     0,   283,     0,     0,     0,     0,     0,    16,
+     0,     0,   284,   285,     0,     0,     0,     0,     0,     0,
+    22,     0,     0,     0,     0,    24,     0,     0,     0,     0,
+     0,    22,     5,     6,     7,     8,    24,     0,   630,     0,
+     9,    10,    11,     5,     6,     7,     8,     0,     0,     0,
+     0,     9,    10,    11,     0,     0,    13,     0,    14,     0,
+     0,     0,     5,     6,     7,     8,     0,    13,     0,    14,
+     9,    10,    11,    16,     0,     0,     0,     0,     0,     0,
+     5,     0,     7,   140,    16,     0,    13,     0,     9,    10,
+    11,     0,     0,     0,     0,    22,     0,     0,     0,     5,
+    24,     7,   290,    16,    13,     0,    22,     9,    10,    11,
+     0,    24,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,    16,     0,    13,     0,    22,     0,     0,     0,     0,
+    24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    16,     0,     0,    22,   854,     0,     0,     0,    24,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,    22,     0,     0,     0,     0,    24,     0,   256,
+   257,   258,   855,   259,   260,   261,   262,   263,   264,   265,
+   266,   267,   268,   269,   270,   271,   272,   256,   257,   258,
+   893,   259,   260,   261,   262,   263,   264,   265,   266,   267,
+   268,   269,   270,   271,   272,   256,   257,   258,     0,   259,
+   260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
+   270,   271,   272
+};
+
+static const short yycheck[] = {     9,
+    10,    11,   209,    24,     2,     3,    16,    60,    61,    19,
+    20,   318,   208,    23,    83,    25,    26,     2,     3,     2,
+     3,    33,     2,     3,    91,    22,    85,    24,    66,    36,
+   326,   177,    98,    31,   203,    33,   345,   243,   288,   347,
+   476,    39,   351,    33,    31,   277,    67,    98,    32,    33,
+    71,   284,   142,   552,    39,   145,    39,   177,   410,    39,
+   635,   107,   108,   333,    74,   433,   194,   113,   204,    58,
+    67,    61,   735,    80,    71,   817,     1,   200,   124,    77,
+     1,    88,   431,     1,    94,    83,     9,    85,    38,   135,
+    77,     1,    10,    91,    45,    38,    27,    38,    85,   109,
+   246,     3,     4,   116,     3,    38,   714,     3,    98,    59,
+    30,     7,     3,     4,   283,    98,     7,   324,    38,     5,
+     1,     7,     3,     4,   732,   867,   116,     0,    59,    60,
+    81,     0,    82,    76,    30,    76,   146,   800,   148,    30,
+    39,     3,     4,    76,    59,   887,   199,   214,   890,    59,
+   892,   891,   422,    76,    50,   145,    77,    82,   900,    50,
+   173,    59,   172,    59,    82,    67,   416,   233,    59,    59,
+    72,     3,   182,   183,   407,   185,   186,    59,    60,   919,
+   843,    72,   233,   173,    77,    78,    67,   419,    38,   538,
+   932,    72,   245,   191,    76,    45,   194,   195,    30,   698,
+   699,   208,    45,   339,   191,    67,   204,   343,   195,    59,
+    72,   334,   219,    77,   342,   225,   214,   204,    50,   526,
+    82,   288,   345,   659,    38,   278,    30,    59,   351,   520,
+   376,    45,   285,   524,   247,   358,    82,   360,   248,   252,
+     3,   254,   232,   233,   612,   234,   230,   236,   232,   519,
+   233,    68,    69,    70,   603,     3,     4,   247,   833,     3,
+     4,    78,   252,    38,   254,   275,   276,    30,     3,     4,
+    45,     3,     4,     5,     6,     7,   567,   629,    65,   570,
+     3,     4,     3,     4,     7,    77,    30,    50,   301,    81,
+   311,    82,   728,    82,    38,   348,    59,    60,   605,   309,
+    76,    59,    60,    59,    60,    81,    50,    30,   578,    30,
+    59,   301,   811,    59,   311,    59,    50,    38,    76,    67,
+    76,     3,     4,   369,    72,    59,    60,    50,    72,    50,
+   328,   338,    67,   386,    82,    67,    59,    72,    59,   485,
+    72,   339,     7,   353,   342,   343,    59,    82,    30,   416,
+   582,    72,   339,   559,    78,     4,   343,     6,     7,   591,
+    78,   414,    77,    12,    13,    14,    81,   513,    50,    30,
+    59,   437,    59,    76,     3,     4,    30,    59,    81,    28,
+    76,   688,    48,    49,   654,    50,   437,   657,   621,   639,
+    72,    81,   700,   513,    59,    60,    45,    63,    59,    60,
+     3,     4,   838,    77,     9,    59,    60,    81,   418,   430,
+     3,     4,   410,   426,    76,    68,    69,    70,    67,    81,
+    75,    50,   227,    72,   422,    78,   622,   425,    77,    78,
+   235,    76,   444,   430,    76,   433,   426,   422,    67,   585,
+    77,   673,   422,    72,    81,   457,   444,   437,   433,   433,
+   573,   620,    38,   433,   444,   578,    59,   626,    82,   443,
+   444,   711,   552,   553,    67,   698,    59,   457,    27,    72,
+   251,    30,   705,    77,    67,   256,   257,    36,    59,    72,
+   261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
+   271,   272,    59,    60,    54,    55,   803,    57,    58,    59,
+    60,   511,    76,   515,    76,   574,    77,    81,    36,    81,
+    81,    77,     3,     4,    67,    81,    76,   515,    77,    81,
+   518,    77,    81,   535,   730,   515,    68,    69,    70,    76,
+   514,    76,   655,   518,   657,   533,    78,   535,   518,    30,
+    77,   346,    59,    60,    81,   535,   533,   616,   617,   615,
+   534,   535,   611,    82,   552,   553,    76,   547,   556,    50,
+   766,    77,   546,   547,   615,   552,   553,   577,    59,   607,
+   608,   352,   639,   882,   564,   884,   574,    77,   637,   563,
+   564,    81,    68,    69,    70,   754,    50,    51,    52,     3,
+     4,   601,    78,     7,    38,     3,     4,    77,   596,    77,
+    77,    81,     3,    81,    81,    59,     7,   388,   389,   596,
+    77,    78,   610,   611,   612,   622,    30,    76,   616,   617,
+    59,    60,    30,   621,   611,   615,    77,   612,   612,    30,
+   926,   629,   612,    10,   621,    76,    50,   635,   934,   637,
+    77,    78,    50,    63,   711,    59,    60,    82,   701,    50,
+   637,    59,    60,    76,   664,   862,    59,    60,    59,    60,
+   128,   129,   868,     5,     6,     7,   471,    27,     9,    36,
+    12,    13,    14,   478,   479,    54,    55,   730,    57,    58,
+    59,    60,     1,   752,    83,     4,     5,     6,     7,    27,
+    77,    10,    30,    12,    13,    14,    78,    78,    36,    38,
+   698,   699,    76,   909,   910,    78,    78,   705,    76,    28,
+   720,   698,   699,   766,   495,    76,    38,    76,   705,    76,
+   730,    59,    60,    76,   777,    76,    45,    76,     4,     5,
+     6,     7,   730,     5,     6,     7,    12,    13,    14,    77,
+    12,    13,    14,    81,    76,   730,   744,   730,    67,    83,
+   730,   797,    28,    72,   752,    83,   766,   744,    30,   882,
+   781,   884,   815,    82,   833,   818,   819,   572,   778,    45,
+    76,     6,     7,   826,    82,   787,   835,    12,    13,    14,
+    63,    63,    76,   780,   781,   566,    76,    36,   841,   787,
+    83,    67,    78,    81,    32,   848,    72,   787,    38,   797,
+   581,    77,   786,   787,    83,    76,   859,    48,    49,    50,
+    51,    52,   797,   811,   797,   868,    77,   797,   623,   624,
+   625,    81,   627,   628,   811,    43,    44,    45,    46,    47,
+    48,    49,    50,    51,    52,   833,     3,   835,   891,     1,
+    76,     3,    38,    77,    77,   650,     8,     9,   835,    11,
+     1,    83,    63,     4,     5,     6,     7,    78,   868,    78,
+   913,    12,    13,    14,   645,    38,   919,    29,   649,    31,
+    38,    33,    34,    78,   679,   680,   681,    28,    40,    30,
+    81,    43,    63,    38,    81,    78,    48,    49,    50,    36,
+    38,    63,    54,    55,    45,    83,   677,    59,    60,    78,
+    59,    59,    64,    59,    66,    38,    77,    77,     7,    71,
+    38,   716,   693,    75,    77,    16,    67,    79,    80,    59,
+    82,    72,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,    82,     1,   714,     3,     4,   717,     6,     7,     8,
+     9,    77,    11,    12,    13,    14,    78,    77,    77,    59,
+    63,   732,    76,    17,   735,     9,    77,    76,   763,    28,
+    29,    77,    31,    77,    33,    34,    77,    76,    76,    59,
+   751,    40,    77,    77,    43,    81,    45,    77,    76,    48,
+    49,    50,    76,     0,    77,    54,    55,     0,   419,   818,
+    59,    60,   773,   291,   334,    64,   655,    66,    67,   797,
+    87,   418,    71,    72,   638,   645,    75,   355,   233,   573,
+    79,    80,   225,    82,   360,   868,   353,   655,   579,   800,
+   868,     1,   657,     3,     4,     5,     6,     7,     8,     9,
+   914,    11,    12,    13,    14,    15,   916,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+    30,    31,   556,    33,    34,   413,   425,    25,   543,   425,
+    40,   752,   843,    43,   749,    45,   617,   536,    48,    49,
+    50,   310,   518,   854,    54,    55,   744,   513,   421,    59,
+    60,   673,   585,    -1,    64,   421,    66,    67,    -1,   376,
+    -1,    71,    72,    -1,    -1,    75,    -1,    77,    78,    79,
+    80,     1,    82,     3,     4,     5,     6,     7,     8,     9,
+    -1,    11,    12,    13,    14,    15,    -1,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+    30,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    45,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
+    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
+    -1,    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,
+    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,
+    -1,    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
+    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
+    -1,    71,    72,    -1,    -1,    75,    -1,    77,    78,    79,
+    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,
+    -1,    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
+    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
+    -1,    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,
+    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,
+    -1,    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
+    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
+    -1,    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,
+    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,
+    37,    11,    39,    40,    41,    42,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    -1,    -1,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,
+    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
+    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    78,    79,
+    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,
+    -1,    11,    40,    41,    42,    43,    44,    45,    46,    47,
+    48,    49,    50,    51,    52,    -1,    -1,    -1,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,
+    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
+    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    78,    79,
+    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,
+    -1,    11,     1,    -1,    -1,     4,    -1,     6,     7,    -1,
+    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    28,
+    40,    -1,    31,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    45,    -1,    58,    59,
+    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
+    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    67,    79,
+    80,     1,    82,    72,     4,     5,     6,     7,    77,    78,
+    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,
+     1,    -1,    -1,     4,     5,     6,     7,    27,    28,    -1,
+    30,    12,    13,    14,    -1,    -1,    36,    45,    46,    47,
+    48,    49,    50,    51,    52,    45,    27,    28,    -1,    30,
+    -1,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    59,
+    60,    -1,    -1,    -1,    45,    -1,    -1,    67,    -1,    -1,
+    -1,    -1,    72,    -1,    -1,    -1,    -1,    77,    59,    60,
+    -1,    81,    82,    -1,    -1,    -1,    67,    -1,    -1,    -1,
+    -1,    72,    -1,    -1,    -1,    -1,    77,    -1,    -1,     1,
+    81,    82,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
+    12,    13,    14,    -1,    -1,    -1,    -1,    -1,     1,    -1,
+    -1,     4,     5,     6,     7,    27,    28,    -1,    30,    12,
+    13,    14,    -1,    -1,    36,    46,    47,    48,    49,    50,
+    51,    52,    -1,    45,    -1,    28,     1,    30,    -1,     4,
+     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
+    -1,    -1,    45,    -1,    -1,    67,    -1,    -1,    -1,    -1,
+    72,    -1,    -1,    28,    -1,    77,    -1,    -1,    -1,    81,
+    82,    -1,    -1,    -1,    67,    -1,    -1,    -1,     3,    72,
+    45,    -1,    -1,     8,     9,    -1,    11,    -1,    -1,    82,
+    41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+    51,    52,    67,    -1,    29,    -1,    31,    72,    33,    34,
+    -1,    -1,    -1,    -1,    -1,    40,    -1,    82,    43,    -1,
+    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
+    55,    -1,    -1,    -1,    59,    60,    -1,     3,    -1,    64,
+    -1,    66,     8,     9,    -1,    11,    71,    -1,    -1,    -1,
+    75,    -1,    -1,    -1,    79,    80,    -1,    -1,    83,    -1,
+    -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
+    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,
+    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
+    -1,    -1,    -1,    59,    60,    -1,     3,    -1,    64,    -1,
+    66,     8,     9,    -1,    11,    71,    -1,    -1,    -1,    75,
+    -1,    -1,    -1,    79,    80,    -1,    -1,    83,    -1,    -1,
+    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
+    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
+    -1,    -1,    59,    60,    -1,     3,    -1,    64,    -1,    66,
+     8,     9,    -1,    11,    71,    -1,    -1,    -1,    75,    -1,
+    -1,    -1,    79,    80,    -1,    -1,    83,    -1,    -1,    -1,
+    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
+    -1,    59,    60,    -1,     3,    -1,    64,    -1,    66,     8,
+     9,    -1,    11,    71,    -1,    -1,    -1,    75,    -1,    -1,
+    -1,    79,    80,    -1,    -1,    83,    -1,    -1,    -1,    -1,
+    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
+    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
+    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
+    59,    60,    -1,    -1,    -1,    64,    -1,    66,    -1,    -1,
+    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,
+    79,    80,    -1,    -1,    83,     3,     4,     5,     6,     7,
+     8,     9,    -1,    11,    12,    13,    14,    15,    -1,    17,
+    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+    28,    29,    30,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    -1,    40,    -1,    -1,    43,    -1,    45,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
+    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,    67,
+    -1,    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    77,
+    -1,    79,    80,    -1,    82,     3,     4,    -1,    -1,    -1,
+     8,     9,    -1,    11,    -1,    -1,    -1,    15,    -1,    17,
+    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,     3,
+    -1,    59,    60,    -1,     8,     9,    64,    11,    66,    67,
+    -1,    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    77,
+    -1,    79,    80,    -1,    82,    29,    -1,    31,    -1,    33,
+    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
+    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
+    64,    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,
+    -1,    75,    -1,    -1,    -1,    79,    80,    -1,    82,     3,
+     4,    -1,     6,     7,    -1,    -1,    -1,    11,    12,    13,
+    14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,    28,    29,    -1,     3,     4,     5,
+     6,     7,     8,     9,    38,    11,    12,    13,    14,     4,
+     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
+    -1,    -1,    28,    29,    30,    31,    -1,    33,    34,    -1,
+    -1,    -1,    -1,    28,    40,    30,    -1,    43,    72,    45,
+    -1,    -1,    48,    49,    50,    -1,    -1,    81,    54,    55,
+    45,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,
+    66,    67,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,
+    -1,    -1,    67,    79,    80,     3,     4,    72,     6,     7,
+     8,     9,    77,    11,    12,    13,    14,    42,    43,    44,
+    45,    46,    47,    48,    49,    50,    51,    52,    -1,    -1,
+    28,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    -1,    40,    -1,    -1,    43,    -1,    45,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,     3,
+    -1,    59,    60,    -1,     8,     9,    64,    11,    66,    67,
+    -1,    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    -1,
+    -1,    79,    80,    -1,    -1,    29,    -1,    31,    -1,    33,
+    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
+    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,    -1,     3,    -1,    59,    60,    -1,     8,     9,
+    64,    11,    66,    67,    -1,    -1,    -1,    71,    -1,    -1,
+    -1,    75,    -1,    -1,    -1,    79,    80,    -1,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,     3,    -1,    59,
+    60,    -1,     8,     9,    64,    11,    66,    -1,    -1,    -1,
+    -1,    71,    -1,    -1,    -1,    75,    -1,    77,    -1,    79,
+    80,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
+    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,
+    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
+    -1,     3,    -1,    59,    60,    -1,     8,     9,    64,    11,
+    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,
+    -1,    -1,    -1,    79,    80,    -1,    -1,    29,    -1,    31,
+    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
+    -1,    -1,    54,    55,    -1,     3,    -1,    59,    60,    -1,
+     8,     9,    64,    11,    66,    -1,    -1,    -1,    -1,    71,
+    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,    -1,
+    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,     3,
+    -1,    59,    60,    -1,     8,     9,    64,    11,    66,    -1,
+    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,
+    -1,    79,    80,    -1,    -1,    29,    -1,    31,    -1,    33,
+    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
+    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
+    64,    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,
+    -1,    75,    -1,    -1,     1,    79,    80,     4,    -1,     6,
+     7,    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,
+    -1,    -1,     1,    -1,    -1,     4,    -1,     6,     7,    -1,
+    -1,    28,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,    28,
+    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
+     5,     6,     7,    -1,    -1,    -1,    45,    12,    13,    14,
+    67,    68,    69,    70,    -1,    72,    -1,    -1,    -1,    -1,
+    77,    78,    27,    28,    -1,    30,    31,    -1,    67,    68,
+    69,    70,    -1,    72,    -1,    -1,    -1,    -1,    77,    78,
+    45,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    59,    -1,    61,    62,    63,    -1,
+    -1,    -1,    67,    -1,    -1,    -1,    71,    72,    73,    74,
+    -1,     1,    77,     3,     4,     5,     6,     7,    -1,    -1,
+    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,     1,
+    30,     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
+    12,    13,    14,    -1,    -1,    45,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,    59,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
+    -1,    -1,    72,    45,    -1,    -1,    -1,    77,    50,     1,
+    -1,     3,     4,     5,     6,     7,    -1,    59,    10,    -1,
+    12,    13,    14,    -1,    -1,    67,    -1,    -1,     1,    -1,
+    72,     4,     5,     6,     7,    77,    28,    10,    30,    12,
+    13,    14,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
+    12,    13,    14,    45,    -1,    28,    -1,    30,    -1,    -1,
+    -1,     4,     5,     6,     7,    -1,    28,    -1,    30,    12,
+    13,    14,    45,    -1,    -1,    67,    -1,    -1,    -1,    -1,
+    72,    -1,    -1,    45,    76,    28,    -1,    30,    -1,    -1,
+    -1,    -1,    -1,    -1,    67,     1,    -1,    -1,     4,    72,
+     6,     7,    45,    76,    -1,    67,    12,    13,    14,    -1,
+    72,    -1,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,
+    -1,    -1,    28,    -1,    67,    31,    -1,    -1,    -1,    72,
+    -1,    -1,     3,     4,    77,     6,     7,    -1,    -1,    45,
+    11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
+    21,    22,    23,    24,    25,    26,    27,    28,    29,    -1,
+    -1,    67,    -1,    30,    -1,    -1,    72,    38,    35,    36,
+    37,    -1,    39,    40,    41,    42,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    -1,    -1,    59,    -1,
+    -1,    -1,    -1,    -1,     3,     4,    -1,     6,     7,    -1,
+    -1,    72,    11,    12,    13,    14,    15,    16,    17,    18,
+    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+    29,    -1,     3,     4,    -1,     6,     7,    -1,    -1,    38,
+    11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
+    21,    22,    23,    24,    25,    26,    27,    28,    29,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,     3,     4,
+    -1,     6,     7,    72,    -1,    -1,    11,    12,    13,    14,
+    15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,    28,    29,    -1,    -1,     4,    -1,     6,
+     7,    72,    -1,    38,    -1,    12,    13,    14,     4,     5,
+     6,     7,    -1,    -1,    10,    -1,    12,    13,    14,    -1,
+    -1,    28,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    28,    -1,    30,    -1,    -1,    72,    45,    -1,
+    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    45,
+    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,    -1,    -1,
+    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,
+    -1,    67,     4,     5,     6,     7,    72,    -1,    10,    -1,
+    12,    13,    14,     4,     5,     6,     7,    -1,    -1,    -1,
+    -1,    12,    13,    14,    -1,    -1,    28,    -1,    30,    -1,
+    -1,    -1,     4,     5,     6,     7,    -1,    28,    -1,    30,
+    12,    13,    14,    45,    -1,    -1,    -1,    -1,    -1,    -1,
+     4,    -1,     6,     7,    45,    -1,    28,    -1,    12,    13,
+    14,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,     4,
+    72,     6,     7,    45,    28,    -1,    67,    12,    13,    14,
+    -1,    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    45,    -1,    28,    -1,    67,    -1,    -1,    -1,    -1,
+    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    45,    -1,    -1,    67,    10,    -1,    -1,    -1,    72,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    35,
+    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+    46,    47,    48,    49,    50,    51,    52,    35,    36,    37,
+    38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+    48,    49,    50,    51,    52,    35,    36,    37,    -1,    39,
+    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+    50,    51,    52
+};
+/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
+#line 3 "/usr/local/share/bison.simple"
+
+/* Skeleton output parser for bison,
+   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+#ifndef alloca
+#ifdef __GNUC__
+#define alloca __builtin_alloca
+#else /* not GNU C.  */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
+#include <alloca.h>
+#else /* not sparc */
+#if defined (MSDOS) && !defined (__TURBOC__)
+#include <malloc.h>
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+#include <malloc.h>
+ #pragma alloca
+#else /* not MSDOS, __TURBOC__, or _AIX */
+#ifdef __hpux
+#ifdef __cplusplus
+extern "C" {
+void *alloca (unsigned int);
+};
+#else /* not __cplusplus */
+void *alloca ();
+#endif /* not __cplusplus */
+#endif /* __hpux */
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc.  */
+#endif /* not GNU C.  */
+#endif /* alloca not defined.  */
+
+/* This is the parser code that is written into each bison parser
+  when the %semantic_parser declaration is not specified in the grammar.
+  It was written by Richard Stallman by simplifying the hairy parser
+  used when %semantic_parser is specified.  */
+
+/* Note: there must be only one dollar sign in this file.
+   It is replaced by the list of actions, each action
+   as one case of the switch.  */
+
+#define yyerrok		(yyerrstatus = 0)
+#define yyclearin	(yychar = YYEMPTY)
+#define YYEMPTY		-2
+#define YYEOF		0
+#define YYACCEPT	return(0)
+#define YYABORT 	return(1)
+#define YYERROR		goto yyerrlab1
+/* Like YYERROR except do call yyerror.
+   This remains here temporarily to ease the
+   transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  */
+#define YYFAIL		goto yyerrlab
+#define YYRECOVERING()  (!!yyerrstatus)
+#define YYBACKUP(token, value) \
+do								\
+  if (yychar == YYEMPTY && yylen == 1)				\
+    { yychar = (token), yylval = (value);			\
+      yychar1 = YYTRANSLATE (yychar);				\
+      YYPOPSTACK;						\
+      goto yybackup;						\
+    }								\
+  else								\
+    { yyerror ("syntax error: cannot back up"); YYERROR; }	\
+while (0)
+
+#define YYTERROR	1
+#define YYERRCODE	256
+
+#ifndef YYPURE
+#define YYLEX		yylex()
+#endif
+
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
+#ifdef YYLEX_PARAM
+#define YYLEX		yylex(&yylval, &yylloc, YYLEX_PARAM)
+#else
+#define YYLEX		yylex(&yylval, &yylloc)
+#endif
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX		yylex(&yylval, YYLEX_PARAM)
+#else
+#define YYLEX		yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
+#endif
+
+/* If nonreentrant, generate the variables here */
+
+#ifndef YYPURE
+
+int	yychar;			/*  the lookahead symbol		*/
+YYSTYPE	yylval;			/*  the semantic value of the		*/
+				/*  lookahead symbol			*/
+
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc;			/*  location data for the lookahead	*/
+				/*  symbol				*/
+#endif
+
+int yynerrs;			/*  number of parse errors so far       */
+#endif  /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug;			/*  nonzero means print parse trace	*/
+/* Since this is uninitialized, it does not stop multiple parsers
+   from coexisting.  */
+#endif
+
+/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/
+
+#ifndef	YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
+
+/*  YYMAXDEPTH is the maximum size the stacks can grow to
+    (effective only if the built-in stack extension method is used).  */
+
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+
+/* Prevent warning if -Wstrict-prototypes.  */
+#ifdef __GNUC__
+int yyparse (void);
+#endif
+
+#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
+#define __yy_memcpy(FROM,TO,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
+#else				/* not GNU C or C++ */
+#ifndef __cplusplus
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (from, to, count)
+     char *from;
+     char *to;
+     int count;
+{
+  register char *f = from;
+  register char *t = to;
+  register int i = count;
+
+  while (i-- > 0)
+    *t++ = *f++;
+}
+
+#else /* __cplusplus */
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (char *from, char *to, int count)
+{
+  register char *f = from;
+  register char *t = to;
+  register int i = count;
+
+  while (i-- > 0)
+    *t++ = *f++;
+}
+
+#endif
+#endif
+
+#line 192 "/usr/local/share/bison.simple"
+
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+   into yyparse.  The argument should have type void *.
+   It should actually point to an object.
+   Grammar actions can access the variable by casting it
+   to the proper pointer type.  */
+
+#ifdef YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#else
+#define YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#endif
+
+int
+yyparse(YYPARSE_PARAM)
+     YYPARSE_PARAM_DECL
+{
+  register int yystate;
+  register int yyn;
+  register short *yyssp;
+  register YYSTYPE *yyvsp;
+  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
+  int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */
+
+  short	yyssa[YYINITDEPTH];	/*  the state stack			*/
+  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/
+
+  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */
+  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */
+
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/
+  YYLTYPE *yyls = yylsa;
+  YYLTYPE *yylsp;
+
+#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
+#else
+#define YYPOPSTACK   (yyvsp--, yyssp--)
+#endif
+
+  int yystacksize = YYINITDEPTH;
+
+#ifdef YYPURE
+  int yychar;
+  YYSTYPE yylval;
+  int yynerrs;
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylloc;
+#endif
+#endif
+
+  YYSTYPE yyval;		/*  the variable used to return		*/
+				/*  semantic values from the action	*/
+				/*  routines				*/
+
+  int yylen;
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Starting parse\n");
+#endif
+
+  yystate = 0;
+  yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY;		/* Cause a token to be read.  */
+
+  /* Initialize stack pointers.
+     Waste one element of value and location stack
+     so that they stay on the same level as the state stack.
+     The wasted elements are never initialized.  */
+
+  yyssp = yyss - 1;
+  yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+  yylsp = yyls;
+#endif
+
+/* Push a new state, which is found in  yystate  .  */
+/* In all cases, when you get here, the value and location stacks
+   have just been pushed. so pushing a state here evens the stacks.  */
+yynewstate:
+
+  *++yyssp = yystate;
+
+  if (yyssp >= yyss + yystacksize - 1)
+    {
+      /* Give user a chance to reallocate the stack */
+      /* Use copies of these so that the &'s don't force the real ones into memory. */
+      YYSTYPE *yyvs1 = yyvs;
+      short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+      YYLTYPE *yyls1 = yyls;
+#endif
+
+      /* Get the current used size of the three stacks, in elements.  */
+      int size = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+      /* Each stack pointer address is followed by the size of
+	 the data in use in that stack, in bytes.  */
+#ifdef YYLSP_NEEDED
+      /* This used to be a conditional around just the two extra args,
+	 but that might be undefined if yyoverflow is a macro.  */
+      yyoverflow("parser stack overflow",
+		 &yyss1, size * sizeof (*yyssp),
+		 &yyvs1, size * sizeof (*yyvsp),
+		 &yyls1, size * sizeof (*yylsp),
+		 &yystacksize);
+#else
+      yyoverflow("parser stack overflow",
+		 &yyss1, size * sizeof (*yyssp),
+		 &yyvs1, size * sizeof (*yyvsp),
+		 &yystacksize);
+#endif
+
+      yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+      yyls = yyls1;
+#endif
+#else /* no yyoverflow */
+      /* Extend the stack our own way.  */
+      if (yystacksize >= YYMAXDEPTH)
+	{
+	  yyerror("parser stack overflow");
+	  return 2;
+	}
+      yystacksize *= 2;
+      if (yystacksize > YYMAXDEPTH)
+	yystacksize = YYMAXDEPTH;
+      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
+      __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
+      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
+      __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
+      __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
+#endif
+#endif /* no yyoverflow */
+
+      yyssp = yyss + size - 1;
+      yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+      yylsp = yyls + size - 1;
+#endif
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
+
+      if (yyssp >= yyss + yystacksize - 1)
+	YYABORT;
+    }
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Entering state %d\n", yystate);
+#endif
+
+  goto yybackup;
+ yybackup:
+
+/* Do appropriate processing given the current state.  */
+/* Read a lookahead token if we need one and don't already have one.  */
+/* yyresume: */
+
+  /* First try to decide what to do without reference to lookahead token.  */
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yydefault;
+
+  /* Not known => get a lookahead token if don't already have one.  */
+
+  /* yychar is either YYEMPTY or YYEOF
+     or a valid token in external form.  */
+
+  if (yychar == YYEMPTY)
+    {
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Reading a token: ");
+#endif
+      yychar = YYLEX;
+    }
+
+  /* Convert token to internal form (in yychar1) for indexing tables with */
+
+  if (yychar <= 0)		/* This means end of input. */
+    {
+      yychar1 = 0;
+      yychar = YYEOF;		/* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Now at end of input.\n");
+#endif
+    }
+  else
+    {
+      yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+      if (yydebug)
+	{
+	  fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+	  /* Give the individual parser a way to print the precise meaning
+	     of a token, for further debugging info.  */
+#ifdef YYPRINT
+	  YYPRINT (stderr, yychar, yylval);
+#endif
+	  fprintf (stderr, ")\n");
+	}
+#endif
+    }
+
+  yyn += yychar1;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+    goto yydefault;
+
+  yyn = yytable[yyn];
+
+  /* yyn is what to do for this token type in this state.
+     Negative => reduce, -yyn is rule number.
+     Positive => shift, yyn is new state.
+       New state is final state => don't bother to shift,
+       just return success.
+     0, or most negative number => error.  */
+
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+	goto yyerrlab;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+  else if (yyn == 0)
+    goto yyerrlab;
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  /* Shift the lookahead token.  */
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
+
+  /* Discard the token being shifted unless it is eof.  */
+  if (yychar != YYEOF)
+    yychar = YYEMPTY;
+
+  *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
+
+  /* count tokens shifted since error; after three, turn off error status.  */
+  if (yyerrstatus) yyerrstatus--;
+
+  yystate = yyn;
+  goto yynewstate;
+
+/* Do the default action for the current state.  */
+yydefault:
+
+  yyn = yydefact[yystate];
+  if (yyn == 0)
+    goto yyerrlab;
+
+/* Do a reduction.  yyn is the number of a rule to reduce with.  */
+yyreduce:
+  yylen = yyr2[yyn];
+  if (yylen > 0)
+    yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      int i;
+
+      fprintf (stderr, "Reducing via rule %d (line %d), ",
+	       yyn, yyrline[yyn]);
+
+      /* Print the symbols being reduced, and their result.  */
+      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+	fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+    }
+#endif
+
+
+  switch (yyn) {
+
+case 1:
+#line 237 "objc-parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C forbids an empty source file");
+		  finish_file ();
+		;
+    break;}
+case 2:
+#line 242 "objc-parse.y"
+{
+		  /* In case there were missing closebraces,
+		     get us back to the global binding level.  */
+		  while (! global_bindings_p ())
+		    poplevel (0, 0, 0);
+		  finish_file ();
+		;
+    break;}
+case 3:
+#line 256 "objc-parse.y"
+{yyval.ttype = NULL_TREE; ;
+    break;}
+case 5:
+#line 257 "objc-parse.y"
+{yyval.ttype = NULL_TREE; ;
+    break;}
+case 10:
+#line 265 "objc-parse.y"
+{ STRIP_NOPS (yyvsp[-2].ttype);
+		  if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
+		       && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
+		      || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
+		    assemble_asm (yyvsp[-2].ttype);
+		  else
+		    error ("argument of `asm' is not a constant string"); ;
+    break;}
+case 11:
+#line 273 "objc-parse.y"
+{ pedantic = yyvsp[-1].itype; ;
+    break;}
+case 12:
+#line 278 "objc-parse.y"
+{ if (pedantic)
+		    error ("ANSI C forbids data definition with no type or storage class");
+		  else if (!flag_traditional)
+		    warning ("data definition has no type or storage class"); 
+
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 13:
+#line 288 "objc-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 14:
+#line 293 "objc-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype);  ;
+    break;}
+case 15:
+#line 298 "objc-parse.y"
+{ pedwarn ("empty declaration"); ;
+    break;}
+case 16:
+#line 300 "objc-parse.y"
+{ shadow_tag (yyvsp[-1].ttype); ;
+    break;}
+case 19:
+#line 304 "objc-parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
+    break;}
+case 20:
+#line 310 "objc-parse.y"
+{ if (! start_function (current_declspecs, yyvsp[0].ttype,
+					prefix_attributes, NULL_TREE, 0))
+		    YYERROR1;
+		  reinit_parse_for_function (); ;
+    break;}
+case 21:
+#line 315 "objc-parse.y"
+{ store_parm_decls (); ;
+    break;}
+case 22:
+#line 317 "objc-parse.y"
+{ finish_function (0); 
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-5].itype); ;
+    break;}
+case 23:
+#line 323 "objc-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 24:
+#line 328 "objc-parse.y"
+{ if (! start_function (current_declspecs, yyvsp[0].ttype,
+					prefix_attributes, NULL_TREE, 0))
+		    YYERROR1;
+		  reinit_parse_for_function (); ;
+    break;}
+case 25:
+#line 333 "objc-parse.y"
+{ store_parm_decls (); ;
+    break;}
+case 26:
+#line 335 "objc-parse.y"
+{ finish_function (0); 
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-5].itype); ;
+    break;}
+case 27:
+#line 341 "objc-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 28:
+#line 346 "objc-parse.y"
+{ if (! start_function (NULL_TREE, yyvsp[0].ttype,
+					prefix_attributes, NULL_TREE, 0))
+		    YYERROR1;
+		  reinit_parse_for_function (); ;
+    break;}
+case 29:
+#line 351 "objc-parse.y"
+{ store_parm_decls (); ;
+    break;}
+case 30:
+#line 353 "objc-parse.y"
+{ finish_function (0); 
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-5].itype); ;
+    break;}
+case 31:
+#line 359 "objc-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 36:
+#line 373 "objc-parse.y"
+{ yyval.code = ADDR_EXPR; ;
+    break;}
+case 37:
+#line 375 "objc-parse.y"
+{ yyval.code = NEGATE_EXPR; ;
+    break;}
+case 38:
+#line 377 "objc-parse.y"
+{ yyval.code = CONVERT_EXPR; ;
+    break;}
+case 39:
+#line 379 "objc-parse.y"
+{ yyval.code = PREINCREMENT_EXPR; ;
+    break;}
+case 40:
+#line 381 "objc-parse.y"
+{ yyval.code = PREDECREMENT_EXPR; ;
+    break;}
+case 41:
+#line 383 "objc-parse.y"
+{ yyval.code = BIT_NOT_EXPR; ;
+    break;}
+case 42:
+#line 385 "objc-parse.y"
+{ yyval.code = TRUTH_NOT_EXPR; ;
+    break;}
+case 43:
+#line 389 "objc-parse.y"
+{ yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
+    break;}
+case 44:
+#line 394 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 46:
+#line 400 "objc-parse.y"
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 47:
+#line 402 "objc-parse.y"
+{ chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 49:
+#line 408 "objc-parse.y"
+{ yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
+    break;}
+case 50:
+#line 411 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+		  pedantic = yyvsp[-1].itype; ;
+    break;}
+case 51:
+#line 414 "objc-parse.y"
+{ yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
+		  overflow_warning (yyval.ttype); ;
+    break;}
+case 52:
+#line 418 "objc-parse.y"
+{ tree label = lookup_label (yyvsp[0].ttype);
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids `&&'");
+		  if (label == 0)
+		    yyval.ttype = null_pointer_node;
+		  else
+		    {
+		      TREE_USED (label) = 1;
+		      yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
+		      TREE_CONSTANT (yyval.ttype) = 1;
+		    }
+		;
+    break;}
+case 53:
+#line 446 "objc-parse.y"
+{ skip_evaluation--;
+		  if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
+		      && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
+		    error ("`sizeof' applied to a bit-field");
+		  yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
+    break;}
+case 54:
+#line 452 "objc-parse.y"
+{ skip_evaluation--;
+		  yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
+    break;}
+case 55:
+#line 455 "objc-parse.y"
+{ skip_evaluation--;
+		  yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
+    break;}
+case 56:
+#line 458 "objc-parse.y"
+{ skip_evaluation--;
+		  yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
+    break;}
+case 57:
+#line 461 "objc-parse.y"
+{ yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
+    break;}
+case 58:
+#line 463 "objc-parse.y"
+{ yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
+    break;}
+case 59:
+#line 467 "objc-parse.y"
+{ skip_evaluation++; ;
+    break;}
+case 60:
+#line 471 "objc-parse.y"
+{ skip_evaluation++; ;
+    break;}
+case 62:
+#line 477 "objc-parse.y"
+{ tree type = groktypename (yyvsp[-2].ttype);
+		  yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
+    break;}
+case 63:
+#line 480 "objc-parse.y"
+{ start_init (NULL_TREE, NULL, 0);
+		  yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
+		  really_start_incremental_init (yyvsp[-2].ttype); ;
+    break;}
+case 64:
+#line 484 "objc-parse.y"
+{ char *name;
+		  tree result = pop_init_level (0);
+		  tree type = yyvsp[-5].ttype;
+		  finish_init ();
+
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids constructor expressions");
+		  if (TYPE_NAME (type) != 0)
+		    {
+		      if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
+			name = IDENTIFIER_POINTER (TYPE_NAME (type));
+		      else
+			name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
+		    }
+		  else
+		    name = "";
+		  yyval.ttype = result;
+		  if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
+		    {
+		      int failure = complete_array_type (type, yyval.ttype, 1);
+		      if (failure)
+			abort ();
+		    }
+		;
+    break;}
+case 66:
+#line 513 "objc-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 67:
+#line 515 "objc-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 68:
+#line 517 "objc-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 69:
+#line 519 "objc-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 70:
+#line 521 "objc-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 71:
+#line 523 "objc-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 72:
+#line 525 "objc-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 73:
+#line 527 "objc-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 74:
+#line 529 "objc-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 75:
+#line 531 "objc-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 76:
+#line 533 "objc-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 77:
+#line 535 "objc-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 78:
+#line 537 "objc-parse.y"
+{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
+		  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
+    break;}
+case 79:
+#line 540 "objc-parse.y"
+{ skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
+		  yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
+    break;}
+case 80:
+#line 543 "objc-parse.y"
+{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
+		  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
+    break;}
+case 81:
+#line 546 "objc-parse.y"
+{ skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
+		  yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
+    break;}
+case 82:
+#line 549 "objc-parse.y"
+{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
+		  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
+    break;}
+case 83:
+#line 552 "objc-parse.y"
+{ skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
+				      - (yyvsp[-4].ttype == boolean_false_node)); ;
+    break;}
+case 84:
+#line 555 "objc-parse.y"
+{ skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
+		  yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
+    break;}
+case 85:
+#line 558 "objc-parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
+		  /* Make sure first operand is calculated only once.  */
+		  yyvsp[0].ttype = save_expr (yyvsp[-1].ttype);
+		  yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype));
+		  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
+    break;}
+case 86:
+#line 565 "objc-parse.y"
+{ skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
+		  yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
+    break;}
+case 87:
+#line 568 "objc-parse.y"
+{ yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
+		  C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
+    break;}
+case 88:
+#line 571 "objc-parse.y"
+{ yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
+		  /* This inhibits warnings in truthvalue_conversion.  */
+		  C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
+    break;}
+case 89:
+#line 578 "objc-parse.y"
+{
+		  yyval.ttype = lastiddecl;
+		  if (!yyval.ttype || yyval.ttype == error_mark_node)
+		    {
+		      if (yychar == YYEMPTY)
+			yychar = YYLEX;
+		      if (yychar == '(')
+			{
+			  tree decl;
+
+			  if (objc_receiver_context
+			      && ! (objc_receiver_context
+				    && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super")))
+			    /* we have a message to super */
+			    yyval.ttype = get_super_receiver ();
+			  else if (objc_method_context
+				   && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
+			    {
+			      if (is_private (decl))
+				yyval.ttype = error_mark_node;
+			      else
+				yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
+			    }
+			  else
+			    {
+			      /* Ordinary implicit function declaration.  */
+			      yyval.ttype = implicitly_declare (yyvsp[0].ttype);
+			      assemble_external (yyval.ttype);
+			      TREE_USED (yyval.ttype) = 1;
+			    }
+			}
+		      else if (current_function_decl == 0)
+			{
+			  error ("`%s' undeclared here (not in a function)",
+				 IDENTIFIER_POINTER (yyvsp[0].ttype));
+			  yyval.ttype = error_mark_node;
+			}
+		      else
+			{
+			  tree decl;
+
+		          if (objc_receiver_context
+			      && ! strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super"))
+			    /* we have a message to super */
+			    yyval.ttype = get_super_receiver ();
+			  else if (objc_method_context
+				   && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
+			    {
+			      if (is_private (decl))
+				yyval.ttype = error_mark_node;
+			      else
+				yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
+			    }
+			  else
+			    {
+			      if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
+				  || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
+				{
+				  error ("`%s' undeclared (first use this function)",
+					 IDENTIFIER_POINTER (yyvsp[0].ttype));
+
+				  if (! undeclared_variable_notice)
+				    {
+				      error ("(Each undeclared identifier is reported only once");
+				      error ("for each function it appears in.)");
+				      undeclared_variable_notice = 1;
+				    }
+				}
+			      yyval.ttype = error_mark_node;
+			      /* Prevent repeated error messages.  */
+			      IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
+			      IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
+			    }
+			}
+		    }
+		  else if (TREE_TYPE (yyval.ttype) == error_mark_node)
+		    yyval.ttype = error_mark_node;
+		  else if (C_DECL_ANTICIPATED (yyval.ttype))
+		    {
+		      /* The first time we see a build-in function used,
+			 if it has not been declared.  */
+		      C_DECL_ANTICIPATED (yyval.ttype) = 0;
+		      if (yychar == YYEMPTY)
+			yychar = YYLEX;
+		      if (yychar == '(')
+			{
+			  /* Omit the implicit declaration we
+			     would ordinarily do, so we don't lose
+			     the actual built in type.
+			     But print a diagnostic for the mismatch.  */
+			  if (objc_method_context
+			      && is_ivar (objc_ivar_chain, yyvsp[0].ttype))
+			    error ("Instance variable `%s' implicitly declared as function",
+				   IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
+			  else
+			    if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
+			      error ("`%s' implicitly declared as function",
+				     IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
+			  else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
+				    != TYPE_MODE (integer_type_node))
+				   && (TREE_TYPE (TREE_TYPE (yyval.ttype))
+				       != void_type_node))
+			    pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
+				     IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
+			  /* If it really returns void, change that to int.  */
+			  if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
+			    TREE_TYPE (yyval.ttype)
+			      = build_function_type (integer_type_node,
+						     TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
+			}
+		      else
+			pedwarn ("built-in function `%s' used without declaration",
+				 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
+
+		      /* Do what we would ordinarily do when a fn is used.  */
+		      assemble_external (yyval.ttype);
+		      TREE_USED (yyval.ttype) = 1;
+		    }
+		  else
+		    {
+		      assemble_external (yyval.ttype);
+		      TREE_USED (yyval.ttype) = 1;
+		      /* we have a definition - still check if iVariable */
+
+		      if (!objc_receiver_context
+			  || (objc_receiver_context
+			      && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super")))
+                        {
+			  tree decl;
+
+			  if (objc_method_context
+			      && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
+                            {
+                              if (IDENTIFIER_LOCAL_VALUE (yyvsp[0].ttype))
+                                warning ("local declaration of `%s' hides instance variable",
+	                                 IDENTIFIER_POINTER (yyvsp[0].ttype));
+                              else
+ 				{
+ 				  if (is_private (decl))
+ 				    yyval.ttype = error_mark_node;
+ 				  else
+ 				    yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
+ 				}
+                            }
+			}
+                      else /* we have a message to super */
+		        yyval.ttype = get_super_receiver ();
+		    }
+
+		  if (TREE_CODE (yyval.ttype) == CONST_DECL)
+		    {
+		      yyval.ttype = DECL_INITIAL (yyval.ttype);
+		      /* This is to prevent an enum whose value is 0
+			 from being considered a null pointer constant.  */
+		      yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
+		      TREE_CONSTANT (yyval.ttype) = 1;
+		    }
+		;
+    break;}
+case 91:
+#line 738 "objc-parse.y"
+{ yyval.ttype = combine_strings (yyvsp[0].ttype); ;
+    break;}
+case 92:
+#line 740 "objc-parse.y"
+{ char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
+		  if (class == 'e' || class == '1'
+		      || class == '2' || class == '<')
+		    C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
+		  yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 93:
+#line 746 "objc-parse.y"
+{ yyval.ttype = error_mark_node; ;
+    break;}
+case 94:
+#line 748 "objc-parse.y"
+{ if (current_function_decl == 0)
+		    {
+		      error ("braced-group within expression allowed only inside a function");
+		      YYERROR;
+		    }
+		  /* We must force a BLOCK for this level
+		     so that, if it is not expanded later,
+		     there is a way to turn off the entire subtree of blocks
+		     that are contained in it.  */
+		  keep_next_level ();
+		  push_iterator_stack ();
+		  push_label_level ();
+		  yyval.ttype = expand_start_stmt_expr (); ;
+    break;}
+case 95:
+#line 762 "objc-parse.y"
+{ tree rtl_exp;
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids braced-groups within expressions");
+		  pop_iterator_stack ();
+		  pop_label_level ();
+		  rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
+		  /* The statements have side effects, so the group does.  */
+		  TREE_SIDE_EFFECTS (rtl_exp) = 1;
+
+		  if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
+		    {
+		      /* Make a BIND_EXPR for the BLOCK already made.  */
+		      yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
+				  NULL_TREE, rtl_exp, yyvsp[-1].ttype);
+		      /* Remove the block from the tree at this point.
+			 It gets put back at the proper place
+			 when the BIND_EXPR is expanded.  */
+		      delete_block (yyvsp[-1].ttype);
+		    }
+		  else
+		    yyval.ttype = yyvsp[-1].ttype;
+		;
+    break;}
+case 96:
+#line 785 "objc-parse.y"
+{ yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 97:
+#line 787 "objc-parse.y"
+{ yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 98:
+#line 789 "objc-parse.y"
+{
+                  if (doing_objc_thang)
+                    {
+		      if (is_public (yyvsp[-2].ttype, yyvsp[0].ttype))
+			yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
+		      else
+			yyval.ttype = error_mark_node;
+		    }
+                  else
+		    yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 99:
+#line 801 "objc-parse.y"
+{
+                  tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
+
+                  if (doing_objc_thang)
+                    {
+		      if (is_public (expr, yyvsp[0].ttype))
+			yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
+		      else
+			yyval.ttype = error_mark_node;
+		    }
+                  else
+                    yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
+		;
+    break;}
+case 100:
+#line 815 "objc-parse.y"
+{ yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
+    break;}
+case 101:
+#line 817 "objc-parse.y"
+{ yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
+    break;}
+case 102:
+#line 819 "objc-parse.y"
+{ yyval.ttype = build_message_expr (yyvsp[0].ttype); ;
+    break;}
+case 103:
+#line 821 "objc-parse.y"
+{ yyval.ttype = build_selector_expr (yyvsp[0].ttype); ;
+    break;}
+case 104:
+#line 823 "objc-parse.y"
+{ yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ;
+    break;}
+case 105:
+#line 825 "objc-parse.y"
+{ yyval.ttype = build_encode_expr (yyvsp[0].ttype); ;
+    break;}
+case 106:
+#line 827 "objc-parse.y"
+{ yyval.ttype = build_objc_string_object (yyvsp[0].ttype); ;
+    break;}
+case 108:
+#line 834 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 110:
+#line 842 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 113:
+#line 850 "objc-parse.y"
+{ c_mark_varargs ();
+		  if (pedantic)
+		    pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
+    break;}
+case 114:
+#line 860 "objc-parse.y"
+{ ;
+    break;}
+case 119:
+#line 876 "objc-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 120:
+#line 881 "objc-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);	
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 121:
+#line 886 "objc-parse.y"
+{ shadow_tag_warned (yyvsp[-1].ttype, 1);
+		  pedwarn ("empty declaration"); ;
+    break;}
+case 122:
+#line 889 "objc-parse.y"
+{ pedwarn ("empty declaration"); ;
+    break;}
+case 123:
+#line 898 "objc-parse.y"
+{ ;
+    break;}
+case 128:
+#line 913 "objc-parse.y"
+{ yyval.itype = suspend_momentary ();
+		  pending_xref_error ();
+		  declspec_stack = tree_cons (prefix_attributes,
+					      current_declspecs,
+					      declspec_stack);
+		  split_specs_attrs (yyvsp[0].ttype,
+				     &current_declspecs, &prefix_attributes); ;
+    break;}
+case 129:
+#line 924 "objc-parse.y"
+{ prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
+    break;}
+case 130:
+#line 929 "objc-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 131:
+#line 934 "objc-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 132:
+#line 939 "objc-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-1].itype); ;
+    break;}
+case 133:
+#line 944 "objc-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-1].itype); ;
+    break;}
+case 134:
+#line 949 "objc-parse.y"
+{ shadow_tag (yyvsp[-1].ttype); ;
+    break;}
+case 135:
+#line 951 "objc-parse.y"
+{ pedwarn ("empty declaration"); ;
+    break;}
+case 136:
+#line 953 "objc-parse.y"
+{ pedantic = yyvsp[-1].itype; ;
+    break;}
+case 137:
+#line 963 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 138:
+#line 965 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
+    break;}
+case 139:
+#line 969 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 140:
+#line 971 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 141:
+#line 973 "objc-parse.y"
+{ if (extra_warnings)
+		    warning ("`%s' is not at beginning of declaration",
+			     IDENTIFIER_POINTER (yyvsp[0].ttype));
+		  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 142:
+#line 978 "objc-parse.y"
+{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
+    break;}
+case 143:
+#line 983 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 144:
+#line 985 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
+    break;}
+case 145:
+#line 990 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 146:
+#line 992 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 147:
+#line 994 "objc-parse.y"
+{ if (extra_warnings)
+		    warning ("`%s' is not at beginning of declaration",
+			     IDENTIFIER_POINTER (yyvsp[0].ttype));
+		  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 148:
+#line 1007 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 149:
+#line 1009 "objc-parse.y"
+{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
+    break;}
+case 150:
+#line 1011 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 151:
+#line 1013 "objc-parse.y"
+{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
+    break;}
+case 152:
+#line 1018 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
+		  TREE_STATIC (yyval.ttype) = 1; ;
+    break;}
+case 153:
+#line 1021 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 154:
+#line 1023 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
+		  TREE_STATIC (yyval.ttype) = 1; ;
+    break;}
+case 155:
+#line 1026 "objc-parse.y"
+{ if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
+		    warning ("`%s' is not at beginning of declaration",
+			     IDENTIFIER_POINTER (yyvsp[0].ttype));
+		  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
+		  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
+    break;}
+case 156:
+#line 1040 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 157:
+#line 1042 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
+    break;}
+case 158:
+#line 1046 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 159:
+#line 1048 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 162:
+#line 1058 "objc-parse.y"
+{ /* For a typedef name, record the meaning, not the name.
+		     In case of `foo foo, bar;'.  */
+		  yyval.ttype = lookup_name (yyvsp[0].ttype); ;
+    break;}
+case 163:
+#line 1062 "objc-parse.y"
+{ yyval.ttype = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 164:
+#line 1064 "objc-parse.y"
+{ yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
+    break;}
+case 165:
+#line 1069 "objc-parse.y"
+{ yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
+    break;}
+case 166:
+#line 1071 "objc-parse.y"
+{ yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
+    break;}
+case 167:
+#line 1073 "objc-parse.y"
+{ yyval.ttype = groktypename (yyvsp[-1].ttype); ;
+    break;}
+case 175:
+#line 1095 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 176:
+#line 1097 "objc-parse.y"
+{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
+		  yyval.ttype = yyvsp[-1].ttype;
+		;
+    break;}
+case 177:
+#line 1104 "objc-parse.y"
+{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
+					  yyvsp[-1].ttype, prefix_attributes);
+		  start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
+    break;}
+case 178:
+#line 1109 "objc-parse.y"
+{ finish_init ();
+		  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
+    break;}
+case 179:
+#line 1112 "objc-parse.y"
+{ tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
+				       yyvsp[0].ttype, prefix_attributes);
+		  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); 
+                ;
+    break;}
+case 180:
+#line 1120 "objc-parse.y"
+{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
+					  yyvsp[-1].ttype, prefix_attributes);
+		  start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
+    break;}
+case 181:
+#line 1125 "objc-parse.y"
+{ finish_init ();
+		  decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
+		  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
+    break;}
+case 182:
+#line 1129 "objc-parse.y"
+{ tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
+				       yyvsp[0].ttype, prefix_attributes);
+		  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
+    break;}
+case 183:
+#line 1137 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 184:
+#line 1139 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 185:
+#line 1144 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 186:
+#line 1146 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 187:
+#line 1151 "objc-parse.y"
+{ yyval.ttype = yyvsp[-2].ttype; ;
+    break;}
+case 188:
+#line 1156 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 189:
+#line 1158 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 190:
+#line 1163 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 191:
+#line 1165 "objc-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 192:
+#line 1167 "objc-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
+    break;}
+case 193:
+#line 1169 "objc-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
+    break;}
+case 194:
+#line 1171 "objc-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 200:
+#line 1189 "objc-parse.y"
+{ really_start_incremental_init (NULL_TREE);
+		  /* Note that the call to clear_momentary
+		     is in process_init_element.  */
+		  push_momentary (); ;
+    break;}
+case 201:
+#line 1194 "objc-parse.y"
+{ yyval.ttype = pop_init_level (0);
+		  if (yyval.ttype == error_mark_node
+		      && ! (yychar == STRING || yychar == CONSTANT))
+		    pop_momentary ();
+		  else
+		    pop_momentary_nofree (); ;
+    break;}
+case 202:
+#line 1202 "objc-parse.y"
+{ yyval.ttype = error_mark_node; ;
+    break;}
+case 203:
+#line 1208 "objc-parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C forbids empty initializer braces"); ;
+    break;}
+case 207:
+#line 1222 "objc-parse.y"
+{ process_init_element (yyvsp[0].ttype); ;
+    break;}
+case 208:
+#line 1224 "objc-parse.y"
+{ push_init_level (0); ;
+    break;}
+case 209:
+#line 1226 "objc-parse.y"
+{ process_init_element (pop_init_level (0)); ;
+    break;}
+case 211:
+#line 1232 "objc-parse.y"
+{ set_init_label (yyvsp[-1].ttype); ;
+    break;}
+case 213:
+#line 1235 "objc-parse.y"
+{ set_init_label (yyvsp[-1].ttype); ;
+    break;}
+case 215:
+#line 1241 "objc-parse.y"
+{ push_c_function_context ();
+		  if (! start_function (current_declspecs, yyvsp[0].ttype,
+					prefix_attributes, NULL_TREE, 1))
+		    {
+		      pop_c_function_context ();
+		      YYERROR1;
+		    }
+		  reinit_parse_for_function (); ;
+    break;}
+case 216:
+#line 1250 "objc-parse.y"
+{ store_parm_decls (); ;
+    break;}
+case 217:
+#line 1258 "objc-parse.y"
+{ finish_function (1);
+		  pop_c_function_context (); ;
+    break;}
+case 218:
+#line 1264 "objc-parse.y"
+{ push_c_function_context ();
+		  if (! start_function (current_declspecs, yyvsp[0].ttype,
+					prefix_attributes, NULL_TREE, 1))
+		    {
+		      pop_c_function_context ();
+		      YYERROR1;
+		    }
+		  reinit_parse_for_function (); ;
+    break;}
+case 219:
+#line 1273 "objc-parse.y"
+{ store_parm_decls (); ;
+    break;}
+case 220:
+#line 1281 "objc-parse.y"
+{ finish_function (1);
+		  pop_c_function_context (); ;
+    break;}
+case 223:
+#line 1297 "objc-parse.y"
+{ yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 224:
+#line 1299 "objc-parse.y"
+{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 225:
+#line 1304 "objc-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 226:
+#line 1306 "objc-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
+    break;}
+case 227:
+#line 1308 "objc-parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 228:
+#line 1315 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 231:
+#line 1327 "objc-parse.y"
+{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 232:
+#line 1332 "objc-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 233:
+#line 1334 "objc-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
+    break;}
+case 234:
+#line 1336 "objc-parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 235:
+#line 1343 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 237:
+#line 1352 "objc-parse.y"
+{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 238:
+#line 1357 "objc-parse.y"
+{ yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 239:
+#line 1359 "objc-parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 240:
+#line 1361 "objc-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 241:
+#line 1363 "objc-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
+    break;}
+case 242:
+#line 1370 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 244:
+#line 1376 "objc-parse.y"
+{ yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
+		  /* Start scope of tag before parsing components.  */
+		;
+    break;}
+case 245:
+#line 1380 "objc-parse.y"
+{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 246:
+#line 1382 "objc-parse.y"
+{ yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
+				      yyvsp[-2].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 247:
+#line 1386 "objc-parse.y"
+{ yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
+    break;}
+case 248:
+#line 1388 "objc-parse.y"
+{ yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
+    break;}
+case 249:
+#line 1390 "objc-parse.y"
+{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 250:
+#line 1392 "objc-parse.y"
+{ yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
+				      yyvsp[-2].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 251:
+#line 1396 "objc-parse.y"
+{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
+    break;}
+case 252:
+#line 1398 "objc-parse.y"
+{ yyvsp[0].itype = suspend_momentary ();
+		  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
+    break;}
+case 253:
+#line 1401 "objc-parse.y"
+{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
+		  resume_momentary (yyvsp[-5].itype); ;
+    break;}
+case 254:
+#line 1404 "objc-parse.y"
+{ yyvsp[0].itype = suspend_momentary ();
+		  yyval.ttype = start_enum (NULL_TREE); ;
+    break;}
+case 255:
+#line 1407 "objc-parse.y"
+{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
+		  resume_momentary (yyvsp[-5].itype); ;
+    break;}
+case 256:
+#line 1410 "objc-parse.y"
+{ yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
+    break;}
+case 260:
+#line 1421 "objc-parse.y"
+{ if (pedantic) pedwarn ("comma at end of enumerator list"); ;
+    break;}
+case 261:
+#line 1426 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 262:
+#line 1428 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
+		  pedwarn ("no semicolon at end of struct or union"); ;
+    break;}
+case 263:
+#line 1433 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 264:
+#line 1435 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 265:
+#line 1437 "objc-parse.y"
+{ if (pedantic)
+		    pedwarn ("extra semicolon in struct or union specified"); ;
+    break;}
+case 266:
+#line 1441 "objc-parse.y"
+{
+		  tree interface = lookup_interface (yyvsp[-1].ttype);
+
+		  if (interface)
+		    yyval.ttype = get_class_ivars (interface);
+		  else
+		    {
+		      error ("Cannot find interface declaration for `%s'",
+			     IDENTIFIER_POINTER (yyvsp[-1].ttype));
+		      yyval.ttype = NULL_TREE;
+		    }
+		;
+    break;}
+case 267:
+#line 1466 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-1].itype); ;
+    break;}
+case 268:
+#line 1472 "objc-parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C forbids member declarations with no members");
+		  shadow_tag(yyvsp[0].ttype);
+		  yyval.ttype = NULL_TREE; ;
+    break;}
+case 269:
+#line 1477 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-1].itype); ;
+    break;}
+case 270:
+#line 1483 "objc-parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C forbids member declarations with no members");
+		  shadow_tag(yyvsp[0].ttype);
+		  yyval.ttype = NULL_TREE; ;
+    break;}
+case 271:
+#line 1488 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 272:
+#line 1490 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+		  pedantic = yyvsp[-1].itype; ;
+    break;}
+case 274:
+#line 1497 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 275:
+#line 1502 "objc-parse.y"
+{ yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
+		  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
+    break;}
+case 276:
+#line 1506 "objc-parse.y"
+{ yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
+		  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
+    break;}
+case 277:
+#line 1509 "objc-parse.y"
+{ yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
+		  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
+    break;}
+case 279:
+#line 1521 "objc-parse.y"
+{ if (yyvsp[-2].ttype == error_mark_node)
+		    yyval.ttype = yyvsp[-2].ttype;
+		  else
+		    yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
+    break;}
+case 280:
+#line 1526 "objc-parse.y"
+{ yyval.ttype = error_mark_node; ;
+    break;}
+case 281:
+#line 1532 "objc-parse.y"
+{ yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 282:
+#line 1534 "objc-parse.y"
+{ yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 283:
+#line 1539 "objc-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 284:
+#line 1541 "objc-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 285:
+#line 1546 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 287:
+#line 1552 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 288:
+#line 1554 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 289:
+#line 1559 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 290:
+#line 1561 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 291:
+#line 1566 "objc-parse.y"
+{ yyval.ttype = yyvsp[-1].ttype; ;
+    break;}
+case 292:
+#line 1569 "objc-parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 293:
+#line 1571 "objc-parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 294:
+#line 1573 "objc-parse.y"
+{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 295:
+#line 1575 "objc-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 296:
+#line 1577 "objc-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
+    break;}
+case 297:
+#line 1579 "objc-parse.y"
+{ yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 298:
+#line 1581 "objc-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
+    break;}
+case 299:
+#line 1583 "objc-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
+    break;}
+case 300:
+#line 1594 "objc-parse.y"
+{
+		  if (pedantic && yyvsp[0].ends_in_label)
+		    pedwarn ("ANSI C forbids label at end of compound statement");
+		;
+    break;}
+case 302:
+#line 1603 "objc-parse.y"
+{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
+    break;}
+case 303:
+#line 1605 "objc-parse.y"
+{ yyval.ends_in_label = 0; ;
+    break;}
+case 307:
+#line 1617 "objc-parse.y"
+{ emit_line_note (input_filename, lineno);
+		  pushlevel (0);
+		  clear_last_expr ();
+		  push_momentary ();
+		  expand_start_bindings (0);
+		  if (objc_method_context)
+		    add_objc_decls ();
+		;
+    break;}
+case 309:
+#line 1632 "objc-parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C forbids label declarations"); ;
+    break;}
+case 312:
+#line 1643 "objc-parse.y"
+{ tree link;
+		  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
+		    {
+		      tree label = shadow_label (TREE_VALUE (link));
+		      C_DECLARED_LABEL_FLAG (label) = 1;
+		      declare_nonlocal_label (label);
+		    }
+		;
+    break;}
+case 313:
+#line 1657 "objc-parse.y"
+{;
+    break;}
+case 315:
+#line 1662 "objc-parse.y"
+{ yyval.ttype = convert (void_type_node, integer_zero_node); ;
+    break;}
+case 316:
+#line 1664 "objc-parse.y"
+{ emit_line_note (input_filename, lineno);
+		  expand_end_bindings (getdecls (), 1, 0);
+		  yyval.ttype = poplevel (1, 1, 0);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary (); ;
+    break;}
+case 317:
+#line 1672 "objc-parse.y"
+{ emit_line_note (input_filename, lineno);
+		  expand_end_bindings (getdecls (), kept_level_p (), 0);
+		  yyval.ttype = poplevel (kept_level_p (), 0, 0);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary (); ;
+    break;}
+case 318:
+#line 1680 "objc-parse.y"
+{ emit_line_note (input_filename, lineno);
+		  expand_end_bindings (getdecls (), kept_level_p (), 0);
+		  yyval.ttype = poplevel (kept_level_p (), 0, 0);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary (); ;
+    break;}
+case 321:
+#line 1700 "objc-parse.y"
+{ emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
+		  expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
+		  yyval.itype = stmt_count;
+		  if_stmt_file = yyvsp[-5].filename;
+		  if_stmt_line = yyvsp[-4].lineno;
+		  position_after_white_space (); ;
+    break;}
+case 322:
+#line 1713 "objc-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
+		  /* See comment in `while' alternative, above.  */
+		  emit_nop ();
+		  expand_start_loop_continue_elsewhere (1);
+		  position_after_white_space (); ;
+    break;}
+case 323:
+#line 1720 "objc-parse.y"
+{ expand_loop_continue_here (); ;
+    break;}
+case 324:
+#line 1724 "objc-parse.y"
+{ yyval.filename = input_filename; ;
+    break;}
+case 325:
+#line 1728 "objc-parse.y"
+{ yyval.lineno = lineno; ;
+    break;}
+case 326:
+#line 1733 "objc-parse.y"
+{ ;
+    break;}
+case 327:
+#line 1738 "objc-parse.y"
+{ ;
+    break;}
+case 328:
+#line 1743 "objc-parse.y"
+{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
+    break;}
+case 329:
+#line 1748 "objc-parse.y"
+{ yyval.ends_in_label = 0; ;
+    break;}
+case 330:
+#line 1750 "objc-parse.y"
+{ yyval.ends_in_label = 1; ;
+    break;}
+case 331:
+#line 1756 "objc-parse.y"
+{ stmt_count++; ;
+    break;}
+case 333:
+#line 1759 "objc-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
+/* It appears that this should not be done--that a non-lvalue array
+   shouldn't get an error if the value isn't used.
+   Section 3.2.2.1 says that an array lvalue gets converted to a pointer
+   if it appears as a top-level expression,
+   but says nothing about non-lvalue arrays.  */
+#if 0
+		  /* Call default_conversion to get an error
+		     on referring to a register array if pedantic.  */
+		  if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
+		      || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
+		    yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
+#endif
+		  iterator_expand (yyvsp[-1].ttype);
+		  clear_momentary (); ;
+    break;}
+case 334:
+#line 1776 "objc-parse.y"
+{ expand_start_else ();
+		  yyvsp[-1].itype = stmt_count;
+		  position_after_white_space (); ;
+    break;}
+case 335:
+#line 1780 "objc-parse.y"
+{ expand_end_cond ();
+		  if (extra_warnings && stmt_count == yyvsp[-3].itype)
+		    warning ("empty body in an else-statement"); ;
+    break;}
+case 336:
+#line 1784 "objc-parse.y"
+{ expand_end_cond ();
+		  /* This warning is here instead of in simple_if, because we
+		     do not want a warning if an empty if is followed by an
+		     else statement.  Increment stmt_count so we don't
+		     give a second error if this is a nested `if'.  */
+		  if (extra_warnings && stmt_count++ == yyvsp[0].itype)
+		    warning_with_file_and_line (if_stmt_file, if_stmt_line,
+						"empty body in an if-statement"); ;
+    break;}
+case 337:
+#line 1796 "objc-parse.y"
+{ expand_end_cond (); ;
+    break;}
+case 338:
+#line 1798 "objc-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
+		  /* The emit_nop used to come before emit_line_note,
+		     but that made the nop seem like part of the preceding line.
+		     And that was confusing when the preceding line was
+		     inside of an if statement and was not really executed.
+		     I think it ought to work to put the nop after the line number.
+		     We will see.  --rms, July 15, 1991.  */
+		  emit_nop (); ;
+    break;}
+case 339:
+#line 1808 "objc-parse.y"
+{ /* Don't start the loop till we have succeeded
+		     in parsing the end test.  This is to make sure
+		     that we end every loop we start.  */
+		  expand_start_loop (1);
+		  emit_line_note (input_filename, lineno);
+		  expand_exit_loop_if_false (NULL_PTR,
+					     truthvalue_conversion (yyvsp[-1].ttype));
+		  position_after_white_space (); ;
+    break;}
+case 340:
+#line 1817 "objc-parse.y"
+{ expand_end_loop (); ;
+    break;}
+case 341:
+#line 1820 "objc-parse.y"
+{ emit_line_note (input_filename, lineno);
+		  expand_exit_loop_if_false (NULL_PTR,
+					     truthvalue_conversion (yyvsp[-2].ttype));
+		  expand_end_loop ();
+		  clear_momentary (); ;
+    break;}
+case 342:
+#line 1827 "objc-parse.y"
+{ expand_end_loop ();
+		  clear_momentary (); ;
+    break;}
+case 343:
+#line 1831 "objc-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
+		  /* See comment in `while' alternative, above.  */
+		  emit_nop ();
+		  if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
+		  /* Next step is to call expand_start_loop_continue_elsewhere,
+		     but wait till after we parse the entire for (...).
+		     Otherwise, invalid input might cause us to call that
+		     fn without calling expand_end_loop.  */
+		;
+    break;}
+case 344:
+#line 1843 "objc-parse.y"
+{ yyvsp[0].lineno = lineno;
+		  yyval.filename = input_filename; ;
+    break;}
+case 345:
+#line 1846 "objc-parse.y"
+{ 
+		  /* Start the loop.  Doing this after parsing
+		     all the expressions ensures we will end the loop.  */
+		  expand_start_loop_continue_elsewhere (1);
+		  /* Emit the end-test, with a line number.  */
+		  emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
+		  if (yyvsp[-4].ttype)
+		    expand_exit_loop_if_false (NULL_PTR,
+					       truthvalue_conversion (yyvsp[-4].ttype));
+		  /* Don't let the tree nodes for $9 be discarded by
+		     clear_momentary during the parsing of the next stmt.  */
+		  push_momentary ();
+		  yyvsp[-3].lineno = lineno;
+		  yyvsp[-2].filename = input_filename;
+		  position_after_white_space (); ;
+    break;}
+case 346:
+#line 1862 "objc-parse.y"
+{ /* Emit the increment expression, with a line number.  */
+		  emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
+		  expand_loop_continue_here ();
+		  if (yyvsp[-3].ttype)
+		    c_expand_expr_stmt (yyvsp[-3].ttype);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary ();
+		  expand_end_loop (); ;
+    break;}
+case 347:
+#line 1873 "objc-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
+		  c_expand_start_case (yyvsp[-1].ttype);
+		  /* Don't let the tree nodes for $3 be discarded by
+		     clear_momentary during the parsing of the next stmt.  */
+		  push_momentary ();
+		  position_after_white_space (); ;
+    break;}
+case 348:
+#line 1881 "objc-parse.y"
+{ expand_end_case (yyvsp[-3].ttype);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary (); ;
+    break;}
+case 349:
+#line 1887 "objc-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
+		  if ( ! expand_exit_something ())
+		    error ("break statement not within loop or switch"); ;
+    break;}
+case 350:
+#line 1892 "objc-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
+		  if (! expand_continue_loop (NULL_PTR))
+		    error ("continue statement not within a loop"); ;
+    break;}
+case 351:
+#line 1897 "objc-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
+		  c_expand_return (NULL_TREE); ;
+    break;}
+case 352:
+#line 1901 "objc-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
+		  c_expand_return (yyvsp[-1].ttype); ;
+    break;}
+case 353:
+#line 1905 "objc-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
+		  STRIP_NOPS (yyvsp[-2].ttype);
+		  if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
+		       && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
+		      || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
+		    expand_asm (yyvsp[-2].ttype);
+		  else
+		    error ("argument of `asm' is not a constant string"); ;
+    break;}
+case 354:
+#line 1916 "objc-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
+		  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
+					 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
+					 input_filename, lineno); ;
+    break;}
+case 355:
+#line 1923 "objc-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
+		  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
+					 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
+					 input_filename, lineno); ;
+    break;}
+case 356:
+#line 1931 "objc-parse.y"
+{ stmt_count++;
+		  emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
+		  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
+					 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
+					 input_filename, lineno); ;
+    break;}
+case 357:
+#line 1937 "objc-parse.y"
+{ tree decl;
+		  stmt_count++;
+		  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
+		  decl = lookup_label (yyvsp[-1].ttype);
+		  if (decl != 0)
+		    {
+		      TREE_USED (decl) = 1;
+		      expand_goto (decl);
+		    }
+		;
+    break;}
+case 358:
+#line 1948 "objc-parse.y"
+{ if (pedantic)
+		    pedwarn ("ANSI C forbids `goto *expr;'");
+		  stmt_count++;
+		  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
+		  expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
+    break;}
+case 361:
+#line 1963 "objc-parse.y"
+{
+	    /* The value returned by this action is  */
+	    /*      1 if everything is OK */ 
+	    /*      0 in case of error or already bound iterator */
+
+	    yyval.itype = 0;
+	    if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL)
+	      error ("invalid `for (ITERATOR)' syntax");
+	    else if (! ITERATOR_P (yyvsp[-1].ttype))
+	      error ("`%s' is not an iterator",
+		     IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
+	    else if (ITERATOR_BOUND_P (yyvsp[-1].ttype))
+	      error ("`for (%s)' inside expansion of same iterator",
+		     IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
+	    else
+	      {
+		yyval.itype = 1;
+		iterator_for_loop_start (yyvsp[-1].ttype);
+	      }
+	  ;
+    break;}
+case 362:
+#line 1984 "objc-parse.y"
+{
+	    if (yyvsp[-1].itype)
+	      iterator_for_loop_end (yyvsp[-3].ttype);
+	  ;
+    break;}
+case 363:
+#line 2019 "objc-parse.y"
+{ register tree value = check_case_value (yyvsp[-1].ttype);
+		  register tree label
+		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
+
+		  stmt_count++;
+
+		  if (value != error_mark_node)
+		    {
+		      tree duplicate;
+		      int success = pushcase (value, convert_and_check,
+					      label, &duplicate);
+		      if (success == 1)
+			error ("case label not within a switch statement");
+		      else if (success == 2)
+			{
+			  error ("duplicate case value");
+			  error_with_decl (duplicate, "this is the first entry for that value");
+			}
+		      else if (success == 3)
+			warning ("case value out of range");
+		      else if (success == 5)
+			error ("case label within scope of cleanup or variable array");
+		    }
+		  position_after_white_space (); ;
+    break;}
+case 364:
+#line 2044 "objc-parse.y"
+{ register tree value1 = check_case_value (yyvsp[-3].ttype);
+		  register tree value2 = check_case_value (yyvsp[-1].ttype);
+		  register tree label
+		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
+
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids case ranges");
+		  stmt_count++;
+
+		  if (value1 != error_mark_node && value2 != error_mark_node)
+		    {
+		      tree duplicate;
+		      int success = pushcase_range (value1, value2,
+						    convert_and_check, label,
+						    &duplicate);
+		      if (success == 1)
+			error ("case label not within a switch statement");
+		      else if (success == 2)
+			{
+			  error ("duplicate case value");
+			  error_with_decl (duplicate, "this is the first entry for that value");
+			}
+		      else if (success == 3)
+			warning ("case value out of range");
+		      else if (success == 4)
+			warning ("empty case range");
+		      else if (success == 5)
+			error ("case label within scope of cleanup or variable array");
+		    }
+		  position_after_white_space (); ;
+    break;}
+case 365:
+#line 2075 "objc-parse.y"
+{
+		  tree duplicate;
+		  register tree label
+		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
+		  int success = pushcase (NULL_TREE, 0, label, &duplicate);
+		  stmt_count++;
+		  if (success == 1)
+		    error ("default label not within a switch statement");
+		  else if (success == 2)
+		    {
+		      error ("multiple default labels in one switch");
+		      error_with_decl (duplicate, "this is the first default label");
+		    }
+		  position_after_white_space (); ;
+    break;}
+case 366:
+#line 2090 "objc-parse.y"
+{ tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
+		  stmt_count++;
+		  emit_nop ();
+		  if (label)
+		    expand_label (label);
+		  position_after_white_space (); ;
+    break;}
+case 367:
+#line 2102 "objc-parse.y"
+{ emit_line_note (input_filename, lineno);
+		  yyval.ttype = NULL_TREE; ;
+    break;}
+case 368:
+#line 2105 "objc-parse.y"
+{ emit_line_note (input_filename, lineno); ;
+    break;}
+case 369:
+#line 2110 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 371:
+#line 2117 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 374:
+#line 2124 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 375:
+#line 2129 "objc-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 376:
+#line 2134 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
+    break;}
+case 377:
+#line 2136 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
+    break;}
+case 378:
+#line 2142 "objc-parse.y"
+{ pushlevel (0);
+		  clear_parm_order ();
+		  declare_parm_level (0); ;
+    break;}
+case 379:
+#line 2146 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+		  parmlist_tags_warning ();
+		  poplevel (0, 0, 0); ;
+    break;}
+case 381:
+#line 2154 "objc-parse.y"
+{ tree parm;
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids forward parameter declarations");
+		  /* Mark the forward decls as such.  */
+		  for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
+		    TREE_ASM_WRITTEN (parm) = 1;
+		  clear_parm_order (); ;
+    break;}
+case 382:
+#line 2162 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 383:
+#line 2164 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
+    break;}
+case 384:
+#line 2170 "objc-parse.y"
+{ yyval.ttype = get_parm_info (0); ;
+    break;}
+case 385:
+#line 2172 "objc-parse.y"
+{ yyval.ttype = get_parm_info (0);
+		  /* Gcc used to allow this as an extension.  However, it does
+		     not work for all targets, and thus has been disabled.
+		     Also, since func (...) and func () are indistinguishable,
+		     it caused problems with the code in expand_builtin which
+		     tries to verify that BUILT_IN_NEXT_ARG is being used
+		     correctly.  */
+		  error ("ANSI C requires a named argument before `...'");
+		;
+    break;}
+case 386:
+#line 2182 "objc-parse.y"
+{ yyval.ttype = get_parm_info (1); ;
+    break;}
+case 387:
+#line 2184 "objc-parse.y"
+{ yyval.ttype = get_parm_info (0); ;
+    break;}
+case 388:
+#line 2189 "objc-parse.y"
+{ push_parm_decl (yyvsp[0].ttype); ;
+    break;}
+case 389:
+#line 2191 "objc-parse.y"
+{ push_parm_decl (yyvsp[0].ttype); ;
+    break;}
+case 390:
+#line 2198 "objc-parse.y"
+{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
+							 yyvsp[-1].ttype),
+					build_tree_list (prefix_attributes,
+							 yyvsp[0].ttype));
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 391:
+#line 2207 "objc-parse.y"
+{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
+							 yyvsp[-1].ttype),
+					build_tree_list (prefix_attributes,
+							 yyvsp[0].ttype)); 
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 392:
+#line 2216 "objc-parse.y"
+{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
+							 yyvsp[-1].ttype),
+					build_tree_list (prefix_attributes,
+							 yyvsp[0].ttype));
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 393:
+#line 2225 "objc-parse.y"
+{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
+							 yyvsp[-1].ttype),
+					build_tree_list (prefix_attributes,
+							 yyvsp[0].ttype));
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype);  ;
+    break;}
+case 394:
+#line 2235 "objc-parse.y"
+{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
+							 yyvsp[-1].ttype),
+					build_tree_list (prefix_attributes,
+							 yyvsp[0].ttype));
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype);  ;
+    break;}
+case 395:
+#line 2249 "objc-parse.y"
+{ pushlevel (0);
+		  clear_parm_order ();
+		  declare_parm_level (1); ;
+    break;}
+case 396:
+#line 2253 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+		  parmlist_tags_warning ();
+		  poplevel (0, 0, 0); ;
+    break;}
+case 398:
+#line 2261 "objc-parse.y"
+{ tree t;
+		  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
+		    if (TREE_VALUE (t) == NULL_TREE)
+		      error ("`...' in old-style identifier list");
+		  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
+    break;}
+case 399:
+#line 2271 "objc-parse.y"
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 400:
+#line 2273 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 401:
+#line 2279 "objc-parse.y"
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 402:
+#line 2281 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 403:
+#line 2286 "objc-parse.y"
+{ yyval.itype = pedantic;
+		  pedantic = 0; ;
+    break;}
+case 409:
+#line 2299 "objc-parse.y"
+{
+		  if (objc_implementation_context)
+                    {
+		      finish_class (objc_implementation_context);
+		      objc_ivar_chain = NULL_TREE;
+		      objc_implementation_context = NULL_TREE;
+		    }
+		  else
+		    warning ("`@end' must appear in an implementation context");
+		;
+    break;}
+case 410:
+#line 2314 "objc-parse.y"
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
+    break;}
+case 411:
+#line 2316 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 412:
+#line 2321 "objc-parse.y"
+{
+		  objc_declare_class (yyvsp[-1].ttype);
+		;
+    break;}
+case 413:
+#line 2327 "objc-parse.y"
+{
+		  objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype);
+		;
+    break;}
+case 414:
+#line 2333 "objc-parse.y"
+{
+		  objc_interface_context = objc_ivar_context
+		    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
+                  objc_public_flag = 0;
+		;
+    break;}
+case 415:
+#line 2339 "objc-parse.y"
+{
+                  continue_class (objc_interface_context);
+		;
+    break;}
+case 416:
+#line 2344 "objc-parse.y"
+{
+		  finish_class (objc_interface_context);
+		  objc_interface_context = NULL_TREE;
+		;
+    break;}
+case 417:
+#line 2350 "objc-parse.y"
+{
+		  objc_interface_context
+		    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype);
+                  continue_class (objc_interface_context);
+		;
+    break;}
+case 418:
+#line 2357 "objc-parse.y"
+{
+		  finish_class (objc_interface_context);
+		  objc_interface_context = NULL_TREE;
+		;
+    break;}
+case 419:
+#line 2363 "objc-parse.y"
+{
+		  objc_interface_context = objc_ivar_context
+		    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype);
+                  objc_public_flag = 0;
+		;
+    break;}
+case 420:
+#line 2369 "objc-parse.y"
+{
+                  continue_class (objc_interface_context);
+		;
+    break;}
+case 421:
+#line 2374 "objc-parse.y"
+{
+		  finish_class (objc_interface_context);
+		  objc_interface_context = NULL_TREE;
+		;
+    break;}
+case 422:
+#line 2380 "objc-parse.y"
+{
+		  objc_interface_context
+		    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
+                  continue_class (objc_interface_context);
+		;
+    break;}
+case 423:
+#line 2387 "objc-parse.y"
+{
+		  finish_class (objc_interface_context);
+		  objc_interface_context = NULL_TREE;
+		;
+    break;}
+case 424:
+#line 2393 "objc-parse.y"
+{
+		  objc_implementation_context = objc_ivar_context
+		    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
+                  objc_public_flag = 0;
+		;
+    break;}
+case 425:
+#line 2399 "objc-parse.y"
+{
+                  objc_ivar_chain
+		    = continue_class (objc_implementation_context);
+		;
+    break;}
+case 426:
+#line 2405 "objc-parse.y"
+{
+		  objc_implementation_context
+		    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE);
+                  objc_ivar_chain
+		    = continue_class (objc_implementation_context);
+		;
+    break;}
+case 427:
+#line 2413 "objc-parse.y"
+{
+		  objc_implementation_context = objc_ivar_context
+		    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
+                  objc_public_flag = 0;
+		;
+    break;}
+case 428:
+#line 2419 "objc-parse.y"
+{
+                  objc_ivar_chain
+		    = continue_class (objc_implementation_context);
+		;
+    break;}
+case 429:
+#line 2425 "objc-parse.y"
+{
+		  objc_implementation_context
+		    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
+                  objc_ivar_chain
+		    = continue_class (objc_implementation_context);
+		;
+    break;}
+case 430:
+#line 2433 "objc-parse.y"
+{
+		  objc_interface_context
+		    = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
+                  continue_class (objc_interface_context);
+		;
+    break;}
+case 431:
+#line 2440 "objc-parse.y"
+{
+		  finish_class (objc_interface_context);
+		  objc_interface_context = NULL_TREE;
+		;
+    break;}
+case 432:
+#line 2446 "objc-parse.y"
+{
+		  objc_implementation_context
+		    = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
+                  objc_ivar_chain
+		    = continue_class (objc_implementation_context);
+		;
+    break;}
+case 433:
+#line 2456 "objc-parse.y"
+{
+		  remember_protocol_qualifiers ();
+		  objc_interface_context
+		    = start_protocol(PROTOCOL_INTERFACE_TYPE, yyvsp[-1].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 434:
+#line 2462 "objc-parse.y"
+{
+		  forget_protocol_qualifiers();
+		  finish_protocol(objc_interface_context);
+		  objc_interface_context = NULL_TREE;
+		;
+    break;}
+case 435:
+#line 2471 "objc-parse.y"
+{
+		  yyval.ttype = NULL_TREE;
+		;
+    break;}
+case 437:
+#line 2479 "objc-parse.y"
+{
+		  if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR)
+		    yyval.ttype = yyvsp[-1].ttype;
+		  else
+		    YYERROR1;
+		;
+    break;}
+case 440:
+#line 2493 "objc-parse.y"
+{ objc_public_flag = 2; ;
+    break;}
+case 441:
+#line 2494 "objc-parse.y"
+{ objc_public_flag = 0; ;
+    break;}
+case 442:
+#line 2495 "objc-parse.y"
+{ objc_public_flag = 1; ;
+    break;}
+case 443:
+#line 2500 "objc-parse.y"
+{
+                  yyval.ttype = NULL_TREE;
+                ;
+    break;}
+case 445:
+#line 2505 "objc-parse.y"
+{
+                  if (pedantic)
+		    pedwarn ("extra semicolon in struct or union specified");
+                ;
+    break;}
+case 446:
+#line 2523 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-1].itype); ;
+    break;}
+case 447:
+#line 2529 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-1].itype); ;
+    break;}
+case 448:
+#line 2535 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 449:
+#line 2540 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 452:
+#line 2547 "objc-parse.y"
+{
+		  yyval.ttype = add_instance_variable (objc_ivar_context,
+					      objc_public_flag,
+					      yyvsp[0].ttype, current_declspecs,
+					      NULL_TREE);
+                ;
+    break;}
+case 453:
+#line 2554 "objc-parse.y"
+{
+		  yyval.ttype = add_instance_variable (objc_ivar_context,
+					      objc_public_flag,
+					      yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype);
+                ;
+    break;}
+case 454:
+#line 2560 "objc-parse.y"
+{
+		  yyval.ttype = add_instance_variable (objc_ivar_context,
+					      objc_public_flag,
+					      NULL_TREE,
+					      current_declspecs, yyvsp[0].ttype);
+                ;
+    break;}
+case 455:
+#line 2570 "objc-parse.y"
+{
+		  remember_protocol_qualifiers ();
+		  if (objc_implementation_context)
+		    objc_inherit_code = CLASS_METHOD_DECL;
+                  else
+		    fatal ("method definition not in class context");
+		;
+    break;}
+case 456:
+#line 2578 "objc-parse.y"
+{
+		  forget_protocol_qualifiers ();
+		  add_class_method (objc_implementation_context, yyvsp[0].ttype);
+		  start_method_def (yyvsp[0].ttype);
+		  objc_method_context = yyvsp[0].ttype;
+		;
+    break;}
+case 457:
+#line 2585 "objc-parse.y"
+{
+		  continue_method_def ();
+		;
+    break;}
+case 458:
+#line 2589 "objc-parse.y"
+{
+		  finish_method_def ();
+		  objc_method_context = NULL_TREE;
+		;
+    break;}
+case 459:
+#line 2595 "objc-parse.y"
+{
+		  remember_protocol_qualifiers ();
+		  if (objc_implementation_context)
+		    objc_inherit_code = INSTANCE_METHOD_DECL;
+                  else
+		    fatal ("method definition not in class context");
+		;
+    break;}
+case 460:
+#line 2603 "objc-parse.y"
+{
+		  forget_protocol_qualifiers ();
+		  add_instance_method (objc_implementation_context, yyvsp[0].ttype);
+		  start_method_def (yyvsp[0].ttype);
+		  objc_method_context = yyvsp[0].ttype;
+		;
+    break;}
+case 461:
+#line 2610 "objc-parse.y"
+{
+		  continue_method_def ();
+		;
+    break;}
+case 462:
+#line 2614 "objc-parse.y"
+{
+		  finish_method_def ();
+		  objc_method_context = NULL_TREE;
+		;
+    break;}
+case 464:
+#line 2626 "objc-parse.y"
+{yyval.ttype = NULL_TREE; ;
+    break;}
+case 469:
+#line 2633 "objc-parse.y"
+{yyval.ttype = NULL_TREE; ;
+    break;}
+case 473:
+#line 2643 "objc-parse.y"
+{
+		  objc_inherit_code = CLASS_METHOD_DECL;
+		;
+    break;}
+case 474:
+#line 2647 "objc-parse.y"
+{
+		  add_class_method (objc_interface_context, yyvsp[0].ttype);
+		;
+    break;}
+case 476:
+#line 2653 "objc-parse.y"
+{
+		  objc_inherit_code = INSTANCE_METHOD_DECL;
+		;
+    break;}
+case 477:
+#line 2657 "objc-parse.y"
+{
+		  add_instance_method (objc_interface_context, yyvsp[0].ttype);
+		;
+    break;}
+case 479:
+#line 2665 "objc-parse.y"
+{
+		  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
+		;
+    break;}
+case 480:
+#line 2670 "objc-parse.y"
+{
+		  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE);
+		;
+    break;}
+case 481:
+#line 2675 "objc-parse.y"
+{
+		  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 482:
+#line 2680 "objc-parse.y"
+{
+		  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 491:
+#line 2710 "objc-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-2].itype); ;
+    break;}
+case 492:
+#line 2715 "objc-parse.y"
+{ shadow_tag (yyvsp[-1].ttype); ;
+    break;}
+case 493:
+#line 2717 "objc-parse.y"
+{ pedwarn ("empty declaration"); ;
+    break;}
+case 494:
+#line 2722 "objc-parse.y"
+{ push_parm_decl (yyvsp[0].ttype); ;
+    break;}
+case 495:
+#line 2724 "objc-parse.y"
+{ push_parm_decl (yyvsp[0].ttype); ;
+    break;}
+case 496:
+#line 2732 "objc-parse.y"
+{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
+							 yyvsp[-1].ttype),
+					build_tree_list (prefix_attributes,
+							 yyvsp[0].ttype)); ;
+    break;}
+case 497:
+#line 2737 "objc-parse.y"
+{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
+							 yyvsp[-1].ttype),
+					build_tree_list (prefix_attributes,
+							 yyvsp[0].ttype)); ;
+    break;}
+case 498:
+#line 2742 "objc-parse.y"
+{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
+							 yyvsp[-1].ttype),
+					build_tree_list (prefix_attributes,
+							 yyvsp[0].ttype)); ;
+    break;}
+case 499:
+#line 2750 "objc-parse.y"
+{
+	    	  yyval.ttype = NULL_TREE;
+		;
+    break;}
+case 500:
+#line 2754 "objc-parse.y"
+{
+		  /* oh what a kludge! */
+		  yyval.ttype = (tree)1;
+		;
+    break;}
+case 501:
+#line 2759 "objc-parse.y"
+{
+		  pushlevel (0);
+		;
+    break;}
+case 502:
+#line 2763 "objc-parse.y"
+{
+	  	  /* returns a tree list node generated by get_parm_info */
+		  yyval.ttype = yyvsp[0].ttype;
+		  poplevel (0, 0, 0);
+		;
+    break;}
+case 505:
+#line 2778 "objc-parse.y"
+{
+		  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 510:
+#line 2791 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 511:
+#line 2792 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 512:
+#line 2793 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 513:
+#line 2794 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 514:
+#line 2795 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 515:
+#line 2796 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 516:
+#line 2797 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 517:
+#line 2798 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 518:
+#line 2799 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 519:
+#line 2800 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 520:
+#line 2801 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 521:
+#line 2802 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 522:
+#line 2803 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 523:
+#line 2804 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 524:
+#line 2805 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 525:
+#line 2806 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 526:
+#line 2807 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 527:
+#line 2808 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 528:
+#line 2809 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 531:
+#line 2815 "objc-parse.y"
+{
+		  yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 532:
+#line 2820 "objc-parse.y"
+{
+		  yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
+		;
+    break;}
+case 533:
+#line 2825 "objc-parse.y"
+{
+		  yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 534:
+#line 2830 "objc-parse.y"
+{
+		  yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype);
+		;
+    break;}
+case 538:
+#line 2843 "objc-parse.y"
+{
+		  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 539:
+#line 2851 "objc-parse.y"
+{
+		  if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE)
+		    /* just return the expr., remove a level of indirection */
+		    yyval.ttype = TREE_VALUE (yyvsp[0].ttype);
+                  else
+		    /* we have a comma expr., we will collapse later */
+		    yyval.ttype = yyvsp[0].ttype;
+		;
+    break;}
+case 540:
+#line 2863 "objc-parse.y"
+{
+		  yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 541:
+#line 2867 "objc-parse.y"
+{
+		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
+		;
+    break;}
+case 543:
+#line 2875 "objc-parse.y"
+{
+		  yyval.ttype = get_class_reference (yyvsp[0].ttype);
+		;
+    break;}
+case 544:
+#line 2882 "objc-parse.y"
+{ objc_receiver_context = 1; ;
+    break;}
+case 545:
+#line 2884 "objc-parse.y"
+{ objc_receiver_context = 0; ;
+    break;}
+case 546:
+#line 2886 "objc-parse.y"
+{
+		  yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype);
+		;
+    break;}
+case 550:
+#line 2899 "objc-parse.y"
+{
+		  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
+		;
+    break;}
+case 551:
+#line 2906 "objc-parse.y"
+{
+		  yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE);
+		;
+    break;}
+case 552:
+#line 2910 "objc-parse.y"
+{
+		  yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE);
+		;
+    break;}
+case 553:
+#line 2917 "objc-parse.y"
+{
+		  yyval.ttype = yyvsp[-1].ttype;
+		;
+    break;}
+case 554:
+#line 2924 "objc-parse.y"
+{
+		  yyval.ttype = yyvsp[-1].ttype;
+		;
+    break;}
+case 555:
+#line 2933 "objc-parse.y"
+{
+		  yyval.ttype = groktypename (yyvsp[-1].ttype);
+		;
+    break;}
+}
+   /* the action file gets copied in in place of this dollarsign */
+#line 487 "/usr/local/share/bison.simple"
+
+  yyvsp -= yylen;
+  yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+  yylsp -= yylen;
+#endif
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "state stack now");
+      while (ssp1 != yyssp)
+	fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
+
+  *++yyvsp = yyval;
+
+#ifdef YYLSP_NEEDED
+  yylsp++;
+  if (yylen == 0)
+    {
+      yylsp->first_line = yylloc.first_line;
+      yylsp->first_column = yylloc.first_column;
+      yylsp->last_line = (yylsp-1)->last_line;
+      yylsp->last_column = (yylsp-1)->last_column;
+      yylsp->text = 0;
+    }
+  else
+    {
+      yylsp->last_line = (yylsp+yylen-1)->last_line;
+      yylsp->last_column = (yylsp+yylen-1)->last_column;
+    }
+#endif
+
+  /* Now "shift" the result of the reduction.
+     Determine what state that goes to,
+     based on the state we popped back to
+     and the rule number reduced by.  */
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTBASE];
+
+  goto yynewstate;
+
+yyerrlab:   /* here on detecting error */
+
+  if (! yyerrstatus)
+    /* If not already recovering from an error, report this error.  */
+    {
+      ++yynerrs;
+
+#ifdef YYERROR_VERBOSE
+      yyn = yypact[yystate];
+
+      if (yyn > YYFLAG && yyn < YYLAST)
+	{
+	  int size = 0;
+	  char *msg;
+	  int x, count;
+
+	  count = 0;
+	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
+	  for (x = (yyn < 0 ? -yyn : 0);
+	       x < (sizeof(yytname) / sizeof(char *)); x++)
+	    if (yycheck[x + yyn] == x)
+	      size += strlen(yytname[x]) + 15, count++;
+	  msg = (char *) malloc(size + 15);
+	  if (msg != 0)
+	    {
+	      strcpy(msg, "parse error");
+
+	      if (count < 5)
+		{
+		  count = 0;
+		  for (x = (yyn < 0 ? -yyn : 0);
+		       x < (sizeof(yytname) / sizeof(char *)); x++)
+		    if (yycheck[x + yyn] == x)
+		      {
+			strcat(msg, count == 0 ? ", expecting `" : " or `");
+			strcat(msg, yytname[x]);
+			strcat(msg, "'");
+			count++;
+		      }
+		}
+	      yyerror(msg);
+	      free(msg);
+	    }
+	  else
+	    yyerror ("parse error; also virtual memory exceeded");
+	}
+      else
+#endif /* YYERROR_VERBOSE */
+	yyerror("parse error");
+    }
+
+  goto yyerrlab1;
+yyerrlab1:   /* here on error raised explicitly by an action */
+
+  if (yyerrstatus == 3)
+    {
+      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
+
+      /* return failure if at end of input */
+      if (yychar == YYEOF)
+	YYABORT;
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
+
+      yychar = YYEMPTY;
+    }
+
+  /* Else will try to reuse lookahead token
+     after shifting the error token.  */
+
+  yyerrstatus = 3;		/* Each real token shifted decrements this */
+
+  goto yyerrhandle;
+
+yyerrdefault:  /* current state does not do anything special for the error token. */
+
+#if 0
+  /* This is wrong; only states that explicitly want error tokens
+     should shift them.  */
+  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
+  if (yyn) goto yydefault;
+#endif
+
+yyerrpop:   /* pop the current state because it cannot handle the error token */
+
+  if (yyssp == yyss) YYABORT;
+  yyvsp--;
+  yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+  yylsp--;
+#endif
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "Error: state stack now");
+      while (ssp1 != yyssp)
+	fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
+
+yyerrhandle:
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yyerrdefault;
+
+  yyn += YYTERROR;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+    goto yyerrdefault;
+
+  yyn = yytable[yyn];
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+	goto yyerrpop;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+  else if (yyn == 0)
+    goto yyerrpop;
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting error token, ");
+#endif
+
+  *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
+
+  yystate = yyn;
+  goto yynewstate;
+}
+#line 2938 "objc-parse.y"
+
diff --git a/gcc/objc/objc-parse.y b/gcc/objc/objc-parse.y
new file mode 100644
index 0000000..e063599
--- /dev/null
+++ b/gcc/objc/objc-parse.y
@@ -0,0 +1,2938 @@
+/*WARNING: This file is automatically generated!*/
+/* YACC parser for C syntax and for Objective C.  -*-c-*-
+   Copyright (C) 1987, 88, 89, 92-6, 1997 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* This file defines the grammar of C and that of Objective C.
+   ifobjc ... end ifobjc  conditionals contain code for Objective C only.
+   ifc ... end ifc  conditionals contain code for C only.
+   Sed commands in Makefile.in are used to convert this file into
+   c-parse.y and into objc-parse.y.  */
+
+/* To whomever it may concern: I have heard that such a thing was once
+   written by AT&T, but I have never seen it.  */
+
+%expect 66
+
+%{
+#include <stdio.h>
+#include <errno.h>
+#include <setjmp.h>
+
+#include "config.h"
+#include "tree.h"
+#include "input.h"
+#include "c-lex.h"
+#include "c-tree.h"
+#include "flags.h"
+
+#ifdef MULTIBYTE_CHARS
+#include <stdlib.h>
+#include <locale.h>
+#endif
+
+#include "objc-act.h"
+
+/* Since parsers are distinct for each language, put the language string
+   definition here.  */
+char *language_string = "GNU Obj-C";
+
+#ifndef errno
+extern int errno;
+#endif
+
+void yyerror ();
+
+/* Like YYERROR but do call yyerror.  */
+#define YYERROR1 { yyerror ("syntax error"); YYERROR; }
+
+/* Cause the `yydebug' variable to be defined.  */
+#define YYDEBUG 1
+%}
+
+%start program
+
+%union {long itype; tree ttype; enum tree_code code;
+	char *filename; int lineno; int ends_in_label; }
+
+/* All identifiers that are not reserved words
+   and are not declared typedefs in the current block */
+%token IDENTIFIER
+
+/* All identifiers that are declared typedefs in the current block.
+   In some contexts, they are treated just like IDENTIFIER,
+   but they can also serve as typespecs in declarations.  */
+%token TYPENAME
+
+/* Reserved words that specify storage class.
+   yylval contains an IDENTIFIER_NODE which indicates which one.  */
+%token SCSPEC
+
+/* Reserved words that specify type.
+   yylval contains an IDENTIFIER_NODE which indicates which one.  */
+%token TYPESPEC
+
+/* Reserved words that qualify type: "const" or "volatile".
+   yylval contains an IDENTIFIER_NODE which indicates which one.  */
+%token TYPE_QUAL
+
+/* Character or numeric constants.
+   yylval is the node for the constant.  */
+%token CONSTANT
+
+/* String constants in raw form.
+   yylval is a STRING_CST node.  */
+%token STRING
+
+/* "...", used for functions with variable arglists.  */
+%token ELLIPSIS
+
+/* the reserved words */
+/* SCO include files test "ASM", so use something else. */
+%token SIZEOF ENUM STRUCT UNION IF ELSE WHILE DO FOR SWITCH CASE DEFAULT
+%token BREAK CONTINUE RETURN GOTO ASM_KEYWORD TYPEOF ALIGNOF
+%token ATTRIBUTE EXTENSION LABEL
+%token REALPART IMAGPART
+
+/* Add precedence rules to solve dangling else s/r conflict */
+%nonassoc IF
+%nonassoc ELSE
+
+/* Define the operator tokens and their precedences.
+   The value is an integer because, if used, it is the tree code
+   to use in the expression made from the operator.  */
+
+%right <code> ASSIGN '='
+%right <code> '?' ':'
+%left <code> OROR
+%left <code> ANDAND
+%left <code> '|'
+%left <code> '^'
+%left <code> '&'
+%left <code> EQCOMPARE
+%left <code> ARITHCOMPARE
+%left <code> LSHIFT RSHIFT
+%left <code> '+' '-'
+%left <code> '*' '/' '%'
+%right <code> UNARY PLUSPLUS MINUSMINUS
+%left HYPERUNARY
+%left <code> POINTSAT '.' '(' '['
+
+/* The Objective-C keywords.  These are included in C and in
+   Objective C, so that the token codes are the same in both.  */
+%token INTERFACE IMPLEMENTATION END SELECTOR DEFS ENCODE
+%token CLASSNAME PUBLIC PRIVATE PROTECTED PROTOCOL OBJECTNAME CLASS ALIAS
+
+/* Objective-C string constants in raw form.
+   yylval is an OBJC_STRING_CST node.  */
+%token OBJC_STRING
+
+
+%type <code> unop
+
+%type <ttype> identifier IDENTIFIER TYPENAME CONSTANT expr nonnull_exprlist exprlist
+%type <ttype> expr_no_commas cast_expr unary_expr primary string STRING
+%type <ttype> typed_declspecs reserved_declspecs
+%type <ttype> typed_typespecs reserved_typespecquals
+%type <ttype> declmods typespec typespecqual_reserved
+%type <ttype> typed_declspecs_no_prefix_attr reserved_declspecs_no_prefix_attr
+%type <ttype> declmods_no_prefix_attr
+%type <ttype> SCSPEC TYPESPEC TYPE_QUAL nonempty_type_quals maybe_type_qual
+%type <ttype> initdecls notype_initdecls initdcl notype_initdcl
+%type <ttype> init maybeasm
+%type <ttype> asm_operands nonnull_asm_operands asm_operand asm_clobbers
+%type <ttype> maybe_attribute attributes attribute attribute_list attrib
+%type <ttype> any_word
+
+%type <ttype> compstmt
+
+%type <ttype> declarator
+%type <ttype> notype_declarator after_type_declarator
+%type <ttype> parm_declarator
+
+%type <ttype> structsp component_decl_list component_decl_list2
+%type <ttype> component_decl components component_declarator
+%type <ttype> enumlist enumerator
+%type <ttype> typename absdcl absdcl1 type_quals
+%type <ttype> xexpr parms parm identifiers
+
+%type <ttype> parmlist parmlist_1 parmlist_2
+%type <ttype> parmlist_or_identifiers parmlist_or_identifiers_1
+%type <ttype> identifiers_or_typenames
+
+%type <itype> setspecs
+
+%type <ends_in_label> lineno_stmt_or_label lineno_stmt_or_labels stmt_or_label
+
+%type <filename> save_filename
+%type <lineno> save_lineno
+
+/* the Objective-C nonterminals */
+
+%type <ttype> ivar_decl_list ivar_decls ivar_decl ivars ivar_declarator
+%type <ttype> methoddecl unaryselector keywordselector selector
+%type <ttype> keyworddecl receiver objcmessageexpr messageargs
+%type <ttype> keywordexpr keywordarglist keywordarg
+%type <ttype> myparms myparm optparmlist reservedwords objcselectorexpr
+%type <ttype> selectorarg keywordnamelist keywordname objcencodeexpr
+%type <ttype> objc_string non_empty_protocolrefs protocolrefs identifier_list objcprotocolexpr
+
+%type <ttype> CLASSNAME OBJC_STRING OBJECTNAME
+
+%{
+/* Number of statements (loosely speaking) seen so far.  */
+static int stmt_count;
+
+/* Input file and line number of the end of the body of last simple_if;
+   used by the stmt-rule immediately after simple_if returns.  */
+static char *if_stmt_file;
+static int if_stmt_line;
+
+/* List of types and structure classes of the current declaration.  */
+static tree current_declspecs = NULL_TREE;
+static tree prefix_attributes = NULL_TREE;
+
+/* Stack of saved values of current_declspecs and prefix_attributes.  */
+static tree declspec_stack;
+
+/* 1 if we explained undeclared var errors.  */
+static int undeclared_variable_notice;
+
+/* Objective-C specific information */
+
+tree objc_interface_context;
+tree objc_implementation_context;
+tree objc_method_context;
+tree objc_ivar_chain;
+tree objc_ivar_context;
+enum tree_code objc_inherit_code;
+int objc_receiver_context;
+int objc_public_flag;
+
+
+/* Tell yyparse how to print a token's value, if yydebug is set.  */
+
+#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
+extern void yyprint ();
+%}
+
+%%
+program: /* empty */
+		{ if (pedantic)
+		    pedwarn ("ANSI C forbids an empty source file");
+		  finish_file ();
+		}
+	| extdefs
+		{
+		  /* In case there were missing closebraces,
+		     get us back to the global binding level.  */
+		  while (! global_bindings_p ())
+		    poplevel (0, 0, 0);
+		  finish_file ();
+		}
+	;
+
+/* the reason for the strange actions in this rule
+ is so that notype_initdecls when reached via datadef
+ can find a valid list of type and sc specs in $0. */
+
+extdefs:
+	{$<ttype>$ = NULL_TREE; } extdef
+	| extdefs {$<ttype>$ = NULL_TREE; } extdef
+	;
+
+extdef:
+	fndef
+	| datadef
+	| objcdef
+	| ASM_KEYWORD '(' expr ')' ';'
+		{ STRIP_NOPS ($3);
+		  if ((TREE_CODE ($3) == ADDR_EXPR
+		       && TREE_CODE (TREE_OPERAND ($3, 0)) == STRING_CST)
+		      || TREE_CODE ($3) == STRING_CST)
+		    assemble_asm ($3);
+		  else
+		    error ("argument of `asm' is not a constant string"); }
+	| extension extdef
+		{ pedantic = $<itype>1; }
+	;
+
+datadef:
+	  setspecs notype_initdecls ';'
+		{ if (pedantic)
+		    error ("ANSI C forbids data definition with no type or storage class");
+		  else if (!flag_traditional)
+		    warning ("data definition has no type or storage class"); 
+
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($1); }
+        | declmods setspecs notype_initdecls ';'
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_declspecs setspecs initdecls ';'
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2);  }
+        | declmods ';'
+	  { pedwarn ("empty declaration"); }
+	| typed_declspecs ';'
+	  { shadow_tag ($1); }
+	| error ';'
+	| error '}'
+	| ';'
+		{ if (pedantic)
+		    pedwarn ("ANSI C does not allow extra `;' outside of a function"); }
+	;
+
+fndef:
+	  typed_declspecs setspecs declarator
+		{ if (! start_function (current_declspecs, $3,
+					prefix_attributes, NULL_TREE, 0))
+		    YYERROR1;
+		  reinit_parse_for_function (); }
+	  old_style_parm_decls
+		{ store_parm_decls (); }
+	  compstmt_or_error
+		{ finish_function (0); 
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_declspecs setspecs declarator error
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| declmods setspecs notype_declarator
+		{ if (! start_function (current_declspecs, $3,
+					prefix_attributes, NULL_TREE, 0))
+		    YYERROR1;
+		  reinit_parse_for_function (); }
+	  old_style_parm_decls
+		{ store_parm_decls (); }
+	  compstmt_or_error
+		{ finish_function (0); 
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| declmods setspecs notype_declarator error
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| setspecs notype_declarator
+		{ if (! start_function (NULL_TREE, $2,
+					prefix_attributes, NULL_TREE, 0))
+		    YYERROR1;
+		  reinit_parse_for_function (); }
+	  old_style_parm_decls
+		{ store_parm_decls (); }
+	  compstmt_or_error
+		{ finish_function (0); 
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($1); }
+	| setspecs notype_declarator error
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($1); }
+	;
+
+identifier:
+	IDENTIFIER
+	| TYPENAME
+	| OBJECTNAME
+        | CLASSNAME
+	;
+
+unop:     '&'
+		{ $$ = ADDR_EXPR; }
+	| '-'
+		{ $$ = NEGATE_EXPR; }
+	| '+'
+		{ $$ = CONVERT_EXPR; }
+	| PLUSPLUS
+		{ $$ = PREINCREMENT_EXPR; }
+	| MINUSMINUS
+		{ $$ = PREDECREMENT_EXPR; }
+	| '~'
+		{ $$ = BIT_NOT_EXPR; }
+	| '!'
+		{ $$ = TRUTH_NOT_EXPR; }
+	;
+
+expr:	nonnull_exprlist
+		{ $$ = build_compound_expr ($1); }
+	;
+
+exprlist:
+	  /* empty */
+		{ $$ = NULL_TREE; }
+	| nonnull_exprlist
+	;
+
+nonnull_exprlist:
+	expr_no_commas
+		{ $$ = build_tree_list (NULL_TREE, $1); }
+	| nonnull_exprlist ',' expr_no_commas
+		{ chainon ($1, build_tree_list (NULL_TREE, $3)); }
+	;
+
+unary_expr:
+	primary
+	| '*' cast_expr   %prec UNARY
+		{ $$ = build_indirect_ref ($2, "unary *"); }
+	/* __extension__ turns off -pedantic for following primary.  */
+	| extension cast_expr	  %prec UNARY
+		{ $$ = $2;
+		  pedantic = $<itype>1; }
+	| unop cast_expr  %prec UNARY
+		{ $$ = build_unary_op ($1, $2, 0);
+		  overflow_warning ($$); }
+	/* Refer to the address of a label as a pointer.  */
+	| ANDAND identifier
+		{ tree label = lookup_label ($2);
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids `&&'");
+		  if (label == 0)
+		    $$ = null_pointer_node;
+		  else
+		    {
+		      TREE_USED (label) = 1;
+		      $$ = build1 (ADDR_EXPR, ptr_type_node, label);
+		      TREE_CONSTANT ($$) = 1;
+		    }
+		}
+/* This seems to be impossible on some machines, so let's turn it off.
+   You can use __builtin_next_arg to find the anonymous stack args.
+	| '&' ELLIPSIS
+		{ tree types = TYPE_ARG_TYPES (TREE_TYPE (current_function_decl));
+		  $$ = error_mark_node;
+		  if (TREE_VALUE (tree_last (types)) == void_type_node)
+		    error ("`&...' used in function with fixed number of arguments");
+		  else
+		    {
+		      if (pedantic)
+			pedwarn ("ANSI C forbids `&...'");
+		      $$ = tree_last (DECL_ARGUMENTS (current_function_decl));
+		      $$ = build_unary_op (ADDR_EXPR, $$, 0);
+		    } }
+*/
+	| sizeof unary_expr  %prec UNARY
+		{ skip_evaluation--;
+		  if (TREE_CODE ($2) == COMPONENT_REF
+		      && DECL_BIT_FIELD (TREE_OPERAND ($2, 1)))
+		    error ("`sizeof' applied to a bit-field");
+		  $$ = c_sizeof (TREE_TYPE ($2)); }
+	| sizeof '(' typename ')'  %prec HYPERUNARY
+		{ skip_evaluation--;
+		  $$ = c_sizeof (groktypename ($3)); }
+	| alignof unary_expr  %prec UNARY
+		{ skip_evaluation--;
+		  $$ = c_alignof_expr ($2); }
+	| alignof '(' typename ')'  %prec HYPERUNARY
+		{ skip_evaluation--;
+		  $$ = c_alignof (groktypename ($3)); }
+	| REALPART cast_expr %prec UNARY
+		{ $$ = build_unary_op (REALPART_EXPR, $2, 0); }
+	| IMAGPART cast_expr %prec UNARY
+		{ $$ = build_unary_op (IMAGPART_EXPR, $2, 0); }
+	;
+
+sizeof:
+	SIZEOF { skip_evaluation++; }
+	;
+
+alignof:
+	ALIGNOF { skip_evaluation++; }
+	;
+
+cast_expr:
+	unary_expr
+	| '(' typename ')' cast_expr  %prec UNARY
+		{ tree type = groktypename ($2);
+		  $$ = build_c_cast (type, $4); }
+	| '(' typename ')' '{' 
+		{ start_init (NULL_TREE, NULL, 0);
+		  $2 = groktypename ($2);
+		  really_start_incremental_init ($2); }
+	  initlist_maybe_comma '}'  %prec UNARY
+		{ char *name;
+		  tree result = pop_init_level (0);
+		  tree type = $2;
+		  finish_init ();
+
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids constructor expressions");
+		  if (TYPE_NAME (type) != 0)
+		    {
+		      if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
+			name = IDENTIFIER_POINTER (TYPE_NAME (type));
+		      else
+			name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
+		    }
+		  else
+		    name = "";
+		  $$ = result;
+		  if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
+		    {
+		      int failure = complete_array_type (type, $$, 1);
+		      if (failure)
+			abort ();
+		    }
+		}
+	;
+
+expr_no_commas:
+	  cast_expr
+	| expr_no_commas '+' expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas '-' expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas '*' expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas '/' expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas '%' expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas LSHIFT expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas RSHIFT expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas ARITHCOMPARE expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas EQCOMPARE expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas '&' expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas '|' expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas '^' expr_no_commas
+		{ $$ = parser_build_binary_op ($2, $1, $3); }
+	| expr_no_commas ANDAND
+		{ $1 = truthvalue_conversion (default_conversion ($1));
+		  skip_evaluation += $1 == boolean_false_node; }
+	  expr_no_commas
+		{ skip_evaluation -= $1 == boolean_false_node;
+		  $$ = parser_build_binary_op (TRUTH_ANDIF_EXPR, $1, $4); }
+	| expr_no_commas OROR
+		{ $1 = truthvalue_conversion (default_conversion ($1));
+		  skip_evaluation += $1 == boolean_true_node; }
+	  expr_no_commas
+		{ skip_evaluation -= $1 == boolean_true_node;
+		  $$ = parser_build_binary_op (TRUTH_ORIF_EXPR, $1, $4); }
+	| expr_no_commas '?'
+		{ $1 = truthvalue_conversion (default_conversion ($1));
+		  skip_evaluation += $1 == boolean_false_node; }
+          expr ':'
+		{ skip_evaluation += (($1 == boolean_true_node)
+				      - ($1 == boolean_false_node)); }
+	  expr_no_commas
+		{ skip_evaluation -= $1 == boolean_true_node;
+		  $$ = build_conditional_expr ($1, $4, $7); }
+	| expr_no_commas '?'
+		{ if (pedantic)
+		    pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
+		  /* Make sure first operand is calculated only once.  */
+		  $<ttype>2 = save_expr ($1);
+		  $1 = truthvalue_conversion (default_conversion ($<ttype>2));
+		  skip_evaluation += $1 == boolean_true_node; }
+	  ':' expr_no_commas
+		{ skip_evaluation -= $1 == boolean_true_node;
+		  $$ = build_conditional_expr ($1, $<ttype>2, $5); }
+	| expr_no_commas '=' expr_no_commas
+		{ $$ = build_modify_expr ($1, NOP_EXPR, $3);
+		  C_SET_EXP_ORIGINAL_CODE ($$, MODIFY_EXPR); }
+	| expr_no_commas ASSIGN expr_no_commas
+		{ $$ = build_modify_expr ($1, $2, $3);
+		  /* This inhibits warnings in truthvalue_conversion.  */
+		  C_SET_EXP_ORIGINAL_CODE ($$, ERROR_MARK); }
+	;
+
+primary:
+	IDENTIFIER
+		{
+		  $$ = lastiddecl;
+		  if (!$$ || $$ == error_mark_node)
+		    {
+		      if (yychar == YYEMPTY)
+			yychar = YYLEX;
+		      if (yychar == '(')
+			{
+			  tree decl;
+
+			  if (objc_receiver_context
+			      && ! (objc_receiver_context
+				    && strcmp (IDENTIFIER_POINTER ($1), "super")))
+			    /* we have a message to super */
+			    $$ = get_super_receiver ();
+			  else if (objc_method_context
+				   && (decl = is_ivar (objc_ivar_chain, $1)))
+			    {
+			      if (is_private (decl))
+				$$ = error_mark_node;
+			      else
+				$$ = build_ivar_reference ($1);
+			    }
+			  else
+			    {
+			      /* Ordinary implicit function declaration.  */
+			      $$ = implicitly_declare ($1);
+			      assemble_external ($$);
+			      TREE_USED ($$) = 1;
+			    }
+			}
+		      else if (current_function_decl == 0)
+			{
+			  error ("`%s' undeclared here (not in a function)",
+				 IDENTIFIER_POINTER ($1));
+			  $$ = error_mark_node;
+			}
+		      else
+			{
+			  tree decl;
+
+		          if (objc_receiver_context
+			      && ! strcmp (IDENTIFIER_POINTER ($1), "super"))
+			    /* we have a message to super */
+			    $$ = get_super_receiver ();
+			  else if (objc_method_context
+				   && (decl = is_ivar (objc_ivar_chain, $1)))
+			    {
+			      if (is_private (decl))
+				$$ = error_mark_node;
+			      else
+				$$ = build_ivar_reference ($1);
+			    }
+			  else
+			    {
+			      if (IDENTIFIER_GLOBAL_VALUE ($1) != error_mark_node
+				  || IDENTIFIER_ERROR_LOCUS ($1) != current_function_decl)
+				{
+				  error ("`%s' undeclared (first use this function)",
+					 IDENTIFIER_POINTER ($1));
+
+				  if (! undeclared_variable_notice)
+				    {
+				      error ("(Each undeclared identifier is reported only once");
+				      error ("for each function it appears in.)");
+				      undeclared_variable_notice = 1;
+				    }
+				}
+			      $$ = error_mark_node;
+			      /* Prevent repeated error messages.  */
+			      IDENTIFIER_GLOBAL_VALUE ($1) = error_mark_node;
+			      IDENTIFIER_ERROR_LOCUS ($1) = current_function_decl;
+			    }
+			}
+		    }
+		  else if (TREE_TYPE ($$) == error_mark_node)
+		    $$ = error_mark_node;
+		  else if (C_DECL_ANTICIPATED ($$))
+		    {
+		      /* The first time we see a build-in function used,
+			 if it has not been declared.  */
+		      C_DECL_ANTICIPATED ($$) = 0;
+		      if (yychar == YYEMPTY)
+			yychar = YYLEX;
+		      if (yychar == '(')
+			{
+			  /* Omit the implicit declaration we
+			     would ordinarily do, so we don't lose
+			     the actual built in type.
+			     But print a diagnostic for the mismatch.  */
+			  if (objc_method_context
+			      && is_ivar (objc_ivar_chain, $1))
+			    error ("Instance variable `%s' implicitly declared as function",
+				   IDENTIFIER_POINTER (DECL_NAME ($$)));
+			  else
+			    if (TREE_CODE ($$) != FUNCTION_DECL)
+			      error ("`%s' implicitly declared as function",
+				     IDENTIFIER_POINTER (DECL_NAME ($$)));
+			  else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE ($$)))
+				    != TYPE_MODE (integer_type_node))
+				   && (TREE_TYPE (TREE_TYPE ($$))
+				       != void_type_node))
+			    pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
+				     IDENTIFIER_POINTER (DECL_NAME ($$)));
+			  /* If it really returns void, change that to int.  */
+			  if (TREE_TYPE (TREE_TYPE ($$)) == void_type_node)
+			    TREE_TYPE ($$)
+			      = build_function_type (integer_type_node,
+						     TYPE_ARG_TYPES (TREE_TYPE ($$)));
+			}
+		      else
+			pedwarn ("built-in function `%s' used without declaration",
+				 IDENTIFIER_POINTER (DECL_NAME ($$)));
+
+		      /* Do what we would ordinarily do when a fn is used.  */
+		      assemble_external ($$);
+		      TREE_USED ($$) = 1;
+		    }
+		  else
+		    {
+		      assemble_external ($$);
+		      TREE_USED ($$) = 1;
+		      /* we have a definition - still check if iVariable */
+
+		      if (!objc_receiver_context
+			  || (objc_receiver_context
+			      && strcmp (IDENTIFIER_POINTER ($1), "super")))
+                        {
+			  tree decl;
+
+			  if (objc_method_context
+			      && (decl = is_ivar (objc_ivar_chain, $1)))
+                            {
+                              if (IDENTIFIER_LOCAL_VALUE ($1))
+                                warning ("local declaration of `%s' hides instance variable",
+	                                 IDENTIFIER_POINTER ($1));
+                              else
+ 				{
+ 				  if (is_private (decl))
+ 				    $$ = error_mark_node;
+ 				  else
+ 				    $$ = build_ivar_reference ($1);
+ 				}
+                            }
+			}
+                      else /* we have a message to super */
+		        $$ = get_super_receiver ();
+		    }
+
+		  if (TREE_CODE ($$) == CONST_DECL)
+		    {
+		      $$ = DECL_INITIAL ($$);
+		      /* This is to prevent an enum whose value is 0
+			 from being considered a null pointer constant.  */
+		      $$ = build1 (NOP_EXPR, TREE_TYPE ($$), $$);
+		      TREE_CONSTANT ($$) = 1;
+		    }
+		}
+	| CONSTANT
+	| string
+		{ $$ = combine_strings ($1); }
+	| '(' expr ')'
+		{ char class = TREE_CODE_CLASS (TREE_CODE ($2));
+		  if (class == 'e' || class == '1'
+		      || class == '2' || class == '<')
+		    C_SET_EXP_ORIGINAL_CODE ($2, ERROR_MARK);
+		  $$ = $2; }
+	| '(' error ')'
+		{ $$ = error_mark_node; }
+	| '('
+		{ if (current_function_decl == 0)
+		    {
+		      error ("braced-group within expression allowed only inside a function");
+		      YYERROR;
+		    }
+		  /* We must force a BLOCK for this level
+		     so that, if it is not expanded later,
+		     there is a way to turn off the entire subtree of blocks
+		     that are contained in it.  */
+		  keep_next_level ();
+		  push_iterator_stack ();
+		  push_label_level ();
+		  $<ttype>$ = expand_start_stmt_expr (); }
+	  compstmt ')'
+		{ tree rtl_exp;
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids braced-groups within expressions");
+		  pop_iterator_stack ();
+		  pop_label_level ();
+		  rtl_exp = expand_end_stmt_expr ($<ttype>2);
+		  /* The statements have side effects, so the group does.  */
+		  TREE_SIDE_EFFECTS (rtl_exp) = 1;
+
+		  if (TREE_CODE ($3) == BLOCK)
+		    {
+		      /* Make a BIND_EXPR for the BLOCK already made.  */
+		      $$ = build (BIND_EXPR, TREE_TYPE (rtl_exp),
+				  NULL_TREE, rtl_exp, $3);
+		      /* Remove the block from the tree at this point.
+			 It gets put back at the proper place
+			 when the BIND_EXPR is expanded.  */
+		      delete_block ($3);
+		    }
+		  else
+		    $$ = $3;
+		}
+	| primary '(' exprlist ')'   %prec '.'
+		{ $$ = build_function_call ($1, $3); }
+	| primary '[' expr ']'   %prec '.'
+		{ $$ = build_array_ref ($1, $3); }
+	| primary '.' identifier
+		{
+                  if (doing_objc_thang)
+                    {
+		      if (is_public ($1, $3))
+			$$ = build_component_ref ($1, $3);
+		      else
+			$$ = error_mark_node;
+		    }
+                  else
+		    $$ = build_component_ref ($1, $3);
+		}
+	| primary POINTSAT identifier
+		{
+                  tree expr = build_indirect_ref ($1, "->");
+
+                  if (doing_objc_thang)
+                    {
+		      if (is_public (expr, $3))
+			$$ = build_component_ref (expr, $3);
+		      else
+			$$ = error_mark_node;
+		    }
+                  else
+                    $$ = build_component_ref (expr, $3);
+		}
+	| primary PLUSPLUS
+		{ $$ = build_unary_op (POSTINCREMENT_EXPR, $1, 0); }
+	| primary MINUSMINUS
+		{ $$ = build_unary_op (POSTDECREMENT_EXPR, $1, 0); }
+	| objcmessageexpr
+		{ $$ = build_message_expr ($1); }
+	| objcselectorexpr
+		{ $$ = build_selector_expr ($1); }
+	| objcprotocolexpr
+		{ $$ = build_protocol_expr ($1); }
+	| objcencodeexpr
+		{ $$ = build_encode_expr ($1); }
+	| objc_string
+		{ $$ = build_objc_string_object ($1); }
+	;
+
+/* Produces a STRING_CST with perhaps more STRING_CSTs chained onto it.  */
+string:
+	  STRING
+	| string STRING
+		{ $$ = chainon ($1, $2); }
+	;
+
+/* Produces an OBJC_STRING_CST with perhaps more OBJC_STRING_CSTs chained
+   onto it.  */
+objc_string:
+	  OBJC_STRING
+	| objc_string OBJC_STRING
+		{ $$ = chainon ($1, $2); }
+	;
+
+old_style_parm_decls:
+	/* empty */
+	| datadecls
+	| datadecls ELLIPSIS
+		/* ... is used here to indicate a varargs function.  */
+		{ c_mark_varargs ();
+		  if (pedantic)
+		    pedwarn ("ANSI C does not permit use of `varargs.h'"); }
+	;
+
+/* The following are analogous to lineno_decl, decls and decl
+   except that they do not allow nested functions.
+   They are used for old-style parm decls.  */
+lineno_datadecl:
+	  save_filename save_lineno datadecl
+		{ }
+	;
+
+datadecls:
+	lineno_datadecl
+	| errstmt
+	| datadecls lineno_datadecl
+	| lineno_datadecl errstmt
+	;
+
+/* We don't allow prefix attributes here because they cause reduce/reduce
+   conflicts: we can't know whether we're parsing a function decl with
+   attribute suffix, or function defn with attribute prefix on first old
+   style parm.  */
+datadecl:
+	typed_declspecs_no_prefix_attr setspecs initdecls ';'
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| declmods_no_prefix_attr setspecs notype_initdecls ';'
+		{ current_declspecs = TREE_VALUE (declspec_stack);	
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_declspecs_no_prefix_attr ';'
+		{ shadow_tag_warned ($1, 1);
+		  pedwarn ("empty declaration"); }
+	| declmods_no_prefix_attr ';'
+		{ pedwarn ("empty declaration"); }
+	;
+
+/* This combination which saves a lineno before a decl
+   is the normal thing to use, rather than decl itself.
+   This is to avoid shift/reduce conflicts in contexts
+   where statement labels are allowed.  */
+lineno_decl:
+	  save_filename save_lineno decl
+		{ }
+	;
+
+decls:
+	lineno_decl
+	| errstmt
+	| decls lineno_decl
+	| lineno_decl errstmt
+	;
+
+/* records the type and storage class specs to use for processing
+   the declarators that follow.
+   Maintains a stack of outer-level values of current_declspecs,
+   for the sake of parm declarations nested in function declarators.  */
+setspecs: /* empty */
+		{ $$ = suspend_momentary ();
+		  pending_xref_error ();
+		  declspec_stack = tree_cons (prefix_attributes,
+					      current_declspecs,
+					      declspec_stack);
+		  split_specs_attrs ($<ttype>0,
+				     &current_declspecs, &prefix_attributes); }
+	;
+
+/* ??? Yuck.  See after_type_declarator.  */
+setattrs: /* empty */
+		{ prefix_attributes = chainon (prefix_attributes, $<ttype>0); }
+	;
+
+decl:
+	typed_declspecs setspecs initdecls ';'
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| declmods setspecs notype_initdecls ';'
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_declspecs setspecs nested_function
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| declmods setspecs notype_nested_function
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_declspecs ';'
+		{ shadow_tag ($1); }
+	| declmods ';'
+		{ pedwarn ("empty declaration"); }
+	| extension decl
+		{ pedantic = $<itype>1; }
+	;
+
+/* Declspecs which contain at least one type specifier or typedef name.
+   (Just `const' or `volatile' is not enough.)
+   A typedef'd name following these is taken as a name to be declared.
+   Declspecs have a non-NULL TREE_VALUE, attributes do not.  */
+
+typed_declspecs:
+	  typespec reserved_declspecs
+		{ $$ = tree_cons (NULL_TREE, $1, $2); }
+	| declmods typespec reserved_declspecs
+		{ $$ = chainon ($3, tree_cons (NULL_TREE, $2, $1)); }
+	;
+
+reserved_declspecs:  /* empty */
+		{ $$ = NULL_TREE; }
+	| reserved_declspecs typespecqual_reserved
+		{ $$ = tree_cons (NULL_TREE, $2, $1); }
+	| reserved_declspecs SCSPEC
+		{ if (extra_warnings)
+		    warning ("`%s' is not at beginning of declaration",
+			     IDENTIFIER_POINTER ($2));
+		  $$ = tree_cons (NULL_TREE, $2, $1); }
+	| reserved_declspecs attributes
+		{ $$ = tree_cons ($2, NULL_TREE, $1); }
+	;
+
+typed_declspecs_no_prefix_attr:
+	  typespec reserved_declspecs_no_prefix_attr
+		{ $$ = tree_cons (NULL_TREE, $1, $2); }
+	| declmods_no_prefix_attr typespec reserved_declspecs_no_prefix_attr
+		{ $$ = chainon ($3, tree_cons (NULL_TREE, $2, $1)); }
+	;
+
+reserved_declspecs_no_prefix_attr:
+	  /* empty */
+		{ $$ = NULL_TREE; }
+	| reserved_declspecs_no_prefix_attr typespecqual_reserved
+		{ $$ = tree_cons (NULL_TREE, $2, $1); }
+	| reserved_declspecs_no_prefix_attr SCSPEC
+		{ if (extra_warnings)
+		    warning ("`%s' is not at beginning of declaration",
+			     IDENTIFIER_POINTER ($2));
+		  $$ = tree_cons (NULL_TREE, $2, $1); }
+	;
+
+/* List of just storage classes, type modifiers, and prefix attributes.
+   A declaration can start with just this, but then it cannot be used
+   to redeclare a typedef-name.
+   Declspecs have a non-NULL TREE_VALUE, attributes do not.  */
+
+declmods:
+	  declmods_no_prefix_attr
+		{ $$ = $1; }
+	| attributes
+		{ $$ = tree_cons ($1, NULL_TREE, NULL_TREE); }
+	| declmods declmods_no_prefix_attr
+		{ $$ = chainon ($2, $1); }
+	| declmods attributes
+		{ $$ = tree_cons ($2, NULL_TREE, $1); }
+	;
+
+declmods_no_prefix_attr:
+	  TYPE_QUAL
+		{ $$ = tree_cons (NULL_TREE, $1, NULL_TREE);
+		  TREE_STATIC ($$) = 1; }
+	| SCSPEC
+		{ $$ = tree_cons (NULL_TREE, $1, NULL_TREE); }
+	| declmods_no_prefix_attr TYPE_QUAL
+		{ $$ = tree_cons (NULL_TREE, $2, $1);
+		  TREE_STATIC ($$) = 1; }
+	| declmods_no_prefix_attr SCSPEC
+		{ if (extra_warnings && TREE_STATIC ($1))
+		    warning ("`%s' is not at beginning of declaration",
+			     IDENTIFIER_POINTER ($2));
+		  $$ = tree_cons (NULL_TREE, $2, $1);
+		  TREE_STATIC ($$) = TREE_STATIC ($1); }
+	;
+
+
+/* Used instead of declspecs where storage classes are not allowed
+   (that is, for typenames and structure components).
+   Don't accept a typedef-name if anything but a modifier precedes it.  */
+
+typed_typespecs:
+	  typespec reserved_typespecquals
+		{ $$ = tree_cons (NULL_TREE, $1, $2); }
+	| nonempty_type_quals typespec reserved_typespecquals
+		{ $$ = chainon ($3, tree_cons (NULL_TREE, $2, $1)); }
+	;
+
+reserved_typespecquals:  /* empty */
+		{ $$ = NULL_TREE; }
+	| reserved_typespecquals typespecqual_reserved
+		{ $$ = tree_cons (NULL_TREE, $2, $1); }
+	;
+
+/* A typespec (but not a type qualifier).
+   Once we have seen one of these in a declaration,
+   if a typedef name appears then it is being redeclared.  */
+
+typespec: TYPESPEC
+	| structsp
+	| TYPENAME
+		{ /* For a typedef name, record the meaning, not the name.
+		     In case of `foo foo, bar;'.  */
+		  $$ = lookup_name ($1); }
+	| CLASSNAME protocolrefs
+		{ $$ = get_static_reference ($1, $2); }
+	| OBJECTNAME protocolrefs
+		{ $$ = get_object_reference ($2); }
+
+/* Make "<SomeProtocol>" equivalent to "id <SomeProtocol>"
+   - nisse@lysator.liu.se */
+        | non_empty_protocolrefs
+                { $$ = get_object_reference ($1); }
+	| TYPEOF '(' expr ')'
+		{ $$ = TREE_TYPE ($3); }
+	| TYPEOF '(' typename ')'
+		{ $$ = groktypename ($3); }
+	;
+
+/* A typespec that is a reserved word, or a type qualifier.  */
+
+typespecqual_reserved: TYPESPEC
+	| TYPE_QUAL
+	| structsp
+	;
+
+initdecls:
+	initdcl
+	| initdecls ',' initdcl
+	;
+
+notype_initdecls:
+	notype_initdcl
+	| notype_initdecls ',' initdcl
+	;
+
+maybeasm:
+	  /* empty */
+		{ $$ = NULL_TREE; }
+	| ASM_KEYWORD '(' string ')'
+		{ if (TREE_CHAIN ($3)) $3 = combine_strings ($3);
+		  $$ = $3;
+		}
+	;
+
+initdcl:
+	  declarator maybeasm maybe_attribute '='
+		{ $<ttype>$ = start_decl ($1, current_declspecs, 1,
+					  $3, prefix_attributes);
+		  start_init ($<ttype>$, $2, global_bindings_p ()); }
+	  init
+/* Note how the declaration of the variable is in effect while its init is parsed! */
+		{ finish_init ();
+		  finish_decl ($<ttype>5, $6, $2); }
+	| declarator maybeasm maybe_attribute
+		{ tree d = start_decl ($1, current_declspecs, 0,
+				       $3, prefix_attributes);
+		  finish_decl (d, NULL_TREE, $2); 
+                }
+	;
+
+notype_initdcl:
+	  notype_declarator maybeasm maybe_attribute '='
+		{ $<ttype>$ = start_decl ($1, current_declspecs, 1,
+					  $3, prefix_attributes);
+		  start_init ($<ttype>$, $2, global_bindings_p ()); }
+	  init
+/* Note how the declaration of the variable is in effect while its init is parsed! */
+		{ finish_init ();
+		  decl_attributes ($<ttype>5, $3, prefix_attributes);
+		  finish_decl ($<ttype>5, $6, $2); }
+	| notype_declarator maybeasm maybe_attribute
+		{ tree d = start_decl ($1, current_declspecs, 0,
+				       $3, prefix_attributes);
+		  finish_decl (d, NULL_TREE, $2); }
+	;
+/* the * rules are dummies to accept the Apollo extended syntax
+   so that the header files compile. */
+maybe_attribute:
+      /* empty */
+  		{ $$ = NULL_TREE; }
+	| attributes
+		{ $$ = $1; }
+	;
+ 
+attributes:
+      attribute
+		{ $$ = $1; }
+	| attributes attribute
+		{ $$ = chainon ($1, $2); }
+	;
+
+attribute:
+      ATTRIBUTE '(' '(' attribute_list ')' ')'
+		{ $$ = $4; }
+	;
+
+attribute_list:
+      attrib
+		{ $$ = $1; }
+	| attribute_list ',' attrib
+		{ $$ = chainon ($1, $3); }
+	;
+ 
+attrib:
+    /* empty */
+		{ $$ = NULL_TREE; }
+	| any_word
+		{ $$ = build_tree_list ($1, NULL_TREE); }
+	| any_word '(' IDENTIFIER ')'
+		{ $$ = build_tree_list ($1, build_tree_list (NULL_TREE, $3)); }
+	| any_word '(' IDENTIFIER ',' nonnull_exprlist ')'
+		{ $$ = build_tree_list ($1, tree_cons (NULL_TREE, $3, $5)); }
+	| any_word '(' exprlist ')'
+		{ $$ = build_tree_list ($1, $3); }
+	;
+
+/* This still leaves out most reserved keywords,
+   shouldn't we include them?  */
+
+any_word:
+	  identifier
+	| SCSPEC
+	| TYPESPEC
+	| TYPE_QUAL
+	;
+
+/* Initializers.  `init' is the entry point.  */
+
+init:
+	expr_no_commas
+	| '{'
+		{ really_start_incremental_init (NULL_TREE);
+		  /* Note that the call to clear_momentary
+		     is in process_init_element.  */
+		  push_momentary (); }
+	  initlist_maybe_comma '}'
+		{ $$ = pop_init_level (0);
+		  if ($$ == error_mark_node
+		      && ! (yychar == STRING || yychar == CONSTANT))
+		    pop_momentary ();
+		  else
+		    pop_momentary_nofree (); }
+
+	| error
+		{ $$ = error_mark_node; }
+	;
+
+/* `initlist_maybe_comma' is the guts of an initializer in braces.  */
+initlist_maybe_comma:
+	  /* empty */
+		{ if (pedantic)
+		    pedwarn ("ANSI C forbids empty initializer braces"); }
+	| initlist1 maybecomma
+	;
+
+initlist1:
+	  initelt
+	| initlist1 ',' initelt
+	;
+
+/* `initelt' is a single element of an initializer.
+   It may use braces.  */
+initelt:
+	expr_no_commas
+		{ process_init_element ($1); }
+	| '{' 
+		{ push_init_level (0); }
+	  initlist_maybe_comma '}'
+		{ process_init_element (pop_init_level (0)); }
+	| error
+	/* These are for labeled elements.  The syntax for an array element
+	   initializer conflicts with the syntax for an Objective-C message,
+	   so don't include these productions in the Objective-C grammar.  */
+	| identifier ':'
+		{ set_init_label ($1); }
+	  initelt
+	| '.' identifier '='
+		{ set_init_label ($2); }
+	  initelt
+	;
+
+nested_function:
+	  declarator
+		{ push_c_function_context ();
+		  if (! start_function (current_declspecs, $1,
+					prefix_attributes, NULL_TREE, 1))
+		    {
+		      pop_c_function_context ();
+		      YYERROR1;
+		    }
+		  reinit_parse_for_function (); }
+	   old_style_parm_decls
+		{ store_parm_decls (); }
+/* This used to use compstmt_or_error.
+   That caused a bug with input `f(g) int g {}',
+   where the use of YYERROR1 above caused an error
+   which then was handled by compstmt_or_error.
+   There followed a repeated execution of that same rule,
+   which called YYERROR1 again, and so on.  */
+	  compstmt
+		{ finish_function (1);
+		  pop_c_function_context (); }
+	;
+
+notype_nested_function:
+	  notype_declarator
+		{ push_c_function_context ();
+		  if (! start_function (current_declspecs, $1,
+					prefix_attributes, NULL_TREE, 1))
+		    {
+		      pop_c_function_context ();
+		      YYERROR1;
+		    }
+		  reinit_parse_for_function (); }
+	  old_style_parm_decls
+		{ store_parm_decls (); }
+/* This used to use compstmt_or_error.
+   That caused a bug with input `f(g) int g {}',
+   where the use of YYERROR1 above caused an error
+   which then was handled by compstmt_or_error.
+   There followed a repeated execution of that same rule,
+   which called YYERROR1 again, and so on.  */
+	  compstmt
+		{ finish_function (1);
+		  pop_c_function_context (); }
+	;
+
+/* Any kind of declarator (thus, all declarators allowed
+   after an explicit typespec).  */
+
+declarator:
+	  after_type_declarator
+	| notype_declarator
+	;
+
+/* A declarator that is allowed only after an explicit typespec.  */
+
+after_type_declarator:
+	  '(' after_type_declarator ')'
+		{ $$ = $2; }
+	| after_type_declarator '(' parmlist_or_identifiers  %prec '.'
+		{ $$ = build_nt (CALL_EXPR, $1, $3, NULL_TREE); }
+/*	| after_type_declarator '(' error ')'  %prec '.'
+		{ $$ = build_nt (CALL_EXPR, $1, NULL_TREE, NULL_TREE);
+		  poplevel (0, 0, 0); }  */
+	| after_type_declarator '[' expr ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, $1, $3); }
+	| after_type_declarator '[' ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, $1, NULL_TREE); }
+	| '*' type_quals after_type_declarator  %prec UNARY
+		{ $$ = make_pointer_declarator ($2, $3); }
+	/* ??? Yuck.  setattrs is a quick hack.  We can't use
+	   prefix_attributes because $1 only applies to this
+	   declarator.  We assume setspecs has already been done.
+	   setattrs also avoids 5 reduce/reduce conflicts (otherwise multiple
+	   attributes could be recognized here or in `attributes').  */
+	| attributes setattrs after_type_declarator
+		{ $$ = $3; }
+	| TYPENAME
+	| OBJECTNAME
+	;
+
+/* Kinds of declarator that can appear in a parameter list
+   in addition to notype_declarator.  This is like after_type_declarator
+   but does not allow a typedef name in parentheses as an identifier
+   (because it would conflict with a function with that typedef as arg).  */
+
+parm_declarator:
+	  parm_declarator '(' parmlist_or_identifiers  %prec '.'
+		{ $$ = build_nt (CALL_EXPR, $1, $3, NULL_TREE); }
+/*	| parm_declarator '(' error ')'  %prec '.'
+		{ $$ = build_nt (CALL_EXPR, $1, NULL_TREE, NULL_TREE);
+		  poplevel (0, 0, 0); }  */
+	| parm_declarator '[' expr ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, $1, $3); }
+	| parm_declarator '[' ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, $1, NULL_TREE); }
+	| '*' type_quals parm_declarator  %prec UNARY
+		{ $$ = make_pointer_declarator ($2, $3); }
+	/* ??? Yuck.  setattrs is a quick hack.  We can't use
+	   prefix_attributes because $1 only applies to this
+	   declarator.  We assume setspecs has already been done.
+	   setattrs also avoids 5 reduce/reduce conflicts (otherwise multiple
+	   attributes could be recognized here or in `attributes').  */
+	| attributes setattrs parm_declarator
+		{ $$ = $3; }
+	| TYPENAME
+	;
+
+/* A declarator allowed whether or not there has been
+   an explicit typespec.  These cannot redeclare a typedef-name.  */
+
+notype_declarator:
+	  notype_declarator '(' parmlist_or_identifiers  %prec '.'
+		{ $$ = build_nt (CALL_EXPR, $1, $3, NULL_TREE); }
+/*	| notype_declarator '(' error ')'  %prec '.'
+		{ $$ = build_nt (CALL_EXPR, $1, NULL_TREE, NULL_TREE);
+		  poplevel (0, 0, 0); }  */
+	| '(' notype_declarator ')'
+		{ $$ = $2; }
+	| '*' type_quals notype_declarator  %prec UNARY
+		{ $$ = make_pointer_declarator ($2, $3); }
+	| notype_declarator '[' expr ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, $1, $3); }
+	| notype_declarator '[' ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, $1, NULL_TREE); }
+	/* ??? Yuck.  setattrs is a quick hack.  We can't use
+	   prefix_attributes because $1 only applies to this
+	   declarator.  We assume setspecs has already been done.
+	   setattrs also avoids 5 reduce/reduce conflicts (otherwise multiple
+	   attributes could be recognized here or in `attributes').  */
+	| attributes setattrs notype_declarator
+		{ $$ = $3; }
+	| IDENTIFIER
+	;
+
+structsp:
+	  STRUCT identifier '{'
+		{ $$ = start_struct (RECORD_TYPE, $2);
+		  /* Start scope of tag before parsing components.  */
+		}
+	  component_decl_list '}' maybe_attribute 
+		{ $$ = finish_struct ($<ttype>4, $5, $7); }
+	| STRUCT '{' component_decl_list '}' maybe_attribute
+		{ $$ = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
+				      $3, $5);
+		}
+	| STRUCT identifier
+		{ $$ = xref_tag (RECORD_TYPE, $2); }
+	| UNION identifier '{'
+		{ $$ = start_struct (UNION_TYPE, $2); }
+	  component_decl_list '}' maybe_attribute
+		{ $$ = finish_struct ($<ttype>4, $5, $7); }
+	| UNION '{' component_decl_list '}' maybe_attribute
+		{ $$ = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
+				      $3, $5);
+		}
+	| UNION identifier
+		{ $$ = xref_tag (UNION_TYPE, $2); }
+	| ENUM identifier '{'
+		{ $<itype>3 = suspend_momentary ();
+		  $$ = start_enum ($2); }
+	  enumlist maybecomma_warn '}' maybe_attribute
+		{ $$ = finish_enum ($<ttype>4, nreverse ($5), $8);
+		  resume_momentary ($<itype>3); }
+	| ENUM '{'
+		{ $<itype>2 = suspend_momentary ();
+		  $$ = start_enum (NULL_TREE); }
+	  enumlist maybecomma_warn '}' maybe_attribute
+		{ $$ = finish_enum ($<ttype>3, nreverse ($4), $7);
+		  resume_momentary ($<itype>2); }
+	| ENUM identifier
+		{ $$ = xref_tag (ENUMERAL_TYPE, $2); }
+	;
+
+maybecomma:
+	  /* empty */
+	| ','
+	;
+
+maybecomma_warn:
+	  /* empty */
+	| ','
+		{ if (pedantic) pedwarn ("comma at end of enumerator list"); }
+	;
+
+component_decl_list:
+	  component_decl_list2
+		{ $$ = $1; }
+	| component_decl_list2 component_decl
+		{ $$ = chainon ($1, $2);
+		  pedwarn ("no semicolon at end of struct or union"); }
+	;
+
+component_decl_list2:	/* empty */
+		{ $$ = NULL_TREE; }
+	| component_decl_list2 component_decl ';'
+		{ $$ = chainon ($1, $2); }
+	| component_decl_list2 ';'
+		{ if (pedantic)
+		    pedwarn ("extra semicolon in struct or union specified"); }
+	/* foo(sizeof(struct{ @defs(ClassName)})); */
+	| DEFS '(' CLASSNAME ')'
+		{
+		  tree interface = lookup_interface ($3);
+
+		  if (interface)
+		    $$ = get_class_ivars (interface);
+		  else
+		    {
+		      error ("Cannot find interface declaration for `%s'",
+			     IDENTIFIER_POINTER ($3));
+		      $$ = NULL_TREE;
+		    }
+		}
+	;
+
+/* There is a shift-reduce conflict here, because `components' may
+   start with a `typename'.  It happens that shifting (the default resolution)
+   does the right thing, because it treats the `typename' as part of
+   a `typed_typespecs'.
+
+   It is possible that this same technique would allow the distinction
+   between `notype_initdecls' and `initdecls' to be eliminated.
+   But I am being cautious and not trying it.  */
+
+component_decl:
+	  typed_typespecs setspecs components
+		{ $$ = $3;
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_typespecs
+		{ if (pedantic)
+		    pedwarn ("ANSI C forbids member declarations with no members");
+		  shadow_tag($1);
+		  $$ = NULL_TREE; }
+	| nonempty_type_quals setspecs components
+		{ $$ = $3;
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| nonempty_type_quals
+		{ if (pedantic)
+		    pedwarn ("ANSI C forbids member declarations with no members");
+		  shadow_tag($1);
+		  $$ = NULL_TREE; }
+	| error
+		{ $$ = NULL_TREE; }
+	| extension component_decl
+		{ $$ = $2;
+		  pedantic = $<itype>1; }
+	;
+
+components:
+	  component_declarator
+	| components ',' component_declarator
+		{ $$ = chainon ($1, $3); }
+	;
+
+component_declarator:
+	  save_filename save_lineno declarator maybe_attribute
+		{ $$ = grokfield ($1, $2, $3, current_declspecs, NULL_TREE);
+		  decl_attributes ($$, $4, prefix_attributes); }
+	| save_filename save_lineno
+	  declarator ':' expr_no_commas maybe_attribute
+		{ $$ = grokfield ($1, $2, $3, current_declspecs, $5);
+		  decl_attributes ($$, $6, prefix_attributes); }
+	| save_filename save_lineno ':' expr_no_commas maybe_attribute
+		{ $$ = grokfield ($1, $2, NULL_TREE, current_declspecs, $4);
+		  decl_attributes ($$, $5, prefix_attributes); }
+	;
+
+/* We chain the enumerators in reverse order.
+   They are put in forward order where enumlist is used.
+   (The order used to be significant, but no longer is so.
+   However, we still maintain the order, just to be clean.)  */
+
+enumlist:
+	  enumerator
+	| enumlist ',' enumerator
+		{ if ($1 == error_mark_node)
+		    $$ = $1;
+		  else
+		    $$ = chainon ($3, $1); }
+	| error
+		{ $$ = error_mark_node; }
+	;
+
+
+enumerator:
+	  identifier
+		{ $$ = build_enumerator ($1, NULL_TREE); }
+	| identifier '=' expr_no_commas
+		{ $$ = build_enumerator ($1, $3); }
+	;
+
+typename:
+	typed_typespecs absdcl
+		{ $$ = build_tree_list ($1, $2); }
+	| nonempty_type_quals absdcl
+		{ $$ = build_tree_list ($1, $2); }
+	;
+
+absdcl:   /* an absolute declarator */
+	/* empty */
+		{ $$ = NULL_TREE; }
+	| absdcl1
+	;
+
+nonempty_type_quals:
+	  TYPE_QUAL
+		{ $$ = tree_cons (NULL_TREE, $1, NULL_TREE); }
+	| nonempty_type_quals TYPE_QUAL
+		{ $$ = tree_cons (NULL_TREE, $2, $1); }
+	;
+
+type_quals:
+	  /* empty */
+		{ $$ = NULL_TREE; }
+	| type_quals TYPE_QUAL
+		{ $$ = tree_cons (NULL_TREE, $2, $1); }
+	;
+
+absdcl1:  /* a nonempty absolute declarator */
+	  '(' absdcl1 ')'
+		{ $$ = $2; }
+	  /* `(typedef)1' is `int'.  */
+	| '*' type_quals absdcl1  %prec UNARY
+		{ $$ = make_pointer_declarator ($2, $3); }
+	| '*' type_quals  %prec UNARY
+		{ $$ = make_pointer_declarator ($2, NULL_TREE); }
+	| absdcl1 '(' parmlist  %prec '.'
+		{ $$ = build_nt (CALL_EXPR, $1, $3, NULL_TREE); }
+	| absdcl1 '[' expr ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, $1, $3); }
+	| absdcl1 '[' ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, $1, NULL_TREE); }
+	| '(' parmlist  %prec '.'
+		{ $$ = build_nt (CALL_EXPR, NULL_TREE, $2, NULL_TREE); }
+	| '[' expr ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, NULL_TREE, $2); }
+	| '[' ']'  %prec '.'
+		{ $$ = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); }
+	/* ??? It appears we have to support attributes here, however
+	   using prefix_attributes is wrong.  */
+	;
+
+/* at least one statement, the first of which parses without error.  */
+/* stmts is used only after decls, so an invalid first statement
+   is actually regarded as an invalid decl and part of the decls.  */
+
+stmts:
+	lineno_stmt_or_labels
+		{
+		  if (pedantic && $1)
+		    pedwarn ("ANSI C forbids label at end of compound statement");
+		}
+	;
+
+lineno_stmt_or_labels:
+	  lineno_stmt_or_label
+	| lineno_stmt_or_labels lineno_stmt_or_label
+		{ $$ = $2; }
+	| lineno_stmt_or_labels errstmt
+		{ $$ = 0; }
+	;
+
+xstmts:
+	/* empty */
+	| stmts
+	;
+
+errstmt:  error ';'
+	;
+
+pushlevel:  /* empty */
+		{ emit_line_note (input_filename, lineno);
+		  pushlevel (0);
+		  clear_last_expr ();
+		  push_momentary ();
+		  expand_start_bindings (0);
+		  if (objc_method_context)
+		    add_objc_decls ();
+		}
+	;
+
+/* Read zero or more forward-declarations for labels
+   that nested functions can jump to.  */
+maybe_label_decls:
+	  /* empty */
+	| label_decls
+		{ if (pedantic)
+		    pedwarn ("ANSI C forbids label declarations"); }
+	;
+
+label_decls:
+	  label_decl
+	| label_decls label_decl
+	;
+
+label_decl:
+	  LABEL identifiers_or_typenames ';'
+		{ tree link;
+		  for (link = $2; link; link = TREE_CHAIN (link))
+		    {
+		      tree label = shadow_label (TREE_VALUE (link));
+		      C_DECLARED_LABEL_FLAG (label) = 1;
+		      declare_nonlocal_label (label);
+		    }
+		}
+	;
+
+/* This is the body of a function definition.
+   It causes syntax errors to ignore to the next openbrace.  */
+compstmt_or_error:
+	  compstmt
+		{}
+	| error compstmt
+	;
+
+compstmt: '{' '}'
+		{ $$ = convert (void_type_node, integer_zero_node); }
+	| '{' pushlevel maybe_label_decls decls xstmts '}'
+		{ emit_line_note (input_filename, lineno);
+		  expand_end_bindings (getdecls (), 1, 0);
+		  $$ = poplevel (1, 1, 0);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary (); }
+	| '{' pushlevel maybe_label_decls error '}'
+		{ emit_line_note (input_filename, lineno);
+		  expand_end_bindings (getdecls (), kept_level_p (), 0);
+		  $$ = poplevel (kept_level_p (), 0, 0);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary (); }
+	| '{' pushlevel maybe_label_decls stmts '}'
+		{ emit_line_note (input_filename, lineno);
+		  expand_end_bindings (getdecls (), kept_level_p (), 0);
+		  $$ = poplevel (kept_level_p (), 0, 0);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary (); }
+	;
+
+/* Value is number of statements counted as of the closeparen.  */
+simple_if:
+	  if_prefix lineno_labeled_stmt
+/* Make sure expand_end_cond is run once
+   for each call to expand_start_cond.
+   Otherwise a crash is likely.  */
+	| if_prefix error
+	;
+
+if_prefix:
+	  IF '(' expr ')'
+		{ emit_line_note ($<filename>-1, $<lineno>0);
+		  expand_start_cond (truthvalue_conversion ($3), 0);
+		  $<itype>$ = stmt_count;
+		  if_stmt_file = $<filename>-1;
+		  if_stmt_line = $<lineno>0;
+		  position_after_white_space (); }
+	;
+
+/* This is a subroutine of stmt.
+   It is used twice, once for valid DO statements
+   and once for catching errors in parsing the end test.  */
+do_stmt_start:
+	  DO
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  /* See comment in `while' alternative, above.  */
+		  emit_nop ();
+		  expand_start_loop_continue_elsewhere (1);
+		  position_after_white_space (); }
+	  lineno_labeled_stmt WHILE
+		{ expand_loop_continue_here (); }
+	;
+
+save_filename:
+		{ $$ = input_filename; }
+	;
+
+save_lineno:
+		{ $$ = lineno; }
+	;
+
+lineno_labeled_stmt:
+	  save_filename save_lineno stmt
+		{ }
+/*	| save_filename save_lineno error
+		{ }
+*/
+	| save_filename save_lineno label lineno_labeled_stmt
+		{ }
+	;
+
+lineno_stmt_or_label:
+	  save_filename save_lineno stmt_or_label
+		{ $$ = $3; }
+	;
+
+stmt_or_label:
+	  stmt
+		{ $$ = 0; }
+	| label
+		{ $$ = 1; }
+	;
+
+/* Parse a single real statement, not including any labels.  */
+stmt:
+	  compstmt
+		{ stmt_count++; }
+        | all_iter_stmt 
+	| expr ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+/* It appears that this should not be done--that a non-lvalue array
+   shouldn't get an error if the value isn't used.
+   Section 3.2.2.1 says that an array lvalue gets converted to a pointer
+   if it appears as a top-level expression,
+   but says nothing about non-lvalue arrays.  */
+#if 0
+		  /* Call default_conversion to get an error
+		     on referring to a register array if pedantic.  */
+		  if (TREE_CODE (TREE_TYPE ($1)) == ARRAY_TYPE
+		      || TREE_CODE (TREE_TYPE ($1)) == FUNCTION_TYPE)
+		    $1 = default_conversion ($1);
+#endif
+		  iterator_expand ($1);
+		  clear_momentary (); }
+	| simple_if ELSE
+		{ expand_start_else ();
+		  $<itype>1 = stmt_count;
+		  position_after_white_space (); }
+	  lineno_labeled_stmt
+		{ expand_end_cond ();
+		  if (extra_warnings && stmt_count == $<itype>1)
+		    warning ("empty body in an else-statement"); }
+	| simple_if %prec IF
+		{ expand_end_cond ();
+		  /* This warning is here instead of in simple_if, because we
+		     do not want a warning if an empty if is followed by an
+		     else statement.  Increment stmt_count so we don't
+		     give a second error if this is a nested `if'.  */
+		  if (extra_warnings && stmt_count++ == $<itype>1)
+		    warning_with_file_and_line (if_stmt_file, if_stmt_line,
+						"empty body in an if-statement"); }
+/* Make sure expand_end_cond is run once
+   for each call to expand_start_cond.
+   Otherwise a crash is likely.  */
+	| simple_if ELSE error
+		{ expand_end_cond (); }
+	| WHILE
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  /* The emit_nop used to come before emit_line_note,
+		     but that made the nop seem like part of the preceding line.
+		     And that was confusing when the preceding line was
+		     inside of an if statement and was not really executed.
+		     I think it ought to work to put the nop after the line number.
+		     We will see.  --rms, July 15, 1991.  */
+		  emit_nop (); }
+	  '(' expr ')'
+		{ /* Don't start the loop till we have succeeded
+		     in parsing the end test.  This is to make sure
+		     that we end every loop we start.  */
+		  expand_start_loop (1);
+		  emit_line_note (input_filename, lineno);
+		  expand_exit_loop_if_false (NULL_PTR,
+					     truthvalue_conversion ($4));
+		  position_after_white_space (); }
+	  lineno_labeled_stmt
+		{ expand_end_loop (); }
+	| do_stmt_start
+	  '(' expr ')' ';'
+		{ emit_line_note (input_filename, lineno);
+		  expand_exit_loop_if_false (NULL_PTR,
+					     truthvalue_conversion ($3));
+		  expand_end_loop ();
+		  clear_momentary (); }
+/* This rule is needed to make sure we end every loop we start.  */
+	| do_stmt_start error
+		{ expand_end_loop ();
+		  clear_momentary (); }
+	| FOR
+	  '(' xexpr ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  /* See comment in `while' alternative, above.  */
+		  emit_nop ();
+		  if ($3) c_expand_expr_stmt ($3);
+		  /* Next step is to call expand_start_loop_continue_elsewhere,
+		     but wait till after we parse the entire for (...).
+		     Otherwise, invalid input might cause us to call that
+		     fn without calling expand_end_loop.  */
+		}
+	  xexpr ';'
+		/* Can't emit now; wait till after expand_start_loop...  */
+		{ $<lineno>7 = lineno;
+		  $<filename>$ = input_filename; }
+	  xexpr ')'
+		{ 
+		  /* Start the loop.  Doing this after parsing
+		     all the expressions ensures we will end the loop.  */
+		  expand_start_loop_continue_elsewhere (1);
+		  /* Emit the end-test, with a line number.  */
+		  emit_line_note ($<filename>8, $<lineno>7);
+		  if ($6)
+		    expand_exit_loop_if_false (NULL_PTR,
+					       truthvalue_conversion ($6));
+		  /* Don't let the tree nodes for $9 be discarded by
+		     clear_momentary during the parsing of the next stmt.  */
+		  push_momentary ();
+		  $<lineno>7 = lineno;
+		  $<filename>8 = input_filename;
+		  position_after_white_space (); }
+	  lineno_labeled_stmt
+		{ /* Emit the increment expression, with a line number.  */
+		  emit_line_note ($<filename>8, $<lineno>7);
+		  expand_loop_continue_here ();
+		  if ($9)
+		    c_expand_expr_stmt ($9);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary ();
+		  expand_end_loop (); }
+	| SWITCH '(' expr ')'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  c_expand_start_case ($3);
+		  /* Don't let the tree nodes for $3 be discarded by
+		     clear_momentary during the parsing of the next stmt.  */
+		  push_momentary ();
+		  position_after_white_space (); }
+	  lineno_labeled_stmt
+		{ expand_end_case ($3);
+		  if (yychar == CONSTANT || yychar == STRING)
+		    pop_momentary_nofree ();
+		  else
+		    pop_momentary (); }
+	| BREAK ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  if ( ! expand_exit_something ())
+		    error ("break statement not within loop or switch"); }
+	| CONTINUE ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  if (! expand_continue_loop (NULL_PTR))
+		    error ("continue statement not within a loop"); }
+	| RETURN ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  c_expand_return (NULL_TREE); }
+	| RETURN expr ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  c_expand_return ($2); }
+	| ASM_KEYWORD maybe_type_qual '(' expr ')' ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  STRIP_NOPS ($4);
+		  if ((TREE_CODE ($4) == ADDR_EXPR
+		       && TREE_CODE (TREE_OPERAND ($4, 0)) == STRING_CST)
+		      || TREE_CODE ($4) == STRING_CST)
+		    expand_asm ($4);
+		  else
+		    error ("argument of `asm' is not a constant string"); }
+	/* This is the case with just output operands.  */
+	| ASM_KEYWORD maybe_type_qual '(' expr ':' asm_operands ')' ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  c_expand_asm_operands ($4, $6, NULL_TREE, NULL_TREE,
+					 $2 == ridpointers[(int)RID_VOLATILE],
+					 input_filename, lineno); }
+	/* This is the case with input operands as well.  */
+	| ASM_KEYWORD maybe_type_qual '(' expr ':' asm_operands ':' asm_operands ')' ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  c_expand_asm_operands ($4, $6, $8, NULL_TREE,
+					 $2 == ridpointers[(int)RID_VOLATILE],
+					 input_filename, lineno); }
+	/* This is the case with clobbered registers as well.  */
+	| ASM_KEYWORD maybe_type_qual '(' expr ':' asm_operands ':'
+  	  asm_operands ':' asm_clobbers ')' ';'
+		{ stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  c_expand_asm_operands ($4, $6, $8, $10,
+					 $2 == ridpointers[(int)RID_VOLATILE],
+					 input_filename, lineno); }
+	| GOTO identifier ';'
+		{ tree decl;
+		  stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  decl = lookup_label ($2);
+		  if (decl != 0)
+		    {
+		      TREE_USED (decl) = 1;
+		      expand_goto (decl);
+		    }
+		}
+	| GOTO '*' expr ';'
+		{ if (pedantic)
+		    pedwarn ("ANSI C forbids `goto *expr;'");
+		  stmt_count++;
+		  emit_line_note ($<filename>-1, $<lineno>0);
+		  expand_computed_goto (convert (ptr_type_node, $3)); }
+	| ';'
+	;
+
+all_iter_stmt:
+	  all_iter_stmt_simple
+/*	| all_iter_stmt_with_decl */
+	;
+
+all_iter_stmt_simple:
+	  FOR '(' primary ')' 
+	  {
+	    /* The value returned by this action is  */
+	    /*      1 if everything is OK */ 
+	    /*      0 in case of error or already bound iterator */
+
+	    $<itype>$ = 0;
+	    if (TREE_CODE ($3) != VAR_DECL)
+	      error ("invalid `for (ITERATOR)' syntax");
+	    else if (! ITERATOR_P ($3))
+	      error ("`%s' is not an iterator",
+		     IDENTIFIER_POINTER (DECL_NAME ($3)));
+	    else if (ITERATOR_BOUND_P ($3))
+	      error ("`for (%s)' inside expansion of same iterator",
+		     IDENTIFIER_POINTER (DECL_NAME ($3)));
+	    else
+	      {
+		$<itype>$ = 1;
+		iterator_for_loop_start ($3);
+	      }
+	  }
+	  lineno_labeled_stmt
+	  {
+	    if ($<itype>5)
+	      iterator_for_loop_end ($3);
+	  }
+
+/*  This really should allow any kind of declaration,
+    for generality.  Fix it before turning it back on.
+
+all_iter_stmt_with_decl:
+	  FOR '(' ITERATOR pushlevel setspecs iterator_spec ')' 
+	  {
+*/	    /* The value returned by this action is  */
+	    /*      1 if everything is OK */ 
+	    /*      0 in case of error or already bound iterator */
+/*
+	    iterator_for_loop_start ($6);
+	  }
+	  lineno_labeled_stmt
+	  {
+	    iterator_for_loop_end ($6);
+	    emit_line_note (input_filename, lineno);
+	    expand_end_bindings (getdecls (), 1, 0);
+	    $<ttype>$ = poplevel (1, 1, 0);
+	    if (yychar == CONSTANT || yychar == STRING)
+	      pop_momentary_nofree ();
+	    else
+	      pop_momentary ();	    
+	  }
+*/
+
+/* Any kind of label, including jump labels and case labels.
+   ANSI C accepts labels only before statements, but we allow them
+   also at the end of a compound statement.  */
+
+label:	  CASE expr_no_commas ':'
+		{ register tree value = check_case_value ($2);
+		  register tree label
+		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
+
+		  stmt_count++;
+
+		  if (value != error_mark_node)
+		    {
+		      tree duplicate;
+		      int success = pushcase (value, convert_and_check,
+					      label, &duplicate);
+		      if (success == 1)
+			error ("case label not within a switch statement");
+		      else if (success == 2)
+			{
+			  error ("duplicate case value");
+			  error_with_decl (duplicate, "this is the first entry for that value");
+			}
+		      else if (success == 3)
+			warning ("case value out of range");
+		      else if (success == 5)
+			error ("case label within scope of cleanup or variable array");
+		    }
+		  position_after_white_space (); }
+	| CASE expr_no_commas ELLIPSIS expr_no_commas ':'
+		{ register tree value1 = check_case_value ($2);
+		  register tree value2 = check_case_value ($4);
+		  register tree label
+		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
+
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids case ranges");
+		  stmt_count++;
+
+		  if (value1 != error_mark_node && value2 != error_mark_node)
+		    {
+		      tree duplicate;
+		      int success = pushcase_range (value1, value2,
+						    convert_and_check, label,
+						    &duplicate);
+		      if (success == 1)
+			error ("case label not within a switch statement");
+		      else if (success == 2)
+			{
+			  error ("duplicate case value");
+			  error_with_decl (duplicate, "this is the first entry for that value");
+			}
+		      else if (success == 3)
+			warning ("case value out of range");
+		      else if (success == 4)
+			warning ("empty case range");
+		      else if (success == 5)
+			error ("case label within scope of cleanup or variable array");
+		    }
+		  position_after_white_space (); }
+	| DEFAULT ':'
+		{
+		  tree duplicate;
+		  register tree label
+		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
+		  int success = pushcase (NULL_TREE, 0, label, &duplicate);
+		  stmt_count++;
+		  if (success == 1)
+		    error ("default label not within a switch statement");
+		  else if (success == 2)
+		    {
+		      error ("multiple default labels in one switch");
+		      error_with_decl (duplicate, "this is the first default label");
+		    }
+		  position_after_white_space (); }
+	| identifier ':'
+		{ tree label = define_label (input_filename, lineno, $1);
+		  stmt_count++;
+		  emit_nop ();
+		  if (label)
+		    expand_label (label);
+		  position_after_white_space (); }
+	;
+
+/* Either a type-qualifier or nothing.  First thing in an `asm' statement.  */
+
+maybe_type_qual:
+	/* empty */
+		{ emit_line_note (input_filename, lineno);
+		  $$ = NULL_TREE; }
+	| TYPE_QUAL
+		{ emit_line_note (input_filename, lineno); }
+	;
+
+xexpr:
+	/* empty */
+		{ $$ = NULL_TREE; }
+	| expr
+	;
+
+/* These are the operands other than the first string and colon
+   in  asm ("addextend %2,%1": "=dm" (x), "0" (y), "g" (*x))  */
+asm_operands: /* empty */
+		{ $$ = NULL_TREE; }
+	| nonnull_asm_operands
+	;
+
+nonnull_asm_operands:
+	  asm_operand
+	| nonnull_asm_operands ',' asm_operand
+		{ $$ = chainon ($1, $3); }
+	;
+
+asm_operand:
+	  STRING '(' expr ')'
+		{ $$ = build_tree_list ($1, $3); }
+	;
+
+asm_clobbers:
+	  string
+		{ $$ = tree_cons (NULL_TREE, combine_strings ($1), NULL_TREE); }
+	| asm_clobbers ',' string
+		{ $$ = tree_cons (NULL_TREE, combine_strings ($3), $1); }
+	;
+
+/* This is what appears inside the parens in a function declarator.
+   Its value is a list of ..._TYPE nodes.  */
+parmlist:
+		{ pushlevel (0);
+		  clear_parm_order ();
+		  declare_parm_level (0); }
+	  parmlist_1
+		{ $$ = $2;
+		  parmlist_tags_warning ();
+		  poplevel (0, 0, 0); }
+	;
+
+parmlist_1:
+	  parmlist_2 ')'
+	| parms ';'
+		{ tree parm;
+		  if (pedantic)
+		    pedwarn ("ANSI C forbids forward parameter declarations");
+		  /* Mark the forward decls as such.  */
+		  for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
+		    TREE_ASM_WRITTEN (parm) = 1;
+		  clear_parm_order (); }
+	  parmlist_1
+		{ $$ = $4; }
+	| error ')'
+		{ $$ = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); }
+	;
+
+/* This is what appears inside the parens in a function declarator.
+   Is value is represented in the format that grokdeclarator expects.  */
+parmlist_2:  /* empty */
+		{ $$ = get_parm_info (0); }
+	| ELLIPSIS
+		{ $$ = get_parm_info (0);
+		  /* Gcc used to allow this as an extension.  However, it does
+		     not work for all targets, and thus has been disabled.
+		     Also, since func (...) and func () are indistinguishable,
+		     it caused problems with the code in expand_builtin which
+		     tries to verify that BUILT_IN_NEXT_ARG is being used
+		     correctly.  */
+		  error ("ANSI C requires a named argument before `...'");
+		}
+	| parms
+		{ $$ = get_parm_info (1); }
+	| parms ',' ELLIPSIS
+		{ $$ = get_parm_info (0); }
+	;
+
+parms:
+	parm
+		{ push_parm_decl ($1); }
+	| parms ',' parm
+		{ push_parm_decl ($3); }
+	;
+
+/* A single parameter declaration or parameter type name,
+   as found in a parmlist.  */
+parm:
+	  typed_declspecs setspecs parm_declarator maybe_attribute
+		{ $$ = build_tree_list (build_tree_list (current_declspecs,
+							 $3),
+					build_tree_list (prefix_attributes,
+							 $4));
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_declspecs setspecs notype_declarator maybe_attribute
+		{ $$ = build_tree_list (build_tree_list (current_declspecs,
+							 $3),
+					build_tree_list (prefix_attributes,
+							 $4)); 
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_declspecs setspecs absdcl maybe_attribute
+		{ $$ = build_tree_list (build_tree_list (current_declspecs,
+							 $3),
+					build_tree_list (prefix_attributes,
+							 $4));
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| declmods setspecs notype_declarator maybe_attribute
+		{ $$ = build_tree_list (build_tree_list (current_declspecs,
+							 $3),
+					build_tree_list (prefix_attributes,
+							 $4));
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2);  }
+
+	| declmods setspecs absdcl maybe_attribute
+		{ $$ = build_tree_list (build_tree_list (current_declspecs,
+							 $3),
+					build_tree_list (prefix_attributes,
+							 $4));
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2);  }
+	;
+
+/* This is used in a function definition
+   where either a parmlist or an identifier list is ok.
+   Its value is a list of ..._TYPE nodes or a list of identifiers.  */
+parmlist_or_identifiers:
+		{ pushlevel (0);
+		  clear_parm_order ();
+		  declare_parm_level (1); }
+	  parmlist_or_identifiers_1
+		{ $$ = $2;
+		  parmlist_tags_warning ();
+		  poplevel (0, 0, 0); }
+	;
+
+parmlist_or_identifiers_1:
+	  parmlist_1
+	| identifiers ')'
+		{ tree t;
+		  for (t = $1; t; t = TREE_CHAIN (t))
+		    if (TREE_VALUE (t) == NULL_TREE)
+		      error ("`...' in old-style identifier list");
+		  $$ = tree_cons (NULL_TREE, NULL_TREE, $1); }
+	;
+
+/* A nonempty list of identifiers.  */
+identifiers:
+	IDENTIFIER
+		{ $$ = build_tree_list (NULL_TREE, $1); }
+	| identifiers ',' IDENTIFIER
+		{ $$ = chainon ($1, build_tree_list (NULL_TREE, $3)); }
+	;
+
+/* A nonempty list of identifiers, including typenames.  */
+identifiers_or_typenames:
+	identifier
+		{ $$ = build_tree_list (NULL_TREE, $1); }
+	| identifiers_or_typenames ',' identifier
+		{ $$ = chainon ($1, build_tree_list (NULL_TREE, $3)); }
+	;
+
+extension:
+	EXTENSION
+		{ $<itype>$ = pedantic;
+		  pedantic = 0; }
+	;
+
+/* Objective-C productions.  */
+
+objcdef:
+	  classdef
+	| classdecl
+	| aliasdecl
+	| protocoldef
+	| methoddef
+	| END
+		{
+		  if (objc_implementation_context)
+                    {
+		      finish_class (objc_implementation_context);
+		      objc_ivar_chain = NULL_TREE;
+		      objc_implementation_context = NULL_TREE;
+		    }
+		  else
+		    warning ("`@end' must appear in an implementation context");
+		}
+	;
+
+/* A nonempty list of identifiers.  */
+identifier_list:
+	identifier
+		{ $$ = build_tree_list (NULL_TREE, $1); }
+	| identifier_list ',' identifier
+		{ $$ = chainon ($1, build_tree_list (NULL_TREE, $3)); }
+	;
+
+classdecl:
+	  CLASS identifier_list ';'
+		{
+		  objc_declare_class ($2);
+		}
+
+aliasdecl:
+	  ALIAS identifier identifier ';'
+		{
+		  objc_declare_alias ($2, $3);
+		}
+
+classdef:
+	  INTERFACE identifier protocolrefs '{'
+		{
+		  objc_interface_context = objc_ivar_context
+		    = start_class (CLASS_INTERFACE_TYPE, $2, NULL_TREE, $3);
+                  objc_public_flag = 0;
+		}
+	  ivar_decl_list '}'
+		{
+                  continue_class (objc_interface_context);
+		}
+	  methodprotolist
+	  END
+		{
+		  finish_class (objc_interface_context);
+		  objc_interface_context = NULL_TREE;
+		}
+
+	| INTERFACE identifier protocolrefs
+		{
+		  objc_interface_context
+		    = start_class (CLASS_INTERFACE_TYPE, $2, NULL_TREE, $3);
+                  continue_class (objc_interface_context);
+		}
+	  methodprotolist
+	  END
+		{
+		  finish_class (objc_interface_context);
+		  objc_interface_context = NULL_TREE;
+		}
+
+	| INTERFACE identifier ':' identifier protocolrefs '{'
+		{
+		  objc_interface_context = objc_ivar_context
+		    = start_class (CLASS_INTERFACE_TYPE, $2, $4, $5);
+                  objc_public_flag = 0;
+		}
+	  ivar_decl_list '}'
+		{
+                  continue_class (objc_interface_context);
+		}
+	  methodprotolist
+	  END
+		{
+		  finish_class (objc_interface_context);
+		  objc_interface_context = NULL_TREE;
+		}
+
+	| INTERFACE identifier ':' identifier protocolrefs
+		{
+		  objc_interface_context
+		    = start_class (CLASS_INTERFACE_TYPE, $2, $4, $5);
+                  continue_class (objc_interface_context);
+		}
+	  methodprotolist
+	  END
+		{
+		  finish_class (objc_interface_context);
+		  objc_interface_context = NULL_TREE;
+		}
+
+	| IMPLEMENTATION identifier '{'
+		{
+		  objc_implementation_context = objc_ivar_context
+		    = start_class (CLASS_IMPLEMENTATION_TYPE, $2, NULL_TREE, NULL_TREE);
+                  objc_public_flag = 0;
+		}
+	  ivar_decl_list '}'
+		{
+                  objc_ivar_chain
+		    = continue_class (objc_implementation_context);
+		}
+
+	| IMPLEMENTATION identifier
+		{
+		  objc_implementation_context
+		    = start_class (CLASS_IMPLEMENTATION_TYPE, $2, NULL_TREE, NULL_TREE);
+                  objc_ivar_chain
+		    = continue_class (objc_implementation_context);
+		}
+
+	| IMPLEMENTATION identifier ':' identifier '{'
+		{
+		  objc_implementation_context = objc_ivar_context
+		    = start_class (CLASS_IMPLEMENTATION_TYPE, $2, $4, NULL_TREE);
+                  objc_public_flag = 0;
+		}
+	  ivar_decl_list '}'
+		{
+                  objc_ivar_chain
+		    = continue_class (objc_implementation_context);
+		}
+
+	| IMPLEMENTATION identifier ':' identifier
+		{
+		  objc_implementation_context
+		    = start_class (CLASS_IMPLEMENTATION_TYPE, $2, $4, NULL_TREE);
+                  objc_ivar_chain
+		    = continue_class (objc_implementation_context);
+		}
+
+	| INTERFACE identifier '(' identifier ')' protocolrefs
+		{
+		  objc_interface_context
+		    = start_class (CATEGORY_INTERFACE_TYPE, $2, $4, $6);
+                  continue_class (objc_interface_context);
+		}
+	  methodprotolist
+	  END
+		{
+		  finish_class (objc_interface_context);
+		  objc_interface_context = NULL_TREE;
+		}
+
+	| IMPLEMENTATION identifier '(' identifier ')'
+		{
+		  objc_implementation_context
+		    = start_class (CATEGORY_IMPLEMENTATION_TYPE, $2, $4, NULL_TREE);
+                  objc_ivar_chain
+		    = continue_class (objc_implementation_context);
+		}
+	;
+
+protocoldef:
+	  PROTOCOL identifier protocolrefs
+		{
+		  remember_protocol_qualifiers ();
+		  objc_interface_context
+		    = start_protocol(PROTOCOL_INTERFACE_TYPE, $2, $3);
+		}
+	  methodprotolist END
+		{
+		  forget_protocol_qualifiers();
+		  finish_protocol(objc_interface_context);
+		  objc_interface_context = NULL_TREE;
+		}
+	;
+
+protocolrefs:
+	  /* empty */
+		{
+		  $$ = NULL_TREE;
+		}
+	| non_empty_protocolrefs
+	;
+
+non_empty_protocolrefs:
+	  ARITHCOMPARE identifier_list ARITHCOMPARE
+		{
+		  if ($1 == LT_EXPR && $3 == GT_EXPR)
+		    $$ = $2;
+		  else
+		    YYERROR1;
+		}
+	;
+
+ivar_decl_list:
+          ivar_decl_list visibility_spec ivar_decls
+        | ivar_decls
+        ;
+
+visibility_spec:
+	  PRIVATE { objc_public_flag = 2; }
+	| PROTECTED { objc_public_flag = 0; }
+	| PUBLIC { objc_public_flag = 1; }
+	;
+
+ivar_decls:
+          /* empty */
+		{
+                  $$ = NULL_TREE;
+                }
+	| ivar_decls ivar_decl ';'
+	| ivar_decls ';'
+		{
+                  if (pedantic)
+		    pedwarn ("extra semicolon in struct or union specified");
+                }
+	;
+
+
+/* There is a shift-reduce conflict here, because `components' may
+   start with a `typename'.  It happens that shifting (the default resolution)
+   does the right thing, because it treats the `typename' as part of
+   a `typed_typespecs'.
+
+   It is possible that this same technique would allow the distinction
+   between `notype_initdecls' and `initdecls' to be eliminated.
+   But I am being cautious and not trying it.  */
+
+ivar_decl:
+	typed_typespecs setspecs ivars
+	        { $$ = $3;
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| nonempty_type_quals setspecs ivars
+		{ $$ = $3;
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| error
+		{ $$ = NULL_TREE; }
+	;
+
+ivars:
+	  /* empty */
+		{ $$ = NULL_TREE; }
+	| ivar_declarator
+	| ivars ',' ivar_declarator
+	;
+
+ivar_declarator:
+	  declarator
+		{
+		  $$ = add_instance_variable (objc_ivar_context,
+					      objc_public_flag,
+					      $1, current_declspecs,
+					      NULL_TREE);
+                }
+	| declarator ':' expr_no_commas
+		{
+		  $$ = add_instance_variable (objc_ivar_context,
+					      objc_public_flag,
+					      $1, current_declspecs, $3);
+                }
+	| ':' expr_no_commas
+		{
+		  $$ = add_instance_variable (objc_ivar_context,
+					      objc_public_flag,
+					      NULL_TREE,
+					      current_declspecs, $2);
+                }
+	;
+
+methoddef:
+	  '+'
+		{
+		  remember_protocol_qualifiers ();
+		  if (objc_implementation_context)
+		    objc_inherit_code = CLASS_METHOD_DECL;
+                  else
+		    fatal ("method definition not in class context");
+		}
+	  methoddecl
+		{
+		  forget_protocol_qualifiers ();
+		  add_class_method (objc_implementation_context, $3);
+		  start_method_def ($3);
+		  objc_method_context = $3;
+		}
+	  optarglist
+		{
+		  continue_method_def ();
+		}
+	  compstmt_or_error
+		{
+		  finish_method_def ();
+		  objc_method_context = NULL_TREE;
+		}
+
+	| '-'
+		{
+		  remember_protocol_qualifiers ();
+		  if (objc_implementation_context)
+		    objc_inherit_code = INSTANCE_METHOD_DECL;
+                  else
+		    fatal ("method definition not in class context");
+		}
+	  methoddecl
+		{
+		  forget_protocol_qualifiers ();
+		  add_instance_method (objc_implementation_context, $3);
+		  start_method_def ($3);
+		  objc_method_context = $3;
+		}
+	  optarglist
+		{
+		  continue_method_def ();
+		}
+	  compstmt_or_error
+		{
+		  finish_method_def ();
+		  objc_method_context = NULL_TREE;
+		}
+	;
+
+/* the reason for the strange actions in this rule
+ is so that notype_initdecls when reached via datadef
+ can find a valid list of type and sc specs in $0. */
+
+methodprotolist:
+	  /* empty  */
+	| {$<ttype>$ = NULL_TREE; } methodprotolist2
+	;
+
+methodprotolist2:		 /* eliminates a shift/reduce conflict */
+	   methodproto
+	|  datadef
+	| methodprotolist2 methodproto
+	| methodprotolist2 {$<ttype>$ = NULL_TREE; } datadef
+	;
+
+semi_or_error:
+	  ';'
+	| error
+	;
+
+methodproto:
+	  '+'
+		{
+		  objc_inherit_code = CLASS_METHOD_DECL;
+		}
+	  methoddecl
+		{
+		  add_class_method (objc_interface_context, $3);
+		}
+	  semi_or_error
+
+	| '-'
+		{
+		  objc_inherit_code = INSTANCE_METHOD_DECL;
+		}
+	  methoddecl
+		{
+		  add_instance_method (objc_interface_context, $3);
+		}
+	  semi_or_error
+	;
+
+methoddecl:
+	  '(' typename ')' unaryselector
+		{
+		  $$ = build_method_decl (objc_inherit_code, $2, $4, NULL_TREE);
+		}
+
+	| unaryselector
+		{
+		  $$ = build_method_decl (objc_inherit_code, NULL_TREE, $1, NULL_TREE);
+		}
+
+	| '(' typename ')' keywordselector optparmlist
+		{
+		  $$ = build_method_decl (objc_inherit_code, $2, $4, $5);
+		}
+
+	| keywordselector optparmlist
+		{
+		  $$ = build_method_decl (objc_inherit_code, NULL_TREE, $1, $2);
+		}
+	;
+
+/* "optarglist" assumes that start_method_def has already been called...
+   if it is not, the "xdecls" will not be placed in the proper scope */
+
+optarglist:
+	  /* empty */
+	| ';' myxdecls
+	;
+
+/* to get around the following situation: "int foo (int a) int b; {}" that
+   is synthesized when parsing "- a:a b:b; id c; id d; { ... }" */
+
+myxdecls:
+	  /* empty */
+	| mydecls
+	;
+
+mydecls:
+	mydecl
+	| errstmt
+	| mydecls mydecl
+	| mydecl errstmt
+	;
+
+mydecl:
+	typed_declspecs setspecs myparms ';'
+		{ current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2); }
+	| typed_declspecs ';'
+		{ shadow_tag ($1); }
+	| declmods ';'
+		{ pedwarn ("empty declaration"); }
+	;
+
+myparms:
+	myparm
+		{ push_parm_decl ($1); }
+	| myparms ',' myparm
+		{ push_parm_decl ($3); }
+	;
+
+/* A single parameter declaration or parameter type name,
+   as found in a parmlist. DOES NOT ALLOW AN INITIALIZER OR ASMSPEC */
+
+myparm:
+	  parm_declarator maybe_attribute
+		{ $$ = build_tree_list (build_tree_list (current_declspecs,
+							 $1),
+					build_tree_list (prefix_attributes,
+							 $2)); }
+	| notype_declarator maybe_attribute
+		{ $$ = build_tree_list (build_tree_list (current_declspecs,
+							 $1),
+					build_tree_list (prefix_attributes,
+							 $2)); }
+	| absdcl maybe_attribute
+		{ $$ = build_tree_list (build_tree_list (current_declspecs,
+							 $1),
+					build_tree_list (prefix_attributes,
+							 $2)); }
+	;
+
+optparmlist:
+	  /* empty */
+		{
+	    	  $$ = NULL_TREE;
+		}
+	| ',' ELLIPSIS
+		{
+		  /* oh what a kludge! */
+		  $$ = (tree)1;
+		}
+	| ','
+		{
+		  pushlevel (0);
+		}
+	  parmlist_2
+		{
+	  	  /* returns a tree list node generated by get_parm_info */
+		  $$ = $3;
+		  poplevel (0, 0, 0);
+		}
+	;
+
+unaryselector:
+	  selector
+	;
+
+keywordselector:
+	  keyworddecl
+
+	| keywordselector keyworddecl
+		{
+		  $$ = chainon ($1, $2);
+		}
+	;
+
+selector:
+	  IDENTIFIER
+        | TYPENAME
+  	| OBJECTNAME
+	| reservedwords
+	;
+
+reservedwords:
+	  ENUM { $$ = get_identifier (token_buffer); }
+	| STRUCT { $$ = get_identifier (token_buffer); }
+	| UNION { $$ = get_identifier (token_buffer); }
+	| IF { $$ = get_identifier (token_buffer); }
+	| ELSE { $$ = get_identifier (token_buffer); }
+	| WHILE { $$ = get_identifier (token_buffer); }
+	| DO { $$ = get_identifier (token_buffer); }
+	| FOR { $$ = get_identifier (token_buffer); }
+	| SWITCH { $$ = get_identifier (token_buffer); }
+	| CASE { $$ = get_identifier (token_buffer); }
+	| DEFAULT { $$ = get_identifier (token_buffer); }
+	| BREAK { $$ = get_identifier (token_buffer); }
+	| CONTINUE { $$ = get_identifier (token_buffer); }
+	| RETURN  { $$ = get_identifier (token_buffer); }
+	| GOTO { $$ = get_identifier (token_buffer); }
+	| ASM_KEYWORD { $$ = get_identifier (token_buffer); }
+        | SIZEOF { $$ = get_identifier (token_buffer); }
+	| TYPEOF { $$ = get_identifier (token_buffer); }
+	| ALIGNOF { $$ = get_identifier (token_buffer); }
+	| TYPESPEC | TYPE_QUAL
+	;
+
+keyworddecl:
+	  selector ':' '(' typename ')' identifier
+		{
+		  $$ = build_keyword_decl ($1, $4, $6);
+		}
+
+	| selector ':' identifier
+		{
+		  $$ = build_keyword_decl ($1, NULL_TREE, $3);
+		}
+
+	| ':' '(' typename ')' identifier
+		{
+		  $$ = build_keyword_decl (NULL_TREE, $3, $5);
+		}
+
+	| ':' identifier
+		{
+		  $$ = build_keyword_decl (NULL_TREE, NULL_TREE, $2);
+		}
+	;
+
+messageargs:
+	  selector
+        | keywordarglist
+	;
+
+keywordarglist:
+	  keywordarg
+	| keywordarglist keywordarg
+		{
+		  $$ = chainon ($1, $2);
+		}
+	;
+
+
+keywordexpr:
+	  nonnull_exprlist
+		{
+		  if (TREE_CHAIN ($1) == NULL_TREE)
+		    /* just return the expr., remove a level of indirection */
+		    $$ = TREE_VALUE ($1);
+                  else
+		    /* we have a comma expr., we will collapse later */
+		    $$ = $1;
+		}
+	;
+
+keywordarg:
+	  selector ':' keywordexpr
+		{
+		  $$ = build_tree_list ($1, $3);
+		}
+	| ':' keywordexpr
+		{
+		  $$ = build_tree_list (NULL_TREE, $2);
+		}
+	;
+
+receiver:
+	  expr
+	| CLASSNAME
+		{
+		  $$ = get_class_reference ($1);
+		}
+	;
+
+objcmessageexpr:
+	  '['
+		{ objc_receiver_context = 1; }
+	  receiver
+		{ objc_receiver_context = 0; }
+	  messageargs ']'
+		{
+		  $$ = build_tree_list ($3, $5);
+		}
+	;
+
+selectorarg:
+	  selector
+        | keywordnamelist
+	;
+
+keywordnamelist:
+	  keywordname
+	| keywordnamelist keywordname
+		{
+		  $$ = chainon ($1, $2);
+		}
+	;
+
+keywordname:
+	  selector ':'
+		{
+		  $$ = build_tree_list ($1, NULL_TREE);
+		}
+	| ':'
+		{
+		  $$ = build_tree_list (NULL_TREE, NULL_TREE);
+		}
+	;
+
+objcselectorexpr:
+	  SELECTOR '(' selectorarg ')'
+		{
+		  $$ = $3;
+		}
+	;
+
+objcprotocolexpr:
+	  PROTOCOL '(' identifier ')'
+		{
+		  $$ = $3;
+		}
+	;
+
+/* extension to support C-structures in the archiver */
+
+objcencodeexpr:
+	  ENCODE '(' typename ')'
+		{
+		  $$ = groktypename ($3);
+		}
+	;
+
+%%
diff --git a/gcc/obstack.c b/gcc/obstack.c
index 4f9a184..59b2eee 100644
--- a/gcc/obstack.c
+++ b/gcc/obstack.c
@@ -1,29 +1,19 @@
 /* obstack.c - subroutines used implicitly by object stack macros
-   Copyright (C) 1988,89,90,91,92,93,94,96,97 Free Software Foundation, Inc.
+   Copyright (C) 1988, 89, 90, 91, 92, 93, 94 Free Software Foundation, Inc.
 
-   the C library, however.  The master source lives in /gd/gnu/lib.
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
 
-   NOTE: The canonical source of this file is maintained with the GNU C Library.
-   Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
 
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by the
-   Free Software Foundation; either version 2, or (at your option) any
-   later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-   USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #include "obstack.h"
 
@@ -77,28 +67,6 @@
 #define COPYING_UNIT int
 #endif
 
-
-/* The functions allocating more room by calling `obstack_chunk_alloc'
-   jump to the handler pointed to by `obstack_alloc_failed_handler'.
-   This variable by default points to the internal function
-   `print_and_abort'.  */
-#if defined (__STDC__) && __STDC__
-static void print_and_abort (void);
-void (*obstack_alloc_failed_handler) (void) = print_and_abort;
-#else
-static void print_and_abort ();
-void (*obstack_alloc_failed_handler) () = print_and_abort;
-#endif
-
-/* Exit value used when `print_and_abort' is used.  */
-#if defined __GNU_LIBRARY__ || defined HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE 1
-#endif
-int obstack_exit_failure = EXIT_FAILURE;
-
 /* The non-GNU-C macros copy the obstack into this global variable
    to avoid multiple evaluation.  */
 
@@ -110,20 +78,6 @@
    For free, do not use ?:, since some compilers, like the MIPS compilers,
    do not allow (expr) ? void : void.  */
 
-#if defined (__STDC__) && __STDC__
-#define CALL_CHUNKFUN(h, size) \
-  (((h) -> use_extra_arg) \
-   ? (*(h)->chunkfun) ((h)->extra_arg, (size)) \
-   : (*(struct _obstack_chunk *(*) (long)) (h)->chunkfun) ((size)))
-
-#define CALL_FREEFUN(h, old_chunk) \
-  do { \
-    if ((h) -> use_extra_arg) \
-      (*(h)->freefun) ((h)->extra_arg, (old_chunk)); \
-    else \
-      (*(void (*) (void *)) (h)->freefun) ((old_chunk)); \
-  } while (0)
-#else
 #define CALL_CHUNKFUN(h, size) \
   (((h) -> use_extra_arg) \
    ? (*(h)->chunkfun) ((h)->extra_arg, (size)) \
@@ -136,7 +90,6 @@
     else \
       (*(void (*) ()) (h)->freefun) ((old_chunk)); \
   } while (0)
-#endif
 
 
 /* Initialize an obstack H for use.  Specify chunk size SIZE (0 means default).
@@ -153,13 +106,8 @@
      struct obstack *h;
      int size;
      int alignment;
-#if defined (__STDC__) && __STDC__
-     POINTER (*chunkfun) (long);
-     void (*freefun) (void *);
-#else
      POINTER (*chunkfun) ();
      void (*freefun) ();
-#endif
 {
   register struct _obstack_chunk *chunk; /* points to new chunk */
 
@@ -182,27 +130,25 @@
       size = 4096 - extra;
     }
 
-#if defined (__STDC__) && __STDC__
-  h->chunkfun = (struct _obstack_chunk * (*)(void *, long)) chunkfun;
-  h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
-#else
   h->chunkfun = (struct _obstack_chunk * (*)()) chunkfun;
   h->freefun = freefun;
-#endif
   h->chunk_size = size;
   h->alignment_mask = alignment - 1;
   h->use_extra_arg = 0;
 
   chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size);
   if (!chunk)
-    (*obstack_alloc_failed_handler) ();
+    {
+      h->alloc_failed = 1;
+      return 0;
+    }
+  h->alloc_failed = 0;
   h->next_free = h->object_base = chunk->contents;
   h->chunk_limit = chunk->limit
     = (char *) chunk + h->chunk_size;
   chunk->prev = 0;
   /* The initial chunk now contains no empty object.  */
   h->maybe_empty_object = 0;
-  h->alloc_failed = 0;
   return 1;
 }
 
@@ -211,13 +157,8 @@
      struct obstack *h;
      int size;
      int alignment;
-#if defined (__STDC__) && __STDC__
-     POINTER (*chunkfun) (POINTER, long);
-     void (*freefun) (POINTER, POINTER);
-#else
      POINTER (*chunkfun) ();
      void (*freefun) ();
-#endif
      POINTER arg;
 {
   register struct _obstack_chunk *chunk; /* points to new chunk */
@@ -241,13 +182,8 @@
       size = 4096 - extra;
     }
 
-#if defined(__STDC__) && __STDC__
-  h->chunkfun = (struct _obstack_chunk * (*)(void *,long)) chunkfun;
-  h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
-#else
   h->chunkfun = (struct _obstack_chunk * (*)()) chunkfun;
   h->freefun = freefun;
-#endif
   h->chunk_size = size;
   h->alignment_mask = alignment - 1;
   h->extra_arg = arg;
@@ -255,14 +191,17 @@
 
   chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size);
   if (!chunk)
-    (*obstack_alloc_failed_handler) ();
+    {
+      h->alloc_failed = 1;
+      return 0;
+    }
+  h->alloc_failed = 0;
   h->next_free = h->object_base = chunk->contents;
   h->chunk_limit = chunk->limit
     = (char *) chunk + h->chunk_size;
   chunk->prev = 0;
   /* The initial chunk now contains no empty object.  */
   h->maybe_empty_object = 0;
-  h->alloc_failed = 0;
   return 1;
 }
 
@@ -292,7 +231,11 @@
   /* Allocate and initialize the new chunk.  */
   new_chunk = CALL_CHUNKFUN (h, new_size);
   if (!new_chunk)
-    (*obstack_alloc_failed_handler) ();
+    {
+      h->alloc_failed = 1;
+      return;
+    }
+  h->alloc_failed = 0;
   h->chunk = new_chunk;
   new_chunk->prev = old_chunk;
   new_chunk->limit = h->chunk_limit = (char *) new_chunk + new_size;
@@ -436,39 +379,6 @@
     abort ();
 }
 
-int
-_obstack_memory_used (h)
-     struct obstack *h;
-{
-  register struct _obstack_chunk* lp;
-  register int nbytes = 0;
-
-  for (lp = h->chunk; lp != 0; lp = lp->prev)
-    {
-      nbytes += lp->limit - (char *) lp;
-    }
-  return nbytes;
-}
-
-/* Define the error handler.  */
-#ifndef _
-# ifdef HAVE_LIBINTL_H
-#  include <libintl.h>
-#  ifndef _
-#   define _(Str) gettext (Str)
-#  endif
-# else
-#  define _(Str) (Str)
-# endif
-#endif
-
-static void
-print_and_abort ()
-{
-  fputs (_("memory exhausted\n"), stderr);
-  exit (obstack_exit_failure);
-}
-
 #if 0
 /* These are now turned off because the applications do not use it
    and it uses bcopy via obstack_grow, which causes trouble on sysV.  */
@@ -507,13 +417,6 @@
   return obstack_room (obstack);
 }
 
-int (obstack_make_room) (obstack, length)
-     struct obstack *obstack;
-     int length;
-{
-  return obstack_make_room (obstack, length);
-}
-
 void (obstack_grow) (obstack, pointer, length)
      struct obstack *obstack;
      POINTER pointer;
diff --git a/gcc/obstack.h b/gcc/obstack.h
index a6a2e23..dd8e861 100644
--- a/gcc/obstack.h
+++ b/gcc/obstack.h
@@ -1,25 +1,19 @@
 /* obstack.h - object stack macros
-   Copyright (C) 1988,89,90,91,92,93,94,96,97 Free Software Foundation, Inc.
+   Copyright (C) 1988,89,90,91,92,93,94,96 Free Software Foundation, Inc.
 
-   the C library, however.  The master source lives in /gd/gnu/lib.
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
 
-   NOTE: The canonical source of this file is maintained with the GNU C Library.
-   Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
 
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by the
-   Free Software Foundation; either version 2, or (at your option) any
-   later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-   USA.  */
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 /* Summary:
 
@@ -106,12 +100,8 @@
 
 /* Don't do the contents of this file more than once.  */
 
-#ifndef _OBSTACK_H
-#define _OBSTACK_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
+#ifndef __OBSTACK_H__
+#define __OBSTACK_H__
 
 /* We use subtraction of (char *) 0 instead of casting to int
    because on word-addressable machines a simple cast to int
@@ -148,17 +138,6 @@
 #define PTR_INT_TYPE long
 #endif
 
-#if defined (_LIBC) || defined (HAVE_STRING_H)
-#include <string.h>
-#define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
-#else
-#ifdef memcpy
-#define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
-#else
-#define _obstack_memcpy(To, From, N) bcopy ((From), (To), (N))
-#endif
-#endif
-
 struct _obstack_chunk		/* Lives at front of each chunk. */
 {
   char  *limit;			/* 1 past end of this chunk */
@@ -192,9 +171,7 @@
 				   chunk contains a zero-length object.  This
 				   prevents freeing the chunk if we allocate
 				   a bigger chunk to replace it. */
-  unsigned alloc_failed:1;	/* No longer used, as we now call the failed
-				   handler on error, but retained for binary
-				   compatibility.  */
+  unsigned alloc_failed:1;	/* chunk alloc func returned 0 */
 };
 
 /* Declare the external functions we use; they are in obstack.c.  */
@@ -207,13 +184,11 @@
 extern int _obstack_begin_1 (struct obstack *, int, int,
 			     void *(*) (void *, long),
 			     void (*) (void *, void *), void *);
-extern int _obstack_memory_used (struct obstack *);
 #else
 extern void _obstack_newchunk ();
 extern void _obstack_free ();
 extern int _obstack_begin ();
 extern int _obstack_begin_1 ();
-extern int _obstack_memory_used ();
 #endif
 
 #if defined (__STDC__) && __STDC__
@@ -244,7 +219,6 @@
 int obstack_object_size (struct obstack *obstack);
 
 int obstack_room (struct obstack *obstack);
-void obstack_make_room (struct obstack *obstack, int size);
 void obstack_1grow_fast (struct obstack *obstack, int data_char);
 void obstack_ptr_grow_fast (struct obstack *obstack, void *data);
 void obstack_int_grow_fast (struct obstack *obstack, int data);
@@ -254,30 +228,17 @@
 void * obstack_next_free (struct obstack *obstack);
 int obstack_alignment_mask (struct obstack *obstack);
 int obstack_chunk_size (struct obstack *obstack);
-int obstack_memory_used (struct obstack *obstack);
 
 #endif /* __STDC__ */
 
 /* Non-ANSI C cannot really support alternative functions for these macros,
    so we do not declare them.  */
-
-/* Error handler called when `obstack_chunk_alloc' failed to allocate
-   more memory.  This can be set to a user defined function.  The
-   default action is to print a message and abort.  */
-#if defined (__STDC__) && __STDC__
-extern void (*obstack_alloc_failed_handler) (void);
-#else
-extern void (*obstack_alloc_failed_handler) ();
-#endif
-
-/* Exit value used when `print_and_abort' is used.  */
-extern int obstack_exit_failure;
 
 /* Pointer to beginning of object being allocated or to be allocated next.
    Note that this might not be the final address of the object
    because a new chunk might be needed to hold the final size.  */
 
-#define obstack_base(h) ((h)->object_base)
+#define obstack_base(h) ((h)->alloc_failed ? 0 : (h)->object_base)
 
 /* Size for allocating ordinary chunks.  */
 
@@ -285,7 +246,7 @@
 
 /* Pointer to next byte not yet allocated in current chunk.  */
 
-#define obstack_next_free(h)	((h)->next_free)
+#define obstack_next_free(h)	((h)->alloc_failed ? 0 : (h)->next_free)
 
 /* Mask specifying low bits that should be clear in address of an object.  */
 
@@ -309,14 +270,13 @@
 
 #define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
   _obstack_begin_1 ((h), (size), (alignment), \
-		    (void *(*) (void *, long)) (chunkfun), \
-		    (void (*) (void *, void *)) (freefun), (arg))
+		    (void *(*) (long)) (chunkfun), (void (*) (void *)) (freefun), (arg))
 
 #define obstack_chunkfun(h, newchunkfun) \
-  ((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun))
+  ((h) -> chunkfun = (struct _obstack_chunk *(*)(long)) (newchunkfun))
 
 #define obstack_freefun(h, newfreefun) \
-  ((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun))
+  ((h) -> freefun = (void (*)(void *)) (newfreefun))
 
 #else
 
@@ -347,8 +307,6 @@
 #define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = achar)
 
 #define obstack_blank_fast(h,n) ((h)->next_free += (n))
-
-#define obstack_memory_used(h) _obstack_memory_used (h)
 
 #if defined (__GNUC__) && defined (__STDC__) && __STDC__
 /* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
@@ -366,6 +324,7 @@
 #define obstack_object_size(OBSTACK)					\
   __extension__								\
   ({ struct obstack *__o = (OBSTACK);					\
+     __o->alloc_failed ? 0 :						\
      (unsigned) (__o->next_free - __o->object_base); })
 
 #define obstack_room(OBSTACK)						\
@@ -373,22 +332,17 @@
   ({ struct obstack *__o = (OBSTACK);					\
      (unsigned) (__o->chunk_limit - __o->next_free); })
 
-#define obstack_make_room(OBSTACK,length)				\
-__extension__								\
-({ struct obstack *__o = (OBSTACK);					\
-   int __len = (length);						\
-   if (__o->chunk_limit - __o->next_free < __len)			\
-     _obstack_newchunk (__o, __len);					\
-   (void) 0; })
-
 #define obstack_grow(OBSTACK,where,length)				\
 __extension__								\
 ({ struct obstack *__o = (OBSTACK);					\
    int __len = (length);						\
    if (__o->next_free + __len > __o->chunk_limit)			\
      _obstack_newchunk (__o, __len);					\
-   _obstack_memcpy (__o->next_free, (char *) (where), __len);		\
-   __o->next_free += __len;						\
+   if (!__o->alloc_failed)						\
+     {									\
+        bcopy ((char *) (where), __o->next_free, __len);		\
+	__o->next_free += __len;					\
+     }									\
    (void) 0; })
 
 #define obstack_grow0(OBSTACK,where,length)				\
@@ -397,9 +351,12 @@
    int __len = (length);						\
    if (__o->next_free + __len + 1 > __o->chunk_limit)			\
      _obstack_newchunk (__o, __len + 1);				\
-   _obstack_memcpy (__o->next_free, (char *) (where), __len);		\
-   __o->next_free += __len;						\
-   *(__o->next_free)++ = 0;						\
+   if (!__o->alloc_failed)						\
+     {									\
+       bcopy ((char *) (where), __o->next_free, __len);			\
+       __o->next_free += __len;						\
+       *(__o->next_free)++ = 0;						\
+     }									\
    (void) 0; })
 
 #define obstack_1grow(OBSTACK,datum)					\
@@ -407,7 +364,8 @@
 ({ struct obstack *__o = (OBSTACK);					\
    if (__o->next_free + 1 > __o->chunk_limit)				\
      _obstack_newchunk (__o, 1);					\
-   *(__o->next_free)++ = (datum);					\
+   if (!__o->alloc_failed)						\
+     *(__o->next_free)++ = (datum);					\
    (void) 0; })
 
 /* These assume that the obstack alignment is good enough for pointers or ints,
@@ -419,7 +377,8 @@
 ({ struct obstack *__o = (OBSTACK);					\
    if (__o->next_free + sizeof (void *) > __o->chunk_limit)		\
      _obstack_newchunk (__o, sizeof (void *));				\
-   *((void **)__o->next_free)++ = ((void *)datum);			\
+   if (!__o->alloc_failed)						\
+     *((void **)__o->next_free)++ = ((void *)datum);			\
    (void) 0; })
 
 #define obstack_int_grow(OBSTACK,datum)					\
@@ -427,7 +386,8 @@
 ({ struct obstack *__o = (OBSTACK);					\
    if (__o->next_free + sizeof (int) > __o->chunk_limit)		\
      _obstack_newchunk (__o, sizeof (int));				\
-   *((int *)__o->next_free)++ = ((int)datum);				\
+   if (!__o->alloc_failed)						\
+     *((int *)__o->next_free)++ = ((int)datum);				\
    (void) 0; })
 
 #define obstack_ptr_grow_fast(h,aptr) (*((void **) (h)->next_free)++ = (void *)aptr)
@@ -439,7 +399,8 @@
    int __len = (length);						\
    if (__o->chunk_limit - __o->next_free < __len)			\
      _obstack_newchunk (__o, __len);					\
-   __o->next_free += __len;						\
+   if (!__o->alloc_failed)						\
+     __o->next_free += __len;						\
    (void) 0; })
 
 #define obstack_alloc(OBSTACK,length)					\
@@ -466,16 +427,21 @@
 __extension__								\
 ({ struct obstack *__o1 = (OBSTACK);					\
    void *value;								\
-   value = (void *) __o1->object_base;					\
-   if (__o1->next_free == value)					\
-     __o1->maybe_empty_object = 1;					\
-   __o1->next_free							\
-     = __INT_TO_PTR ((__PTR_TO_INT (__o1->next_free)+__o1->alignment_mask)\
-		     & ~ (__o1->alignment_mask));			\
-   if (__o1->next_free - (char *)__o1->chunk				\
-       > __o1->chunk_limit - (char *)__o1->chunk)			\
-     __o1->next_free = __o1->chunk_limit;				\
-   __o1->object_base = __o1->next_free;					\
+   if (__o1->alloc_failed)						\
+     value = 0;								\
+   else									\
+     {									\
+       value = (void *) __o1->object_base;				\
+       if (__o1->next_free == value)					\
+         __o1->maybe_empty_object = 1;					\
+       __o1->next_free							\
+	 = __INT_TO_PTR ((__PTR_TO_INT (__o1->next_free)+__o1->alignment_mask)\
+			 & ~ (__o1->alignment_mask));			\
+       if (__o1->next_free - (char *)__o1->chunk			\
+	   > __o1->chunk_limit - (char *)__o1->chunk)			\
+	 __o1->next_free = __o1->chunk_limit;				\
+       __o1->object_base = __o1->next_free;				\
+      }									\
    value; })
 
 #define obstack_free(OBSTACK, OBJ)					\
@@ -489,7 +455,7 @@
 #else /* not __GNUC__ or not __STDC__ */
 
 #define obstack_object_size(h) \
- (unsigned) ((h)->next_free - (h)->object_base)
+ (unsigned) ((h)->alloc_failed ? 0 : (h)->next_free - (h)->object_base)
 
 #define obstack_room(h)		\
  (unsigned) ((h)->chunk_limit - (h)->next_free)
@@ -500,40 +466,40 @@
    Casting the third operand to void was tried before,
    but some compilers won't accept it.  */
 
-#define obstack_make_room(h,length)					\
-( (h)->temp = (length),							\
-  (((h)->next_free + (h)->temp > (h)->chunk_limit)			\
-   ? (_obstack_newchunk ((h), (h)->temp), 0) : 0))
-
 #define obstack_grow(h,where,length)					\
 ( (h)->temp = (length),							\
   (((h)->next_free + (h)->temp > (h)->chunk_limit)			\
    ? (_obstack_newchunk ((h), (h)->temp), 0) : 0),			\
-  _obstack_memcpy ((h)->next_free, (char *) (where), (h)->temp),	\
-  (h)->next_free += (h)->temp)
+  ((h)->alloc_failed ? 0 :						\
+  (bcopy ((char *) (where), (h)->next_free, (h)->temp),			\
+  (h)->next_free += (h)->temp)))
 
 #define obstack_grow0(h,where,length)					\
 ( (h)->temp = (length),							\
   (((h)->next_free + (h)->temp + 1 > (h)->chunk_limit)			\
    ? (_obstack_newchunk ((h), (h)->temp + 1), 0) : 0),			\
-  _obstack_memcpy ((h)->next_free, (char *) (where), (h)->temp),	\
+  ((h)->alloc_failed ? 0 :						\
+  (bcopy ((char *) (where), (h)->next_free, (h)->temp),			\
   (h)->next_free += (h)->temp,						\
-  *((h)->next_free)++ = 0)
+  *((h)->next_free)++ = 0)))
 
 #define obstack_1grow(h,datum)						\
 ( (((h)->next_free + 1 > (h)->chunk_limit)				\
    ? (_obstack_newchunk ((h), 1), 0) : 0),				\
-  (*((h)->next_free)++ = (datum)))
+ ((h)->alloc_failed ? 0 :						\
+  (*((h)->next_free)++ = (datum))))
 
 #define obstack_ptr_grow(h,datum)					\
 ( (((h)->next_free + sizeof (char *) > (h)->chunk_limit)		\
    ? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0),		\
-  (*((char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = ((char *) datum)))
+  ((h)->alloc_failed ? 0 :						\
+  (*((char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = ((char *) datum))))
 
 #define obstack_int_grow(h,datum)					\
 ( (((h)->next_free + sizeof (int) > (h)->chunk_limit)			\
    ? (_obstack_newchunk ((h), sizeof (int)), 0) : 0),			\
-  (*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = ((int) datum)))
+  ((h)->alloc_failed ? 0 :						\
+  (*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = ((int) datum))))
 
 #define obstack_ptr_grow_fast(h,aptr) (*((char **) (h)->next_free)++ = (char *) aptr)
 #define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
@@ -542,7 +508,8 @@
 ( (h)->temp = (length),							\
   (((h)->chunk_limit - (h)->next_free < (h)->temp)			\
    ? (_obstack_newchunk ((h), (h)->temp), 0) : 0),			\
-  ((h)->next_free += (h)->temp))
+  ((h)->alloc_failed ? 0 :						\
+  ((h)->next_free += (h)->temp)))
 
 #define obstack_alloc(h,length)						\
  (obstack_blank ((h), (length)), obstack_finish ((h)))
@@ -554,18 +521,19 @@
  (obstack_grow0 ((h), (where), (length)), obstack_finish ((h)))
 
 #define obstack_finish(h)  						\
-( ((h)->next_free == (h)->object_base					\
+( (h)->alloc_failed ? 0 :						\
+  (((h)->next_free == (h)->object_base					\
    ? (((h)->maybe_empty_object = 1), 0)					\
    : 0),								\
   (h)->temp = __PTR_TO_INT ((h)->object_base),				\
   (h)->next_free							\
     = __INT_TO_PTR ((__PTR_TO_INT ((h)->next_free)+(h)->alignment_mask)	\
 		    & ~ ((h)->alignment_mask)),				\
-  (((h)->next_free - (char *) (h)->chunk				\
+  (((h)->next_free - (char *) (h)->chunk					\
     > (h)->chunk_limit - (char *) (h)->chunk)				\
    ? ((h)->next_free = (h)->chunk_limit) : 0),				\
   (h)->object_base = (h)->next_free,					\
-  __INT_TO_PTR ((h)->temp))
+  __INT_TO_PTR ((h)->temp)))
 
 #if defined (__STDC__) && __STDC__
 #define obstack_free(h,obj)						\
@@ -585,8 +553,4 @@
 
 #endif /* not __GNUC__ or not __STDC__ */
 
-#ifdef __cplusplus
-}	/* C++ */
-#endif
-
-#endif /* obstack.h */
+#endif /* not __OBSTACK_H__ */
diff --git a/gcc/pself.c b/gcc/pself.c
new file mode 100644
index 0000000..d8471da
--- /dev/null
+++ b/gcc/pself.c
@@ -0,0 +1 @@
+main(){char*p="main(){char*p=%c%s%c;(void)printf(p,34,p,34,10);}%c";(void)printf(p,34,p,34,10);}
diff --git a/gcc/pself1.c b/gcc/pself1.c
new file mode 100644
index 0000000..acdfc65
--- /dev/null
+++ b/gcc/pself1.c
@@ -0,0 +1 @@
+main(a){a="main(a){a=%c%s%c;printf(a,34,a,34);}";printf(a,34,a,34);}
\ No newline at end of file
diff --git a/gcc/pself2.c b/gcc/pself2.c
new file mode 100644
index 0000000..c88a8c1
--- /dev/null
+++ b/gcc/pself2.c
@@ -0,0 +1 @@
+main(){char*a="main(){char*a=%c%s%c;int b='%c';printf(a,b,a,b,b);}";int b='"';printf(a,b,a,b,b);}
diff --git a/gcc/pself3.c b/gcc/pself3.c
new file mode 100644
index 0000000..dbdeac6
--- /dev/null
+++ b/gcc/pself3.c
@@ -0,0 +1 @@
+main(a){printf(a,34,a="main(a){printf(a,34,a=%c%s%c,34);}",34);}
diff --git a/gcc/stab.def b/gcc/stab.def
index 48ea231..dd4fbf0 100644
--- a/gcc/stab.def
+++ b/gcc/stab.def
@@ -1,21 +1,19 @@
 /* Table of DBX symbol codes for the GNU system.
-   Copyright (C) 1988, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
+   Copyright (C) 1988 Free Software Foundation, Inc.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 1, or (at your option)
+   any later version.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 /* This contains contribution from Cygnus Support.  */
 
diff --git a/gcc/texinfo.tex b/gcc/texinfo.tex
index 1d1e570..b855a96 100644
--- a/gcc/texinfo.tex
+++ b/gcc/texinfo.tex
@@ -1,5 +1,5 @@
 %% TeX macros to handle Texinfo files.
-%% $Id: texinfo.tex,v 2.217 1997/07/14 17:43:41 karl Exp karl $
+%% $Id: texinfo.tex,v 1.1 1997/08/11 15:57:14 law Exp $
 
 %  Copyright (C) 1985, 86, 88, 90, 91, 92, 93,
 %                94, 95, 96, 97 Free Software Foundation, Inc.
@@ -36,7 +36,7 @@
 
 % This automatically updates the version number based on RCS.
 \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
-\deftexinfoversion$Revision: 2.217 $
+\deftexinfoversion$Revision: 1.1 $
 \message{Loading texinfo package [Version \texinfoversion]:}
 
 % If in a .fmt file, print the version number
diff --git a/gcc/tm.texi b/gcc/tm.texi
index 83d51bb..7f66487 100644
--- a/gcc/tm.texi
+++ b/gcc/tm.texi
@@ -1,4 +1,4 @@
-@c Copyright (C) 1988,89,92,93,94,96 Free Software Foundation, Inc.
+@c Copyright (C) 1988,89,92,93,94,96,1997 Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
 
@@ -764,6 +764,13 @@
 @item BIGGEST_ALIGNMENT
 Biggest alignment that any data type can require on this machine, in bits.
 
+@findex MINIMUM_ATOMIC_ALIGNMENT
+@item MINIMUM_ATOMIC_ALIGNMENT
+If defined, the smallest alignment, in bits, that can be given to an
+object that can be referenced in one operation, without disturbing any
+nearby object.  Normally, this is @code{BITS_PER_UNIT}, but may be larger
+on machines that don't have byte or half-word store operations.
+
 @findex BIGGEST_FIELD_ALIGNMENT
 @item BIGGEST_FIELD_ALIGNMENT
 Biggest alignment that any structure field can require on this machine,
@@ -1720,6 +1727,15 @@
 either a suitable hard register or a pseudo register that has been
 allocated such a hard register.
 
+@findex REGNO_MODE_OK_FOR_BASE_P
+@item REGNO_MODE_OK_FOR_BASE_P (@var{num}, @var{mode})
+A C expression that is just like @code{REGNO_OK_FOR_BASE_P}, except that
+that expression may examine the mode of the memory reference in
+@var{mode}.  You should define this macro if the mode of the memory
+reference affects whether a register may be used as a base register.  If
+you define this macro, the compiler will use it instead of
+@code{REGNO_OK_FOR_BASE_P}.
+
 @findex REGNO_OK_FOR_INDEX_P
 @item REGNO_OK_FOR_INDEX_P (@var{num})
 A C expression which is nonzero if register number @var{num} is
@@ -1900,16 +1916,17 @@
 would not be enough registers to use as spill registers if this were
 done.
 
-Define @code{SMALL_REGISTER_CLASSES} on these machines.  When it is
-defined, the compiler allows registers explicitly used in the rtl to be
-used as spill registers but avoids extending the lifetime of these
-registers.
+Define @code{SMALL_REGISTER_CLASSES} to be an expression with a non-zero
+value on these machines.  When this macro has a non-zero value, the
+compiler allows registers explicitly used in the rtl to be used as spill
+registers but avoids extending the lifetime of these registers.
 
-It is always safe to define this macro, but if you unnecessarily define
-it, you will reduce the amount of optimizations that can be performed in
-some cases.  If you do not define this macro when it is required, the
-compiler will run out of spill registers and print a fatal error
-message.  For most machines, you should not define this macro.
+It is always safe to define this macro with a non-zero value, but if you
+unnecessarily define it, you will reduce the amount of optimizations
+that can be performed in some cases.  If you do not define this macro
+with a non-zero value when it is required, the compiler will run out of
+spill registers and print a fatal error message.  For most machines, you
+should not define this macro at all.
 
 @findex CLASS_LIKELY_SPILLED_P
 @item CLASS_LIKELY_SPILLED_P (@var{class})
@@ -2011,6 +2028,7 @@
 
 @menu
 * Frame Layout::
+* Stack Checking::
 * Frame Registers::
 * Elimination::
 * Stack Arguments::
@@ -2110,15 +2128,119 @@
 @findex RETURN_ADDR_RTX
 @item RETURN_ADDR_RTX (@var{count}, @var{frameaddr})
 A C expression whose value is RTL representing the value of the return
-address for the frame @var{count} steps up from the current frame.
-@var{frameaddr} is the frame pointer of the @var{count} frame, or
-the frame pointer of the @var{count} @minus{} 1 frame if
+address for the frame @var{count} steps up from the current frame, after
+the prologue.  @var{frameaddr} is the frame pointer of the @var{count}
+frame, or the frame pointer of the @var{count} @minus{} 1 frame if
 @code{RETURN_ADDR_IN_PREVIOUS_FRAME} is defined.
 
 @findex RETURN_ADDR_IN_PREVIOUS_FRAME
 @item RETURN_ADDR_IN_PREVIOUS_FRAME
 Define this if the return address of a particular stack frame is accessed
 from the frame pointer of the previous stack frame.
+
+@findex INCOMING_RETURN_ADDR_RTX
+@item INCOMING_RETURN_ADDR_RTX
+A C expression whose value is RTL representing the location of the
+incoming return address at the beginning of any function, before the
+prologue.  This RTL is either a @code{REG}, indicating that the return
+value is saved in @samp{REG}, or a @code{MEM} representing a location in
+the stack.
+
+You only need to define this macro if you want to support call frame
+debugging information like that provided by DWARF 2.
+
+@findex INCOMING_FRAME_SP_OFFSET
+@item INCOMING_FRAME_SP_OFFSET
+A C expression whose value is an integer giving the offset, in bytes,
+from the value of the stack pointer register to the top of the stack
+frame at the beginning of any function, before the prologue.  The top of
+the frame is defined to be the value of the stack pointer in the
+previous frame, just before the call instruction.
+
+You only need to define this macro if you want to support call frame
+debugging information like that provided by DWARF 2.
+@end table
+
+@node Stack Checking
+@subsection Specifying How Stack Checking is Done
+
+GNU CC will check that stack references are within the boundaries of
+the stack, if the @samp{-fstack-check} is specified, in one of three ways:
+
+@enumerate
+@item
+If the value of the @code{STACK_CHECK_BUILTIN} macro is nonzero, GNU CC
+will assume that you have arranged for stack checking to be done at
+appropriate places in the configuration files, e.g., in
+@code{FUNCTION_PROLOGUE}.  GNU CC will do not other special processing.
+
+@item
+If @code{STACK_CHECK_BUILTIN} is zero and you defined a named pattern
+called @code{check_stack} in your @file{md} file, GNU CC will call that
+pattern with one argument which is the address to compare the stack
+value against.  You must arrange for this pattern to report an error if
+the stack pointer is out of range.
+
+@item
+If neither of the above are true, GNU CC will generate code to periodically
+``probe'' the stack pointer using the values of the macros defined below.
+@end enumerate
+
+Normally, you will use the default values of these macros, so GNU CC
+will use the third approach.
+
+@table @code
+@findex STACK_CHECK_BUILTIN
+@item STACK_CHECK_BUILTIN
+A nonzero value if stack checking is done by the configuration files in a
+machine-dependent manner.  You should define this macro if stack checking 
+is require by the ABI of your machine or if you would like to have to stack 
+checking in some more efficient way than GNU CC's portable approach.
+The default value of this macro is zero.
+
+@findex STACK_CHECK_PROBE_INTERVAL
+@item STACK_CHECK_PROBE_INTERVAL
+An integer representing the interval at which GNU CC must generate stack
+probe instructions.  You will normally define this macro to be no larger
+than the size of the ``guard pages'' at the end of a stack area.  The
+default value of 4096 is suitable for most systems.
+
+@findex STACK_CHECK_PROBE_LOAD
+@item STACK_CHECK_PROBE_LOAD
+A integer which is nonzero if GNU CC should perform the stack probe 
+as a load instruction and zero if GNU CC should use a store instruction.
+The default is zero, which is the most efficient choice on most systems.
+
+@findex STACK_CHECK_PROTECT
+@item STACK_CHECK_PROTECT
+The number of bytes of stack needed to recover from a stack overflow,
+for languages where such a recovery is supported.  The default value of
+75 words should be adequate for most machines.
+
+@findex STACK_CHECK_MAX_FRAME_SIZE
+@item STACK_CHECK_MAX_FRAME_SIZE
+The maximum size of a stack frame, in bytes.  GNU CC will generate probe
+instructions in non-leaf functions to ensure at least this many bytes of
+stack are available.  If a stack frame is larger than this size, stack
+checking will not be reliable and GNU CC will issue a warning.  The
+default is chosen so that GNU CC only generates one instruction on most
+systems.  You should normally not change the default value of this macro.
+
+@findex STACK_CHECK_FIXED_FRAME_SIZE
+@item STACK_CHECK_FIXED_FRAME_SIZE
+GNU CC uses this value to generate the above warning message.  It
+represents the amount of fixed frame used by a function, not including
+space for any callee-saved registers, temporaries and user variables.
+You need only specify an upper bound for this amount and will normally
+use the default of four words.
+
+@findex STACK_CHECK_MAX_VAR_SIZE
+@item STACK_CHECK_MAX_VAR_SIZE
+The maximum size, in bytes, of an object that GNU CC will place in the
+fixed area of the stack frame when the user specifies
+@samp{-fstack-check}.
+GNU CC computed the default from the values of the above macros and you will
+normally not need to override that default.
 @end table
 
 @need 2000
@@ -2455,7 +2577,7 @@
 From this it is possible to obtain the data types of the value and
 arguments (if known).
 
-When a call to a library function is being considered, @var{funtype}
+When a call to a library function is being considered, @var{fundecl}
 will contain an identifier node for the library function.  Thus, if
 you need to distinguish among various library functions, you can do so
 by their names.  Note that ``library function'' in this context means
@@ -3130,12 +3252,10 @@
 have already been extracted from it.)  It might possibly be useful on
 some targets, but probably not.
 
-For many targets, the target-independent code in the C++ frontend will
-be sufficient and you can leave this macro undefined.  You need to
-define this macro if the code generated by default would clobber any of
-the incoming arguments; this is only likely if parameters can be passed
-in registers.  You should also define this macro if the default code is
-sub-optimal.
+If you do not define this macro, the target-independent code in the C++
+frontend will generate a less efficient heavyweight thunk that calls
+@var{function} instead of jumping to it.  The generic approach does
+not support varargs.
 @end table
 
 @node Profiling
@@ -3985,6 +4105,15 @@
 requires two variant definitions, of which @code{REG_OK_STRICT}
 controls the one actually used.
 
+@findex REG_MODE_OK_FOR_BASE_P
+@item REG_MODE_OK_FOR_BASE_P (@var{x}, @var{mode})
+A C expression that is just like @code{REG_OK_FOR_BASE_P}, except that
+that expression may examine the mode of the memory reference in
+@var{mode}.  You should define this macro if the mode of the memory
+reference affects whether a register may be used as a base register.  If
+you define this macro, the compiler will use it instead of
+@code{REG_OK_FOR_BASE_P}.
+
 @findex REG_OK_FOR_INDEX_P
 @item REG_OK_FOR_INDEX_P (@var{x})
 A C expression that is nonzero if @var{x} (assumed to be a @code{reg}
@@ -4549,13 +4678,21 @@
 the characters that encode section info.  Define this macro if
 @code{ENCODE_SECTION_INFO} alters the symbol's name string.
 
+@findex UNIQUE_SECTION_P (@var{decl})
+@item UNIQUE_SECTION_P (@var{decl})
+A C expression which evaluates to true if @var{decl} should be placed
+into a unique section for some target-specific reason.  If you do not
+define this macro, the default is @samp{0}.  Note that the flag
+@samp{-ffunction-sections} will also cause functions to be placed into
+unique sections.
+
 @findex UNIQUE_SECTION
-@item UNIQUE_SECTION (@var{decl})
-For objects going into their own sections, a C expression of the name of the
-section, expressed as a STRING_CST node, to put @var{decl} into.  The
-STRING_CST node must be allocated in the saveable obstack.  Function
-@code{build_string} can be used to do this.  If you do not define this macro,
-GNU CC will use the symbol name as the section name.
+@item UNIQUE_SECTION (@var{decl}, @var{reloc})
+A C statement to build up a unique section name, expressed as a
+STRING_CST node, and assign it to @samp{DECL_SECTION_NAME (@var{decl})}.
+@var{reloc} indicates whether the initial value of @var{exp} requires
+link-time relocations.  If you do not define this macro, GNU CC will use
+the symbol name prefixed by @samp{.} as the section name.
 @end table
 
 @node PIC
@@ -4737,10 +4874,12 @@
 macro is not defined, nothing is output for a @samp{#ident} directive.
 
 @findex ASM_OUTPUT_SECTION_NAME
-@item ASM_OUTPUT_SECTION_NAME (@var{stream}, @var{decl}, @var{name})
+@item ASM_OUTPUT_SECTION_NAME (@var{stream}, @var{decl}, @var{name}, @var{reloc})
 A C statement to output something to the assembler file to switch to section
 @var{name} for object @var{decl} which is either a @code{FUNCTION_DECL}, a
-@code{VAR_DECL} or @code{NULL_TREE}.  Some target formats do not support
+@code{VAR_DECL} or @code{NULL_TREE}.  @var{reloc}
+indicates whether the initial value of @var{exp} requires link-time
+relocations.  Some target formats do not support
 arbitrary sections.  Do not define this macro in such cases.
 
 At present this macro is only used to support section attributes.
@@ -4823,6 +4962,15 @@
 Berkeley Unix assembler, do not define the macro
 @code{ASM_OUTPUT_ASCII}.
 
+@findex CONSTANT_POOL_BEFORE_FUNCTION
+@item CONSTANT_POOL_BEFORE_FUNCTION
+You may define this macro as a C expression.  You should define the
+expression to have a non-zero value if GNU CC should output the constant
+pool for a function before the code for the function, or a zero value if
+GNU CC should output the constant pool after the function.  If you do
+not define this macro, the usual case, GNU CC will output the constant
+pool before the function.
+
 @findex ASM_OUTPUT_POOL_PROLOGUE
 @item ASM_OUTPUT_POOL_PROLOGUE (@var{file} @var{funname} @var{fundecl} @var{size})
 A C statement to output assembler commands to define the start of the
@@ -4863,6 +5011,24 @@
 
 You need not define this macro if it would do nothing.
 
+@findex CONSTANT_AFTER_FUNCTION_P
+@item CONSTANT_AFTER_FUNCTION_P (@var{exp})
+Define this macro as a C expression which is nonzero if the constant
+@var{exp}, of type @code{tree}, should be output after the code for a
+function.  The compiler will normally output all constants before the
+function; you need not define this macro if this is OK.
+
+@findex ASM_OUTPUT_POOL_EPILOGUE
+@item ASM_OUTPUT_POOL_EPILOGUE (@var{file} @var{funname} @var{fundecl} @var{size})
+A C statement to output assembler commands to at the end of the constant
+pool for a function.  @var{funname} is a string giving the name of the
+function.  Should the return type of the function be required, you can
+obtain it via @var{fundecl}.  @var{size} is the size, in bytes, of the
+constant pool that GNU CC wrote immediately before this call.
+
+If no constant-pool epilogue is required, the usual case, you need not
+define this macro.
+
 @findex IS_ASM_LOGICAL_LINE_SEPARATOR
 @item IS_ASM_LOGICAL_LINE_SEPARATOR (@var{C})
 Define this macro as a C expression which is nonzero if @var{C} is
@@ -6274,6 +6440,12 @@
 Define this macro if GNU CC should produce dwarf version 2 format
 debugging output in response to the @samp{-g} option.
 
+To support optional call frame debugging information, you must also
+define @code{INCOMING_RETURN_ADDR_RTX} and either set
+@code{RTX_FRAME_RELATED_P} on the prologue insns if you use RTL for the
+prologue, or call @code{dwarf2out_def_cfa} and @code{dwarf2out_reg_save}
+as appropriate from @code{FUNCTION_PROLOGUE} if you don't.
+
 @findex PUT_SDB_@dots{}
 @item PUT_SDB_@dots{}
 Define these macros to override the assembler syntax for the special
@@ -6906,6 +7078,13 @@
 delayed branch scheduling.  On those machines, define this macro as a C
 statement to act on the code starting at @var{insn}.
 
+@findex MULTIPLE_SYMBOL_SPACES
+@item MULTIPLE_SYMBOL_SPACES
+Define this macro if in some cases global symbols from one translation
+unit may not be bound to undefined symbols in another translation unit
+without user intervention.  For instance, under Microsoft Windows
+symbols must be explicitly imported from shared libraries (DLLs).
+
 @findex GIV_SORT_CRITERION
 @item GIV_SORT_CRITERION (@var{giv1}, @var{giv2})
 In some cases, the strength reduction optimization pass can produce better
diff --git a/gcc/version.c b/gcc/version.c
new file mode 100644
index 0000000..b1829cb
--- /dev/null
+++ b/gcc/version.c
@@ -0,0 +1 @@
+char *version_string = "testgcc-2.7.90 970802 experimental";